..trying out CPU_IRQSTATUS_HOLD
This commit is contained in:
parent
80014e3d9c
commit
9e08b5cb4f
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue