From 4b61b2279b470807db768989f7115748b1ccea94 Mon Sep 17 00:00:00 2001 From: DeaTh-G Date: Sun, 13 Apr 2025 11:27:26 +0200 Subject: [PATCH] implement stage collision view hmm code in a much safer way --- UnleashedRecomp/app.cpp | 3 --- UnleashedRecomp/patches/misc_patches.cpp | 11 +++++++++++ UnleashedRecompLib/config/SWA.toml | 6 ++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/UnleashedRecomp/app.cpp b/UnleashedRecomp/app.cpp index b298ebc3..d82e9c5b 100644 --- a/UnleashedRecomp/app.cpp +++ b/UnleashedRecomp/app.cpp @@ -89,9 +89,6 @@ PPC_FUNC(sub_822C1130) if (Config::EnableObjectCollisionDebugView) *SWA::SGlobals::ms_IsObjectCollisionRender = true; - if (Config::EnableStageCollisionDebugView) - *SWA::SGlobals::ms_IsCollisionRender = true; - __imp__sub_822C1130(ctx, base); } diff --git a/UnleashedRecomp/patches/misc_patches.cpp b/UnleashedRecomp/patches/misc_patches.cpp index ec4e1a8b..b6bc8b1b 100644 --- a/UnleashedRecomp/patches/misc_patches.cpp +++ b/UnleashedRecomp/patches/misc_patches.cpp @@ -193,3 +193,14 @@ PPC_FUNC(sub_824EE620) ctx.r3.u32 = PersistentStorageManager::ShouldDisplayDLCMessage(true); } + +bool StageCollisionDebugViewMidAsmHook(PPCRegister& r27) +{ + if (Config::EnableStageCollisionDebugView) + { + r27.u32 = true; + return true; + } + + return false; +} diff --git a/UnleashedRecompLib/config/SWA.toml b/UnleashedRecompLib/config/SWA.toml index eb871b8a..eae39138 100644 --- a/UnleashedRecompLib/config/SWA.toml +++ b/UnleashedRecompLib/config/SWA.toml @@ -1141,3 +1141,9 @@ registers = ["r3"] name = "EndingTextPositionMidAsmHook" address = 0x82580168 registers = ["r31", "f13"] + +[[midasm_hook]] +name = "StageCollisionDebugViewMidAsmHook" +address = 0x825648F8 +registers = ["r27"] +jump_address_on_true = 0x825648FC