From 107b2ef921a41f6c4dbb1ebba2ac5505d3d10eb3 Mon Sep 17 00:00:00 2001 From: OV2 Date: Thu, 5 May 2011 18:05:05 +0200 Subject: [PATCH] Echo buffer always reads from apu ram --- apu/SPC_DSP.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apu/SPC_DSP.cpp b/apu/SPC_DSP.cpp index 6007c2bb..e6ba49ed 100644 --- a/apu/SPC_DSP.cpp +++ b/apu/SPC_DSP.cpp @@ -605,7 +605,11 @@ VOICE_CLOCK(V9_V6_V3) { voice_V9(v); voice_V6(v+1); voice_V3(v+2); } inline void SPC_DSP::echo_read( int ch ) { - int s = GET_LE16SA( ECHO_PTR( ch ) ); + int s; + if ( m.t_echo_ptr >= 0xffc0 && rom_enabled ) + s = GET_LE16SA( &hi_ram [m.t_echo_ptr + ch * 2 - 0xffc0] ); + else + s = GET_LE16SA( ECHO_PTR( ch ) ); // second copy simplifies wrap-around handling ECHO_FIR( 0 ) [ch] = ECHO_FIR( 8 ) [ch] = s >> 1; }