diff --git a/backends/playback/zsm/zsm_backend.cpp b/backends/playback/zsm/zsm_backend.cpp index 394ac77..e41807b 100644 --- a/backends/playback/zsm/zsm_backend.cpp +++ b/backends/playback/zsm/zsm_backend.cpp @@ -132,6 +132,7 @@ 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; @@ -210,7 +211,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(ticks_remaining); + audio_step(cpuClocksIntDelta); cpuClocks = std::fmod(nextCpuClocks, ClocksPerTick); } size_t ZsmBackend::render(void *buf, size_t maxlen) {