From 9e08b5cb4fceb8824a6973da93132175900ee9a6 Mon Sep 17 00:00:00 2001 From: dinkc64 <12570148+dinkc64@users.noreply.github.com> Date: Fri, 20 Feb 2015 16:26:29 +0000 Subject: [PATCH] ..trying out CPU_IRQSTATUS_HOLD --- src/burn/drv/pre90s/d_1942.cpp | 4 +--- src/burn/drv/pre90s/d_jack.cpp | 4 +--- src/burn/drv/pre90s/d_suna8.cpp | 20 +++++--------------- src/burn/drv/pre90s/d_vulgus.cpp | 12 +++--------- 4 files changed, 10 insertions(+), 30 deletions(-) diff --git a/src/burn/drv/pre90s/d_1942.cpp b/src/burn/drv/pre90s/d_1942.cpp index 23ab954bc..367ae97f3 100644 --- a/src/burn/drv/pre90s/d_1942.cpp +++ b/src/burn/drv/pre90s/d_1942.cpp @@ -977,9 +977,7 @@ static INT32 DrvFrame() nCyclesSegment = ZetRun(nCyclesSegment); nCyclesDone[nCurrentCPU] += nCyclesSegment; if (i & 1) { // 4 times per frame - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); // needs long ack - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } ZetClose(); diff --git a/src/burn/drv/pre90s/d_jack.cpp b/src/burn/drv/pre90s/d_jack.cpp index 731b78ce7..827c6f8b4 100644 --- a/src/burn/drv/pre90s/d_jack.cpp +++ b/src/burn/drv/pre90s/d_jack.cpp @@ -857,9 +857,7 @@ void __fastcall jack_cpu0_write(UINT16 address, UINT8 data) soundlatch = data; ZetClose(); ZetOpen(1); - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); ZetClose(); ZetOpen(0); break; diff --git a/src/burn/drv/pre90s/d_suna8.cpp b/src/burn/drv/pre90s/d_suna8.cpp index c49c53a33..b9d504e32 100644 --- a/src/burn/drv/pre90s/d_suna8.cpp +++ b/src/burn/drv/pre90s/d_suna8.cpp @@ -2159,9 +2159,7 @@ static INT32 HardheadFrame() nCyclesSegment = (nCyclesTotal[1] / nInterleave) * (i + 1); BurnTimerUpdateYM3812(nCyclesSegment); if ((i % (nInterleave/4)) == ((nInterleave / 4) - 1)) { - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } ZetClose(); } @@ -2222,9 +2220,7 @@ static INT32 RrangerFrame() nCyclesSegment = (nCyclesTotal[1] / nInterleave) * (i + 1); BurnTimerUpdate(nCyclesSegment); if ((i % (nInterleave/4)) == ((nInterleave / 4) - 1)) { - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } ZetClose(); } @@ -2282,9 +2278,7 @@ static INT32 Hardhea2Frame() nCyclesSegment = (nCyclesTotal[1] / nInterleave) * (i + 1); BurnTimerUpdateYM3812(nCyclesSegment); if ((i % (nInterleave/4)) == ((nInterleave / 4) - 1)) { - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } ZetClose(); @@ -2350,9 +2344,7 @@ static INT32 SparkmanFrame() // & starfigh if (i == 112 && *nmi_enable) ZetNmi(); if (i == (Sparkman ? 250 : 255)) { // any other value and the sprites glitch (MAME uses 240 here, hmmm) vblank = 1; - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } ZetClose(); @@ -2360,9 +2352,7 @@ static INT32 SparkmanFrame() // & starfigh nCyclesSegment = (nCyclesTotal[1] / nInterleave) * (i + 1); BurnTimerUpdateYM3812(nCyclesSegment); if ((i % (nInterleave/4)) == ((nInterleave / 4) - 1)) { - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } ZetClose(); } diff --git a/src/burn/drv/pre90s/d_vulgus.cpp b/src/burn/drv/pre90s/d_vulgus.cpp index 6ae79f353..60a753d6c 100644 --- a/src/burn/drv/pre90s/d_vulgus.cpp +++ b/src/burn/drv/pre90s/d_vulgus.cpp @@ -570,23 +570,17 @@ static INT32 DrvFrame() nCycles[0] -= ZetRun(nCycles[0] / (nInterleave - i)); if (i == ((nInterleave / 2) - 1)) { ZetSetVector(0xd7); - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } if (i == ( nInterleave - 1)) { ZetSetVector(0xcf); - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); } ZetClose(); ZetOpen(1); nCycles[1] -= ZetRun(nCycles[1] / (nInterleave - i)); - ZetSetIRQLine(0, CPU_IRQSTATUS_ACK); - ZetRun(100); - ZetSetIRQLine(0, CPU_IRQSTATUS_NONE); + ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD); ZetClose(); if (pBurnSoundOut) {