diff --git a/src/gba/Sound.cpp b/src/gba/Sound.cpp index 39ada686..948bae34 100644 --- a/src/gba/Sound.cpp +++ b/src/gba/Sound.cpp @@ -187,11 +187,11 @@ void Gba_Pcm_Fifo::timer_overflowed( int which_timer ) { // Need to fill FIFO CPUCheckDMA( 3, which ? 4 : 2 ); - if ( count <= 16 ) + if ( count == 0 ) // Fixes Mother 3 { // Not filled by DMA, so fill with 16 bytes of silence int reg = which ? FIFOB_L : FIFOA_L; - for ( int n = 4; n--; ) + for ( int n = 8; n--; ) { soundEvent(reg , (u16)0); soundEvent(reg+2, (u16)0);