From 5cd15b17cb4f2aa9dd45a6d0d161cd8d5b82939a Mon Sep 17 00:00:00 2001 From: dinkc64 <12570148+dinkc64@users.noreply.github.com> Date: Sun, 3 Aug 2014 20:13:41 +0000 Subject: [PATCH] timing fix for PCEngine from Barry @ forum --- src/burn/drv/pce/pce.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/burn/drv/pce/pce.cpp b/src/burn/drv/pce/pce.cpp index a2ce40b06..d5c65f701 100644 --- a/src/burn/drv/pce/pce.cpp +++ b/src/burn/drv/pce/pce.cpp @@ -625,15 +625,20 @@ INT32 PCEFrame() PCECompileInputs(); INT32 nCyclesTotal = (INT32)((INT64)7159090 * nBurnCPUSpeedAdjust / (0x0100 * 60)); - + INT32 nCyclesDone = 0; + INT32 nCyclesSegment = 0; + h6280Open(0); - + for (INT32 i = 0; i < 262; i++) { - h6280Run(nCyclesTotal / 262); + INT32 nNext; + nNext = (i + 1) * nCyclesTotal / 262; + nCyclesSegment = nNext - nCyclesDone; + nCyclesDone += h6280Run(nCyclesSegment); interrupt(); } - + if (pBurnSoundOut) { c6280_update(pBurnSoundOut, nBurnSoundLen); }