SPU: ENDX register should get set when looping as well as muting

This commit is contained in:
Connor McLaughlin 2020-04-28 16:57:14 +10:00
parent ce46dbeeca
commit b16ecd7a86

View file

@ -1474,10 +1474,10 @@ std::tuple<s32, s32> SPU::SampleVoice(u32 voice_index)
// handle flags // handle flags
if (voice.current_block_flags.loop_end) if (voice.current_block_flags.loop_end)
{ {
m_endx_register |= (u32(1) << voice_index);
if (!voice.current_block_flags.loop_repeat) if (!voice.current_block_flags.loop_repeat)
{ {
Log_TracePrintf("Voice %u loop end+mute @ 0x%08X", voice_index, ZeroExtend32(voice.current_address)); Log_TracePrintf("Voice %u loop end+mute @ 0x%08X", voice_index, ZeroExtend32(voice.current_address));
m_endx_register |= (u32(1) << voice_index);
voice.ForceOff(); voice.ForceOff();
} }
else else