Re-added the change to make the dsp remaining block count zero-based. Fixes Dream Mix TV World Fighters.

This commit is contained in:
skidau 2014-10-03 21:30:09 +10:00
parent 16d3604211
commit 30c8de495e
1 changed files with 4 additions and 1 deletions

View File

@ -435,7 +435,10 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base)
// Audio DMA blocks remaining is invalid to write to, and requires logic on // Audio DMA blocks remaining is invalid to write to, and requires logic on
// the read side. // the read side.
mmio->Register(base | AUDIO_DMA_BLOCKS_LEFT, mmio->Register(base | AUDIO_DMA_BLOCKS_LEFT,
MMIO::DirectRead<u16>(&g_audioDMA.remaining_blocks_count), MMIO::ComplexRead<u16>([](u32) {
// remaining_blocks_count is zero-based. DreamMix World Fighters will hang if it never reaches zero.
return (g_audioDMA.remaining_blocks_count > 0 ? g_audioDMA.remaining_blocks_count - 1 : 0);
}),
MMIO::InvalidWrite<u16>() MMIO::InvalidWrite<u16>()
); );