diff --git a/backends/playback/zsm/zsm_backend.cpp b/backends/playback/zsm/zsm_backend.cpp index e41807b..394ac77 100644 --- a/backends/playback/zsm/zsm_backend.cpp +++ b/backends/playback/zsm/zsm_backend.cpp @@ -132,7 +132,6 @@ void ZsmBackend::tick(bool step) { while (YM_read_status()) { size_t clocksToAddForYm = 64; ticks_remaining -= clocksToAddForYm; - prevCpuClocks += clocksToAddForYm; if (ticks_remaining < 0) { delayTicks -= 1; nextCpuClocks += ClocksPerTick; @@ -211,7 +210,7 @@ void ZsmBackend::tick(bool step) { size_t nextCpuClocksInt = std::floor(nextCpuClocks); size_t prevCpuClocksInt = std::floor(prevCpuClocks); size_t cpuClocksIntDelta = nextCpuClocksInt - prevCpuClocksInt; - audio_step(cpuClocksIntDelta); + audio_step(ticks_remaining); cpuClocks = std::fmod(nextCpuClocks, ClocksPerTick); } size_t ZsmBackend::render(void *buf, size_t maxlen) {