From 4c1c9d7c678ed03305f39c23c9c4483cde4fcb98 Mon Sep 17 00:00:00 2001 From: dinkc64 Date: Wed, 19 Jun 2024 01:32:32 -0400 Subject: [PATCH] wwfsstar, better sync --- src/burn/drv/pre90s/d_wwfsstar.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/burn/drv/pre90s/d_wwfsstar.cpp b/src/burn/drv/pre90s/d_wwfsstar.cpp index b22ef1dc6..9bd42f469 100644 --- a/src/burn/drv/pre90s/d_wwfsstar.cpp +++ b/src/burn/drv/pre90s/d_wwfsstar.cpp @@ -37,6 +37,8 @@ static UINT8 DrvJoy3[16]; static UINT8 DrvDips[2]; static UINT8 DrvReset; +static INT32 nExtraCycles; + static INT32 vblank = 0; static struct BurnInputInfo WwfsstarInputList[] = { @@ -271,6 +273,8 @@ static INT32 DrvDoReset() vblank = 1; + nExtraCycles = 0; + return 0; } @@ -670,7 +674,7 @@ static INT32 DrvFrame() INT32 nInterleave = 256; INT32 nCyclesTotal[2] = { 10000000 / 60, 3579545 / 60 }; - INT32 nCyclesDone[2] = { 0, 0 }; + INT32 nCyclesDone[2] = { nExtraCycles, 0 }; SekOpen(0); ZetOpen(0); @@ -693,6 +697,8 @@ static INT32 DrvFrame() MSM6295Render(pBurnSoundOut, nBurnSoundLen); } + nExtraCycles = nCyclesDone[0] - nCyclesTotal[0]; + ZetClose(); SekClose(); @@ -722,7 +728,7 @@ static INT32 DrvScan(INT32 nAction, INT32 *pnMin) BurnYM2151Scan(nAction, pnMin); MSM6295Scan(nAction, pnMin); - SCAN_VAR(vblank); + SCAN_VAR(nExtraCycles); } return 0;