diff --git a/system/client-functions/BlueBurstExclusive/MomokaItemExchangeFix.59NL.patch.s b/system/client-functions/BlueBurstExclusive/MomokaItemExchangeFix.5___.patch.s similarity index 75% rename from system/client-functions/BlueBurstExclusive/MomokaItemExchangeFix.59NL.patch.s rename to system/client-functions/BlueBurstExclusive/MomokaItemExchangeFix.5___.patch.s index e0cfae90..875ad717 100644 --- a/system/client-functions/BlueBurstExclusive/MomokaItemExchangeFix.59NL.patch.s +++ b/system/client-functions/BlueBurstExclusive/MomokaItemExchangeFix.5___.patch.s @@ -1,5 +1,7 @@ .meta name="Item exch. fix" -.meta description="Fixes Momoka item exchange\nopcode" +.meta description="Fixes some quest item\nexchange opcodes" + +.versions 59NJ 59NL entry_ptr: reloc0: @@ -10,7 +12,7 @@ start: # Fix 6xDE failure label truncation - .data 0x006B90DE + .data .data 1 .binary 03 @@ -18,23 +20,23 @@ start: # Fix send_6xD9 not setting size field - .data 0x006CA540 + .data .deltaof send_6xD9_start, send_6xD9_end - .address 0x006CA540 + .address send_6xD9_start: # [std](void* this @ ecx) -> void push ebx mov ebx, ecx push 0 # cmd.success_label, cmd.failure_label - mov eax, [0x00A9C4F4] # local_client_id + mov eax, [] # local_client_id xor eax, 1 push eax # cmd.token2 mov ecx, [ebx + 0x2C] - call 0x00737D90 # [std](void* this @ ecx = *(this + 0x2C)) -> void* @ eax + call # [std](void* this @ ecx = *(this + 0x2C)) -> void* @ eax mov edx, [ebx + 0x3C] imul eax, eax, 0x14 add edx, eax mov eax, [edx + 0x10] - xor eax, [0x00A9C4F4] # local_client_id + xor eax, [] # local_client_id push eax # cmd.token1 push dword [edx + 0x10] # cmd.replace_item.data2d push dword [edx + 0x0C] # cmd.replace_item.id @@ -49,12 +51,12 @@ send_6xD9_start: # [std](void* this @ ecx) -> void push 0x00000ED9 # cmd.header mov ecx, esp - call 0x008003E0 # send_and_handle_60[std](void* cmd @ ecx) -> void + call # send_and_handle_60[std](void* cmd @ ecx) -> void add esp, 0x38 mov dword [ebx], 6 push 0 - call 0x00859D2D # time[std](void* t @ [esp + 4] = nullptr) -> uint32_t @ eax + call # time[std](void* t @ [esp + 4] = nullptr) -> uint32_t @ eax add esp, 4 mov [ebx + 0x5C], eax @@ -66,16 +68,16 @@ send_6xD9_end: # Same fix as above, but for quest_F95B_send_6xD9 - .data 0x006B9018 + .data .deltaof quest_F95B_send_6xD9_start, quest_F95B_send_6xD9_end - .address 0x006B9018 + .address quest_F95B_send_6xD9_start: # [std]() -> void - mov edx, 0x00A954CC # quest_args_list + mov edx, # quest_args_list mov ax, [edx + 0x14] # quest_args_list[5] (failure_label) shl eax, 0x10 mov ax, [edx + 0x10] # quest_args_list[4] (success_label) push eax # cmd.success_label, cmd.failure_label - mov ecx, [0x00A9C4F4] # local_client_id + mov ecx, [] # local_client_id mov eax, [edx + 0x0C] # quest_args_list[3] (token2) xor eax, ecx push eax # cmd.token2 @@ -104,7 +106,7 @@ quest_F95B_send_6xD9_start: # [std]() -> void push eax # cmd.header mov ecx, esp - call 0x008003E0 # send_and_handle_60[std](void* cmd @ ecx) -> void + call # send_and_handle_60[std](void* cmd @ ecx) -> void add esp, 0x38 ret quest_F95B_send_6xD9_end: