diff --git a/.gitignore b/.gitignore index d5be6be..7ab64db 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ build_log.txt *.bak *.log1 ReShade.ini +*.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 84a7b54..652a3d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,8 @@ set(RETIP_SOURCES src/tip_engine/Overlays/TiPTools/GraphicsMenu.cpp src/tip_engine/Overlays/TiPTools/SettingsMenu.cpp src/tip_engine/Overlays/TiPTools/PinataMenu.cpp + src/tip_engine/Overlays/TiPTools/PlantMenu.cpp + src/tip_engine/Overlays/TiPTools/RuffianMenu.cpp src/tip_engine/SleepHooks.cpp # Vendor sources diff --git a/config/retip_hooked.toml b/config/retip_hooked.toml index 8a8f258..4870e8e 100644 --- a/config/retip_hooked.toml +++ b/config/retip_hooked.toml @@ -24,13 +24,16 @@ 0x82558D28 = {name = "rex_supportPinataActorIsOnSurfaceWithPreference_82558D28"} 0x82247408 = {name = "rex_mlMtxPerspective_82247408"} 0x8228BE08 = {name = "rex_supportFrustumConstructClippingFrustum_8228BE08"} -#0x822C1E88 = {name = "rex_cursorCameraTick_822C1E88"} +0x822C1E88 = {name = "rex_cursorCameraTick_822C1E88"} #0x822C4260 = {name = "rex_cursorInstLocksIsLockSet_822C4260"} 0x822C1CE0 = {name = "rex_meCursorCamCalculateZoom_822C1CE0"} 0x822C1B18 = {name = "rex_meCursorCamCalculateYaw_822C1B18"} -#0x821EBE28 = {name = "rex_meCursorCamCalculatePos_821EBE28"} +0x821EBE28 = {name = "rex_meCursorCamCalculatePos_821EBE28"} 0x822C1C00 = {name = "rex_meCursorCamCalculatePitch_822C1C00"} 0x821F0F30 = {name = "rex_meUpdateOutputViewport_821F0F30"} 0x82B0A740 = {name = "rex_XInputGetKeystroke_82B0A740"} 0x826B2DE0 = {name = "rex_XuiProcessInput_826B2DE0"} -0x8229A968 = {name = "rex_CXuiModule__ProcessInput_8229A968"} \ No newline at end of file +0x8229A968 = {name = "rex_CXuiModule__ProcessInput_8229A968"} +0x82250578 = {name = "rex_objMsgInit_82250578"} +0x822BEB40 = {name = "rex_bifWatermeterSetLevel_822BEB40"} +0x823F89E0 = {name = "rex_meCreateRuffianActor_823F89E0"} \ No newline at end of file diff --git a/generated/retip_init.cpp b/generated/retip_init.cpp index 5f66377..10d76c1 100644 --- a/generated/retip_init.cpp +++ b/generated/retip_init.cpp @@ -1025,7 +1025,7 @@ PPCFuncMapping PPCFuncMappings[] = { { 0x821EBD00, sub_821EBD00 }, { 0x821EBD58, sub_821EBD58 }, { 0x821EBDC0, sub_821EBDC0 }, - { 0x821EBE28, sub_821EBE28 }, + { 0x821EBE28, rex_meCursorCamCalculatePos_821EBE28 }, { 0x821EBF30, sub_821EBF30 }, { 0x821EBFB0, sub_821EBFB0 }, { 0x821EC048, sub_821EC048 }, @@ -2419,7 +2419,7 @@ PPCFuncMapping PPCFuncMappings[] = { { 0x82250310, sub_82250310 }, { 0x82250368, sub_82250368 }, { 0x82250520, sub_82250520 }, - { 0x82250578, sub_82250578 }, + { 0x82250578, rex_objMsgInit_82250578 }, { 0x82250618, sub_82250618 }, { 0x822506D0, sub_822506D0 }, { 0x82250800, sub_82250800 }, @@ -3809,7 +3809,7 @@ PPCFuncMapping PPCFuncMappings[] = { { 0x822BE980, sub_822BE980 }, { 0x822BE9F8, sub_822BE9F8 }, { 0x822BEAE0, sub_822BEAE0 }, - { 0x822BEB40, sub_822BEB40 }, + { 0x822BEB40, rex_bifWatermeterSetLevel_822BEB40 }, { 0x822BEC50, sub_822BEC50 }, { 0x822BEDD8, sub_822BEDD8 }, { 0x822BEEF8, sub_822BEEF8 }, @@ -3846,7 +3846,7 @@ PPCFuncMapping PPCFuncMappings[] = { { 0x822C1B18, rex_meCursorCamCalculateYaw_822C1B18 }, { 0x822C1C00, rex_meCursorCamCalculatePitch_822C1C00 }, { 0x822C1CE0, rex_meCursorCamCalculateZoom_822C1CE0 }, - { 0x822C1E88, sub_822C1E88 }, + { 0x822C1E88, rex_cursorCameraTick_822C1E88 }, { 0x822C2048, sub_822C2048 }, { 0x822C23C8, sub_822C23C8 }, { 0x822C24A8, sub_822C24A8 }, @@ -6625,7 +6625,7 @@ PPCFuncMapping PPCFuncMappings[] = { { 0x823F8690, sub_823F8690 }, { 0x823F8748, sub_823F8748 }, { 0x823F8838, sub_823F8838 }, - { 0x823F89E0, sub_823F89E0 }, + { 0x823F89E0, rex_meCreateRuffianActor_823F89E0 }, { 0x823F8C08, sub_823F8C08 }, { 0x823F8D18, sub_823F8D18 }, { 0x823F8E48, sub_823F8E48 }, diff --git a/generated/retip_init.h b/generated/retip_init.h index cd47613..06fd1ce 100644 --- a/generated/retip_init.h +++ b/generated/retip_init.h @@ -1024,7 +1024,7 @@ PPC_EXTERN_IMPORT(sub_821EBCA0); PPC_EXTERN_IMPORT(sub_821EBD00); PPC_EXTERN_IMPORT(sub_821EBD58); PPC_EXTERN_IMPORT(sub_821EBDC0); -PPC_EXTERN_IMPORT(sub_821EBE28); +PPC_EXTERN_IMPORT(rex_meCursorCamCalculatePos_821EBE28); PPC_EXTERN_IMPORT(sub_821EBF30); PPC_EXTERN_IMPORT(sub_821EBFB0); PPC_EXTERN_IMPORT(sub_821EC048); @@ -2418,7 +2418,7 @@ PPC_EXTERN_IMPORT(sub_82250170); PPC_EXTERN_IMPORT(sub_82250310); PPC_EXTERN_IMPORT(sub_82250368); PPC_EXTERN_IMPORT(sub_82250520); -PPC_EXTERN_IMPORT(sub_82250578); +PPC_EXTERN_IMPORT(rex_objMsgInit_82250578); PPC_EXTERN_IMPORT(sub_82250618); PPC_EXTERN_IMPORT(sub_822506D0); PPC_EXTERN_IMPORT(sub_82250800); @@ -3808,7 +3808,7 @@ PPC_EXTERN_IMPORT(sub_822BE838); PPC_EXTERN_IMPORT(sub_822BE980); PPC_EXTERN_IMPORT(sub_822BE9F8); PPC_EXTERN_IMPORT(sub_822BEAE0); -PPC_EXTERN_IMPORT(sub_822BEB40); +PPC_EXTERN_IMPORT(rex_bifWatermeterSetLevel_822BEB40); PPC_EXTERN_IMPORT(sub_822BEC50); PPC_EXTERN_IMPORT(sub_822BEDD8); PPC_EXTERN_IMPORT(sub_822BEEF8); @@ -3845,7 +3845,7 @@ PPC_EXTERN_IMPORT(sub_822C1750); PPC_EXTERN_IMPORT(rex_meCursorCamCalculateYaw_822C1B18); PPC_EXTERN_IMPORT(rex_meCursorCamCalculatePitch_822C1C00); PPC_EXTERN_IMPORT(rex_meCursorCamCalculateZoom_822C1CE0); -PPC_EXTERN_IMPORT(sub_822C1E88); +PPC_EXTERN_IMPORT(rex_cursorCameraTick_822C1E88); PPC_EXTERN_IMPORT(sub_822C2048); PPC_EXTERN_IMPORT(sub_822C23C8); PPC_EXTERN_IMPORT(sub_822C24A8); @@ -6624,7 +6624,7 @@ PPC_EXTERN_IMPORT(sub_823F85D0); PPC_EXTERN_IMPORT(sub_823F8690); PPC_EXTERN_IMPORT(sub_823F8748); PPC_EXTERN_IMPORT(sub_823F8838); -PPC_EXTERN_IMPORT(sub_823F89E0); +PPC_EXTERN_IMPORT(rex_meCreateRuffianActor_823F89E0); PPC_EXTERN_IMPORT(sub_823F8C08); PPC_EXTERN_IMPORT(sub_823F8D18); PPC_EXTERN_IMPORT(sub_823F8E48); diff --git a/generated/retip_recomp.0.cpp b/generated/retip_recomp.0.cpp index e270fe1..a404d8c 100644 --- a/generated/retip_recomp.0.cpp +++ b/generated/retip_recomp.0.cpp @@ -2932,7 +2932,7 @@ PPC_FUNC_IMPL(__imp__sub_821A12B0) { ctx.f31.f64 = ctx.f1.f64; // bl 0x82250578 ctx.lr = 0x821A12FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,104(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 104); // stw r28,84(r1) @@ -4095,7 +4095,7 @@ PPC_FUNC_IMPL(__imp__sub_821A1A78) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821A1AAC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -14213,7 +14213,7 @@ PPC_FUNC_IMPL(__imp__sub_821A5DD8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821A5E98; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // lwz r11,0(r31) @@ -14663,7 +14663,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6158) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821A6198; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,2412(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2412); // addi r4,r1,80 @@ -14752,7 +14752,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6158) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821A6238; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // li r4,163 @@ -14763,7 +14763,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6158) { PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821A624C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,2412(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2412); // addi r4,r1,88 @@ -14867,7 +14867,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6288) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821A6300; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // li r4,163 @@ -14878,7 +14878,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6288) { PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821A6314; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,2412(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2412); // addi r4,r1,88 @@ -15038,7 +15038,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6360) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821A6430; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // li r4,163 @@ -15049,7 +15049,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6360) { PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821A6444; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,2408(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2408); // addi r4,r1,88 @@ -15138,7 +15138,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6490) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821A64E0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // li r4,163 @@ -15149,7 +15149,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6490) { PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821A64F4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,2408(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2408); // addi r4,r1,88 @@ -16057,7 +16057,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6A98) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821A6B38; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -16491,7 +16491,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6B68) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x821A6E74; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lhz r11,32(r27) ctx.r11.u64 = PPC_LOAD_U16(ctx.r27.u32 + 32); // lwz r10,36(r27) @@ -16561,7 +16561,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6B68) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821A6EE0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,4(r27) ctx.r11.u64 = PPC_LOAD_U32(ctx.r27.u32 + 4); // lwz r10,0(r31) @@ -16607,7 +16607,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6B68) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x821A6F34; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,4(r27) ctx.r11.u64 = PPC_LOAD_U32(ctx.r27.u32 + 4); // lwz r10,0(r31) @@ -16767,7 +16767,7 @@ PPC_FUNC_IMPL(__imp__sub_821A6B68) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821A703C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -17740,7 +17740,7 @@ PPC_FUNC_IMPL(__imp__sub_821A7450) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821A76F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // addi r4,r1,80 @@ -17830,7 +17830,7 @@ PPC_FUNC_IMPL(__imp__sub_821A7450) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821A7790; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lbz r11,20(r31) ctx.r11.u64 = PPC_LOAD_U8(ctx.r31.u32 + 20); // addi r4,r31,20 @@ -69749,7 +69749,7 @@ PPC_FUNC_IMPL(__imp__sub_821BD7D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821BD828; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r10,0 @@ -71138,7 +71138,7 @@ PPC_FUNC_IMPL(__imp__sub_821BE170) { ctx.r6.u64 = ctx.r3.u64; // bl 0x821ebe28 ctx.lr = 0x821BE184; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,2416(r6) ctx.r11.u64 = PPC_LOAD_U32(ctx.r6.u32 + 2416); // cmplwi cr6,r11,0 @@ -71340,7 +71340,7 @@ PPC_FUNC_IMPL(__imp__sub_821BE1E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821BE2D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -74094,7 +74094,7 @@ PPC_FUNC_IMPL(__imp__sub_821BF158) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821BF5CC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -74810,7 +74810,7 @@ PPC_FUNC_IMPL(__imp__sub_821BF660) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821BFA84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 diff --git a/generated/retip_recomp.1.cpp b/generated/retip_recomp.1.cpp index 0c6fcae..cc0193c 100644 --- a/generated/retip_recomp.1.cpp +++ b/generated/retip_recomp.1.cpp @@ -11810,7 +11810,7 @@ PPC_FUNC_IMPL(__imp__sub_821C7540) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821C769C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r26.u32); // stw r24,88(r1) @@ -11971,7 +11971,7 @@ PPC_FUNC_IMPL(__imp__sub_821C76B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821C77B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -12186,7 +12186,7 @@ PPC_FUNC_IMPL(__imp__sub_821C76B8) { PPC_STORE_U32(ctx.r31.u32 + 12, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821C793C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r27.u32); // addi r3,r1,96 @@ -12201,7 +12201,7 @@ PPC_FUNC_IMPL(__imp__sub_821C76B8) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x821C7954; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x8228e258 @@ -12373,7 +12373,7 @@ PPC_FUNC_IMPL(__imp__sub_821C76B8) { PPC_STORE_U32(ctx.r31.u32 + 12, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821C7A8C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,108(r1) PPC_STORE_U32(ctx.r1.u32 + 108, ctx.r27.u32); // addi r3,r1,104 @@ -12388,7 +12388,7 @@ PPC_FUNC_IMPL(__imp__sub_821C76B8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x821C7AA4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,88 ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x8228e258 @@ -12964,7 +12964,7 @@ PPC_FUNC_IMPL(__imp__sub_821C7DE8) { PPC_STORE_U32(ctx.r31.u32 + 12, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821C7EA4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r8,1 ctx.r8.s64 = 1; // addi r3,r1,88 @@ -12981,7 +12981,7 @@ PPC_FUNC_IMPL(__imp__sub_821C7DE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821C7EC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -13172,7 +13172,7 @@ PPC_FUNC_IMPL(__imp__sub_821C7F48) { PPC_STORE_U32(ctx.r31.u32 + 12, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821C8004; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r8,1 ctx.r8.s64 = 1; // addi r3,r1,88 @@ -13189,7 +13189,7 @@ PPC_FUNC_IMPL(__imp__sub_821C7F48) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821C8020; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -13345,7 +13345,7 @@ PPC_FUNC_IMPL(__imp__sub_821C8068) { PPC_STORE_U32(ctx.r31.u32 + 12, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821C8130; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // addi r3,r1,88 @@ -13362,7 +13362,7 @@ PPC_FUNC_IMPL(__imp__sub_821C8068) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821C814C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -13473,7 +13473,7 @@ PPC_FUNC_IMPL(__imp__sub_821C8068) { PPC_STORE_U32(ctx.r31.u32 + 12, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x821C8210; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r3,r1,96 @@ -14299,7 +14299,7 @@ PPC_FUNC_IMPL(__imp__sub_821C86F8) { ctx.r3.s64 = ctx.r1.s64 + 116; // bl 0x82250578 ctx.lr = 0x821C87D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,116 ctx.r3.s64 = ctx.r1.s64 + 116; // bl 0x821cb878 @@ -14375,7 +14375,7 @@ PPC_FUNC_IMPL(__imp__sub_821C86F8) { ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x82250578 ctx.lr = 0x821C885C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,120 ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x821cb878 @@ -17976,7 +17976,7 @@ PPC_FUNC_IMPL(__imp__sub_821CA050) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821CA0AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // lwz r31,240(r30) @@ -18096,7 +18096,7 @@ PPC_FUNC_IMPL(__imp__sub_821CA118) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821CA178; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r30,240(r31) @@ -18196,7 +18196,7 @@ PPC_FUNC_IMPL(__imp__sub_821CA1F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821CA21C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r10,r11,28528 @@ -67414,7 +67414,7 @@ PPC_FUNC_IMPL(__imp__sub_821DEC78) { ctx.r28.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x821DECA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // stfs f31,84(r1) @@ -67479,7 +67479,7 @@ PPC_FUNC_IMPL(__imp__sub_821DECE0) { ctx.r29.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x821DED0C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // stfs f31,84(r1) @@ -69460,7 +69460,7 @@ PPC_FUNC_IMPL(__imp__sub_821DF9F8) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x821DFA30; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lfs f0,176(r31) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 176); @@ -71494,7 +71494,7 @@ PPC_FUNC_IMPL(__imp__sub_821E0318) { PPC_STORE_U32(ctx.r31.u32 + 8, temp.u32); // bl 0x82250578 ctx.lr = 0x821E07C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,4(r22) ctx.r11.u64 = PPC_LOAD_U32(ctx.r22.u32 + 4); // lfs f0,0(r31) diff --git a/generated/retip_recomp.10.cpp b/generated/retip_recomp.10.cpp index e807c5c..82035fb 100644 --- a/generated/retip_recomp.10.cpp +++ b/generated/retip_recomp.10.cpp @@ -824,7 +824,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r3.s64 = ctx.r1.s64 + 232; // bl 0x82250578 ctx.lr = 0x822DBFE8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,240(r1) PPC_STORE_U32(ctx.r1.u32 + 240, ctx.r23.u32); // stw r23,236(r1) @@ -982,7 +982,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r3.s64 = ctx.r1.s64 + 280; // bl 0x82250578 ctx.lr = 0x822DC0FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,288(r1) PPC_STORE_U32(ctx.r1.u32 + 288, ctx.r23.u32); // stw r23,284(r1) @@ -1228,7 +1228,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r3.s64 = ctx.r1.s64 + 200; // bl 0x82250578 ctx.lr = 0x822DC2AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,204(r1) PPC_STORE_U32(ctx.r1.u32 + 204, ctx.r23.u32); // stw r23,208(r1) @@ -1927,7 +1927,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { PPC_STORE_U32(ctx.r1.u32 + 180, temp.u32); // bl 0x821ebe28 ctx.lr = 0x822DC754; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -2060,7 +2060,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r3.s64 = ctx.r1.s64 + 296; // bl 0x82250578 ctx.lr = 0x822DC83C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,304(r1) PPC_STORE_U32(ctx.r1.u32 + 304, ctx.r23.u32); // stw r23,300(r1) @@ -3248,7 +3248,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 8); // bl 0x82250578 ctx.lr = 0x822DD07C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r16,268(r1) PPC_STORE_U32(ctx.r1.u32 + 268, ctx.r16.u32); // addi r4,r1,264 @@ -3515,7 +3515,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 8); // bl 0x82250578 ctx.lr = 0x822DD25C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,224(r1) PPC_STORE_U32(ctx.r1.u32 + 224, ctx.r30.u32); // addi r4,r1,216 @@ -3942,7 +3942,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 8); // bl 0x82250578 ctx.lr = 0x822DD55C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r16,252(r1) PPC_STORE_U32(ctx.r1.u32 + 252, ctx.r16.u32); // addi r4,r1,248 @@ -4872,7 +4872,7 @@ PPC_FUNC_IMPL(__imp__sub_822DBA30) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x822DDBF0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r20,196(r1) PPC_STORE_U32(ctx.r1.u32 + 196, ctx.r20.u32); // addi r4,r1,192 @@ -5148,7 +5148,7 @@ PPC_FUNC_IMPL(__imp__sub_822DDD20) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822DDDC8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -6148,7 +6148,7 @@ PPC_FUNC_IMPL(__imp__sub_822DE3F8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822DE490; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -7812,7 +7812,7 @@ PPC_FUNC_IMPL(__imp__sub_822DEDC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822DEFDC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -7934,7 +7934,7 @@ PPC_FUNC_IMPL(__imp__sub_822DF000) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822DF0A4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -8329,7 +8329,7 @@ PPC_FUNC_IMPL(__imp__sub_822DF0B8) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r30.u32 + 1048); // bl 0x82250578 ctx.lr = 0x822DF360; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,124(r1) PPC_STORE_U32(ctx.r1.u32 + 124, ctx.r31.u32); // addi r3,r1,120 @@ -8863,7 +8863,7 @@ PPC_FUNC_IMPL(__imp__sub_822DF660) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x822DF6EC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,122 @@ -9199,7 +9199,7 @@ PPC_FUNC_IMPL(__imp__sub_822DF660) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822DF938; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -9630,7 +9630,7 @@ PPC_FUNC_IMPL(__imp__sub_822DFA20) { PPC_STORE_U32(ctx.r30.u32 + 3824, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x822DFC18; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -9708,7 +9708,7 @@ PPC_FUNC_IMPL(__imp__sub_822DFA20) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x822DFCA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x8228e258 @@ -10990,7 +10990,7 @@ PPC_FUNC_IMPL(__imp__sub_822E0420) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x822E0520; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f30,200(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f30.f64); @@ -12648,7 +12648,7 @@ PPC_FUNC_IMPL(__imp__sub_822E0FE0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822E1024; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,15 @@ -14483,7 +14483,7 @@ PPC_FUNC_IMPL(__imp__sub_822E1AE8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822E1C9C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r25,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r25.u32); // stw r25,104(r1) @@ -15021,7 +15021,7 @@ PPC_FUNC_IMPL(__imp__sub_822E1EE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822E2060; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r29,84(r1) @@ -30388,7 +30388,7 @@ PPC_FUNC_IMPL(__imp__sub_822E8668) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x822E8840; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9381 ctx.r11.s64 = 9381; // stw r29,120(r1) @@ -30417,7 +30417,7 @@ PPC_FUNC_IMPL(__imp__sub_822E8668) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x822E8874; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9225 ctx.r11.s64 = 9225; // stw r29,136(r1) @@ -34656,7 +34656,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822EA600; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9381 ctx.r11.s64 = 9381; // stw r24,104(r1) @@ -34678,7 +34678,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x822EA628; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9225 ctx.r11.s64 = 9225; // stw r24,120(r1) @@ -34832,7 +34832,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x822EA738; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,196(r1) PPC_STORE_U32(ctx.r1.u32 + 196, ctx.r30.u32); // stw r31,200(r1) @@ -34889,7 +34889,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x822EA79C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,148(r1) PPC_STORE_U32(ctx.r1.u32 + 148, ctx.r31.u32); // stw r24,152(r1) @@ -34987,7 +34987,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x822EA84C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r16,132(r1) PPC_STORE_U32(ctx.r1.u32 + 132, ctx.r16.u32); // stw r24,136(r1) @@ -35005,7 +35005,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 208; // bl 0x82250578 ctx.lr = 0x822EA86C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,212(r1) PPC_STORE_U32(ctx.r1.u32 + 212, ctx.r30.u32); // stw r31,216(r1) @@ -35107,7 +35107,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x822EA928; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r16,164(r1) PPC_STORE_U32(ctx.r1.u32 + 164, ctx.r16.u32); // stw r24,168(r1) @@ -35125,7 +35125,7 @@ PPC_FUNC_IMPL(__imp__sub_822EA5B0) { ctx.r3.s64 = ctx.r1.s64 + 176; // bl 0x82250578 ctx.lr = 0x822EA948; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,180(r1) PPC_STORE_U32(ctx.r1.u32 + 180, ctx.r31.u32); // stw r24,184(r1) @@ -38060,7 +38060,7 @@ PPC_FUNC_IMPL(__imp__sub_822EBCC0) { PPC_STORE_U32(ctx.r31.u32 + 3784, ctx.r8.u32); // bl 0x82250578 ctx.lr = 0x822EBD14; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,3 ctx.r11.s64 = 3; // addi r7,r1,80 @@ -43355,7 +43355,7 @@ PPC_FUNC_IMPL(__imp__sub_822EDD88) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r11.u32 + 60); // bl 0x82250578 ctx.lr = 0x822EE068; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // addi r4,r1,88 @@ -43615,7 +43615,7 @@ PPC_FUNC_IMPL(__imp__sub_822EE198) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822EE204; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r29,88(r1) @@ -50732,7 +50732,7 @@ PPC_FUNC_IMPL(__imp__sub_822F1050) { ctx.f31.f64 = double(float(ctx.f3.f64 * ctx.f0.f64)); // bl 0x82250578 ctx.lr = 0x822F1130; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r7,1 ctx.r7.s64 = 1; // fmr f2,f31 @@ -50893,7 +50893,7 @@ PPC_FUNC_IMPL(__imp__sub_822F1160) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r9.u32 + 0); // bl 0x82250578 ctx.lr = 0x822F1238; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r29.u32); // lis r8,-32241 diff --git a/generated/retip_recomp.11.cpp b/generated/retip_recomp.11.cpp index 9f8f84d..e8081ac 100644 --- a/generated/retip_recomp.11.cpp +++ b/generated/retip_recomp.11.cpp @@ -26886,7 +26886,7 @@ PPC_FUNC_IMPL(__imp__sub_82305898) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x823059FC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r4,r31 ctx.r4.u64 = ctx.r31.u64; // mr r3,r30 @@ -30924,7 +30924,7 @@ PPC_FUNC_IMPL(__imp__sub_82307528) { if (ctx.cr6.eq) goto loc_823075D4; // bl 0x821ebe28 ctx.lr = 0x823075C0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r4,r6 ctx.r4.u64 = ctx.r6.u64; // lwz r3,3868(r31) @@ -33252,7 +33252,7 @@ PPC_FUNC_IMPL(__imp__sub_82308490) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x82308570; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); loc_82308570: // lfs f0,312(r30) ctx.fpscr.disableFlushMode(); @@ -34243,7 +34243,7 @@ PPC_FUNC_IMPL(__imp__sub_82308B30) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x82308C40; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); loc_82308C40: // lfs f0,240(r30) ctx.fpscr.disableFlushMode(); @@ -41152,7 +41152,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.f1.f64 = double(float(ctx.f11.f64 * ctx.f0.f64 + ctx.f13.f64)); // bl 0x822beb40 ctx.lr = 0x8230BB74; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // li r3,0 ctx.r3.s64 = 0; // bl 0x821c2158 @@ -41189,7 +41189,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.f1.f64 = double(float(ctx.f11.f64 * ctx.f0.f64 + ctx.f13.f64)); // bl 0x822beb40 ctx.lr = 0x8230BBB0; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // lwz r10,4232(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4232); // stw r27,3848(r31) @@ -41277,7 +41277,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.r3.u64 = ctx.r29.u64; // bl 0x822beb40 ctx.lr = 0x8230BC44; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // li r3,0 ctx.r3.s64 = 0; // bl 0x821c2158 @@ -41697,7 +41697,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8230BF34; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // li r10,1 @@ -41736,7 +41736,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x8230BF7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // li r10,1 @@ -41865,7 +41865,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.r3.s64 = ctx.r1.s64 + 92; // bl 0x82250578 ctx.lr = 0x8230C064; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,92 @@ -42042,7 +42042,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r28.u32 + 12); // bl 0x82250578 ctx.lr = 0x8230C198; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r29,r27 ctx.r29.u64 = ctx.r27.u64; // cmplw cr6,r27,r26 @@ -42484,7 +42484,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.f1.f64 = double(float(ctx.f11.f64 * ctx.f0.f64 + ctx.f12.f64)); // bl 0x822beb40 ctx.lr = 0x8230C4C8; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // lwz r10,4232(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4232); // cmpwi cr6,r10,0 @@ -42547,7 +42547,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x8230C534; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // stw r27,4072(r31) PPC_STORE_U32(ctx.r31.u32 + 4072, ctx.r27.u32); // b 0x8230cb40 @@ -42563,7 +42563,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.r3.u64 = ctx.r29.u64; // bl 0x822beb40 ctx.lr = 0x8230C54C; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // li r3,0 ctx.r3.s64 = 0; // lbz r28,16(r30) @@ -43086,7 +43086,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x8230C8DC; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // b 0x8230cb40 goto loc_8230CB40; loc_8230C8E0: @@ -43342,7 +43342,7 @@ PPC_FUNC_IMPL(__imp__sub_8230AEC0) { ctx.r29.s64 = ctx.r30.s64 + 4; // bl 0x82250578 ctx.lr = 0x8230CAB8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // li r10,1 @@ -43547,7 +43547,7 @@ PPC_FUNC_IMPL(__imp__sub_8230CB60) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8230CC14; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // li r10,1 @@ -43657,7 +43657,7 @@ PPC_FUNC_IMPL(__imp__sub_8230CB60) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8230CCD4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // li r10,1 @@ -43780,7 +43780,7 @@ PPC_FUNC_IMPL(__imp__sub_8230CD50) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r29.u32 + 12); // bl 0x82250578 ctx.lr = 0x8230CDA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r26 ctx.r31.u64 = ctx.r26.u64; // cmplw cr6,r26,r27 @@ -46974,7 +46974,7 @@ PPC_FUNC_IMPL(__imp__sub_8230E048) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 3996); // bl 0x82250578 ctx.lr = 0x8230E324; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,96 @@ -47639,7 +47639,7 @@ PPC_FUNC_IMPL(__imp__sub_8230E048) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8230E794; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -47705,7 +47705,7 @@ PPC_FUNC_IMPL(__imp__sub_8230E048) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 3996); // bl 0x82250578 ctx.lr = 0x8230E804; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // stw r25,136(r1) @@ -48572,7 +48572,7 @@ PPC_FUNC_IMPL(__imp__sub_8230E048) { ctx.r3.s64 = ctx.r1.s64 + 92; // bl 0x82250578 ctx.lr = 0x8230EDC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,92 @@ -49976,7 +49976,7 @@ PPC_FUNC_IMPL(__imp__sub_8230F678) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x8230F774; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); loc_8230F774: // lfs f0,344(r28) ctx.fpscr.disableFlushMode(); @@ -51220,7 +51220,7 @@ PPC_FUNC_IMPL(__imp__sub_8230FF30) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8230FFF0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,96 @@ -54502,7 +54502,7 @@ PPC_FUNC_IMPL(__imp__sub_82311458) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x823115A0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_823115A0: // addi r1,r1,160 ctx.r1.s64 = ctx.r1.s64 + 160; @@ -54584,7 +54584,7 @@ PPC_FUNC_IMPL(__imp__sub_823115B8) { PPC_STORE_U32(ctx.r1.u32 + 100, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8231161C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -56099,7 +56099,7 @@ PPC_FUNC_IMPL(__imp__sub_82311F48) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82311FCC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,100 ctx.r4.s64 = ctx.r1.s64 + 100; // mr r3,r31 @@ -56633,7 +56633,7 @@ PPC_FUNC_IMPL(__imp__sub_82312300) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82312358; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // addi r4,r1,84 @@ -57279,7 +57279,7 @@ PPC_FUNC_IMPL(__imp__sub_82312650) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x823127A8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r26.u32); // lwz r11,0(r29) @@ -58159,7 +58159,7 @@ PPC_FUNC_IMPL(__imp__sub_82312CE8) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82312D24; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // lfs f0,88(r1) @@ -60429,7 +60429,7 @@ PPC_FUNC_IMPL(__imp__sub_82313BB8) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x82313CA0; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // lfs f0,324(r30) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 324); @@ -61418,7 +61418,7 @@ PPC_FUNC_IMPL(__imp__sub_82314258) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x82314370; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // lfs f0,252(r30) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 252); @@ -62928,7 +62928,7 @@ PPC_FUNC_IMPL(__imp__sub_82314C10) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 3984); // bl 0x82250578 ctx.lr = 0x82314D64; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,96 @@ -63671,7 +63671,7 @@ PPC_FUNC_IMPL(__imp__sub_82314C10) { ctx.r3.s64 = ctx.r1.s64 + 100; // bl 0x82250578 ctx.lr = 0x82315268; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,100 @@ -64320,7 +64320,7 @@ PPC_FUNC_IMPL(__imp__sub_82315640) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823156A4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,-1 ctx.r10.s64 = -1; // li r11,0 @@ -67731,7 +67731,7 @@ PPC_FUNC_IMPL(__imp__sub_82316A88) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r28.u32 + 12); // bl 0x82250578 ctx.lr = 0x82316E38; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r29,r27 ctx.r29.u64 = ctx.r27.u64; // cmplw cr6,r27,r26 @@ -68978,7 +68978,7 @@ PPC_FUNC_IMPL(__imp__sub_82316A88) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823176C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,88 @@ -69081,7 +69081,7 @@ PPC_FUNC_IMPL(__imp__sub_82316A88) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r28.u32 + 12); // bl 0x82250578 ctx.lr = 0x82317778; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r29,r27 ctx.r29.u64 = ctx.r27.u64; // cmplw cr6,r27,r26 @@ -69456,7 +69456,7 @@ PPC_FUNC_IMPL(__imp__sub_82316A88) { ctx.f1.f64 = double(float(ctx.f11.f64 * ctx.f0.f64 + ctx.f13.f64)); // bl 0x822beb40 ctx.lr = 0x82317A1C; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // lwz r10,4280(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4280); // cmpwi cr6,r10,0 @@ -69519,7 +69519,7 @@ PPC_FUNC_IMPL(__imp__sub_82316A88) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x82317A88; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // stw r27,4080(r31) PPC_STORE_U32(ctx.r31.u32 + 4080, ctx.r27.u32); // mr r4,r30 @@ -69545,7 +69545,7 @@ PPC_FUNC_IMPL(__imp__sub_82316A88) { ctx.r3.u64 = ctx.r29.u64; // bl 0x822beb40 ctx.lr = 0x82317AB0; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // li r3,0 ctx.r3.s64 = 0; // lbz r28,16(r30) @@ -71717,7 +71717,7 @@ PPC_FUNC_IMPL(__imp__sub_82318808) { ctx.f1.f64 = double(float(ctx.f11.f64 * ctx.f0.f64 + ctx.f13.f64)); // bl 0x822beb40 ctx.lr = 0x82318998; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // li r3,0 ctx.r3.s64 = 0; // bl 0x821c2158 @@ -71754,7 +71754,7 @@ PPC_FUNC_IMPL(__imp__sub_82318808) { ctx.f1.f64 = double(float(ctx.f11.f64 * ctx.f0.f64 + ctx.f13.f64)); // bl 0x822beb40 ctx.lr = 0x823189D4; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // lwz r10,4280(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4280); // stw r27,3836(r31) @@ -71840,7 +71840,7 @@ PPC_FUNC_IMPL(__imp__sub_82318808) { ctx.r3.u64 = ctx.r30.u64; // bl 0x822beb40 ctx.lr = 0x82318A64; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // li r3,0 ctx.r3.s64 = 0; // bl 0x821c2158 @@ -71944,7 +71944,7 @@ PPC_FUNC_IMPL(__imp__sub_82318AA8) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r29.u32 + 12); // bl 0x82250578 ctx.lr = 0x82318B04; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r27 ctx.r31.u64 = ctx.r27.u64; // cmplw cr6,r27,r28 @@ -72087,7 +72087,7 @@ PPC_FUNC_IMPL(__imp__sub_82318AA8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82318C04; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // stw r23,104(r1) @@ -72204,7 +72204,7 @@ PPC_FUNC_IMPL(__imp__sub_82318AA8) { ctx.r31.u64 = ctx.r25.u64; // bl 0x82250578 ctx.lr = 0x82318CD4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // stw r25,148(r1) @@ -72333,7 +72333,7 @@ PPC_FUNC_IMPL(__imp__sub_82318AA8) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x82318DBC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,168(r1) PPC_STORE_U32(ctx.r1.u32 + 168, ctx.r23.u32); // li r11,-1 @@ -72728,7 +72728,7 @@ PPC_FUNC_IMPL(__imp__sub_82318F40) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 3984); // bl 0x82250578 ctx.lr = 0x82319078; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r10,-32243 ctx.r10.s64 = -2113077248; // li r11,-1 @@ -74328,7 +74328,7 @@ PPC_FUNC_IMPL(__imp__sub_82319A98) { ctx.f1.f64 = double(temp.f32); // bl 0x822beb40 ctx.lr = 0x82319B90; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // lfs f0,356(r30) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 356); @@ -74806,7 +74806,7 @@ PPC_FUNC_IMPL(__imp__sub_82319E88) { ctx.r3.s64 = ctx.r31.s64 + 4008; // bl 0x822beb40 ctx.lr = 0x82319EA8; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // addi r1,r1,96 diff --git a/generated/retip_recomp.12.cpp b/generated/retip_recomp.12.cpp index 9fde8a4..7744e36 100644 --- a/generated/retip_recomp.12.cpp +++ b/generated/retip_recomp.12.cpp @@ -1479,7 +1479,7 @@ PPC_FUNC_IMPL(__imp__sub_8231AFE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8231B154; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // stw r28,88(r1) @@ -12155,7 +12155,7 @@ PPC_FUNC_IMPL(__imp__sub_8231FA88) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x8231FAEC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,96 ctx.r4.s64 = ctx.r1.s64 + 96; // mr r3,r31 @@ -17080,7 +17080,7 @@ PPC_FUNC_IMPL(__imp__sub_82321A60) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82321BF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -29598,7 +29598,7 @@ PPC_FUNC_IMPL(__imp__sub_82326CD8) { ctx.r4.s64 = ctx.r1.s64 + 120; // bl 0x821ebe28 ctx.lr = 0x82326E64; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,2832(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2832); // lfs f31,120(r1) @@ -29685,7 +29685,7 @@ PPC_FUNC_IMPL(__imp__sub_82326CD8) { PPC_STORE_U32(ctx.r1.u32 + 112, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82326EEC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_82326EEC: // lwz r11,2404(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2404); @@ -39410,7 +39410,7 @@ PPC_FUNC_IMPL(__imp__sub_8232B0F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8232B170; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,80 ctx.r4.s64 = ctx.r1.s64 + 80; // lwz r30,248(r31) @@ -40696,7 +40696,7 @@ PPC_FUNC_IMPL(__imp__sub_8232B950) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // bl 0x821ebe28 ctx.lr = 0x8232BA50; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r3,0(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // bl 0x821ea3d8 @@ -40712,7 +40712,7 @@ PPC_FUNC_IMPL(__imp__sub_8232B950) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r27.u32 + 120); // bl 0x82250578 ctx.lr = 0x8232BA6C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r27.u32); // addi r4,r1,96 @@ -41163,7 +41163,7 @@ PPC_FUNC_IMPL(__imp__sub_8232BD08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8232BD60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // lwz r10,0(r31) @@ -41874,7 +41874,7 @@ PPC_FUNC_IMPL(__imp__sub_8232C118) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r29.u32); // bl 0x821ebe28 ctx.lr = 0x8232C228; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_8232C228: // addi r31,r31,1 ctx.r31.s64 = ctx.r31.s64 + 1; @@ -43187,7 +43187,7 @@ PPC_FUNC_IMPL(__imp__sub_8232C660) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x8232CB80; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -43286,7 +43286,7 @@ PPC_FUNC_IMPL(__imp__sub_8232C660) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x8232CC2C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -45794,7 +45794,7 @@ PPC_FUNC_IMPL(__imp__sub_8232DCD0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8232DD1C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x82b0a598 @@ -48021,7 +48021,7 @@ PPC_FUNC_IMPL(__imp__sub_8232EC20) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8232EC44; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,3 @@ -50885,7 +50885,7 @@ PPC_FUNC_IMPL(__imp__sub_8232FF38) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x8232FFB0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,120(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 120); // lhz r10,552(r11) @@ -51042,7 +51042,7 @@ PPC_FUNC_IMPL(__imp__sub_8232FF38) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x823300C0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,120(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 120); // lhz r10,552(r11) @@ -60343,7 +60343,7 @@ PPC_FUNC_IMPL(__imp__sub_82333F30) { ctx.r4.s64 = ctx.r5.s64 + -18592; // bl 0x821ebe28 ctx.lr = 0x82333F58; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r4,r6 ctx.r4.u64 = ctx.r6.u64; // mr r3,r31 @@ -60643,7 +60643,7 @@ PPC_FUNC_IMPL(__imp__sub_823340D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82334168; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -60835,7 +60835,7 @@ PPC_FUNC_IMPL(__imp__sub_82334280) { ctx.r4.s64 = ctx.r5.s64 + -18592; // bl 0x821ebe28 ctx.lr = 0x823342A8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // stw r6,4832(r31) PPC_STORE_U32(ctx.r31.u32 + 4832, ctx.r6.u32); // mr r4,r6 @@ -61022,7 +61022,7 @@ PPC_FUNC_IMPL(__imp__sub_82334350) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823343DC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r30.u32); // addi r4,r1,92 @@ -61625,7 +61625,7 @@ PPC_FUNC_IMPL(__imp__rex_spawn_egg_82334638) { ctx.r3.s64 = ctx.r1.s64 + 152; // bl 0x82250578 ctx.lr = 0x823347D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,156(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -65674,7 +65674,7 @@ PPC_FUNC_IMPL(__imp__sub_82336168) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x82336380; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -71598,7 +71598,7 @@ PPC_FUNC_IMPL(__imp__sub_82338BE0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82338C70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r11,r1,96 @@ -71634,7 +71634,7 @@ PPC_FUNC_IMPL(__imp__sub_82338BE0) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x82338CB4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x8228e258 @@ -72025,7 +72025,7 @@ PPC_FUNC_IMPL(__imp__sub_82338EA8) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x82338F64; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x8228e258 @@ -73982,7 +73982,7 @@ PPC_FUNC_IMPL(__imp__sub_82339B60) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82339C80; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,3 @@ -74213,7 +74213,7 @@ PPC_FUNC_IMPL(__imp__sub_82339DD0) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r9.u32 + 8); // bl 0x82250578 ctx.lr = 0x82339E00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -74325,7 +74325,7 @@ PPC_FUNC_IMPL(__imp__sub_82339EA0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82339EC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -75904,7 +75904,7 @@ PPC_FUNC_IMPL(__imp__sub_8233A6B8) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x8233A9B0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -76944,7 +76944,7 @@ PPC_FUNC_IMPL(__imp__sub_8233A6B8) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x8233B0D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -77161,7 +77161,7 @@ PPC_FUNC_IMPL(__imp__sub_8233B140) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8233B234; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 248); // stw r30,84(r1) @@ -77555,7 +77555,7 @@ PPC_FUNC_IMPL(__imp__sub_8233B450) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x8233B4C0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // stw r30,3816(r31) PPC_STORE_U32(ctx.r31.u32 + 3816, ctx.r30.u32); loc_8233B4C4: @@ -78066,7 +78066,7 @@ PPC_FUNC_IMPL(__imp__sub_8233B7E0) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x8233B828; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -78583,102 +78583,3 @@ PPC_FUNC_IMPL(__imp__sub_8233BB48) { return; } -__attribute__((alias("__imp__sub_8233BBA8"))) PPC_WEAK_FUNC(sub_8233BBA8); -PPC_FUNC_IMPL(__imp__sub_8233BBA8) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // std r31,-16(r1) - PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); - // stfd f30,-32(r1) - ctx.fpscr.disableFlushMode(); - PPC_STORE_U64(ctx.r1.u32 + -32, ctx.f30.u64); - // stfd f31,-24(r1) - PPC_STORE_U64(ctx.r1.u32 + -24, ctx.f31.u64); - // stwu r1,-144(r1) - ea = -144 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r9,r4 - ctx.r9.u64 = ctx.r4.u64; - // addi r4,r1,88 - ctx.r4.s64 = ctx.r1.s64 + 88; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // bl 0x821ebc08 - ctx.lr = 0x8233BBD0; - sub_821EBC08(ctx, base); - // lwz r8,32(r9) - ctx.r8.u64 = PPC_LOAD_U32(ctx.r9.u32 + 32); - // lwz r7,36(r9) - ctx.r7.u64 = PPC_LOAD_U32(ctx.r9.u32 + 36); - // extsw r6,r8 - ctx.r6.s64 = ctx.r8.s32; - // lwz r3,120(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 120); - // extsw r5,r7 - ctx.r5.s64 = ctx.r7.s32; - // std r6,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r6.u64); - // lfd f0,80(r1) - ctx.fpscr.disableFlushMode(); - ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); - // std r5,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r5.u64); - // lfd f13,80(r1) - ctx.f13.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); - // fcfid f11,f0 - ctx.f11.f64 = double(ctx.f0.s64); - // fcfid f12,f13 - ctx.f12.f64 = double(ctx.f13.s64); - // frsp f30,f11 - ctx.f30.f64 = double(float(ctx.f11.f64)); - // frsp f31,f12 - ctx.f31.f64 = double(float(ctx.f12.f64)); - // bl 0x8251ad40 - ctx.lr = 0x8233BC08; - sub_8251AD40(ctx, base); - // mr r4,r3 - ctx.r4.u64 = ctx.r3.u64; - // fmr f1,f30 - ctx.fpscr.disableFlushMode(); - ctx.f1.f64 = ctx.f30.f64; - // addi r3,r1,88 - ctx.r3.s64 = ctx.r1.s64 + 88; - // fmr f2,f31 - ctx.f2.f64 = ctx.f31.f64; - // bl 0x8259ff38 - ctx.lr = 0x8233BC1C; - sub_8259FF38(ctx, base); - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // addi r4,r1,88 - ctx.r4.s64 = ctx.r1.s64 + 88; - // bl 0x821ebe28 - ctx.lr = 0x8233BC28; - sub_821EBE28(ctx, base); - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x821ea3d8 - ctx.lr = 0x8233BC30; - sub_821EA3D8(ctx, base); - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // lfd f30,-32(r1) - ctx.fpscr.disableFlushMode(); - ctx.f30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -32); - // lfd f31,-24(r1) - ctx.f31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); - // ld r31,-16(r1) - ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); - // blr - return; -} - diff --git a/generated/retip_recomp.13.cpp b/generated/retip_recomp.13.cpp index e48b3c8..8b94e23 100644 --- a/generated/retip_recomp.13.cpp +++ b/generated/retip_recomp.13.cpp @@ -1,5 +1,104 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_8233BBA8"))) PPC_WEAK_FUNC(sub_8233BBA8); +PPC_FUNC_IMPL(__imp__sub_8233BBA8) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // std r31,-16(r1) + PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); + // stfd f30,-32(r1) + ctx.fpscr.disableFlushMode(); + PPC_STORE_U64(ctx.r1.u32 + -32, ctx.f30.u64); + // stfd f31,-24(r1) + PPC_STORE_U64(ctx.r1.u32 + -24, ctx.f31.u64); + // stwu r1,-144(r1) + ea = -144 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r9,r4 + ctx.r9.u64 = ctx.r4.u64; + // addi r4,r1,88 + ctx.r4.s64 = ctx.r1.s64 + 88; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // bl 0x821ebc08 + ctx.lr = 0x8233BBD0; + sub_821EBC08(ctx, base); + // lwz r8,32(r9) + ctx.r8.u64 = PPC_LOAD_U32(ctx.r9.u32 + 32); + // lwz r7,36(r9) + ctx.r7.u64 = PPC_LOAD_U32(ctx.r9.u32 + 36); + // extsw r6,r8 + ctx.r6.s64 = ctx.r8.s32; + // lwz r3,120(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 120); + // extsw r5,r7 + ctx.r5.s64 = ctx.r7.s32; + // std r6,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r6.u64); + // lfd f0,80(r1) + ctx.fpscr.disableFlushMode(); + ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); + // std r5,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r5.u64); + // lfd f13,80(r1) + ctx.f13.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); + // fcfid f11,f0 + ctx.f11.f64 = double(ctx.f0.s64); + // fcfid f12,f13 + ctx.f12.f64 = double(ctx.f13.s64); + // frsp f30,f11 + ctx.f30.f64 = double(float(ctx.f11.f64)); + // frsp f31,f12 + ctx.f31.f64 = double(float(ctx.f12.f64)); + // bl 0x8251ad40 + ctx.lr = 0x8233BC08; + sub_8251AD40(ctx, base); + // mr r4,r3 + ctx.r4.u64 = ctx.r3.u64; + // fmr f1,f30 + ctx.fpscr.disableFlushMode(); + ctx.f1.f64 = ctx.f30.f64; + // addi r3,r1,88 + ctx.r3.s64 = ctx.r1.s64 + 88; + // fmr f2,f31 + ctx.f2.f64 = ctx.f31.f64; + // bl 0x8259ff38 + ctx.lr = 0x8233BC1C; + sub_8259FF38(ctx, base); + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // addi r4,r1,88 + ctx.r4.s64 = ctx.r1.s64 + 88; + // bl 0x821ebe28 + ctx.lr = 0x8233BC28; + rex_meCursorCamCalculatePos_821EBE28(ctx, base); + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x821ea3d8 + ctx.lr = 0x8233BC30; + sub_821EA3D8(ctx, base); + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // lfd f30,-32(r1) + ctx.fpscr.disableFlushMode(); + ctx.f30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -32); + // lfd f31,-24(r1) + ctx.f31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); + // ld r31,-16(r1) + ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); + // blr + return; +} + __attribute__((alias("__imp__sub_8233BC50"))) PPC_WEAK_FUNC(sub_8233BC50); PPC_FUNC_IMPL(__imp__sub_8233BC50) { PPC_FUNC_PROLOGUE(); @@ -18991,7 +19090,7 @@ PPC_FUNC_IMPL(__imp__sub_82343D58) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4736); // bl 0x82250578 ctx.lr = 0x82343D7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r29,-1 @@ -19054,7 +19153,7 @@ PPC_FUNC_IMPL(__imp__sub_82343D58) { PPC_STORE_U32(ctx.r1.u32 + 80, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82343DE8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lis r10,-32238 ctx.r10.s64 = -2112749568; // mr r3,r31 @@ -19077,7 +19176,7 @@ PPC_FUNC_IMPL(__imp__sub_82343D58) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4736); // bl 0x82250578 ctx.lr = 0x82343E10; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,128 @@ -26268,7 +26367,7 @@ PPC_FUNC_IMPL(__imp__sub_82346700) { PPC_STORE_U32(ctx.r1.u32 + 140, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82346F48; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -27022,7 +27121,7 @@ PPC_FUNC_IMPL(__imp__sub_82346700) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r29.u32 + 12); // bl 0x82250578 ctx.lr = 0x823474D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r28 ctx.r31.u64 = ctx.r28.u64; // cmplw cr6,r28,r27 @@ -27121,7 +27220,7 @@ PPC_FUNC_IMPL(__imp__sub_82346700) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r29.u32 + 12); // bl 0x82250578 ctx.lr = 0x82347580; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r28 ctx.r31.u64 = ctx.r28.u64; // cmplw cr6,r28,r27 @@ -27212,7 +27311,7 @@ PPC_FUNC_IMPL(__imp__sub_823475F0) { if (ctx.cr6.eq) goto loc_82347614; // bl 0x821ebe28 ctx.lr = 0x82347614; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_82347614: // cmplwi cr6,r6,0 ctx.cr6.compare(ctx.r6.u32, 0, ctx.xer); @@ -28372,7 +28471,7 @@ PPC_FUNC_IMPL(__imp__sub_82347D60) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82347DF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r3,r1,80 @@ -32127,7 +32226,7 @@ PPC_FUNC_IMPL(__imp__sub_82349748) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8234979C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -33684,7 +33783,7 @@ PPC_FUNC_IMPL(__imp__sub_82349E18) { ctx.r4.s64 = ctx.r1.s64 + 144; // bl 0x821ebe28 ctx.lr = 0x8234A218; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,128 ctx.r4.s64 = ctx.r1.s64 + 128; // lwz r3,3960(r31) @@ -34316,7 +34415,7 @@ PPC_FUNC_IMPL(__imp__sub_8234A240) { PPC_STORE_U32(ctx.r1.u32 + 100, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8234A6C0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -34972,7 +35071,7 @@ PPC_FUNC_IMPL(__imp__sub_8234A240) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8234AB30; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,84 @@ -38061,7 +38160,7 @@ PPC_FUNC_IMPL(__imp__sub_8234BFB0) { PPC_STORE_U32(ctx.r1.u32 + 132, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8234C068; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -41990,7 +42089,7 @@ PPC_FUNC_IMPL(__imp__sub_8234DA08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8234DAB8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // addi r5,r1,80 @@ -44567,7 +44666,7 @@ PPC_FUNC_IMPL(__imp__sub_8234E940) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x8234EB94; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // cmpwi cr6,r6,0 ctx.cr6.compare(ctx.r6.s32, 0, ctx.xer); // beq cr6,0x8234ee84 @@ -44926,7 +45025,7 @@ PPC_FUNC_IMPL(__imp__sub_8234E940) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x8234EDD8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // b 0x8234ee84 goto loc_8234EE84; loc_8234EDDC: @@ -47441,7 +47540,7 @@ PPC_FUNC_IMPL(__imp__sub_8234FE48) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8234FE6C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,3 @@ -49724,7 +49823,7 @@ PPC_FUNC_IMPL(__imp__sub_82350D88) { PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82350DF8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -56350,7 +56449,7 @@ PPC_FUNC_IMPL(__imp__sub_82353870) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x82353BAC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -56659,7 +56758,7 @@ PPC_FUNC_IMPL(__imp__sub_82353D68) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82353DA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -58384,7 +58483,7 @@ PPC_FUNC_IMPL(__imp__sub_82354738) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8235493C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r30) @@ -59678,7 +59777,7 @@ PPC_FUNC_IMPL(__imp__sub_82354F38) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x82355194; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r1,160 ctx.r11.s64 = ctx.r1.s64 + 160; // stw r28,204(r1) @@ -60283,7 +60382,7 @@ PPC_FUNC_IMPL(__imp__sub_82354F38) { PPC_STORE_U32(ctx.r1.u32 + 120, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82355598; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r1,r1,368 ctx.r1.s64 = ctx.r1.s64 + 368; // addi r12,r1,-112 @@ -60767,7 +60866,7 @@ PPC_FUNC_IMPL(__imp__sub_823555A8) { PPC_STORE_U32(ctx.r1.u32 + 144, temp.u32); // bl 0x821ebe28 ctx.lr = 0x823558B0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lfs f1,876(r25) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r25.u32 + 876); @@ -66624,7 +66723,7 @@ PPC_FUNC_IMPL(__imp__sub_82357D90) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x82357FC4; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // b 0x8235839c goto loc_8235839C; loc_82357FC8: @@ -66902,7 +67001,7 @@ PPC_FUNC_IMPL(__imp__sub_82357D90) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x8235818C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // b 0x8235839c goto loc_8235839C; loc_82358190: @@ -68844,7 +68943,7 @@ PPC_FUNC_IMPL(__imp__sub_82358408) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x82358F78; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -68869,7 +68968,7 @@ PPC_FUNC_IMPL(__imp__sub_82358408) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r29.u32 + 12); // bl 0x82250578 ctx.lr = 0x82358FA4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r28 ctx.r31.u64 = ctx.r28.u64; // cmplw cr6,r28,r27 @@ -69161,7 +69260,7 @@ PPC_FUNC_IMPL(__imp__sub_82359088) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x82359190; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -70987,7 +71086,7 @@ PPC_FUNC_IMPL(__imp__sub_82359C50) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x82359D8C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r1,r1,144 ctx.r1.s64 = ctx.r1.s64 + 144; // addi r12,r1,-16 @@ -71136,7 +71235,7 @@ PPC_FUNC_IMPL(__imp__sub_82359DA8) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82359E70; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r1,r1,144 ctx.r1.s64 = ctx.r1.s64 + 144; // lfd f30,-48(r1) @@ -71348,7 +71447,7 @@ PPC_FUNC_IMPL(__imp__sub_82359FB0) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82359FD4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -71759,7 +71858,7 @@ PPC_FUNC_IMPL(__imp__sub_8235A170) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x8235A2AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,136 @@ -77156,7 +77255,7 @@ PPC_FUNC_IMPL(__imp__sub_8235C2F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8235C824; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -80687,7 +80786,7 @@ PPC_FUNC_IMPL(__imp__sub_8235DE98) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8235E000; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r27.u32); // lwz r10,0(r31) @@ -80725,7 +80824,7 @@ PPC_FUNC_IMPL(__imp__sub_8235DE98) { ctx.r20.u64 = __builtin_rotateleft64(ctx.r8.u32 | (ctx.r8.u64 << 32), 1) & 0x1; // bl 0x82250578 ctx.lr = 0x8235E048; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r20,132(r1) PPC_STORE_U32(ctx.r1.u32 + 132, ctx.r20.u32); // addi r4,r1,128 diff --git a/generated/retip_recomp.14.cpp b/generated/retip_recomp.14.cpp index ab737f0..d7d0351 100644 --- a/generated/retip_recomp.14.cpp +++ b/generated/retip_recomp.14.cpp @@ -908,7 +908,7 @@ PPC_FUNC_IMPL(__imp__sub_8235E520) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8235EB28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -9000,7 +9000,7 @@ PPC_FUNC_IMPL(__imp__sub_82362000) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x823620E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,116(r1) PPC_STORE_U32(ctx.r1.u32 + 116, ctx.r31.u32); // addi r3,r1,112 @@ -13470,7 +13470,7 @@ PPC_FUNC_IMPL(__imp__sub_82363F00) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82363F94; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r11,r1,80 @@ -18672,7 +18672,7 @@ PPC_FUNC_IMPL(__imp__sub_823662A8) { ctx.r24.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // bl 0x82250578 ctx.lr = 0x82366394; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r24,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r24.u32); // addi r3,r1,96 @@ -31074,7 +31074,7 @@ PPC_FUNC_IMPL(__imp__sub_8236B6A0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8236B7B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -31270,7 +31270,7 @@ PPC_FUNC_IMPL(__imp__sub_8236B6A0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8236B900; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,88 @@ -31357,7 +31357,7 @@ PPC_FUNC_IMPL(__imp__sub_8236B968) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x8236B990; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,3 @@ -40109,7 +40109,7 @@ PPC_FUNC_IMPL(__imp__sub_8236F1A8) { ctx.r3.s64 = ctx.r1.s64 + 184; // bl 0x82250578 ctx.lr = 0x8236F464; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,540(r1) ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 540); // li r11,32000 @@ -40804,7 +40804,7 @@ PPC_FUNC_IMPL(__imp__sub_8236F1A8) { ctx.r3.s64 = ctx.r1.s64 + 176; // bl 0x82250578 ctx.lr = 0x8236F910; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,176 @@ -42371,7 +42371,7 @@ PPC_FUNC_IMPL(__imp__sub_82370318) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x823703A8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,80 ctx.r4.s64 = ctx.r1.s64 + 80; // mr r3,r31 @@ -44426,7 +44426,7 @@ PPC_FUNC_IMPL(__imp__sub_82371110) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823711A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r30) @@ -45959,7 +45959,7 @@ PPC_FUNC_IMPL(__imp__sub_82371908) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x82371C04; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -46132,7 +46132,7 @@ PPC_FUNC_IMPL(__imp__sub_82371C60) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82371D28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,96 @@ -47131,7 +47131,7 @@ PPC_FUNC_IMPL(__imp__sub_823723A8) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x8237243C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -47845,7 +47845,7 @@ PPC_FUNC_IMPL(__imp__sub_82372750) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x82372940; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -47923,7 +47923,7 @@ PPC_FUNC_IMPL(__imp__sub_82372750) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x823729CC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -51661,7 +51661,7 @@ PPC_FUNC_IMPL(__imp__sub_823742C0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82374338; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,80 @@ -51750,7 +51750,7 @@ PPC_FUNC_IMPL(__imp__sub_82374378) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x823743C8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // li r10,-1 @@ -51946,7 +51946,7 @@ PPC_FUNC_IMPL(__imp__sub_82374480) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82374510; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,39 ctx.r11.s64 = 39; // li r10,32000 @@ -54746,7 +54746,7 @@ PPC_FUNC_IMPL(__imp__sub_82375140) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x8237586C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -55322,7 +55322,7 @@ PPC_FUNC_IMPL(__imp__sub_82375140) { ctx.r3.u64 = ctx.r27.u64; // bl 0x821ebe28 ctx.lr = 0x82375CC0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r27 ctx.r3.u64 = ctx.r27.u64; // bl 0x821ea3d8 @@ -55365,7 +55365,7 @@ PPC_FUNC_IMPL(__imp__sub_82375140) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x82375D08; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -55510,7 +55510,7 @@ PPC_FUNC_IMPL(__imp__sub_82375140) { ctx.r3.u64 = ctx.r27.u64; // bl 0x821ebe28 ctx.lr = 0x82375E00; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r27 ctx.r3.u64 = ctx.r27.u64; // bl 0x821ea3d8 @@ -55740,7 +55740,7 @@ PPC_FUNC_IMPL(__imp__sub_82375F48) { ctx.r30.s64 = ctx.r11.s64 + 171; // bl 0x82250578 ctx.lr = 0x82375F78; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -57229,7 +57229,7 @@ PPC_FUNC_IMPL(__imp__sub_82376898) { ctx.r4.u64 = ctx.r29.u64; // bl 0x821ebe28 ctx.lr = 0x82376944; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r30,60(r31) ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 60); // cmplwi cr6,r30,0 @@ -57242,7 +57242,7 @@ PPC_FUNC_IMPL(__imp__sub_82376898) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8237695C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -59389,7 +59389,7 @@ PPC_FUNC_IMPL(__imp__sub_823776A0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82377814; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r7,0(r28) ctx.r7.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // li r11,3 @@ -64776,7 +64776,7 @@ PPC_FUNC_IMPL(__imp__sub_82379BE0) { ctx.r4.s64 = ctx.r1.s64 + 80; // bl 0x821ebe28 ctx.lr = 0x82379D38; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -70781,7 +70781,7 @@ PPC_FUNC_IMPL(__imp__sub_8237C588) { ctx.r30.s64 = ctx.r31.s64 + 3780; // bl 0x82250578 ctx.lr = 0x8237C640; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lfs f0,3780(r31) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 3780); @@ -71659,7 +71659,7 @@ PPC_FUNC_IMPL(__imp__sub_8237CC00) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8237CC1C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r27) ctx.r8.u64 = PPC_LOAD_U32(ctx.r27.u32 + 0); // li r30,0 @@ -76044,7 +76044,7 @@ PPC_FUNC_IMPL(__imp__sub_8237E8B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8237E9B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -76748,7 +76748,7 @@ PPC_FUNC_IMPL(__imp__sub_8237ECB0) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x8237EE6C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r31.u32); // stw r28,104(r1) @@ -76901,7 +76901,7 @@ PPC_FUNC_IMPL(__imp__sub_8237ECB0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8237EF7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -77129,7 +77129,7 @@ PPC_FUNC_IMPL(__imp__sub_8237ECB0) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8237F100; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,132 ctx.r4.s64 = ctx.r1.s64 + 132; // mr r3,r31 @@ -77591,7 +77591,7 @@ PPC_FUNC_IMPL(__imp__sub_8237F3C0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8237F400; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,116 ctx.r4.s64 = ctx.r1.s64 + 116; // mr r3,r31 diff --git a/generated/retip_recomp.15.cpp b/generated/retip_recomp.15.cpp index f4c81f2..41bedac 100644 --- a/generated/retip_recomp.15.cpp +++ b/generated/retip_recomp.15.cpp @@ -1181,7 +1181,7 @@ PPC_FUNC_IMPL(__imp__sub_8237FC80) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82380514; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,88 @@ -1723,7 +1723,7 @@ PPC_FUNC_IMPL(__imp__sub_8237FC80) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x823808B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,84 @@ -3711,7 +3711,7 @@ PPC_FUNC_IMPL(__imp__sub_82381538) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82381624; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -4251,7 +4251,7 @@ PPC_FUNC_IMPL(__imp__sub_82381890) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823819AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -8090,7 +8090,7 @@ PPC_FUNC_IMPL(__imp__sub_82383350) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823833D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -12225,7 +12225,7 @@ PPC_FUNC_IMPL(__imp__sub_82384C40) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82384FA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,112 @@ -12277,7 +12277,7 @@ PPC_FUNC_IMPL(__imp__sub_82384C40) { ctx.r3.s64 = ctx.r1.s64 + 116; // bl 0x82250578 ctx.lr = 0x82384FFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,116 @@ -15676,7 +15676,7 @@ PPC_FUNC_IMPL(__imp__sub_82386578) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82386624; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -16839,7 +16839,7 @@ PPC_FUNC_IMPL(__imp__sub_82386B90) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82386DE4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r28.u32); // stw r29,96(r1) @@ -23250,7 +23250,7 @@ PPC_FUNC_IMPL(__imp__sub_823899A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82389A48; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r27,88(r1) @@ -23317,7 +23317,7 @@ PPC_FUNC_IMPL(__imp__sub_823899A8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82389AC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r29.u32); // stw r30,104(r1) @@ -24809,7 +24809,7 @@ PPC_FUNC_IMPL(__imp__sub_8238A3A0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8238A534; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r28.u32); // stw r31,96(r1) @@ -27167,7 +27167,7 @@ PPC_FUNC_IMPL(__imp__sub_8238B438) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8238B53C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,80 @@ -27765,7 +27765,7 @@ PPC_FUNC_IMPL(__imp__sub_8238B438) { ctx.r24.u64 = PPC_LOAD_U32(ctx.r29.u32 + 248); // bl 0x82250578 ctx.lr = 0x8238B958; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r25,120(r1) PPC_STORE_U32(ctx.r1.u32 + 120, ctx.r25.u32); // stw r29,116(r1) @@ -27837,7 +27837,7 @@ PPC_FUNC_IMPL(__imp__sub_8238B438) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8238B9D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // stw r30,96(r1) @@ -29133,7 +29133,7 @@ PPC_FUNC_IMPL(__imp__sub_8238C168) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8238C1F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r29,84(r1) @@ -60266,7 +60266,7 @@ PPC_FUNC_IMPL(__imp__sub_82398EB0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82398EF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r31) @@ -60479,7 +60479,7 @@ PPC_FUNC_IMPL(__imp__sub_82398FE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82399064; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r31) @@ -60681,7 +60681,7 @@ PPC_FUNC_IMPL(__imp__sub_82399148) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823991BC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r31.u32); // lwz r11,0(r31) @@ -65902,7 +65902,7 @@ PPC_FUNC_IMPL(__imp__sub_8239B238) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 2456); // bl 0x82250578 ctx.lr = 0x8239B4C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,0 ctx.r10.s64 = 0; // stw r31,92(r1) @@ -70140,7 +70140,7 @@ PPC_FUNC_IMPL(__imp__sub_8239CC88) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8239CFAC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // addi r3,r1,80 @@ -70463,7 +70463,7 @@ PPC_FUNC_IMPL(__imp__sub_8239CFE0) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x8239D1BC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,196(r1) PPC_STORE_U32(ctx.r1.u32 + 196, ctx.r27.u32); // stw r30,200(r1) @@ -70494,7 +70494,7 @@ PPC_FUNC_IMPL(__imp__sub_8239CFE0) { ctx.r3.s64 = ctx.r1.s64 + 208; // bl 0x82250578 ctx.lr = 0x8239D1EC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,212(r1) PPC_STORE_U32(ctx.r1.u32 + 212, ctx.r30.u32); // stw r30,216(r1) @@ -70879,7 +70879,7 @@ PPC_FUNC_IMPL(__imp__sub_8239CFE0) { ctx.r3.s64 = ctx.r1.s64 + 176; // bl 0x82250578 ctx.lr = 0x8239D47C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // li r10,0 diff --git a/generated/retip_recomp.16.cpp b/generated/retip_recomp.16.cpp index 6fd1388..76f5bcf 100644 --- a/generated/retip_recomp.16.cpp +++ b/generated/retip_recomp.16.cpp @@ -17957,7 +17957,7 @@ PPC_FUNC_IMPL(__imp__sub_823A6D30) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // bl 0x82250578 ctx.lr = 0x823A6F98; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,0(r28) @@ -19310,7 +19310,7 @@ PPC_FUNC_IMPL(__imp__sub_823A7808) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823A7884; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // lwz r11,0(r27) @@ -19844,7 +19844,7 @@ PPC_FUNC_IMPL(__imp__sub_823A7AB0) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r10.u32 + 160); // bl 0x82250578 ctx.lr = 0x823A7C38; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r31.u32); // addi r3,r1,88 @@ -19958,7 +19958,7 @@ PPC_FUNC_IMPL(__imp__sub_823A7CB0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823A7CF4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r27.u32); // lwz r11,0(r24) @@ -20041,7 +20041,7 @@ PPC_FUNC_IMPL(__imp__sub_823A7CB0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823A7D84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r27.u32); // lwz r11,0(r28) @@ -20237,7 +20237,7 @@ PPC_FUNC_IMPL(__imp__sub_823A7E30) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823A7EC4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r30,84(r1) @@ -20269,7 +20269,7 @@ PPC_FUNC_IMPL(__imp__sub_823A7E30) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 160); // bl 0x82250578 ctx.lr = 0x823A7F00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,116(r1) PPC_STORE_U32(ctx.r1.u32 + 116, ctx.r30.u32); // addi r4,r1,112 @@ -20681,7 +20681,7 @@ PPC_FUNC_IMPL(__imp__sub_823A8100) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823A81B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -21590,7 +21590,7 @@ PPC_FUNC_IMPL(__imp__sub_823A8748) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823A87B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -29616,7 +29616,7 @@ PPC_FUNC_IMPL(__imp__sub_823ABDE0) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 216); // bl 0x821ebe28 ctx.lr = 0x823ABE6C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r3,216(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 216); // bl 0x821ea3d8 @@ -29912,7 +29912,7 @@ PPC_FUNC_IMPL(__imp__sub_823ABE88) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x823AC074; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,104(r1) PPC_STORE_U32(ctx.r1.u32 + 104, ctx.r29.u32); // stw r27,100(r1) @@ -34390,7 +34390,7 @@ PPC_FUNC_IMPL(__imp__sub_823ADE30) { PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); // bl 0x821ebe28 ctx.lr = 0x823ADEDC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r6 ctx.r3.u64 = ctx.r6.u64; // bl 0x821ea3d8 @@ -38915,7 +38915,7 @@ PPC_FUNC_IMPL(__imp__sub_823AFD18) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 68); // bl 0x821ebe28 ctx.lr = 0x823AFD64; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lhz r10,16(r31) ctx.r10.u64 = PPC_LOAD_U16(ctx.r31.u32 + 16); // li r30,0 @@ -38997,7 +38997,7 @@ PPC_FUNC_IMPL(__imp__sub_823AFD18) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x823AFDE0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lhz r11,16(r31) ctx.r11.u64 = PPC_LOAD_U16(ctx.r31.u32 + 16); // addi r30,r30,1 @@ -39080,7 +39080,7 @@ PPC_FUNC_IMPL(__imp__sub_823AFD18) { PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); // bl 0x821ebe28 ctx.lr = 0x823AFE64; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r5,r29 ctx.r5.u64 = ctx.r29.u64; // mr r4,r30 @@ -39606,7 +39606,7 @@ PPC_FUNC_IMPL(__imp__sub_823AFFC8) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x823B01DC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,120 ctx.r4.s64 = ctx.r1.s64 + 120; // mr r3,r31 @@ -42602,7 +42602,7 @@ PPC_FUNC_IMPL(__imp__sub_823B1440) { PPC_STORE_U32(ctx.r1.u32 + 96, temp.u32); // bl 0x821ebe28 ctx.lr = 0x823B15EC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -42948,7 +42948,7 @@ PPC_FUNC_IMPL(__imp__sub_823B16C8) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x823B1824; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -51895,7 +51895,7 @@ PPC_FUNC_IMPL(__imp__sub_823B5128) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // bl 0x821ebe28 ctx.lr = 0x823B53C8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r25,20 ctx.r4.s64 = ctx.r25.s64 + 20; // lwz r3,0(r28) @@ -53421,7 +53421,7 @@ PPC_FUNC_IMPL(__imp__sub_823B5CC8) { ctx.r4.s64 = ctx.r30.s64 + 8; // bl 0x821ebe28 ctx.lr = 0x823B5E14; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r30,20 ctx.r4.s64 = ctx.r30.s64 + 20; // mr r3,r31 @@ -53762,7 +53762,7 @@ PPC_FUNC_IMPL(__imp__sub_823B5CC8) { ctx.r4.s64 = ctx.r28.s64 + 8; // bl 0x821ebe28 ctx.lr = 0x823B6084; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r28,20 ctx.r4.s64 = ctx.r28.s64 + 20; // mr r3,r31 @@ -56628,7 +56628,7 @@ PPC_FUNC_IMPL(__imp__sub_823B7470) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x823B7498; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,6440(r29) ctx.r3.u64 = PPC_LOAD_U32(ctx.r29.u32 + 6440); // li r11,0 @@ -56682,7 +56682,7 @@ PPC_FUNC_IMPL(__imp__sub_823B7470) { ctx.r3.s64 = ctx.r1.s64 + 176; // bl 0x82250578 ctx.lr = 0x823B74FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,1 @@ -62497,7 +62497,7 @@ PPC_FUNC_IMPL(__imp__sub_823B9AA8) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x823B9BD0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,1192(r30) ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 1192); // li r11,2 @@ -62544,7 +62544,7 @@ PPC_FUNC_IMPL(__imp__sub_823B9AA8) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x823B9C28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r31.u32); // stw r28,96(r1) @@ -65283,7 +65283,7 @@ PPC_FUNC_IMPL(__imp__sub_823BAD00) { ctx.r4.s64 = ctx.r6.s64 + 2108; // bl 0x821ebe28 ctx.lr = 0x823BAEFC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r6,2120 ctx.r4.s64 = ctx.r6.s64 + 2120; // lwz r3,0(r28) @@ -65452,7 +65452,7 @@ PPC_FUNC_IMPL(__imp__sub_823BAF20) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // bl 0x821ebe28 ctx.lr = 0x823BB01C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r31,20 ctx.r4.s64 = ctx.r31.s64 + 20; // lwz r3,0(r30) @@ -69225,7 +69225,7 @@ PPC_FUNC_IMPL(__imp__sub_823BC678) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823BCA48; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r25,88(r1) @@ -71152,7 +71152,7 @@ PPC_FUNC_IMPL(__imp__sub_823BD600) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x823BD708; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,104(r1) PPC_STORE_U32(ctx.r1.u32 + 104, ctx.r30.u32); // stw r22,100(r1) @@ -72689,7 +72689,7 @@ PPC_FUNC_IMPL(__imp__sub_823BE090) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823BE164; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,798 ctx.r11.s64 = 798; // li r10,0 @@ -74225,7 +74225,7 @@ PPC_FUNC_IMPL(__imp__sub_823BEAC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823BEB60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 diff --git a/generated/retip_recomp.17.cpp b/generated/retip_recomp.17.cpp index 7a8cded..0026ce0 100644 --- a/generated/retip_recomp.17.cpp +++ b/generated/retip_recomp.17.cpp @@ -16835,7 +16835,7 @@ PPC_FUNC_IMPL(__imp__sub_823C6930) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823C699C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // lwz r11,0(r31) @@ -19781,7 +19781,7 @@ PPC_FUNC_IMPL(__imp__sub_823C7D08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823C7DA4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -19872,7 +19872,7 @@ PPC_FUNC_IMPL(__imp__sub_823C7D08) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823C7E44; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // lwz r11,0(r30) @@ -22223,7 +22223,7 @@ PPC_FUNC_IMPL(__imp__sub_823C8DA0) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x823C8E30; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r27.u32); // addi r4,r1,80 @@ -22982,7 +22982,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9278) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r9.u32 + ctx.r28.u32); // bl 0x82250578 ctx.lr = 0x823C9320; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r26.u32); // addi r4,r1,80 @@ -23084,7 +23084,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9390) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823C93BC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // lwz r11,0(r27) @@ -23114,7 +23114,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9390) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823C93F4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r28.u32); // lwz r11,0(r27) @@ -23228,7 +23228,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9470) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823C94B0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,0(r28) @@ -23258,7 +23258,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9470) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823C94E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // lwz r11,0(r28) @@ -24047,7 +24047,7 @@ PPC_FUNC_IMPL(__imp__sub_823C98B8) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r31.u32); // bl 0x82250578 ctx.lr = 0x823C9A6C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // addi r3,r1,88 @@ -24198,7 +24198,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9B08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823C9B6C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // lwz r11,0(r25) @@ -24459,7 +24459,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9C50) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823C9D28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r30,88(r1) @@ -24498,7 +24498,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9C50) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r8.u32 + ctx.r31.u32); // bl 0x82250578 ctx.lr = 0x823C9D70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,116(r1) PPC_STORE_U32(ctx.r1.u32 + 116, ctx.r26.u32); // addi r4,r1,112 @@ -24752,7 +24752,7 @@ PPC_FUNC_IMPL(__imp__sub_823C9EB8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823C9F2C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // addi r3,r1,80 @@ -26338,7 +26338,7 @@ PPC_FUNC_IMPL(__imp__sub_823CA918) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823CA9D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r23.u32); // lwz r11,0(r31) @@ -26422,7 +26422,7 @@ PPC_FUNC_IMPL(__imp__sub_823CA918) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823CAA68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r23.u32); // lwz r11,0(r31) @@ -27556,7 +27556,7 @@ PPC_FUNC_IMPL(__imp__sub_823CB158) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x823CB240; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r30.u32); // addi r3,r1,96 @@ -28278,7 +28278,7 @@ PPC_FUNC_IMPL(__imp__sub_823CB598) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r26.u32 + 208); // bl 0x82250578 ctx.lr = 0x823CB6FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,248(r27) ctx.r3.u64 = PPC_LOAD_U32(ctx.r27.u32 + 248); // stw r27,84(r1) @@ -29713,7 +29713,7 @@ PPC_FUNC_IMPL(__imp__sub_823CBB78) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x823CC09C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r24,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r24.u32); // lwz r11,0(r30) @@ -31767,7 +31767,7 @@ PPC_FUNC_IMPL(__imp__sub_823CC420) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x823CCE5C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r28.u32); // addi r4,r1,96 @@ -35334,7 +35334,7 @@ PPC_FUNC_IMPL(__imp__sub_823CE710) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823CE7A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -36698,7 +36698,7 @@ PPC_FUNC_IMPL(__imp__sub_823CEFC8) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r26.u32 + 0); // bl 0x82250578 ctx.lr = 0x823CF0F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -39304,7 +39304,7 @@ PPC_FUNC_IMPL(__imp__sub_823D01B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823D0258; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -49149,7 +49149,7 @@ PPC_FUNC_IMPL(__imp__sub_823D3398) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r31.u32 + 1060); // bl 0x82250578 ctx.lr = 0x823D460C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,272(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -53779,7 +53779,7 @@ PPC_FUNC_IMPL(__imp__sub_823D6390) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823D64EC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -61247,7 +61247,7 @@ PPC_FUNC_IMPL(__imp__sub_823D96E8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823D9728; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,80 ctx.r4.s64 = ctx.r1.s64 + 80; // lwz r3,108(r31) diff --git a/generated/retip_recomp.18.cpp b/generated/retip_recomp.18.cpp index e09345a..6e0164b 100644 --- a/generated/retip_recomp.18.cpp +++ b/generated/retip_recomp.18.cpp @@ -1513,7 +1513,7 @@ PPC_FUNC_IMPL(__imp__sub_823E1D38) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823E1DA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // addi r3,r1,80 @@ -9820,7 +9820,7 @@ PPC_FUNC_IMPL(__imp__sub_823E52C8) { PPC_STORE_U32(ctx.r10.u32 + 3812, ctx.r31.u32); // bl 0x82250578 ctx.lr = 0x823E55B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,112 ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x8228e258 @@ -18150,7 +18150,7 @@ PPC_FUNC_IMPL(__imp__sub_823E8E48) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823E8F58; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -18371,7 +18371,7 @@ PPC_FUNC_IMPL(__imp__sub_823E9070) { PPC_STORE_U8(ctx.r31.u32 + 4048, ctx.r11.u8); // bl 0x82250578 ctx.lr = 0x823E90D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r3,r1,80 @@ -21907,7 +21907,7 @@ PPC_FUNC_IMPL(__imp__sub_823EA6B8) { ctx.r3.s64 = ctx.r1.s64 + 176; // bl 0x82250578 ctx.lr = 0x823EA8F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,112(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 112); // lwz r10,116(r1) @@ -26078,7 +26078,7 @@ PPC_FUNC_IMPL(__imp__sub_823EC3E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823EC528; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -31702,7 +31702,7 @@ PPC_FUNC_IMPL(__imp__sub_823EEA10) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 620); // bl 0x82250578 ctx.lr = 0x823EEB44; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // stw r31,88(r1) @@ -35352,7 +35352,7 @@ PPC_FUNC_IMPL(__imp__sub_823EF078) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x823F039C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9380 ctx.r11.s64 = 9380; // stw r19,144(r1) @@ -45385,7 +45385,7 @@ PPC_FUNC_IMPL(__imp__sub_823F4578) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823F461C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -53990,7 +53990,7 @@ PPC_FUNC_IMPL(__imp__sub_823F7908) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823F8044; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -55401,8 +55401,8 @@ PPC_FUNC_IMPL(__imp__sub_823F8838) { return; } -__attribute__((alias("__imp__sub_823F89E0"))) PPC_WEAK_FUNC(sub_823F89E0); -PPC_FUNC_IMPL(__imp__sub_823F89E0) { +__attribute__((alias("__imp__rex_meCreateRuffianActor_823F89E0"))) PPC_WEAK_FUNC(rex_meCreateRuffianActor_823F89E0); +PPC_FUNC_IMPL(__imp__rex_meCreateRuffianActor_823F89E0) { PPC_FUNC_PROLOGUE(); PPCRegister temp{}; uint32_t ea{}; @@ -58056,7 +58056,7 @@ PPC_FUNC_IMPL(__imp__sub_823F9928) { ctx.r3.u64 = ctx.r27.u64; // bl 0x823f89e0 ctx.lr = 0x823F9C14; - sub_823F89E0(ctx, base); + rex_meCreateRuffianActor_823F89E0(ctx, base); // cmpwi cr6,r3,0 ctx.cr6.compare(ctx.r3.s32, 0, ctx.xer); // beq cr6,0x823f9d44 @@ -59108,7 +59108,7 @@ PPC_FUNC_IMPL(__imp__sub_823FA2D0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x823FA320; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,3 ctx.r11.s64 = 3; // addi r10,r1,80 @@ -70758,7 +70758,7 @@ PPC_FUNC_IMPL(__imp__sub_823FF248) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x823FF318; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -74821,7 +74821,7 @@ PPC_FUNC_IMPL(__imp__sub_82400D70) { ctx.r24.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x82400F40; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r25,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r25.u32); // stw r30,88(r1) @@ -78357,7 +78357,7 @@ PPC_FUNC_IMPL(__imp__sub_82402740) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82402760; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,484(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 484); // li r11,0 diff --git a/generated/retip_recomp.19.cpp b/generated/retip_recomp.19.cpp index d5e1597..5b961e8 100644 --- a/generated/retip_recomp.19.cpp +++ b/generated/retip_recomp.19.cpp @@ -17616,7 +17616,7 @@ PPC_FUNC_IMPL(__imp__sub_82409EB8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82409FF4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,88 @@ -18202,7 +18202,7 @@ PPC_FUNC_IMPL(__imp__sub_8240A310) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8240A3E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 248); // lwz r10,0(r28) @@ -18230,7 +18230,7 @@ PPC_FUNC_IMPL(__imp__sub_8240A310) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // bl 0x82250578 ctx.lr = 0x8240A418; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r8,0 ctx.r8.s64 = 0; // addi r4,r1,80 @@ -21908,7 +21908,7 @@ PPC_FUNC_IMPL(__imp__sub_8240BD08) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x8240BD58; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,148(r1) PPC_STORE_U32(ctx.r1.u32 + 148, ctx.r28.u32); // addi r3,r1,144 @@ -28072,7 +28072,7 @@ PPC_FUNC_IMPL(__imp__sub_8240E6D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8240E78C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lbz r11,3644(r30) ctx.r11.u64 = PPC_LOAD_U8(ctx.r30.u32 + 3644); // addi r3,r1,80 @@ -30764,7 +30764,7 @@ PPC_FUNC_IMPL(__imp__sub_8240F820) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8240F998; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // stw r30,88(r1) @@ -60831,7 +60831,7 @@ PPC_FUNC_IMPL(__imp__sub_8241BCF8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8241C13C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32243 ctx.r11.s64 = -2113077248; // addi r4,r1,96 @@ -72405,7 +72405,7 @@ PPC_FUNC_IMPL(__imp__sub_82420E38) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82420E94; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r27,0 ctx.r27.s64 = 0; // addi r4,r1,96 diff --git a/generated/retip_recomp.2.cpp b/generated/retip_recomp.2.cpp index 5f11f44..16d02ca 100644 --- a/generated/retip_recomp.2.cpp +++ b/generated/retip_recomp.2.cpp @@ -11207,7 +11207,7 @@ PPC_FUNC_IMPL(__imp__sub_821E6DE0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821E7234; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -11268,7 +11268,7 @@ PPC_FUNC_IMPL(__imp__sub_821E6DE0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x821E72A4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,96 @@ -11616,7 +11616,7 @@ PPC_FUNC_IMPL(__imp__sub_821E6DE0) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x821E7510; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r1,r1,208 ctx.r1.s64 = ctx.r1.s64 + 208; // b 0x82ae1670 @@ -11642,7 +11642,7 @@ PPC_FUNC_IMPL(__imp__sub_821E6DE0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x821E7538; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lhz r11,32(r29) ctx.r11.u64 = PPC_LOAD_U16(ctx.r29.u32 + 32); // lwz r10,36(r29) @@ -18037,7 +18037,7 @@ PPC_FUNC_IMPL(__imp__sub_821E9F88) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821E9FB4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -20290,7 +20290,7 @@ PPC_FUNC_IMPL(__imp__sub_821EADE0) { ctx.r4.u64 = ctx.r9.u64; // bl 0x821ebe28 ctx.lr = 0x821EAE48; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_821EAE48: // addi r1,r1,112 ctx.r1.s64 = ctx.r1.s64 + 112; @@ -22761,8 +22761,8 @@ PPC_FUNC_IMPL(__imp__sub_821EBDC0) { return; } -__attribute__((alias("__imp__sub_821EBE28"))) PPC_WEAK_FUNC(sub_821EBE28); -PPC_FUNC_IMPL(__imp__sub_821EBE28) { +__attribute__((alias("__imp__rex_meCursorCamCalculatePos_821EBE28"))) PPC_WEAK_FUNC(rex_meCursorCamCalculatePos_821EBE28); +PPC_FUNC_IMPL(__imp__rex_meCursorCamCalculatePos_821EBE28) { PPC_FUNC_PROLOGUE(); PPCRegister temp{}; uint32_t ea{}; @@ -50437,7 +50437,7 @@ PPC_FUNC_IMPL(__imp__sub_821F7410) { ctx.r28.u64 = ctx.r10.u64; // bl 0x82250578 ctx.lr = 0x821F7444; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // lis r10,-32243 @@ -50857,7 +50857,7 @@ PPC_FUNC_IMPL(__imp__sub_821F7410) { ctx.r4.s64 = ctx.r11.s64 + 40; // bl 0x821ebe28 ctx.lr = 0x821F76F4; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,72(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 72); // mr r3,r30 @@ -51134,7 +51134,7 @@ PPC_FUNC_IMPL(__imp__sub_821F7410) { ctx.r4.s64 = ctx.r11.s64 + 40; // bl 0x821ebe28 ctx.lr = 0x821F78BC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,136(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 136); // cmpwi cr6,r11,46 @@ -51189,7 +51189,7 @@ PPC_FUNC_IMPL(__imp__sub_821F7410) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x821F7918; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_821F7918: // addi r4,r1,88 ctx.r4.s64 = ctx.r1.s64 + 88; @@ -53484,7 +53484,7 @@ PPC_FUNC_IMPL(__imp__sub_821F86B0) { PPC_STORE_U32(ctx.r1.u32 + 104, ctx.r11.u32); // bl 0x821ebe28 ctx.lr = 0x821F87DC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // li r10,1 ctx.r10.s64 = 1; // stw r10,328(r6) @@ -53608,7 +53608,7 @@ PPC_FUNC_IMPL(__imp__sub_821F8820) { ctx.r4.u64 = ctx.r29.u64; // bl 0x821ebe28 ctx.lr = 0x821F88A8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r31,64 ctx.r4.s64 = ctx.r31.s64 + 64; // lwz r3,0(r31) @@ -53974,7 +53974,7 @@ PPC_FUNC_IMPL(__imp__sub_821F8A80) { PPC_STORE_U32(ctx.r8.u32 + ctx.r31.u32, ctx.r10.u32); // bl 0x82250578 ctx.lr = 0x821F8B0C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,272(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 272); // addi r4,r1,80 @@ -54495,7 +54495,7 @@ PPC_FUNC_IMPL(__imp__sub_821F8E48) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x821F8E68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // addi r4,r1,80 diff --git a/generated/retip_recomp.20.cpp b/generated/retip_recomp.20.cpp index afb0542..00c8601 100644 --- a/generated/retip_recomp.20.cpp +++ b/generated/retip_recomp.20.cpp @@ -44379,7 +44379,7 @@ PPC_FUNC_IMPL(__imp__sub_82436BA8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82436CF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,96 @@ -44469,7 +44469,7 @@ PPC_FUNC_IMPL(__imp__sub_82436BA8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82436D98; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lfs f0,0(r30) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 0); @@ -44534,7 +44534,7 @@ PPC_FUNC_IMPL(__imp__sub_82436BA8) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r26.u32 + 0); // bl 0x82250578 ctx.lr = 0x82436E00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,112 @@ -44640,7 +44640,7 @@ PPC_FUNC_IMPL(__imp__sub_82436E60) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82436EB0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -51206,7 +51206,7 @@ PPC_FUNC_IMPL(__imp__sub_82439600) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r30.u32 + 132); // bl 0x82250578 ctx.lr = 0x82439A3C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r24,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r24.u32); // addi r4,r1,80 @@ -52282,7 +52282,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A020) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8243A180; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r28) @@ -52473,7 +52473,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A1F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8243A2D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r27.u32); // lwz r11,0(r30) @@ -53156,7 +53156,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8243A74C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r28,100(r1) @@ -53179,7 +53179,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8243A774; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r28.u32); // lwz r11,0(r27) @@ -53223,7 +53223,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8243A7C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -53258,7 +53258,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x8243A800; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,108(r1) PPC_STORE_U32(ctx.r1.u32 + 108, ctx.r28.u32); // stw r25,112(r1) @@ -53358,7 +53358,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x82250578 ctx.lr = 0x8243A8B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,7 ctx.r11.s64 = 7; // stw r25,128(r1) @@ -53395,7 +53395,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x8243A8F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9 ctx.r11.s64 = 9; // stw r25,144(r1) @@ -53432,7 +53432,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 152; // bl 0x82250578 ctx.lr = 0x8243A93C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,8 ctx.r11.s64 = 8; // stw r25,160(r1) @@ -53469,7 +53469,7 @@ PPC_FUNC_IMPL(__imp__sub_8243A6B8) { ctx.r3.s64 = ctx.r1.s64 + 168; // bl 0x82250578 ctx.lr = 0x8243A980; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,10 ctx.r11.s64 = 10; // stw r25,176(r1) @@ -56434,7 +56434,7 @@ PPC_FUNC_IMPL(__imp__sub_8243BCA0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8243BD5C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,96 @@ -56481,7 +56481,7 @@ PPC_FUNC_IMPL(__imp__sub_8243BCA0) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8243BDB0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,84 @@ -57473,7 +57473,7 @@ PPC_FUNC_IMPL(__imp__sub_8243C008) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r31.u32 + 5356); // bl 0x82250578 ctx.lr = 0x8243C470; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,120(r1) PPC_STORE_U32(ctx.r1.u32 + 120, ctx.r30.u32); // stw r23,116(r1) @@ -57564,7 +57564,7 @@ PPC_FUNC_IMPL(__imp__sub_8243C008) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x8243C518; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,144 @@ -57694,7 +57694,7 @@ PPC_FUNC_IMPL(__imp__sub_8243C008) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r31.u32 + 5356); // bl 0x82250578 ctx.lr = 0x8243C5FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,132(r1) PPC_STORE_U32(ctx.r1.u32 + 132, ctx.r30.u32); // stw r25,136(r1) @@ -59347,7 +59347,7 @@ PPC_FUNC_IMPL(__imp__sub_8243CBD8) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r30.u32 + 5356); // bl 0x82250578 ctx.lr = 0x8243D0FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,132(r1) PPC_STORE_U32(ctx.r1.u32 + 132, ctx.r29.u32); // stw r31,136(r1) @@ -60663,7 +60663,7 @@ PPC_FUNC_IMPL(__imp__sub_8243D980) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r11.u32 + 2412); // bl 0x82250578 ctx.lr = 0x8243D9A8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r29) ctx.r10.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,88 @@ -60987,7 +60987,7 @@ PPC_FUNC_IMPL(__imp__sub_8243DBA0) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r30.u32 + 104); // bl 0x82250578 ctx.lr = 0x8243DBC8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,88 @@ -61104,7 +61104,7 @@ PPC_FUNC_IMPL(__imp__sub_8243DBA0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8243DC9C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,96 @@ -62247,7 +62247,7 @@ PPC_FUNC_IMPL(__imp__sub_8243E1A0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8243E48C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r28,100(r1) @@ -66126,7 +66126,7 @@ PPC_FUNC_IMPL(__imp__sub_8243FC60) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8243FEE0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,100 ctx.r4.s64 = ctx.r1.s64 + 100; // mr r3,r30 @@ -66166,7 +66166,7 @@ PPC_FUNC_IMPL(__imp__sub_8243FC60) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8243FF24; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r8,21 ctx.r8.s64 = 21; // li r7,32000 @@ -69544,7 +69544,7 @@ PPC_FUNC_IMPL(__imp__sub_824415D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82441620; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -70912,7 +70912,7 @@ PPC_FUNC_IMPL(__imp__sub_82441EB0) { ctx.r4.s64 = ctx.r1.s64 + 88; // bl 0x821ebe28 ctx.lr = 0x82441FC4; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -71028,7 +71028,7 @@ PPC_FUNC_IMPL(__imp__sub_82441FE8) { PPC_STORE_U32(ctx.r1.u32 + 112, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8244207C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -72330,7 +72330,7 @@ PPC_FUNC_IMPL(__imp__sub_824422D0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x824429A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,96 @@ -72430,7 +72430,7 @@ PPC_FUNC_IMPL(__imp__sub_824422D0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82442A4C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,112 @@ -72680,7 +72680,7 @@ PPC_FUNC_IMPL(__imp__sub_82442BB8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82442BFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -73571,7 +73571,7 @@ PPC_FUNC_IMPL(__imp__sub_82442C38) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x8244323C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r30,240(r30) ctx.r30.u64 = PPC_LOAD_U32(ctx.r30.u32 + 240); // cmplwi cr6,r30,0 @@ -74097,7 +74097,7 @@ PPC_FUNC_IMPL(__imp__sub_824434A0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x824435B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,36 ctx.r11.s64 = 36; // stw r30,104(r1) @@ -74123,7 +74123,7 @@ PPC_FUNC_IMPL(__imp__sub_824434A0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x824435E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,36 ctx.r10.s64 = 36; // li r11,-1 @@ -74159,7 +74159,7 @@ PPC_FUNC_IMPL(__imp__sub_824434A0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82443624; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,88 @@ -76337,7 +76337,7 @@ PPC_FUNC_IMPL(__imp__sub_824443E0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824444C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,88 diff --git a/generated/retip_recomp.21.cpp b/generated/retip_recomp.21.cpp index 82d2794..a82ddf3 100644 --- a/generated/retip_recomp.21.cpp +++ b/generated/retip_recomp.21.cpp @@ -2121,7 +2121,7 @@ PPC_FUNC_IMPL(__imp__sub_82447130) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x824475E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,144 @@ -2369,7 +2369,7 @@ PPC_FUNC_IMPL(__imp__sub_82447130) { PPC_STORE_U32(ctx.r1.u32 + 176, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82447774; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r3,5876(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 5876); // bl 0x821ea3d8 @@ -15500,7 +15500,7 @@ PPC_FUNC_IMPL(__imp__sub_8244CC80) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8244D1E0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32239 ctx.r11.s64 = -2112815104; // addi r4,r1,112 @@ -22219,7 +22219,7 @@ PPC_FUNC_IMPL(__imp__sub_8244F7F8) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 1724); // bl 0x82250578 ctx.lr = 0x8245005C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,112 @@ -24611,7 +24611,7 @@ PPC_FUNC_IMPL(__imp__sub_82451098) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82451134; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -32531,7 +32531,7 @@ PPC_FUNC_IMPL(__imp__sub_82453DC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8245476C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // stw r28,88(r1) @@ -33160,7 +33160,7 @@ PPC_FUNC_IMPL(__imp__sub_82454B18) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82454B9C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r10,-32234 ctx.r10.s64 = -2112487424; // lwz r11,4904(r31) @@ -34505,7 +34505,7 @@ PPC_FUNC_IMPL(__imp__sub_82455160) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824554FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,37 ctx.r11.s64 = 37; // li r10,32000 @@ -46025,7 +46025,7 @@ PPC_FUNC_IMPL(__imp__sub_82459FC0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8245A3D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r26.u32); // lwz r11,0(r30) @@ -46153,7 +46153,7 @@ PPC_FUNC_IMPL(__imp__sub_82459FC0) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2576); // bl 0x82250578 ctx.lr = 0x8245A4B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,132(r1) PPC_STORE_U32(ctx.r1.u32 + 132, ctx.r26.u32); // stw r30,136(r1) @@ -46819,7 +46819,7 @@ PPC_FUNC_IMPL(__imp__sub_8245A698) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8245A960; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,0(r31) @@ -50363,7 +50363,7 @@ PPC_FUNC_IMPL(__imp__sub_8245C0D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8245C120; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -50393,7 +50393,7 @@ PPC_FUNC_IMPL(__imp__sub_8245C0D8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8245C158; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // addi r4,r1,88 @@ -50556,7 +50556,7 @@ PPC_FUNC_IMPL(__imp__sub_8245C240) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r29.u32 + 2412); // bl 0x82250578 ctx.lr = 0x8245C264; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,88 @@ -59073,7 +59073,7 @@ PPC_FUNC_IMPL(__imp__sub_8245FAB8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8245FB04; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,84(r1) ctx.r8.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); // lwz r6,0(r30) @@ -63207,7 +63207,7 @@ PPC_FUNC_IMPL(__imp__sub_824616F8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82461720; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -69123,7 +69123,7 @@ PPC_FUNC_IMPL(__imp__sub_824638B0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82463F88; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r29,92(r1) @@ -69693,7 +69693,7 @@ PPC_FUNC_IMPL(__imp__sub_82464058) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82464388; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -73625,7 +73625,7 @@ PPC_FUNC_IMPL(__imp__sub_82465D88) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82465E60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r28.u32); // lwz r10,0(r31) @@ -74148,7 +74148,7 @@ PPC_FUNC_IMPL(__imp__sub_82465F00) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246623C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r29) @@ -74390,7 +74390,7 @@ PPC_FUNC_IMPL(__imp__sub_82466268) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824663D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // lwz r10,0(r31) @@ -74871,7 +74871,7 @@ PPC_FUNC_IMPL(__imp__sub_82466630) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82466710; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,248(r30) ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 248); // stw r29,84(r1) @@ -75611,7 +75611,7 @@ PPC_FUNC_IMPL(__imp__sub_82466880) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82466C28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r29,100(r1) @@ -77108,7 +77108,7 @@ PPC_FUNC_IMPL(__imp__sub_824672C8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82467698; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r28,100(r1) @@ -78598,7 +78598,7 @@ PPC_FUNC_IMPL(__imp__sub_82467F30) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82468044; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,100 ctx.r4.s64 = ctx.r1.s64 + 100; // mr r3,r30 @@ -78976,7 +78976,7 @@ PPC_FUNC_IMPL(__imp__sub_824682A0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824682C8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -79426,7 +79426,7 @@ PPC_FUNC_IMPL(__imp__sub_82468588) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r11.u32 + 1756); // bl 0x82250578 ctx.lr = 0x824685AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -81263,7 +81263,7 @@ PPC_FUNC_IMPL(__imp__sub_824691C0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824691F4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r27.u32); // lwz r11,0(r31) @@ -81329,7 +81329,7 @@ PPC_FUNC_IMPL(__imp__sub_824691C0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8246926C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r1,80 ctx.r11.s64 = ctx.r1.s64 + 80; // addi r4,r1,96 @@ -81480,7 +81480,7 @@ PPC_FUNC_IMPL(__imp__sub_82469340) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8246936C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r29,0 ctx.r29.s64 = 0; // addi r4,r1,88 @@ -81512,7 +81512,7 @@ PPC_FUNC_IMPL(__imp__sub_82469340) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824693A8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -81996,7 +81996,7 @@ PPC_FUNC_IMPL(__imp__sub_824695F8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824696CC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,248(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // stw r31,84(r1) @@ -82387,7 +82387,7 @@ PPC_FUNC_IMPL(__imp__sub_824696E8) { ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x82250578 ctx.lr = 0x824699B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,124(r1) PPC_STORE_U32(ctx.r1.u32 + 124, ctx.r27.u32); // stw r30,128(r1) @@ -82575,7 +82575,7 @@ PPC_FUNC_IMPL(__imp__sub_824696E8) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x82469B04; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // stw r31,108(r1) @@ -83438,7 +83438,7 @@ PPC_FUNC_IMPL(__imp__sub_82469DD8) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x8246A110; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,108(r1) PPC_STORE_U32(ctx.r1.u32 + 108, ctx.r31.u32); // lwz r11,0(r29) @@ -83732,7 +83732,7 @@ PPC_FUNC_IMPL(__imp__sub_8246A2E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246A300; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -84130,7 +84130,7 @@ PPC_FUNC_IMPL(__imp__sub_8246A488) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r28.u32 + 5140); // bl 0x82250578 ctx.lr = 0x8246A598; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r29.u32); // stw r31,144(r1) @@ -84403,7 +84403,7 @@ PPC_FUNC_IMPL(__imp__sub_8246A488) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8246A77C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,248(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // stw r31,132(r1) diff --git a/generated/retip_recomp.22.cpp b/generated/retip_recomp.22.cpp index dfab0d5..c66f55a 100644 --- a/generated/retip_recomp.22.cpp +++ b/generated/retip_recomp.22.cpp @@ -1011,7 +1011,7 @@ PPC_FUNC_IMPL(__imp__sub_8246B5C8) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2308); // bl 0x82250578 ctx.lr = 0x8246B5F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -2533,7 +2533,7 @@ PPC_FUNC_IMPL(__imp__sub_8246BEA0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246C014; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,0(r30) @@ -3570,7 +3570,7 @@ PPC_FUNC_IMPL(__imp__sub_8246C5A8) { ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x82250578 ctx.lr = 0x8246C750; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,124(r1) PPC_STORE_U32(ctx.r1.u32 + 124, ctx.r30.u32); // lwz r11,0(r29) @@ -3684,7 +3684,7 @@ PPC_FUNC_IMPL(__imp__sub_8246C798) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246C81C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // lwz r11,0(r31) @@ -5475,7 +5475,7 @@ PPC_FUNC_IMPL(__imp__sub_8246D388) { PPC_STORE_U8(ctx.r29.u32 + 1091, ctx.r11.u8); // bl 0x82250578 ctx.lr = 0x8246D3B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // mr r3,r30 @@ -5859,7 +5859,7 @@ PPC_FUNC_IMPL(__imp__sub_8246D400) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r11.u32 + 8); // bl 0x82250578 ctx.lr = 0x8246D67C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,0 ctx.r10.s64 = 0; // addi r4,r1,88 @@ -6954,7 +6954,7 @@ PPC_FUNC_IMPL(__imp__sub_8246D860) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8246DE1C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r27) ctx.r11.u64 = PPC_LOAD_U32(ctx.r27.u32 + 0); // stw r29,100(r1) @@ -6977,7 +6977,7 @@ PPC_FUNC_IMPL(__imp__sub_8246D860) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8246DE44; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // lwz r11,0(r31) @@ -7282,7 +7282,7 @@ PPC_FUNC_IMPL(__imp__sub_8246DFD0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246E048; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,0(r31) @@ -7481,7 +7481,7 @@ PPC_FUNC_IMPL(__imp__sub_8246E0A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246E1A8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // lwz r11,0(r29) @@ -7974,7 +7974,7 @@ PPC_FUNC_IMPL(__imp__sub_8246E470) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246E4C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r28,1 ctx.r28.s64 = 1; // addi r4,r1,80 @@ -9017,7 +9017,7 @@ PPC_FUNC_IMPL(__imp__sub_8246EB38) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8246EB88; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r29,84(r1) @@ -10258,7 +10258,7 @@ PPC_FUNC_IMPL(__imp__sub_8246F2E8) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x8246F3AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r28.u32); // lwz r11,0(r31) @@ -11672,7 +11672,7 @@ PPC_FUNC_IMPL(__imp__sub_8246FD18) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2272); // bl 0x82250578 ctx.lr = 0x8246FD40; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -13194,7 +13194,7 @@ PPC_FUNC_IMPL(__imp__sub_82470738) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824707B0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -15325,7 +15325,7 @@ PPC_FUNC_IMPL(__imp__sub_824715E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82471610; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r29,84(r1) @@ -16950,7 +16950,7 @@ PPC_FUNC_IMPL(__imp__sub_82471D20) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82472138; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // addi r4,r1,96 @@ -26246,7 +26246,7 @@ PPC_FUNC_IMPL(__imp__sub_82475FE0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82476000; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -26410,7 +26410,7 @@ PPC_FUNC_IMPL(__imp__sub_824760C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8247611C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r29) @@ -37505,7 +37505,7 @@ PPC_FUNC_IMPL(__imp__sub_8247AD20) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8247ADF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r27,84(r1) @@ -40430,7 +40430,7 @@ PPC_FUNC_IMPL(__imp__sub_8247C1A8) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r29.u32 + 116); // bl 0x82250578 ctx.lr = 0x8247C1D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -44905,7 +44905,7 @@ PPC_FUNC_IMPL(__imp__sub_8247DCE0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8247E0B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // lwz r11,0(r30) @@ -45911,7 +45911,7 @@ PPC_FUNC_IMPL(__imp__sub_8247E788) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8247E7BC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -50145,7 +50145,7 @@ PPC_FUNC_IMPL(__imp__sub_824804C0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82480520; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,41 ctx.r11.s64 = 41; // li r10,32000 @@ -50715,7 +50715,7 @@ PPC_FUNC_IMPL(__imp__sub_82480600) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r30.u32 + 2468); // bl 0x82250578 ctx.lr = 0x82480934; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -53505,7 +53505,7 @@ PPC_FUNC_IMPL(__imp__sub_82481B48) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r7.u32 + 0); // bl 0x82250578 ctx.lr = 0x82481C74; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r6,1 ctx.r6.s64 = 1; // stw r29,116(r1) @@ -54599,7 +54599,7 @@ PPC_FUNC_IMPL(__imp__sub_824823E8) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r30.u32 + 2576); // bl 0x82250578 ctx.lr = 0x8248241C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,4 ctx.r11.s64 = 4; // stw r29,84(r1) @@ -57137,7 +57137,7 @@ PPC_FUNC_IMPL(__imp__sub_824834C8) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2576); // bl 0x82250578 ctx.lr = 0x824834EC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,4 ctx.r11.s64 = 4; // stw r30,84(r1) @@ -58468,7 +58468,7 @@ PPC_FUNC_IMPL(__imp__sub_82483E38) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r31.u32 + 2576); // bl 0x82250578 ctx.lr = 0x82483E5C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,4 ctx.r11.s64 = 4; // stw r30,84(r1) @@ -59548,7 +59548,7 @@ PPC_FUNC_IMPL(__imp__sub_824845D8) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 2576); // bl 0x82250578 ctx.lr = 0x82484604; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,4 ctx.r11.s64 = 4; // stw r29,84(r1) @@ -62568,7 +62568,7 @@ PPC_FUNC_IMPL(__imp__sub_82485998) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82485A40; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -63957,7 +63957,7 @@ PPC_FUNC_IMPL(__imp__sub_824860D0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x824863B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r28,116(r1) @@ -64389,7 +64389,7 @@ PPC_FUNC_IMPL(__imp__sub_824860D0) { ctx.r3.s64 = ctx.r1.s64 + 108; // bl 0x82250578 ctx.lr = 0x824866A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,108 @@ -65172,7 +65172,7 @@ PPC_FUNC_IMPL(__imp__sub_82486B88) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82486BC4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // li r28,0 @@ -65389,7 +65389,7 @@ PPC_FUNC_IMPL(__imp__sub_82486B88) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82486D3C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // stw r28,100(r1) @@ -81451,7 +81451,7 @@ PPC_FUNC_IMPL(__imp__sub_8248D9B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8248DA10; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r31,88(r1) @@ -86629,7 +86629,7 @@ PPC_FUNC_IMPL(__imp__sub_8248FC30) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x8248FD38; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r4,r26 ctx.r4.u64 = ctx.r26.u64; // mr r3,r30 diff --git a/generated/retip_recomp.23.cpp b/generated/retip_recomp.23.cpp index 2afb358..02ad14b 100644 --- a/generated/retip_recomp.23.cpp +++ b/generated/retip_recomp.23.cpp @@ -11102,7 +11102,7 @@ PPC_FUNC_IMPL(__imp__sub_82494860) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r30.u32 + 248); // bl 0x82250578 ctx.lr = 0x82494888; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,116(r1) @@ -12755,7 +12755,7 @@ PPC_FUNC_IMPL(__imp__sub_82495370) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824953E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r3,r1,80 @@ -14978,7 +14978,7 @@ PPC_FUNC_IMPL(__imp__sub_82495F88) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x824963C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r30.u32); // lwz r11,248(r30) @@ -15465,7 +15465,7 @@ PPC_FUNC_IMPL(__imp__sub_82495F88) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x82496700; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,108(r1) PPC_STORE_U32(ctx.r1.u32 + 108, ctx.r30.u32); // lwz r11,248(r30) @@ -15525,7 +15525,7 @@ PPC_FUNC_IMPL(__imp__sub_82495F88) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8249676C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,35 ctx.r11.s64 = 35; // li r10,32000 @@ -17942,7 +17942,7 @@ PPC_FUNC_IMPL(__imp__sub_82497768) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r31.u32 + 6316); // bl 0x82250578 ctx.lr = 0x8249778C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -18385,7 +18385,7 @@ PPC_FUNC_IMPL(__imp__sub_82497860) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82497AB8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -21566,7 +21566,7 @@ PPC_FUNC_IMPL(__imp__sub_82498D98) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r30.u32 + 5160); // bl 0x82250578 ctx.lr = 0x824990B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,148(r1) PPC_STORE_U32(ctx.r1.u32 + 148, ctx.r29.u32); // lwz r9,0(r31) @@ -22177,7 +22177,7 @@ PPC_FUNC_IMPL(__imp__sub_82499408) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x824994C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r30.u32); // stw r29,144(r1) @@ -22738,7 +22738,7 @@ PPC_FUNC_IMPL(__imp__sub_82499818) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82499854; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,20 ctx.r11.s64 = 20; // stw r26,100(r1) @@ -23130,7 +23130,7 @@ PPC_FUNC_IMPL(__imp__sub_824999C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82499B1C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -27209,7 +27209,7 @@ PPC_FUNC_IMPL(__imp__sub_8249AC80) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8249B784; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r26) ctx.r10.u64 = PPC_LOAD_U32(ctx.r26.u32 + 0); // li r11,0 @@ -28508,7 +28508,7 @@ PPC_FUNC_IMPL(__imp__sub_8249BFE0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8249C040; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,36 ctx.r11.s64 = 36; // li r10,32000 @@ -29690,7 +29690,7 @@ PPC_FUNC_IMPL(__imp__sub_8249C528) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r27.u32 + 248); // bl 0x82250578 ctx.lr = 0x8249C8B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r27.u32); // stw r29,96(r1) @@ -30248,7 +30248,7 @@ PPC_FUNC_IMPL(__imp__sub_8249CC00) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8249CC54; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,84(r1) @@ -33125,7 +33125,7 @@ PPC_FUNC_IMPL(__imp__sub_8249DE28) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8249E070; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,248(r30) ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 248); // stw r30,84(r1) @@ -35685,7 +35685,7 @@ PPC_FUNC_IMPL(__imp__sub_8249F1A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8249F200; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -35926,7 +35926,7 @@ PPC_FUNC_IMPL(__imp__sub_8249F368) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8249F388; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -52449,7 +52449,7 @@ PPC_FUNC_IMPL(__imp__sub_824A5D88) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824A62B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,248(r30) ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 248); // stw r30,84(r1) @@ -53082,7 +53082,7 @@ PPC_FUNC_IMPL(__imp__sub_824A65E8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824A66E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -53593,7 +53593,7 @@ PPC_FUNC_IMPL(__imp__sub_824A6A20) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r29.u32 + 2416); // bl 0x82250578 ctx.lr = 0x824A6A4C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,8(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 8); // li r10,1 @@ -53652,7 +53652,7 @@ PPC_FUNC_IMPL(__imp__sub_824A6A20) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824A6ABC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -53689,7 +53689,7 @@ PPC_FUNC_IMPL(__imp__sub_824A6A20) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x824A6B00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,128 @@ -58780,7 +58780,7 @@ PPC_FUNC_IMPL(__imp__sub_824A8DC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824A8DF0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -62140,7 +62140,7 @@ PPC_FUNC_IMPL(__imp__sub_824A9AD8) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x824AA530; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,112 @@ -62200,7 +62200,7 @@ PPC_FUNC_IMPL(__imp__sub_824A9AD8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824AA594; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,80 @@ -72114,7 +72114,7 @@ PPC_FUNC_IMPL(__imp__sub_824AE830) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824AE864; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,0(r30) @@ -74208,7 +74208,7 @@ PPC_FUNC_IMPL(__imp__sub_824AF518) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824AF68C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // lwz r11,0(r31) @@ -74282,7 +74282,7 @@ PPC_FUNC_IMPL(__imp__sub_824AF6D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824AF700; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -74349,7 +74349,7 @@ PPC_FUNC_IMPL(__imp__sub_824AF748) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824AF770; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r31,84(r1) @@ -74422,7 +74422,7 @@ PPC_FUNC_IMPL(__imp__sub_824AF7C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824AF7F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -75037,7 +75037,7 @@ PPC_FUNC_IMPL(__imp__sub_824AFAB8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824AFC30; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,88 @@ -75286,7 +75286,7 @@ PPC_FUNC_IMPL(__imp__sub_824AFD70) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824AFDDC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // addi r4,r1,80 diff --git a/generated/retip_recomp.24.cpp b/generated/retip_recomp.24.cpp index aaf537b..f53c526 100644 --- a/generated/retip_recomp.24.cpp +++ b/generated/retip_recomp.24.cpp @@ -34614,7 +34614,7 @@ PPC_FUNC_IMPL(__imp__sub_824C17F8) { PPC_STORE_U32(ctx.r1.u32 + 104, temp.u32); // bl 0x821ebe28 ctx.lr = 0x824C1B94; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,96 ctx.r4.s64 = ctx.r1.s64 + 96; // mr r3,r29 @@ -43227,7 +43227,7 @@ PPC_FUNC_IMPL(__imp__sub_824C52E8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824C5414; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r30) @@ -53474,7 +53474,7 @@ PPC_FUNC_IMPL(__imp__sub_824C92C8) { ctx.r4.s64 = ctx.r1.s64 + 120; // bl 0x821ebe28 ctx.lr = 0x824C98A0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // b 0x824c98a8 goto loc_824C98A8; loc_824C98A4: @@ -58974,7 +58974,7 @@ PPC_FUNC_IMPL(__imp__sub_824CB760) { ctx.r3.s64 = ctx.r1.s64 + 152; // bl 0x82250578 ctx.lr = 0x824CBEF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9194 ctx.r11.s64 = 9194; // stw r29,160(r1) @@ -65905,7 +65905,7 @@ PPC_FUNC_IMPL(__imp__sub_824CEC78) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x824CEEF4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32748 ctx.r11.s64 = -2146172928; // li r10,0 @@ -66508,7 +66508,7 @@ PPC_FUNC_IMPL(__imp__sub_824CF240) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824CF2D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r29,92(r1) @@ -67033,7 +67033,7 @@ PPC_FUNC_IMPL(__imp__sub_824CF4E8) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x824CF678; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lbz r11,-2308(r31) ctx.r11.u64 = PPC_LOAD_U8(ctx.r31.u32 + -2308); // li r29,0 @@ -68054,7 +68054,7 @@ PPC_FUNC_IMPL(__imp__sub_824CFD00) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x824CFDB4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,8 ctx.r11.s64 = 8; // stw r30,120(r1) @@ -68716,7 +68716,7 @@ PPC_FUNC_IMPL(__imp__sub_824D0220) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824D0268; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32748 ctx.r11.s64 = -2146172928; // li r10,0 @@ -68806,7 +68806,7 @@ PPC_FUNC_IMPL(__imp__sub_824D02E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824D02F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31834 ctx.r11.s64 = -2086273024; // addi r3,r1,80 diff --git a/generated/retip_recomp.25.cpp b/generated/retip_recomp.25.cpp index 93dac93..2fe2d99 100644 --- a/generated/retip_recomp.25.cpp +++ b/generated/retip_recomp.25.cpp @@ -1161,7 +1161,7 @@ PPC_FUNC_IMPL(__imp__sub_824D5380) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x824D53E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,104(r1) PPC_STORE_U32(ctx.r1.u32 + 104, ctx.r30.u32); // stw r31,100(r1) @@ -1311,7 +1311,7 @@ PPC_FUNC_IMPL(__imp__sub_824D5488) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x824D54E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,104(r1) PPC_STORE_U32(ctx.r1.u32 + 104, ctx.r31.u32); // stw r29,100(r1) @@ -5885,7 +5885,7 @@ PPC_FUNC_IMPL(__imp__sub_824D72C0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824D7388; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stb r30,84(r1) @@ -5968,7 +5968,7 @@ PPC_FUNC_IMPL(__imp__sub_824D73A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824D7410; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,4(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 4); // stb r31,85(r1) @@ -6112,7 +6112,7 @@ PPC_FUNC_IMPL(__imp__sub_824D7488) { ctx.r29.u64 = __builtin_rotateleft64(ctx.r9.u32 | (ctx.r9.u64 << 32), 0) & 0x2; // bl 0x82250578 ctx.lr = 0x824D7510; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stb r20,84(r1) PPC_STORE_U8(ctx.r1.u32 + 84, ctx.r20.u8); // addi r3,r1,80 @@ -11809,7 +11809,7 @@ PPC_FUNC_IMPL(__imp__sub_824D92A0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824D9C90; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // addi r3,r1,88 @@ -16333,7 +16333,7 @@ PPC_FUNC_IMPL(__imp__sub_824DBA20) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824DBAC8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r29,88(r1) @@ -22847,7 +22847,7 @@ PPC_FUNC_IMPL(__imp__sub_824DE778) { ctx.r30.s64 = ctx.r31.s64 + -2400; // bl 0x82250578 ctx.lr = 0x824DE7AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // stw r29,88(r1) @@ -22911,7 +22911,7 @@ PPC_FUNC_IMPL(__imp__sub_824DE7E0) { ctx.r30.s64 = ctx.r31.s64 + -2400; // bl 0x82250578 ctx.lr = 0x824DE810; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,-2400(r31) @@ -29651,7 +29651,7 @@ PPC_FUNC_IMPL(__imp__sub_824E1208) { ctx.r3.s64 = ctx.r1.s64 + 176; // bl 0x82250578 ctx.lr = 0x824E1514; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,184(r1) PPC_STORE_U32(ctx.r1.u32 + 184, ctx.r31.u32); // stw r23,180(r1) @@ -29763,7 +29763,7 @@ PPC_FUNC_IMPL(__imp__sub_824E1208) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824E15D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9301 ctx.r11.s64 = 9301; // stw r22,96(r1) @@ -29818,7 +29818,7 @@ PPC_FUNC_IMPL(__imp__sub_824E1208) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x824E1638; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9303 ctx.r11.s64 = 9303; // stw r20,112(r1) @@ -29896,7 +29896,7 @@ PPC_FUNC_IMPL(__imp__sub_824E1208) { ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x82250578 ctx.lr = 0x824E16C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9309 ctx.r11.s64 = 9309; // stw r21,128(r1) @@ -29948,7 +29948,7 @@ PPC_FUNC_IMPL(__imp__sub_824E1208) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x824E171C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9310 ctx.r11.s64 = 9310; // stw r19,144(r1) @@ -30000,7 +30000,7 @@ PPC_FUNC_IMPL(__imp__sub_824E1208) { ctx.r3.s64 = ctx.r1.s64 + 152; // bl 0x82250578 ctx.lr = 0x824E1778; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9305 ctx.r11.s64 = 9305; // stw r16,160(r1) @@ -34906,7 +34906,7 @@ PPC_FUNC_IMPL(__imp__sub_824E3918) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x824E39A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r29.u32); // stw r24,84(r1) @@ -46783,7 +46783,7 @@ PPC_FUNC_IMPL(__imp__sub_824E8370) { ctx.r3.s64 = ctx.r1.s64 + 124; // bl 0x82250578 ctx.lr = 0x824E87E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,124 ctx.r3.s64 = ctx.r1.s64 + 124; // bl 0x8228e258 @@ -56529,7 +56529,7 @@ PPC_FUNC_IMPL(__imp__sub_824EC648) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x824ECA08; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,84 @@ -61477,7 +61477,7 @@ PPC_FUNC_IMPL(__imp__sub_824EE898) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824EEB84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9180 ctx.r11.s64 = 9180; // li r10,0 @@ -62158,7 +62158,7 @@ PPC_FUNC_IMPL(__imp__sub_824EEF30) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824EEFE8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r31,92(r1) diff --git a/generated/retip_recomp.26.cpp b/generated/retip_recomp.26.cpp index 4dad0dc..b2c2c82 100644 --- a/generated/retip_recomp.26.cpp +++ b/generated/retip_recomp.26.cpp @@ -15689,7 +15689,7 @@ PPC_FUNC_IMPL(__imp__sub_824FBDE8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x824FC27C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r18,112(r1) PPC_STORE_U32(ctx.r1.u32 + 112, ctx.r18.u32); // stw r18,104(r1) @@ -23396,7 +23396,7 @@ PPC_FUNC_IMPL(__imp__sub_824FF560) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x824FF5D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // stw r31,92(r1) @@ -27528,7 +27528,7 @@ PPC_FUNC_IMPL(__imp__sub_82501138) { PPC_STORE_U32(ctx.r31.u32 + 1368, temp.u32); // bl 0x82250578 ctx.lr = 0x82501188; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r28) ctx.r10.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // addi r4,r1,80 @@ -27951,7 +27951,7 @@ PPC_FUNC_IMPL(__imp__sub_825013E8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82501440; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r29,88(r1) @@ -28204,7 +28204,7 @@ PPC_FUNC_IMPL(__imp__sub_82501460) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825015F4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,48 ctx.r10.s64 = 48; // li r11,32000 @@ -34022,7 +34022,7 @@ PPC_FUNC_IMPL(__imp__sub_82503970) { ctx.r3.s64 = ctx.r1.s64 + 208; // bl 0x82250578 ctx.lr = 0x82503D7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,956(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 956); // addi r11,r1,96 @@ -34659,7 +34659,7 @@ PPC_FUNC_IMPL(__imp__sub_82503970) { PPC_STORE_U32(ctx.r1.u32 + 120, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8250419C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,2416(r26) ctx.r11.u64 = PPC_LOAD_U32(ctx.r26.u32 + 2416); // cmplwi cr6,r11,0 @@ -35535,7 +35535,7 @@ PPC_FUNC_IMPL(__imp__sub_82504638) { PPC_STORE_U32(ctx.r1.u32 + 104, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82504754; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // li r4,0 ctx.r4.s64 = 0; // mr r3,r27 @@ -38433,7 +38433,7 @@ PPC_FUNC_IMPL(__imp__sub_82505848) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82505A3C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r23,92(r1) @@ -38472,7 +38472,7 @@ PPC_FUNC_IMPL(__imp__sub_82505848) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x82505A84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r28) ctx.r8.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r24,108(r1) @@ -38513,7 +38513,7 @@ PPC_FUNC_IMPL(__imp__sub_82505848) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82505AD0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r28) ctx.r10.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r24,100(r1) @@ -39955,7 +39955,7 @@ PPC_FUNC_IMPL(__imp__sub_825062C0) { ctx.f31.f64 = double(temp.f32); // bl 0x82250578 ctx.lr = 0x825064C8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,100(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -40728,7 +40728,7 @@ PPC_FUNC_IMPL(__imp__sub_82506810) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82506A00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r21,100(r1) @@ -42732,7 +42732,7 @@ PPC_FUNC_IMPL(__imp__sub_82507550) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x825077E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,116(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -42859,7 +42859,7 @@ PPC_FUNC_IMPL(__imp__sub_82507550) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x825078BC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,96 @@ -46920,7 +46920,7 @@ PPC_FUNC_IMPL(__imp__sub_82509090) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x82509468; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,108(r1) PPC_STORE_U32(ctx.r1.u32 + 108, ctx.r27.u32); // lwz r3,752(r30) @@ -47955,7 +47955,7 @@ PPC_FUNC_IMPL(__imp__sub_82509090) { ctx.r3.s64 = ctx.r1.s64 + 100; // bl 0x82250578 ctx.lr = 0x82509BA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r26) ctx.r11.u64 = PPC_LOAD_U32(ctx.r26.u32 + 0); // addi r4,r1,100 @@ -49262,7 +49262,7 @@ PPC_FUNC_IMPL(__imp__sub_82509090) { PPC_STORE_U32(ctx.r9.u32 + 1264, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x8250A4A8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,80(r1) ctx.r10.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // lwz r9,0(r26) @@ -50619,7 +50619,7 @@ PPC_FUNC_IMPL(__imp__sub_82509090) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8250AE60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,132 ctx.r4.s64 = ctx.r1.s64 + 132; // mr r3,r26 @@ -52355,7 +52355,7 @@ PPC_FUNC_IMPL(__imp__sub_82509090) { ctx.r27.u64 = PPC_LOAD_U32(ctx.r29.u32 + 12); // bl 0x82250578 ctx.lr = 0x8250BA7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r30,r28 ctx.r30.u64 = ctx.r28.u64; // cmplw cr6,r28,r27 @@ -53468,7 +53468,7 @@ PPC_FUNC_IMPL(__imp__sub_8250C010) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8250C1F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r22,100(r1) @@ -53507,7 +53507,7 @@ PPC_FUNC_IMPL(__imp__sub_8250C010) { ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x82250578 ctx.lr = 0x8250C240; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r28) ctx.r8.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r23,124(r1) @@ -53548,7 +53548,7 @@ PPC_FUNC_IMPL(__imp__sub_8250C010) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x8250C28C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r28) ctx.r10.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r23,108(r1) @@ -54304,7 +54304,7 @@ PPC_FUNC_IMPL(__imp__sub_8250C010) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x8250C7F4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r28) ctx.r10.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // li r11,21 @@ -54750,7 +54750,7 @@ PPC_FUNC_IMPL(__imp__sub_8250C010) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8250CB20; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // stw r22,116(r1) @@ -56637,7 +56637,7 @@ PPC_FUNC_IMPL(__imp__sub_8250D4B0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8250D82C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r24,120(r1) PPC_STORE_U32(ctx.r1.u32 + 120, ctx.r24.u32); // stw r24,128(r1) @@ -56910,7 +56910,7 @@ PPC_FUNC_IMPL(__imp__sub_8250D4B0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8250DA00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,96 @@ -61004,7 +61004,7 @@ PPC_FUNC_IMPL(__imp__sub_8250F530) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x8250F644; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // li r6,31 @@ -66302,7 +66302,7 @@ PPC_FUNC_IMPL(__imp__sub_82511698) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82511A40; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,96 @@ -69092,7 +69092,7 @@ PPC_FUNC_IMPL(__imp__sub_82512C48) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82512C9C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -69982,7 +69982,7 @@ PPC_FUNC_IMPL(__imp__sub_82513220) { ctx.r3.u64 = ctx.r29.u64; // bl 0x821ebe28 ctx.lr = 0x8251327C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_8251327C: // cmplwi cr6,r30,0 ctx.cr6.compare(ctx.r30.u32, 0, ctx.xer); @@ -70247,7 +70247,7 @@ PPC_FUNC_IMPL(__imp__sub_82513380) { ctx.r4.s64 = ctx.r1.s64 + 120; // bl 0x821ebe28 ctx.lr = 0x8251343C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -71804,7 +71804,7 @@ PPC_FUNC_IMPL(__imp__sub_82513A08) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r28.u32 + 12); // bl 0x82250578 ctx.lr = 0x82513F10; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r29,r27 ctx.r29.u64 = ctx.r27.u64; // cmplw cr6,r27,r26 @@ -72751,7 +72751,7 @@ PPC_FUNC_IMPL(__imp__sub_82513A08) { PPC_STORE_U32(ctx.r9.u32 + 1264, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x8251459C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,80(r1) ctx.r10.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // lwz r9,0(r31) @@ -73821,7 +73821,7 @@ PPC_FUNC_IMPL(__imp__sub_82514CE8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82514D50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,96 @@ -74069,7 +74069,7 @@ PPC_FUNC_IMPL(__imp__sub_82514ED0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82514EFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,112 @@ -75590,7 +75590,7 @@ PPC_FUNC_IMPL(__imp__sub_825158E8) { ctx.r30.s64 = 1; // bl 0x82250578 ctx.lr = 0x82515910; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // addi r4,r1,88 @@ -75993,7 +75993,7 @@ PPC_FUNC_IMPL(__imp__sub_82515B18) { PPC_STORE_U32(ctx.r9.u32 + 1264, ctx.r11.u32); // bl 0x82250578 ctx.lr = 0x82515BE0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r7,0(r31) ctx.r7.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r10,r1,88 diff --git a/generated/retip_recomp.27.cpp b/generated/retip_recomp.27.cpp index ffaaea5..6093771 100644 --- a/generated/retip_recomp.27.cpp +++ b/generated/retip_recomp.27.cpp @@ -966,7 +966,7 @@ PPC_FUNC_IMPL(__imp__sub_82517AA8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82517B44; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r27) ctx.r11.u64 = PPC_LOAD_U32(ctx.r27.u32 + 0); // addi r4,r1,88 @@ -8076,7 +8076,7 @@ PPC_FUNC_IMPL(__imp__sub_8251A8E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8251AA7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // stw r30,88(r1) @@ -14077,7 +14077,7 @@ PPC_FUNC_IMPL(__imp__sub_8251CF58) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r30.u32 + 120); // bl 0x82250578 ctx.lr = 0x8251D3D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r21,116(r1) PPC_STORE_U32(ctx.r1.u32 + 116, ctx.r21.u32); // addi r4,r1,112 @@ -14124,7 +14124,7 @@ PPC_FUNC_IMPL(__imp__sub_8251CF58) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8251D420; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r21,104(r1) PPC_STORE_U32(ctx.r1.u32 + 104, ctx.r21.u32); // stw r21,100(r1) @@ -19900,7 +19900,7 @@ PPC_FUNC_IMPL(__imp__sub_8251FD48) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8251FDAC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r24) ctx.r11.u64 = PPC_LOAD_U32(ctx.r24.u32 + 0); // addi r4,r1,84 @@ -23826,7 +23826,7 @@ PPC_FUNC_IMPL(__imp__sub_825217E8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x825218B0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r26.u32); // lwz r11,0(r31) @@ -24143,7 +24143,7 @@ PPC_FUNC_IMPL(__imp__sub_82521A28) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x82521AD8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // stw r31,108(r1) @@ -24169,7 +24169,7 @@ PPC_FUNC_IMPL(__imp__sub_82521A28) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82521B08; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r27.u32); // lwz r8,0(r31) @@ -24951,7 +24951,7 @@ PPC_FUNC_IMPL(__imp__sub_82521FB8) { PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82522040; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r6 ctx.r3.u64 = ctx.r6.u64; // bl 0x821ea3d8 @@ -25447,7 +25447,7 @@ PPC_FUNC_IMPL(__imp__sub_82522350) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r10.u32 + 60); // bl 0x82250578 ctx.lr = 0x8252238C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // addi r4,r1,80 @@ -25509,7 +25509,7 @@ PPC_FUNC_IMPL(__imp__sub_825223C8) { ctx.r30.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x825223F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -25541,7 +25541,7 @@ PPC_FUNC_IMPL(__imp__sub_825223C8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8252242C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,32 ctx.r11.s64 = 32; // li r10,32000 @@ -25611,7 +25611,7 @@ PPC_FUNC_IMPL(__imp__sub_82522470) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 60); // bl 0x82250578 ctx.lr = 0x825224A4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,33 ctx.r11.s64 = 33; // li r10,32000 @@ -25667,7 +25667,7 @@ PPC_FUNC_IMPL(__imp__sub_825224E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82522500; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,24 ctx.r11.s64 = 24; // li r10,32000 @@ -25723,7 +25723,7 @@ PPC_FUNC_IMPL(__imp__sub_82522540) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82522560; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,23 ctx.r11.s64 = 23; // li r10,32000 @@ -25779,7 +25779,7 @@ PPC_FUNC_IMPL(__imp__sub_825225A0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825225C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,22 ctx.r11.s64 = 22; // li r10,32000 @@ -25875,7 +25875,7 @@ PPC_FUNC_IMPL(__imp__sub_82522600) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8252266C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,47 ctx.r11.s64 = 47; // li r10,32000 @@ -25922,7 +25922,7 @@ PPC_FUNC_IMPL(__imp__sub_82522600) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x825226C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,46 ctx.r11.s64 = 46; // li r10,32000 @@ -30503,7 +30503,7 @@ PPC_FUNC_IMPL(__imp__sub_825244C8) { loc_82524538: // bl 0x821ebe28 ctx.lr = 0x8252453C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_8252453C: // lwz r11,52(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 52); @@ -33485,7 +33485,7 @@ PPC_FUNC_IMPL(__imp__sub_825258C0) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r10.u32 + 60); // bl 0x82250578 ctx.lr = 0x825258F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r3,0 ctx.r3.s64 = 0; // stw r30,84(r1) @@ -34850,7 +34850,7 @@ PPC_FUNC_IMPL(__imp__sub_82526150) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825261F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r30,84(r1) @@ -34872,7 +34872,7 @@ PPC_FUNC_IMPL(__imp__sub_82526150) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82526220; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,100(r1) @@ -34894,7 +34894,7 @@ PPC_FUNC_IMPL(__imp__sub_82526150) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82526248; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r30,116(r1) @@ -34916,7 +34916,7 @@ PPC_FUNC_IMPL(__imp__sub_82526150) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x82526270; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,132(r1) @@ -50752,7 +50752,7 @@ PPC_FUNC_IMPL(__imp__sub_8252CCC0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8252CD28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r25,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r25.u32); // addi r3,r1,88 @@ -51164,7 +51164,7 @@ PPC_FUNC_IMPL(__imp__sub_8252CCC0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8252D014; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // addi r3,r1,96 @@ -51180,7 +51180,7 @@ PPC_FUNC_IMPL(__imp__sub_8252CCC0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8252D030; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -66676,7 +66676,7 @@ PPC_FUNC_IMPL(__imp__sub_82533880) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82533900; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1850 ctx.r11.s64 = 1850; // li r10,0 @@ -79957,129 +79957,3 @@ PPC_FUNC_IMPL(__imp__sub_825392F0) { return; } -__attribute__((alias("__imp__sub_82539398"))) PPC_WEAK_FUNC(sub_82539398); -PPC_FUNC_IMPL(__imp__sub_82539398) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - // lwz r8,0(r5) - ctx.r8.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); - // lwz r11,100(r1) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 100); - // addi r10,r8,16 - ctx.r10.s64 = ctx.r8.s64 + 16; - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // stw r10,0(r5) - PPC_STORE_U32(ctx.r5.u32 + 0, ctx.r10.u32); - // beq cr6,0x825393cc - if (ctx.cr6.eq) goto loc_825393CC; - // lwz r10,0(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); - // cmpwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); - // ble cr6,0x825393cc - if (!ctx.cr6.gt) goto loc_825393CC; - // addi r10,r10,-1 - ctx.r10.s64 = ctx.r10.s64 + -1; - // li r3,1 - ctx.r3.s64 = 1; - // stw r10,0(r11) - PPC_STORE_U32(ctx.r11.u32 + 0, ctx.r10.u32); - // blr - return; -loc_825393CC: - // lis r11,-31780 - ctx.r11.s64 = -2082734080; - // addi r11,r11,-4788 - ctx.r11.s64 = ctx.r11.s64 + -4788; - // lwz r10,48(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 48); - // cmpwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); - // bne cr6,0x825393ec - if (!ctx.cr6.eq) goto loc_825393EC; - // lwz r10,52(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 52); - // cmpwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); - // beq cr6,0x82539400 - if (ctx.cr6.eq) goto loc_82539400; -loc_825393EC: - // lwz r10,24(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 24); - // cmplwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); - // beq cr6,0x82539400 - if (ctx.cr6.eq) goto loc_82539400; - // mr r11,r10 - ctx.r11.u64 = ctx.r10.u64; - // b 0x82539404 - goto loc_82539404; -loc_82539400: - // lwz r11,4(r11) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 4); -loc_82539404: - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // beq cr6,0x8253946c - if (ctx.cr6.eq) goto loc_8253946C; - // lwz r9,8(r8) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r8.u32 + 8); - // lfs f13,40(r11) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 40); - ctx.f13.f64 = double(temp.f32); - // lwz r10,4(r8) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r8.u32 + 4); - // lis r8,-32234 - ctx.r8.s64 = -2112487424; - // mulli r11,r9,60 - ctx.r11.s64 = static_cast(ctx.r9.u64 * static_cast(60)); - // lwz r9,92(r1) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r1.u32 + 92); - // lfs f0,4544(r8) - temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + 4544); - ctx.f0.f64 = double(temp.f32); - // add r7,r11,r10 - ctx.r7.u64 = ctx.r11.u64 + ctx.r10.u64; - // cmplwi cr6,r9,0 - ctx.cr6.compare(ctx.r9.u32, 0, ctx.xer); - // clrldi r5,r7,32 - ctx.r5.u64 = ctx.r7.u64 & 0xFFFFFFFF; - // std r5,-16(r1) - PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r5.u64); - // lfd f12,-16(r1) - ctx.f12.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); - // fcfid f11,f12 - ctx.f11.f64 = double(ctx.f12.s64); - // frsp f10,f11 - ctx.f10.f64 = double(float(ctx.f11.f64)); - // fmuls f0,f10,f0 - ctx.f0.f64 = double(float(ctx.f10.f64 * ctx.f0.f64)); - // beq cr6,0x82539454 - if (ctx.cr6.eq) goto loc_82539454; - // li r11,1 - ctx.r11.s64 = 1; - // stw r11,0(r9) - PPC_STORE_U32(ctx.r9.u32 + 0, ctx.r11.u32); -loc_82539454: - // fcmpu cr6,f13,f0 - ctx.fpscr.disableFlushMode(); - ctx.cr6.compare(ctx.f13.f64, ctx.f0.f64); - // blt cr6,0x8253946c - if (ctx.cr6.lt) goto loc_8253946C; - // li r11,100 - ctx.r11.s64 = 100; - // li r3,1 - ctx.r3.s64 = 1; - // stw r11,0(r6) - PPC_STORE_U32(ctx.r6.u32 + 0, ctx.r11.u32); - // blr - return; -loc_8253946C: - // li r3,0 - ctx.r3.s64 = 0; - // blr - return; -} - diff --git a/generated/retip_recomp.28.cpp b/generated/retip_recomp.28.cpp index ddf1aa4..f87b883 100644 --- a/generated/retip_recomp.28.cpp +++ b/generated/retip_recomp.28.cpp @@ -1,5 +1,131 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_82539398"))) PPC_WEAK_FUNC(sub_82539398); +PPC_FUNC_IMPL(__imp__sub_82539398) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + // lwz r8,0(r5) + ctx.r8.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); + // lwz r11,100(r1) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 100); + // addi r10,r8,16 + ctx.r10.s64 = ctx.r8.s64 + 16; + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // stw r10,0(r5) + PPC_STORE_U32(ctx.r5.u32 + 0, ctx.r10.u32); + // beq cr6,0x825393cc + if (ctx.cr6.eq) goto loc_825393CC; + // lwz r10,0(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); + // cmpwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); + // ble cr6,0x825393cc + if (!ctx.cr6.gt) goto loc_825393CC; + // addi r10,r10,-1 + ctx.r10.s64 = ctx.r10.s64 + -1; + // li r3,1 + ctx.r3.s64 = 1; + // stw r10,0(r11) + PPC_STORE_U32(ctx.r11.u32 + 0, ctx.r10.u32); + // blr + return; +loc_825393CC: + // lis r11,-31780 + ctx.r11.s64 = -2082734080; + // addi r11,r11,-4788 + ctx.r11.s64 = ctx.r11.s64 + -4788; + // lwz r10,48(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 48); + // cmpwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); + // bne cr6,0x825393ec + if (!ctx.cr6.eq) goto loc_825393EC; + // lwz r10,52(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 52); + // cmpwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); + // beq cr6,0x82539400 + if (ctx.cr6.eq) goto loc_82539400; +loc_825393EC: + // lwz r10,24(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 24); + // cmplwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); + // beq cr6,0x82539400 + if (ctx.cr6.eq) goto loc_82539400; + // mr r11,r10 + ctx.r11.u64 = ctx.r10.u64; + // b 0x82539404 + goto loc_82539404; +loc_82539400: + // lwz r11,4(r11) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 4); +loc_82539404: + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // beq cr6,0x8253946c + if (ctx.cr6.eq) goto loc_8253946C; + // lwz r9,8(r8) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r8.u32 + 8); + // lfs f13,40(r11) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 40); + ctx.f13.f64 = double(temp.f32); + // lwz r10,4(r8) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r8.u32 + 4); + // lis r8,-32234 + ctx.r8.s64 = -2112487424; + // mulli r11,r9,60 + ctx.r11.s64 = static_cast(ctx.r9.u64 * static_cast(60)); + // lwz r9,92(r1) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r1.u32 + 92); + // lfs f0,4544(r8) + temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + 4544); + ctx.f0.f64 = double(temp.f32); + // add r7,r11,r10 + ctx.r7.u64 = ctx.r11.u64 + ctx.r10.u64; + // cmplwi cr6,r9,0 + ctx.cr6.compare(ctx.r9.u32, 0, ctx.xer); + // clrldi r5,r7,32 + ctx.r5.u64 = ctx.r7.u64 & 0xFFFFFFFF; + // std r5,-16(r1) + PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r5.u64); + // lfd f12,-16(r1) + ctx.f12.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); + // fcfid f11,f12 + ctx.f11.f64 = double(ctx.f12.s64); + // frsp f10,f11 + ctx.f10.f64 = double(float(ctx.f11.f64)); + // fmuls f0,f10,f0 + ctx.f0.f64 = double(float(ctx.f10.f64 * ctx.f0.f64)); + // beq cr6,0x82539454 + if (ctx.cr6.eq) goto loc_82539454; + // li r11,1 + ctx.r11.s64 = 1; + // stw r11,0(r9) + PPC_STORE_U32(ctx.r9.u32 + 0, ctx.r11.u32); +loc_82539454: + // fcmpu cr6,f13,f0 + ctx.fpscr.disableFlushMode(); + ctx.cr6.compare(ctx.f13.f64, ctx.f0.f64); + // blt cr6,0x8253946c + if (ctx.cr6.lt) goto loc_8253946C; + // li r11,100 + ctx.r11.s64 = 100; + // li r3,1 + ctx.r3.s64 = 1; + // stw r11,0(r6) + PPC_STORE_U32(ctx.r6.u32 + 0, ctx.r11.u32); + // blr + return; +loc_8253946C: + // li r3,0 + ctx.r3.s64 = 0; + // blr + return; +} + __attribute__((alias("__imp__sub_82539478"))) PPC_WEAK_FUNC(sub_82539478); PPC_FUNC_IMPL(__imp__sub_82539478) { PPC_FUNC_PROLOGUE(); @@ -9342,7 +9468,7 @@ PPC_FUNC_IMPL(__imp__sub_8253D280) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8253D3D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r25,132(r1) PPC_STORE_U32(ctx.r1.u32 + 132, ctx.r25.u32); // lwz r11,0(r31) @@ -9482,7 +9608,7 @@ PPC_FUNC_IMPL(__imp__sub_8253D280) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x8253D4D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r25,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r25.u32); // lwz r11,0(r31) @@ -9808,7 +9934,7 @@ PPC_FUNC_IMPL(__imp__sub_8253D540) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8253D708; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -15749,7 +15875,7 @@ PPC_FUNC_IMPL(__imp__sub_8253FCE0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8253FDB8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r10,r11,28528 @@ -16306,7 +16432,7 @@ PPC_FUNC_IMPL(__imp__sub_82540028) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82540170; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -17252,7 +17378,7 @@ PPC_FUNC_IMPL(__imp__sub_82540740) { PPC_STORE_U32(ctx.r31.u32 + 16, ctx.r10.u32); // bl 0x82250578 ctx.lr = 0x8254077C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -17568,7 +17694,7 @@ PPC_FUNC_IMPL(__imp__sub_82540968) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); // bl 0x82250578 ctx.lr = 0x82540998; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lfs f0,80(r1) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r1.u32 + 80); @@ -17673,7 +17799,7 @@ PPC_FUNC_IMPL(__imp__sub_82540A08) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4); // bl 0x82250578 ctx.lr = 0x82540A3C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lfs f0,80(r1) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r1.u32 + 80); @@ -17786,7 +17912,7 @@ PPC_FUNC_IMPL(__imp__sub_82540A98) { PPC_STORE_U32(ctx.r31.u32 + 16, ctx.r9.u32); // bl 0x82250578 ctx.lr = 0x82540AF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -28924,7 +29050,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x82545678; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,22 @@ -28984,7 +29110,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x825456E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,96 @@ -29041,7 +29167,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8254574C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,144(r1) PPC_STORE_U32(ctx.r1.u32 + 144, ctx.r29.u32); // stw r28,148(r1) @@ -29086,7 +29212,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 224; // bl 0x82250578 ctx.lr = 0x825457A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,6 ctx.r11.s64 = 6; // stw r29,240(r1) @@ -29300,7 +29426,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x82545924; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,3 @@ -29475,7 +29601,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82545A68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r27,84(r1) @@ -29512,7 +29638,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x82545AAC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,104 @@ -29547,7 +29673,7 @@ PPC_FUNC_IMPL(__imp__sub_82545560) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82545AEC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,88 @@ -31943,7 +32069,7 @@ PPC_FUNC_IMPL(__imp__sub_82546B10) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82546B6C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -34879,7 +35005,7 @@ PPC_FUNC_IMPL(__imp__sub_82547DF8) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // bl 0x82250578 ctx.lr = 0x82547F1C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r29 ctx.r31.u64 = ctx.r29.u64; // cmplw cr6,r29,r28 @@ -38311,7 +38437,7 @@ PPC_FUNC_IMPL(__imp__sub_825494E0) { ctx.r23.u64 = PPC_LOAD_U32(ctx.r30.u32 + 20); // bl 0x82250578 ctx.lr = 0x82549694; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r24,104(r1) PPC_STORE_U32(ctx.r1.u32 + 104, ctx.r24.u32); // addi r4,r1,96 @@ -38341,7 +38467,7 @@ PPC_FUNC_IMPL(__imp__sub_825494E0) { ctx.r24.u64 = PPC_LOAD_U32(ctx.r31.u32 + 20); // bl 0x82250578 ctx.lr = 0x825496CC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,124(r1) PPC_STORE_U32(ctx.r1.u32 + 124, ctx.r30.u32); // addi r4,r1,112 @@ -45900,7 +46026,7 @@ PPC_FUNC_IMPL(__imp__sub_8254C8E0) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8254C90C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,92(r1) @@ -45960,7 +46086,7 @@ PPC_FUNC_IMPL(__imp__sub_8254C940) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x8254C968; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // lfs f0,0(r29) @@ -46036,7 +46162,7 @@ PPC_FUNC_IMPL(__imp__sub_8254C9B0) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x8254C9D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // lfs f0,0(r30) @@ -47814,7 +47940,7 @@ PPC_FUNC_IMPL(__imp__sub_8254D1B0) { ctx.r3.s64 = ctx.r1.s64 + 120; // bl 0x82250578 ctx.lr = 0x8254D5A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r19,128(r1) PPC_STORE_U32(ctx.r1.u32 + 128, ctx.r19.u32); // stw r30,124(r1) @@ -48403,7 +48529,7 @@ PPC_FUNC_IMPL(__imp__sub_8254D8E8) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // bl 0x82250578 ctx.lr = 0x8254D960; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r27,88(r1) @@ -48436,7 +48562,7 @@ PPC_FUNC_IMPL(__imp__sub_8254D8E8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8254D99C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,4 ctx.r11.s64 = 4; // li r10,32000 @@ -49997,7 +50123,7 @@ PPC_FUNC_IMPL(__imp__sub_8254E3F0) { PPC_STORE_U8(ctx.r11.u32 + 1164, ctx.r10.u8); // bl 0x82250578 ctx.lr = 0x8254E424; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -51133,7 +51259,7 @@ PPC_FUNC_IMPL(__imp__sub_8254EB40) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x8254EBA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r28,144(r1) @@ -51620,7 +51746,7 @@ PPC_FUNC_IMPL(__imp__sub_8254EDE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8254EF10; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r29,84(r1) @@ -56509,7 +56635,7 @@ PPC_FUNC_IMPL(__imp__sub_82550F78) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82550FA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r10,-32241 ctx.r10.s64 = -2112946176; // lwz r3,752(r31) @@ -56591,7 +56717,7 @@ PPC_FUNC_IMPL(__imp__sub_82551000) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82551028; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,752(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 752); // li r11,-1 @@ -56667,7 +56793,7 @@ PPC_FUNC_IMPL(__imp__sub_82551078) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x825510A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32241 ctx.r11.s64 = -2112946176; // lwz r3,752(r31) @@ -74778,7 +74904,7 @@ PPC_FUNC_IMPL(__imp__sub_82558B28) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82558B88; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r29,84(r1) @@ -77312,122 +77438,3 @@ PPC_FUNC_IMPL(__imp__sub_82559B50) { return; } -__attribute__((alias("__imp__sub_82559C30"))) PPC_WEAK_FUNC(sub_82559C30); -PPC_FUNC_IMPL(__imp__sub_82559C30) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1620 - ctx.lr = 0x82559C38; - __savegprlr_26(ctx, base); - // stwu r1,-144(r1) - ea = -144 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // lis r11,-32243 - ctx.r11.s64 = -2113077248; - // mr r27,r3 - ctx.r27.u64 = ctx.r3.u64; - // addi r11,r11,24432 - ctx.r11.s64 = ctx.r11.s64 + 24432; - // mr r29,r5 - ctx.r29.u64 = ctx.r5.u64; - // addi r30,r11,4 - ctx.r30.s64 = ctx.r11.s64 + 4; - // lis r11,-31780 - ctx.r11.s64 = -2082734080; - // addi r26,r4,584 - ctx.r26.s64 = ctx.r4.s64 + 584; - // li r31,9 - ctx.r31.s64 = 9; - // addi r28,r11,-7312 - ctx.r28.s64 = ctx.r11.s64 + -7312; -loc_82559C60: - // lwz r10,12(r26) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r26.u32 + 12); - // lbz r11,0(r30) - ctx.r11.u64 = PPC_LOAD_U8(ctx.r30.u32 + 0); - // cmplwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); - // bne cr6,0x82559c78 - if (!ctx.cr6.eq) goto loc_82559C78; - // li r11,0 - ctx.r11.s64 = 0; - // b 0x82559cac - goto loc_82559CAC; -loc_82559C78: - // rlwinm r11,r11,1,23,30 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 1) & 0x1FE; - // srawi r9,r11,3 - ctx.xer.ca = (ctx.r11.s32 < 0) & ((ctx.r11.u32 & 0x7) != 0); - ctx.r9.s64 = ctx.r11.s32 >> 3; - // mr r8,r11 - ctx.r8.u64 = ctx.r11.u64; - // addze r11,r9 - temp.s64 = ctx.r9.s64 + ctx.xer.ca; - ctx.xer.ca = temp.u32 < ctx.r9.u32; - ctx.r11.s64 = temp.s64; - // srawi r7,r8,3 - ctx.xer.ca = (ctx.r8.s32 < 0) & ((ctx.r8.u32 & 0x7) != 0); - ctx.r7.s64 = ctx.r8.s32 >> 3; - // add r6,r11,r10 - ctx.r6.u64 = ctx.r11.u64 + ctx.r10.u64; - // addze r5,r7 - temp.s64 = ctx.r7.s64 + ctx.xer.ca; - ctx.xer.ca = temp.u32 < ctx.r7.u32; - ctx.r5.s64 = temp.s64; - // rlwinm r4,r5,3,0,28 - ctx.r4.u64 = __builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 3) & 0xFFFFFFF8; - // subf r11,r4,r8 - ctx.r11.u64 = ctx.r8.u64 - ctx.r4.u64; - // lbz r9,212(r6) - ctx.r9.u64 = PPC_LOAD_U8(ctx.r6.u32 + 212); - // clrlwi r10,r11,24 - ctx.r10.u64 = ctx.r11.u32 & 0xFF; - // srw r8,r9,r10 - ctx.r8.u64 = ctx.r10.u8 & 0x20 ? 0 : (ctx.r9.u32 >> (ctx.r10.u8 & 0x3F)); - // clrlwi r11,r8,30 - ctx.r11.u64 = ctx.r8.u32 & 0x3; -loc_82559CAC: - // clrlwi r11,r11,24 - ctx.r11.u64 = ctx.r11.u32 & 0xFF; - // lwz r7,0(r29) - ctx.r7.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); - // li r6,0 - ctx.r6.s64 = 0; - // stw r11,80(r1) - PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r11.u32); - // addi r5,r1,80 - ctx.r5.s64 = ctx.r1.s64 + 80; - // mr r4,r27 - ctx.r4.u64 = ctx.r27.u64; - // addi r3,r28,464 - ctx.r3.s64 = ctx.r28.s64 + 464; - // bl 0x8224e998 - ctx.lr = 0x82559CCC; - sub_8224E998(ctx, base); - // lwz r10,0(r29) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); - // lwz r11,472(r28) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 472); - // addic. r31,r31,-1 - ctx.xer.ca = ctx.r31.u32 > 0; - ctx.r31.s64 = ctx.r31.s64 + -1; - ctx.cr0.compare(ctx.r31.s32, 0, ctx.xer); - // addi r30,r30,8 - ctx.r30.s64 = ctx.r30.s64 + 8; - // add r10,r10,r11 - ctx.r10.u64 = ctx.r10.u64 + ctx.r11.u64; - // stw r10,0(r29) - PPC_STORE_U32(ctx.r29.u32 + 0, ctx.r10.u32); - // bne 0x82559c60 - if (!ctx.cr0.eq) goto loc_82559C60; - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // b 0x82ae1670 - __restgprlr_26(ctx, base); - return; -} - diff --git a/generated/retip_recomp.29.cpp b/generated/retip_recomp.29.cpp index 65b02c0..d637552 100644 --- a/generated/retip_recomp.29.cpp +++ b/generated/retip_recomp.29.cpp @@ -1,5 +1,124 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_82559C30"))) PPC_WEAK_FUNC(sub_82559C30); +PPC_FUNC_IMPL(__imp__sub_82559C30) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1620 + ctx.lr = 0x82559C38; + __savegprlr_26(ctx, base); + // stwu r1,-144(r1) + ea = -144 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // lis r11,-32243 + ctx.r11.s64 = -2113077248; + // mr r27,r3 + ctx.r27.u64 = ctx.r3.u64; + // addi r11,r11,24432 + ctx.r11.s64 = ctx.r11.s64 + 24432; + // mr r29,r5 + ctx.r29.u64 = ctx.r5.u64; + // addi r30,r11,4 + ctx.r30.s64 = ctx.r11.s64 + 4; + // lis r11,-31780 + ctx.r11.s64 = -2082734080; + // addi r26,r4,584 + ctx.r26.s64 = ctx.r4.s64 + 584; + // li r31,9 + ctx.r31.s64 = 9; + // addi r28,r11,-7312 + ctx.r28.s64 = ctx.r11.s64 + -7312; +loc_82559C60: + // lwz r10,12(r26) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r26.u32 + 12); + // lbz r11,0(r30) + ctx.r11.u64 = PPC_LOAD_U8(ctx.r30.u32 + 0); + // cmplwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); + // bne cr6,0x82559c78 + if (!ctx.cr6.eq) goto loc_82559C78; + // li r11,0 + ctx.r11.s64 = 0; + // b 0x82559cac + goto loc_82559CAC; +loc_82559C78: + // rlwinm r11,r11,1,23,30 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 1) & 0x1FE; + // srawi r9,r11,3 + ctx.xer.ca = (ctx.r11.s32 < 0) & ((ctx.r11.u32 & 0x7) != 0); + ctx.r9.s64 = ctx.r11.s32 >> 3; + // mr r8,r11 + ctx.r8.u64 = ctx.r11.u64; + // addze r11,r9 + temp.s64 = ctx.r9.s64 + ctx.xer.ca; + ctx.xer.ca = temp.u32 < ctx.r9.u32; + ctx.r11.s64 = temp.s64; + // srawi r7,r8,3 + ctx.xer.ca = (ctx.r8.s32 < 0) & ((ctx.r8.u32 & 0x7) != 0); + ctx.r7.s64 = ctx.r8.s32 >> 3; + // add r6,r11,r10 + ctx.r6.u64 = ctx.r11.u64 + ctx.r10.u64; + // addze r5,r7 + temp.s64 = ctx.r7.s64 + ctx.xer.ca; + ctx.xer.ca = temp.u32 < ctx.r7.u32; + ctx.r5.s64 = temp.s64; + // rlwinm r4,r5,3,0,28 + ctx.r4.u64 = __builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 3) & 0xFFFFFFF8; + // subf r11,r4,r8 + ctx.r11.u64 = ctx.r8.u64 - ctx.r4.u64; + // lbz r9,212(r6) + ctx.r9.u64 = PPC_LOAD_U8(ctx.r6.u32 + 212); + // clrlwi r10,r11,24 + ctx.r10.u64 = ctx.r11.u32 & 0xFF; + // srw r8,r9,r10 + ctx.r8.u64 = ctx.r10.u8 & 0x20 ? 0 : (ctx.r9.u32 >> (ctx.r10.u8 & 0x3F)); + // clrlwi r11,r8,30 + ctx.r11.u64 = ctx.r8.u32 & 0x3; +loc_82559CAC: + // clrlwi r11,r11,24 + ctx.r11.u64 = ctx.r11.u32 & 0xFF; + // lwz r7,0(r29) + ctx.r7.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); + // li r6,0 + ctx.r6.s64 = 0; + // stw r11,80(r1) + PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r11.u32); + // addi r5,r1,80 + ctx.r5.s64 = ctx.r1.s64 + 80; + // mr r4,r27 + ctx.r4.u64 = ctx.r27.u64; + // addi r3,r28,464 + ctx.r3.s64 = ctx.r28.s64 + 464; + // bl 0x8224e998 + ctx.lr = 0x82559CCC; + sub_8224E998(ctx, base); + // lwz r10,0(r29) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); + // lwz r11,472(r28) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 472); + // addic. r31,r31,-1 + ctx.xer.ca = ctx.r31.u32 > 0; + ctx.r31.s64 = ctx.r31.s64 + -1; + ctx.cr0.compare(ctx.r31.s32, 0, ctx.xer); + // addi r30,r30,8 + ctx.r30.s64 = ctx.r30.s64 + 8; + // add r10,r10,r11 + ctx.r10.u64 = ctx.r10.u64 + ctx.r11.u64; + // stw r10,0(r29) + PPC_STORE_U32(ctx.r29.u32 + 0, ctx.r10.u32); + // bne 0x82559c60 + if (!ctx.cr0.eq) goto loc_82559C60; + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // b 0x82ae1670 + __restgprlr_26(ctx, base); + return; +} + __attribute__((alias("__imp__sub_82559CF0"))) PPC_WEAK_FUNC(sub_82559CF0); PPC_FUNC_IMPL(__imp__sub_82559CF0) { PPC_FUNC_PROLOGUE(); @@ -3424,7 +3543,7 @@ PPC_FUNC_IMPL(__imp__sub_8255B3E8) { ctx.r29.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x8255B40C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -3782,7 +3901,7 @@ PPC_FUNC_IMPL(__imp__sub_8255B588) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8255B668; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // addi r4,r1,80 @@ -4022,7 +4141,7 @@ PPC_FUNC_IMPL(__imp__sub_8255B788) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8255B7F4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -5423,7 +5542,7 @@ PPC_FUNC_IMPL(__imp__sub_8255C038) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8255C120; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,96 @@ -5509,7 +5628,7 @@ PPC_FUNC_IMPL(__imp__sub_8255C038) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x8255C1B0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,156(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -5860,7 +5979,7 @@ PPC_FUNC_IMPL(__imp__sub_8255C038) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x8255C410; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,104 @@ -5895,7 +6014,7 @@ PPC_FUNC_IMPL(__imp__sub_8255C038) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8255C44C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,38 @@ -9322,7 +9441,7 @@ PPC_FUNC_IMPL(__imp__sub_8255DB38) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8255DB58; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -17385,7 +17504,7 @@ PPC_FUNC_IMPL(__imp__sub_82560F80) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x825610AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r28.u32); // lwz r11,0(r30) @@ -18896,7 +19015,7 @@ PPC_FUNC_IMPL(__imp__sub_82561948) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82561A64; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lfs f6,176(r31) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 176); @@ -20020,7 +20139,7 @@ PPC_FUNC_IMPL(__imp__sub_82562010) { ctx.r3.u64 = ctx.r27.u64; // bl 0x821ebe28 ctx.lr = 0x825621D8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,80 ctx.r4.s64 = ctx.r1.s64 + 80; // mr r3,r27 @@ -20662,7 +20781,7 @@ PPC_FUNC_IMPL(__imp__sub_82562010) { ctx.r3.u64 = ctx.r27.u64; // bl 0x821ebe28 ctx.lr = 0x82562614; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r27 ctx.r3.u64 = ctx.r27.u64; // bl 0x821ea3d8 @@ -24949,7 +25068,7 @@ PPC_FUNC_IMPL(__imp__sub_82564210) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82564290; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -24969,7 +25088,7 @@ PPC_FUNC_IMPL(__imp__sub_82564210) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x825642B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,84 @@ -25021,7 +25140,7 @@ PPC_FUNC_IMPL(__imp__sub_82564210) { ctx.f31.f64 = double(temp.f32); // bl 0x82250578 ctx.lr = 0x82564310; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,88 @@ -25138,7 +25257,7 @@ PPC_FUNC_IMPL(__imp__sub_82564358) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x825643D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,96 @@ -25166,7 +25285,7 @@ PPC_FUNC_IMPL(__imp__sub_82564358) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82564408; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -26131,7 +26250,7 @@ PPC_FUNC_IMPL(__imp__sub_82564A18) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82564AAC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r11,r1,96 @@ -26187,7 +26306,7 @@ PPC_FUNC_IMPL(__imp__sub_82564A18) { ctx.r4.s64 = ctx.r1.s64 + 96; // bl 0x821ebe28 ctx.lr = 0x82564B08; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -28083,7 +28202,7 @@ PPC_FUNC_IMPL(__imp__sub_82565798) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x825657F0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -29911,7 +30030,7 @@ PPC_FUNC_IMPL(__imp__sub_82566280) { loc_825663AC: // bl 0x821ebe28 ctx.lr = 0x825663B0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_825663B0: // cmplwi cr6,r29,0 ctx.cr6.compare(ctx.r29.u32, 0, ctx.xer); @@ -30062,7 +30181,7 @@ PPC_FUNC_IMPL(__imp__sub_825663E0) { PPC_STORE_U32(ctx.r1.u32 + 92, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82566494; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_82566494: // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; @@ -30307,7 +30426,7 @@ PPC_FUNC_IMPL(__imp__sub_825664B8) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x8256661C; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lfs f11,176(r30) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 176); @@ -30802,7 +30921,7 @@ PPC_FUNC_IMPL(__imp__sub_82566878) { PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); // bl 0x821ebe28 ctx.lr = 0x82566930; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r1,r1,144 ctx.r1.s64 = ctx.r1.s64 + 144; // lwz r12,-8(r1) @@ -32245,7 +32364,7 @@ PPC_FUNC_IMPL(__imp__sub_82567250) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r31.u32); // bl 0x82250578 ctx.lr = 0x825672C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r30) ctx.r8.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r9,0 @@ -32495,7 +32614,7 @@ PPC_FUNC_IMPL(__imp__sub_825672F8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82567460; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r27.u32); // lwz r11,0(r31) @@ -32521,7 +32640,7 @@ PPC_FUNC_IMPL(__imp__sub_825672F8) { ctx.f31.f64 = double(temp.f32); // bl 0x82250578 ctx.lr = 0x8256748C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,92(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -32783,7 +32902,7 @@ PPC_FUNC_IMPL(__imp__sub_82567590) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8256764C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // addi r4,r1,80 @@ -34898,7 +35017,7 @@ PPC_FUNC_IMPL(__imp__sub_82568178) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8256843C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r23) ctx.r11.u64 = PPC_LOAD_U32(ctx.r23.u32 + 0); // stfs f27,92(r1) @@ -41147,7 +41266,7 @@ PPC_FUNC_IMPL(__imp__sub_8256AE18) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8256AEC4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f29,100(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f29.f64); @@ -42260,7 +42379,7 @@ PPC_FUNC_IMPL(__imp__sub_8256B4A8) { ctx.r3.u64 = ctx.r30.u64; // bl 0x821ebe28 ctx.lr = 0x8256B648; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -42306,7 +42425,7 @@ PPC_FUNC_IMPL(__imp__sub_8256B4A8) { PPC_STORE_U32(ctx.r30.u32 + 3280, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8256B690; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r30 ctx.r3.u64 = ctx.r30.u64; // bl 0x821ea3d8 @@ -42920,7 +43039,7 @@ PPC_FUNC_IMPL(__imp__sub_8256BA10) { PPC_STORE_U32(ctx.r31.u32 + 3280, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8256BAB8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -45005,7 +45124,7 @@ PPC_FUNC_IMPL(__imp__sub_8256C718) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x8256C884; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r26.u32); // lwz r11,0(r29) @@ -45648,7 +45767,7 @@ PPC_FUNC_IMPL(__imp__sub_8256CB88) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x8256CCBC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,108(r1) PPC_STORE_U32(ctx.r1.u32 + 108, ctx.r29.u32); // lwz r10,0(r31) @@ -52618,7 +52737,7 @@ PPC_FUNC_IMPL(__imp__sub_8256F958) { PPC_STORE_U32(ctx.r26.u32 + 8, temp.u32); // bl 0x821ebe28 ctx.lr = 0x8256FB80; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -53519,7 +53638,7 @@ PPC_FUNC_IMPL(__imp__sub_825700C0) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x82570118; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r31 ctx.r3.u64 = ctx.r31.u64; // bl 0x821ea3d8 @@ -54122,7 +54241,7 @@ PPC_FUNC_IMPL(__imp__sub_82570478) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x82570500; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r30.u32); // lwz r11,0(r31) @@ -54288,7 +54407,7 @@ PPC_FUNC_IMPL(__imp__sub_82570538) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82570614; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f29,116(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f29.f64); @@ -58625,7 +58744,7 @@ PPC_FUNC_IMPL(__imp__sub_82572250) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 16); // bl 0x82250578 ctx.lr = 0x8257227C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r10,0 @@ -63123,7 +63242,7 @@ PPC_FUNC_IMPL(__imp__sub_82573FE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82574030; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r30,r11,28528 @@ -63396,7 +63515,7 @@ PPC_FUNC_IMPL(__imp__sub_82574140) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82574204; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r31,144 ctx.r11.s64 = ctx.r31.s64 + 144; loc_82574208: @@ -65835,7 +65954,7 @@ PPC_FUNC_IMPL(__imp__sub_82575258) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8257527C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,122 @@ -71235,7 +71354,7 @@ PPC_FUNC_IMPL(__imp__sub_825775A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825775EC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // stw r29,100(r1) @@ -72385,7 +72504,7 @@ PPC_FUNC_IMPL(__imp__sub_82577C68) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82577DA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r25) ctx.r11.u64 = PPC_LOAD_U32(ctx.r25.u32 + 0); // addi r4,r1,112 @@ -73165,7 +73284,7 @@ PPC_FUNC_IMPL(__imp__sub_82578288) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825782B0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -73471,7 +73590,7 @@ PPC_FUNC_IMPL(__imp__sub_825784A0) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r9.u32 + 2520); // bl 0x82250578 ctx.lr = 0x825784DC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r7,0(r31) ctx.r7.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r8,1 @@ -78603,164 +78722,3 @@ PPC_FUNC_IMPL(__imp__sub_8257A068) { return; } -__attribute__((alias("__imp__sub_8257A690"))) PPC_WEAK_FUNC(sub_8257A690); -PPC_FUNC_IMPL(__imp__sub_8257A690) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // std r30,-24(r1) - PPC_STORE_U64(ctx.r1.u32 + -24, ctx.r30.u64); - // std r31,-16(r1) - PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); - // stwu r1,-128(r1) - ea = -128 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // lwz r11,0(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // beq cr6,0x8257a6bc - if (ctx.cr6.eq) goto loc_8257A6BC; - // lwz r30,160(r11) - ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 160); - // b 0x8257a6c0 - goto loc_8257A6C0; -loc_8257A6BC: - // li r30,0 - ctx.r30.s64 = 0; -loc_8257A6C0: - // lwz r10,88(r31) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 88); - // cmplwi cr6,r10,4 - ctx.cr6.compare(ctx.r10.u32, 4, ctx.xer); - // bgt cr6,0x8257a784 - if (ctx.cr6.gt) goto loc_8257A784; - // lis r12,-32168 - ctx.r12.s64 = -2108162048; - // addi r12,r12,-22812 - ctx.r12.s64 = ctx.r12.s64 + -22812; - // rlwinm r0,r10,2,0,29 - ctx.r0.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; - // lwzx r0,r12,r0 - ctx.r0.u64 = PPC_LOAD_U32(ctx.r12.u32 + ctx.r0.u32); - // mtctr r0 - ctx.ctr.u64 = ctx.r0.u64; - // bctr - switch (ctx.r10.u32) { - case 0: - goto loc_8257A6F8; - case 1: - goto loc_8257A70C; - case 2: - goto loc_8257A77C; - case 3: - goto loc_8257A77C; - case 4: - goto loc_8257A77C; - default: - __builtin_trap(); // Switch case out of range - } -loc_8257A6F8: - // li r11,1 - ctx.r11.s64 = 1; - // li r10,0 - ctx.r10.s64 = 0; - // stw r11,88(r31) - PPC_STORE_U32(ctx.r31.u32 + 88, ctx.r11.u32); - // stw r10,92(r31) - PPC_STORE_U32(ctx.r31.u32 + 92, ctx.r10.u32); - // b 0x8257a784 - goto loc_8257A784; -loc_8257A70C: - // lis r10,-32234 - ctx.r10.s64 = -2112487424; - // lwz r9,240(r11) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r11.u32 + 240); - // lwz r8,244(r11) - ctx.r8.u64 = PPC_LOAD_U32(ctx.r11.u32 + 244); - // lwz r7,248(r11) - ctx.r7.u64 = PPC_LOAD_U32(ctx.r11.u32 + 248); - // lwz r3,2412(r30) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 2412); - // lfs f0,-14556(r10) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r10.u32 + -14556); - ctx.f0.f64 = double(temp.f32); - // stw r9,80(r1) - PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r9.u32); - // stfs f0,68(r31) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r31.u32 + 68, temp.u32); - // stw r8,84(r1) - PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r8.u32); - // stfs f0,64(r31) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r31.u32 + 64, temp.u32); - // stw r7,88(r1) - PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r7.u32); - // stfs f0,60(r31) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r31.u32 + 60, temp.u32); - // bl 0x821bb248 - ctx.lr = 0x8257A740; - sub_821BB248(ctx, base); - // lwz r11,2416(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 2416); - // li r6,1 - ctx.r6.s64 = 1; - // addi r5,r1,80 - ctx.r5.s64 = ctx.r1.s64 + 80; - // mr r4,r30 - ctx.r4.u64 = ctx.r30.u64; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // stb r6,1160(r11) - PPC_STORE_U8(ctx.r11.u32 + 1160, ctx.r6.u8); - // bl 0x82579c68 - ctx.lr = 0x8257A75C; - sub_82579C68(ctx, base); - // mr r4,r3 - ctx.r4.u64 = ctx.r3.u64; - // cmpwi cr6,r4,0 - ctx.cr6.compare(ctx.r4.s32, 0, ctx.xer); - // beq cr6,0x8257a784 - if (ctx.cr6.eq) goto loc_8257A784; - // cmpwi cr6,r4,5 - ctx.cr6.compare(ctx.r4.s32, 5, ctx.xer); - // beq cr6,0x8257a784 - if (ctx.cr6.eq) goto loc_8257A784; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x8257a7a0 - ctx.lr = 0x8257A778; - sub_8257A7A0(ctx, base); - // b 0x8257a784 - goto loc_8257A784; -loc_8257A77C: - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x8257ad70 - ctx.lr = 0x8257A784; - sub_8257AD70(ctx, base); -loc_8257A784: - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // ld r30,-24(r1) - ctx.r30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); - // ld r31,-16(r1) - ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); - // blr - return; -} - diff --git a/generated/retip_recomp.3.cpp b/generated/retip_recomp.3.cpp index 90194bf..8a2e633 100644 --- a/generated/retip_recomp.3.cpp +++ b/generated/retip_recomp.3.cpp @@ -54399,7 +54399,7 @@ PPC_FUNC_IMPL(__imp__sub_822172E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82217300; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 diff --git a/generated/retip_recomp.30.cpp b/generated/retip_recomp.30.cpp index 1193730..43bbe3f 100644 --- a/generated/retip_recomp.30.cpp +++ b/generated/retip_recomp.30.cpp @@ -1,5 +1,166 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_8257A690"))) PPC_WEAK_FUNC(sub_8257A690); +PPC_FUNC_IMPL(__imp__sub_8257A690) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // std r30,-24(r1) + PPC_STORE_U64(ctx.r1.u32 + -24, ctx.r30.u64); + // std r31,-16(r1) + PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); + // stwu r1,-128(r1) + ea = -128 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // lwz r11,0(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // beq cr6,0x8257a6bc + if (ctx.cr6.eq) goto loc_8257A6BC; + // lwz r30,160(r11) + ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 160); + // b 0x8257a6c0 + goto loc_8257A6C0; +loc_8257A6BC: + // li r30,0 + ctx.r30.s64 = 0; +loc_8257A6C0: + // lwz r10,88(r31) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 88); + // cmplwi cr6,r10,4 + ctx.cr6.compare(ctx.r10.u32, 4, ctx.xer); + // bgt cr6,0x8257a784 + if (ctx.cr6.gt) goto loc_8257A784; + // lis r12,-32168 + ctx.r12.s64 = -2108162048; + // addi r12,r12,-22812 + ctx.r12.s64 = ctx.r12.s64 + -22812; + // rlwinm r0,r10,2,0,29 + ctx.r0.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; + // lwzx r0,r12,r0 + ctx.r0.u64 = PPC_LOAD_U32(ctx.r12.u32 + ctx.r0.u32); + // mtctr r0 + ctx.ctr.u64 = ctx.r0.u64; + // bctr + switch (ctx.r10.u32) { + case 0: + goto loc_8257A6F8; + case 1: + goto loc_8257A70C; + case 2: + goto loc_8257A77C; + case 3: + goto loc_8257A77C; + case 4: + goto loc_8257A77C; + default: + __builtin_trap(); // Switch case out of range + } +loc_8257A6F8: + // li r11,1 + ctx.r11.s64 = 1; + // li r10,0 + ctx.r10.s64 = 0; + // stw r11,88(r31) + PPC_STORE_U32(ctx.r31.u32 + 88, ctx.r11.u32); + // stw r10,92(r31) + PPC_STORE_U32(ctx.r31.u32 + 92, ctx.r10.u32); + // b 0x8257a784 + goto loc_8257A784; +loc_8257A70C: + // lis r10,-32234 + ctx.r10.s64 = -2112487424; + // lwz r9,240(r11) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r11.u32 + 240); + // lwz r8,244(r11) + ctx.r8.u64 = PPC_LOAD_U32(ctx.r11.u32 + 244); + // lwz r7,248(r11) + ctx.r7.u64 = PPC_LOAD_U32(ctx.r11.u32 + 248); + // lwz r3,2412(r30) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 2412); + // lfs f0,-14556(r10) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r10.u32 + -14556); + ctx.f0.f64 = double(temp.f32); + // stw r9,80(r1) + PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r9.u32); + // stfs f0,68(r31) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r31.u32 + 68, temp.u32); + // stw r8,84(r1) + PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r8.u32); + // stfs f0,64(r31) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r31.u32 + 64, temp.u32); + // stw r7,88(r1) + PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r7.u32); + // stfs f0,60(r31) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r31.u32 + 60, temp.u32); + // bl 0x821bb248 + ctx.lr = 0x8257A740; + sub_821BB248(ctx, base); + // lwz r11,2416(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 2416); + // li r6,1 + ctx.r6.s64 = 1; + // addi r5,r1,80 + ctx.r5.s64 = ctx.r1.s64 + 80; + // mr r4,r30 + ctx.r4.u64 = ctx.r30.u64; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // stb r6,1160(r11) + PPC_STORE_U8(ctx.r11.u32 + 1160, ctx.r6.u8); + // bl 0x82579c68 + ctx.lr = 0x8257A75C; + sub_82579C68(ctx, base); + // mr r4,r3 + ctx.r4.u64 = ctx.r3.u64; + // cmpwi cr6,r4,0 + ctx.cr6.compare(ctx.r4.s32, 0, ctx.xer); + // beq cr6,0x8257a784 + if (ctx.cr6.eq) goto loc_8257A784; + // cmpwi cr6,r4,5 + ctx.cr6.compare(ctx.r4.s32, 5, ctx.xer); + // beq cr6,0x8257a784 + if (ctx.cr6.eq) goto loc_8257A784; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x8257a7a0 + ctx.lr = 0x8257A778; + sub_8257A7A0(ctx, base); + // b 0x8257a784 + goto loc_8257A784; +loc_8257A77C: + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x8257ad70 + ctx.lr = 0x8257A784; + sub_8257AD70(ctx, base); +loc_8257A784: + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // ld r30,-24(r1) + ctx.r30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); + // ld r31,-16(r1) + ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); + // blr + return; +} + __attribute__((alias("__imp__sub_8257A7A0"))) PPC_WEAK_FUNC(sub_8257A7A0); PPC_FUNC_IMPL(__imp__sub_8257A7A0) { PPC_FUNC_PROLOGUE(); @@ -4176,7 +4337,7 @@ PPC_FUNC_IMPL(__imp__sub_8257C2D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8257C330; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -5233,7 +5394,7 @@ PPC_FUNC_IMPL(__imp__sub_8257C920) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8257CA68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r31) @@ -5500,7 +5661,7 @@ PPC_FUNC_IMPL(__imp__sub_8257CBF8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8257CC18; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -6907,7 +7068,7 @@ PPC_FUNC_IMPL(__imp__sub_8257D118) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8257D564; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // lfs f0,80(r1) @@ -23698,7 +23859,7 @@ PPC_FUNC_IMPL(__imp__sub_82584480) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 60); // bl 0x821ebe28 ctx.lr = 0x82584680; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r3,60(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 60); // bl 0x821ea3d8 @@ -23795,7 +23956,7 @@ PPC_FUNC_IMPL(__imp__sub_82584480) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 60); // bl 0x821ebe28 ctx.lr = 0x82584720; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r3,60(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 60); // bl 0x821ea3d8 @@ -26279,7 +26440,7 @@ PPC_FUNC_IMPL(__imp__sub_82585630) { loc_8258569C: // bl 0x821ebe28 ctx.lr = 0x825856A0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r3,60(r6) ctx.r3.u64 = PPC_LOAD_U32(ctx.r6.u32 + 60); // bl 0x821ea3d8 @@ -30940,7 +31101,7 @@ PPC_FUNC_IMPL(__imp__sub_825875C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825875F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -31005,7 +31166,7 @@ PPC_FUNC_IMPL(__imp__sub_82587628) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587660; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -31058,7 +31219,7 @@ PPC_FUNC_IMPL(__imp__sub_82587690) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825876B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -31114,7 +31275,7 @@ PPC_FUNC_IMPL(__imp__sub_825876F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587718; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -31172,7 +31333,7 @@ PPC_FUNC_IMPL(__imp__sub_82587758) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587778; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -31237,7 +31398,7 @@ PPC_FUNC_IMPL(__imp__sub_825877C0) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x825877E4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -31294,7 +31455,7 @@ PPC_FUNC_IMPL(__imp__sub_82587820) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587840; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -31344,7 +31505,7 @@ PPC_FUNC_IMPL(__imp__sub_82587870) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587890; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -31402,7 +31563,7 @@ PPC_FUNC_IMPL(__imp__sub_825878C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825878F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -31500,7 +31661,7 @@ PPC_FUNC_IMPL(__imp__sub_82587970) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587998; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -31554,7 +31715,7 @@ PPC_FUNC_IMPL(__imp__sub_825879D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825879F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -31612,7 +31773,7 @@ PPC_FUNC_IMPL(__imp__sub_82587A28) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587A50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // addi r10,r1,96 @@ -31730,7 +31891,7 @@ PPC_FUNC_IMPL(__imp__sub_82587AF8) { ctx.r30.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82587B1C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r29) ctx.r8.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // li r11,0 @@ -31815,7 +31976,7 @@ PPC_FUNC_IMPL(__imp__sub_82587B80) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587BA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -31890,7 +32051,7 @@ PPC_FUNC_IMPL(__imp__sub_82587BF0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587C20; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -31966,7 +32127,7 @@ PPC_FUNC_IMPL(__imp__sub_82587C70) { ctx.r27.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x82587C9C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -32033,7 +32194,7 @@ PPC_FUNC_IMPL(__imp__sub_82587CF0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587D10; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -32091,7 +32252,7 @@ PPC_FUNC_IMPL(__imp__sub_82587D48) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587D70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -32192,7 +32353,7 @@ PPC_FUNC_IMPL(__imp__sub_82587DF8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587E20; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -32248,7 +32409,7 @@ PPC_FUNC_IMPL(__imp__sub_82587E58) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587E80; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -32307,7 +32468,7 @@ PPC_FUNC_IMPL(__imp__sub_82587EC0) { ctx.r30.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82587EE4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,80 @@ -32377,7 +32538,7 @@ PPC_FUNC_IMPL(__imp__sub_82587F30) { ctx.r30.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82587F54; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r29) ctx.r8.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // li r10,-1 @@ -32458,7 +32619,7 @@ PPC_FUNC_IMPL(__imp__sub_82587FB8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82587FE0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -32520,7 +32681,7 @@ PPC_FUNC_IMPL(__imp__sub_82588018) { ctx.r30.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82588048; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -32593,7 +32754,7 @@ PPC_FUNC_IMPL(__imp__sub_82588098) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825880C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -32656,7 +32817,7 @@ PPC_FUNC_IMPL(__imp__sub_82588108) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588128; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // lwz r10,0(r31) @@ -32720,7 +32881,7 @@ PPC_FUNC_IMPL(__imp__sub_82588168) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258818C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -32781,7 +32942,7 @@ PPC_FUNC_IMPL(__imp__sub_825881C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825881F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -32847,7 +33008,7 @@ PPC_FUNC_IMPL(__imp__sub_82588238) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588260; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -32919,7 +33080,7 @@ PPC_FUNC_IMPL(__imp__sub_825882B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825882E0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -32985,7 +33146,7 @@ PPC_FUNC_IMPL(__imp__sub_82588328) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588350; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,-1 @@ -33047,7 +33208,7 @@ PPC_FUNC_IMPL(__imp__sub_82588398) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825883B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // li r10,-1 @@ -33120,7 +33281,7 @@ PPC_FUNC_IMPL(__imp__sub_82588400) { ctx.r27.u64 = ctx.r8.u64; // bl 0x82250578 ctx.lr = 0x82588434; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -33184,7 +33345,7 @@ PPC_FUNC_IMPL(__imp__sub_82588470) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588498; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -33240,7 +33401,7 @@ PPC_FUNC_IMPL(__imp__sub_825884D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825884F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // lwz r10,0(r31) @@ -33305,7 +33466,7 @@ PPC_FUNC_IMPL(__imp__sub_82588530) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588558; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -33378,7 +33539,7 @@ PPC_FUNC_IMPL(__imp__sub_825885B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825885D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -33430,7 +33591,7 @@ PPC_FUNC_IMPL(__imp__sub_82588610) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588630; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -33484,7 +33645,7 @@ PPC_FUNC_IMPL(__imp__sub_82588660) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588688; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,19 @@ -33546,7 +33707,7 @@ PPC_FUNC_IMPL(__imp__sub_825886C8) { ctx.r28.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x825886F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // lwz r9,0(r31) @@ -33624,7 +33785,7 @@ PPC_FUNC_IMPL(__imp__sub_82588748) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588768; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -33683,7 +33844,7 @@ PPC_FUNC_IMPL(__imp__sub_82588798) { ctx.r29.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x825887C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -33744,7 +33905,7 @@ PPC_FUNC_IMPL(__imp__sub_82588800) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82588824; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -33818,7 +33979,7 @@ PPC_FUNC_IMPL(__imp__sub_82588880) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825888A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -33870,7 +34031,7 @@ PPC_FUNC_IMPL(__imp__sub_825888D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825888F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -33918,7 +34079,7 @@ PPC_FUNC_IMPL(__imp__sub_82588928) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588948; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -33966,7 +34127,7 @@ PPC_FUNC_IMPL(__imp__sub_82588978) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588998; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -34024,7 +34185,7 @@ PPC_FUNC_IMPL(__imp__sub_825889D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825889F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -34076,7 +34237,7 @@ PPC_FUNC_IMPL(__imp__sub_82588A30) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588A50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -34128,7 +34289,7 @@ PPC_FUNC_IMPL(__imp__sub_82588A80) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82588AA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -34202,7 +34363,7 @@ PPC_FUNC_IMPL(__imp__sub_82588AF0) { ctx.r24.u64 = ctx.r10.u64; // bl 0x82250578 ctx.lr = 0x82588B28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r28,100(r1) @@ -34292,7 +34453,7 @@ PPC_FUNC_IMPL(__imp__sub_82588B98) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x82588BC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -34350,7 +34511,7 @@ PPC_FUNC_IMPL(__imp__sub_82588BF8) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82588C1C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -34482,7 +34643,7 @@ PPC_FUNC_IMPL(__imp__sub_82588CD0) { ctx.r30.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x82588CFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r29,0 ctx.r29.s64 = 0; // stw r28,84(r1) @@ -34617,7 +34778,7 @@ PPC_FUNC_IMPL(__imp__sub_82588DB0) { ctx.r30.u64 = ctx.r8.u64; // bl 0x82250578 ctx.lr = 0x82588DE0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r29,0 ctx.r29.s64 = 0; // stw r28,84(r1) @@ -34764,7 +34925,7 @@ PPC_FUNC_IMPL(__imp__sub_82588EB8) { ctx.r30.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x82588EE4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r29,0 ctx.r29.s64 = 0; // stw r28,84(r1) @@ -34907,7 +35068,7 @@ PPC_FUNC_IMPL(__imp__sub_82588FB8) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x82588FE0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -34967,7 +35128,7 @@ PPC_FUNC_IMPL(__imp__sub_82589018) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x82589040; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r31,84(r1) @@ -35045,7 +35206,7 @@ PPC_FUNC_IMPL(__imp__sub_82589098) { ctx.r27.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x825890C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,1280(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 1280); // li r11,0 @@ -35126,7 +35287,7 @@ PPC_FUNC_IMPL(__imp__sub_82589128) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258914C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,60 ctx.r11.s64 = 60; // li r3,0 @@ -35230,7 +35391,7 @@ PPC_FUNC_IMPL(__imp__sub_825891D8) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x825891FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r3,0 ctx.r3.s64 = 0; // stw r30,84(r1) @@ -35311,7 +35472,7 @@ PPC_FUNC_IMPL(__imp__sub_82589260) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82589284; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -35365,7 +35526,7 @@ PPC_FUNC_IMPL(__imp__sub_825892B0) { ctx.r27.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x825892DC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r29.u32); // cmplwi cr6,r31,0 @@ -35455,7 +35616,7 @@ PPC_FUNC_IMPL(__imp__sub_82589348) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x82589370; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // cmplwi cr6,r31,0 @@ -35534,7 +35695,7 @@ PPC_FUNC_IMPL(__imp__sub_825893C8) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x825893F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // cmplwi cr6,r31,0 @@ -35612,7 +35773,7 @@ PPC_FUNC_IMPL(__imp__sub_82589448) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589470; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // stw r31,84(r1) @@ -35746,7 +35907,7 @@ PPC_FUNC_IMPL(__imp__sub_82589508) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589560; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -35799,7 +35960,7 @@ PPC_FUNC_IMPL(__imp__sub_82589590) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825895B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // cmpwi cr6,r31,0 @@ -35928,7 +36089,7 @@ PPC_FUNC_IMPL(__imp__sub_82589678) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825896A0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -35984,7 +36145,7 @@ PPC_FUNC_IMPL(__imp__sub_825896D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589700; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -36039,7 +36200,7 @@ PPC_FUNC_IMPL(__imp__sub_82589738) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258975C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r30.u32); // addi r4,r1,92 @@ -36103,7 +36264,7 @@ PPC_FUNC_IMPL(__imp__sub_825897A0) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x825897C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,5 @@ -36188,7 +36349,7 @@ PPC_FUNC_IMPL(__imp__sub_82589818) { ctx.r28.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x82589848; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // cmplwi cr6,r31,0 ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); // beq cr6,0x8258986c @@ -36281,7 +36442,7 @@ PPC_FUNC_IMPL(__imp__sub_825898A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825898D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -36378,7 +36539,7 @@ PPC_FUNC_IMPL(__imp__sub_82589940) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589968; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // cmplwi cr6,r31,0 ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); // beq cr6,0x8258998c @@ -36468,7 +36629,7 @@ PPC_FUNC_IMPL(__imp__sub_825899C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825899F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -36528,7 +36689,7 @@ PPC_FUNC_IMPL(__imp__sub_82589A28) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589A50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -36611,7 +36772,7 @@ PPC_FUNC_IMPL(__imp__sub_82589AA8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589AD0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -36671,7 +36832,7 @@ PPC_FUNC_IMPL(__imp__sub_82589B08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589B30; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -36762,7 +36923,7 @@ PPC_FUNC_IMPL(__imp__sub_82589B90) { ctx.r30.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82589BC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -36826,7 +36987,7 @@ PPC_FUNC_IMPL(__imp__sub_82589C00) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589C28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -36909,7 +37070,7 @@ PPC_FUNC_IMPL(__imp__sub_82589C80) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589CA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -36970,7 +37131,7 @@ PPC_FUNC_IMPL(__imp__sub_82589CE0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589D08; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -37026,7 +37187,7 @@ PPC_FUNC_IMPL(__imp__sub_82589D40) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589D60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -37092,7 +37253,7 @@ PPC_FUNC_IMPL(__imp__sub_82589DA8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589DC8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -37150,7 +37311,7 @@ PPC_FUNC_IMPL(__imp__sub_82589E00) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589E28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -37205,7 +37366,7 @@ PPC_FUNC_IMPL(__imp__sub_82589E60) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x82589E84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // cmplwi cr6,r30,0 @@ -37279,7 +37440,7 @@ PPC_FUNC_IMPL(__imp__sub_82589EC8) { ctx.r25.u64 = ctx.r8.u64; // bl 0x82250578 ctx.lr = 0x82589EFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // cmplwi cr6,r31,0 @@ -37369,7 +37530,7 @@ PPC_FUNC_IMPL(__imp__sub_82589F68) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589F90; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -37421,7 +37582,7 @@ PPC_FUNC_IMPL(__imp__sub_82589FC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82589FE8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -37481,7 +37642,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A020) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A048; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stfs f31,84(r1) @@ -37547,7 +37708,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A080) { ctx.r25.u64 = ctx.r10.u64; // bl 0x82250578 ctx.lr = 0x8258A0B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,84(r1) @@ -37611,7 +37772,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A0F8) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258A11C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -37670,7 +37831,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A158) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A180; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -37940,7 +38101,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A330) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A350; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -37997,7 +38158,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A388) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258A3AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -38054,7 +38215,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A3E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A408; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -38116,7 +38277,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A448) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A470; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -38168,7 +38329,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A4A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A4C8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -38222,7 +38383,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A500) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A520; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -38276,7 +38437,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A558) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A578; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // stw r31,84(r1) @@ -38341,7 +38502,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A5C0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A5E0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r29,0 @@ -38379,7 +38540,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A5C0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8258A624; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // stw r31,96(r1) @@ -38433,7 +38594,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A650) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A678; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lfs f0,0(r30) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 0); @@ -38521,7 +38682,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A6C0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A704; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // mr r31,r30 ctx.r31.u64 = ctx.r30.u64; // cmplw cr6,r30,r28 @@ -38611,7 +38772,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A778) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A798; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -38665,7 +38826,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A7D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258A7F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -38722,7 +38883,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A820) { ctx.r27.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x8258A84C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // cmplwi cr6,r31,0 @@ -38827,7 +38988,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A8C8) { ctx.r31.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x8258A8F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -38921,7 +39082,7 @@ PPC_FUNC_IMPL(__imp__sub_8258A958) { ctx.r31.u64 = ctx.r8.u64; // bl 0x82250578 ctx.lr = 0x8258A988; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r29) ctx.r10.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // li r11,0 @@ -39047,7 +39208,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AA38) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258AA60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -39137,7 +39298,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AAD8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258AAF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -39191,7 +39352,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AB30) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258AB50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r31) ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -39249,7 +39410,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AB90) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258ABB0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -39311,7 +39472,7 @@ PPC_FUNC_IMPL(__imp__sub_8258ABE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258AC18; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,84(r1) @@ -39402,7 +39563,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AC58) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258ACB4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r30,84(r1) @@ -39460,7 +39621,7 @@ PPC_FUNC_IMPL(__imp__sub_8258ACE8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258AD14; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,84(r1) @@ -39549,7 +39710,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AD48) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258ADA4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r29,88(r1) @@ -39625,7 +39786,7 @@ PPC_FUNC_IMPL(__imp__sub_8258ADC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258AE20; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r29,88(r1) @@ -39699,7 +39860,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AE40) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258AE98; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r29,88(r1) @@ -39935,7 +40096,7 @@ PPC_FUNC_IMPL(__imp__sub_8258AFC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B024; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r29,88(r1) @@ -40564,7 +40725,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B3E8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B440; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r29,88(r1) @@ -40602,7 +40763,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B460) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B478; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31780 ctx.r11.s64 = -2082734080; // li r3,0 @@ -40684,7 +40845,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B4E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B500; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // stw r31,84(r1) @@ -40773,7 +40934,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B570) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258B594; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r30,84(r1) @@ -40856,7 +41017,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B600) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B620; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // lwz r10,0(r31) @@ -40910,7 +41071,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B658) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B678; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // lwz r10,0(r31) @@ -41020,7 +41181,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B6B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B734; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r30,248(r31) ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // cmplwi cr6,r30,0 @@ -41201,7 +41362,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B840) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B868; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // stw r31,84(r1) @@ -41298,7 +41459,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B8E0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258B908; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,84(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -41382,7 +41543,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B960) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x8258B990; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // stw r30,88(r1) @@ -41454,7 +41615,7 @@ PPC_FUNC_IMPL(__imp__sub_8258B9E0) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // bl 0x82250578 ctx.lr = 0x8258BA08; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r31,240(r30) @@ -41525,7 +41686,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BA60) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BA80; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r31,84(r1) @@ -41613,7 +41774,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BAF0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BB18; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -41673,7 +41834,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BB50) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BB7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // lwz r9,0(r30) @@ -41805,7 +41966,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BC10) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x8258BC48; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,92(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -41889,7 +42050,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BCA8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BCD4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -41938,7 +42099,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BD00) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BD20; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -41988,7 +42149,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BD50) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BD70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -42042,7 +42203,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BDA0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BDC8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -42113,7 +42274,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BE00) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BE40; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r29,84(r1) @@ -42163,7 +42324,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BE70) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BE90; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -42219,7 +42380,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BED0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BEF0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -42277,7 +42438,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BF28) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BF50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -42335,7 +42496,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BF90) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258BFB0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -42392,7 +42553,7 @@ PPC_FUNC_IMPL(__imp__sub_8258BFE8) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258C00C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -42445,7 +42606,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C040) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C060; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r4,r1,80 @@ -42522,7 +42683,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C0C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C0E0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r10,r11,28528 @@ -42596,7 +42757,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C138) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C158; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // stw r31,84(r1) @@ -42671,7 +42832,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C1B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C1D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r10,r11,28528 @@ -42784,7 +42945,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C278) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C298; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // stw r31,84(r1) @@ -42855,7 +43016,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C2F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C310; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,248(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // stw r31,84(r1) @@ -42927,7 +43088,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C360) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x8258C388; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r31,240(r31) ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 240); // cmplwi cr6,r31,0 @@ -43006,7 +43167,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C3D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C40C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,84(r1) @@ -43090,7 +43251,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C478) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C498; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -43149,7 +43310,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C4D0) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // bl 0x82250578 ctx.lr = 0x8258C4F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // stw r30,88(r1) @@ -43217,7 +43378,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C548) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C568; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -43275,7 +43436,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C5A0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C5C8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // cmplwi cr6,r31,0 ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); // beq cr6,0x8258c5d8 @@ -43338,7 +43499,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C610) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C630; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -43390,7 +43551,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C668) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C684; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r10,r11,28528 @@ -43593,7 +43754,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C7B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C7E0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,2 @@ -43661,7 +43822,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C838) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C858; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,39 @@ -43729,7 +43890,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C8A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C8D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,1 ctx.r10.s64 = 1; // li r11,0 @@ -43795,7 +43956,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C920) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C940; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,16 @@ -43863,7 +44024,7 @@ PPC_FUNC_IMPL(__imp__sub_8258C998) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258C9B8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,3 @@ -43932,7 +44093,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CA08) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258CA2C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,4 ctx.r11.s64 = 4; // li r10,63 @@ -43989,7 +44150,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CA70) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CA88; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,9 @@ -44055,7 +44216,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CAD8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CAF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,5 @@ -44123,7 +44284,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CB50) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CB70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,13 @@ -44191,7 +44352,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CBC8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CBE8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // cntlzw r10,r31 ctx.r10.u64 = ctx.r31.u32 == 0 ? 32 : __builtin_clz(ctx.r31.u32); // li r11,0 @@ -44261,7 +44422,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CC48) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CC60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,11 @@ -44331,7 +44492,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CCB0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CCD8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,17 @@ -44403,7 +44564,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CD30) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CD58; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r31,84(r1) @@ -44459,7 +44620,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CD90) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 248); // bl 0x82250578 ctx.lr = 0x8258CDB8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -44546,7 +44707,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CE28) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258CE4C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,0 @@ -44603,7 +44764,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CE80) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CEA8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -44659,7 +44820,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CEE0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258CF08; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -44715,7 +44876,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CF40) { ctx.r30.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x8258CF68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r30,88(r1) @@ -44820,7 +44981,7 @@ PPC_FUNC_IMPL(__imp__sub_8258CFD0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258D01C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // lwz r11,0(r31) @@ -45102,7 +45263,7 @@ PPC_FUNC_IMPL(__imp__sub_8258D1C0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8258D1F4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -51414,7 +51575,7 @@ PPC_FUNC_IMPL(__imp__sub_8258FB70) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x8258FCC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,152(r1) PPC_STORE_U32(ctx.r1.u32 + 152, ctx.r30.u32); // stw r23,148(r1) @@ -51447,7 +51608,7 @@ PPC_FUNC_IMPL(__imp__sub_8258FB70) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x8258FCFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,168(r1) PPC_STORE_U32(ctx.r1.u32 + 168, ctx.r30.u32); // stw r24,164(r1) @@ -51563,7 +51724,7 @@ PPC_FUNC_IMPL(__imp__sub_8258FB70) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8258FDC8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r30,9226 ctx.r11.s64 = ctx.r30.s64 + 9226; // stw r21,120(r1) @@ -51669,7 +51830,7 @@ PPC_FUNC_IMPL(__imp__sub_8258FB70) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8258FE7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9226 ctx.r11.s64 = 9226; // stw r21,136(r1) @@ -52941,7 +53102,7 @@ PPC_FUNC_IMPL(__imp__sub_825906F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82590750; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9227 ctx.r11.s64 = 9227; // stw r29,88(r1) @@ -52961,7 +53122,7 @@ PPC_FUNC_IMPL(__imp__sub_825906F0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82590774; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,9228 ctx.r10.s64 = 9228; // stw r29,104(r1) @@ -52981,7 +53142,7 @@ PPC_FUNC_IMPL(__imp__sub_825906F0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82590798; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r9,9229 ctx.r9.s64 = 9229; // stw r29,120(r1) @@ -53011,7 +53172,7 @@ PPC_FUNC_IMPL(__imp__sub_825906F0) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x825907CC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9226 ctx.r11.s64 = 9226; // stw r31,136(r1) @@ -53135,7 +53296,7 @@ PPC_FUNC_IMPL(__imp__sub_825907F0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8259089C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,3 ctx.r11.s64 = 3; // stw r30,100(r1) @@ -53157,7 +53318,7 @@ PPC_FUNC_IMPL(__imp__sub_825907F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825908C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,9226 ctx.r10.s64 = 9226; // li r9,1 @@ -53747,7 +53908,7 @@ PPC_FUNC_IMPL(__imp__sub_82590C68) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82590C8C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r31,0 @@ -53831,7 +53992,7 @@ PPC_FUNC_IMPL(__imp__sub_82590CE8) { ctx.r29.u64 = ctx.r6.u64; // bl 0x82250578 ctx.lr = 0x82590D14; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -53855,7 +54016,7 @@ PPC_FUNC_IMPL(__imp__sub_82590CE8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82590D40; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,88 ctx.r4.s64 = ctx.r1.s64 + 88; // b 0x82590d58 @@ -53867,7 +54028,7 @@ PPC_FUNC_IMPL(__imp__sub_82590CE8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82590D54; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,96 ctx.r4.s64 = ctx.r1.s64 + 96; loc_82590D58: @@ -53982,7 +54143,7 @@ PPC_FUNC_IMPL(__imp__sub_82590DE0) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r29.u32 + 120); // bl 0x82250578 ctx.lr = 0x82590E10; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -54002,7 +54163,7 @@ PPC_FUNC_IMPL(__imp__sub_82590DE0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82590E34; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r31,0 ctx.r31.s64 = 0; // addi r4,r1,88 @@ -54092,7 +54253,7 @@ PPC_FUNC_IMPL(__imp__sub_82590E98) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 120); // bl 0x82250578 ctx.lr = 0x82590EC8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -54134,7 +54295,7 @@ PPC_FUNC_IMPL(__imp__sub_82590E98) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r31.u32 + 120); // bl 0x82250578 ctx.lr = 0x82590F18; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r6,0(r31) ctx.r6.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r29,92(r1) @@ -57908,7 +58069,7 @@ PPC_FUNC_IMPL(__imp__sub_82592840) { ctx.r31.s64 = ctx.r30.s64 + -112; // bl 0x82250578 ctx.lr = 0x825928AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // lwz r11,-112(r30) @@ -58969,7 +59130,7 @@ PPC_FUNC_IMPL(__imp__sub_82592F08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82592FE8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r27.u32); // stw r28,88(r1) @@ -59126,7 +59287,7 @@ PPC_FUNC_IMPL(__imp__sub_82593028) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825930F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -61780,7 +61941,7 @@ PPC_FUNC_IMPL(__imp__sub_82594200) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825942AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r30.u32); // stw r27,84(r1) @@ -62376,7 +62537,7 @@ PPC_FUNC_IMPL(__imp__sub_82594628) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x825946BC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r9,0 ctx.r9.s64 = 0; // addi r3,r1,88 @@ -63078,7 +63239,7 @@ PPC_FUNC_IMPL(__imp__sub_82594B00) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82594B9C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,80(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // addi r3,r1,88 @@ -65871,7 +66032,7 @@ PPC_FUNC_IMPL(__imp__sub_82595D60) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82595EA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // addi r3,r1,80 @@ -66922,7 +67083,7 @@ PPC_FUNC_IMPL(__imp__sub_82596490) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x825965AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,80 ctx.r4.s64 = ctx.r1.s64 + 80; // mr r3,r30 @@ -67792,7 +67953,7 @@ PPC_FUNC_IMPL(__imp__sub_82596AB0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82596BA4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,84(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); // addi r4,r1,88 @@ -70357,7 +70518,7 @@ PPC_FUNC_IMPL(__imp__sub_82597C08) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82597D50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,88(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 88); // stw r26,124(r1) @@ -71391,7 +71552,7 @@ PPC_FUNC_IMPL(__imp__sub_825982B8) { ctx.r4.s64 = ctx.r1.s64 + 120; // bl 0x821ebe28 ctx.lr = 0x82598460; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,104 ctx.r4.s64 = ctx.r1.s64 + 104; // mr r3,r31 @@ -74347,7 +74508,7 @@ PPC_FUNC_IMPL(__imp__sub_82599618) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x825998D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,96 ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x8228e258 @@ -79279,152 +79440,3 @@ PPC_FUNC_IMPL(__imp__sub_8259B9D8) { return; } -__attribute__((alias("__imp__sub_8259BAA8"))) PPC_WEAK_FUNC(sub_8259BAA8); -PPC_FUNC_IMPL(__imp__sub_8259BAA8) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae162c - ctx.lr = 0x8259BAB0; - __savegprlr_29(ctx, base); - // stwu r1,-144(r1) - ea = -144 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // li r3,1 - ctx.r3.s64 = 1; - // mr r29,r4 - ctx.r29.u64 = ctx.r4.u64; - // bl 0x8222ed40 - ctx.lr = 0x8259BAC4; - sub_8222ED40(ctx, base); - // li r6,1 - ctx.r6.s64 = 1; - // li r5,0 - ctx.r5.s64 = 0; - // addi r4,r31,20 - ctx.r4.s64 = ctx.r31.s64 + 20; - // mr r30,r3 - ctx.r30.u64 = ctx.r3.u64; - // bl 0x822227e8 - ctx.lr = 0x8259BAD8; - sub_822227E8(ctx, base); - // stw r29,96(r1) - PPC_STORE_U32(ctx.r1.u32 + 96, ctx.r29.u32); - // lis r11,-31780 - ctx.r11.s64 = -2082734080; - // li r7,21 - ctx.r7.s64 = 21; - // addi r31,r11,-7312 - ctx.r31.s64 = ctx.r11.s64 + -7312; - // li r6,0 - ctx.r6.s64 = 0; - // addi r5,r1,96 - ctx.r5.s64 = ctx.r1.s64 + 96; - // mr r4,r30 - ctx.r4.u64 = ctx.r30.u64; - // addi r3,r31,112 - ctx.r3.s64 = ctx.r31.s64 + 112; - // bl 0x8224e998 - ctx.lr = 0x8259BAFC; - sub_8224E998(ctx, base); - // lis r10,-32059 - ctx.r10.s64 = -2101018624; - // lwz r11,116(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 116); - // addi r9,r10,-23336 - ctx.r9.s64 = ctx.r10.s64 + -23336; - // lwz r3,20(r9) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r9.u32 + 20); - // cmplwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); - // lwz r11,4(r11) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 4); - // addi r11,r11,21 - ctx.r11.s64 = ctx.r11.s64 + 21; - // beq cr6,0x8259bb64 - if (ctx.cr6.eq) goto loc_8259BB64; - // lwz r10,12(r3) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r3.u32 + 12); - // cmpwi cr6,r10,2 - ctx.cr6.compare(ctx.r10.s32, 2, ctx.xer); - // beq cr6,0x8259bb38 - if (ctx.cr6.eq) goto loc_8259BB38; - // cmpwi cr6,r10,4 - ctx.cr6.compare(ctx.r10.s32, 4, ctx.xer); - // beq cr6,0x8259bb38 - if (ctx.cr6.eq) goto loc_8259BB38; - // cmpwi cr6,r10,3 - ctx.cr6.compare(ctx.r10.s32, 3, ctx.xer); - // bne cr6,0x8259bb64 - if (!ctx.cr6.eq) goto loc_8259BB64; -loc_8259BB38: - // stw r11,84(r1) - PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r11.u32); - // li r11,0 - ctx.r11.s64 = 0; - // addi r5,r3,116 - ctx.r5.s64 = ctx.r3.s64 + 116; - // mr r10,r30 - ctx.r10.u64 = ctx.r30.u64; - // stw r11,92(r1) - PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r11.u32); - // li r9,0 - ctx.r9.s64 = 0; - // li r8,6 - ctx.r8.s64 = 6; - // li r7,357 - ctx.r7.s64 = 357; - // li r6,1 - ctx.r6.s64 = 1; - // li r4,-1 - ctx.r4.s64 = -1; - // bl 0x822342a0 - ctx.lr = 0x8259BB64; - sub_822342A0(ctx, base); -loc_8259BB64: - // lis r11,-31788 - ctx.r11.s64 = -2083258368; - // li r9,0 - ctx.r9.s64 = 0; - // addi r10,r11,-14196 - ctx.r10.s64 = ctx.r11.s64 + -14196; - // lwz r11,-14196(r11) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + -14196); - // lwz r10,4(r10) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 4); -loc_8259BB78: - // cmplw cr6,r11,r10 - ctx.cr6.compare(ctx.r11.u32, ctx.r10.u32, ctx.xer); - // bge cr6,0x8259bb98 - if (!ctx.cr6.lt) goto loc_8259BB98; - // cmplw cr6,r11,r30 - ctx.cr6.compare(ctx.r11.u32, ctx.r30.u32, ctx.xer); - // bne cr6,0x8259bb8c - if (!ctx.cr6.eq) goto loc_8259BB8C; - // mr r9,r11 - ctx.r9.u64 = ctx.r11.u64; -loc_8259BB8C: - // addi r11,r11,1268 - ctx.r11.s64 = ctx.r11.s64 + 1268; - // cmplwi cr6,r9,0 - ctx.cr6.compare(ctx.r9.u32, 0, ctx.xer); - // beq cr6,0x8259bb78 - if (ctx.cr6.eq) goto loc_8259BB78; -loc_8259BB98: - // lwz r11,1264(r9) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r9.u32 + 1264); - // addi r11,r11,-1 - ctx.r11.s64 = ctx.r11.s64 + -1; - // stw r11,1264(r9) - PPC_STORE_U32(ctx.r9.u32 + 1264, ctx.r11.u32); - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // b 0x82ae167c - __restgprlr_29(ctx, base); - return; -} - diff --git a/generated/retip_recomp.31.cpp b/generated/retip_recomp.31.cpp index c6db60a..19ff5cc 100644 --- a/generated/retip_recomp.31.cpp +++ b/generated/retip_recomp.31.cpp @@ -1,5 +1,154 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_8259BAA8"))) PPC_WEAK_FUNC(sub_8259BAA8); +PPC_FUNC_IMPL(__imp__sub_8259BAA8) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae162c + ctx.lr = 0x8259BAB0; + __savegprlr_29(ctx, base); + // stwu r1,-144(r1) + ea = -144 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // li r3,1 + ctx.r3.s64 = 1; + // mr r29,r4 + ctx.r29.u64 = ctx.r4.u64; + // bl 0x8222ed40 + ctx.lr = 0x8259BAC4; + sub_8222ED40(ctx, base); + // li r6,1 + ctx.r6.s64 = 1; + // li r5,0 + ctx.r5.s64 = 0; + // addi r4,r31,20 + ctx.r4.s64 = ctx.r31.s64 + 20; + // mr r30,r3 + ctx.r30.u64 = ctx.r3.u64; + // bl 0x822227e8 + ctx.lr = 0x8259BAD8; + sub_822227E8(ctx, base); + // stw r29,96(r1) + PPC_STORE_U32(ctx.r1.u32 + 96, ctx.r29.u32); + // lis r11,-31780 + ctx.r11.s64 = -2082734080; + // li r7,21 + ctx.r7.s64 = 21; + // addi r31,r11,-7312 + ctx.r31.s64 = ctx.r11.s64 + -7312; + // li r6,0 + ctx.r6.s64 = 0; + // addi r5,r1,96 + ctx.r5.s64 = ctx.r1.s64 + 96; + // mr r4,r30 + ctx.r4.u64 = ctx.r30.u64; + // addi r3,r31,112 + ctx.r3.s64 = ctx.r31.s64 + 112; + // bl 0x8224e998 + ctx.lr = 0x8259BAFC; + sub_8224E998(ctx, base); + // lis r10,-32059 + ctx.r10.s64 = -2101018624; + // lwz r11,116(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 116); + // addi r9,r10,-23336 + ctx.r9.s64 = ctx.r10.s64 + -23336; + // lwz r3,20(r9) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r9.u32 + 20); + // cmplwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); + // lwz r11,4(r11) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 4); + // addi r11,r11,21 + ctx.r11.s64 = ctx.r11.s64 + 21; + // beq cr6,0x8259bb64 + if (ctx.cr6.eq) goto loc_8259BB64; + // lwz r10,12(r3) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r3.u32 + 12); + // cmpwi cr6,r10,2 + ctx.cr6.compare(ctx.r10.s32, 2, ctx.xer); + // beq cr6,0x8259bb38 + if (ctx.cr6.eq) goto loc_8259BB38; + // cmpwi cr6,r10,4 + ctx.cr6.compare(ctx.r10.s32, 4, ctx.xer); + // beq cr6,0x8259bb38 + if (ctx.cr6.eq) goto loc_8259BB38; + // cmpwi cr6,r10,3 + ctx.cr6.compare(ctx.r10.s32, 3, ctx.xer); + // bne cr6,0x8259bb64 + if (!ctx.cr6.eq) goto loc_8259BB64; +loc_8259BB38: + // stw r11,84(r1) + PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r11.u32); + // li r11,0 + ctx.r11.s64 = 0; + // addi r5,r3,116 + ctx.r5.s64 = ctx.r3.s64 + 116; + // mr r10,r30 + ctx.r10.u64 = ctx.r30.u64; + // stw r11,92(r1) + PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r11.u32); + // li r9,0 + ctx.r9.s64 = 0; + // li r8,6 + ctx.r8.s64 = 6; + // li r7,357 + ctx.r7.s64 = 357; + // li r6,1 + ctx.r6.s64 = 1; + // li r4,-1 + ctx.r4.s64 = -1; + // bl 0x822342a0 + ctx.lr = 0x8259BB64; + sub_822342A0(ctx, base); +loc_8259BB64: + // lis r11,-31788 + ctx.r11.s64 = -2083258368; + // li r9,0 + ctx.r9.s64 = 0; + // addi r10,r11,-14196 + ctx.r10.s64 = ctx.r11.s64 + -14196; + // lwz r11,-14196(r11) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + -14196); + // lwz r10,4(r10) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 4); +loc_8259BB78: + // cmplw cr6,r11,r10 + ctx.cr6.compare(ctx.r11.u32, ctx.r10.u32, ctx.xer); + // bge cr6,0x8259bb98 + if (!ctx.cr6.lt) goto loc_8259BB98; + // cmplw cr6,r11,r30 + ctx.cr6.compare(ctx.r11.u32, ctx.r30.u32, ctx.xer); + // bne cr6,0x8259bb8c + if (!ctx.cr6.eq) goto loc_8259BB8C; + // mr r9,r11 + ctx.r9.u64 = ctx.r11.u64; +loc_8259BB8C: + // addi r11,r11,1268 + ctx.r11.s64 = ctx.r11.s64 + 1268; + // cmplwi cr6,r9,0 + ctx.cr6.compare(ctx.r9.u32, 0, ctx.xer); + // beq cr6,0x8259bb78 + if (ctx.cr6.eq) goto loc_8259BB78; +loc_8259BB98: + // lwz r11,1264(r9) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r9.u32 + 1264); + // addi r11,r11,-1 + ctx.r11.s64 = ctx.r11.s64 + -1; + // stw r11,1264(r9) + PPC_STORE_U32(ctx.r9.u32 + 1264, ctx.r11.u32); + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // b 0x82ae167c + __restgprlr_29(ctx, base); + return; +} + __attribute__((alias("__imp__sub_8259BBB0"))) PPC_WEAK_FUNC(sub_8259BBB0); PPC_FUNC_IMPL(__imp__sub_8259BBB0) { PPC_FUNC_PROLOGUE(); @@ -647,7 +796,7 @@ PPC_FUNC_IMPL(__imp__sub_8259BF48) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8259C02C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stw r31,92(r1) @@ -1977,7 +2126,7 @@ PPC_FUNC_IMPL(__imp__sub_8259C838) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8259C904; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -3057,7 +3206,7 @@ PPC_FUNC_IMPL(__imp__sub_8259CE38) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8259D07C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // lwz r11,248(r30) @@ -3121,7 +3270,7 @@ PPC_FUNC_IMPL(__imp__sub_8259CE38) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8259D0E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r22,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r22.u32); // addi r4,r1,96 @@ -3285,7 +3434,7 @@ PPC_FUNC_IMPL(__imp__sub_8259CE38) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8259D20C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,80(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // stw r31,120(r1) @@ -3344,7 +3493,7 @@ PPC_FUNC_IMPL(__imp__sub_8259CE38) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x8259D278; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,80(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // stw r11,108(r1) @@ -3665,7 +3814,7 @@ PPC_FUNC_IMPL(__imp__sub_8259D458) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8259D4AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,100(r1) @@ -3836,7 +3985,7 @@ PPC_FUNC_IMPL(__imp__sub_8259D5A0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8259D5DC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -4626,7 +4775,7 @@ PPC_FUNC_IMPL(__imp__sub_8259DA38) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8259DB50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r30) @@ -21887,7 +22036,7 @@ PPC_FUNC_IMPL(__imp__sub_825A4ED8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825A4F88; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,12(r30) ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // stfs f31,84(r1) @@ -21995,7 +22144,7 @@ PPC_FUNC_IMPL(__imp__sub_825A4ED8) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x825A5044; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // stfs f31,116(r1) @@ -23490,7 +23639,7 @@ PPC_FUNC_IMPL(__imp__sub_825A59B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825A5A34; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r28,84(r1) @@ -23518,7 +23667,7 @@ PPC_FUNC_IMPL(__imp__sub_825A59B8) { ctx.r29.u64 = __builtin_rotateleft64(ctx.r8.u32 | (ctx.r8.u64 << 32), 27) & 0x1; // bl 0x82250578 ctx.lr = 0x825A5A68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r7,0(r31) ctx.r7.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,88 @@ -24797,7 +24946,7 @@ PPC_FUNC_IMPL(__imp__sub_825A6220) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825A6310; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9202 ctx.r11.s64 = 9202; // stw r27,88(r1) @@ -25489,7 +25638,7 @@ PPC_FUNC_IMPL(__imp__sub_825A6478) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x825A67D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,120(r1) PPC_STORE_U32(ctx.r1.u32 + 120, ctx.r30.u32); // stw r25,116(r1) @@ -25516,7 +25665,7 @@ PPC_FUNC_IMPL(__imp__sub_825A6478) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x825A6800; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // stw r17,96(r1) @@ -37358,7 +37507,7 @@ PPC_FUNC_IMPL(__imp__sub_825AB788) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825AB7EC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lfs f0,20(r31) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); @@ -37601,7 +37750,7 @@ PPC_FUNC_IMPL(__imp__sub_825AB788) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r30.u32 + 248); // bl 0x82250578 ctx.lr = 0x825AB988; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lfs f0,20(r31) ctx.fpscr.disableFlushMode(); temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); @@ -37884,7 +38033,7 @@ PPC_FUNC_IMPL(__imp__sub_825ABA18) { ctx.r4.u64 = ctx.r29.u64; // bl 0x821ebe28 ctx.lr = 0x825ABB58; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r30,60(r31) ctx.r30.u64 = PPC_LOAD_U32(ctx.r31.u32 + 60); // cmplwi cr6,r30,0 @@ -37897,7 +38046,7 @@ PPC_FUNC_IMPL(__imp__sub_825ABA18) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825ABB70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -40051,7 +40200,7 @@ PPC_FUNC_IMPL(__imp__sub_825AC958) { PPC_STORE_U32(ctx.r31.u32 + 3784, ctx.r8.u32); // bl 0x821ebe28 ctx.lr = 0x825AC9A8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // cmplwi cr6,r30,0 ctx.cr6.compare(ctx.r30.u32, 0, ctx.xer); // beq cr6,0x825ac9d8 @@ -43066,7 +43215,7 @@ PPC_FUNC_IMPL(__imp__sub_825ADC60) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x825ADE38; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,112 @@ -45459,7 +45608,7 @@ PPC_FUNC_IMPL(__imp__sub_825AEE40) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825AEE7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r31) ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,1 @@ -49709,7 +49858,7 @@ PPC_FUNC_IMPL(__imp__sub_825B0C40) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825B0C78; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -61891,7 +62040,7 @@ PPC_FUNC_IMPL(__imp__sub_825B5D18) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825B5F14; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,2 ctx.r11.s64 = 2; // li r10,63 @@ -72387,7 +72536,7 @@ PPC_FUNC_IMPL(__imp__sub_825BA328) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825BA398; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r28.u32); // stw r24,84(r1) @@ -78436,188 +78585,3 @@ PPC_FUNC_IMPL(__imp__sub_825BCAF0) { return; } -__attribute__((alias("__imp__sub_825BCB70"))) PPC_WEAK_FUNC(sub_825BCB70); -PPC_FUNC_IMPL(__imp__sub_825BCB70) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1628 - ctx.lr = 0x825BCB78; - __savegprlr_28(ctx, base); - // stwu r1,-144(r1) - ea = -144 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r30,r3 - ctx.r30.u64 = ctx.r3.u64; - // mr r28,r4 - ctx.r28.u64 = ctx.r4.u64; - // lwz r11,40(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 40); - // cmplw cr6,r28,r11 - ctx.cr6.compare(ctx.r28.u32, ctx.r11.u32, ctx.xer); - // bne cr6,0x825bcb98 - if (!ctx.cr6.eq) goto loc_825BCB98; - // cmpwi cr6,r5,0 - ctx.cr6.compare(ctx.r5.s32, 0, ctx.xer); - // beq cr6,0x825bcca0 - if (ctx.cr6.eq) goto loc_825BCCA0; -loc_825BCB98: - // li r29,0 - ctx.r29.s64 = 0; - // lwz r3,4(r30) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // addi r31,r30,4 - ctx.r31.s64 = ctx.r30.s64 + 4; - // stw r29,92(r1) - PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); - // stw r29,88(r1) - PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r29.u32); - // stw r29,84(r1) - PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); - // bl 0x826b2f20 - ctx.lr = 0x825BCBB8; - sub_826B2F20(ctx, base); - // cmpwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.s32, 0, ctx.xer); - // bge cr6,0x825bcbd4 - if (!ctx.cr6.lt) goto loc_825BCBD4; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x825bc408 - ctx.lr = 0x825BCBC8; - sub_825BC408(ctx, base); - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // lwz r3,0(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); - // bl 0x826b2f20 - ctx.lr = 0x825BCBD4; - sub_826B2F20(ctx, base); -loc_825BCBD4: - // lwz r31,80(r1) - ctx.r31.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // addi r5,r1,92 - ctx.r5.s64 = ctx.r1.s64 + 92; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // addi r4,r11,-21480 - ctx.r4.s64 = ctx.r11.s64 + -21480; - // bl 0x826b4608 - ctx.lr = 0x825BCBEC; - sub_826B4608(ctx, base); - // lis r10,-32235 - ctx.r10.s64 = -2112552960; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // addi r4,r10,-21180 - ctx.r4.s64 = ctx.r10.s64 + -21180; - // addi r5,r1,88 - ctx.r5.s64 = ctx.r1.s64 + 88; - // bl 0x826b4608 - ctx.lr = 0x825BCC00; - sub_826B4608(ctx, base); - // lis r9,-32235 - ctx.r9.s64 = -2112552960; - // addi r5,r1,84 - ctx.r5.s64 = ctx.r1.s64 + 84; - // addi r4,r9,-21164 - ctx.r4.s64 = ctx.r9.s64 + -21164; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x826b4608 - ctx.lr = 0x825BCC14; - sub_826B4608(ctx, base); - // lwz r8,44(r30) - ctx.r8.u64 = PPC_LOAD_U32(ctx.r30.u32 + 44); - // cmpwi cr6,r8,0 - ctx.cr6.compare(ctx.r8.s32, 0, ctx.xer); - // beq cr6,0x825bcc28 - if (ctx.cr6.eq) goto loc_825BCC28; - // mr r4,r29 - ctx.r4.u64 = ctx.r29.u64; - // b 0x825bcc34 - goto loc_825BCC34; -loc_825BCC28: - // subf r11,r29,r28 - ctx.r11.u64 = ctx.r28.u64 - ctx.r29.u64; - // cntlzw r10,r11 - ctx.r10.u64 = ctx.r11.u32 == 0 ? 32 : __builtin_clz(ctx.r11.u32); - // rlwinm r4,r10,27,31,31 - ctx.r4.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; -loc_825BCC34: - // lwz r3,84(r1) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); - // bl 0x825c4018 - ctx.lr = 0x825BCC3C; - sub_825C4018(ctx, base); - // lwz r11,44(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 44); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x825bcc50 - if (ctx.cr6.eq) goto loc_825BCC50; - // mr r4,r29 - ctx.r4.u64 = ctx.r29.u64; - // b 0x825bcc5c - goto loc_825BCC5C; -loc_825BCC50: - // addi r11,r28,-1 - ctx.r11.s64 = ctx.r28.s64 + -1; - // cntlzw r10,r11 - ctx.r10.u64 = ctx.r11.u32 == 0 ? 32 : __builtin_clz(ctx.r11.u32); - // rlwinm r4,r10,27,31,31 - ctx.r4.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; -loc_825BCC5C: - // lwz r3,88(r1) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 88); - // bl 0x825c4018 - ctx.lr = 0x825BCC64; - sub_825C4018(ctx, base); - // lwz r11,44(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 44); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x825bcc88 - if (ctx.cr6.eq) goto loc_825BCC88; - // mr r4,r29 - ctx.r4.u64 = ctx.r29.u64; - // lwz r3,92(r1) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 92); - // bl 0x825c4018 - ctx.lr = 0x825BCC7C; - sub_825C4018(ctx, base); - // stw r28,40(r30) - PPC_STORE_U32(ctx.r30.u32 + 40, ctx.r28.u32); - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -loc_825BCC88: - // addi r11,r28,-2 - ctx.r11.s64 = ctx.r28.s64 + -2; - // lwz r3,92(r1) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 92); - // cntlzw r10,r11 - ctx.r10.u64 = ctx.r11.u32 == 0 ? 32 : __builtin_clz(ctx.r11.u32); - // rlwinm r4,r10,27,31,31 - ctx.r4.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; - // bl 0x825c4018 - ctx.lr = 0x825BCC9C; - sub_825C4018(ctx, base); - // stw r28,40(r30) - PPC_STORE_U32(ctx.r30.u32 + 40, ctx.r28.u32); -loc_825BCCA0: - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -} - diff --git a/generated/retip_recomp.32.cpp b/generated/retip_recomp.32.cpp index 90baf94..1329dfa 100644 --- a/generated/retip_recomp.32.cpp +++ b/generated/retip_recomp.32.cpp @@ -1,5 +1,190 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_825BCB70"))) PPC_WEAK_FUNC(sub_825BCB70); +PPC_FUNC_IMPL(__imp__sub_825BCB70) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1628 + ctx.lr = 0x825BCB78; + __savegprlr_28(ctx, base); + // stwu r1,-144(r1) + ea = -144 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r30,r3 + ctx.r30.u64 = ctx.r3.u64; + // mr r28,r4 + ctx.r28.u64 = ctx.r4.u64; + // lwz r11,40(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 40); + // cmplw cr6,r28,r11 + ctx.cr6.compare(ctx.r28.u32, ctx.r11.u32, ctx.xer); + // bne cr6,0x825bcb98 + if (!ctx.cr6.eq) goto loc_825BCB98; + // cmpwi cr6,r5,0 + ctx.cr6.compare(ctx.r5.s32, 0, ctx.xer); + // beq cr6,0x825bcca0 + if (ctx.cr6.eq) goto loc_825BCCA0; +loc_825BCB98: + // li r29,0 + ctx.r29.s64 = 0; + // lwz r3,4(r30) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // addi r31,r30,4 + ctx.r31.s64 = ctx.r30.s64 + 4; + // stw r29,92(r1) + PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); + // stw r29,88(r1) + PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r29.u32); + // stw r29,84(r1) + PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); + // bl 0x826b2f20 + ctx.lr = 0x825BCBB8; + sub_826B2F20(ctx, base); + // cmpwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.s32, 0, ctx.xer); + // bge cr6,0x825bcbd4 + if (!ctx.cr6.lt) goto loc_825BCBD4; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x825bc408 + ctx.lr = 0x825BCBC8; + sub_825BC408(ctx, base); + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // lwz r3,0(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); + // bl 0x826b2f20 + ctx.lr = 0x825BCBD4; + sub_826B2F20(ctx, base); +loc_825BCBD4: + // lwz r31,80(r1) + ctx.r31.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // addi r5,r1,92 + ctx.r5.s64 = ctx.r1.s64 + 92; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // addi r4,r11,-21480 + ctx.r4.s64 = ctx.r11.s64 + -21480; + // bl 0x826b4608 + ctx.lr = 0x825BCBEC; + sub_826B4608(ctx, base); + // lis r10,-32235 + ctx.r10.s64 = -2112552960; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // addi r4,r10,-21180 + ctx.r4.s64 = ctx.r10.s64 + -21180; + // addi r5,r1,88 + ctx.r5.s64 = ctx.r1.s64 + 88; + // bl 0x826b4608 + ctx.lr = 0x825BCC00; + sub_826B4608(ctx, base); + // lis r9,-32235 + ctx.r9.s64 = -2112552960; + // addi r5,r1,84 + ctx.r5.s64 = ctx.r1.s64 + 84; + // addi r4,r9,-21164 + ctx.r4.s64 = ctx.r9.s64 + -21164; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x826b4608 + ctx.lr = 0x825BCC14; + sub_826B4608(ctx, base); + // lwz r8,44(r30) + ctx.r8.u64 = PPC_LOAD_U32(ctx.r30.u32 + 44); + // cmpwi cr6,r8,0 + ctx.cr6.compare(ctx.r8.s32, 0, ctx.xer); + // beq cr6,0x825bcc28 + if (ctx.cr6.eq) goto loc_825BCC28; + // mr r4,r29 + ctx.r4.u64 = ctx.r29.u64; + // b 0x825bcc34 + goto loc_825BCC34; +loc_825BCC28: + // subf r11,r29,r28 + ctx.r11.u64 = ctx.r28.u64 - ctx.r29.u64; + // cntlzw r10,r11 + ctx.r10.u64 = ctx.r11.u32 == 0 ? 32 : __builtin_clz(ctx.r11.u32); + // rlwinm r4,r10,27,31,31 + ctx.r4.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; +loc_825BCC34: + // lwz r3,84(r1) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); + // bl 0x825c4018 + ctx.lr = 0x825BCC3C; + sub_825C4018(ctx, base); + // lwz r11,44(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 44); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x825bcc50 + if (ctx.cr6.eq) goto loc_825BCC50; + // mr r4,r29 + ctx.r4.u64 = ctx.r29.u64; + // b 0x825bcc5c + goto loc_825BCC5C; +loc_825BCC50: + // addi r11,r28,-1 + ctx.r11.s64 = ctx.r28.s64 + -1; + // cntlzw r10,r11 + ctx.r10.u64 = ctx.r11.u32 == 0 ? 32 : __builtin_clz(ctx.r11.u32); + // rlwinm r4,r10,27,31,31 + ctx.r4.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; +loc_825BCC5C: + // lwz r3,88(r1) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 88); + // bl 0x825c4018 + ctx.lr = 0x825BCC64; + sub_825C4018(ctx, base); + // lwz r11,44(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 44); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x825bcc88 + if (ctx.cr6.eq) goto loc_825BCC88; + // mr r4,r29 + ctx.r4.u64 = ctx.r29.u64; + // lwz r3,92(r1) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 92); + // bl 0x825c4018 + ctx.lr = 0x825BCC7C; + sub_825C4018(ctx, base); + // stw r28,40(r30) + PPC_STORE_U32(ctx.r30.u32 + 40, ctx.r28.u32); + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +loc_825BCC88: + // addi r11,r28,-2 + ctx.r11.s64 = ctx.r28.s64 + -2; + // lwz r3,92(r1) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r1.u32 + 92); + // cntlzw r10,r11 + ctx.r10.u64 = ctx.r11.u32 == 0 ? 32 : __builtin_clz(ctx.r11.u32); + // rlwinm r4,r10,27,31,31 + ctx.r4.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; + // bl 0x825c4018 + ctx.lr = 0x825BCC9C; + sub_825C4018(ctx, base); + // stw r28,40(r30) + PPC_STORE_U32(ctx.r30.u32 + 40, ctx.r28.u32); +loc_825BCCA0: + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +} + __attribute__((alias("__imp__sub_825BCCA8"))) PPC_WEAK_FUNC(sub_825BCCA8); PPC_FUNC_IMPL(__imp__sub_825BCCA8) { PPC_FUNC_PROLOGUE(); @@ -36746,7 +36931,7 @@ PPC_FUNC_IMPL(__imp__sub_825CC6B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825CC788; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -43423,7 +43608,7 @@ PPC_FUNC_IMPL(__imp__sub_825CF3A8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825CF4D0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -48462,7 +48647,7 @@ PPC_FUNC_IMPL(__imp__sub_825D15A0) { PPC_STORE_U8(ctx.r30.u32 + 4048, ctx.r11.u8); // bl 0x82250578 ctx.lr = 0x825D15FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // addi r3,r1,80 @@ -66797,7 +66982,7 @@ PPC_FUNC_IMPL(__imp__sub_825D8E70) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825D916C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -67035,7 +67220,7 @@ PPC_FUNC_IMPL(__imp__sub_825D9180) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825D9300; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -67398,7 +67583,7 @@ PPC_FUNC_IMPL(__imp__sub_825D9310) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // bl 0x82250578 ctx.lr = 0x825D9574; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,84 @@ -68988,7 +69173,7 @@ PPC_FUNC_IMPL(__imp__sub_825D9FC0) { if (ctx.r11.s32 == 0 || ctx.r11.u32 < 0u) ppc_trap(ctx, base, 0); // bl 0x82250578 ctx.lr = 0x825D9FFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stb r30,84(r1) PPC_STORE_U8(ctx.r1.u32 + 84, ctx.r30.u8); // addi r4,r1,80 @@ -75382,7 +75567,7 @@ PPC_FUNC_IMPL(__imp__sub_825DCA78) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x825DCB18; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r30) ctx.r8.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // stw r27,140(r1) @@ -75476,7 +75661,7 @@ PPC_FUNC_IMPL(__imp__sub_825DCA78) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x825DCBBC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // stw r27,148(r1) @@ -80652,153 +80837,3 @@ PPC_FUNC_IMPL(__imp__sub_825DEE40) { return; } -__attribute__((alias("__imp__sub_825DEF48"))) PPC_WEAK_FUNC(sub_825DEF48); -PPC_FUNC_IMPL(__imp__sub_825DEF48) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1628 - ctx.lr = 0x825DEF50; - __savegprlr_28(ctx, base); - // stwu r1,-144(r1) - ea = -144 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r30,r5 - ctx.r30.u64 = ctx.r5.u64; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // li r28,0 - ctx.r28.s64 = 0; - // lwz r11,160(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 160); - // rlwinm r10,r11,2,0,29 - ctx.r10.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 2) & 0xFFFFFFFC; - // add r10,r11,r10 - ctx.r10.u64 = ctx.r11.u64 + ctx.r10.u64; - // rlwinm r10,r10,2,0,29 - ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; - // add r10,r10,r30 - ctx.r10.u64 = ctx.r10.u64 + ctx.r30.u64; - // lwz r9,92(r10) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r10.u32 + 92); - // cmpwi cr6,r9,0 - ctx.cr6.compare(ctx.r9.s32, 0, ctx.xer); - // beq cr6,0x825def90 - if (ctx.cr6.eq) goto loc_825DEF90; - // lwz r10,76(r10) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 76); - // li r29,1 - ctx.r29.s64 = 1; - // cmpwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); - // bne cr6,0x825def94 - if (!ctx.cr6.eq) goto loc_825DEF94; -loc_825DEF90: - // mr r29,r28 - ctx.r29.u64 = ctx.r28.u64; -loc_825DEF94: - // lwz r3,504(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 504); - // cmplwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); - // beq cr6,0x825df00c - if (ctx.cr6.eq) goto loc_825DF00C; - // addi r11,r11,4 - ctx.r11.s64 = ctx.r11.s64 + 4; - // lwz r9,508(r31) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 508); - // lis r8,-32234 - ctx.r8.s64 = -2112487424; - // stw r29,84(r1) - PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); - // rlwinm r10,r11,2,0,29 - ctx.r10.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 2) & 0xFFFFFFFC; - // li r7,1 - ctx.r7.s64 = 1; - // add r5,r11,r10 - ctx.r5.u64 = ctx.r11.u64 + ctx.r10.u64; - // li r4,0 - ctx.r4.s64 = 0; - // stw r7,100(r1) - PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r7.u32); - // rlwinm r11,r5,2,0,29 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 2) & 0xFFFFFFFC; - // lfs f4,-14540(r8) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + -14540); - ctx.f4.f64 = double(temp.f32); - // stw r9,92(r1) - PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r9.u32); - // lwzx r5,r11,r30 - ctx.r5.u64 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r30.u32); - // bl 0x8260bd18 - ctx.lr = 0x825DEFD8; - sub_8260BD18(ctx, base); - // lwz r10,508(r31) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 508); - // cmpwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); - // beq cr6,0x825deff4 - if (ctx.cr6.eq) goto loc_825DEFF4; - // li r4,1 - ctx.r4.s64 = 1; - // lwz r3,500(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 500); - // bl 0x825c4018 - ctx.lr = 0x825DEFF0; - sub_825C4018(ctx, base); - // stw r28,508(r31) - PPC_STORE_U32(ctx.r31.u32 + 508, ctx.r28.u32); -loc_825DEFF4: - // cmpwi cr6,r29,0 - ctx.cr6.compare(ctx.r29.s32, 0, ctx.xer); - // beq cr6,0x825df004 - if (ctx.cr6.eq) goto loc_825DF004; - // stw r30,564(r31) - PPC_STORE_U32(ctx.r31.u32 + 564, ctx.r30.u32); - // b 0x825df010 - goto loc_825DF010; -loc_825DF004: - // stw r28,564(r31) - PPC_STORE_U32(ctx.r31.u32 + 564, ctx.r28.u32); - // b 0x825df02c - goto loc_825DF02C; -loc_825DF00C: - // stw r28,564(r31) - PPC_STORE_U32(ctx.r31.u32 + 564, ctx.r28.u32); -loc_825DF010: - // cmpwi cr6,r29,0 - ctx.cr6.compare(ctx.r29.s32, 0, ctx.xer); - // beq cr6,0x825df02c - if (ctx.cr6.eq) goto loc_825DF02C; - // lwz r11,12(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 12); - // li r5,1 - ctx.r5.s64 = 1; - // lwz r10,1280(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 1280); - // cmpwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); - // beq cr6,0x825df030 - if (ctx.cr6.eq) goto loc_825DF030; -loc_825DF02C: - // mr r5,r28 - ctx.r5.u64 = ctx.r28.u64; -loc_825DF030: - // li r4,80 - ctx.r4.s64 = 80; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x825c5838 - ctx.lr = 0x825DF03C; - sub_825C5838(ctx, base); - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -} - diff --git a/generated/retip_recomp.33.cpp b/generated/retip_recomp.33.cpp index 25a6258..bf0a4b3 100644 --- a/generated/retip_recomp.33.cpp +++ b/generated/retip_recomp.33.cpp @@ -1,5 +1,155 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_825DEF48"))) PPC_WEAK_FUNC(sub_825DEF48); +PPC_FUNC_IMPL(__imp__sub_825DEF48) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1628 + ctx.lr = 0x825DEF50; + __savegprlr_28(ctx, base); + // stwu r1,-144(r1) + ea = -144 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r30,r5 + ctx.r30.u64 = ctx.r5.u64; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // li r28,0 + ctx.r28.s64 = 0; + // lwz r11,160(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 160); + // rlwinm r10,r11,2,0,29 + ctx.r10.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 2) & 0xFFFFFFFC; + // add r10,r11,r10 + ctx.r10.u64 = ctx.r11.u64 + ctx.r10.u64; + // rlwinm r10,r10,2,0,29 + ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; + // add r10,r10,r30 + ctx.r10.u64 = ctx.r10.u64 + ctx.r30.u64; + // lwz r9,92(r10) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r10.u32 + 92); + // cmpwi cr6,r9,0 + ctx.cr6.compare(ctx.r9.s32, 0, ctx.xer); + // beq cr6,0x825def90 + if (ctx.cr6.eq) goto loc_825DEF90; + // lwz r10,76(r10) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 76); + // li r29,1 + ctx.r29.s64 = 1; + // cmpwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); + // bne cr6,0x825def94 + if (!ctx.cr6.eq) goto loc_825DEF94; +loc_825DEF90: + // mr r29,r28 + ctx.r29.u64 = ctx.r28.u64; +loc_825DEF94: + // lwz r3,504(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 504); + // cmplwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); + // beq cr6,0x825df00c + if (ctx.cr6.eq) goto loc_825DF00C; + // addi r11,r11,4 + ctx.r11.s64 = ctx.r11.s64 + 4; + // lwz r9,508(r31) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r31.u32 + 508); + // lis r8,-32234 + ctx.r8.s64 = -2112487424; + // stw r29,84(r1) + PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); + // rlwinm r10,r11,2,0,29 + ctx.r10.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 2) & 0xFFFFFFFC; + // li r7,1 + ctx.r7.s64 = 1; + // add r5,r11,r10 + ctx.r5.u64 = ctx.r11.u64 + ctx.r10.u64; + // li r4,0 + ctx.r4.s64 = 0; + // stw r7,100(r1) + PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r7.u32); + // rlwinm r11,r5,2,0,29 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 2) & 0xFFFFFFFC; + // lfs f4,-14540(r8) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + -14540); + ctx.f4.f64 = double(temp.f32); + // stw r9,92(r1) + PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r9.u32); + // lwzx r5,r11,r30 + ctx.r5.u64 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r30.u32); + // bl 0x8260bd18 + ctx.lr = 0x825DEFD8; + sub_8260BD18(ctx, base); + // lwz r10,508(r31) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 508); + // cmpwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); + // beq cr6,0x825deff4 + if (ctx.cr6.eq) goto loc_825DEFF4; + // li r4,1 + ctx.r4.s64 = 1; + // lwz r3,500(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 500); + // bl 0x825c4018 + ctx.lr = 0x825DEFF0; + sub_825C4018(ctx, base); + // stw r28,508(r31) + PPC_STORE_U32(ctx.r31.u32 + 508, ctx.r28.u32); +loc_825DEFF4: + // cmpwi cr6,r29,0 + ctx.cr6.compare(ctx.r29.s32, 0, ctx.xer); + // beq cr6,0x825df004 + if (ctx.cr6.eq) goto loc_825DF004; + // stw r30,564(r31) + PPC_STORE_U32(ctx.r31.u32 + 564, ctx.r30.u32); + // b 0x825df010 + goto loc_825DF010; +loc_825DF004: + // stw r28,564(r31) + PPC_STORE_U32(ctx.r31.u32 + 564, ctx.r28.u32); + // b 0x825df02c + goto loc_825DF02C; +loc_825DF00C: + // stw r28,564(r31) + PPC_STORE_U32(ctx.r31.u32 + 564, ctx.r28.u32); +loc_825DF010: + // cmpwi cr6,r29,0 + ctx.cr6.compare(ctx.r29.s32, 0, ctx.xer); + // beq cr6,0x825df02c + if (ctx.cr6.eq) goto loc_825DF02C; + // lwz r11,12(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 12); + // li r5,1 + ctx.r5.s64 = 1; + // lwz r10,1280(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 1280); + // cmpwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.s32, 0, ctx.xer); + // beq cr6,0x825df030 + if (ctx.cr6.eq) goto loc_825DF030; +loc_825DF02C: + // mr r5,r28 + ctx.r5.u64 = ctx.r28.u64; +loc_825DF030: + // li r4,80 + ctx.r4.s64 = 80; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x825c5838 + ctx.lr = 0x825DF03C; + sub_825C5838(ctx, base); + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +} + __attribute__((alias("__imp__sub_825DF048"))) PPC_WEAK_FUNC(sub_825DF048); PPC_FUNC_IMPL(__imp__sub_825DF048) { PPC_FUNC_PROLOGUE(); @@ -8845,7 +8995,7 @@ PPC_FUNC_IMPL(__imp__sub_825E29A8) { ctx.r24.u64 = PPC_LOAD_U32(ctx.r30.u32 + 472); // bl 0x82250578 ctx.lr = 0x825E2B08; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r24,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r24.u32); // stw r27,88(r1) @@ -17927,7 +18077,7 @@ PPC_FUNC_IMPL(__imp__sub_825E67B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825E6804; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r30) ctx.r10.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // li r11,0 @@ -19829,7 +19979,7 @@ PPC_FUNC_IMPL(__imp__sub_825E71B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825E754C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r27.u32); // stw r19,92(r1) @@ -20812,7 +20962,7 @@ PPC_FUNC_IMPL(__imp__sub_825E7860) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x825E7BE8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // cmpwi cr6,r25,0 ctx.cr6.compare(ctx.r25.s32, 0, ctx.xer); // beq cr6,0x825e7c10 @@ -20902,7 +21052,7 @@ PPC_FUNC_IMPL(__imp__sub_825E7860) { ctx.r3.s64 = ctx.r1.s64 + 100; // bl 0x82250578 ctx.lr = 0x825E7C88; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // cmplwi cr6,r31,0 ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); // beq cr6,0x825e7cc0 @@ -21072,7 +21222,7 @@ PPC_FUNC_IMPL(__imp__sub_825E7860) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x825E7DC4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r20,12(r27) PPC_STORE_U32(ctx.r27.u32 + 12, ctx.r20.u32); // stw r27,116(r1) @@ -21271,7 +21421,7 @@ PPC_FUNC_IMPL(__imp__sub_825E7EA0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825E7F24; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,84(r1) @@ -23866,7 +24016,7 @@ PPC_FUNC_IMPL(__imp__sub_825E8F08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825E9000; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r10,r11,28528 @@ -44080,7 +44230,7 @@ PPC_FUNC_IMPL(__imp__sub_825F18B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825F1994; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r30,r31,2164 ctx.r30.s64 = ctx.r31.s64 + 2164; loc_825F1998: @@ -46256,7 +46406,7 @@ PPC_FUNC_IMPL(__imp__sub_825F2898) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825F28B4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // addi r10,r11,28528 @@ -54071,7 +54221,7 @@ PPC_FUNC_IMPL(__imp__sub_825F5DB0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x825F5DE0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -54157,7 +54307,7 @@ PPC_FUNC_IMPL(__imp__sub_825F5DB0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x825F5E74; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // addi r3,r1,88 @@ -57688,7 +57838,7 @@ PPC_FUNC_IMPL(__imp__sub_825F7530) { PPC_STORE_U32(ctx.r1.u32 + 180, temp.u32); // bl 0x82250578 ctx.lr = 0x825F76CC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r6,0(r31) ctx.r6.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r7,1 @@ -78561,507 +78711,3 @@ PPC_FUNC_IMPL(__imp__sub_826004F8) { return; } -__attribute__((alias("__imp__sub_82600570"))) PPC_WEAK_FUNC(sub_82600570); -PPC_FUNC_IMPL(__imp__sub_82600570) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1628 - ctx.lr = 0x82600578; - __savegprlr_28(ctx, base); - // stwu r1,-384(r1) - ea = -384 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r28,r3 - ctx.r28.u64 = ctx.r3.u64; - // lwz r11,572(r28) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 572); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x826006c0 - if (ctx.cr6.eq) goto loc_826006C0; - // lis r11,-31780 - ctx.r11.s64 = -2082734080; - // addi r30,r11,-11408 - ctx.r30.s64 = ctx.r11.s64 + -11408; - // addi r11,r30,20600 - ctx.r11.s64 = ctx.r30.s64 + 20600; - // addi r9,r11,72 - ctx.r9.s64 = ctx.r11.s64 + 72; - // lwz r11,21096(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 21096); - // mulli r10,r11,248 - ctx.r10.s64 = static_cast(ctx.r11.u64 * static_cast(248)); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x826005b4 - if (ctx.cr6.eq) goto loc_826005B4; - // cmpwi cr6,r11,1 - ctx.cr6.compare(ctx.r11.s32, 1, ctx.xer); - // bne cr6,0x826005e8 - if (!ctx.cr6.eq) goto loc_826005E8; -loc_826005B4: - // lwzx r8,r10,r9 - ctx.r8.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r9.u32); - // cmpwi cr6,r8,0 - ctx.cr6.compare(ctx.r8.s32, 0, ctx.xer); - // ble cr6,0x826005c8 - if (!ctx.cr6.gt) goto loc_826005C8; - // addi r8,r8,-1 - ctx.r8.s64 = ctx.r8.s64 + -1; - // stwx r8,r10,r9 - PPC_STORE_U32(ctx.r10.u32 + ctx.r9.u32, ctx.r8.u32); -loc_826005C8: - // addi r9,r30,20600 - ctx.r9.s64 = ctx.r30.s64 + 20600; - // mulli r10,r11,248 - ctx.r10.s64 = static_cast(ctx.r11.u64 * static_cast(248)); - // addi r9,r9,244 - ctx.r9.s64 = ctx.r9.s64 + 244; - // lwzx r11,r10,r9 - ctx.r11.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r9.u32); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // ble cr6,0x826005e8 - if (!ctx.cr6.gt) goto loc_826005E8; - // addi r11,r11,-1 - ctx.r11.s64 = ctx.r11.s64 + -1; - // stwx r11,r10,r9 - PPC_STORE_U32(ctx.r10.u32 + ctx.r9.u32, ctx.r11.u32); -loc_826005E8: - // lwz r11,32(r28) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 32); - // li r4,0 - ctx.r4.s64 = 0; - // lwz r3,100(r11) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r11.u32 + 100); - // bl 0x821c9c38 - ctx.lr = 0x826005F8; - sub_821C9C38(ctx, base); - // lis r10,-32235 - ctx.r10.s64 = -2112552960; - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // addi r3,r10,-24128 - ctx.r3.s64 = ctx.r10.s64 + -24128; - // bl 0x822214b0 - ctx.lr = 0x82600608; - sub_822214B0(ctx, base); - // li r3,101 - ctx.r3.s64 = 101; - // bl 0x8223a0d0 - ctx.lr = 0x82600610; - sub_8223A0D0(ctx, base); - // lis r11,-31790 - ctx.r11.s64 = -2083389440; - // cntlzw r9,r3 - ctx.r9.u64 = ctx.r3.u32 == 0 ? 32 : __builtin_clz(ctx.r3.u32); - // addi r31,r11,28528 - ctx.r31.s64 = ctx.r11.s64 + 28528; - // lis r8,24937 - ctx.r8.s64 = 1634271232; - // rlwinm r7,r9,27,31,31 - ctx.r7.u64 = __builtin_rotateleft64(ctx.r9.u32 | (ctx.r9.u64 << 32), 27) & 0x1; - // ori r6,r8,25695 - ctx.r6.u64 = ctx.r8.u64 | 25695; - // li r11,3 - ctx.r11.s64 = 3; - // lwz r10,0(r31) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); - // xori r29,r7,1 - ctx.r29.u64 = ctx.r7.u64 ^ 1; - // stw r11,3180(r31) - PPC_STORE_U32(ctx.r31.u32 + 3180, ctx.r11.u32); - // cmplw cr6,r10,r6 - ctx.cr6.compare(ctx.r10.u32, ctx.r6.u32, ctx.xer); - // bne cr6,0x82600648 - if (!ctx.cr6.eq) goto loc_82600648; - // li r11,0 - ctx.r11.s64 = 0; - // stb r11,0(r31) - PPC_STORE_U8(ctx.r31.u32 + 0, ctx.r11.u8); -loc_82600648: - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // li r6,127 - ctx.r6.s64 = 127; - // addi r5,r1,80 - ctx.r5.s64 = ctx.r1.s64 + 80; - // li r4,128 - ctx.r4.s64 = 128; - // bl 0x82ade340 - ctx.lr = 0x8260065C; - sub_82ADE340(ctx, base); - // li r11,0 - ctx.r11.s64 = 0; - // stw r11,0(r30) - PPC_STORE_U32(ctx.r30.u32 + 0, ctx.r11.u32); - // lwz r11,12(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // beq cr6,0x8260067c - if (ctx.cr6.eq) goto loc_8260067C; - // rotlwi r11,r11,0 - ctx.r11.u64 = __builtin_rotateleft32(ctx.r11.u32, 0); - // mtctr r11 - ctx.ctr.u64 = ctx.r11.u64; - // bctrl - ctx.lr = 0x8260067C; - PPC_CALL_INDIRECT_FUNC(ctx.ctr.u32); -loc_8260067C: - // li r11,0 - ctx.r11.s64 = 0; - // stw r29,2676(r31) - PPC_STORE_U32(ctx.r31.u32 + 2676, ctx.r29.u32); - // li r10,0 - ctx.r10.s64 = 0; - // li r9,0 - ctx.r9.s64 = 0; - // stw r11,2664(r31) - PPC_STORE_U32(ctx.r31.u32 + 2664, ctx.r11.u32); - // stw r10,2668(r31) - PPC_STORE_U32(ctx.r31.u32 + 2668, ctx.r10.u32); - // li r11,1 - ctx.r11.s64 = 1; - // stw r9,2672(r31) - PPC_STORE_U32(ctx.r31.u32 + 2672, ctx.r9.u32); - // li r10,1 - ctx.r10.s64 = 1; - // li r9,1 - ctx.r9.s64 = 1; - // stw r11,2680(r31) - PPC_STORE_U32(ctx.r31.u32 + 2680, ctx.r11.u32); - // stw r10,2688(r31) - PPC_STORE_U32(ctx.r31.u32 + 2688, ctx.r10.u32); - // mr r3,r28 - ctx.r3.u64 = ctx.r28.u64; - // stw r9,2684(r31) - PPC_STORE_U32(ctx.r31.u32 + 2684, ctx.r9.u32); - // bl 0x825e2128 - ctx.lr = 0x826006B8; - sub_825E2128(ctx, base); - // addi r1,r1,384 - ctx.r1.s64 = ctx.r1.s64 + 384; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -loc_826006C0: - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // addi r4,r1,208 - ctx.r4.s64 = ctx.r1.s64 + 208; - // addi r3,r11,11012 - ctx.r3.s64 = ctx.r11.s64 + 11012; - // bl 0x822214b0 - ctx.lr = 0x826006D0; - sub_822214B0(ctx, base); - // lis r11,-31790 - ctx.r11.s64 = -2083389440; - // addi r31,r11,28528 - ctx.r31.s64 = ctx.r11.s64 + 28528; - // addi r11,r31,144 - ctx.r11.s64 = ctx.r31.s64 + 144; -loc_826006DC: - // lwz r10,16(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 16); - // cmpwi cr6,r10,1 - ctx.cr6.compare(ctx.r10.s32, 1, ctx.xer); - // beq cr6,0x82600800 - if (ctx.cr6.eq) goto loc_82600800; - // addi r11,r11,504 - ctx.r11.s64 = ctx.r11.s64 + 504; - // addi r10,r31,2664 - ctx.r10.s64 = ctx.r31.s64 + 2664; - // cmpw cr6,r11,r10 - ctx.cr6.compare(ctx.r11.s32, ctx.r10.s32, ctx.xer); - // blt cr6,0x826006dc - if (ctx.cr6.lt) goto loc_826006DC; - // li r3,0 - ctx.r3.s64 = 0; -loc_826006FC: - // li r4,0 - ctx.r4.s64 = 0; - // bl 0x821c9c38 - ctx.lr = 0x82600704; - sub_821C9C38(ctx, base); - // li r3,101 - ctx.r3.s64 = 101; - // bl 0x8223a0d0 - ctx.lr = 0x8260070C; - sub_8223A0D0(ctx, base); - // cntlzw r11,r3 - ctx.r11.u64 = ctx.r3.u32 == 0 ? 32 : __builtin_clz(ctx.r3.u32); - // lis r9,24937 - ctx.r9.s64 = 1634271232; - // lwz r10,0(r31) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); - // rlwinm r8,r11,27,31,31 - ctx.r8.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 27) & 0x1; - // ori r7,r9,25695 - ctx.r7.u64 = ctx.r9.u64 | 25695; - // li r11,3 - ctx.r11.s64 = 3; - // xori r29,r8,1 - ctx.r29.u64 = ctx.r8.u64 ^ 1; - // stw r11,3180(r31) - PPC_STORE_U32(ctx.r31.u32 + 3180, ctx.r11.u32); - // cmplw cr6,r10,r7 - ctx.cr6.compare(ctx.r10.u32, ctx.r7.u32, ctx.xer); - // bne cr6,0x8260073c - if (!ctx.cr6.eq) goto loc_8260073C; - // li r11,0 - ctx.r11.s64 = 0; - // stb r11,0(r31) - PPC_STORE_U8(ctx.r31.u32 + 0, ctx.r11.u8); -loc_8260073C: - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // li r6,127 - ctx.r6.s64 = 127; - // addi r5,r1,208 - ctx.r5.s64 = ctx.r1.s64 + 208; - // li r4,128 - ctx.r4.s64 = 128; - // bl 0x82ade340 - ctx.lr = 0x82600750; - sub_82ADE340(ctx, base); - // lis r10,-31780 - ctx.r10.s64 = -2082734080; - // li r11,0 - ctx.r11.s64 = 0; - // addi r30,r10,-11408 - ctx.r30.s64 = ctx.r10.s64 + -11408; - // stw r11,-11408(r10) - PPC_STORE_U32(ctx.r10.u32 + -11408, ctx.r11.u32); - // lwz r11,12(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // beq cr6,0x82600778 - if (ctx.cr6.eq) goto loc_82600778; - // rotlwi r11,r11,0 - ctx.r11.u64 = __builtin_rotateleft32(ctx.r11.u32, 0); - // mtctr r11 - ctx.ctr.u64 = ctx.r11.u64; - // bctrl - ctx.lr = 0x82600778; - PPC_CALL_INDIRECT_FUNC(ctx.ctr.u32); -loc_82600778: - // li r11,0 - ctx.r11.s64 = 0; - // stw r29,2676(r31) - PPC_STORE_U32(ctx.r31.u32 + 2676, ctx.r29.u32); - // li r10,0 - ctx.r10.s64 = 0; - // li r9,0 - ctx.r9.s64 = 0; - // stw r11,2664(r31) - PPC_STORE_U32(ctx.r31.u32 + 2664, ctx.r11.u32); - // stw r10,2668(r31) - PPC_STORE_U32(ctx.r31.u32 + 2668, ctx.r10.u32); - // li r11,1 - ctx.r11.s64 = 1; - // stw r9,2672(r31) - PPC_STORE_U32(ctx.r31.u32 + 2672, ctx.r9.u32); - // li r10,1 - ctx.r10.s64 = 1; - // li r9,1 - ctx.r9.s64 = 1; - // stw r11,2680(r31) - PPC_STORE_U32(ctx.r31.u32 + 2680, ctx.r11.u32); - // stw r10,2688(r31) - PPC_STORE_U32(ctx.r31.u32 + 2688, ctx.r10.u32); - // mr r3,r28 - ctx.r3.u64 = ctx.r28.u64; - // stw r9,2684(r31) - PPC_STORE_U32(ctx.r31.u32 + 2684, ctx.r9.u32); - // bl 0x825e2128 - ctx.lr = 0x826007B4; - sub_825E2128(ctx, base); - // addi r11,r30,20600 - ctx.r11.s64 = ctx.r30.s64 + 20600; - // addi r9,r11,72 - ctx.r9.s64 = ctx.r11.s64 + 72; - // lwz r11,21096(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 21096); - // mulli r10,r11,248 - ctx.r10.s64 = static_cast(ctx.r11.u64 * static_cast(248)); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x826007d4 - if (ctx.cr6.eq) goto loc_826007D4; - // cmpwi cr6,r11,1 - ctx.cr6.compare(ctx.r11.s32, 1, ctx.xer); - // bne cr6,0x826007f8 - if (!ctx.cr6.eq) goto loc_826007F8; -loc_826007D4: - // addi r8,r30,20600 - ctx.r8.s64 = ctx.r30.s64 + 20600; - // lwzx r7,r10,r9 - ctx.r7.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r9.u32); - // mulli r11,r11,248 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(248)); - // addi r8,r8,244 - ctx.r8.s64 = ctx.r8.s64 + 244; - // addi r7,r7,1 - ctx.r7.s64 = ctx.r7.s64 + 1; - // stwx r7,r10,r9 - PPC_STORE_U32(ctx.r10.u32 + ctx.r9.u32, ctx.r7.u32); - // lwzx r10,r11,r8 - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r8.u32); - // addi r6,r10,1 - ctx.r6.s64 = ctx.r10.s64 + 1; - // stwx r6,r11,r8 - PPC_STORE_U32(ctx.r11.u32 + ctx.r8.u32, ctx.r6.u32); -loc_826007F8: - // addi r1,r1,384 - ctx.r1.s64 = ctx.r1.s64 + 384; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -loc_82600800: - // lwz r3,4(r11) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r11.u32 + 4); - // b 0x826006fc - goto loc_826006FC; -} - -__attribute__((alias("__imp__sub_82600808"))) PPC_WEAK_FUNC(sub_82600808); -PPC_FUNC_IMPL(__imp__sub_82600808) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // std r31,-16(r1) - PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); - // stwu r1,-96(r1) - ea = -96 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // li r4,1 - ctx.r4.s64 = 1; - // lwz r3,576(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 576); - // bl 0x82368730 - ctx.lr = 0x82600828; - sub_82368730(ctx, base); - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x825e1fc8 - ctx.lr = 0x82600830; - sub_825E1FC8(ctx, base); - // addi r1,r1,96 - ctx.r1.s64 = ctx.r1.s64 + 96; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // ld r31,-16(r1) - ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); - // blr - return; -} - -__attribute__((alias("__imp__sub_82600848"))) PPC_WEAK_FUNC(sub_82600848); -PPC_FUNC_IMPL(__imp__sub_82600848) { - PPC_FUNC_PROLOGUE(); - // lwz r11,572(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 572); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beqlr cr6 - if (ctx.cr6.eq) return; - // b 0x82293290 - sub_82293290(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_82600858"))) PPC_WEAK_FUNC(sub_82600858); -PPC_FUNC_IMPL(__imp__sub_82600858) { - PPC_FUNC_PROLOGUE(); - // blr - return; -} - -__attribute__((alias("__imp__sub_82600860"))) PPC_WEAK_FUNC(sub_82600860); -PPC_FUNC_IMPL(__imp__sub_82600860) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1628 - ctx.lr = 0x82600868; - __savegprlr_28(ctx, base); - // stwu r1,-128(r1) - ea = -128 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r30,r4 - ctx.r30.u64 = ctx.r4.u64; - // li r29,0 - ctx.r29.s64 = 0; - // mr r28,r3 - ctx.r28.u64 = ctx.r3.u64; - // li r4,0 - ctx.r4.s64 = 0; - // li r3,536 - ctx.r3.s64 = 536; - // stw r29,0(r30) - PPC_STORE_U32(ctx.r30.u32 + 0, ctx.r29.u32); - // bl 0x82223cc0 - ctx.lr = 0x82600888; - sub_82223CC0(ctx, base); - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // bl 0x82223fb8 - ctx.lr = 0x82600890; - sub_82223FB8(ctx, base); - // cmplwi cr6,r31,0 - ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); - // beq cr6,0x826008c8 - if (ctx.cr6.eq) goto loc_826008C8; - // li r4,76 - ctx.r4.s64 = 76; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x825c52a0 - ctx.lr = 0x826008A4; - sub_825C52A0(ctx, base); - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // li r3,0 - ctx.r3.s64 = 0; - // addi r10,r11,11272 - ctx.r10.s64 = ctx.r11.s64 + 11272; - // stw r10,0(r31) - PPC_STORE_U32(ctx.r31.u32 + 0, ctx.r10.u32); - // stw r29,520(r31) - PPC_STORE_U32(ctx.r31.u32 + 520, ctx.r29.u32); - // stw r28,4(r31) - PPC_STORE_U32(ctx.r31.u32 + 4, ctx.r28.u32); - // stw r31,0(r30) - PPC_STORE_U32(ctx.r30.u32 + 0, ctx.r31.u32); - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -loc_826008C8: - // lis r3,-32761 - ctx.r3.s64 = -2147024896; - // ori r3,r3,14 - ctx.r3.u64 = ctx.r3.u64 | 14; - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -} - diff --git a/generated/retip_recomp.34.cpp b/generated/retip_recomp.34.cpp index a7ba061..e08f128 100644 --- a/generated/retip_recomp.34.cpp +++ b/generated/retip_recomp.34.cpp @@ -1,5 +1,509 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_82600570"))) PPC_WEAK_FUNC(sub_82600570); +PPC_FUNC_IMPL(__imp__sub_82600570) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1628 + ctx.lr = 0x82600578; + __savegprlr_28(ctx, base); + // stwu r1,-384(r1) + ea = -384 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r28,r3 + ctx.r28.u64 = ctx.r3.u64; + // lwz r11,572(r28) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 572); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x826006c0 + if (ctx.cr6.eq) goto loc_826006C0; + // lis r11,-31780 + ctx.r11.s64 = -2082734080; + // addi r30,r11,-11408 + ctx.r30.s64 = ctx.r11.s64 + -11408; + // addi r11,r30,20600 + ctx.r11.s64 = ctx.r30.s64 + 20600; + // addi r9,r11,72 + ctx.r9.s64 = ctx.r11.s64 + 72; + // lwz r11,21096(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 21096); + // mulli r10,r11,248 + ctx.r10.s64 = static_cast(ctx.r11.u64 * static_cast(248)); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x826005b4 + if (ctx.cr6.eq) goto loc_826005B4; + // cmpwi cr6,r11,1 + ctx.cr6.compare(ctx.r11.s32, 1, ctx.xer); + // bne cr6,0x826005e8 + if (!ctx.cr6.eq) goto loc_826005E8; +loc_826005B4: + // lwzx r8,r10,r9 + ctx.r8.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r9.u32); + // cmpwi cr6,r8,0 + ctx.cr6.compare(ctx.r8.s32, 0, ctx.xer); + // ble cr6,0x826005c8 + if (!ctx.cr6.gt) goto loc_826005C8; + // addi r8,r8,-1 + ctx.r8.s64 = ctx.r8.s64 + -1; + // stwx r8,r10,r9 + PPC_STORE_U32(ctx.r10.u32 + ctx.r9.u32, ctx.r8.u32); +loc_826005C8: + // addi r9,r30,20600 + ctx.r9.s64 = ctx.r30.s64 + 20600; + // mulli r10,r11,248 + ctx.r10.s64 = static_cast(ctx.r11.u64 * static_cast(248)); + // addi r9,r9,244 + ctx.r9.s64 = ctx.r9.s64 + 244; + // lwzx r11,r10,r9 + ctx.r11.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r9.u32); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // ble cr6,0x826005e8 + if (!ctx.cr6.gt) goto loc_826005E8; + // addi r11,r11,-1 + ctx.r11.s64 = ctx.r11.s64 + -1; + // stwx r11,r10,r9 + PPC_STORE_U32(ctx.r10.u32 + ctx.r9.u32, ctx.r11.u32); +loc_826005E8: + // lwz r11,32(r28) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 32); + // li r4,0 + ctx.r4.s64 = 0; + // lwz r3,100(r11) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r11.u32 + 100); + // bl 0x821c9c38 + ctx.lr = 0x826005F8; + sub_821C9C38(ctx, base); + // lis r10,-32235 + ctx.r10.s64 = -2112552960; + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // addi r3,r10,-24128 + ctx.r3.s64 = ctx.r10.s64 + -24128; + // bl 0x822214b0 + ctx.lr = 0x82600608; + sub_822214B0(ctx, base); + // li r3,101 + ctx.r3.s64 = 101; + // bl 0x8223a0d0 + ctx.lr = 0x82600610; + sub_8223A0D0(ctx, base); + // lis r11,-31790 + ctx.r11.s64 = -2083389440; + // cntlzw r9,r3 + ctx.r9.u64 = ctx.r3.u32 == 0 ? 32 : __builtin_clz(ctx.r3.u32); + // addi r31,r11,28528 + ctx.r31.s64 = ctx.r11.s64 + 28528; + // lis r8,24937 + ctx.r8.s64 = 1634271232; + // rlwinm r7,r9,27,31,31 + ctx.r7.u64 = __builtin_rotateleft64(ctx.r9.u32 | (ctx.r9.u64 << 32), 27) & 0x1; + // ori r6,r8,25695 + ctx.r6.u64 = ctx.r8.u64 | 25695; + // li r11,3 + ctx.r11.s64 = 3; + // lwz r10,0(r31) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); + // xori r29,r7,1 + ctx.r29.u64 = ctx.r7.u64 ^ 1; + // stw r11,3180(r31) + PPC_STORE_U32(ctx.r31.u32 + 3180, ctx.r11.u32); + // cmplw cr6,r10,r6 + ctx.cr6.compare(ctx.r10.u32, ctx.r6.u32, ctx.xer); + // bne cr6,0x82600648 + if (!ctx.cr6.eq) goto loc_82600648; + // li r11,0 + ctx.r11.s64 = 0; + // stb r11,0(r31) + PPC_STORE_U8(ctx.r31.u32 + 0, ctx.r11.u8); +loc_82600648: + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // li r6,127 + ctx.r6.s64 = 127; + // addi r5,r1,80 + ctx.r5.s64 = ctx.r1.s64 + 80; + // li r4,128 + ctx.r4.s64 = 128; + // bl 0x82ade340 + ctx.lr = 0x8260065C; + sub_82ADE340(ctx, base); + // li r11,0 + ctx.r11.s64 = 0; + // stw r11,0(r30) + PPC_STORE_U32(ctx.r30.u32 + 0, ctx.r11.u32); + // lwz r11,12(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // beq cr6,0x8260067c + if (ctx.cr6.eq) goto loc_8260067C; + // rotlwi r11,r11,0 + ctx.r11.u64 = __builtin_rotateleft32(ctx.r11.u32, 0); + // mtctr r11 + ctx.ctr.u64 = ctx.r11.u64; + // bctrl + ctx.lr = 0x8260067C; + PPC_CALL_INDIRECT_FUNC(ctx.ctr.u32); +loc_8260067C: + // li r11,0 + ctx.r11.s64 = 0; + // stw r29,2676(r31) + PPC_STORE_U32(ctx.r31.u32 + 2676, ctx.r29.u32); + // li r10,0 + ctx.r10.s64 = 0; + // li r9,0 + ctx.r9.s64 = 0; + // stw r11,2664(r31) + PPC_STORE_U32(ctx.r31.u32 + 2664, ctx.r11.u32); + // stw r10,2668(r31) + PPC_STORE_U32(ctx.r31.u32 + 2668, ctx.r10.u32); + // li r11,1 + ctx.r11.s64 = 1; + // stw r9,2672(r31) + PPC_STORE_U32(ctx.r31.u32 + 2672, ctx.r9.u32); + // li r10,1 + ctx.r10.s64 = 1; + // li r9,1 + ctx.r9.s64 = 1; + // stw r11,2680(r31) + PPC_STORE_U32(ctx.r31.u32 + 2680, ctx.r11.u32); + // stw r10,2688(r31) + PPC_STORE_U32(ctx.r31.u32 + 2688, ctx.r10.u32); + // mr r3,r28 + ctx.r3.u64 = ctx.r28.u64; + // stw r9,2684(r31) + PPC_STORE_U32(ctx.r31.u32 + 2684, ctx.r9.u32); + // bl 0x825e2128 + ctx.lr = 0x826006B8; + sub_825E2128(ctx, base); + // addi r1,r1,384 + ctx.r1.s64 = ctx.r1.s64 + 384; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +loc_826006C0: + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // addi r4,r1,208 + ctx.r4.s64 = ctx.r1.s64 + 208; + // addi r3,r11,11012 + ctx.r3.s64 = ctx.r11.s64 + 11012; + // bl 0x822214b0 + ctx.lr = 0x826006D0; + sub_822214B0(ctx, base); + // lis r11,-31790 + ctx.r11.s64 = -2083389440; + // addi r31,r11,28528 + ctx.r31.s64 = ctx.r11.s64 + 28528; + // addi r11,r31,144 + ctx.r11.s64 = ctx.r31.s64 + 144; +loc_826006DC: + // lwz r10,16(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 16); + // cmpwi cr6,r10,1 + ctx.cr6.compare(ctx.r10.s32, 1, ctx.xer); + // beq cr6,0x82600800 + if (ctx.cr6.eq) goto loc_82600800; + // addi r11,r11,504 + ctx.r11.s64 = ctx.r11.s64 + 504; + // addi r10,r31,2664 + ctx.r10.s64 = ctx.r31.s64 + 2664; + // cmpw cr6,r11,r10 + ctx.cr6.compare(ctx.r11.s32, ctx.r10.s32, ctx.xer); + // blt cr6,0x826006dc + if (ctx.cr6.lt) goto loc_826006DC; + // li r3,0 + ctx.r3.s64 = 0; +loc_826006FC: + // li r4,0 + ctx.r4.s64 = 0; + // bl 0x821c9c38 + ctx.lr = 0x82600704; + sub_821C9C38(ctx, base); + // li r3,101 + ctx.r3.s64 = 101; + // bl 0x8223a0d0 + ctx.lr = 0x8260070C; + sub_8223A0D0(ctx, base); + // cntlzw r11,r3 + ctx.r11.u64 = ctx.r3.u32 == 0 ? 32 : __builtin_clz(ctx.r3.u32); + // lis r9,24937 + ctx.r9.s64 = 1634271232; + // lwz r10,0(r31) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); + // rlwinm r8,r11,27,31,31 + ctx.r8.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 27) & 0x1; + // ori r7,r9,25695 + ctx.r7.u64 = ctx.r9.u64 | 25695; + // li r11,3 + ctx.r11.s64 = 3; + // xori r29,r8,1 + ctx.r29.u64 = ctx.r8.u64 ^ 1; + // stw r11,3180(r31) + PPC_STORE_U32(ctx.r31.u32 + 3180, ctx.r11.u32); + // cmplw cr6,r10,r7 + ctx.cr6.compare(ctx.r10.u32, ctx.r7.u32, ctx.xer); + // bne cr6,0x8260073c + if (!ctx.cr6.eq) goto loc_8260073C; + // li r11,0 + ctx.r11.s64 = 0; + // stb r11,0(r31) + PPC_STORE_U8(ctx.r31.u32 + 0, ctx.r11.u8); +loc_8260073C: + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // li r6,127 + ctx.r6.s64 = 127; + // addi r5,r1,208 + ctx.r5.s64 = ctx.r1.s64 + 208; + // li r4,128 + ctx.r4.s64 = 128; + // bl 0x82ade340 + ctx.lr = 0x82600750; + sub_82ADE340(ctx, base); + // lis r10,-31780 + ctx.r10.s64 = -2082734080; + // li r11,0 + ctx.r11.s64 = 0; + // addi r30,r10,-11408 + ctx.r30.s64 = ctx.r10.s64 + -11408; + // stw r11,-11408(r10) + PPC_STORE_U32(ctx.r10.u32 + -11408, ctx.r11.u32); + // lwz r11,12(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // beq cr6,0x82600778 + if (ctx.cr6.eq) goto loc_82600778; + // rotlwi r11,r11,0 + ctx.r11.u64 = __builtin_rotateleft32(ctx.r11.u32, 0); + // mtctr r11 + ctx.ctr.u64 = ctx.r11.u64; + // bctrl + ctx.lr = 0x82600778; + PPC_CALL_INDIRECT_FUNC(ctx.ctr.u32); +loc_82600778: + // li r11,0 + ctx.r11.s64 = 0; + // stw r29,2676(r31) + PPC_STORE_U32(ctx.r31.u32 + 2676, ctx.r29.u32); + // li r10,0 + ctx.r10.s64 = 0; + // li r9,0 + ctx.r9.s64 = 0; + // stw r11,2664(r31) + PPC_STORE_U32(ctx.r31.u32 + 2664, ctx.r11.u32); + // stw r10,2668(r31) + PPC_STORE_U32(ctx.r31.u32 + 2668, ctx.r10.u32); + // li r11,1 + ctx.r11.s64 = 1; + // stw r9,2672(r31) + PPC_STORE_U32(ctx.r31.u32 + 2672, ctx.r9.u32); + // li r10,1 + ctx.r10.s64 = 1; + // li r9,1 + ctx.r9.s64 = 1; + // stw r11,2680(r31) + PPC_STORE_U32(ctx.r31.u32 + 2680, ctx.r11.u32); + // stw r10,2688(r31) + PPC_STORE_U32(ctx.r31.u32 + 2688, ctx.r10.u32); + // mr r3,r28 + ctx.r3.u64 = ctx.r28.u64; + // stw r9,2684(r31) + PPC_STORE_U32(ctx.r31.u32 + 2684, ctx.r9.u32); + // bl 0x825e2128 + ctx.lr = 0x826007B4; + sub_825E2128(ctx, base); + // addi r11,r30,20600 + ctx.r11.s64 = ctx.r30.s64 + 20600; + // addi r9,r11,72 + ctx.r9.s64 = ctx.r11.s64 + 72; + // lwz r11,21096(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 21096); + // mulli r10,r11,248 + ctx.r10.s64 = static_cast(ctx.r11.u64 * static_cast(248)); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x826007d4 + if (ctx.cr6.eq) goto loc_826007D4; + // cmpwi cr6,r11,1 + ctx.cr6.compare(ctx.r11.s32, 1, ctx.xer); + // bne cr6,0x826007f8 + if (!ctx.cr6.eq) goto loc_826007F8; +loc_826007D4: + // addi r8,r30,20600 + ctx.r8.s64 = ctx.r30.s64 + 20600; + // lwzx r7,r10,r9 + ctx.r7.u64 = PPC_LOAD_U32(ctx.r10.u32 + ctx.r9.u32); + // mulli r11,r11,248 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(248)); + // addi r8,r8,244 + ctx.r8.s64 = ctx.r8.s64 + 244; + // addi r7,r7,1 + ctx.r7.s64 = ctx.r7.s64 + 1; + // stwx r7,r10,r9 + PPC_STORE_U32(ctx.r10.u32 + ctx.r9.u32, ctx.r7.u32); + // lwzx r10,r11,r8 + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r8.u32); + // addi r6,r10,1 + ctx.r6.s64 = ctx.r10.s64 + 1; + // stwx r6,r11,r8 + PPC_STORE_U32(ctx.r11.u32 + ctx.r8.u32, ctx.r6.u32); +loc_826007F8: + // addi r1,r1,384 + ctx.r1.s64 = ctx.r1.s64 + 384; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +loc_82600800: + // lwz r3,4(r11) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r11.u32 + 4); + // b 0x826006fc + goto loc_826006FC; +} + +__attribute__((alias("__imp__sub_82600808"))) PPC_WEAK_FUNC(sub_82600808); +PPC_FUNC_IMPL(__imp__sub_82600808) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // std r31,-16(r1) + PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); + // stwu r1,-96(r1) + ea = -96 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // li r4,1 + ctx.r4.s64 = 1; + // lwz r3,576(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 576); + // bl 0x82368730 + ctx.lr = 0x82600828; + sub_82368730(ctx, base); + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x825e1fc8 + ctx.lr = 0x82600830; + sub_825E1FC8(ctx, base); + // addi r1,r1,96 + ctx.r1.s64 = ctx.r1.s64 + 96; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // ld r31,-16(r1) + ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); + // blr + return; +} + +__attribute__((alias("__imp__sub_82600848"))) PPC_WEAK_FUNC(sub_82600848); +PPC_FUNC_IMPL(__imp__sub_82600848) { + PPC_FUNC_PROLOGUE(); + // lwz r11,572(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 572); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beqlr cr6 + if (ctx.cr6.eq) return; + // b 0x82293290 + sub_82293290(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_82600858"))) PPC_WEAK_FUNC(sub_82600858); +PPC_FUNC_IMPL(__imp__sub_82600858) { + PPC_FUNC_PROLOGUE(); + // blr + return; +} + +__attribute__((alias("__imp__sub_82600860"))) PPC_WEAK_FUNC(sub_82600860); +PPC_FUNC_IMPL(__imp__sub_82600860) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1628 + ctx.lr = 0x82600868; + __savegprlr_28(ctx, base); + // stwu r1,-128(r1) + ea = -128 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r30,r4 + ctx.r30.u64 = ctx.r4.u64; + // li r29,0 + ctx.r29.s64 = 0; + // mr r28,r3 + ctx.r28.u64 = ctx.r3.u64; + // li r4,0 + ctx.r4.s64 = 0; + // li r3,536 + ctx.r3.s64 = 536; + // stw r29,0(r30) + PPC_STORE_U32(ctx.r30.u32 + 0, ctx.r29.u32); + // bl 0x82223cc0 + ctx.lr = 0x82600888; + sub_82223CC0(ctx, base); + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // bl 0x82223fb8 + ctx.lr = 0x82600890; + sub_82223FB8(ctx, base); + // cmplwi cr6,r31,0 + ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); + // beq cr6,0x826008c8 + if (ctx.cr6.eq) goto loc_826008C8; + // li r4,76 + ctx.r4.s64 = 76; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x825c52a0 + ctx.lr = 0x826008A4; + sub_825C52A0(ctx, base); + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // li r3,0 + ctx.r3.s64 = 0; + // addi r10,r11,11272 + ctx.r10.s64 = ctx.r11.s64 + 11272; + // stw r10,0(r31) + PPC_STORE_U32(ctx.r31.u32 + 0, ctx.r10.u32); + // stw r29,520(r31) + PPC_STORE_U32(ctx.r31.u32 + 520, ctx.r29.u32); + // stw r28,4(r31) + PPC_STORE_U32(ctx.r31.u32 + 4, ctx.r28.u32); + // stw r31,0(r30) + PPC_STORE_U32(ctx.r30.u32 + 0, ctx.r31.u32); + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +loc_826008C8: + // lis r3,-32761 + ctx.r3.s64 = -2147024896; + // ori r3,r3,14 + ctx.r3.u64 = ctx.r3.u64 | 14; + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +} + __attribute__((alias("__imp__sub_826008D8"))) PPC_WEAK_FUNC(sub_826008D8); PPC_FUNC_IMPL(__imp__sub_826008D8) { PPC_FUNC_PROLOGUE(); @@ -15499,7 +16003,7 @@ PPC_FUNC_IMPL(__imp__sub_82606F50) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82606FDC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r28.u32); // stw r23,84(r1) @@ -18650,7 +19154,7 @@ PPC_FUNC_IMPL(__imp__sub_82608418) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82608558; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r29.u32); // stw r21,96(r1) @@ -18922,7 +19426,7 @@ PPC_FUNC_IMPL(__imp__sub_82608688) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82608738; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r28.u32); // stw r24,84(r1) @@ -19124,7 +19628,7 @@ PPC_FUNC_IMPL(__imp__sub_82608810) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82608894; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r29,4579 ctx.r11.s64 = ctx.r29.s64 + 4579; // stw r25,88(r1) @@ -24360,7 +24864,7 @@ PPC_FUNC_IMPL(__imp__sub_8260AA88) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8260AC18; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r31.u32); // addi r3,r1,88 @@ -24398,7 +24902,7 @@ PPC_FUNC_IMPL(__imp__sub_8260AA88) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x8260AC54; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,10 @@ -24438,7 +24942,7 @@ PPC_FUNC_IMPL(__imp__sub_8260AA88) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x8260ACA0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,1 @@ -24478,7 +24982,7 @@ PPC_FUNC_IMPL(__imp__sub_8260AA88) { ctx.r3.s64 = ctx.r1.s64 + 104; // bl 0x82250578 ctx.lr = 0x8260ACEC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,80(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // li r10,0 @@ -24498,7 +25002,7 @@ PPC_FUNC_IMPL(__imp__sub_8260AA88) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8260AD10; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,80(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // li r10,1 @@ -24518,7 +25022,7 @@ PPC_FUNC_IMPL(__imp__sub_8260AA88) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8260AD34; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,80(r1) ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // addi r3,r1,96 @@ -24540,7 +25044,7 @@ PPC_FUNC_IMPL(__imp__sub_8260AA88) { ctx.r3.s64 = ctx.r1.s64 + 240; // bl 0x82250578 ctx.lr = 0x8260AD58; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,80(r1) ctx.r10.u64 = PPC_LOAD_U32(ctx.r1.u32 + 80); // li r11,0 @@ -26258,7 +26762,7 @@ PPC_FUNC_IMPL(__imp__sub_8260B830) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8260B930; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // subfic r11,r26,0 ctx.xer.ca = ctx.r26.u32 <= 0; ctx.r11.u64 = static_cast(0) - ctx.r26.u64; @@ -28346,7 +28850,7 @@ PPC_FUNC_IMPL(__imp__sub_8260C640) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8260C668; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r3,r1,80 @@ -30159,7 +30663,7 @@ PPC_FUNC_IMPL(__imp__sub_8260D0D8) { ctx.r31.s64 = ctx.r28.s64 + 496; // bl 0x82250578 ctx.lr = 0x8260D280; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r1,88 ctx.r11.s64 = ctx.r1.s64 + 88; // cmplw cr6,r11,r31 @@ -35494,7 +35998,7 @@ PPC_FUNC_IMPL(__imp__sub_8260F5F0) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 164); // bl 0x82250578 ctx.lr = 0x8260F6D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,112(r1) PPC_STORE_U32(ctx.r1.u32 + 112, ctx.r30.u32); // li r11,0 @@ -37720,7 +38224,7 @@ PPC_FUNC_IMPL(__imp__sub_82610460) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x826105D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r29,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r29.u32); // addi r3,r1,80 @@ -38724,7 +39228,7 @@ PPC_FUNC_IMPL(__imp__sub_82610C58) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82610C84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31780 ctx.r11.s64 = -2082734080; // addi r10,r11,-11072 @@ -38764,7 +39268,7 @@ PPC_FUNC_IMPL(__imp__sub_82610C58) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x82610CCC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31780 ctx.r11.s64 = -2082734080; // addi r10,r11,-11072 @@ -40877,7 +41381,7 @@ PPC_FUNC_IMPL(__imp__sub_826119F8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82611AFC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,100(r1) @@ -40909,7 +41413,7 @@ PPC_FUNC_IMPL(__imp__sub_826119F8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82611B34; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // addi r3,r1,80 @@ -51933,7 +52437,7 @@ PPC_FUNC_IMPL(__imp__sub_82616618) { ctx.r31.u64 = PPC_LOAD_U32(ctx.r11.u32 + 164); // bl 0x82250578 ctx.lr = 0x8261665C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r3,r1,80 @@ -52702,7 +53206,7 @@ PPC_FUNC_IMPL(__imp__sub_82616AF0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82616B9C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // li r10,0 @@ -69445,7 +69949,7 @@ PPC_FUNC_IMPL(__imp__sub_8261DD20) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x8261DD74; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,140(r1) PPC_STORE_U32(ctx.r1.u32 + 140, ctx.r26.u32); // lwz r30,240(r30) @@ -79310,513 +79814,3 @@ PPC_FUNC_IMPL(__imp__sub_82621F90) { return; } -__attribute__((alias("__imp__sub_82621F98"))) PPC_WEAK_FUNC(sub_82621F98); -PPC_FUNC_IMPL(__imp__sub_82621F98) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1628 - ctx.lr = 0x82621FA0; - __savegprlr_28(ctx, base); - // stwu r1,-128(r1) - ea = -128 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r30,r3 - ctx.r30.u64 = ctx.r3.u64; - // mr r28,r4 - ctx.r28.u64 = ctx.r4.u64; - // bl 0x825c54f0 - ctx.lr = 0x82621FB0; - sub_825C54F0(ctx, base); - // lwz r11,0(r28) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); - // cmpwi cr6,r11,295 - ctx.cr6.compare(ctx.r11.s32, 295, ctx.xer); - // beq cr6,0x82621ff0 - if (ctx.cr6.eq) goto loc_82621FF0; - // cmpwi cr6,r11,660 - ctx.cr6.compare(ctx.r11.s32, 660, ctx.xer); - // bne cr6,0x826220d4 - if (!ctx.cr6.eq) goto loc_826220D4; - // lwz r11,4(r28) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 4); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x82621fe0 - if (ctx.cr6.eq) goto loc_82621FE0; - // li r11,0 - ctx.r11.s64 = 0; - // stw r11,12(r28) - PPC_STORE_U32(ctx.r28.u32 + 12, ctx.r11.u32); - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -loc_82621FE0: - // mr r3,r30 - ctx.r3.u64 = ctx.r30.u64; - // bl 0x82293290 - ctx.lr = 0x82621FE8; - sub_82293290(ctx, base); - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -loc_82621FF0: - // lwz r11,4(r28) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 4); - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // beq cr6,0x826220d4 - if (ctx.cr6.eq) goto loc_826220D4; - // lwz r11,0(r11) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); - // cmpwi cr6,r11,80 - ctx.cr6.compare(ctx.r11.s32, 80, ctx.xer); - // bne cr6,0x826220d4 - if (!ctx.cr6.eq) goto loc_826220D4; - // lwz r3,472(r30) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 472); - // bl 0x826b2b88 - ctx.lr = 0x82622010; - sub_826B2B88(ctx, base); - // li r29,1 - ctx.r29.s64 = 1; - // cmpwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.s32, 0, ctx.xer); - // beq cr6,0x826220d0 - if (ctx.cr6.eq) goto loc_826220D0; - // lis r11,-32060 - ctx.r11.s64 = -2101084160; - // lis r10,26214 - ctx.r10.s64 = 1717960704; - // addi r31,r11,-22864 - ctx.r31.s64 = ctx.r11.s64 + -22864; - // lis r11,-32065 - ctx.r11.s64 = -2101411840; - // ori r9,r10,26215 - ctx.r9.u64 = ctx.r10.u64 | 26215; - // addi r8,r11,11588 - ctx.r8.s64 = ctx.r11.s64 + 11588; - // lwz r11,16(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 16); - // addi r7,r11,1 - ctx.r7.s64 = ctx.r11.s64 + 1; - // mulhw r6,r7,r9 - ctx.r6.s64 = (int64_t(ctx.r7.s32) * int64_t(ctx.r9.s32)) >> 32; - // srawi r10,r6,1 - ctx.xer.ca = (ctx.r6.s32 < 0) & ((ctx.r6.u32 & 0x1) != 0); - ctx.r10.s64 = ctx.r6.s32 >> 1; - // rlwinm r9,r10,1,31,31 - ctx.r9.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 1) & 0x1; - // add r10,r10,r9 - ctx.r10.u64 = ctx.r10.u64 + ctx.r9.u64; - // rlwinm r9,r10,2,0,29 - ctx.r9.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; - // add r5,r10,r9 - ctx.r5.u64 = ctx.r10.u64 + ctx.r9.u64; - // subf r10,r5,r7 - ctx.r10.u64 = ctx.r7.u64 - ctx.r5.u64; - // cmpw cr6,r11,r10 - ctx.cr6.compare(ctx.r11.s32, ctx.r10.s32, ctx.xer); - // bne cr6,0x82622074 - if (!ctx.cr6.eq) goto loc_82622074; - // rlwinm r11,r10,2,0,29 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; - // lfs f0,20(r31) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); - ctx.f0.f64 = double(temp.f32); - // lfsx f13,r11,r8 - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r8.u32); - ctx.f13.f64 = double(temp.f32); - // fcmpu cr6,f0,f13 - ctx.cr6.compare(ctx.f0.f64, ctx.f13.f64); - // beq cr6,0x82622088 - if (ctx.cr6.eq) goto loc_82622088; -loc_82622074: - // rlwinm r11,r10,2,0,29 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; - // stw r10,16(r31) - PPC_STORE_U32(ctx.r31.u32 + 16, ctx.r10.u32); - // lfsx f0,r11,r8 - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r8.u32); - ctx.f0.f64 = double(temp.f32); - // stfs f0,20(r31) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r31.u32 + 20, temp.u32); - // bl 0x82204410 - ctx.lr = 0x82622088; - sub_82204410(ctx, base); -loc_82622088: - // lis r11,-32234 - ctx.r11.s64 = -2112487424; - // stb r29,484(r30) - PPC_STORE_U8(ctx.r30.u32 + 484, ctx.r29.u8); - // lfs f0,20(r31) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); - ctx.f0.f64 = double(temp.f32); - // addi r3,r30,476 - ctx.r3.s64 = ctx.r30.s64 + 476; - // lfs f13,-14548(r11) - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + -14548); - ctx.f13.f64 = double(temp.f32); - // fmuls f0,f0,f13 - ctx.f0.f64 = double(float(ctx.f0.f64 * ctx.f13.f64)); - // fctiwz f13,f0 - ctx.f13.s64 = std::isnan(ctx.f0.f64) ? int64_t(0x80000000U) : (ctx.f0.f64 > double(INT_MAX)) ? INT_MAX : simde_mm_cvttsd_si32(simde_mm_load_sd(&ctx.f0.f64)); - // stfd f13,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.f13.u64); - // lwz r4,84(r1) - ctx.r4.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); - // bl 0x825e0bc8 - ctx.lr = 0x826220B0; - sub_825E0BC8(ctx, base); - // li r10,0 - ctx.r10.s64 = 0; - // mr r3,r30 - ctx.r3.u64 = ctx.r30.u64; - // stb r10,484(r30) - PPC_STORE_U8(ctx.r30.u32 + 484, ctx.r10.u8); - // lwz r4,16(r31) - ctx.r4.u64 = PPC_LOAD_U32(ctx.r31.u32 + 16); - // bl 0x82622258 - ctx.lr = 0x826220C4; - sub_82622258(ctx, base); - // lis r9,-31780 - ctx.r9.s64 = -2082734080; - // mr r11,r29 - ctx.r11.u64 = ctx.r29.u64; - // stw r11,13764(r9) - PPC_STORE_U32(ctx.r9.u32 + 13764, ctx.r11.u32); -loc_826220D0: - // stw r29,12(r28) - PPC_STORE_U32(ctx.r28.u32 + 12, ctx.r29.u32); -loc_826220D4: - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_826220E0"))) PPC_WEAK_FUNC(sub_826220E0); -PPC_FUNC_IMPL(__imp__sub_826220E0) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae162c - ctx.lr = 0x826220E8; - __savegprlr_29(ctx, base); - // stwu r1,-112(r1) - ea = -112 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r30,r4 - ctx.r30.u64 = ctx.r4.u64; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // cmplwi cr6,r30,0 - ctx.cr6.compare(ctx.r30.u32, 0, ctx.xer); - // bne cr6,0x82622108 - if (!ctx.cr6.eq) goto loc_82622108; - // lwz r11,472(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 472); - // cmplw cr6,r5,r11 - ctx.cr6.compare(ctx.r5.u32, ctx.r11.u32, ctx.xer); - // beq cr6,0x82622118 - if (ctx.cr6.eq) goto loc_82622118; -loc_82622108: - // lwz r11,472(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 472); - // li r29,0 - ctx.r29.s64 = 0; - // cmplw cr6,r30,r11 - ctx.cr6.compare(ctx.r30.u32, ctx.r11.u32, ctx.xer); - // bne cr6,0x8262211c - if (!ctx.cr6.eq) goto loc_8262211C; -loc_82622118: - // li r29,1 - ctx.r29.s64 = 1; -loc_8262211C: - // li r4,0 - ctx.r4.s64 = 0; - // lwz r3,32(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 32); - // bl 0x8229a530 - ctx.lr = 0x82622128; - sub_8229A530(ctx, base); - // bl 0x825b6df8 - ctx.lr = 0x8262212C; - sub_825B6DF8(ctx, base); - // mr r5,r29 - ctx.r5.u64 = ctx.r29.u64; - // li r4,80 - ctx.r4.s64 = 80; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x825c5838 - ctx.lr = 0x8262213C; - sub_825C5838(ctx, base); - // mr r3,r30 - ctx.r3.u64 = ctx.r30.u64; - // addi r1,r1,112 - ctx.r1.s64 = ctx.r1.s64 + 112; - // b 0x82ae167c - __restgprlr_29(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_82622148"))) PPC_WEAK_FUNC(sub_82622148); -PPC_FUNC_IMPL(__imp__sub_82622148) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // std r30,-24(r1) - PPC_STORE_U64(ctx.r1.u32 + -24, ctx.r30.u64); - // std r31,-16(r1) - PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); - // stwu r1,-112(r1) - ea = -112 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r30,r3 - ctx.r30.u64 = ctx.r3.u64; - // lwz r11,476(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 476); - // cmplw cr6,r4,r11 - ctx.cr6.compare(ctx.r4.u32, ctx.r11.u32, ctx.xer); - // bne cr6,0x826221e0 - if (!ctx.cr6.eq) goto loc_826221E0; - // lbz r10,484(r30) - ctx.r10.u64 = PPC_LOAD_U8(ctx.r30.u32 + 484); - // lis r11,-32060 - ctx.r11.s64 = -2101084160; - // cmplwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); - // addi r31,r11,-22864 - ctx.r31.s64 = ctx.r11.s64 + -22864; - // bne cr6,0x826221d0 - if (!ctx.cr6.eq) goto loc_826221D0; - // lwz r11,0(r5) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); - // lis r10,-32242 - ctx.r10.s64 = -2113011712; - // lfs f13,20(r31) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); - ctx.f13.f64 = double(temp.f32); - // extsw r9,r11 - ctx.r9.s64 = ctx.r11.s32; - // addi r8,r10,25248 - ctx.r8.s64 = ctx.r10.s64 + 25248; - // std r9,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r9.u64); - // lfd f0,80(r1) - ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); - // fcfid f12,f0 - ctx.f12.f64 = double(ctx.f0.s64); - // frsp f11,f12 - ctx.f11.f64 = double(float(ctx.f12.f64)); - // lfs f0,4(r8) - temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + 4); - ctx.f0.f64 = double(temp.f32); - // fmuls f0,f11,f0 - ctx.f0.f64 = double(float(ctx.f11.f64 * ctx.f0.f64)); - // fcmpu cr6,f13,f0 - ctx.cr6.compare(ctx.f13.f64, ctx.f0.f64); - // beq cr6,0x826221c4 - if (ctx.cr6.eq) goto loc_826221C4; - // li r11,4 - ctx.r11.s64 = 4; - // stfs f0,20(r31) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r31.u32 + 20, temp.u32); - // stw r11,16(r31) - PPC_STORE_U32(ctx.r31.u32 + 16, ctx.r11.u32); - // bl 0x82204410 - ctx.lr = 0x826221C4; - sub_82204410(ctx, base); -loc_826221C4: - // lis r10,-31780 - ctx.r10.s64 = -2082734080; - // li r11,1 - ctx.r11.s64 = 1; - // stw r11,13764(r10) - PPC_STORE_U32(ctx.r10.u32 + 13764, ctx.r11.u32); -loc_826221D0: - // mr r3,r30 - ctx.r3.u64 = ctx.r30.u64; - // lwz r4,16(r31) - ctx.r4.u64 = PPC_LOAD_U32(ctx.r31.u32 + 16); - // bl 0x82622258 - ctx.lr = 0x826221DC; - sub_82622258(ctx, base); - // b 0x8262223c - goto loc_8262223C; -loc_826221E0: - // lwz r11,480(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 480); - // cmplw cr6,r4,r11 - ctx.cr6.compare(ctx.r4.u32, ctx.r11.u32, ctx.xer); - // bne cr6,0x8262223c - if (!ctx.cr6.eq) goto loc_8262223C; - // lwz r10,0(r5) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); - // lis r9,-32242 - ctx.r9.s64 = -2113011712; - // lis r11,-32060 - ctx.r11.s64 = -2101084160; - // extsw r8,r10 - ctx.r8.s64 = ctx.r10.s32; - // addi r7,r9,25248 - ctx.r7.s64 = ctx.r9.s64 + 25248; - // std r8,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r8.u64); - // addi r11,r11,-22864 - ctx.r11.s64 = ctx.r11.s64 + -22864; - // lfd f0,80(r1) - ctx.fpscr.disableFlushMode(); - ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); - // fcfid f13,f0 - ctx.f13.f64 = double(ctx.f0.s64); - // lfs f0,4(r7) - temp.u32 = PPC_LOAD_U32(ctx.r7.u32 + 4); - ctx.f0.f64 = double(temp.f32); - // frsp f12,f13 - ctx.f12.f64 = double(float(ctx.f13.f64)); - // lfs f13,24(r11) - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 24); - ctx.f13.f64 = double(temp.f32); - // fmuls f0,f12,f0 - ctx.f0.f64 = double(float(ctx.f12.f64 * ctx.f0.f64)); - // fcmpu cr6,f13,f0 - ctx.cr6.compare(ctx.f13.f64, ctx.f0.f64); - // beq cr6,0x82622230 - if (ctx.cr6.eq) goto loc_82622230; - // stfs f0,24(r11) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r11.u32 + 24, temp.u32); - // bl 0x82204410 - ctx.lr = 0x82622230; - sub_82204410(ctx, base); -loc_82622230: - // lis r10,-31780 - ctx.r10.s64 = -2082734080; - // li r11,1 - ctx.r11.s64 = 1; - // stw r11,13764(r10) - PPC_STORE_U32(ctx.r10.u32 + 13764, ctx.r11.u32); -loc_8262223C: - // li r3,0 - ctx.r3.s64 = 0; - // addi r1,r1,112 - ctx.r1.s64 = ctx.r1.s64 + 112; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // ld r30,-24(r1) - ctx.r30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); - // ld r31,-16(r1) - ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); - // blr - return; -} - -__attribute__((alias("__imp__sub_82622258"))) PPC_WEAK_FUNC(sub_82622258); -PPC_FUNC_IMPL(__imp__sub_82622258) { - PPC_FUNC_PROLOGUE(); - // cmplwi cr6,r4,4 - ctx.cr6.compare(ctx.r4.u32, 4, ctx.xer); - // bgtlr cr6 - if (ctx.cr6.gt) return; - // lis r12,-32158 - ctx.r12.s64 = -2107506688; - // addi r12,r12,8824 - ctx.r12.s64 = ctx.r12.s64 + 8824; - // rlwinm r0,r4,2,0,29 - ctx.r0.u64 = __builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 2) & 0xFFFFFFFC; - // lwzx r0,r12,r0 - ctx.r0.u64 = PPC_LOAD_U32(ctx.r12.u32 + ctx.r0.u32); - // mtctr r0 - ctx.ctr.u64 = ctx.r0.u64; - // bctr - switch (ctx.r4.u32) { - case 0: - goto loc_8262228C; - case 1: - goto loc_8262229C; - case 2: - goto loc_826222AC; - case 3: - goto loc_826222BC; - case 4: - goto loc_826222CC; - default: - __builtin_trap(); // Switch case out of range - } -loc_8262228C: - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // addi r4,r3,472 - ctx.r4.s64 = ctx.r3.s64 + 472; - // addi r5,r11,27532 - ctx.r5.s64 = ctx.r11.s64 + 27532; - // b 0x825c5ca0 - sub_825C5CA0(ctx, base); - return; -loc_8262229C: - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // addi r4,r3,472 - ctx.r4.s64 = ctx.r3.s64 + 472; - // addi r5,r11,27536 - ctx.r5.s64 = ctx.r11.s64 + 27536; - // b 0x825c5ca0 - sub_825C5CA0(ctx, base); - return; -loc_826222AC: - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // addi r4,r3,472 - ctx.r4.s64 = ctx.r3.s64 + 472; - // addi r5,r11,27540 - ctx.r5.s64 = ctx.r11.s64 + 27540; - // b 0x825c5ca0 - sub_825C5CA0(ctx, base); - return; -loc_826222BC: - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // addi r4,r3,472 - ctx.r4.s64 = ctx.r3.s64 + 472; - // addi r5,r11,27548 - ctx.r5.s64 = ctx.r11.s64 + 27548; - // b 0x825c5ca0 - sub_825C5CA0(ctx, base); - return; -loc_826222CC: - // lis r11,-32235 - ctx.r11.s64 = -2112552960; - // addi r4,r3,472 - ctx.r4.s64 = ctx.r3.s64 + 472; - // addi r5,r11,27552 - ctx.r5.s64 = ctx.r11.s64 + 27552; - // b 0x825c5ca0 - sub_825C5CA0(ctx, base); - return; -} - diff --git a/generated/retip_recomp.35.cpp b/generated/retip_recomp.35.cpp index d3196b5..e7f66a9 100644 --- a/generated/retip_recomp.35.cpp +++ b/generated/retip_recomp.35.cpp @@ -1,5 +1,515 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_82621F98"))) PPC_WEAK_FUNC(sub_82621F98); +PPC_FUNC_IMPL(__imp__sub_82621F98) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1628 + ctx.lr = 0x82621FA0; + __savegprlr_28(ctx, base); + // stwu r1,-128(r1) + ea = -128 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r30,r3 + ctx.r30.u64 = ctx.r3.u64; + // mr r28,r4 + ctx.r28.u64 = ctx.r4.u64; + // bl 0x825c54f0 + ctx.lr = 0x82621FB0; + sub_825C54F0(ctx, base); + // lwz r11,0(r28) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); + // cmpwi cr6,r11,295 + ctx.cr6.compare(ctx.r11.s32, 295, ctx.xer); + // beq cr6,0x82621ff0 + if (ctx.cr6.eq) goto loc_82621FF0; + // cmpwi cr6,r11,660 + ctx.cr6.compare(ctx.r11.s32, 660, ctx.xer); + // bne cr6,0x826220d4 + if (!ctx.cr6.eq) goto loc_826220D4; + // lwz r11,4(r28) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 4); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x82621fe0 + if (ctx.cr6.eq) goto loc_82621FE0; + // li r11,0 + ctx.r11.s64 = 0; + // stw r11,12(r28) + PPC_STORE_U32(ctx.r28.u32 + 12, ctx.r11.u32); + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +loc_82621FE0: + // mr r3,r30 + ctx.r3.u64 = ctx.r30.u64; + // bl 0x82293290 + ctx.lr = 0x82621FE8; + sub_82293290(ctx, base); + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +loc_82621FF0: + // lwz r11,4(r28) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 4); + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // beq cr6,0x826220d4 + if (ctx.cr6.eq) goto loc_826220D4; + // lwz r11,0(r11) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); + // cmpwi cr6,r11,80 + ctx.cr6.compare(ctx.r11.s32, 80, ctx.xer); + // bne cr6,0x826220d4 + if (!ctx.cr6.eq) goto loc_826220D4; + // lwz r3,472(r30) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 472); + // bl 0x826b2b88 + ctx.lr = 0x82622010; + sub_826B2B88(ctx, base); + // li r29,1 + ctx.r29.s64 = 1; + // cmpwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.s32, 0, ctx.xer); + // beq cr6,0x826220d0 + if (ctx.cr6.eq) goto loc_826220D0; + // lis r11,-32060 + ctx.r11.s64 = -2101084160; + // lis r10,26214 + ctx.r10.s64 = 1717960704; + // addi r31,r11,-22864 + ctx.r31.s64 = ctx.r11.s64 + -22864; + // lis r11,-32065 + ctx.r11.s64 = -2101411840; + // ori r9,r10,26215 + ctx.r9.u64 = ctx.r10.u64 | 26215; + // addi r8,r11,11588 + ctx.r8.s64 = ctx.r11.s64 + 11588; + // lwz r11,16(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 16); + // addi r7,r11,1 + ctx.r7.s64 = ctx.r11.s64 + 1; + // mulhw r6,r7,r9 + ctx.r6.s64 = (int64_t(ctx.r7.s32) * int64_t(ctx.r9.s32)) >> 32; + // srawi r10,r6,1 + ctx.xer.ca = (ctx.r6.s32 < 0) & ((ctx.r6.u32 & 0x1) != 0); + ctx.r10.s64 = ctx.r6.s32 >> 1; + // rlwinm r9,r10,1,31,31 + ctx.r9.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 1) & 0x1; + // add r10,r10,r9 + ctx.r10.u64 = ctx.r10.u64 + ctx.r9.u64; + // rlwinm r9,r10,2,0,29 + ctx.r9.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; + // add r5,r10,r9 + ctx.r5.u64 = ctx.r10.u64 + ctx.r9.u64; + // subf r10,r5,r7 + ctx.r10.u64 = ctx.r7.u64 - ctx.r5.u64; + // cmpw cr6,r11,r10 + ctx.cr6.compare(ctx.r11.s32, ctx.r10.s32, ctx.xer); + // bne cr6,0x82622074 + if (!ctx.cr6.eq) goto loc_82622074; + // rlwinm r11,r10,2,0,29 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; + // lfs f0,20(r31) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); + ctx.f0.f64 = double(temp.f32); + // lfsx f13,r11,r8 + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r8.u32); + ctx.f13.f64 = double(temp.f32); + // fcmpu cr6,f0,f13 + ctx.cr6.compare(ctx.f0.f64, ctx.f13.f64); + // beq cr6,0x82622088 + if (ctx.cr6.eq) goto loc_82622088; +loc_82622074: + // rlwinm r11,r10,2,0,29 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; + // stw r10,16(r31) + PPC_STORE_U32(ctx.r31.u32 + 16, ctx.r10.u32); + // lfsx f0,r11,r8 + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + ctx.r8.u32); + ctx.f0.f64 = double(temp.f32); + // stfs f0,20(r31) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r31.u32 + 20, temp.u32); + // bl 0x82204410 + ctx.lr = 0x82622088; + sub_82204410(ctx, base); +loc_82622088: + // lis r11,-32234 + ctx.r11.s64 = -2112487424; + // stb r29,484(r30) + PPC_STORE_U8(ctx.r30.u32 + 484, ctx.r29.u8); + // lfs f0,20(r31) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); + ctx.f0.f64 = double(temp.f32); + // addi r3,r30,476 + ctx.r3.s64 = ctx.r30.s64 + 476; + // lfs f13,-14548(r11) + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + -14548); + ctx.f13.f64 = double(temp.f32); + // fmuls f0,f0,f13 + ctx.f0.f64 = double(float(ctx.f0.f64 * ctx.f13.f64)); + // fctiwz f13,f0 + ctx.f13.s64 = std::isnan(ctx.f0.f64) ? int64_t(0x80000000U) : (ctx.f0.f64 > double(INT_MAX)) ? INT_MAX : simde_mm_cvttsd_si32(simde_mm_load_sd(&ctx.f0.f64)); + // stfd f13,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.f13.u64); + // lwz r4,84(r1) + ctx.r4.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); + // bl 0x825e0bc8 + ctx.lr = 0x826220B0; + sub_825E0BC8(ctx, base); + // li r10,0 + ctx.r10.s64 = 0; + // mr r3,r30 + ctx.r3.u64 = ctx.r30.u64; + // stb r10,484(r30) + PPC_STORE_U8(ctx.r30.u32 + 484, ctx.r10.u8); + // lwz r4,16(r31) + ctx.r4.u64 = PPC_LOAD_U32(ctx.r31.u32 + 16); + // bl 0x82622258 + ctx.lr = 0x826220C4; + sub_82622258(ctx, base); + // lis r9,-31780 + ctx.r9.s64 = -2082734080; + // mr r11,r29 + ctx.r11.u64 = ctx.r29.u64; + // stw r11,13764(r9) + PPC_STORE_U32(ctx.r9.u32 + 13764, ctx.r11.u32); +loc_826220D0: + // stw r29,12(r28) + PPC_STORE_U32(ctx.r28.u32 + 12, ctx.r29.u32); +loc_826220D4: + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_826220E0"))) PPC_WEAK_FUNC(sub_826220E0); +PPC_FUNC_IMPL(__imp__sub_826220E0) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae162c + ctx.lr = 0x826220E8; + __savegprlr_29(ctx, base); + // stwu r1,-112(r1) + ea = -112 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r30,r4 + ctx.r30.u64 = ctx.r4.u64; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // cmplwi cr6,r30,0 + ctx.cr6.compare(ctx.r30.u32, 0, ctx.xer); + // bne cr6,0x82622108 + if (!ctx.cr6.eq) goto loc_82622108; + // lwz r11,472(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 472); + // cmplw cr6,r5,r11 + ctx.cr6.compare(ctx.r5.u32, ctx.r11.u32, ctx.xer); + // beq cr6,0x82622118 + if (ctx.cr6.eq) goto loc_82622118; +loc_82622108: + // lwz r11,472(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 472); + // li r29,0 + ctx.r29.s64 = 0; + // cmplw cr6,r30,r11 + ctx.cr6.compare(ctx.r30.u32, ctx.r11.u32, ctx.xer); + // bne cr6,0x8262211c + if (!ctx.cr6.eq) goto loc_8262211C; +loc_82622118: + // li r29,1 + ctx.r29.s64 = 1; +loc_8262211C: + // li r4,0 + ctx.r4.s64 = 0; + // lwz r3,32(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 32); + // bl 0x8229a530 + ctx.lr = 0x82622128; + sub_8229A530(ctx, base); + // bl 0x825b6df8 + ctx.lr = 0x8262212C; + sub_825B6DF8(ctx, base); + // mr r5,r29 + ctx.r5.u64 = ctx.r29.u64; + // li r4,80 + ctx.r4.s64 = 80; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x825c5838 + ctx.lr = 0x8262213C; + sub_825C5838(ctx, base); + // mr r3,r30 + ctx.r3.u64 = ctx.r30.u64; + // addi r1,r1,112 + ctx.r1.s64 = ctx.r1.s64 + 112; + // b 0x82ae167c + __restgprlr_29(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_82622148"))) PPC_WEAK_FUNC(sub_82622148); +PPC_FUNC_IMPL(__imp__sub_82622148) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // std r30,-24(r1) + PPC_STORE_U64(ctx.r1.u32 + -24, ctx.r30.u64); + // std r31,-16(r1) + PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); + // stwu r1,-112(r1) + ea = -112 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r30,r3 + ctx.r30.u64 = ctx.r3.u64; + // lwz r11,476(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 476); + // cmplw cr6,r4,r11 + ctx.cr6.compare(ctx.r4.u32, ctx.r11.u32, ctx.xer); + // bne cr6,0x826221e0 + if (!ctx.cr6.eq) goto loc_826221E0; + // lbz r10,484(r30) + ctx.r10.u64 = PPC_LOAD_U8(ctx.r30.u32 + 484); + // lis r11,-32060 + ctx.r11.s64 = -2101084160; + // cmplwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); + // addi r31,r11,-22864 + ctx.r31.s64 = ctx.r11.s64 + -22864; + // bne cr6,0x826221d0 + if (!ctx.cr6.eq) goto loc_826221D0; + // lwz r11,0(r5) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); + // lis r10,-32242 + ctx.r10.s64 = -2113011712; + // lfs f13,20(r31) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r31.u32 + 20); + ctx.f13.f64 = double(temp.f32); + // extsw r9,r11 + ctx.r9.s64 = ctx.r11.s32; + // addi r8,r10,25248 + ctx.r8.s64 = ctx.r10.s64 + 25248; + // std r9,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r9.u64); + // lfd f0,80(r1) + ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); + // fcfid f12,f0 + ctx.f12.f64 = double(ctx.f0.s64); + // frsp f11,f12 + ctx.f11.f64 = double(float(ctx.f12.f64)); + // lfs f0,4(r8) + temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + 4); + ctx.f0.f64 = double(temp.f32); + // fmuls f0,f11,f0 + ctx.f0.f64 = double(float(ctx.f11.f64 * ctx.f0.f64)); + // fcmpu cr6,f13,f0 + ctx.cr6.compare(ctx.f13.f64, ctx.f0.f64); + // beq cr6,0x826221c4 + if (ctx.cr6.eq) goto loc_826221C4; + // li r11,4 + ctx.r11.s64 = 4; + // stfs f0,20(r31) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r31.u32 + 20, temp.u32); + // stw r11,16(r31) + PPC_STORE_U32(ctx.r31.u32 + 16, ctx.r11.u32); + // bl 0x82204410 + ctx.lr = 0x826221C4; + sub_82204410(ctx, base); +loc_826221C4: + // lis r10,-31780 + ctx.r10.s64 = -2082734080; + // li r11,1 + ctx.r11.s64 = 1; + // stw r11,13764(r10) + PPC_STORE_U32(ctx.r10.u32 + 13764, ctx.r11.u32); +loc_826221D0: + // mr r3,r30 + ctx.r3.u64 = ctx.r30.u64; + // lwz r4,16(r31) + ctx.r4.u64 = PPC_LOAD_U32(ctx.r31.u32 + 16); + // bl 0x82622258 + ctx.lr = 0x826221DC; + sub_82622258(ctx, base); + // b 0x8262223c + goto loc_8262223C; +loc_826221E0: + // lwz r11,480(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 480); + // cmplw cr6,r4,r11 + ctx.cr6.compare(ctx.r4.u32, ctx.r11.u32, ctx.xer); + // bne cr6,0x8262223c + if (!ctx.cr6.eq) goto loc_8262223C; + // lwz r10,0(r5) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); + // lis r9,-32242 + ctx.r9.s64 = -2113011712; + // lis r11,-32060 + ctx.r11.s64 = -2101084160; + // extsw r8,r10 + ctx.r8.s64 = ctx.r10.s32; + // addi r7,r9,25248 + ctx.r7.s64 = ctx.r9.s64 + 25248; + // std r8,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r8.u64); + // addi r11,r11,-22864 + ctx.r11.s64 = ctx.r11.s64 + -22864; + // lfd f0,80(r1) + ctx.fpscr.disableFlushMode(); + ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); + // fcfid f13,f0 + ctx.f13.f64 = double(ctx.f0.s64); + // lfs f0,4(r7) + temp.u32 = PPC_LOAD_U32(ctx.r7.u32 + 4); + ctx.f0.f64 = double(temp.f32); + // frsp f12,f13 + ctx.f12.f64 = double(float(ctx.f13.f64)); + // lfs f13,24(r11) + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 24); + ctx.f13.f64 = double(temp.f32); + // fmuls f0,f12,f0 + ctx.f0.f64 = double(float(ctx.f12.f64 * ctx.f0.f64)); + // fcmpu cr6,f13,f0 + ctx.cr6.compare(ctx.f13.f64, ctx.f0.f64); + // beq cr6,0x82622230 + if (ctx.cr6.eq) goto loc_82622230; + // stfs f0,24(r11) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r11.u32 + 24, temp.u32); + // bl 0x82204410 + ctx.lr = 0x82622230; + sub_82204410(ctx, base); +loc_82622230: + // lis r10,-31780 + ctx.r10.s64 = -2082734080; + // li r11,1 + ctx.r11.s64 = 1; + // stw r11,13764(r10) + PPC_STORE_U32(ctx.r10.u32 + 13764, ctx.r11.u32); +loc_8262223C: + // li r3,0 + ctx.r3.s64 = 0; + // addi r1,r1,112 + ctx.r1.s64 = ctx.r1.s64 + 112; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // ld r30,-24(r1) + ctx.r30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); + // ld r31,-16(r1) + ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); + // blr + return; +} + +__attribute__((alias("__imp__sub_82622258"))) PPC_WEAK_FUNC(sub_82622258); +PPC_FUNC_IMPL(__imp__sub_82622258) { + PPC_FUNC_PROLOGUE(); + // cmplwi cr6,r4,4 + ctx.cr6.compare(ctx.r4.u32, 4, ctx.xer); + // bgtlr cr6 + if (ctx.cr6.gt) return; + // lis r12,-32158 + ctx.r12.s64 = -2107506688; + // addi r12,r12,8824 + ctx.r12.s64 = ctx.r12.s64 + 8824; + // rlwinm r0,r4,2,0,29 + ctx.r0.u64 = __builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 2) & 0xFFFFFFFC; + // lwzx r0,r12,r0 + ctx.r0.u64 = PPC_LOAD_U32(ctx.r12.u32 + ctx.r0.u32); + // mtctr r0 + ctx.ctr.u64 = ctx.r0.u64; + // bctr + switch (ctx.r4.u32) { + case 0: + goto loc_8262228C; + case 1: + goto loc_8262229C; + case 2: + goto loc_826222AC; + case 3: + goto loc_826222BC; + case 4: + goto loc_826222CC; + default: + __builtin_trap(); // Switch case out of range + } +loc_8262228C: + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // addi r4,r3,472 + ctx.r4.s64 = ctx.r3.s64 + 472; + // addi r5,r11,27532 + ctx.r5.s64 = ctx.r11.s64 + 27532; + // b 0x825c5ca0 + sub_825C5CA0(ctx, base); + return; +loc_8262229C: + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // addi r4,r3,472 + ctx.r4.s64 = ctx.r3.s64 + 472; + // addi r5,r11,27536 + ctx.r5.s64 = ctx.r11.s64 + 27536; + // b 0x825c5ca0 + sub_825C5CA0(ctx, base); + return; +loc_826222AC: + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // addi r4,r3,472 + ctx.r4.s64 = ctx.r3.s64 + 472; + // addi r5,r11,27540 + ctx.r5.s64 = ctx.r11.s64 + 27540; + // b 0x825c5ca0 + sub_825C5CA0(ctx, base); + return; +loc_826222BC: + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // addi r4,r3,472 + ctx.r4.s64 = ctx.r3.s64 + 472; + // addi r5,r11,27548 + ctx.r5.s64 = ctx.r11.s64 + 27548; + // b 0x825c5ca0 + sub_825C5CA0(ctx, base); + return; +loc_826222CC: + // lis r11,-32235 + ctx.r11.s64 = -2112552960; + // addi r4,r3,472 + ctx.r4.s64 = ctx.r3.s64 + 472; + // addi r5,r11,27552 + ctx.r5.s64 = ctx.r11.s64 + 27552; + // b 0x825c5ca0 + sub_825C5CA0(ctx, base); + return; +} + __attribute__((alias("__imp__sub_826222DC"))) PPC_WEAK_FUNC(sub_826222DC); PPC_FUNC_IMPL(__imp__sub_826222DC) { PPC_FUNC_PROLOGUE(); @@ -1201,7 +1711,7 @@ PPC_FUNC_IMPL(__imp__sub_826224E0) { ctx.r3.s64 = ctx.r1.s64 + 136; // bl 0x82250578 ctx.lr = 0x82622B24; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,16 ctx.r11.s64 = 16; // stw r16,144(r1) @@ -2610,7 +3120,7 @@ PPC_FUNC_IMPL(__imp__sub_82623200) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x82623490; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r28,5173 ctx.r11.s64 = ctx.r28.s64 + 5173; // stw r25,120(r1) @@ -15717,7 +16227,7 @@ PPC_FUNC_IMPL(__imp__sub_82628D08) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82628F68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -32279,7 +32789,7 @@ PPC_FUNC_IMPL(__imp__sub_8262FEE8) { ctx.f30.u64 = ctx.f31.u64 ^ 0x8000000000000000; // bl 0x82250578 ctx.lr = 0x8262FF80; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f30,108(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f30.f64); @@ -48803,7 +49313,7 @@ PPC_FUNC_IMPL(__imp__sub_82636350) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x82636ED0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,60 ctx.r11.s64 = 60; // stw r30,196(r1) @@ -51025,7 +51535,7 @@ PPC_FUNC_IMPL(__imp__sub_82636350) { ctx.r3.s64 = ctx.r1.s64 + 272; // bl 0x82250578 ctx.lr = 0x82637E84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,10 ctx.r11.s64 = 10; // li r10,63 @@ -51299,7 +51809,7 @@ PPC_FUNC_IMPL(__imp__sub_82636350) { ctx.r3.s64 = ctx.r1.s64 + 320; // bl 0x82250578 ctx.lr = 0x82638070; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,6 ctx.r11.s64 = 6; // li r10,63 @@ -51377,7 +51887,7 @@ PPC_FUNC_IMPL(__imp__sub_82636350) { ctx.r3.s64 = ctx.r1.s64 + 224; // bl 0x82250578 ctx.lr = 0x82638100; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,7 ctx.r11.s64 = 7; // li r10,63 @@ -54710,7 +55220,7 @@ PPC_FUNC_IMPL(__imp__sub_82638960) { ctx.r3.s64 = ctx.r1.s64 + 256; // bl 0x82250578 ctx.lr = 0x82639868; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1850 ctx.r11.s64 = 1850; // stw r18,264(r1) @@ -56481,7 +56991,7 @@ PPC_FUNC_IMPL(__imp__sub_82638960) { ctx.r3.s64 = ctx.r1.s64 + 240; // bl 0x82250578 ctx.lr = 0x8263A47C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9074 ctx.r11.s64 = 9074; // stw r18,248(r1) @@ -58364,7 +58874,7 @@ PPC_FUNC_IMPL(__imp__sub_8263AEF8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8263B134; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r29) @@ -62122,7 +62632,7 @@ PPC_FUNC_IMPL(__imp__sub_8263C640) { ctx.r3.s64 = ctx.r1.s64 + 116; // bl 0x82250578 ctx.lr = 0x8263CA44; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,116 ctx.r3.s64 = ctx.r1.s64 + 116; // bl 0x8228e258 @@ -78923,566 +79433,3 @@ PPC_FUNC_IMPL(__imp__sub_82643B80) { return; } -__attribute__((alias("__imp__sub_82643C20"))) PPC_WEAK_FUNC(sub_82643C20); -PPC_FUNC_IMPL(__imp__sub_82643C20) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // std r31,-16(r1) - PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); - // stfd f29,-40(r1) - ctx.fpscr.disableFlushMode(); - PPC_STORE_U64(ctx.r1.u32 + -40, ctx.f29.u64); - // stfd f30,-32(r1) - PPC_STORE_U64(ctx.r1.u32 + -32, ctx.f30.u64); - // stfd f31,-24(r1) - PPC_STORE_U64(ctx.r1.u32 + -24, ctx.f31.u64); - // stwu r1,-144(r1) - ea = -144 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // fmr f30,f1 - ctx.f30.f64 = ctx.f1.f64; - // lwz r11,500(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 500); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // bne cr6,0x82643d80 - if (!ctx.cr6.eq) goto loc_82643D80; - // bl 0x824e1158 - ctx.lr = 0x82643C54; - sub_824E1158(ctx, base); - // cmplwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); - // beq cr6,0x82643da0 - if (ctx.cr6.eq) goto loc_82643DA0; - // lwz r11,18944(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 18944); - // lwz r10,2276(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 2276); - // cmplwi cr6,r10,0 - ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); - // beq cr6,0x82643da0 - if (ctx.cr6.eq) goto loc_82643DA0; - // bl 0x824e1158 - ctx.lr = 0x82643C70; - sub_824E1158(ctx, base); - // cmplwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); - // beq cr6,0x82643c84 - if (ctx.cr6.eq) goto loc_82643C84; - // lwz r11,18944(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 18944); - // lwz r11,2276(r11) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 2276); - // b 0x82643c88 - goto loc_82643C88; -loc_82643C84: - // li r11,0 - ctx.r11.s64 = 0; -loc_82643C88: - // lwz r11,19204(r11) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 19204); - // lis r10,-28254 - ctx.r10.s64 = -1851654144; - // li r8,3600 - ctx.r8.s64 = 3600; - // ori r7,r10,46021 - ctx.r7.u64 = ctx.r10.u64 | 46021; - // li r6,60 - ctx.r6.s64 = 60; - // lfs f0,4(r11) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 4); - ctx.f0.f64 = double(temp.f32); - // fctiwz f13,f0 - ctx.f13.s64 = std::isnan(ctx.f0.f64) ? int64_t(0x80000000U) : (ctx.f0.f64 > double(INT_MAX)) ? INT_MAX : simde_mm_cvttsd_si32(simde_mm_load_sd(&ctx.f0.f64)); - // stfd f13,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.f13.u64); - // lwz r11,84(r1) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); - // mr r5,r11 - ctx.r5.u64 = ctx.r11.u64; - // mr r10,r5 - ctx.r10.u64 = ctx.r5.u64; - // mulhw r9,r10,r7 - ctx.r9.s64 = (int64_t(ctx.r10.s32) * int64_t(ctx.r7.s32)) >> 32; - // add r4,r9,r10 - ctx.r4.u64 = ctx.r9.u64 + ctx.r10.u64; - // srawi r10,r4,11 - ctx.xer.ca = (ctx.r4.s32 < 0) & ((ctx.r4.u32 & 0x7FF) != 0); - ctx.r10.s64 = ctx.r4.s32 >> 11; - // rlwinm r9,r10,1,31,31 - ctx.r9.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 1) & 0x1; - // add r3,r10,r9 - ctx.r3.u64 = ctx.r10.u64 + ctx.r9.u64; - // mulli r10,r3,3600 - ctx.r10.s64 = static_cast(ctx.r3.u64 * static_cast(3600)); - // subf r9,r10,r5 - ctx.r9.u64 = ctx.r5.u64 - ctx.r10.u64; - // subf r7,r9,r11 - ctx.r7.u64 = ctx.r11.u64 - ctx.r9.u64; - // divw r10,r9,r6 - ctx.r10.u64 = uint32_t((ctx.r6.s32 && !(ctx.r9.s32 == INT32_MIN && ctx.r6.s32 == -1)) ? ctx.r9.s32 / ctx.r6.s32 : 0); - // divw r11,r7,r8 - ctx.r11.u64 = uint32_t((ctx.r8.s32 && !(ctx.r7.s32 == INT32_MIN && ctx.r8.s32 == -1)) ? ctx.r7.s32 / ctx.r8.s32 : 0); - // cmpwi cr6,r11,12 - ctx.cr6.compare(ctx.r11.s32, 12, ctx.xer); - // blt cr6,0x82643ce8 - if (ctx.cr6.lt) goto loc_82643CE8; - // addi r11,r11,-12 - ctx.r11.s64 = ctx.r11.s64 + -12; -loc_82643CE8: - // extsw r10,r10 - ctx.r10.s64 = ctx.r10.s32; - // extsw r9,r11 - ctx.r9.s64 = ctx.r11.s32; - // std r10,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r10.u64); - // lfd f0,80(r1) - ctx.fpscr.disableFlushMode(); - ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); - // std r9,80(r1) - PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r9.u64); - // lfd f13,80(r1) - ctx.f13.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); - // fcfid f11,f0 - ctx.f11.f64 = double(ctx.f0.s64); - // lis r8,-32234 - ctx.r8.s64 = -2112487424; - // fcfid f12,f13 - ctx.f12.f64 = double(ctx.f13.s64); - // lfs f0,4756(r8) - temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + 4756); - ctx.f0.f64 = double(temp.f32); - // frsp f29,f11 - ctx.f29.f64 = double(float(ctx.f11.f64)); - // lis r7,-32234 - ctx.r7.s64 = -2112487424; - // lis r6,-32234 - ctx.r6.s64 = -2112487424; - // addi r3,r1,80 - ctx.r3.s64 = ctx.r1.s64 + 80; - // lfs f31,-14556(r7) - temp.u32 = PPC_LOAD_U32(ctx.r7.u32 + -14556); - ctx.f31.f64 = double(temp.f32); - // lfs f13,5068(r6) - temp.u32 = PPC_LOAD_U32(ctx.r6.u32 + 5068); - ctx.f13.f64 = double(temp.f32); - // fmr f2,f31 - ctx.f2.f64 = ctx.f31.f64; - // fmr f1,f31 - ctx.f1.f64 = ctx.f31.f64; - // frsp f10,f12 - ctx.f10.f64 = double(float(ctx.f12.f64)); - // fmadds f9,f29,f0,f10 - ctx.f9.f64 = double(float(ctx.f29.f64 * ctx.f0.f64 + ctx.f10.f64)); - // fmuls f3,f9,f13 - ctx.f3.f64 = double(float(ctx.f9.f64 * ctx.f13.f64)); - // bl 0x82712728 - ctx.lr = 0x82643D40; - sub_82712728(ctx, base); - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // lwz r3,472(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 472); - // bl 0x826b4478 - ctx.lr = 0x82643D4C; - sub_826B4478(ctx, base); - // lis r5,-32234 - ctx.r5.s64 = -2112487424; - // addi r3,r1,80 - ctx.r3.s64 = ctx.r1.s64 + 80; - // fmr f2,f31 - ctx.fpscr.disableFlushMode(); - ctx.f2.f64 = ctx.f31.f64; - // fmr f1,f31 - ctx.f1.f64 = ctx.f31.f64; - // lfs f0,7536(r5) - temp.u32 = PPC_LOAD_U32(ctx.r5.u32 + 7536); - ctx.f0.f64 = double(temp.f32); - // fmuls f3,f29,f0 - ctx.f3.f64 = double(float(ctx.f29.f64 * ctx.f0.f64)); - // bl 0x82712728 - ctx.lr = 0x82643D68; - sub_82712728(ctx, base); - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // lwz r3,476(r31) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 476); - // bl 0x826b4478 - ctx.lr = 0x82643D74; - sub_826B4478(ctx, base); - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // fmr f1,f30 - ctx.fpscr.disableFlushMode(); - ctx.f1.f64 = ctx.f30.f64; - // bl 0x82643db0 - ctx.lr = 0x82643D80; - sub_82643DB0(ctx, base); -loc_82643D80: - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // lfd f29,-40(r1) - ctx.fpscr.disableFlushMode(); - ctx.f29.u64 = PPC_LOAD_U64(ctx.r1.u32 + -40); - // lfd f30,-32(r1) - ctx.f30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -32); - // lfd f31,-24(r1) - ctx.f31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); - // ld r31,-16(r1) - ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); - // blr - return; -loc_82643DA0: - // li r10,1 - ctx.r10.s64 = 1; - // li r11,1 - ctx.r11.s64 = 1; - // b 0x82643ce8 - goto loc_82643CE8; -} - -__attribute__((alias("__imp__sub_82643DB0"))) PPC_WEAK_FUNC(sub_82643DB0); -PPC_FUNC_IMPL(__imp__sub_82643DB0) { - PPC_FUNC_PROLOGUE(); - PPCRegister temp{}; - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // std r30,-24(r1) - PPC_STORE_U64(ctx.r1.u32 + -24, ctx.r30.u64); - // std r31,-16(r1) - PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); - // stfd f31,-32(r1) - ctx.fpscr.disableFlushMode(); - PPC_STORE_U64(ctx.r1.u32 + -32, ctx.f31.u64); - // stwu r1,-144(r1) - ea = -144 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // lis r11,-31780 - ctx.r11.s64 = -2082734080; - // fmr f31,f1 - ctx.f31.f64 = ctx.f1.f64; - // lis r10,-32234 - ctx.r10.s64 = -2112487424; - // addi r31,r11,-4788 - ctx.r31.s64 = ctx.r11.s64 + -4788; - // mr r30,r3 - ctx.r30.u64 = ctx.r3.u64; - // lfs f0,-14556(r10) - temp.u32 = PPC_LOAD_U32(ctx.r10.u32 + -14556); - ctx.f0.f64 = double(temp.f32); - // lwz r11,48(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 48); - // stfs f0,88(r1) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); - // stfs f0,84(r1) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); - // stfs f0,80(r1) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r1.u32 + 80, temp.u32); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // bne cr6,0x82643e04 - if (!ctx.cr6.eq) goto loc_82643E04; - // lwz r11,52(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 52); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x82643e10 - if (ctx.cr6.eq) goto loc_82643E10; -loc_82643E04: - // lwz r11,24(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 24); - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // bne cr6,0x82643e14 - if (!ctx.cr6.eq) goto loc_82643E14; -loc_82643E10: - // lwz r11,4(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4); -loc_82643E14: - // mr r4,r11 - ctx.r4.u64 = ctx.r11.u64; - // li r3,9126 - ctx.r3.s64 = 9126; - // bl 0x8258abe8 - ctx.lr = 0x82643E20; - sub_8258ABE8(ctx, base); - // cmplwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); - // beq cr6,0x82643e7c - if (ctx.cr6.eq) goto loc_82643E7C; - // lis r11,-32234 - ctx.r11.s64 = -2112487424; - // lfs f13,488(r30) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 488); - ctx.f13.f64 = double(temp.f32); - // lis r10,-31835 - ctx.r10.s64 = -2086338560; - // li r31,9126 - ctx.r31.s64 = 9126; - // lfs f0,7532(r11) - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 7532); - ctx.f0.f64 = double(temp.f32); - // lwz r11,25072(r10) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r10.u32 + 25072); - // fsubs f12,f13,f0 - ctx.f12.f64 = double(float(ctx.f13.f64 - ctx.f0.f64)); - // lfs f13,492(r30) - temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 492); - ctx.f13.f64 = double(temp.f32); - // stfs f12,80(r1) - temp.f32 = float(ctx.f12.f64); - PPC_STORE_U32(ctx.r1.u32 + 80, temp.u32); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x82643e68 - if (ctx.cr6.eq) goto loc_82643E68; - // lis r11,-32234 - ctx.r11.s64 = -2112487424; - // lfs f0,5332(r11) - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 5332); - ctx.f0.f64 = double(temp.f32); - // fadds f12,f13,f0 - ctx.f12.f64 = double(float(ctx.f13.f64 + ctx.f0.f64)); - // stfs f12,84(r1) - temp.f32 = float(ctx.f12.f64); - PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); - // b 0x82643ecc - goto loc_82643ECC; -loc_82643E68: - // lis r11,-32234 - ctx.r11.s64 = -2112487424; - // lfs f0,5712(r11) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 5712); - ctx.f0.f64 = double(temp.f32); - // fadds f12,f13,f0 - ctx.f12.f64 = double(float(ctx.f13.f64 + ctx.f0.f64)); - // stfs f12,84(r1) - temp.f32 = float(ctx.f12.f64); - PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); - // b 0x82643ecc - goto loc_82643ECC; -loc_82643E7C: - // lwz r11,48(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 48); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // bne cr6,0x82643e94 - if (!ctx.cr6.eq) goto loc_82643E94; - // lwz r11,52(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 52); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // beq cr6,0x82643ea0 - if (ctx.cr6.eq) goto loc_82643EA0; -loc_82643E94: - // lwz r11,24(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 24); - // cmplwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); - // bne cr6,0x82643ea4 - if (!ctx.cr6.eq) goto loc_82643EA4; -loc_82643EA0: - // lwz r11,4(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4); -loc_82643EA4: - // mr r4,r11 - ctx.r4.u64 = ctx.r11.u64; - // li r3,9127 - ctx.r3.s64 = 9127; - // bl 0x8258abe8 - ctx.lr = 0x82643EB0; - sub_8258ABE8(ctx, base); - // cmplwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); - // beq cr6,0x82643f28 - if (ctx.cr6.eq) goto loc_82643F28; - // lfs f0,488(r30) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 488); - ctx.f0.f64 = double(temp.f32); - // li r31,9127 - ctx.r31.s64 = 9127; - // lfs f13,492(r30) - temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 492); - ctx.f13.f64 = double(temp.f32); - // stfs f0,80(r1) - temp.f32 = float(ctx.f0.f64); - PPC_STORE_U32(ctx.r1.u32 + 80, temp.u32); - // stfs f13,84(r1) - temp.f32 = float(ctx.f13.f64); - PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); -loc_82643ECC: - // addi r4,r1,96 - ctx.r4.s64 = ctx.r1.s64 + 96; - // lwz r3,4(r30) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); - // bl 0x826b4288 - ctx.lr = 0x82643ED8; - sub_826B4288(ctx, base); - // lis r11,-32234 - ctx.r11.s64 = -2112487424; - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // fmr f2,f31 - ctx.fpscr.disableFlushMode(); - ctx.f2.f64 = ctx.f31.f64; - // addi r3,r1,96 - ctx.r3.s64 = ctx.r1.s64 + 96; - // lfs f1,5992(r11) - temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 5992); - ctx.f1.f64 = double(temp.f32); - // bl 0x8224b388 - ctx.lr = 0x82643EF0; - sub_8224B388(ctx, base); - // addi r4,r1,96 - ctx.r4.s64 = ctx.r1.s64 + 96; - // lwz r3,4(r30) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); - // bl 0x826b42e8 - ctx.lr = 0x82643EFC; - sub_826B42E8(ctx, base); - // lis r10,-32242 - ctx.r10.s64 = -2113011712; - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // addi r9,r10,25248 - ctx.r9.s64 = ctx.r10.s64 + 25248; - // addi r3,r1,96 - ctx.r3.s64 = ctx.r1.s64 + 96; - // lfs f1,4(r9) - ctx.fpscr.disableFlushMode(); - temp.u32 = PPC_LOAD_U32(ctx.r9.u32 + 4); - ctx.f1.f64 = double(temp.f32); - // bl 0x8224c300 - ctx.lr = 0x82643F14; - sub_8224C300(ctx, base); - // cmpwi cr6,r3,0 - ctx.cr6.compare(ctx.r3.s32, 0, ctx.xer); - // beq cr6,0x82643f28 - if (ctx.cr6.eq) goto loc_82643F28; - // li r4,0 - ctx.r4.s64 = 0; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x8258adc8 - ctx.lr = 0x82643F28; - sub_8258ADC8(ctx, base); -loc_82643F28: - // addi r1,r1,144 - ctx.r1.s64 = ctx.r1.s64 + 144; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // lfd f31,-32(r1) - ctx.fpscr.disableFlushMode(); - ctx.f31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -32); - // ld r30,-24(r1) - ctx.r30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); - // ld r31,-16(r1) - ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); - // blr - return; -} - -__attribute__((alias("__imp__sub_82643F48"))) PPC_WEAK_FUNC(sub_82643F48); -PPC_FUNC_IMPL(__imp__sub_82643F48) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1628 - ctx.lr = 0x82643F50; - __savegprlr_28(ctx, base); - // stwu r1,-128(r1) - ea = -128 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r29,r4 - ctx.r29.u64 = ctx.r4.u64; - // li r30,0 - ctx.r30.s64 = 0; - // mr r28,r3 - ctx.r28.u64 = ctx.r3.u64; - // li r4,0 - ctx.r4.s64 = 0; - // li r3,500 - ctx.r3.s64 = 500; - // stw r30,0(r29) - PPC_STORE_U32(ctx.r29.u32 + 0, ctx.r30.u32); - // bl 0x82223cc0 - ctx.lr = 0x82643F70; - sub_82223CC0(ctx, base); - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // bl 0x82223fb8 - ctx.lr = 0x82643F78; - sub_82223FB8(ctx, base); - // cmplwi cr6,r31,0 - ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); - // beq cr6,0x82643fb8 - if (ctx.cr6.eq) goto loc_82643FB8; - // li r4,137 - ctx.r4.s64 = 137; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x825c52a0 - ctx.lr = 0x82643F8C; - sub_825C52A0(ctx, base); - // lis r11,-32234 - ctx.r11.s64 = -2112487424; - // li r3,0 - ctx.r3.s64 = 0; - // addi r10,r11,-23728 - ctx.r10.s64 = ctx.r11.s64 + -23728; - // stw r10,0(r31) - PPC_STORE_U32(ctx.r31.u32 + 0, ctx.r10.u32); - // stw r30,472(r31) - PPC_STORE_U32(ctx.r31.u32 + 472, ctx.r30.u32); - // stw r30,476(r31) - PPC_STORE_U32(ctx.r31.u32 + 476, ctx.r30.u32); - // stw r30,480(r31) - PPC_STORE_U32(ctx.r31.u32 + 480, ctx.r30.u32); - // stw r28,4(r31) - PPC_STORE_U32(ctx.r31.u32 + 4, ctx.r28.u32); - // stw r31,0(r29) - PPC_STORE_U32(ctx.r29.u32 + 0, ctx.r31.u32); - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -loc_82643FB8: - // lis r3,-32761 - ctx.r3.s64 = -2147024896; - // ori r3,r3,14 - ctx.r3.u64 = ctx.r3.u64 | 14; - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -} - diff --git a/generated/retip_recomp.36.cpp b/generated/retip_recomp.36.cpp index 61945ef..a3dcfb3 100644 --- a/generated/retip_recomp.36.cpp +++ b/generated/retip_recomp.36.cpp @@ -1,5 +1,568 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_82643C20"))) PPC_WEAK_FUNC(sub_82643C20); +PPC_FUNC_IMPL(__imp__sub_82643C20) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // std r31,-16(r1) + PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); + // stfd f29,-40(r1) + ctx.fpscr.disableFlushMode(); + PPC_STORE_U64(ctx.r1.u32 + -40, ctx.f29.u64); + // stfd f30,-32(r1) + PPC_STORE_U64(ctx.r1.u32 + -32, ctx.f30.u64); + // stfd f31,-24(r1) + PPC_STORE_U64(ctx.r1.u32 + -24, ctx.f31.u64); + // stwu r1,-144(r1) + ea = -144 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // fmr f30,f1 + ctx.f30.f64 = ctx.f1.f64; + // lwz r11,500(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 500); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // bne cr6,0x82643d80 + if (!ctx.cr6.eq) goto loc_82643D80; + // bl 0x824e1158 + ctx.lr = 0x82643C54; + sub_824E1158(ctx, base); + // cmplwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); + // beq cr6,0x82643da0 + if (ctx.cr6.eq) goto loc_82643DA0; + // lwz r11,18944(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 18944); + // lwz r10,2276(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 2276); + // cmplwi cr6,r10,0 + ctx.cr6.compare(ctx.r10.u32, 0, ctx.xer); + // beq cr6,0x82643da0 + if (ctx.cr6.eq) goto loc_82643DA0; + // bl 0x824e1158 + ctx.lr = 0x82643C70; + sub_824E1158(ctx, base); + // cmplwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); + // beq cr6,0x82643c84 + if (ctx.cr6.eq) goto loc_82643C84; + // lwz r11,18944(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 18944); + // lwz r11,2276(r11) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 2276); + // b 0x82643c88 + goto loc_82643C88; +loc_82643C84: + // li r11,0 + ctx.r11.s64 = 0; +loc_82643C88: + // lwz r11,19204(r11) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r11.u32 + 19204); + // lis r10,-28254 + ctx.r10.s64 = -1851654144; + // li r8,3600 + ctx.r8.s64 = 3600; + // ori r7,r10,46021 + ctx.r7.u64 = ctx.r10.u64 | 46021; + // li r6,60 + ctx.r6.s64 = 60; + // lfs f0,4(r11) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 4); + ctx.f0.f64 = double(temp.f32); + // fctiwz f13,f0 + ctx.f13.s64 = std::isnan(ctx.f0.f64) ? int64_t(0x80000000U) : (ctx.f0.f64 > double(INT_MAX)) ? INT_MAX : simde_mm_cvttsd_si32(simde_mm_load_sd(&ctx.f0.f64)); + // stfd f13,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.f13.u64); + // lwz r11,84(r1) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r1.u32 + 84); + // mr r5,r11 + ctx.r5.u64 = ctx.r11.u64; + // mr r10,r5 + ctx.r10.u64 = ctx.r5.u64; + // mulhw r9,r10,r7 + ctx.r9.s64 = (int64_t(ctx.r10.s32) * int64_t(ctx.r7.s32)) >> 32; + // add r4,r9,r10 + ctx.r4.u64 = ctx.r9.u64 + ctx.r10.u64; + // srawi r10,r4,11 + ctx.xer.ca = (ctx.r4.s32 < 0) & ((ctx.r4.u32 & 0x7FF) != 0); + ctx.r10.s64 = ctx.r4.s32 >> 11; + // rlwinm r9,r10,1,31,31 + ctx.r9.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 1) & 0x1; + // add r3,r10,r9 + ctx.r3.u64 = ctx.r10.u64 + ctx.r9.u64; + // mulli r10,r3,3600 + ctx.r10.s64 = static_cast(ctx.r3.u64 * static_cast(3600)); + // subf r9,r10,r5 + ctx.r9.u64 = ctx.r5.u64 - ctx.r10.u64; + // subf r7,r9,r11 + ctx.r7.u64 = ctx.r11.u64 - ctx.r9.u64; + // divw r10,r9,r6 + ctx.r10.u64 = uint32_t((ctx.r6.s32 && !(ctx.r9.s32 == INT32_MIN && ctx.r6.s32 == -1)) ? ctx.r9.s32 / ctx.r6.s32 : 0); + // divw r11,r7,r8 + ctx.r11.u64 = uint32_t((ctx.r8.s32 && !(ctx.r7.s32 == INT32_MIN && ctx.r8.s32 == -1)) ? ctx.r7.s32 / ctx.r8.s32 : 0); + // cmpwi cr6,r11,12 + ctx.cr6.compare(ctx.r11.s32, 12, ctx.xer); + // blt cr6,0x82643ce8 + if (ctx.cr6.lt) goto loc_82643CE8; + // addi r11,r11,-12 + ctx.r11.s64 = ctx.r11.s64 + -12; +loc_82643CE8: + // extsw r10,r10 + ctx.r10.s64 = ctx.r10.s32; + // extsw r9,r11 + ctx.r9.s64 = ctx.r11.s32; + // std r10,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r10.u64); + // lfd f0,80(r1) + ctx.fpscr.disableFlushMode(); + ctx.f0.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); + // std r9,80(r1) + PPC_STORE_U64(ctx.r1.u32 + 80, ctx.r9.u64); + // lfd f13,80(r1) + ctx.f13.u64 = PPC_LOAD_U64(ctx.r1.u32 + 80); + // fcfid f11,f0 + ctx.f11.f64 = double(ctx.f0.s64); + // lis r8,-32234 + ctx.r8.s64 = -2112487424; + // fcfid f12,f13 + ctx.f12.f64 = double(ctx.f13.s64); + // lfs f0,4756(r8) + temp.u32 = PPC_LOAD_U32(ctx.r8.u32 + 4756); + ctx.f0.f64 = double(temp.f32); + // frsp f29,f11 + ctx.f29.f64 = double(float(ctx.f11.f64)); + // lis r7,-32234 + ctx.r7.s64 = -2112487424; + // lis r6,-32234 + ctx.r6.s64 = -2112487424; + // addi r3,r1,80 + ctx.r3.s64 = ctx.r1.s64 + 80; + // lfs f31,-14556(r7) + temp.u32 = PPC_LOAD_U32(ctx.r7.u32 + -14556); + ctx.f31.f64 = double(temp.f32); + // lfs f13,5068(r6) + temp.u32 = PPC_LOAD_U32(ctx.r6.u32 + 5068); + ctx.f13.f64 = double(temp.f32); + // fmr f2,f31 + ctx.f2.f64 = ctx.f31.f64; + // fmr f1,f31 + ctx.f1.f64 = ctx.f31.f64; + // frsp f10,f12 + ctx.f10.f64 = double(float(ctx.f12.f64)); + // fmadds f9,f29,f0,f10 + ctx.f9.f64 = double(float(ctx.f29.f64 * ctx.f0.f64 + ctx.f10.f64)); + // fmuls f3,f9,f13 + ctx.f3.f64 = double(float(ctx.f9.f64 * ctx.f13.f64)); + // bl 0x82712728 + ctx.lr = 0x82643D40; + sub_82712728(ctx, base); + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // lwz r3,472(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 472); + // bl 0x826b4478 + ctx.lr = 0x82643D4C; + sub_826B4478(ctx, base); + // lis r5,-32234 + ctx.r5.s64 = -2112487424; + // addi r3,r1,80 + ctx.r3.s64 = ctx.r1.s64 + 80; + // fmr f2,f31 + ctx.fpscr.disableFlushMode(); + ctx.f2.f64 = ctx.f31.f64; + // fmr f1,f31 + ctx.f1.f64 = ctx.f31.f64; + // lfs f0,7536(r5) + temp.u32 = PPC_LOAD_U32(ctx.r5.u32 + 7536); + ctx.f0.f64 = double(temp.f32); + // fmuls f3,f29,f0 + ctx.f3.f64 = double(float(ctx.f29.f64 * ctx.f0.f64)); + // bl 0x82712728 + ctx.lr = 0x82643D68; + sub_82712728(ctx, base); + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // lwz r3,476(r31) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 476); + // bl 0x826b4478 + ctx.lr = 0x82643D74; + sub_826B4478(ctx, base); + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // fmr f1,f30 + ctx.fpscr.disableFlushMode(); + ctx.f1.f64 = ctx.f30.f64; + // bl 0x82643db0 + ctx.lr = 0x82643D80; + sub_82643DB0(ctx, base); +loc_82643D80: + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // lfd f29,-40(r1) + ctx.fpscr.disableFlushMode(); + ctx.f29.u64 = PPC_LOAD_U64(ctx.r1.u32 + -40); + // lfd f30,-32(r1) + ctx.f30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -32); + // lfd f31,-24(r1) + ctx.f31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); + // ld r31,-16(r1) + ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); + // blr + return; +loc_82643DA0: + // li r10,1 + ctx.r10.s64 = 1; + // li r11,1 + ctx.r11.s64 = 1; + // b 0x82643ce8 + goto loc_82643CE8; +} + +__attribute__((alias("__imp__sub_82643DB0"))) PPC_WEAK_FUNC(sub_82643DB0); +PPC_FUNC_IMPL(__imp__sub_82643DB0) { + PPC_FUNC_PROLOGUE(); + PPCRegister temp{}; + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // std r30,-24(r1) + PPC_STORE_U64(ctx.r1.u32 + -24, ctx.r30.u64); + // std r31,-16(r1) + PPC_STORE_U64(ctx.r1.u32 + -16, ctx.r31.u64); + // stfd f31,-32(r1) + ctx.fpscr.disableFlushMode(); + PPC_STORE_U64(ctx.r1.u32 + -32, ctx.f31.u64); + // stwu r1,-144(r1) + ea = -144 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // lis r11,-31780 + ctx.r11.s64 = -2082734080; + // fmr f31,f1 + ctx.f31.f64 = ctx.f1.f64; + // lis r10,-32234 + ctx.r10.s64 = -2112487424; + // addi r31,r11,-4788 + ctx.r31.s64 = ctx.r11.s64 + -4788; + // mr r30,r3 + ctx.r30.u64 = ctx.r3.u64; + // lfs f0,-14556(r10) + temp.u32 = PPC_LOAD_U32(ctx.r10.u32 + -14556); + ctx.f0.f64 = double(temp.f32); + // lwz r11,48(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 48); + // stfs f0,88(r1) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r1.u32 + 88, temp.u32); + // stfs f0,84(r1) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); + // stfs f0,80(r1) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r1.u32 + 80, temp.u32); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // bne cr6,0x82643e04 + if (!ctx.cr6.eq) goto loc_82643E04; + // lwz r11,52(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 52); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x82643e10 + if (ctx.cr6.eq) goto loc_82643E10; +loc_82643E04: + // lwz r11,24(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 24); + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // bne cr6,0x82643e14 + if (!ctx.cr6.eq) goto loc_82643E14; +loc_82643E10: + // lwz r11,4(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4); +loc_82643E14: + // mr r4,r11 + ctx.r4.u64 = ctx.r11.u64; + // li r3,9126 + ctx.r3.s64 = 9126; + // bl 0x8258abe8 + ctx.lr = 0x82643E20; + sub_8258ABE8(ctx, base); + // cmplwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); + // beq cr6,0x82643e7c + if (ctx.cr6.eq) goto loc_82643E7C; + // lis r11,-32234 + ctx.r11.s64 = -2112487424; + // lfs f13,488(r30) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 488); + ctx.f13.f64 = double(temp.f32); + // lis r10,-31835 + ctx.r10.s64 = -2086338560; + // li r31,9126 + ctx.r31.s64 = 9126; + // lfs f0,7532(r11) + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 7532); + ctx.f0.f64 = double(temp.f32); + // lwz r11,25072(r10) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r10.u32 + 25072); + // fsubs f12,f13,f0 + ctx.f12.f64 = double(float(ctx.f13.f64 - ctx.f0.f64)); + // lfs f13,492(r30) + temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 492); + ctx.f13.f64 = double(temp.f32); + // stfs f12,80(r1) + temp.f32 = float(ctx.f12.f64); + PPC_STORE_U32(ctx.r1.u32 + 80, temp.u32); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x82643e68 + if (ctx.cr6.eq) goto loc_82643E68; + // lis r11,-32234 + ctx.r11.s64 = -2112487424; + // lfs f0,5332(r11) + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 5332); + ctx.f0.f64 = double(temp.f32); + // fadds f12,f13,f0 + ctx.f12.f64 = double(float(ctx.f13.f64 + ctx.f0.f64)); + // stfs f12,84(r1) + temp.f32 = float(ctx.f12.f64); + PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); + // b 0x82643ecc + goto loc_82643ECC; +loc_82643E68: + // lis r11,-32234 + ctx.r11.s64 = -2112487424; + // lfs f0,5712(r11) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 5712); + ctx.f0.f64 = double(temp.f32); + // fadds f12,f13,f0 + ctx.f12.f64 = double(float(ctx.f13.f64 + ctx.f0.f64)); + // stfs f12,84(r1) + temp.f32 = float(ctx.f12.f64); + PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); + // b 0x82643ecc + goto loc_82643ECC; +loc_82643E7C: + // lwz r11,48(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 48); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // bne cr6,0x82643e94 + if (!ctx.cr6.eq) goto loc_82643E94; + // lwz r11,52(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 52); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // beq cr6,0x82643ea0 + if (ctx.cr6.eq) goto loc_82643EA0; +loc_82643E94: + // lwz r11,24(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 24); + // cmplwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.u32, 0, ctx.xer); + // bne cr6,0x82643ea4 + if (!ctx.cr6.eq) goto loc_82643EA4; +loc_82643EA0: + // lwz r11,4(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 4); +loc_82643EA4: + // mr r4,r11 + ctx.r4.u64 = ctx.r11.u64; + // li r3,9127 + ctx.r3.s64 = 9127; + // bl 0x8258abe8 + ctx.lr = 0x82643EB0; + sub_8258ABE8(ctx, base); + // cmplwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.u32, 0, ctx.xer); + // beq cr6,0x82643f28 + if (ctx.cr6.eq) goto loc_82643F28; + // lfs f0,488(r30) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 488); + ctx.f0.f64 = double(temp.f32); + // li r31,9127 + ctx.r31.s64 = 9127; + // lfs f13,492(r30) + temp.u32 = PPC_LOAD_U32(ctx.r30.u32 + 492); + ctx.f13.f64 = double(temp.f32); + // stfs f0,80(r1) + temp.f32 = float(ctx.f0.f64); + PPC_STORE_U32(ctx.r1.u32 + 80, temp.u32); + // stfs f13,84(r1) + temp.f32 = float(ctx.f13.f64); + PPC_STORE_U32(ctx.r1.u32 + 84, temp.u32); +loc_82643ECC: + // addi r4,r1,96 + ctx.r4.s64 = ctx.r1.s64 + 96; + // lwz r3,4(r30) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); + // bl 0x826b4288 + ctx.lr = 0x82643ED8; + sub_826B4288(ctx, base); + // lis r11,-32234 + ctx.r11.s64 = -2112487424; + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // fmr f2,f31 + ctx.fpscr.disableFlushMode(); + ctx.f2.f64 = ctx.f31.f64; + // addi r3,r1,96 + ctx.r3.s64 = ctx.r1.s64 + 96; + // lfs f1,5992(r11) + temp.u32 = PPC_LOAD_U32(ctx.r11.u32 + 5992); + ctx.f1.f64 = double(temp.f32); + // bl 0x8224b388 + ctx.lr = 0x82643EF0; + sub_8224B388(ctx, base); + // addi r4,r1,96 + ctx.r4.s64 = ctx.r1.s64 + 96; + // lwz r3,4(r30) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); + // bl 0x826b42e8 + ctx.lr = 0x82643EFC; + sub_826B42E8(ctx, base); + // lis r10,-32242 + ctx.r10.s64 = -2113011712; + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // addi r9,r10,25248 + ctx.r9.s64 = ctx.r10.s64 + 25248; + // addi r3,r1,96 + ctx.r3.s64 = ctx.r1.s64 + 96; + // lfs f1,4(r9) + ctx.fpscr.disableFlushMode(); + temp.u32 = PPC_LOAD_U32(ctx.r9.u32 + 4); + ctx.f1.f64 = double(temp.f32); + // bl 0x8224c300 + ctx.lr = 0x82643F14; + sub_8224C300(ctx, base); + // cmpwi cr6,r3,0 + ctx.cr6.compare(ctx.r3.s32, 0, ctx.xer); + // beq cr6,0x82643f28 + if (ctx.cr6.eq) goto loc_82643F28; + // li r4,0 + ctx.r4.s64 = 0; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x8258adc8 + ctx.lr = 0x82643F28; + sub_8258ADC8(ctx, base); +loc_82643F28: + // addi r1,r1,144 + ctx.r1.s64 = ctx.r1.s64 + 144; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // lfd f31,-32(r1) + ctx.fpscr.disableFlushMode(); + ctx.f31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -32); + // ld r30,-24(r1) + ctx.r30.u64 = PPC_LOAD_U64(ctx.r1.u32 + -24); + // ld r31,-16(r1) + ctx.r31.u64 = PPC_LOAD_U64(ctx.r1.u32 + -16); + // blr + return; +} + +__attribute__((alias("__imp__sub_82643F48"))) PPC_WEAK_FUNC(sub_82643F48); +PPC_FUNC_IMPL(__imp__sub_82643F48) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1628 + ctx.lr = 0x82643F50; + __savegprlr_28(ctx, base); + // stwu r1,-128(r1) + ea = -128 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r29,r4 + ctx.r29.u64 = ctx.r4.u64; + // li r30,0 + ctx.r30.s64 = 0; + // mr r28,r3 + ctx.r28.u64 = ctx.r3.u64; + // li r4,0 + ctx.r4.s64 = 0; + // li r3,500 + ctx.r3.s64 = 500; + // stw r30,0(r29) + PPC_STORE_U32(ctx.r29.u32 + 0, ctx.r30.u32); + // bl 0x82223cc0 + ctx.lr = 0x82643F70; + sub_82223CC0(ctx, base); + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // bl 0x82223fb8 + ctx.lr = 0x82643F78; + sub_82223FB8(ctx, base); + // cmplwi cr6,r31,0 + ctx.cr6.compare(ctx.r31.u32, 0, ctx.xer); + // beq cr6,0x82643fb8 + if (ctx.cr6.eq) goto loc_82643FB8; + // li r4,137 + ctx.r4.s64 = 137; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x825c52a0 + ctx.lr = 0x82643F8C; + sub_825C52A0(ctx, base); + // lis r11,-32234 + ctx.r11.s64 = -2112487424; + // li r3,0 + ctx.r3.s64 = 0; + // addi r10,r11,-23728 + ctx.r10.s64 = ctx.r11.s64 + -23728; + // stw r10,0(r31) + PPC_STORE_U32(ctx.r31.u32 + 0, ctx.r10.u32); + // stw r30,472(r31) + PPC_STORE_U32(ctx.r31.u32 + 472, ctx.r30.u32); + // stw r30,476(r31) + PPC_STORE_U32(ctx.r31.u32 + 476, ctx.r30.u32); + // stw r30,480(r31) + PPC_STORE_U32(ctx.r31.u32 + 480, ctx.r30.u32); + // stw r28,4(r31) + PPC_STORE_U32(ctx.r31.u32 + 4, ctx.r28.u32); + // stw r31,0(r29) + PPC_STORE_U32(ctx.r29.u32 + 0, ctx.r31.u32); + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +loc_82643FB8: + // lis r3,-32761 + ctx.r3.s64 = -2147024896; + // ori r3,r3,14 + ctx.r3.u64 = ctx.r3.u64 | 14; + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +} + __attribute__((alias("__imp__sub_82643FC8"))) PPC_WEAK_FUNC(sub_82643FC8); PPC_FUNC_IMPL(__imp__sub_82643FC8) { PPC_FUNC_PROLOGUE(); @@ -1588,7 +2151,7 @@ PPC_FUNC_IMPL(__imp__sub_826449F0) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x82644A70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // addi r4,r1,80 @@ -12161,7 +12724,7 @@ PPC_FUNC_IMPL(__imp__sub_826493C8) { ctx.r25.u64 = ctx.r31.u32 & 0xFF; // bl 0x82250578 ctx.lr = 0x82649454; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // clrlwi r11,r31,31 ctx.r11.u64 = ctx.r31.u32 & 0x1; // rlwinm r10,r31,31,31,31 @@ -16442,7 +17005,7 @@ PPC_FUNC_IMPL(__imp__sub_8264AF98) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x8264B120; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9344 ctx.r11.s64 = 9344; // stw r28,136(r1) @@ -16462,7 +17025,7 @@ PPC_FUNC_IMPL(__imp__sub_8264AF98) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x8264B144; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,4604 ctx.r10.s64 = 4604; // stw r28,152(r1) @@ -72938,506 +73501,3 @@ PPC_FUNC_IMPL(__imp__sub_826628C0) { return; } -__attribute__((alias("__imp__sub_82662940"))) PPC_WEAK_FUNC(sub_82662940); -PPC_FUNC_IMPL(__imp__sub_82662940) { - PPC_FUNC_PROLOGUE(); - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // subfic r10,r4,63 - ctx.xer.ca = ctx.r4.u32 <= 63; - ctx.r10.u64 = static_cast(63) - ctx.r4.u64; - // li r8,1 - ctx.r8.s64 = 1; - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r11,r11,r3 - ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; - // clrldi r10,r10,32 - ctx.r10.u64 = ctx.r10.u64 & 0xFFFFFFFF; - // li r9,0 - ctx.r9.s64 = 0; - // sld r7,r8,r10 - ctx.r7.u64 = ctx.r10.u8 & 0x40 ? 0 : (ctx.r8.u64 << (ctx.r10.u8 & 0x7F)); - // ld r6,9496(r11) - ctx.r6.u64 = PPC_LOAD_U64(ctx.r11.u32 + 9496); - // addi r4,r4,2248 - ctx.r4.s64 = ctx.r4.s64 + 2248; - // stw r9,9932(r11) - PPC_STORE_U32(ctx.r11.u32 + 9932, ctx.r9.u32); - // addi r10,r11,368 - ctx.r10.s64 = ctx.r11.s64 + 368; - // or r9,r7,r6 - ctx.r9.u64 = ctx.r7.u64 | ctx.r6.u64; - // rlwinm r7,r4,2,0,29 - ctx.r7.u64 = __builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 2) & 0xFFFFFFFC; - // std r9,9496(r11) - PPC_STORE_U64(ctx.r11.u32 + 9496, ctx.r9.u64); - // addi r11,r10,9208 - ctx.r11.s64 = ctx.r10.s64 + 9208; - // rlwinm r9,r7,27,5,29 - ctx.r9.u64 = __builtin_rotateleft64(ctx.r7.u32 | (ctx.r7.u64 << 32), 27) & 0x7FFFFFC; - // rlwinm r6,r7,30,27,31 - ctx.r6.u64 = __builtin_rotateleft64(ctx.r7.u32 | (ctx.r7.u64 << 32), 30) & 0x1F; - // slw r8,r8,r6 - ctx.r8.u64 = ctx.r6.u8 & 0x20 ? 0 : (ctx.r8.u32 << (ctx.r6.u8 & 0x3F)); - // lwzx r6,r9,r11 - ctx.r6.u64 = PPC_LOAD_U32(ctx.r9.u32 + ctx.r11.u32); - // or r8,r8,r6 - ctx.r8.u64 = ctx.r8.u64 | ctx.r6.u64; - // stwx r8,r9,r11 - PPC_STORE_U32(ctx.r9.u32 + ctx.r11.u32, ctx.r8.u32); - // lbz r11,7(r5) - ctx.r11.u64 = PPC_LOAD_U8(ctx.r5.u32 + 7); - // lbz r9,3(r5) - ctx.r9.u64 = PPC_LOAD_U8(ctx.r5.u32 + 3); - // lbz r8,11(r5) - ctx.r8.u64 = PPC_LOAD_U8(ctx.r5.u32 + 11); - // rotlwi r8,r8,8 - ctx.r8.u64 = __builtin_rotateleft32(ctx.r8.u32, 8); - // or r11,r8,r11 - ctx.r11.u64 = ctx.r8.u64 | ctx.r11.u64; - // rlwinm r11,r11,8,0,23 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 8) & 0xFFFFFF00; - // or r11,r11,r9 - ctx.r11.u64 = ctx.r11.u64 | ctx.r9.u64; - // stwx r11,r7,r10 - PPC_STORE_U32(ctx.r7.u32 + ctx.r10.u32, ctx.r11.u32); - // blr - return; -} - -__attribute__((alias("__imp__sub_826629C0"))) PPC_WEAK_FUNC(sub_826629C0); -PPC_FUNC_IMPL(__imp__sub_826629C0) { - PPC_FUNC_PROLOGUE(); - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // li r10,0 - ctx.r10.s64 = 0; - // rlwinm r9,r4,30,2,31 - ctx.r9.u64 = __builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 30) & 0x3FFFFFFF; - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r11,r11,r3 - ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; - // li r6,1 - ctx.r6.s64 = 1; - // stw r10,9932(r11) - PPC_STORE_U32(ctx.r11.u32 + 9932, ctx.r10.u32); - // subfic r10,r9,63 - ctx.xer.ca = ctx.r9.u32 <= 63; - ctx.r10.u64 = static_cast(63) - ctx.r9.u64; - // ld r8,9488(r11) - ctx.r8.u64 = PPC_LOAD_U64(ctx.r11.u32 + 9488); - // addi r9,r11,368 - ctx.r9.s64 = ctx.r11.s64 + 368; - // clrldi r10,r10,32 - ctx.r10.u64 = ctx.r10.u64 & 0xFFFFFFFF; - // lwz r7,9940(r11) - ctx.r7.u64 = PPC_LOAD_U32(ctx.r11.u32 + 9940); - // sld r10,r6,r10 - ctx.r10.u64 = ctx.r10.u8 & 0x40 ? 0 : (ctx.r6.u64 << (ctx.r10.u8 & 0x7F)); - // or r10,r10,r8 - ctx.r10.u64 = ctx.r10.u64 | ctx.r8.u64; - // addi r8,r9,9144 - ctx.r8.s64 = ctx.r9.s64 + 9144; - // std r10,9488(r11) - PPC_STORE_U64(ctx.r11.u32 + 9488, ctx.r10.u64); - // lwz r11,19892(r7) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r7.u32 + 19892); - // rlwinm r11,r11,6,23,23 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 6) & 0x100; - // add r10,r11,r4 - ctx.r10.u64 = ctx.r11.u64 + ctx.r4.u64; - // lwz r3,0(r5) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); - // addi r11,r10,48 - ctx.r11.s64 = ctx.r10.s64 + 48; - // rlwinm r7,r10,29,3,29 - ctx.r7.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 29) & 0x1FFFFFFC; - // rlwinm r11,r11,4,0,27 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 4) & 0xFFFFFFF0; - // clrlwi r10,r10,27 - ctx.r10.u64 = ctx.r10.u32 & 0x1F; - // add r11,r11,r9 - ctx.r11.u64 = ctx.r11.u64 + ctx.r9.u64; - // stw r3,0(r11) - PPC_STORE_U32(ctx.r11.u32 + 0, ctx.r3.u32); - // lwz r9,4(r5) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r5.u32 + 4); - // slw r10,r6,r10 - ctx.r10.u64 = ctx.r10.u8 & 0x20 ? 0 : (ctx.r6.u32 << (ctx.r10.u8 & 0x3F)); - // stw r9,4(r11) - PPC_STORE_U32(ctx.r11.u32 + 4, ctx.r9.u32); - // lwz r9,8(r5) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r5.u32 + 8); - // stw r9,8(r11) - PPC_STORE_U32(ctx.r11.u32 + 8, ctx.r9.u32); - // lwz r9,12(r5) - ctx.r9.u64 = PPC_LOAD_U32(ctx.r5.u32 + 12); - // stw r9,12(r11) - PPC_STORE_U32(ctx.r11.u32 + 12, ctx.r9.u32); - // lwzx r11,r7,r8 - ctx.r11.u64 = PPC_LOAD_U32(ctx.r7.u32 + ctx.r8.u32); - // or r11,r10,r11 - ctx.r11.u64 = ctx.r10.u64 | ctx.r11.u64; - // stwx r11,r7,r8 - PPC_STORE_U32(ctx.r7.u32 + ctx.r8.u32, ctx.r11.u32); - // blr - return; -} - -__attribute__((alias("__imp__sub_82662A58"))) PPC_WEAK_FUNC(sub_82662A58); -PPC_FUNC_IMPL(__imp__sub_82662A58) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae1628 - ctx.lr = 0x82662A60; - __savegprlr_28(ctx, base); - // stwu r1,-128(r1) - ea = -128 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // mr r31,r3 - ctx.r31.u64 = ctx.r3.u64; - // mr r30,r5 - ctx.r30.u64 = ctx.r5.u64; - // addi r29,r31,19908 - ctx.r29.s64 = ctx.r31.s64 + 19908; - // addi r11,r30,3 - ctx.r11.s64 = ctx.r30.s64 + 3; - // mr r28,r4 - ctx.r28.u64 = ctx.r4.u64; - // addi r5,r31,19900 - ctx.r5.s64 = ctx.r31.s64 + 19900; - // rlwinm r4,r11,30,2,31 - ctx.r4.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 30) & 0x3FFFFFFF; - // mr r3,r29 - ctx.r3.u64 = ctx.r29.u64; - // bl 0x826640c8 - ctx.lr = 0x82662A88; - sub_826640C8(ctx, base); - // lwz r11,19900(r31) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 19900); - // cmpwi cr6,r11,0 - ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); - // blt cr6,0x82662aa4 - if (ctx.cr6.lt) goto loc_82662AA4; - // mr r5,r30 - ctx.r5.u64 = ctx.r30.u64; - // lwz r3,0(r29) - ctx.r3.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); - // mr r4,r28 - ctx.r4.u64 = ctx.r28.u64; - // bl 0x82ae1c70 - ctx.lr = 0x82662AA4; - rexcrt_memcpy(ctx, base); -loc_82662AA4: - // addi r1,r1,128 - ctx.r1.s64 = ctx.r1.s64 + 128; - // b 0x82ae1678 - __restgprlr_28(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_82662AB0"))) PPC_WEAK_FUNC(sub_82662AB0); -PPC_FUNC_IMPL(__imp__sub_82662AB0) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // stwu r1,-96(r1) - ea = -96 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r11,r11,r3 - ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; - // addi r11,r11,16 - ctx.r11.s64 = ctx.r11.s64 + 16; - // lwz r10,0(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); - // lwz r10,19892(r10) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 19892); - // rlwinm. r10,r10,30,31,31 - ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 30) & 0x1; - ctx.cr0.compare(ctx.r10.s32, 0, ctx.xer); - // beq 0x82662b18 - if (ctx.cr0.eq) goto loc_82662B18; - // rlwinm r9,r6,17,0,14 - ctx.r9.u64 = __builtin_rotateleft64(ctx.r6.u32 | (ctx.r6.u64 << 32), 17) & 0xFFFE0000; - // rlwinm r10,r6,0,23,23 - ctx.r10.u64 = __builtin_rotateleft64(ctx.r6.u32 | (ctx.r6.u64 << 32), 0) & 0x100; - // rlwimi r5,r4,4,24,27 - ctx.r5.u64 = (__builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 4) & 0xF0) | (ctx.r5.u64 & 0xFFFFFFFFFFFFFF0F); - // or r10,r10,r9 - ctx.r10.u64 = ctx.r10.u64 | ctx.r9.u64; - // rlwinm r9,r6,0,22,22 - ctx.r9.u64 = __builtin_rotateleft64(ctx.r6.u32 | (ctx.r6.u64 << 32), 0) & 0x200; - // rlwimi r10,r5,9,15,22 - ctx.r10.u64 = (__builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 9) & 0x1FE00) | (ctx.r10.u64 & 0xFFFFFFFFFFFE01FF); - // addi r5,r11,80 - ctx.r5.s64 = ctx.r11.s64 + 80; - // rlwinm r10,r10,2,0,29 - ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; - // addi r3,r11,268 - ctx.r3.s64 = ctx.r11.s64 + 268; - // or r10,r10,r9 - ctx.r10.u64 = ctx.r10.u64 | ctx.r9.u64; - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // rlwinm r11,r10,5,0,26 - ctx.r11.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 5) & 0xFFFFFFE0; - // stw r11,80(r1) - PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r11.u32); - // bl 0x82664000 - ctx.lr = 0x82662B14; - sub_82664000(ctx, base); - // b 0x82662b38 - goto loc_82662B38; -loc_82662B18: - // rlwimi r4,r5,4,24,27 - ctx.r4.u64 = (__builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 4) & 0xF0) | (ctx.r4.u64 & 0xFFFFFFFFFFFFFF0F); - // addi r5,r11,80 - ctx.r5.s64 = ctx.r11.s64 + 80; - // clrlwi r10,r4,24 - ctx.r10.u64 = ctx.r4.u32 & 0xFF; - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // rlwimi r6,r10,8,0,23 - ctx.r6.u64 = (__builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 8) & 0xFFFFFF00) | (ctx.r6.u64 & 0xFFFFFFFF000000FF); - // addi r3,r11,304 - ctx.r3.s64 = ctx.r11.s64 + 304; - // stw r6,80(r1) - PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r6.u32); - // bl 0x82664000 - ctx.lr = 0x82662B38; - sub_82664000(ctx, base); -loc_82662B38: - // addi r1,r1,96 - ctx.r1.s64 = ctx.r1.s64 + 96; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // blr - return; -} - -__attribute__((alias("__imp__sub_82662B48"))) PPC_WEAK_FUNC(sub_82662B48); -PPC_FUNC_IMPL(__imp__sub_82662B48) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // stw r12,-8(r1) - PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); - // stwu r1,-96(r1) - ea = -96 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r11,r11,r3 - ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; - // addi r11,r11,16 - ctx.r11.s64 = ctx.r11.s64 + 16; - // lwz r10,0(r11) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); - // lwz r10,19892(r10) - ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 19892); - // rlwinm. r10,r10,30,31,31 - ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 30) & 0x1; - ctx.cr0.compare(ctx.r10.s32, 0, ctx.xer); - // bne 0x82662b94 - if (!ctx.cr0.eq) goto loc_82662B94; - // rlwimi r4,r5,1,27,30 - ctx.r4.u64 = (__builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 1) & 0x1E) | (ctx.r4.u64 & 0xFFFFFFFFFFFFFFE1); - // addi r5,r11,80 - ctx.r5.s64 = ctx.r11.s64 + 80; - // clrlwi r10,r4,27 - ctx.r10.u64 = ctx.r4.u32 & 0x1F; - // addi r4,r1,80 - ctx.r4.s64 = ctx.r1.s64 + 80; - // rlwimi r6,r10,8,0,23 - ctx.r6.u64 = (__builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 8) & 0xFFFFFF00) | (ctx.r6.u64 & 0xFFFFFFFF000000FF); - // addi r3,r11,280 - ctx.r3.s64 = ctx.r11.s64 + 280; - // stw r6,80(r1) - PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r6.u32); - // bl 0x82664000 - ctx.lr = 0x82662B94; - sub_82664000(ctx, base); -loc_82662B94: - // addi r1,r1,96 - ctx.r1.s64 = ctx.r1.s64 + 96; - // lwz r12,-8(r1) - ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); - // mtlr r12 - ctx.lr = ctx.r12.u64; - // blr - return; -} - -__attribute__((alias("__imp__sub_82662BA8"))) PPC_WEAK_FUNC(sub_82662BA8); -PPC_FUNC_IMPL(__imp__sub_82662BA8) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae162c - ctx.lr = 0x82662BB0; - __savegprlr_29(ctx, base); - // stwu r1,-112(r1) - ea = -112 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // mr r29,r4 - ctx.r29.u64 = ctx.r4.u64; - // li r6,0 - ctx.r6.s64 = 0; - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r30,r11,r3 - ctx.r30.u64 = ctx.r11.u64 + ctx.r3.u64; - // mr r7,r29 - ctx.r7.u64 = ctx.r29.u64; - // addi r31,r30,16 - ctx.r31.s64 = ctx.r30.s64 + 16; - // li r5,0 - ctx.r5.s64 = 0; - // li r4,1 - ctx.r4.s64 = 1; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x82661b60 - ctx.lr = 0x82662BE0; - sub_82661B60(ctx, base); - // addi r5,r31,80 - ctx.r5.s64 = ctx.r31.s64 + 80; - // mr r4,r29 - ctx.r4.u64 = ctx.r29.u64; - // addi r3,r31,96 - ctx.r3.s64 = ctx.r31.s64 + 96; - // bl 0x82663e58 - ctx.lr = 0x82662BF0; - sub_82663E58(ctx, base); - // lwz r11,116(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 116); - // addi r3,r11,-1 - ctx.r3.s64 = ctx.r11.s64 + -1; - // addi r1,r1,112 - ctx.r1.s64 = ctx.r1.s64 + 112; - // b 0x82ae167c - __restgprlr_29(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_82662C00"))) PPC_WEAK_FUNC(sub_82662C00); -PPC_FUNC_IMPL(__imp__sub_82662C00) { - PPC_FUNC_PROLOGUE(); - uint32_t ea{}; - // mflr r12 - ctx.r12.u64 = ctx.lr; - // bl 0x82ae162c - ctx.lr = 0x82662C08; - __savegprlr_29(ctx, base); - // stwu r1,-112(r1) - ea = -112 + ctx.r1.u32; - PPC_STORE_U32(ea, ctx.r1.u32); - ctx.r1.u32 = ea; - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // mr r29,r4 - ctx.r29.u64 = ctx.r4.u64; - // cntlzw r10,r5 - ctx.r10.u64 = ctx.r5.u32 == 0 ? 32 : __builtin_clz(ctx.r5.u32); - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r30,r11,r3 - ctx.r30.u64 = ctx.r11.u64 + ctx.r3.u64; - // mr r7,r29 - ctx.r7.u64 = ctx.r29.u64; - // addi r31,r30,16 - ctx.r31.s64 = ctx.r30.s64 + 16; - // li r6,0 - ctx.r6.s64 = 0; - // rlwinm r5,r10,27,31,31 - ctx.r5.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; - // li r4,1 - ctx.r4.s64 = 1; - // mr r3,r31 - ctx.r3.u64 = ctx.r31.u64; - // bl 0x82661b60 - ctx.lr = 0x82662C3C; - sub_82661B60(ctx, base); - // addi r5,r31,80 - ctx.r5.s64 = ctx.r31.s64 + 80; - // mr r4,r29 - ctx.r4.u64 = ctx.r29.u64; - // addi r3,r31,96 - ctx.r3.s64 = ctx.r31.s64 + 96; - // bl 0x82663e58 - ctx.lr = 0x82662C4C; - sub_82663E58(ctx, base); - // lwz r11,116(r30) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 116); - // addi r3,r11,-1 - ctx.r3.s64 = ctx.r11.s64 + -1; - // addi r1,r1,112 - ctx.r1.s64 = ctx.r1.s64 + 112; - // b 0x82ae167c - __restgprlr_29(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_82662C60"))) PPC_WEAK_FUNC(sub_82662C60); -PPC_FUNC_IMPL(__imp__sub_82662C60) { - PPC_FUNC_PROLOGUE(); - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r11,r11,r3 - ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; - // addi r3,r11,16 - ctx.r3.s64 = ctx.r11.s64 + 16; - // b 0x826604c8 - sub_826604C8(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_82662C78"))) PPC_WEAK_FUNC(sub_82662C78); -PPC_FUNC_IMPL(__imp__sub_82662C78) { - PPC_FUNC_PROLOGUE(); - // lwz r11,0(r3) - ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); - // mulli r11,r11,9936 - ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); - // add r11,r11,r3 - ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; - // addi r3,r11,16 - ctx.r3.s64 = ctx.r11.s64 + 16; - // b 0x82660658 - sub_82660658(ctx, base); - return; -} - -__attribute__((alias("__imp__sub_82662C90"))) PPC_WEAK_FUNC(sub_82662C90); -PPC_FUNC_IMPL(__imp__sub_82662C90) { - PPC_FUNC_PROLOGUE(); - // b 0x82662370 - sub_82662370(ctx, base); - return; -} - diff --git a/generated/retip_recomp.37.cpp b/generated/retip_recomp.37.cpp index ab4f40c..e09b68b 100644 --- a/generated/retip_recomp.37.cpp +++ b/generated/retip_recomp.37.cpp @@ -1,5 +1,508 @@ #include "retip_init.h" +__attribute__((alias("__imp__sub_82662940"))) PPC_WEAK_FUNC(sub_82662940); +PPC_FUNC_IMPL(__imp__sub_82662940) { + PPC_FUNC_PROLOGUE(); + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // subfic r10,r4,63 + ctx.xer.ca = ctx.r4.u32 <= 63; + ctx.r10.u64 = static_cast(63) - ctx.r4.u64; + // li r8,1 + ctx.r8.s64 = 1; + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r11,r11,r3 + ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; + // clrldi r10,r10,32 + ctx.r10.u64 = ctx.r10.u64 & 0xFFFFFFFF; + // li r9,0 + ctx.r9.s64 = 0; + // sld r7,r8,r10 + ctx.r7.u64 = ctx.r10.u8 & 0x40 ? 0 : (ctx.r8.u64 << (ctx.r10.u8 & 0x7F)); + // ld r6,9496(r11) + ctx.r6.u64 = PPC_LOAD_U64(ctx.r11.u32 + 9496); + // addi r4,r4,2248 + ctx.r4.s64 = ctx.r4.s64 + 2248; + // stw r9,9932(r11) + PPC_STORE_U32(ctx.r11.u32 + 9932, ctx.r9.u32); + // addi r10,r11,368 + ctx.r10.s64 = ctx.r11.s64 + 368; + // or r9,r7,r6 + ctx.r9.u64 = ctx.r7.u64 | ctx.r6.u64; + // rlwinm r7,r4,2,0,29 + ctx.r7.u64 = __builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 2) & 0xFFFFFFFC; + // std r9,9496(r11) + PPC_STORE_U64(ctx.r11.u32 + 9496, ctx.r9.u64); + // addi r11,r10,9208 + ctx.r11.s64 = ctx.r10.s64 + 9208; + // rlwinm r9,r7,27,5,29 + ctx.r9.u64 = __builtin_rotateleft64(ctx.r7.u32 | (ctx.r7.u64 << 32), 27) & 0x7FFFFFC; + // rlwinm r6,r7,30,27,31 + ctx.r6.u64 = __builtin_rotateleft64(ctx.r7.u32 | (ctx.r7.u64 << 32), 30) & 0x1F; + // slw r8,r8,r6 + ctx.r8.u64 = ctx.r6.u8 & 0x20 ? 0 : (ctx.r8.u32 << (ctx.r6.u8 & 0x3F)); + // lwzx r6,r9,r11 + ctx.r6.u64 = PPC_LOAD_U32(ctx.r9.u32 + ctx.r11.u32); + // or r8,r8,r6 + ctx.r8.u64 = ctx.r8.u64 | ctx.r6.u64; + // stwx r8,r9,r11 + PPC_STORE_U32(ctx.r9.u32 + ctx.r11.u32, ctx.r8.u32); + // lbz r11,7(r5) + ctx.r11.u64 = PPC_LOAD_U8(ctx.r5.u32 + 7); + // lbz r9,3(r5) + ctx.r9.u64 = PPC_LOAD_U8(ctx.r5.u32 + 3); + // lbz r8,11(r5) + ctx.r8.u64 = PPC_LOAD_U8(ctx.r5.u32 + 11); + // rotlwi r8,r8,8 + ctx.r8.u64 = __builtin_rotateleft32(ctx.r8.u32, 8); + // or r11,r8,r11 + ctx.r11.u64 = ctx.r8.u64 | ctx.r11.u64; + // rlwinm r11,r11,8,0,23 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 8) & 0xFFFFFF00; + // or r11,r11,r9 + ctx.r11.u64 = ctx.r11.u64 | ctx.r9.u64; + // stwx r11,r7,r10 + PPC_STORE_U32(ctx.r7.u32 + ctx.r10.u32, ctx.r11.u32); + // blr + return; +} + +__attribute__((alias("__imp__sub_826629C0"))) PPC_WEAK_FUNC(sub_826629C0); +PPC_FUNC_IMPL(__imp__sub_826629C0) { + PPC_FUNC_PROLOGUE(); + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // li r10,0 + ctx.r10.s64 = 0; + // rlwinm r9,r4,30,2,31 + ctx.r9.u64 = __builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 30) & 0x3FFFFFFF; + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r11,r11,r3 + ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; + // li r6,1 + ctx.r6.s64 = 1; + // stw r10,9932(r11) + PPC_STORE_U32(ctx.r11.u32 + 9932, ctx.r10.u32); + // subfic r10,r9,63 + ctx.xer.ca = ctx.r9.u32 <= 63; + ctx.r10.u64 = static_cast(63) - ctx.r9.u64; + // ld r8,9488(r11) + ctx.r8.u64 = PPC_LOAD_U64(ctx.r11.u32 + 9488); + // addi r9,r11,368 + ctx.r9.s64 = ctx.r11.s64 + 368; + // clrldi r10,r10,32 + ctx.r10.u64 = ctx.r10.u64 & 0xFFFFFFFF; + // lwz r7,9940(r11) + ctx.r7.u64 = PPC_LOAD_U32(ctx.r11.u32 + 9940); + // sld r10,r6,r10 + ctx.r10.u64 = ctx.r10.u8 & 0x40 ? 0 : (ctx.r6.u64 << (ctx.r10.u8 & 0x7F)); + // or r10,r10,r8 + ctx.r10.u64 = ctx.r10.u64 | ctx.r8.u64; + // addi r8,r9,9144 + ctx.r8.s64 = ctx.r9.s64 + 9144; + // std r10,9488(r11) + PPC_STORE_U64(ctx.r11.u32 + 9488, ctx.r10.u64); + // lwz r11,19892(r7) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r7.u32 + 19892); + // rlwinm r11,r11,6,23,23 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 6) & 0x100; + // add r10,r11,r4 + ctx.r10.u64 = ctx.r11.u64 + ctx.r4.u64; + // lwz r3,0(r5) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r5.u32 + 0); + // addi r11,r10,48 + ctx.r11.s64 = ctx.r10.s64 + 48; + // rlwinm r7,r10,29,3,29 + ctx.r7.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 29) & 0x1FFFFFFC; + // rlwinm r11,r11,4,0,27 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 4) & 0xFFFFFFF0; + // clrlwi r10,r10,27 + ctx.r10.u64 = ctx.r10.u32 & 0x1F; + // add r11,r11,r9 + ctx.r11.u64 = ctx.r11.u64 + ctx.r9.u64; + // stw r3,0(r11) + PPC_STORE_U32(ctx.r11.u32 + 0, ctx.r3.u32); + // lwz r9,4(r5) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r5.u32 + 4); + // slw r10,r6,r10 + ctx.r10.u64 = ctx.r10.u8 & 0x20 ? 0 : (ctx.r6.u32 << (ctx.r10.u8 & 0x3F)); + // stw r9,4(r11) + PPC_STORE_U32(ctx.r11.u32 + 4, ctx.r9.u32); + // lwz r9,8(r5) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r5.u32 + 8); + // stw r9,8(r11) + PPC_STORE_U32(ctx.r11.u32 + 8, ctx.r9.u32); + // lwz r9,12(r5) + ctx.r9.u64 = PPC_LOAD_U32(ctx.r5.u32 + 12); + // stw r9,12(r11) + PPC_STORE_U32(ctx.r11.u32 + 12, ctx.r9.u32); + // lwzx r11,r7,r8 + ctx.r11.u64 = PPC_LOAD_U32(ctx.r7.u32 + ctx.r8.u32); + // or r11,r10,r11 + ctx.r11.u64 = ctx.r10.u64 | ctx.r11.u64; + // stwx r11,r7,r8 + PPC_STORE_U32(ctx.r7.u32 + ctx.r8.u32, ctx.r11.u32); + // blr + return; +} + +__attribute__((alias("__imp__sub_82662A58"))) PPC_WEAK_FUNC(sub_82662A58); +PPC_FUNC_IMPL(__imp__sub_82662A58) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae1628 + ctx.lr = 0x82662A60; + __savegprlr_28(ctx, base); + // stwu r1,-128(r1) + ea = -128 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // mr r31,r3 + ctx.r31.u64 = ctx.r3.u64; + // mr r30,r5 + ctx.r30.u64 = ctx.r5.u64; + // addi r29,r31,19908 + ctx.r29.s64 = ctx.r31.s64 + 19908; + // addi r11,r30,3 + ctx.r11.s64 = ctx.r30.s64 + 3; + // mr r28,r4 + ctx.r28.u64 = ctx.r4.u64; + // addi r5,r31,19900 + ctx.r5.s64 = ctx.r31.s64 + 19900; + // rlwinm r4,r11,30,2,31 + ctx.r4.u64 = __builtin_rotateleft64(ctx.r11.u32 | (ctx.r11.u64 << 32), 30) & 0x3FFFFFFF; + // mr r3,r29 + ctx.r3.u64 = ctx.r29.u64; + // bl 0x826640c8 + ctx.lr = 0x82662A88; + sub_826640C8(ctx, base); + // lwz r11,19900(r31) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 19900); + // cmpwi cr6,r11,0 + ctx.cr6.compare(ctx.r11.s32, 0, ctx.xer); + // blt cr6,0x82662aa4 + if (ctx.cr6.lt) goto loc_82662AA4; + // mr r5,r30 + ctx.r5.u64 = ctx.r30.u64; + // lwz r3,0(r29) + ctx.r3.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); + // mr r4,r28 + ctx.r4.u64 = ctx.r28.u64; + // bl 0x82ae1c70 + ctx.lr = 0x82662AA4; + rexcrt_memcpy(ctx, base); +loc_82662AA4: + // addi r1,r1,128 + ctx.r1.s64 = ctx.r1.s64 + 128; + // b 0x82ae1678 + __restgprlr_28(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_82662AB0"))) PPC_WEAK_FUNC(sub_82662AB0); +PPC_FUNC_IMPL(__imp__sub_82662AB0) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // stwu r1,-96(r1) + ea = -96 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r11,r11,r3 + ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; + // addi r11,r11,16 + ctx.r11.s64 = ctx.r11.s64 + 16; + // lwz r10,0(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); + // lwz r10,19892(r10) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 19892); + // rlwinm. r10,r10,30,31,31 + ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 30) & 0x1; + ctx.cr0.compare(ctx.r10.s32, 0, ctx.xer); + // beq 0x82662b18 + if (ctx.cr0.eq) goto loc_82662B18; + // rlwinm r9,r6,17,0,14 + ctx.r9.u64 = __builtin_rotateleft64(ctx.r6.u32 | (ctx.r6.u64 << 32), 17) & 0xFFFE0000; + // rlwinm r10,r6,0,23,23 + ctx.r10.u64 = __builtin_rotateleft64(ctx.r6.u32 | (ctx.r6.u64 << 32), 0) & 0x100; + // rlwimi r5,r4,4,24,27 + ctx.r5.u64 = (__builtin_rotateleft64(ctx.r4.u32 | (ctx.r4.u64 << 32), 4) & 0xF0) | (ctx.r5.u64 & 0xFFFFFFFFFFFFFF0F); + // or r10,r10,r9 + ctx.r10.u64 = ctx.r10.u64 | ctx.r9.u64; + // rlwinm r9,r6,0,22,22 + ctx.r9.u64 = __builtin_rotateleft64(ctx.r6.u32 | (ctx.r6.u64 << 32), 0) & 0x200; + // rlwimi r10,r5,9,15,22 + ctx.r10.u64 = (__builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 9) & 0x1FE00) | (ctx.r10.u64 & 0xFFFFFFFFFFFE01FF); + // addi r5,r11,80 + ctx.r5.s64 = ctx.r11.s64 + 80; + // rlwinm r10,r10,2,0,29 + ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 2) & 0xFFFFFFFC; + // addi r3,r11,268 + ctx.r3.s64 = ctx.r11.s64 + 268; + // or r10,r10,r9 + ctx.r10.u64 = ctx.r10.u64 | ctx.r9.u64; + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // rlwinm r11,r10,5,0,26 + ctx.r11.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 5) & 0xFFFFFFE0; + // stw r11,80(r1) + PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r11.u32); + // bl 0x82664000 + ctx.lr = 0x82662B14; + sub_82664000(ctx, base); + // b 0x82662b38 + goto loc_82662B38; +loc_82662B18: + // rlwimi r4,r5,4,24,27 + ctx.r4.u64 = (__builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 4) & 0xF0) | (ctx.r4.u64 & 0xFFFFFFFFFFFFFF0F); + // addi r5,r11,80 + ctx.r5.s64 = ctx.r11.s64 + 80; + // clrlwi r10,r4,24 + ctx.r10.u64 = ctx.r4.u32 & 0xFF; + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // rlwimi r6,r10,8,0,23 + ctx.r6.u64 = (__builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 8) & 0xFFFFFF00) | (ctx.r6.u64 & 0xFFFFFFFF000000FF); + // addi r3,r11,304 + ctx.r3.s64 = ctx.r11.s64 + 304; + // stw r6,80(r1) + PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r6.u32); + // bl 0x82664000 + ctx.lr = 0x82662B38; + sub_82664000(ctx, base); +loc_82662B38: + // addi r1,r1,96 + ctx.r1.s64 = ctx.r1.s64 + 96; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // blr + return; +} + +__attribute__((alias("__imp__sub_82662B48"))) PPC_WEAK_FUNC(sub_82662B48); +PPC_FUNC_IMPL(__imp__sub_82662B48) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // stw r12,-8(r1) + PPC_STORE_U32(ctx.r1.u32 + -8, ctx.r12.u32); + // stwu r1,-96(r1) + ea = -96 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r11,r11,r3 + ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; + // addi r11,r11,16 + ctx.r11.s64 = ctx.r11.s64 + 16; + // lwz r10,0(r11) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); + // lwz r10,19892(r10) + ctx.r10.u64 = PPC_LOAD_U32(ctx.r10.u32 + 19892); + // rlwinm. r10,r10,30,31,31 + ctx.r10.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 30) & 0x1; + ctx.cr0.compare(ctx.r10.s32, 0, ctx.xer); + // bne 0x82662b94 + if (!ctx.cr0.eq) goto loc_82662B94; + // rlwimi r4,r5,1,27,30 + ctx.r4.u64 = (__builtin_rotateleft64(ctx.r5.u32 | (ctx.r5.u64 << 32), 1) & 0x1E) | (ctx.r4.u64 & 0xFFFFFFFFFFFFFFE1); + // addi r5,r11,80 + ctx.r5.s64 = ctx.r11.s64 + 80; + // clrlwi r10,r4,27 + ctx.r10.u64 = ctx.r4.u32 & 0x1F; + // addi r4,r1,80 + ctx.r4.s64 = ctx.r1.s64 + 80; + // rlwimi r6,r10,8,0,23 + ctx.r6.u64 = (__builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 8) & 0xFFFFFF00) | (ctx.r6.u64 & 0xFFFFFFFF000000FF); + // addi r3,r11,280 + ctx.r3.s64 = ctx.r11.s64 + 280; + // stw r6,80(r1) + PPC_STORE_U32(ctx.r1.u32 + 80, ctx.r6.u32); + // bl 0x82664000 + ctx.lr = 0x82662B94; + sub_82664000(ctx, base); +loc_82662B94: + // addi r1,r1,96 + ctx.r1.s64 = ctx.r1.s64 + 96; + // lwz r12,-8(r1) + ctx.r12.u64 = PPC_LOAD_U32(ctx.r1.u32 + -8); + // mtlr r12 + ctx.lr = ctx.r12.u64; + // blr + return; +} + +__attribute__((alias("__imp__sub_82662BA8"))) PPC_WEAK_FUNC(sub_82662BA8); +PPC_FUNC_IMPL(__imp__sub_82662BA8) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae162c + ctx.lr = 0x82662BB0; + __savegprlr_29(ctx, base); + // stwu r1,-112(r1) + ea = -112 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // mr r29,r4 + ctx.r29.u64 = ctx.r4.u64; + // li r6,0 + ctx.r6.s64 = 0; + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r30,r11,r3 + ctx.r30.u64 = ctx.r11.u64 + ctx.r3.u64; + // mr r7,r29 + ctx.r7.u64 = ctx.r29.u64; + // addi r31,r30,16 + ctx.r31.s64 = ctx.r30.s64 + 16; + // li r5,0 + ctx.r5.s64 = 0; + // li r4,1 + ctx.r4.s64 = 1; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x82661b60 + ctx.lr = 0x82662BE0; + sub_82661B60(ctx, base); + // addi r5,r31,80 + ctx.r5.s64 = ctx.r31.s64 + 80; + // mr r4,r29 + ctx.r4.u64 = ctx.r29.u64; + // addi r3,r31,96 + ctx.r3.s64 = ctx.r31.s64 + 96; + // bl 0x82663e58 + ctx.lr = 0x82662BF0; + sub_82663E58(ctx, base); + // lwz r11,116(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 116); + // addi r3,r11,-1 + ctx.r3.s64 = ctx.r11.s64 + -1; + // addi r1,r1,112 + ctx.r1.s64 = ctx.r1.s64 + 112; + // b 0x82ae167c + __restgprlr_29(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_82662C00"))) PPC_WEAK_FUNC(sub_82662C00); +PPC_FUNC_IMPL(__imp__sub_82662C00) { + PPC_FUNC_PROLOGUE(); + uint32_t ea{}; + // mflr r12 + ctx.r12.u64 = ctx.lr; + // bl 0x82ae162c + ctx.lr = 0x82662C08; + __savegprlr_29(ctx, base); + // stwu r1,-112(r1) + ea = -112 + ctx.r1.u32; + PPC_STORE_U32(ea, ctx.r1.u32); + ctx.r1.u32 = ea; + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // mr r29,r4 + ctx.r29.u64 = ctx.r4.u64; + // cntlzw r10,r5 + ctx.r10.u64 = ctx.r5.u32 == 0 ? 32 : __builtin_clz(ctx.r5.u32); + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r30,r11,r3 + ctx.r30.u64 = ctx.r11.u64 + ctx.r3.u64; + // mr r7,r29 + ctx.r7.u64 = ctx.r29.u64; + // addi r31,r30,16 + ctx.r31.s64 = ctx.r30.s64 + 16; + // li r6,0 + ctx.r6.s64 = 0; + // rlwinm r5,r10,27,31,31 + ctx.r5.u64 = __builtin_rotateleft64(ctx.r10.u32 | (ctx.r10.u64 << 32), 27) & 0x1; + // li r4,1 + ctx.r4.s64 = 1; + // mr r3,r31 + ctx.r3.u64 = ctx.r31.u64; + // bl 0x82661b60 + ctx.lr = 0x82662C3C; + sub_82661B60(ctx, base); + // addi r5,r31,80 + ctx.r5.s64 = ctx.r31.s64 + 80; + // mr r4,r29 + ctx.r4.u64 = ctx.r29.u64; + // addi r3,r31,96 + ctx.r3.s64 = ctx.r31.s64 + 96; + // bl 0x82663e58 + ctx.lr = 0x82662C4C; + sub_82663E58(ctx, base); + // lwz r11,116(r30) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 116); + // addi r3,r11,-1 + ctx.r3.s64 = ctx.r11.s64 + -1; + // addi r1,r1,112 + ctx.r1.s64 = ctx.r1.s64 + 112; + // b 0x82ae167c + __restgprlr_29(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_82662C60"))) PPC_WEAK_FUNC(sub_82662C60); +PPC_FUNC_IMPL(__imp__sub_82662C60) { + PPC_FUNC_PROLOGUE(); + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r11,r11,r3 + ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; + // addi r3,r11,16 + ctx.r3.s64 = ctx.r11.s64 + 16; + // b 0x826604c8 + sub_826604C8(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_82662C78"))) PPC_WEAK_FUNC(sub_82662C78); +PPC_FUNC_IMPL(__imp__sub_82662C78) { + PPC_FUNC_PROLOGUE(); + // lwz r11,0(r3) + ctx.r11.u64 = PPC_LOAD_U32(ctx.r3.u32 + 0); + // mulli r11,r11,9936 + ctx.r11.s64 = static_cast(ctx.r11.u64 * static_cast(9936)); + // add r11,r11,r3 + ctx.r11.u64 = ctx.r11.u64 + ctx.r3.u64; + // addi r3,r11,16 + ctx.r3.s64 = ctx.r11.s64 + 16; + // b 0x82660658 + sub_82660658(ctx, base); + return; +} + +__attribute__((alias("__imp__sub_82662C90"))) PPC_WEAK_FUNC(sub_82662C90); +PPC_FUNC_IMPL(__imp__sub_82662C90) { + PPC_FUNC_PROLOGUE(); + // b 0x82662370 + sub_82662370(ctx, base); + return; +} + __attribute__((alias("__imp__sub_82662C98"))) PPC_WEAK_FUNC(sub_82662C98); PPC_FUNC_IMPL(__imp__sub_82662C98) { PPC_FUNC_PROLOGUE(); diff --git a/generated/retip_recomp.4.cpp b/generated/retip_recomp.4.cpp index 3f2d51a..11db106 100644 --- a/generated/retip_recomp.4.cpp +++ b/generated/retip_recomp.4.cpp @@ -38440,7 +38440,7 @@ PPC_FUNC_IMPL(__imp__sub_8222DC30) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8222DD20; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x821cb878 @@ -39264,7 +39264,7 @@ PPC_FUNC_IMPL(__imp__sub_8222E268) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8222E2AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x821cb878 @@ -39322,7 +39322,7 @@ PPC_FUNC_IMPL(__imp__sub_8222E268) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8222E314; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x821cb878 @@ -39553,7 +39553,7 @@ PPC_FUNC_IMPL(__imp__sub_8222E448) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8222E4A8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x821cb878 @@ -39674,7 +39674,7 @@ PPC_FUNC_IMPL(__imp__sub_8222E448) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8222E57C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r27.u32); // addi r3,r1,88 @@ -55149,7 +55149,7 @@ PPC_FUNC_IMPL(__imp__sub_82234920) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x82234E24; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r27) ctx.r11.u64 = PPC_LOAD_U32(ctx.r27.u32 + 0); // stw r19,148(r1) @@ -59007,7 +59007,7 @@ PPC_FUNC_IMPL(__imp__sub_82236850) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x82236910; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r30.u32); // addi r4,r1,88 @@ -62825,7 +62825,7 @@ PPC_FUNC_IMPL(__imp__sub_822382B8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82238308; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31790 ctx.r11.s64 = -2083389440; // stw r31,84(r1) @@ -66355,7 +66355,7 @@ PPC_FUNC_IMPL(__imp__sub_82239AF8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82239B38; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32059 ctx.r11.s64 = -2101018624; // rlwinm r29,r27,2,22,29 diff --git a/generated/retip_recomp.5.cpp b/generated/retip_recomp.5.cpp index b539ce4..72e62ae 100644 --- a/generated/retip_recomp.5.cpp +++ b/generated/retip_recomp.5.cpp @@ -1022,7 +1022,7 @@ PPC_FUNC_IMPL(__imp__sub_8223E5E8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8223E69C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r3,r1,80 @@ -1967,7 +1967,7 @@ PPC_FUNC_IMPL(__imp__sub_8223ECA0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x8223ECB8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r3,0 ctx.r3.s64 = 0; // bl 0x8223eba8 @@ -43587,7 +43587,7 @@ PPC_FUNC_IMPL(__imp__sub_8224FAF8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8224FBF0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -44981,8 +44981,8 @@ PPC_FUNC_IMPL(__imp__sub_82250520) { return; } -__attribute__((alias("__imp__sub_82250578"))) PPC_WEAK_FUNC(sub_82250578); -PPC_FUNC_IMPL(__imp__sub_82250578) { +__attribute__((alias("__imp__rex_objMsgInit_82250578"))) PPC_WEAK_FUNC(rex_objMsgInit_82250578); +PPC_FUNC_IMPL(__imp__rex_objMsgInit_82250578) { PPC_FUNC_PROLOGUE(); uint32_t ea{}; // mflr r12 @@ -65923,7 +65923,7 @@ PPC_FUNC_IMPL(__imp__sub_82259158) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82259224; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r31,1652(r28) ctx.r31.u64 = PPC_LOAD_U32(ctx.r28.u32 + 1652); // cmplwi cr6,r31,0 @@ -65972,7 +65972,7 @@ PPC_FUNC_IMPL(__imp__sub_82259158) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8225927C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r31,1652(r28) ctx.r31.u64 = PPC_LOAD_U32(ctx.r28.u32 + 1652); // cmplwi cr6,r31,0 diff --git a/generated/retip_recomp.6.cpp b/generated/retip_recomp.6.cpp index 2a8c6da..3717b3d 100644 --- a/generated/retip_recomp.6.cpp +++ b/generated/retip_recomp.6.cpp @@ -4004,7 +4004,7 @@ PPC_FUNC_IMPL(__imp__sub_8225D8D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8225D92C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -5851,7 +5851,7 @@ PPC_FUNC_IMPL(__imp__sub_8225E5D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8225E5F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r29,28(r27) ctx.r29.u64 = PPC_LOAD_U32(ctx.r27.u32 + 28); // cmplwi cr6,r29,0 @@ -5985,7 +5985,7 @@ PPC_FUNC_IMPL(__imp__sub_8225E6B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8225E6DC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,12(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 12); // stw r31,84(r1) @@ -6163,7 +6163,7 @@ PPC_FUNC_IMPL(__imp__sub_8225E7D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8225E818; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r31,20(r31) ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 20); // cmplwi cr6,r31,0 @@ -6307,7 +6307,7 @@ PPC_FUNC_IMPL(__imp__sub_8225E8C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8225E910; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -9232,7 +9232,7 @@ PPC_FUNC_IMPL(__imp__sub_8225FC38) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8225FC60; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // addi r4,r1,80 @@ -14760,7 +14760,7 @@ PPC_FUNC_IMPL(__imp__sub_82262110) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8226216C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r31,240(r26) ctx.r31.u64 = PPC_LOAD_U32(ctx.r26.u32 + 240); // cmplwi cr6,r31,0 @@ -14799,7 +14799,7 @@ PPC_FUNC_IMPL(__imp__sub_82262110) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x822621B0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,84 ctx.r4.s64 = ctx.r1.s64 + 84; // mr r3,r26 @@ -16155,7 +16155,7 @@ PPC_FUNC_IMPL(__imp__sub_82262710) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82262AB0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -16181,7 +16181,7 @@ PPC_FUNC_IMPL(__imp__sub_82262710) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x82262ADC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r30,100(r26) ctx.r30.u64 = PPC_LOAD_U32(ctx.r26.u32 + 100); // cmplwi cr6,r30,0 @@ -26183,7 +26183,7 @@ PPC_FUNC_IMPL(__imp__sub_82266C30) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82266C5C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r31,52(r29) @@ -26350,7 +26350,7 @@ PPC_FUNC_IMPL(__imp__sub_82266D58) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82266D84; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r31,100(r31) ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 100); // cmplwi cr6,r31,0 @@ -26574,7 +26574,7 @@ PPC_FUNC_IMPL(__imp__sub_82266EA0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82266EE4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,88(r1) PPC_STORE_U32(ctx.r1.u32 + 88, ctx.r26.u32); // li r4,161 @@ -26583,7 +26583,7 @@ PPC_FUNC_IMPL(__imp__sub_82266EA0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x82266EF4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-31780 ctx.r11.s64 = -2082734080; // stw r26,104(r1) @@ -30013,7 +30013,7 @@ PPC_FUNC_IMPL(__imp__sub_822685F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8226860C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r11,0(r31) @@ -36655,7 +36655,7 @@ PPC_FUNC_IMPL(__imp__sub_8226B190) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8226B1F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -36678,7 +36678,7 @@ PPC_FUNC_IMPL(__imp__sub_8226B190) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8226B218; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r31,4 ctx.r3.s64 = ctx.r31.s64 + 4; // bl 0x82252378 @@ -37319,7 +37319,7 @@ PPC_FUNC_IMPL(__imp__sub_8226B360) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8226B698; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r31,240(r31) ctx.r31.u64 = PPC_LOAD_U32(ctx.r31.u32 + 240); // cmplwi cr6,r31,0 @@ -42010,7 +42010,7 @@ PPC_FUNC_IMPL(__imp__sub_8226D5B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8226D5FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // lwz r3,12(r31) @@ -42075,7 +42075,7 @@ PPC_FUNC_IMPL(__imp__sub_8226D5B0) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x8226D670; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,92(r1) PPC_STORE_U32(ctx.r1.u32 + 92, ctx.r31.u32); // addi r4,r1,88 @@ -42124,7 +42124,7 @@ PPC_FUNC_IMPL(__imp__sub_8226D5B0) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x8226D6C8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r31.u32); // addi r4,r1,96 @@ -42622,7 +42622,7 @@ PPC_FUNC_IMPL(__imp__sub_8226D820) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8226D9FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r29,1 ctx.r29.s64 = 1; loc_8226DA00: @@ -45738,7 +45738,7 @@ PPC_FUNC_IMPL(__imp__sub_8226EE40) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r11.u32 + 248); // bl 0x82250578 ctx.lr = 0x8226EE64; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r30,0 ctx.r30.s64 = 0; // stw r31,84(r1) diff --git a/generated/retip_recomp.7.cpp b/generated/retip_recomp.7.cpp index 2d0c158..f92458f 100644 --- a/generated/retip_recomp.7.cpp +++ b/generated/retip_recomp.7.cpp @@ -8673,7 +8673,7 @@ PPC_FUNC_IMPL(__imp__sub_8227E6B0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8227E750; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,9172 ctx.r11.s64 = 9172; // li r10,1 @@ -10153,7 +10153,7 @@ PPC_FUNC_IMPL(__imp__sub_8227F0C0) { PPC_STORE_U16(ctx.r31.u32 + 18, ctx.r9.u16); // bl 0x82250578 ctx.lr = 0x8227F174; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32059 ctx.r11.s64 = -2101018624; // addi r10,r31,-7768 @@ -10221,7 +10221,7 @@ PPC_FUNC_IMPL(__imp__sub_8227F0C0) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8227F1F0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r31,-7768 ctx.r11.s64 = ctx.r31.s64 + -7768; // addi r29,r26,20 @@ -31644,7 +31644,7 @@ PPC_FUNC_IMPL(__imp__sub_82287FC0) { ctx.r3.u64 = ctx.r31.u64; // bl 0x821ebe28 ctx.lr = 0x82287FF0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,88 ctx.r4.s64 = ctx.r1.s64 + 88; // mr r3,r30 @@ -35072,7 +35072,7 @@ PPC_FUNC_IMPL(__imp__sub_82289650) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r11.u32 + 248); // bl 0x82250578 ctx.lr = 0x82289698; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,1 ctx.r10.s64 = 1; // stw r31,84(r1) @@ -36658,7 +36658,7 @@ PPC_FUNC_IMPL(__imp__sub_82289D80) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x8228A0C0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r26) ctx.r11.u64 = PPC_LOAD_U32(ctx.r26.u32 + 0); // addi r4,r1,84 @@ -43822,7 +43822,7 @@ PPC_FUNC_IMPL(__imp__sub_8228CE28) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8228CE50; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -43878,7 +43878,7 @@ PPC_FUNC_IMPL(__imp__sub_8228CE88) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x8228CEB0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // stw r30,84(r1) @@ -57664,7 +57664,7 @@ PPC_FUNC_IMPL(__imp__sub_82292A70) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x82292A98; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r3,12(r31) ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 12); // stw r31,84(r1) diff --git a/generated/retip_recomp.8.cpp b/generated/retip_recomp.8.cpp index 60d0013..8dbca7b 100644 --- a/generated/retip_recomp.8.cpp +++ b/generated/retip_recomp.8.cpp @@ -50147,7 +50147,7 @@ PPC_FUNC_IMPL(__imp__sub_822AFCB0) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r30.u32 + 4); // bl 0x82250578 ctx.lr = 0x822AFCF0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r30,116(r1) @@ -50185,7 +50185,7 @@ PPC_FUNC_IMPL(__imp__sub_822AFCB0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822AFD34; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,255 @@ -50211,7 +50211,7 @@ PPC_FUNC_IMPL(__imp__sub_822AFCB0) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x822AFD64; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // li r10,255 @@ -50826,7 +50826,7 @@ PPC_FUNC_IMPL(__imp__sub_822B0148) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822B0168; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r3,r1,80 @@ -50905,7 +50905,7 @@ PPC_FUNC_IMPL(__imp__sub_822B01C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822B01E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r31.u32); // addi r3,r1,80 @@ -61142,7 +61142,7 @@ PPC_FUNC_IMPL(__imp__sub_822B44C8) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r31.u32 + 124); // bl 0x82250578 ctx.lr = 0x822B46F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r28,88(r1) @@ -61230,7 +61230,7 @@ PPC_FUNC_IMPL(__imp__sub_822B44C8) { ctx.r26.u64 = PPC_LOAD_U32(ctx.r31.u32 + 124); // bl 0x82250578 ctx.lr = 0x822B478C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,124(r1) PPC_STORE_U32(ctx.r1.u32 + 124, ctx.r27.u32); // addi r4,r1,112 @@ -61692,7 +61692,7 @@ PPC_FUNC_IMPL(__imp__sub_822B4A10) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822B4A7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // lwz r10,0(r30) @@ -61815,7 +61815,7 @@ PPC_FUNC_IMPL(__imp__sub_822B4B18) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r11.u32 + 124); // bl 0x82250578 ctx.lr = 0x822B4B40; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,1 ctx.r10.s64 = 1; // stw r31,84(r1) @@ -61935,7 +61935,7 @@ PPC_FUNC_IMPL(__imp__sub_822B4B80) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822B4C14; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -62361,7 +62361,7 @@ PPC_FUNC_IMPL(__imp__sub_822B4C70) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r31.u32 + 124); // bl 0x82250578 ctx.lr = 0x822B4F04; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,80 @@ -62744,7 +62744,7 @@ PPC_FUNC_IMPL(__imp__sub_822B5078) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822B5194; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,80 @@ -63046,7 +63046,7 @@ PPC_FUNC_IMPL(__imp__sub_822B5078) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822B5398; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r29,1 ctx.r29.s64 = 1; // stw r27,100(r1) @@ -63092,7 +63092,7 @@ PPC_FUNC_IMPL(__imp__sub_822B5078) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r31.u32 + 132); // bl 0x82250578 ctx.lr = 0x822B53E8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,132(r1) PPC_STORE_U32(ctx.r1.u32 + 132, ctx.r30.u32); // stw r29,144(r1) @@ -63448,7 +63448,7 @@ PPC_FUNC_IMPL(__imp__sub_822B5078) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x822B564C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // stw r30,164(r1) @@ -68682,7 +68682,7 @@ PPC_FUNC_IMPL(__imp__sub_822B79A8) { ctx.r25.u64 = PPC_LOAD_U32(ctx.r30.u32 + 124); // bl 0x82250578 ctx.lr = 0x822B7A28; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r27,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r27.u32); // addi r4,r1,80 @@ -69746,7 +69746,7 @@ PPC_FUNC_IMPL(__imp__sub_822B81D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822B81F8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,-1 ctx.r11.s64 = -1; // li r10,1 @@ -71249,7 +71249,7 @@ PPC_FUNC_IMPL(__imp__sub_822B89A8) { PPC_STORE_U32(ctx.r31.u32 + 296, ctx.r10.u32); // bl 0x82250578 ctx.lr = 0x822B8BF0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,80 @@ -72940,7 +72940,7 @@ PPC_FUNC_IMPL(__imp__sub_822B8F10) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x822B97D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // addi r4,r1,88 @@ -73063,7 +73063,7 @@ PPC_FUNC_IMPL(__imp__sub_822B8F10) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822B98AC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,1 ctx.r11.s64 = 1; // addi r4,r1,96 @@ -74291,7 +74291,7 @@ PPC_FUNC_IMPL(__imp__sub_822B9AD8) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x822BA0EC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,84 @@ -75353,7 +75353,7 @@ PPC_FUNC_IMPL(__imp__sub_822BA420) { ctx.r3.s64 = ctx.r1.s64 + 192; // bl 0x82250578 ctx.lr = 0x822BA830; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r29) ctx.r11.u64 = PPC_LOAD_U32(ctx.r29.u32 + 0); // addi r4,r1,192 @@ -75768,7 +75768,7 @@ PPC_FUNC_IMPL(__imp__sub_822BA420) { ctx.r3.s64 = ctx.r1.s64 + 184; // bl 0x82250578 ctx.lr = 0x822BAB00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r22,188(r1) PPC_STORE_U32(ctx.r1.u32 + 188, ctx.r22.u32); // addi r4,r1,184 @@ -77446,7 +77446,7 @@ PPC_FUNC_IMPL(__imp__sub_822BB5F8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822BB64C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // lwz r11,0(r30) diff --git a/generated/retip_recomp.9.cpp b/generated/retip_recomp.9.cpp index af3c5a7..774808a 100644 --- a/generated/retip_recomp.9.cpp +++ b/generated/retip_recomp.9.cpp @@ -695,7 +695,7 @@ PPC_FUNC_IMPL(__imp__sub_822BBA80) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822BBC7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // li r10,1 @@ -791,7 +791,7 @@ PPC_FUNC_IMPL(__imp__sub_822BBA80) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822BBD20; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r28) ctx.r11.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // addi r4,r1,80 @@ -1577,7 +1577,7 @@ PPC_FUNC_IMPL(__imp__sub_822BC0F0) { PPC_STORE_U32(ctx.r31.u32 + 292, ctx.r28.u32); // bl 0x82250578 ctx.lr = 0x822BC274; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r27) ctx.r10.u64 = PPC_LOAD_U32(ctx.r27.u32 + 0); // addi r4,r1,80 @@ -1721,7 +1721,7 @@ PPC_FUNC_IMPL(__imp__sub_822BC2F0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822BC368; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r27,0 ctx.r27.s64 = 0; // addi r4,r1,80 @@ -3470,7 +3470,7 @@ PPC_FUNC_IMPL(__imp__sub_822BCF40) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r31.u32 + 124); // bl 0x82250578 ctx.lr = 0x822BCF70; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r30,1 ctx.r30.s64 = 1; // li r11,-1 @@ -3535,7 +3535,7 @@ PPC_FUNC_IMPL(__imp__sub_822BCFA8) { ctx.r28.u64 = PPC_LOAD_U32(ctx.r31.u32 + 124); // bl 0x82250578 ctx.lr = 0x822BCFD8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r30,1 ctx.r30.s64 = 1; // li r11,-1 @@ -4489,7 +4489,7 @@ PPC_FUNC_IMPL(__imp__sub_822BD378) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822BD650; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r31) ctx.r11.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // addi r4,r1,96 @@ -5637,7 +5637,7 @@ PPC_FUNC_IMPL(__imp__sub_822BDDD8) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r10.u32 + 32); // bl 0x82250578 ctx.lr = 0x822BDE0C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r30,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r30.u32); // stw r31,88(r1) @@ -7557,7 +7557,7 @@ PPC_FUNC_IMPL(__imp__sub_822BE9F8) { loc_822BEACC: // bl 0x822beb40 ctx.lr = 0x822BEAD0; - sub_822BEB40(ctx, base); + rex_bifWatermeterSetLevel_822BEB40(ctx, base); // addi r1,r1,96 ctx.r1.s64 = ctx.r1.s64 + 96; // lwz r12,-8(r1) @@ -7635,8 +7635,8 @@ PPC_FUNC_IMPL(__imp__sub_822BEAE0) { return; } -__attribute__((alias("__imp__sub_822BEB40"))) PPC_WEAK_FUNC(sub_822BEB40); -PPC_FUNC_IMPL(__imp__sub_822BEB40) { +__attribute__((alias("__imp__rex_bifWatermeterSetLevel_822BEB40"))) PPC_WEAK_FUNC(rex_bifWatermeterSetLevel_822BEB40); +PPC_FUNC_IMPL(__imp__rex_bifWatermeterSetLevel_822BEB40) { PPC_FUNC_PROLOGUE(); PPCRegister temp{}; uint32_t ea{}; @@ -11562,7 +11562,7 @@ PPC_FUNC_IMPL(__imp__sub_822C0558) { ctx.r4.u64 = ctx.r6.u64; // bl 0x821ebe28 ctx.lr = 0x822C05AC; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lis r11,-32234 ctx.r11.s64 = -2112487424; // addi r4,r1,80 @@ -15488,8 +15488,8 @@ PPC_FUNC_IMPL(__imp__rex_meCursorCamCalculateZoom_822C1CE0) { return; } -__attribute__((alias("__imp__sub_822C1E88"))) PPC_WEAK_FUNC(sub_822C1E88); -PPC_FUNC_IMPL(__imp__sub_822C1E88) { +__attribute__((alias("__imp__rex_cursorCameraTick_822C1E88"))) PPC_WEAK_FUNC(rex_cursorCameraTick_822C1E88); +PPC_FUNC_IMPL(__imp__rex_cursorCameraTick_822C1E88) { PPC_FUNC_PROLOGUE(); PPCRegister temp{}; uint32_t ea{}; @@ -15576,7 +15576,7 @@ PPC_FUNC_IMPL(__imp__sub_822C1E88) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r31.u32 + 12); // bl 0x821ebe28 ctx.lr = 0x822C1F20; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); loc_822C1F20: // li r4,32 ctx.r4.s64 = 32; @@ -16455,7 +16455,7 @@ PPC_FUNC_IMPL(__imp__sub_822C23C8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822C2474; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stfs f31,92(r1) ctx.fpscr.disableFlushMode(); temp.f32 = float(ctx.f31.f64); @@ -16844,7 +16844,7 @@ PPC_FUNC_IMPL(__imp__sub_822C26D0) { ctx.r30.u64 = PPC_LOAD_U32(ctx.r11.u32 + 0); // bl 0x82250578 ctx.lr = 0x822C26FC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lis r10,-32241 ctx.r10.s64 = -2112946176; // stw r31,84(r1) @@ -25200,7 +25200,7 @@ PPC_FUNC_IMPL(__imp__sub_822C5CA0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822C5E6C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r28,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r28.u32); // addi r3,r1,80 @@ -33263,7 +33263,7 @@ PPC_FUNC_IMPL(__imp__sub_822C8DA8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822C933C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r31,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r31.u32); // addi r3,r1,96 @@ -35354,7 +35354,7 @@ PPC_FUNC_IMPL(__imp__sub_822C9F98) { ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 216); // bl 0x822c1e88 ctx.lr = 0x822CA124; - sub_822C1E88(ctx, base); + rex_cursorCameraTick_822C1E88(ctx, base); loc_822CA124: // lwz r3,224(r30) ctx.r3.u64 = PPC_LOAD_U32(ctx.r30.u32 + 224); @@ -35837,7 +35837,7 @@ PPC_FUNC_IMPL(__imp__sub_822CA210) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822CA460; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -40295,7 +40295,7 @@ PPC_FUNC_IMPL(__imp__sub_822CC298) { ctx.r27.u64 = ctx.r7.u64; // bl 0x82250578 ctx.lr = 0x822CC2C4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r9,0(r30) ctx.r9.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r11,r1,80 @@ -42535,7 +42535,7 @@ PPC_FUNC_IMPL(__imp__sub_822CD060) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822CD1A4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r22,84(r1) PPC_STORE_U32(ctx.r1.u32 + 84, ctx.r22.u32); // lwz r11,0(r31) @@ -42669,7 +42669,7 @@ PPC_FUNC_IMPL(__imp__sub_822CD060) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822CD294; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r26,100(r1) PPC_STORE_U32(ctx.r1.u32 + 100, ctx.r26.u32); // addi r4,r1,96 @@ -43415,7 +43415,7 @@ PPC_FUNC_IMPL(__imp__sub_822CD620) { ctx.r23.u64 = __builtin_rotateleft64(ctx.r9.u32 | (ctx.r9.u64 << 32), 27) & 0x1; // bl 0x82250578 ctx.lr = 0x822CD78C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,112 ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x8228e258 @@ -44582,7 +44582,7 @@ PPC_FUNC_IMPL(__imp__sub_822CDB48) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x822CDFDC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x8228e258 @@ -47728,7 +47728,7 @@ PPC_FUNC_IMPL(__imp__sub_822CE3B8) { ctx.r3.u64 = ctx.r29.u64; // bl 0x821ebe28 ctx.lr = 0x822CF5B0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r3,r29 ctx.r3.u64 = ctx.r29.u64; // bl 0x821ea3d8 @@ -47869,7 +47869,7 @@ PPC_FUNC_IMPL(__imp__sub_822CE3B8) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x822CF6A4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,84 @@ -47931,7 +47931,7 @@ PPC_FUNC_IMPL(__imp__sub_822CE3B8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x822CF710; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,88 ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x8228e258 @@ -47958,7 +47958,7 @@ PPC_FUNC_IMPL(__imp__sub_822CE3B8) { ctx.r3.s64 = ctx.r1.s64 + 92; // bl 0x82250578 ctx.lr = 0x822CF740; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,92 ctx.r3.s64 = ctx.r1.s64 + 92; // bl 0x8228e258 @@ -48043,7 +48043,7 @@ PPC_FUNC_IMPL(__imp__sub_822CE3B8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822CF7D4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,96 ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x8228e258 @@ -48126,7 +48126,7 @@ PPC_FUNC_IMPL(__imp__sub_822CE3B8) { ctx.r3.s64 = ctx.r1.s64 + 100; // bl 0x82250578 ctx.lr = 0x822CF860; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,100 ctx.r3.s64 = ctx.r1.s64 + 100; // bl 0x8228e258 @@ -49048,7 +49048,7 @@ PPC_FUNC_IMPL(__imp__sub_822CF9D8) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x822CFF00; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,3 ctx.r11.s64 = 3; // stw r29,152(r1) @@ -49072,7 +49072,7 @@ PPC_FUNC_IMPL(__imp__sub_822CF9D8) { ctx.r29.u64 = PPC_LOAD_U32(ctx.r31.u32 + 852); // bl 0x82250578 ctx.lr = 0x822CFF2C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r10,4 ctx.r10.s64 = 4; // stw r29,168(r1) @@ -49998,7 +49998,7 @@ PPC_FUNC_IMPL(__imp__sub_822CF9D8) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822D0578; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -50342,7 +50342,7 @@ PPC_FUNC_IMPL(__imp__sub_822CF9D8) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x822D07D8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x8228e258 @@ -50883,7 +50883,7 @@ PPC_FUNC_IMPL(__imp__sub_822CF9D8) { ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x82250578 ctx.lr = 0x822D0B80; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,88 ctx.r3.s64 = ctx.r1.s64 + 88; // bl 0x8228e258 @@ -51328,7 +51328,7 @@ PPC_FUNC_IMPL(__imp__sub_822CF9D8) { ctx.r3.s64 = ctx.r1.s64 + 92; // bl 0x82250578 ctx.lr = 0x822D0E7C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r11,0(r30) ctx.r11.u64 = PPC_LOAD_U32(ctx.r30.u32 + 0); // addi r4,r1,92 @@ -51601,7 +51601,7 @@ PPC_FUNC_IMPL(__imp__sub_822CF9D8) { ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x82250578 ctx.lr = 0x822D1048; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,96 ctx.r3.s64 = ctx.r1.s64 + 96; // bl 0x8228e258 @@ -56913,7 +56913,7 @@ PPC_FUNC_IMPL(__imp__sub_822D3358) { PPC_STORE_U32(ctx.r1.u32 + 112, temp.u32); // bl 0x821ebe28 ctx.lr = 0x822D34B0; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // lwz r11,136(r25) ctx.r11.u64 = PPC_LOAD_U32(ctx.r25.u32 + 136); // cmpwi cr6,r11,18 @@ -59561,7 +59561,7 @@ PPC_FUNC_IMPL(__imp__sub_822D4608) { PPC_STORE_U32(ctx.r1.u32 + 152, temp.u32); // bl 0x821ebe28 ctx.lr = 0x822D46F4; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // addi r4,r1,160 ctx.r4.s64 = ctx.r1.s64 + 160; // mr r3,r31 @@ -64993,7 +64993,7 @@ PPC_FUNC_IMPL(__imp__sub_822D6AD0) { PPC_STORE_U32(ctx.r1.u32 + 96, temp.u32); // bl 0x821ebe28 ctx.lr = 0x822D6CC8; - sub_821EBE28(ctx, base); + rex_meCursorCamCalculatePos_821EBE28(ctx, base); // mr r4,r28 ctx.r4.u64 = ctx.r28.u64; // mr r3,r6 @@ -65022,7 +65022,7 @@ PPC_FUNC_IMPL(__imp__sub_822D6AD0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822D6CF8; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -65049,7 +65049,7 @@ PPC_FUNC_IMPL(__imp__sub_822D6AD0) { ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x82250578 ctx.lr = 0x822D6D24; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,84 ctx.r3.s64 = ctx.r1.s64 + 84; // bl 0x8228e258 @@ -66406,7 +66406,7 @@ PPC_FUNC_IMPL(__imp__sub_822D7478) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822D765C; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -66692,7 +66692,7 @@ PPC_FUNC_IMPL(__imp__sub_822D77D0) { ctx.r3.s64 = ctx.r1.s64 + 112; // bl 0x82250578 ctx.lr = 0x822D7838; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r10,0(r28) ctx.r10.u64 = PPC_LOAD_U32(ctx.r28.u32 + 0); // addi r11,r1,96 @@ -66806,7 +66806,7 @@ PPC_FUNC_IMPL(__imp__sub_822D77D0) { ctx.r3.s64 = ctx.r1.s64 + 144; // bl 0x82250578 ctx.lr = 0x822D7904; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r1,96 ctx.r11.s64 = ctx.r1.s64 + 96; // stw r31,148(r1) @@ -66867,7 +66867,7 @@ PPC_FUNC_IMPL(__imp__sub_822D77D0) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822D7970; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -68087,7 +68087,7 @@ PPC_FUNC_IMPL(__imp__sub_822D7E20) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822D81A4; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r3,r1,80 ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x8228e258 @@ -69590,7 +69590,7 @@ PPC_FUNC_IMPL(__imp__sub_822D8BA8) { ctx.r29.u64 = ctx.r5.u64; // bl 0x82250578 ctx.lr = 0x822D8BCC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // lwz r8,0(r31) ctx.r8.u64 = PPC_LOAD_U32(ctx.r31.u32 + 0); // li r11,3 @@ -69822,7 +69822,7 @@ PPC_FUNC_IMPL(__imp__sub_822D8D18) { ctx.r25.u64 = __builtin_rotateleft64(ctx.r6.u32 | (ctx.r6.u64 << 32), 27) & 0x1; // bl 0x82250578 ctx.lr = 0x822D8D68; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r4,r1,80 ctx.r4.s64 = ctx.r1.s64 + 80; // stw r27,100(r1) @@ -69869,7 +69869,7 @@ PPC_FUNC_IMPL(__imp__sub_822D8D18) { ctx.r3.s64 = ctx.r1.s64 + 160; // bl 0x82250578 ctx.lr = 0x822D8DC0; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // stw r23,164(r1) PPC_STORE_U32(ctx.r1.u32 + 164, ctx.r23.u32); // stw r28,172(r1) @@ -70015,7 +70015,7 @@ PPC_FUNC_IMPL(__imp__sub_822D8D18) { ctx.r3.s64 = ctx.r1.s64 + 128; // bl 0x82250578 ctx.lr = 0x822D8ECC; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // addi r11,r1,80 ctx.r11.s64 = ctx.r1.s64 + 80; // stw r27,132(r1) @@ -75703,7 +75703,7 @@ PPC_FUNC_IMPL(__imp__sub_822DB408) { ctx.r3.s64 = ctx.r1.s64 + 80; // bl 0x82250578 ctx.lr = 0x822DB574; - sub_82250578(ctx, base); + rex_objMsgInit_82250578(ctx, base); // li r11,0 ctx.r11.s64 = 0; // stw r31,84(r1) diff --git a/retip.toml b/retip.toml index fa3833b..fa8f26a 100644 --- a/retip.toml +++ b/retip.toml @@ -3,7 +3,6 @@ DiscordActivity = true tip_mouse_y_sensitivity = 0.090000 tip_mouse_x_sensitivity = 0.090000 tip_mouse_invert_x = true -enable_console = false log_level = "error" log_file = "logs/retip.log" scribble_heap = true @@ -13,7 +12,6 @@ readback_memexport_fast = false d3d12_bindless = false d3d12_submit_on_primary_buffer_end = false fullscreen = true -mnk_mode = true mnk_sensitivity = 0.000000 keybind_a = "LMB" keybind_b = "RMB" diff --git a/src/retip_app.h b/src/retip_app.h index fc1b9c6..bddf2f0 100644 --- a/src/retip_app.h +++ b/src/retip_app.h @@ -22,6 +22,8 @@ #include "tip_engine/Overlays/TiPTools/GraphicsMenu.h" #include "tip_engine/Overlays/TiPTools/SettingsMenu.h" #include "tip_engine/Overlays/TiPTools/PinataMenu.h" +#include "tip_engine/Overlays/TiPTools/PlantMenu.h" +#include "tip_engine/Overlays/TiPTools/RuffianMenu.h" #include "tip_engine/Overlays/StartupOverlay.h" #include "tip_engine/Input/TipMouseListener.h" #include "tip_engine/Input/TipRawMouse.h" @@ -77,7 +79,10 @@ class RetipApp : public rex::ReXApp { timeBeginPeriod(1); //Force MnK driver on regardless of toml, since EXE may run from build dir without retip.toml - REXCVAR_SET(mnk_mode, true); + //Edit, this is not needed, goopie will download the toml from the release, and also some might want to use the mouse for the f4 menu + //Curently Im not sure if there is a button to disable the mouse lock like Alt but that might be worth looking into before + //forceing mouse locks + //REXCVAR_SET(mnk_mode, true); //Silence MnK's mouse->right-stick path; CursorHooks consumes mouse delta directly REXCVAR_SET(mnk_sensitivity, 0.0); @@ -191,6 +196,8 @@ class RetipApp : public rex::ReXApp { tipToolsDialog->pages.push_back(std::make_unique()); tipToolsDialog->pages.push_back(std::make_unique()); + tipToolsDialog->pages.push_back(std::make_unique()); + tipToolsDialog->pages.push_back(std::make_unique()); tipToolsDialog->pages.push_back(std::make_unique()); //tipToolsDialog->pages.push_back(std::make_unique()); //tipToolsDialog->pages.push_back(std::make_unique()); diff --git a/src/tip_engine/CursorHooks.cpp b/src/tip_engine/CursorHooks.cpp index 1c86428..7d5ae82 100644 --- a/src/tip_engine/CursorHooks.cpp +++ b/src/tip_engine/CursorHooks.cpp @@ -32,17 +32,16 @@ REXCVAR_DEFINE_BOOL(tip_mouse_invert_x, false, "_Trouble in Paradise/Input", "In REXCVAR_DEFINE_DOUBLE(tip_mouse_zoom_step, 100.0, "_Trouble in Paradise/Input", "Zoom units per wheel detent").range(10.0, 500.0); REXCVAR_DEFINE_BOOL(rgb_cursor, false, "_Trouble in Paradise", "Enables the Gursor"); // rainbow cursor -//Forward decl - defined alongside the (gated) zoom hook below. -static void ApplyMouseZoom(uint32_t camera); - //rex_meCursorCamCalculateYaw_822C1B18 REX_PPC_EXTERN_IMPORT(meCursorCamCalculateYaw_822C1B18); int meCursorCamCalculateYaw_822C1B18_Hook(int camera, int controls) { + Log(LogLevel::Info, "Yaw Hook Hit"); float* YawPtr = reinterpret_cast(0x100000000ull + camera + 40); float yawBefore = to_byteswapped_float(*YawPtr); int result = rex::GuestToHostFunction(__imp__rex_meCursorCamCalculateYaw_822C1B18, camera, controls); + Log(LogLevel::Info, "Called original yaw calculation"); int32_t dx = 0; if (g_raw_mouse) dx = g_raw_mouse->ConsumeDx(); @@ -68,6 +67,7 @@ int meCursorCamCalculateYaw_822C1B18_Hook(int camera, int controls) { } } } + Log(LogLevel::Info, "Yaw Hook Exit"); return result; } @@ -77,6 +77,7 @@ REX_PPC_HOOK(meCursorCamCalculateYaw_822C1B18) //rex_meCursorCamCalculatePitch_822C1C00 REX_PPC_EXTERN_IMPORT(meCursorCamCalculatePitch_822C1C00); int meCursorCamCalculatePitch_822C1C00_Hook(int camera, int controls) { + Log(LogLevel::Info, "Pitch Hook Hit"); float* PitchPtr = reinterpret_cast(0x100000000ull + camera + 32); float pitchBefore = to_byteswapped_float(*PitchPtr); @@ -103,16 +104,34 @@ int meCursorCamCalculatePitch_822C1C00_Hook(int camera, int controls) { PitchPtr[0] = to_byteswapped_float(targetPitch); } - + Log(LogLevel::Info, "Pitch Hook Exit"); return result; } REX_PPC_HOOK(meCursorCamCalculatePitch_822C1C00) +//rex_cursorCameraTick_822C1E88 +//int rex_cursorCameraTick_822C1E88(int camera, int controls, int pos, int rot) +REX_PPC_EXTERN_IMPORT(cursorCameraTick_822C1E88); +int cursorCameraTick_822C1E88_Hook(int camera, int controls, int pos, int rot) { + if (pos) { + playerPos = pos; + } + if (rot) { + playerRot = rot; + } + return rex::GuestToHostFunction(__imp__rex_cursorCameraTick_822C1E88, camera, controls, pos, rot); +} +REX_PPC_HOOK(cursorCameraTick_822C1E88) + + REX_PPC_EXTERN_IMPORT(meCursorCamCalculateZoom_822C1CE0); void meCursorCamCalculateZoom_822C1CE0_Hook(int camera, int controls) { + Log(LogLevel::Info, "Zoom Hook Hit"); rex::GuestToHostFunction(__imp__rex_meCursorCamCalculateZoom_822C1CE0, camera, controls); + Log(LogLevel::Info, "Called original zoom calculation"); + // Sets the max and min values for zoom and pitch and also checks the memory to make sure that its valid before writing to it. /////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -138,47 +157,49 @@ void meCursorCamCalculateZoom_822C1CE0_Hook(int camera, int controls) { PitchMinPtr[0] = to_byteswapped_float(-89.0f); } /////////////////////////////////////////////////////////////////////////////////////////////////////// + Log(LogLevel::Info, "Zoom Hook Exit"); } REX_PPC_HOOK(meCursorCamCalculateZoom_822C1CE0) - //rex_CXuiModule__ProcessInput_8229A968 -REX_PPC_EXTERN_IMPORT(CXuiModule__ProcessInput_8229A968); -int CXuiModule__ProcessInput_8229A968_Hook(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) -{ - if(g_LockGameInput) { - return 0; // Block game input when the menu is open +PPC_EXTERN_IMPORT(__imp__rex_CXuiModule__ProcessInput_8229A968); +PPC_EXTERN_FUNC(rex_CXuiModule__ProcessInput_8229A968) { + Log(LogLevel::Info, "CXuiModule__ProcessInput Hook Hit"); + if (g_LockGameInput) { + Log(LogLevel::Info, "Game input is locked, blocking input in CXuiModule__ProcessInput"); + //ctx.r3.u64 = 0; // Block game input when the menu is open + return; } - int result = rex::GuestToHostFunction(__imp__rex_CXuiModule__ProcessInput_8229A968, a1, a2, a3, a4, a5, a6, a7, a8); - return result; + __imp__rex_CXuiModule__ProcessInput_8229A968(ctx, base); + Log(LogLevel::Info, "CXuiModule__ProcessInput Hook Finished"); } -REX_PPC_HOOK(CXuiModule__ProcessInput_8229A968) //rex_XInputGetKeystroke_82B0A740 -REX_PPC_EXTERN_IMPORT(XInputGetKeystroke_82B0A740); -int XInputGetKeystroke_82B0A740_Hook(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10,int a11,int a12) -{ - if(g_LockGameInput) { - return 0; // Block game input when the menu is open +PPC_EXTERN_IMPORT(__imp__rex_XInputGetKeystroke_82B0A740); +PPC_EXTERN_FUNC(rex_XInputGetKeystroke_82B0A740) { + Log(LogLevel::Info, "XInputGetKeystroke Hook Hit"); + if (g_LockGameInput) { + Log(LogLevel::Info, "Game input is locked, blocking input in XInputGetKeystroke"); + //ctx.r3.u64 = 0; // Block game input when the menu is open + return; } - int result = rex::GuestToHostFunction(__imp__rex_XInputGetKeystroke_82B0A740, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); - return result; + __imp__rex_XInputGetKeystroke_82B0A740(ctx, base); + Log(LogLevel::Info, "XInputGetKeystroke Hook Finished"); } -REX_PPC_HOOK(XInputGetKeystroke_82B0A740); + //int rex_XuiProcessInput_826B2DE0(unsigned __int16 *a1) -REX_PPC_EXTERN_IMPORT(XuiProcessInput_826B2DE0); -int XuiProcessInput_826B2DE0_Hook(unsigned __int16 *a1) { +PPC_EXTERN_IMPORT(__imp__rex_XuiProcessInput_826B2DE0); +PPC_EXTERN_FUNC(rex_XuiProcessInput_826B2DE0) { Log(LogLevel::Info, "XuiProcessInput Hook Hit"); - if(g_LockGameInput) { + if (g_LockGameInput) { Log(LogLevel::Info, "Game input is locked, blocking input in XuiProcessInput"); - return 0; // Block game input when the menu is open + //ctx.r3.u64 = 0; // Block game input when the menu is open + return; } - int result = rex::GuestToHostFunction(__imp__rex_XuiProcessInput_826B2DE0, a1); + __imp__rex_XuiProcessInput_826B2DE0(ctx, base); Log(LogLevel::Info, "XuiProcessInput Hook Finished"); - return result; } -REX_PPC_HOOK(XuiProcessInput_826B2DE0); uint32_t HI(const std::string& hexColor) { diff --git a/src/tip_engine/Globals.h b/src/tip_engine/Globals.h index 11182e8..a201040 100644 --- a/src/tip_engine/Globals.h +++ b/src/tip_engine/Globals.h @@ -55,4 +55,11 @@ struct SpawnRequest { inline SpawnRequest g_SpawnRequest; inline uint32_t g_LastSpawnedEntity = 0; -inline float* playerPos; +// Guest address (uint32_t) of the player position float[3]. Set elsewhere when +// the player's position becomes known; used by the spawn hook to spawn wild +// pinatas at the player's current location. +inline uint32_t playerPos = 0; + +// Guest address (uint32_t) of the player rotation. Set alongside playerPos +// from the cursor camera tick hook; used by the spawn hook. +inline uint32_t playerRot = 0; diff --git a/src/tip_engine/Overlays/TiPTools/PinataMenu.h b/src/tip_engine/Overlays/TiPTools/PinataMenu.h index 6d34b09..d1909be 100644 --- a/src/tip_engine/Overlays/TiPTools/PinataMenu.h +++ b/src/tip_engine/Overlays/TiPTools/PinataMenu.h @@ -10,7 +10,7 @@ REXCVAR_DECLARE(bool, disableSurfacePreferences); class PinataMenuPage : public TipToolsPage { public: PinataMenuPage() { - name = "Pinata"; + name = "Pinata Settings"; description = "Pinata related options"; color = ImColor(255, 105, 180); } diff --git a/src/tip_engine/Overlays/TiPTools/PlantMenu.cpp b/src/tip_engine/Overlays/TiPTools/PlantMenu.cpp new file mode 100644 index 0000000..463d978 --- /dev/null +++ b/src/tip_engine/Overlays/TiPTools/PlantMenu.cpp @@ -0,0 +1,75 @@ +#include "PlantMenu.h" +#include +#include "src/tip_engine/rex_macros.h" +#include "src/tip_engine/Log.h" +#include "src/tip_engine/Globals.h" +#include "src/tip_engine/Types/CommonTypes.h" +#include + +// Option: Plants will always have optimal water levels +REXCVAR_DEFINE_BOOL(disable_water, false, "_Trouble in Paradise", "Plants will always have optimal water levels"); + +// int __fastcall rex_bifWatermeterSetLevel_822BEB40(int result, double a2) +// +// `result` is the watermeter object (guest VA). The original caller computes +// the requested level relative to a parent struct as: +// rex_bifWatermeterSetLevel_822BEB40( +// (int)(parent + 1000), +// (max - min) * 0.5f + min); +// where min/max live at parent[1008] / parent[1009] (floats). Relative to the +// watermeter pointer (parent + 1000 ints == parent + 4000 bytes), min/max are +// at float offsets +8 / +9. When `disable_water` is enabled we override the +// incoming a2 with the optimal midpoint so plants always sit at the ideal +// water level instead of fully blocking the call. +REX_PPC_EXTERN_IMPORT(bifWatermeterSetLevel_822BEB40); +int bifWatermeterSetLevel_822BEB40_Hook(int result, double a2) { + Log(LogLevel::Info, "bifWatermeterSetLevel Hook Hit"); + if (REXCVAR_GET(disable_water)) { + const float* watermeter = reinterpret_cast(0x100000000ull + static_cast(result)); + float minLevel = to_byteswapped_float(watermeter[8]); + float maxLevel = to_byteswapped_float(watermeter[9]); + double optimal = static_cast((maxLevel - minLevel) * 0.5f + minLevel); + Log(LogLevel::Info, + "Water level overridden from " + std::to_string(a2) + + " to optimal " + std::to_string(optimal)); + return rex::GuestToHostFunction(__imp__rex_bifWatermeterSetLevel_822BEB40, result, optimal); + } + return rex::GuestToHostFunction(__imp__rex_bifWatermeterSetLevel_822BEB40, result, a2); +}; +REX_PPC_HOOK(bifWatermeterSetLevel_822BEB40); + +void PlantMenuPage::SyncFromCVars() { + disable_water_ = REXCVAR_GET(disable_water); +} + +void PlantMenuPage::SyncToCVars() { + REXCVAR_SET(disable_water, disable_water_); +} + +void PlantMenuPage::OnDraw() { + auto input = TiPWidgets::PollInput(inputTimer, 0.18f); + + if (input.back) { + wantsClose = true; + return; + } + + int vertDir = TiPWidgets::GetHeldDir(SDL_GAMEPAD_BUTTON_DPAD_UP, SDL_GAMEPAD_BUTTON_DPAD_DOWN, + ImGuiKey_UpArrow, ImGuiKey_DownArrow); + int vertDelta = TiPWidgets::AccelTick(vertAccel, vertDir, 15.0f, 1.0f); + focusIndex += vertDelta; + if (focusIndex < 0) focusIndex = 0; + if (focusIndex > 0) focusIndex = 0; + + if (focusIndex != prevFocusIndex) { + prevFocusIndex = focusIndex; + } + + float width = ImGui::GetContentRegionAvail().x; + + TiPWidgets::PushListStyle(); + TiPWidgets::Toggle("Optimal Water Levels", disable_water_, focusIndex == 0, width, input); + TiPWidgets::PopListStyle(); + + SyncToCVars(); +} diff --git a/src/tip_engine/Overlays/TiPTools/PlantMenu.h b/src/tip_engine/Overlays/TiPTools/PlantMenu.h new file mode 100644 index 0000000..2be0a6a --- /dev/null +++ b/src/tip_engine/Overlays/TiPTools/PlantMenu.h @@ -0,0 +1,36 @@ +#pragma once + +#include "../TiPTools.h" +#include "../TiPWidgets.h" +#include + +REXCVAR_DECLARE(bool, disable_water); + +class PlantMenuPage : public TipToolsPage { +public: + PlantMenuPage() { + name = "Plant Settings"; + description = "Plant related options"; + color = ImColor(120, 200, 80); + } + + void OnOpen() override { + focusIndex = 0; + SyncFromCVars(); + } + + void OnDraw() override; + + void OnClose() override {} + + void SyncFromCVars(); + void SyncToCVars(); + + float inputTimer = 0.0f; + int focusIndex = 0; + TiPWidgets::AccelState vertAccel; + int prevFocusIndex = -1; + + // Local state mirroring CVars + bool disable_water_ = false; +}; diff --git a/src/tip_engine/Overlays/TiPTools/PlayerMenu.h b/src/tip_engine/Overlays/TiPTools/PlayerMenu.h index 7fea1d9..e56e3c9 100644 --- a/src/tip_engine/Overlays/TiPTools/PlayerMenu.h +++ b/src/tip_engine/Overlays/TiPTools/PlayerMenu.h @@ -5,7 +5,7 @@ class PlayerMenuPage : public TipToolsPage { public: PlayerMenuPage() { - name = "Player Menu"; + name = "Player Settings"; description = "Manage player settings"; color = ImColor(255, 0, 0); // Red } diff --git a/src/tip_engine/Overlays/TiPTools/RuffianMenu.cpp b/src/tip_engine/Overlays/TiPTools/RuffianMenu.cpp new file mode 100644 index 0000000..4dc9b06 --- /dev/null +++ b/src/tip_engine/Overlays/TiPTools/RuffianMenu.cpp @@ -0,0 +1,57 @@ +#include "RuffianMenu.h" +#include +#include "src/tip_engine/rex_macros.h" +#include "src/tip_engine/Log.h" +#include + +REXCVAR_DEFINE_BOOL(disable_ruffians, false, "_Trouble in Paradise/Ruffian Settings", "Prevents ruffians from spawning"); + +//int rex_meCreateRuffianActor_823F89E0(int ruffiansWS, int ruffianNode) +REX_PPC_EXTERN_IMPORT(meCreateRuffianActor_823F89E0); +int meCreateRuffianActor_823F89E0_Hook(int ruffiansWS, int ruffianNode) { + Log(LogLevel::Info, "meCreateRuffianActor Hook Hit"); + if (REXCVAR_GET(disable_ruffians)) { + Log(LogLevel::Info, "Ruffian spawn blocked"); + return 0; + } + int result = rex::GuestToHostFunction(__imp__rex_meCreateRuffianActor_823F89E0, ruffiansWS, ruffianNode); + Log(LogLevel::Info, "meCreateRuffianActor Hook Finished"); + return result; +}; +REX_PPC_HOOK(meCreateRuffianActor_823F89E0); + +void RuffianMenuPage::SyncFromCVars() { + disable_ruffians_ = REXCVAR_GET(disable_ruffians); +} + +void RuffianMenuPage::SyncToCVars() { + REXCVAR_SET(disable_ruffians, disable_ruffians_); +} + +void RuffianMenuPage::OnDraw() { + auto input = TiPWidgets::PollInput(inputTimer, 0.18f); + + if (input.back) { + wantsClose = true; + return; + } + + int vertDir = TiPWidgets::GetHeldDir(SDL_GAMEPAD_BUTTON_DPAD_UP, SDL_GAMEPAD_BUTTON_DPAD_DOWN, + ImGuiKey_UpArrow, ImGuiKey_DownArrow); + int vertDelta = TiPWidgets::AccelTick(vertAccel, vertDir, 15.0f, 1.0f); + focusIndex += vertDelta; + if (focusIndex < 0) focusIndex = 0; + if (focusIndex > 0) focusIndex = 0; + + if (focusIndex != prevFocusIndex) { + prevFocusIndex = focusIndex; + } + + float width = ImGui::GetContentRegionAvail().x; + + TiPWidgets::PushListStyle(); + TiPWidgets::Toggle("Disable Ruffian Spawning", disable_ruffians_, focusIndex == 0, width, input); + TiPWidgets::PopListStyle(); + + SyncToCVars(); +} diff --git a/src/tip_engine/Overlays/TiPTools/RuffianMenu.h b/src/tip_engine/Overlays/TiPTools/RuffianMenu.h new file mode 100644 index 0000000..78b3603 --- /dev/null +++ b/src/tip_engine/Overlays/TiPTools/RuffianMenu.h @@ -0,0 +1,36 @@ +#pragma once + +#include "../TiPTools.h" +#include "../TiPWidgets.h" +#include + +REXCVAR_DECLARE(bool, disable_ruffians); + +class RuffianMenuPage : public TipToolsPage { +public: + RuffianMenuPage() { + name = "Ruffian Settings"; + description = "Ruffian related options"; + color = ImColor(200, 80, 80); + } + + void OnOpen() override { + focusIndex = 0; + SyncFromCVars(); + } + + void OnDraw() override; + + void OnClose() override {} + + void SyncFromCVars(); + void SyncToCVars(); + + float inputTimer = 0.0f; + int focusIndex = 0; + TiPWidgets::AccelState vertAccel; + int prevFocusIndex = -1; + + // Local state mirroring CVars + bool disable_ruffians_ = false; +}; diff --git a/src/tip_engine/Overlays/TiPTools/SpawnMenu.cpp b/src/tip_engine/Overlays/TiPTools/SpawnMenu.cpp index ec2e5f7..238852b 100644 --- a/src/tip_engine/Overlays/TiPTools/SpawnMenu.cpp +++ b/src/tip_engine/Overlays/TiPTools/SpawnMenu.cpp @@ -4,6 +4,7 @@ #include "src/tip_engine/rex_macros.h" #include "src/tip_engine/Globals.h" #include "src/tip_engine/Log.h" +#include #include #include #include @@ -13,6 +14,10 @@ //rex_supportPinataTagClassify_825A0818 (Used to verify a tag to see if it has a valid class) returns supportPinataTagClass_e REX_PPC_EXTERN_IMPORT(supportPinataTagClassify_825A0818); +// Show all spawn-menu categories (including normally hidden ones). +// Toggleable from the F4 recomp settings menu. +REXCVAR_DEFINE_BOOL(SpawnMenuShowAllCategories, false, "_Trouble in Paradise", "Show all spawn menu categories (including normally hidden ones)"); + static constexpr float kSpawnListWidth = 300.0f; static constexpr float kSpawnListHeight = 400.0f; static constexpr float kSpawnOptionsWidth = 260.0f; @@ -73,18 +78,31 @@ static ImColor GetTypeColor(supportPinataTagClass_e type) { // Built dynamically from ItemTags on first use static std::vector sCategories; -static bool sCategoriesBuilt = false; +static int sCategoriesBuildMode = -1; // 0 = filtered, 1 = show all + +static bool ShouldShowAllCategories() { + return REXCVAR_GET(SpawnMenuShowAllCategories); +} static void BuildCategories() { - if (sCategoriesBuilt) return; + int mode = ShouldShowAllCategories() ? 1 : 0; + if (sCategoriesBuildMode == mode) return; std::set seen; for (auto& [id, tag] : ItemTags) { - if (!(tag.uiFlags & UIFlag::Hide) && IsValidPinataTagClass(tag.type)) + bool include; + if (mode == 1) { + // Show-all: include every tag with a known class, ignoring Hide flag + // and the IsValidPinataTagClass allow-list. + include = (tag.type != supportPinataTag_Class_UNKNOWN); + } else { + include = IsValidPinataTagClass(tag.type) && !(tag.uiFlags & UIFlag::Hide); + } + if (include) seen.insert(tag.type); } sCategories.assign(seen.begin(), seen.end()); std::sort(sCategories.begin(), sCategories.end()); - sCategoriesBuilt = true; + sCategoriesBuildMode = mode; } const char* GetTypeName(supportPinataTagClass_e type) { @@ -226,17 +244,29 @@ void SpawnMenuPage::OnDraw() { auto input = TiPWidgets::PollInput(inputTimer, 0.12f); - // Build per-category sorted item lists once + // Build per-category sorted item lists once (rebuilt when "show all" cvar changes) static std::unordered_map> categoryItems; - if (categoryItems.empty()) { + static int categoryItemsBuildMode = -1; + int curBuildMode = ShouldShowAllCategories() ? 1 : 0; + if (categoryItems.empty() || categoryItemsBuildMode != curBuildMode) { + categoryItems.clear(); for (auto& [id, tag] : ItemTags) { - if (!(tag.uiFlags & UIFlag::Hide) && IsValidPinataTagClass(tag.type)) + bool include; + if (curBuildMode == 1) { + include = (tag.type != supportPinataTag_Class_UNKNOWN); + } else { + include = IsValidPinataTagClass(tag.type) && !(tag.uiFlags & UIFlag::Hide); + } + if (include) categoryItems[(int)tag.type].push_back(&tag); } for (auto& [type, items] : categoryItems) { std::sort(items.begin(), items.end(), [](const VivaTag* a, const VivaTag* b) { return a->ID < b->ID; }); } + categoryItemsBuildMode = curBuildMode; + // Reset focus since the category list size may have changed. + if (categoryFocusIndex >= (int)sCategories.size()) categoryFocusIndex = 0; } const VivaTag* selectedTag = nullptr; diff --git a/src/tip_engine/hooks.cpp b/src/tip_engine/hooks.cpp index 6bc4243..a5861a6 100644 --- a/src/tip_engine/hooks.cpp +++ b/src/tip_engine/hooks.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include "tip_engine/Globals.h" #include "tip_engine/CustomRenderer/engine/World/World.h" #include "tip_engine/CustomRenderer/engine/World/Camera.h" @@ -310,17 +311,27 @@ PPC_EXTERN_FUNC(rex_gardenMainGetGardenScene_824E1120) { PPCContext saveCtx = ctx; + // Log player position for debugging + Log(LogLevel::Error, "Player position for spawn:"); + Log(LogLevel::Error, "playerPos: 0x" + std::to_string(playerPos)); + float* pos = reinterpret_cast(0x100000000ull + playerPos); + float poss[3] = {pos[0], pos[1], pos[2]}; + - float poss[3] = { pos[0], pos[1], pos[2] }; ctx.r3.u64 = gardenScene; if(spawnWild) { + pos[0] = to_byteswapped_float(0.0); + pos[1] = to_byteswapped_float(0.0); + pos[2] = to_byteswapped_float(260.0); ctx.r4.u64 = reinterpret_cast(pos); + //ctx.r4.u64 = playerPos; + ctx.r5.u64 = playerRot; } else { - ctx.r4.u64 = 0; //a2 + ctx.r4.u64 = playerPos; + ctx.r5.u64 = playerRot; } - ctx.r5.u64 = 0; //a3 ctx.r7.u64 = tagID; //a5 ctx.r9.u64 = 0; //a7 ctx.r10.u64 = 0; //a8 @@ -332,10 +343,14 @@ PPC_EXTERN_FUNC(rex_gardenMainGetGardenScene_824E1120) { g_LastSpawnedEntity = ctx.r3.u32; ctx = saveCtx; + pos[0] = poss[0]; + pos[1] = poss[1]; + pos[2] = poss[2]; Log(LogLevel::Info, "Pending spawn request processed"); } Log(LogLevel::Info, "Get Garden Scene Hook Finished"); + } @@ -364,4 +379,18 @@ int spawn_egg_82334638_Hook(int a1, int a2, int a3) { REX_PPC_HOOK(spawn_egg_82334638); #endif +REXCVAR_DEFINE_BOOL(disable_reality, false, "_Trouble in Paradise", "Fucks up the game, but fun to mess with (Will crash eventually)"); + +REX_PPC_EXTERN_IMPORT(objMsgInit_82250578); +int objMsgInit_82250578_Hook(int msg, int id) { + Log(LogLevel::Info, "objMsgInit Hook Hit"); + if(REXCVAR_GET(disable_reality)) { + Log(LogLevel::Info, "Notification blocked: msg=" + std::to_string(msg) + " id=" + std::to_string(id)); + return 0; + } + Log(LogLevel::Info, "objMsgInit Hook Finished"); + return rex::GuestToHostFunction(__imp__rex_objMsgInit_82250578, msg, id); +}; +REX_PPC_HOOK(objMsgInit_82250578); +// disable_ruffians cvar and meCreateRuffianActor hook moved to Overlays/TiPTools/RuffianMenu.cpp \ No newline at end of file