From 0f5b71f1d5e5ac9ff97bdf1ad3aef5264431b314 Mon Sep 17 00:00:00 2001 From: Hyper <34012267+hyperbx@users.noreply.github.com> Date: Thu, 21 Nov 2024 22:21:22 +0000 Subject: [PATCH] options_menu: implemented Subtitles --- UnleashedRecomp/api/SWA/System/ApplicationDocument.h | 7 +++---- UnleashedRecomp/patches/misc_patches.cpp | 7 +++++++ UnleashedRecompLib/config/SWA.toml | 5 +++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/UnleashedRecomp/api/SWA/System/ApplicationDocument.h b/UnleashedRecomp/api/SWA/System/ApplicationDocument.h index d9fa2624..37a76e82 100644 --- a/UnleashedRecomp/api/SWA/System/ApplicationDocument.h +++ b/UnleashedRecomp/api/SWA/System/ApplicationDocument.h @@ -21,7 +21,7 @@ namespace SWA eVoiceLanguage_Japanese }; - class CApplicationDocument // : public Hedgehog::Base::CSynchronizedObject + class CApplicationDocument : public Hedgehog::Base::CSynchronizedObject { public: class CMember @@ -36,12 +36,11 @@ namespace SWA // TODO: Hedgehog::Base::TSynchronizedPtr static CApplicationDocument* GetInstance(); - xpointer m_pVftable; xpointer m_pMember; be m_Language; be m_VoiceLanguage; - SWA_INSERT_PADDING(0x0C); - be m_Region; + SWA_INSERT_PADDING(0x0D); + bool m_Subtitles; }; } diff --git a/UnleashedRecomp/patches/misc_patches.cpp b/UnleashedRecomp/patches/misc_patches.cpp index 97b2213d..d645b9f2 100644 --- a/UnleashedRecomp/patches/misc_patches.cpp +++ b/UnleashedRecomp/patches/misc_patches.cpp @@ -22,6 +22,13 @@ bool DisableEvilControlTutorialMidAsmHook(PPCRegister& r4, PPCRegister& r5) return r4.u32 == 1 && r5.u32 == 1; } +void ToggleSubtitlesMidAsmHook(PPCRegister& r27) +{ + auto pApplicationDocument = (SWA::CApplicationDocument*)g_memory.Translate(r27.u32); + + pApplicationDocument->m_Subtitles = Config::Subtitles; +} + void WerehogBattleMusicMidAsmHook(PPCRegister& r11) { if (Config::BattleTheme) diff --git a/UnleashedRecompLib/config/SWA.toml b/UnleashedRecompLib/config/SWA.toml index 85da167a..4830dae3 100644 --- a/UnleashedRecompLib/config/SWA.toml +++ b/UnleashedRecompLib/config/SWA.toml @@ -501,3 +501,8 @@ name = "CHudPauseMiscInjectOptionsMidAsmHook" address = 0x824B08C0 registers = ["r3"] return_on_true = true + +[[midasm_hook]] +name = "ToggleSubtitlesMidAsmHook" +address = 0x82B9BB74 +registers = ["r27"]