Skip to content

Commit c5df50e

Browse files
Config: Voice Language (#129)
* Handle VoiceLanguage for WMV, CSB, SBK, & in-game cutscenes Signed-off-by: Isaac Marovitz <isaacryu@icloud.com> * Fix in-game voice lines Signed-off-by: Isaac Marovitz <isaacryu@icloud.com> --------- Signed-off-by: Isaac Marovitz <isaacryu@icloud.com>
1 parent 356ff7d commit c5df50e

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

MarathonRecomp/patches/audio_patches.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,21 @@ void PowerUpJingleDurationFix(PPCRegister& duration)
8888

8989
duration.f64 = 20.0;
9090
}
91+
92+
void XmvPlayerLang(PPCRegister& r11)
93+
{
94+
r11.u32 = 1;
95+
96+
if (Config::VoiceLanguage == EVoiceLanguage::Japanese)
97+
r11.u32++;
98+
}
99+
100+
void CsbSbkLang(PPCRegister& r8)
101+
{
102+
r8.u32 = Config::VoiceLanguage == EVoiceLanguage::Japanese ? 0 : 1;
103+
}
104+
105+
void MovieVoiceLang(PPCRegister& r19)
106+
{
107+
r19.u32 = Config::VoiceLanguage == EVoiceLanguage::Japanese ? 0x80000000 : 0x40000000;
108+
}

MarathonRecompLib/config/Marathon.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,3 +224,28 @@ registers = ["f13"]
224224
name = "PowerUpJingleDurationFix"
225225
address = 0x8216CC28
226226
registers = ["f31"]
227+
228+
[[midasm_hook]]
229+
name = "XmvPlayerLang"
230+
address = 0x8264D844
231+
registers = ["r11"]
232+
233+
[[midasm_hook]]
234+
name = "CsbSbkLang"
235+
address = 0x826124B0
236+
registers = ["r8"]
237+
238+
[[midasm_hook]]
239+
name = "CsbSbkLang"
240+
address = 0x826121BC
241+
registers = ["r8"]
242+
243+
[[midasm_hook]]
244+
name = "CsbSbkLang"
245+
address = 0x821784F8
246+
registers = ["r8"]
247+
248+
[[midasm_hook]]
249+
name = "MovieVoiceLang"
250+
address = 0x8264B4E4
251+
registers = ["r19"]

0 commit comments

Comments
 (0)