Hacking Pokkén Tournament hacking

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,060
Country
Russia
Hello. I have a few questions about hacking Pokkén Tournament.
All files are in drp archives(which are double encrypted). I had rpx of Pokkén Tournament, so I tried to disassemble it.(I'l leave one of drp files in attachements)
Here are few instructions for decrypting and opening drp files:
Load_drp:
.text:02B83D30
.text:02B83D30
.text:02B83D30 # _Q2_5sysdr12ResourceData::load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm(void)
.text:02B83D30 load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm__24_Q2_5sysdr12ResourceData:
.text:02B83D30 # DATA XREF: sysdr::ResourceListManager::ResourceListManager((void))+4F0o
.text:02B83D30 # sysdr::ResourceListManager::ResourceListManager((void))+4FCo
.text:02B83D30
.text:02B83D30 .set var_10, -0x10
.text:02B83D30 .set var_C, -0xC
.text:02B83D30 .set var_8, -8
.text:02B83D30 .set var_4, -4
.text:02B83D30 .set arg_4, 4
.text:02B83D30
.text:02B83D30 mflr r0
.text:02B83D34 stwu r1, -0x18(r1)
.text:02B83D38 stw r30, 0x18+var_8(r1)
.text:02B83D3C stw r29, 0x18+var_C(r1)
.text:02B83D40 stw r31, 0x18+var_4(r1)
.text:02B83D44 stw r0, 0x18+arg_4(r1)
.text:02B83D48 mr r29, r3
.text:02B83D4C li r6, 0
.text:02B83D50 lwz r3, 0(r3)
.text:02B83D54 mr r4, r6
.text:02B83D58 stw r6, 0x18+var_10(r1)
.text:02B83D5C addi r5, r1, 0x18+var_10
.text:02B83D60 stw r6, 0x470(r3)
.text:02B83D64 bl ReadFile__Q2_5sysdr12ResourceDataFiPPvb # sysdr::ResourceData::ReadFile((int,void **,bool))
.text:02B83D68 mr. r30, r3
.text:02B83D6C mr r31, r4
.text:02B83D70 bgt loc_2B83DA0
.text:02B83D74 blt loc_2B83D80
.text:02B83D78 cmplwi r31, 0
.text:02B83D7C bgt loc_2B83DA0
.text:02B83D80
.text:02B83D80 loc_2B83D80: # CODE XREF: _Q2_5sysdr12ResourceData::load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm(void)+44j
.text:02B83D80 lwz r29, 0x18+var_C(r1)
.text:02B83D84 lwz r0, 0x18+arg_4(r1)
.text:02B83D88 lwz r30, 0x18+var_8(r1)
.text:02B83D8C mtlr r0
.text:02B83D90 lwz r31, 0x18+var_4(r1)
.text:02B83D94 addi r1, r1, 0x18
.text:02B83D98 li r3, 0
.text:02B83D9C blr
.text:02B83DA0 # ---------------------------------------------------------------------------
.text:02B83DA0
.text:02B83DA0 loc_2B83DA0: # CODE XREF: _Q2_5sysdr12ResourceData::load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm(void)+40j
.text:02B83DA0 # _Q2_5sysdr12ResourceData::load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm(void)+4Cj
.text:02B83DA0 lwz r3, 0x18+var_10(r1)
.text:02B83DA4 mr r4, r31
.text:02B83DA8 bl ResourcePackDecrypt__5sysdrFPvUi # sysdr::ResourcePackDecrypt((void *,uint))
.text:02B83DAC cmpwi r3, 0
.text:02B83DB0 bne loc_2B83DDC
.text:02B83DB4 lwz r3, 0x18+var_10(r1)
.text:02B83DB8 bl SystemFree__5sysdrFPv # sysdr::SystemFree((void *))
.text:02B83DBC lwz r29, 0x18+var_C(r1)
.text:02B83DC0 lwz r0, 0x18+arg_4(r1)
.text:02B83DC4 lwz r30, 0x18+var_8(r1)
.text:02B83DC8 mtlr r0
.text:02B83DCC lwz r31, 0x18+var_4(r1)
.text:02B83DD0 addi r1, r1, 0x18
.text:02B83DD4 li r3, 0
.text:02B83DD8 blr
.text:02B83DDC # ---------------------------------------------------------------------------
.text:02B83DDC
.text:02B83DDC loc_2B83DDC: # CODE XREF: _Q2_5sysdr12ResourceData::load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm(void)+80j
.text:02B83DDC lwz r10, 0(r29)
.text:02B83DE0 lwz r0, 0x18+var_10(r1)
.text:02B83DE4 stw r31, 0x488(r10)
.text:02B83DE8 li r3, 1
.text:02B83DEC stw r0, 0x480(r10)
.text:02B83DF0 stw r3, 0x470(r10)
.text:02B83DF4 lwz r29, 0x18+var_C(r1)
.text:02B83DF8 lwz r0, 0x18+arg_4(r1)
.text:02B83DFC lwz r30, 0x18+var_8(r1)
.text:02B83E00 mtlr r0
.text:02B83E04 lwz r31, 0x18+var_4(r1)
.text:02B83E08 addi r1, r1, 0x18
.text:02B83E0C blr
.text:02B83E0C # End of function _Q2_5sysdr12ResourceData::load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm(void)
.text:02B83E0C
.text:02B83E10
Decrypt ResoursePack:
.text:02B8EF8C
.text:02B8EF8C
.text:02B8EF8C # sysdr::ResourcePackDecrypt((void *, unsigned int))
.text:02B8EF8C ResourcePackDecrypt__5sysdrFPvUi: # CODE XREF: _Q2_5sysdr12ResourceData::load_drp__Q2_5sysdr36__N_20_dr_resource_list_cpp_8bdc2d44FQ2_5sysdr41SharedPtr__tm(void)+78p
.text:02B8EF8C
.text:02B8EF8C .set var_40, -0x40
.text:02B8EF8C .set var_2C, -0x2C
.text:02B8EF8C .set arg_4, 4
.text:02B8EF8C
.text:02B8EF8C stwu r1, -0x48(r1)
.text:02B8EF90 stmw r21, 0x48+var_2C(r1)
.text:02B8EF94 mflr r0
.text:02B8EF98 stw r0, 0x48+arg_4(r1)
.text:02B8EF9C lwz r5, 0x1C(r3)
.text:02B8EFA0 mr r30, r3
.text:02B8EFA4 cmpwi r5, 0
.text:02B8EFA8 mr r27, r4
.text:02B8EFAC beq loc_2B8F2C0
.text:02B8EFB0 lis r4, 0x133 # 0x132B471
.text:02B8EFB4 addi r3, r1, 0x48+var_40
.text:02B8EFB8 addi r4, r4, -0x4B8F # 0x132B471
.text:02B8EFBC bl Init__Q2_5sysdr8RandomXSFi # sysdr::RandomXS::Init((int))
.text:02B8EFC0 lwz r4, 0x1C(r30)
.text:02B8EFC4 addi r3, r1, 0x48+var_40
.text:02B8EFC8 bl Init__Q2_5sysdr8RandomXSFi # sysdr::RandomXS::Init((int))
.text:02B8EFCC clrlwi. r7, r27, 30
.text:02B8EFD0 li r23, 0
.text:02B8EFD4 beq loc_2B8F17C
.text:02B8EFD8 cmpwi r27, 0
.text:02B8EFDC beq loc_2B8F2C0
.text:02B8EFE0 srwi. r22, r27, 3
.text:02B8EFE4 ble loc_2B8F12C
.text:02B8EFE8 addi r24, r30, -8
.text:02B8EFEC li r31, -0x18
.text:02B8EFF0 li r29, -0x19
.text:02B8EFF4 li r26, -0x1A
.text:02B8EFF8 li r25, -0x1B
.text:02B8EFFC
.text:02B8EFFC loc_2B8EFFC: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+19Cj
.text:02B8EFFC addi r8, r31, -4
.text:02B8F000 cmplwi r8, 4
.text:02B8F004 lbzx r21, r30, r23
.text:02B8F008 blt loc_2B8F020
.text:02B8F00C addi r3, r1, 0x48+var_40
.text:02B8F010 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F014 srawi r9, r3, 3
.text:02B8F018 xor r10, r21, r9
.text:02B8F01C stbx r10, r30, r23
.text:02B8F020
.text:02B8F020 loc_2B8F020: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+7Cj
.text:02B8F020 lbz r21, 9(r24)
.text:02B8F024 cmplwi r25, 4
.text:02B8F028 addi r24, r24, 8
.text:02B8F02C blt loc_2B8F044
.text:02B8F030 addi r3, r1, 0x48+var_40
.text:02B8F034 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F038 srawi r0, r3, 3
.text:02B8F03C xor r0, r21, r0
.text:02B8F040 stb r0, 1(r24)
.text:02B8F044
.text:02B8F044 loc_2B8F044: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+A0j
.text:02B8F044 cmplwi r26, 4
.text:02B8F048 lbz r21, 2(r24)
.text:02B8F04C blt loc_2B8F064
.text:02B8F050 addi r3, r1, 0x48+var_40
.text:02B8F054 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F058 srawi r0, r3, 3
.text:02B8F05C xor r0, r21, r0
.text:02B8F060 stb r0, 2(r24)
.text:02B8F064
.text:02B8F064 loc_2B8F064: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+C0j
.text:02B8F064 cmplwi r29, 4
.text:02B8F068 lbz r21, 3(r24)
.text:02B8F06C blt loc_2B8F084
.text:02B8F070 addi r3, r1, 0x48+var_40
.text:02B8F074 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F078 srawi r0, r3, 3
.text:02B8F07C xor r0, r21, r0
.text:02B8F080 stb r0, 3(r24)
.text:02B8F084
.text:02B8F084 loc_2B8F084: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+E0j
.text:02B8F084 cmplwi r31, 4
.text:02B8F088 lbz r21, 4(r24)
.text:02B8F08C blt loc_2B8F0A4
.text:02B8F090 addi r3, r1, 0x48+var_40
.text:02B8F094 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F098 srawi r8, r3, 3
.text:02B8F09C xor r0, r21, r8
.text:02B8F0A0 stb r0, 4(r24)
.text:02B8F0A4
.text:02B8F0A4 loc_2B8F0A4: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+100j
.text:02B8F0A4 addi r11, r25, 4
.text:02B8F0A8 cmplwi r11, 4
.text:02B8F0AC lbz r21, 5(r24)
.text:02B8F0B0 blt loc_2B8F0C8
.text:02B8F0B4 addi r3, r1, 0x48+var_40
.text:02B8F0B8 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F0BC srawi r0, r3, 3
.text:02B8F0C0 xor r0, r21, r0
.text:02B8F0C4 stb r0, 5(r24)
.text:02B8F0C8
.text:02B8F0C8 loc_2B8F0C8: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+124j
.text:02B8F0C8 addi r0, r26, 4
.text:02B8F0CC cmplwi r0, 4
.text:02B8F0D0 lbz r21, 6(r24)
.text:02B8F0D4 blt loc_2B8F0EC
.text:02B8F0D8 addi r3, r1, 0x48+var_40
.text:02B8F0DC bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F0E0 srawi r5, r3, 3
.text:02B8F0E4 xor r0, r21, r5
.text:02B8F0E8 stb r0, 6(r24)
.text:02B8F0EC
.text:02B8F0EC loc_2B8F0EC: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+148j
.text:02B8F0EC addi r0, r29, 4
.text:02B8F0F0 cmplwi r0, 4
.text:02B8F0F4 lbz r21, 7(r24)
.text:02B8F0F8 blt loc_2B8F110
.text:02B8F0FC addi r3, r1, 0x48+var_40
.text:02B8F100 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F104 srawi r0, r3, 3
.text:02B8F108 xor r0, r21, r0
.text:02B8F10C stb r0, 7(r24)
.text:02B8F110
.text:02B8F110 loc_2B8F110: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+16Cj
.text:02B8F110 addi r25, r25, 8
.text:02B8F114 addi r26, r26, 8
.text:02B8F118 addi r29, r29, 8
.text:02B8F11C addic. r22, r22, -1
.text:02B8F120 addi r23, r23, 8
.text:02B8F124 addi r31, r31, 8
.text:02B8F128 bne loc_2B8EFFC
.text:02B8F12C
.text:02B8F12C loc_2B8F12C: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+58j
.text:02B8F12C clrlwi. r29, r27, 29
.text:02B8F130 ble loc_2B8F2C0
.text:02B8F134 addi r31, r23, -0x1C
.text:02B8F138
.text:02B8F138 loc_2B8F138: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+1D8j
.text:02B8F138 cmplwi r31, 4
.text:02B8F13C lbzx r21, r30, r23
.text:02B8F140 blt loc_2B8F158
.text:02B8F144 addi r3, r1, 0x48+var_40
.text:02B8F148 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F14C srawi r0, r3, 3
.text:02B8F150 xor r0, r21, r0
.text:02B8F154 stbx r0, r30, r23
.text:02B8F158
.text:02B8F158 loc_2B8F158: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+1B4j
.text:02B8F158 addic. r29, r29, -1
.text:02B8F15C addi r31, r31, 1
.text:02B8F160 addi r23, r23, 1
.text:02B8F164 bne loc_2B8F138
.text:02B8F168 lha r0, 0x14(r30)
.text:02B8F16C cmpwi r0, 3
.text:02B8F170 addi r0, r30, 0x60
.text:02B8F174 blt loc_2B8F30C
.text:02B8F178 b loc_2B8F2D0
.text:02B8F17C # ---------------------------------------------------------------------------
.text:02B8F17C
.text:02B8F17C loc_2B8F17C: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+48j
.text:02B8F17C srwi. r31, r27, 2
.text:02B8F180 lwz r26, 0x1C(r30)
.text:02B8F184 li r25, 0
.text:02B8F188 beq loc_2B8F2BC
.text:02B8F18C srwi. r22, r31, 3
.text:02B8F190 ble loc_2B8F284
.text:02B8F194 addi r24, r30, -0x20
.text:02B8F198 slwi r23, r22, 3
.text:02B8F19C
.text:02B8F19C loc_2B8F19C: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+2F4j
.text:02B8F19C lwzu r21, 0x20(r24)
.text:02B8F1A0 addi r3, r1, 0x48+var_40
.text:02B8F1A4 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F1A8 xor r0, r21, r3
.text:02B8F1AC lwz r21, 4(r24)
.text:02B8F1B0 xor r4, r0, r25
.text:02B8F1B4 extlwi r25, r3, 1,13
.text:02B8F1B8 addi r3, r1, 0x48+var_40
.text:02B8F1BC stw r4, 0(r24)
.text:02B8F1C0 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F1C4 xor r5, r21, r3
.text:02B8F1C8 lwz r21, 8(r24)
.text:02B8F1CC xor r6, r5, r25
.text:02B8F1D0 extlwi r25, r3, 1,13
.text:02B8F1D4 addi r3, r1, 0x48+var_40
.text:02B8F1D8 stw r6, 4(r24)
.text:02B8F1DC bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F1E0 xor r7, r21, r3
.text:02B8F1E4 lwz r21, 0xC(r24)
.text:02B8F1E8 xor r8, r7, r25
.text:02B8F1EC extlwi r25, r3, 1,13
.text:02B8F1F0 addi r3, r1, 0x48+var_40
.text:02B8F1F4 stw r8, 8(r24)
.text:02B8F1F8 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F1FC xor r9, r21, r3
.text:02B8F200 lwz r21, 0x10(r24)
.text:02B8F204 xor r10, r9, r25
.text:02B8F208 extlwi r25, r3, 1,13
.text:02B8F20C addi r3, r1, 0x48+var_40
.text:02B8F210 stw r10, 0xC(r24)
.text:02B8F214 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F218 xor r0, r21, r3
.text:02B8F21C lwz r21, 0x14(r24)
.text:02B8F220 xor r0, r0, r25
.text:02B8F224 extlwi r25, r3, 1,13
.text:02B8F228 addi r3, r1, 0x48+var_40
.text:02B8F22C stw r0, 0x10(r24)
.text:02B8F230 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F234 xor r0, r21, r3
.text:02B8F238 lwz r21, 0x18(r24)
.text:02B8F23C xor r4, r0, r25
.text:02B8F240 extlwi r25, r3, 1,13
.text:02B8F244 addi r3, r1, 0x48+var_40
.text:02B8F248 stw r4, 0x14(r24)
.text:02B8F24C bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F250 xor r6, r21, r3
.text:02B8F254 lwz r21, 0x1C(r24)
.text:02B8F258 xor r7, r6, r25
.text:02B8F25C extlwi r25, r3, 1,13
.text:02B8F260 addi r3, r1, 0x48+var_40
.text:02B8F264 stw r7, 0x18(r24)
.text:02B8F268 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F26C xor r8, r21, r3
.text:02B8F270 xor r9, r8, r25
.text:02B8F274 extlwi r25, r3, 1,13
.text:02B8F278 addic. r22, r22, -1
.text:02B8F27C stw r9, 0x1C(r24)
.text:02B8F280 bne loc_2B8F19C
.text:02B8F284
.text:02B8F284 loc_2B8F284: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+204j
.text:02B8F284 clrlwi. r24, r31, 29
.text:02B8F288 ble loc_2B8F2BC
.text:02B8F28C slwi r10, r23, 2
.text:02B8F290 add r31, r30, r10
.text:02B8F294 addi r31, r31, -4
.text:02B8F298
.text:02B8F298 loc_2B8F298: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+32Cj
.text:02B8F298 lwzu r21, 4(r31)
.text:02B8F29C addi r3, r1, 0x48+var_40
.text:02B8F2A0 bl GetInt__Q2_5sysdr8RandomXSFv # sysdr::RandomXS::GetInt((void))
.text:02B8F2A4 xor r11, r21, r3
.text:02B8F2A8 addic. r24, r24, -1
.text:02B8F2AC xor r12, r11, r25
.text:02B8F2B0 extlwi r25, r3, 1,13
.text:02B8F2B4 stw r12, 0(r31)
.text:02B8F2B8 bne loc_2B8F298
.text:02B8F2BC
.text:02B8F2BC loc_2B8F2BC: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+1FCj
.text:02B8F2BC # sysdr::ResourcePackDecrypt((void *,uint))+2FCj
.text:02B8F2BC stw r26, 0x1C(r30)
.text:02B8F2C0
.text:02B8F2C0 loc_2B8F2C0: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+20j
.text:02B8F2C0 # sysdr::ResourcePackDecrypt((void *,uint))+50j ...
.text:02B8F2C0 lha r0, 0x14(r30)
.text:02B8F2C4 cmpwi r0, 3
.text:02B8F2C8 addi r0, r30, 0x60
.text:02B8F2CC blt loc_2B8F30C
.text:02B8F2D0
.text:02B8F2D0 loc_2B8F2D0: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+1ECj
.text:02B8F2D0 lbz r4, 0xA9(r30)
.text:02B8F2D4 cmpwi r4, 0
.text:02B8F2D8 bne loc_2B8F30C
.text:02B8F2DC addi r3, r30, 4
.text:02B8F2E0 addi r4, r27, -4
.text:02B8F2E4 bl crc32__Q2_5sysdr36__N_20_dr_resource_pack_cpp_483f2493FPCvUi
.text:02B8F2E8 lwz r5, 0(r30)
.text:02B8F2EC cmplw r3, r5
.text:02B8F2F0 beq loc_2B8F30C
.text:02B8F2F4
.text:02B8F2F4 loc_2B8F2F4: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+3A4j
.text:02B8F2F4 # sysdr::ResourcePackDecrypt((void *,uint))+3B8j ...
.text:02B8F2F4 lmw r21, 0x48+var_2C(r1)
.text:02B8F2F8 lwz r0, 0x48+arg_4(r1)
.text:02B8F2FC mtlr r0
.text:02B8F300 addi r1, r1, 0x48
.text:02B8F304 li r3, 0
.text:02B8F308 blr
.text:02B8F30C # ---------------------------------------------------------------------------
.text:02B8F30C
.text:02B8F30C loc_2B8F30C: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+1E8j
.text:02B8F30C # sysdr::ResourcePackDecrypt((void *,uint))+340j ...
.text:02B8F30C lha r3, 0x16(r30)
.text:02B8F310 cmpwi r3, 0
.text:02B8F314 mr r31, r0
.text:02B8F318 ble loc_2B8F3F0
.text:02B8F31C srwi. r9, r3, 3
.text:02B8F320 ble loc_2B8F3CC
.text:02B8F324 mtctr r9
.text:02B8F328
.text:02B8F328 loc_2B8F328: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+43Cj
.text:02B8F328 subf r6, r30, r31
.text:02B8F32C cmplw r6, r27
.text:02B8F330 bge loc_2B8F2F4
.text:02B8F334 lwz r7, 0x44(r31)
.text:02B8F338 add r31, r31, r7
.text:02B8F33C subf r8, r30, r31
.text:02B8F340 cmplw r8, r27
.text:02B8F344 bge loc_2B8F2F4
.text:02B8F348 lwz r9, 0x44(r31)
.text:02B8F34C add r31, r31, r9
.text:02B8F350 subf r10, r30, r31
.text:02B8F354 cmplw r10, r27
.text:02B8F358 bge loc_2B8F2F4
.text:02B8F35C lwz r11, 0x44(r31)
.text:02B8F360 add r31, r31, r11
.text:02B8F364 subf r12, r30, r31
.text:02B8F368 cmplw r12, r27
.text:02B8F36C bge loc_2B8F2F4
.text:02B8F370 lwz r0, 0x44(r31)
.text:02B8F374 add r31, r31, r0
.text:02B8F378 subf r4, r30, r31
.text:02B8F37C cmplw r4, r27
.text:02B8F380 bge loc_2B8F2F4
.text:02B8F384 lwz r5, 0x44(r31)
.text:02B8F388 add r31, r31, r5
.text:02B8F38C subf r6, r30, r31
.text:02B8F390 cmplw r6, r27
.text:02B8F394 bge loc_2B8F2F4
.text:02B8F398 lwz r7, 0x44(r31)
.text:02B8F39C add r31, r31, r7
.text:02B8F3A0 subf r8, r30, r31
.text:02B8F3A4 cmplw r8, r27
.text:02B8F3A8 bge loc_2B8F2F4
.text:02B8F3AC lwz r9, 0x44(r31)
.text:02B8F3B0 add r31, r31, r9
.text:02B8F3B4 subf r10, r30, r31
.text:02B8F3B8 cmplw r10, r27
.text:02B8F3BC bge loc_2B8F2F4
.text:02B8F3C0 lwz r11, 0x44(r31)
.text:02B8F3C4 add r31, r31, r11
.text:02B8F3C8 bdnz loc_2B8F328
.text:02B8F3CC
.text:02B8F3CC loc_2B8F3CC: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+394j
.text:02B8F3CC clrlwi. r0, r3, 29
.text:02B8F3D0 ble loc_2B8F3F0
.text:02B8F3D4 mtctr r0
.text:02B8F3D8
.text:02B8F3D8 loc_2B8F3D8: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+460j
.text:02B8F3D8 subf r12, r30, r31
.text:02B8F3DC cmplw r12, r27
.text:02B8F3E0 bge loc_2B8F2F4
.text:02B8F3E4 lwz r0, 0x44(r31)
.text:02B8F3E8 add r31, r31, r0
.text:02B8F3EC bdnz loc_2B8F3D8
.text:02B8F3F0
.text:02B8F3F0 loc_2B8F3F0: # CODE XREF: sysdr::ResourcePackDecrypt((void *,uint))+38Cj
.text:02B8F3F0 # sysdr::ResourcePackDecrypt((void *,uint))+444j
.text:02B8F3F0 lmw r21, 0x48+var_2C(r1)
.text:02B8F3F4 lwz r0, 0x48+arg_4(r1)
.text:02B8F3F8 mtlr r0
.text:02B8F3FC addi r1, r1, 0x48
.text:02B8F400 li r3, 1
.text:02B8F404 blr
.text:02B8F404 # End of function sysdr::ResourcePackDecrypt((void *,uint))
.text:02B8F404
.text:02B8F408
RandomXS
.text:02B5A2E4
.text:02B5A2E4
.text:02B5A2E4 # sysdr::RandomXS::Init((int))
.text:02B5A2E4 Init__Q2_5sysdr8RandomXSFi: # CODE XREF: .text:020292D8p
.text:02B5A2E4 # fr::AvatarIntroduction::AvatarIntroduction((sysdr::ResourceList *))+48p ...
.text:02B5A2E4 lis r12, 0x41C6 # 0x41C64E6D
.text:02B5A2E8 addi r12, r12, 0x4E6D # 0x41C64E6D
.text:02B5A2EC mullw r10, r4, r12
.text:02B5A2F0 addi r0, r10, 0x3039
.text:02B5A2F4 mullw r11, r0, r12
.text:02B5A2F8 stw r0, 0(r3)
.text:02B5A2FC addi r0, r11, 0x3039
.text:02B5A300 mullw r10, r0, r12
.text:02B5A304 stw r0, 4(r3)
.text:02B5A308 addi r0, r10, 0x3039
.text:02B5A30C mullw r11, r0, r12
.text:02B5A310 stw r0, 8(r3)
.text:02B5A314 addi r0, r11, 0x3039
.text:02B5A318 stw r0, 0xC(r3)
.text:02B5A31C blr
.text:02B5A31C # End of function sysdr::RandomXS::Init((int))
.text:02B5A31C
.text:02B5A320
RandomXSFv:
.text:02B5A320
.text:02B5A320
.text:02B5A320 # sysdr::RandomXS::GetInt((void))
.text:02B5A320 GetInt__Q2_5sysdr8RandomXSFv: # CODE XREF: fr::actor::BehaviorAnimationBase::getRandomAnimationName((void))+A4p
.text:02B5A320 # fr::AvatarIntroduction::GetAvatarIntroductionSet((enPokemonId,cardRegistration::SelectedAvatar,fr::AvatarIntroductionData::CUT_SCENE_TYPE))+98p ...
.text:02B5A320 lwz r0, 0xC(r3)
.text:02B5A324 lwz r10, 0(r3)
.text:02B5A328 slwi r9, r0, 11
.text:02B5A32C lwz r8, 8(r3)
.text:02B5A330 xor r7, r0, r9
.text:02B5A334 lwz r9, 4(r3)
.text:02B5A338 srawi r11, r10, 0x13
.text:02B5A33C srawi r0, r7, 8
.text:02B5A340 stw r10, 4(r3)
.text:02B5A344 xor r11, r10, r11
.text:02B5A348 xor r7, r7, r0
.text:02B5A34C stw r8, 0xC(r3)
.text:02B5A350 xor r0, r11, r7
.text:02B5A354 stw r9, 8(r3)
.text:02B5A358 stw r0, 0(r3)
.text:02B5A35C clrlwi r3, r0, 1
.text:02B5A360 blr
.text:02B5A360 # End of function sysdr::RandomXS::GetInt((void))
.text:02B5A360
.text:02B5A364
 

Attachments

  • p000_000_main.zip
    135.2 KB · Views: 197
  • Like
Reactions: Sliter

mariosonicds

Well-Known Member
Member
Joined
Oct 9, 2009
Messages
143
Trophies
1
XP
466
Country
United States
Hey best great work. I know that it uses similar but modified formats to sm4sh. So if you need some tools to edit, illl port them over.
 

soneek

Well-Known Member
Member
Joined
Jun 27, 2012
Messages
179
Trophies
0
XP
337
Country
United States
I started a drp unpacker/repacker, though it'll only be useful once we have the drp files decrypted. I'm using drp files from other Namco games as a reference.
 

mariosonicds

Well-Known Member
Member
Joined
Oct 9, 2009
Messages
143
Trophies
1
XP
466
Country
United States
I think, since its Namco who made the game they have figured desyncing into the mix. Thats how it is one sm4sh 3ds and Wii U works... Kicks you if you desync.
 

aracom

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
476
Trophies
0
XP
363
Country
Gambia, The
just super hope nobody makes a online trainer for it or something nuts that will hurt many players, however Ive faith people wont as its a great online game.
You can do that without any file modifications. Look what we've done with splatoon. Luckily, Nintendo bans people more aggressively, and there's no public method to unban.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: I really need to dig out my USB Wii sensor bar and experiment with Wii emulation and synching...