diff options
| author | Pokechu22 <Pokechu022@gmail.com> | 2022-06-25 14:06:55 -0700 |
|---|---|---|
| committer | Pokechu22 <Pokechu022@gmail.com> | 2022-06-25 14:06:55 -0700 |
| commit | 9675faa2329ab0aa6d55231ae56edacc90ace2c0 (patch) | |
| tree | 628205e61e226955a1d8fc9bc497d173df7de00c /Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp | |
| parent | b30e1c5bb9803f3c4b31fca5adc80a44a40be546 (diff) | |
DSPHLE: Properly reflect initial halt state in mail handler
DSPHLE::Initialize sets the halt and init bits to true (i.e. m_dsp_control.Hex starts as 0x804), which is reasonable behavior (this is the state the DSP will be in when starting a game from the IPL, as after `__OSStopAudioSystem` the control register is 0x804).
However, CMailHandler::m_halted defaults to false, and we only call CMailHandler::SetHalted in DSPHLE::DSP_WriteControlRegister when m_dsp_control.DSPHalt changes, so since DSPHalt defaults to true, if the first thing that happens is writing true to DSPHalt, we won't properly halt the mail handler.
Now, we call CMailHandler::SetHalted on startup. This fixes Datel titles when the IPL is skipped with DSP HLE (though this configuration only works once https://bugs.dolphin-emu.org/issues/8223 is fixed).
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp')
0 files changed, 0 insertions, 0 deletions
