diff --git a/bsnes/sfc/coprocessor/icd/icd.cpp b/bsnes/sfc/coprocessor/icd/icd.cpp index d94bb3be..d084e45a 100644 --- a/bsnes/sfc/coprocessor/icd/icd.cpp +++ b/bsnes/sfc/coprocessor/icd/icd.cpp @@ -62,7 +62,7 @@ auto ICD::main() -> void { static uint n = 0; float x = sin((2 * 3.141592 * n++ * 1000.0) / 44100.0) * 0.1; apuWrite(x, x); - step(128); + step(256); return synchronizeCPU(); #endif @@ -149,8 +149,8 @@ auto ICD::power(bool reset) -> void { //SGB1 uses CPU oscillator; SGB2 uses dedicated oscillator create(ICD::Enter, frequency); if(!reset) stream = Emulator::audio.createStream(2, frequency / 128); - dsp.stream->reset(); - icd.stream->reset(); +//dsp.stream->reset(); +//icd.stream->reset(); for(auto& packet : this->packet) packet = {}; packetSize = 0; diff --git a/bsnes/sfc/smp/timing.cpp b/bsnes/sfc/smp/timing.cpp index 0b8c35e5..1140d76e 100644 --- a/bsnes/sfc/smp/timing.cpp +++ b/bsnes/sfc/smp/timing.cpp @@ -35,15 +35,8 @@ auto SMP::waitIdle(maybe addr, bool half) -> void { auto SMP::step(uint clocks) -> void { clock += clocks * (uint64_t)cpu.frequency; dsp.clock -= clocks; - synchronizeDSP(); - - #if defined(DEBUGGER) synchronizeCPU(); - #else - //forcefully sync S-SMP to S-CPU in case chips are not communicating - //sync if S-SMP is more than 24 samples ahead of S-CPU - if(clock > +(768 * 24 * (int64_t)24'000'000)) synchronizeCPU(); - #endif + synchronizeDSP(); } auto SMP::stepIdle(uint clocks) -> void {