Update to latest WUPS and libfunctionpatcher

This commit is contained in:
Maschell 2023-02-16 20:02:29 +01:00
parent cc007a5987
commit b579bbdfa9
3 changed files with 11 additions and 8 deletions

View File

@ -1,8 +1,8 @@
FROM wiiuenv/devkitppc:20221228
COPY --from=wiiuenv/wiiumodulesystem:20230106 /artifacts $DEVKITPRO
COPY --from=wiiuenv/wiiupluginsystem:20220924 /artifacts $DEVKITPRO
COPY --from=wiiuenv/libfunctionpatcher:20230106 /artifacts $DEVKITPRO
COPY --from=wiiuenv/wiiupluginsystem:20230215 /artifacts $DEVKITPRO
COPY --from=wiiuenv/libfunctionpatcher:20230108 /artifacts $DEVKITPRO
COPY --from=wiiuenv/libmappedmemory:20220904 /artifacts $DEVKITPRO
COPY --from=wiiuenv/libwupsbackend:20220904 /artifacts $DEVKITPRO

View File

@ -68,14 +68,17 @@ public:
bool AddPatch() {
if (handle == 0) {
function_replacement_data_t functionData = {
.VERSION = FUNCTION_REPLACEMENT_DATA_STRUCT_VERSION,
.version = FUNCTION_REPLACEMENT_DATA_STRUCT_VERSION,
.type = FUNCTION_PATCHER_REPLACE_BY_LIB_OR_ADDRESS,
.physicalAddr = reinterpret_cast<uint32_t>(this->paddress),
.virtualAddr = reinterpret_cast<uint32_t>(this->vaddress),
.replaceAddr = reinterpret_cast<uint32_t>(this->replaceAddr),
.replaceCall = static_cast<uint32_t *>(this->replaceCall),
.library = this->library,
.function_name = this->name.c_str(),
.targetProcess = this->targetProcess};
.targetProcess = this->targetProcess,
.ReplaceInRPL = {
.function_name = this->name.c_str(),
.library = this->library,
}};
if (FunctionPatcher_AddFunctionPatch(&functionData, &handle, nullptr) != FUNCTION_PATCHER_RESULT_SUCCESS) {
DEBUG_FUNCTION_LINE_ERR("Failed to add patch for function");

View File

@ -19,7 +19,7 @@ static void processJson(wups_storage_item_t *items, nlohmann::json json) {
for (auto it = json.begin(); it != json.end(); ++it) {
wups_storage_item_t *item = &((wups_storage_item_t *) items->data)[index];
item->type = WUPS_STORAGE_TYPE_INVALID;
item->pending_delete = false;
item->deleted = false;
item->data = nullptr;
item->key = nullptr;
@ -90,7 +90,7 @@ static nlohmann::json processItems(wups_storage_item_t *items) {
for (uint32_t i = 0; i < items->data_size; i++) {
wups_storage_item_t *item = &((wups_storage_item_t *) items->data)[i];
if (item->pending_delete || item->type == WUPS_STORAGE_TYPE_INVALID || !item->data || !item->key) {
if (item->deleted || item->type == WUPS_STORAGE_TYPE_INVALID || !item->data || !item->key) {
continue;
}