Phase 1. Kill off xxx_IRQSTATUS_yyyy in favor of CPU_IRQSTATUS_yyyy.
Also kill off ZetRaiseIrq and ZetLowerIrq. Please play test! I've tested the most intensive games that use each cpu, but this isn't a large number of games.
This commit is contained in:
parent
dd567ec864
commit
04e1d44a1c
|
@ -169,6 +169,35 @@ struct BurnDIPInfo {
|
|||
char* szText;
|
||||
};
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Common CPU definitions
|
||||
|
||||
#define CPU_IRQSTATUS_NONE 0
|
||||
#define CPU_IRQSTATUS_ACK 1
|
||||
#define CPU_IRQSTATUS_AUTO 2
|
||||
|
||||
#define CPU_IRQLINE0 0
|
||||
#define CPU_IRQLINE1 1
|
||||
#define CPU_IRQLINE2 2
|
||||
#define CPU_IRQLINE3 3
|
||||
#define CPU_IRQLINE4 4
|
||||
#define CPU_IRQLINE5 5
|
||||
#define CPU_IRQLINE6 6
|
||||
#define CPU_IRQLINE7 7
|
||||
|
||||
#define CPU_IRQLINE_IRQ CPU_IRQLINE0
|
||||
#define CPU_IRQLINE_FIRQ CPU_IRQLINE1
|
||||
#define CPU_IRQLINE_NMI 0x20
|
||||
|
||||
#define MAP_READ 1
|
||||
#define MAP_WRITE 2
|
||||
#define MAP_FETCHOP 4
|
||||
#define MAP_FETCHARG 8
|
||||
#define MAP_ROM (MAP_READ|MAP_FETCHOP|MAP_FETCHARG)
|
||||
#define MAP_RAM (MAP_ROM|MAP_WRITE)
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
extern bool bBurnUseMMX;
|
||||
|
|
|
@ -124,7 +124,7 @@ void NMK004_reset()
|
|||
|
||||
static void NMK004YM2203IrqHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
tlcs90SetIRQLine(0, (nStatus) ? TLCS90_IRQSTATUS_ACK : TLCS90_IRQSTATUS_NONE);
|
||||
tlcs90SetIRQLine(0, (nStatus) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
inline static double NMK004GetTime()
|
||||
|
@ -217,7 +217,7 @@ void NMK004NmiWrite(INT32 data)
|
|||
{
|
||||
data ^= 0xff; // hack - no game works properly without this being inverted.
|
||||
|
||||
tlcs90SetIRQLine(0x20 /*nmi*/, (data & 1) ? TLCS90_IRQSTATUS_ACK : TLCS90_IRQSTATUS_NONE);
|
||||
tlcs90SetIRQLine(0x20 /*nmi*/, (data & 1) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
void NMK004Write(INT32, INT32 data)
|
||||
|
|
|
@ -80,10 +80,10 @@ static void update_irq_lines(INT32 param)
|
|||
}
|
||||
|
||||
if ((irq1 & irq2) == 0xff) {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
} else {
|
||||
ZetSetVector(irq1 & irq2);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ void t5182_setirq_callback(INT32 param)
|
|||
break;
|
||||
}
|
||||
|
||||
ZetSetIRQLine(0, (irqstate) ? ZET_IRQSTATUS_ACK : ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, (irqstate) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -360,7 +360,7 @@ static void pce_refresh_sprites(INT32 which, INT32 line, UINT8 *drawn, UINT16 *l
|
|||
{
|
||||
/* note: flag is set only if irq is taken, Mizubaku Daibouken relies on this behaviour */
|
||||
vdc_status[which] |= 0x02;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
continue; /* Should cause an interrupt */
|
||||
}
|
||||
|
@ -404,7 +404,7 @@ static void pce_refresh_sprites(INT32 which, INT32 line, UINT8 *drawn, UINT16 *l
|
|||
else if (drawn[pixel_x] == 2)
|
||||
{
|
||||
if(vdc_data[which][0x05] & 0x01)
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
vdc_status[which] |= 0x01;
|
||||
}
|
||||
}
|
||||
|
@ -454,7 +454,7 @@ static void pce_refresh_sprites(INT32 which, INT32 line, UINT8 *drawn, UINT16 *l
|
|||
else if ( drawn[pixel_x] == 2 )
|
||||
{
|
||||
if(vdc_data[which][0x05] & 0x01)
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
vdc_status[which] |= 0x01;
|
||||
}
|
||||
}
|
||||
|
@ -479,7 +479,7 @@ static void pce_refresh_sprites(INT32 which, INT32 line, UINT8 *drawn, UINT16 *l
|
|||
{
|
||||
/* note: flag is set only if irq is taken, Mizubaku Daibouken relies on this behaviour */
|
||||
vdc_status[which] |= 0x02;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -513,7 +513,7 @@ static void pce_refresh_sprites(INT32 which, INT32 line, UINT8 *drawn, UINT16 *l
|
|||
else if ( drawn[pixel_x] == 2 )
|
||||
{
|
||||
if(vdc_data[which][0x05] & 0x01)
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
vdc_status[which] |= 0x01;
|
||||
}
|
||||
}
|
||||
|
@ -694,7 +694,7 @@ static void vdc_advance_line(INT32 which)
|
|||
}
|
||||
|
||||
if (ret)
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
|
||||
static void pce_refresh_line(INT32 which, INT32 /*line*/, INT32 external_input, UINT8 *drawn, UINT16 *line_buffer)
|
||||
|
@ -1013,7 +1013,7 @@ static void vdc_do_dma(INT32 which)
|
|||
|
||||
if (dvc)
|
||||
{
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1129,7 +1129,7 @@ UINT8 vdc_read(INT32 which, UINT8 offset)
|
|||
case 0x00: {
|
||||
UINT8 ret = vdc_status[which];
|
||||
vdc_status[which] &= ~0x3f;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_NONE);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -252,7 +252,7 @@ static void DoIRQ()
|
|||
nRasterline[nInterrupt] = nIrqLine - nFirstLine;
|
||||
}
|
||||
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
SekRun(nCpsCycles * 0x01 / nCpsNumScanlines);
|
||||
if (nRasterline[nInterrupt] < 224) {
|
||||
CopyCpsReg(nInterrupt);
|
||||
|
@ -334,7 +334,7 @@ INT32 Cps1Frame()
|
|||
|
||||
memcpy(CpsSaveReg[0], CpsReg, 0x100); // Registers correct now
|
||||
|
||||
SekSetIRQLine(Cps1VBlankIRQLine, SEK_IRQSTATUS_AUTO); // Trigger VBlank interrupt
|
||||
SekSetIRQLine(Cps1VBlankIRQLine, CPU_IRQSTATUS_AUTO); // Trigger VBlank interrupt
|
||||
}
|
||||
|
||||
SekRun(nNext - SekTotalCycles()); // run 68K
|
||||
|
@ -461,7 +461,7 @@ INT32 Cps2Frame()
|
|||
// nCpsCyclesSegment[0] = (nCpsCycles * nVBlank) / nCpsNumScanlines;
|
||||
// nDone += SekRun(nCpsCyclesSegment[0] - nDone);
|
||||
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO); // VBlank
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO); // VBlank
|
||||
if (pBurnDraw) {
|
||||
CpsDraw();
|
||||
}
|
||||
|
|
|
@ -13679,7 +13679,7 @@ static void GanabareTimeKeeperTick()
|
|||
if ((GetCurrentFrame() % 60) == 0) TimeKeeperTick(); // refresh is 59.61
|
||||
|
||||
SekOpen(0);
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
SekClose();
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ void FcrashSoundCommand(UINT16 d)
|
|||
}
|
||||
|
||||
FcrashSoundLatch = d & 0xff;
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
|
||||
UINT8 __fastcall FcrashZ80Read(UINT16 a)
|
||||
|
@ -46,7 +46,7 @@ UINT8 __fastcall FcrashZ80Read(UINT16 a)
|
|||
}
|
||||
|
||||
case 0xe400: {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return FcrashSoundLatch;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,10 +15,10 @@ static INT32 nCyclesDone;
|
|||
static void drvYM2151IRQHandler(INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
ZetSetIRQLine(0xFF, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0xFF, CPU_IRQSTATUS_ACK);
|
||||
ZetRun(0x0800);
|
||||
} else {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ static INT32 nQsndCyclesExtra;
|
|||
static INT32 qsndTimerOver(INT32, INT32)
|
||||
{
|
||||
// bprintf(PRINT_NORMAL, _T(" - IRQ -> 1.\n"));
|
||||
ZetSetIRQLine(0xFF, ZET_IRQSTATUS_AUTO);
|
||||
ZetSetIRQLine(0xFF, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ void Sf2mdtSoundCommand(UINT16 d)
|
|||
}
|
||||
|
||||
Sf2mdtSoundLatch = d & 0xff;
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
|
||||
UINT8 __fastcall Sf2mdtZ80Read(UINT16 a)
|
||||
|
@ -43,7 +43,7 @@ UINT8 __fastcall Sf2mdtZ80Read(UINT16 a)
|
|||
}
|
||||
|
||||
case 0xdc00: {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return Sf2mdtSoundLatch;
|
||||
}
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ STDINPUTINFO(ddonpach)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall ddonpachReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -59,7 +59,7 @@ STDINPUTINFO(donpachi)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall donpachiReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -76,7 +76,7 @@ STDDIPINFO(esprade)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall espradeReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -62,7 +62,7 @@ STDINPUTINFO(feversos)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall feversosReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -248,7 +248,7 @@ STDDIPINFO(theroes)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall gaiaReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -62,7 +62,7 @@ STDINPUTINFO(guwange)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall guwangeReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -67,7 +67,7 @@ STDINPUTINFO(hotdogst)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall hotdogstReadByte(UINT32 sekAddress)
|
||||
|
@ -591,9 +591,9 @@ static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
|
|||
static void DrvFMIRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus & 1) {
|
||||
ZetSetIRQLine(0xff, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ static void UpdateIRQStatus()
|
|||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
|
||||
SekSetIRQLine(2, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(2, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall korokoroReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -74,7 +74,7 @@ STDINPUTINFO(mazinger)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall mazingerReadByte(UINT32 sekAddress)
|
||||
|
@ -634,9 +634,9 @@ static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
|
|||
static void DrvFMIRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus & 1) {
|
||||
ZetSetIRQLine(0xff, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ STDINPUTINFO(metmqstr)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall metmqstrReadByte(UINT32 sekAddress)
|
||||
|
@ -477,7 +477,7 @@ static INT32 DrvFrame()
|
|||
UpdateIRQStatus();
|
||||
}
|
||||
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
|
||||
if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
|
||||
|
@ -690,9 +690,9 @@ static INT32 drvZInit()
|
|||
static void DrvYM2151IrqHandler(INT32 Irq)
|
||||
{
|
||||
if (Irq) {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ STDINPUTINFO(pwrinst2)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall pwrinst2ReadByte(UINT32 sekAddress)
|
||||
|
@ -823,9 +823,9 @@ static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
|
|||
static void DrvFMIRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus & 1) {
|
||||
ZetSetIRQLine(0xff, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ STDINPUTINFO(sailormn)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
INT32 nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
static void drvZ80Bankswitch(INT32 nBank)
|
||||
|
@ -90,11 +90,9 @@ static void drvZ80Bankswitch(INT32 nBank)
|
|||
static void drvYM2151IRQHandler(INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
// ZetRaiseIrq(255);
|
||||
// nCaveCyclesDone[1] += ZetRun(0x0400);
|
||||
ZetSetIRQLine(0xff, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ STDDIPINFO(Tjumpman)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
static INT32 tjumpman_hopper_read()
|
||||
|
|
|
@ -62,7 +62,7 @@ STDINPUTINFO(uopoko)
|
|||
static void UpdateIRQStatus()
|
||||
{
|
||||
nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
|
||||
SekSetIRQLine(1, nIRQPending ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
UINT8 __fastcall uopokoReadByte(UINT32 sekAddress)
|
||||
|
|
|
@ -247,7 +247,7 @@ static void paddle_callback()
|
|||
joy_status[1] = 1;
|
||||
|
||||
if (joy_status[0] || joy_status[1]) {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_AUTO); // ACK? -- lower when input read?
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO); // ACK? -- lower when input read?
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -442,25 +442,25 @@ static void cps3_process_character_dma(UINT32 address)
|
|||
switch ( dat1 & 0x00e00000 ) {
|
||||
case 0x00800000:
|
||||
chardma_table_address = real_source;
|
||||
Sh2SetIRQLine(10, SH2_IRQSTATUS_AUTO);
|
||||
Sh2SetIRQLine(10, CPU_IRQSTATUS_AUTO);
|
||||
break;
|
||||
case 0x00400000:
|
||||
cps3_do_char_dma( real_source, real_destination, real_length );
|
||||
Sh2SetIRQLine(10, SH2_IRQSTATUS_AUTO);
|
||||
Sh2SetIRQLine(10, CPU_IRQSTATUS_AUTO);
|
||||
break;
|
||||
case 0x00600000:
|
||||
//bprintf(PRINT_NORMAL, _T("Character DMA (alt) start %08x to %08x with %d\n"), real_source, real_destination, real_length);
|
||||
/* 8bpp DMA decompression
|
||||
- this is used on SFIII NG Sean's Stage ONLY */
|
||||
cps3_do_alt_char_dma( real_source, real_destination, real_length );
|
||||
Sh2SetIRQLine(10, SH2_IRQSTATUS_AUTO);
|
||||
Sh2SetIRQLine(10, CPU_IRQSTATUS_AUTO);
|
||||
break;
|
||||
case 0x00000000:
|
||||
// Red Earth need this. 8192 byte trans to 0x00003000 (from 0x007ec000???)
|
||||
// seems some stars(6bit alpha) without compress
|
||||
//bprintf(PRINT_NORMAL, _T("Character DMA (redearth) start %08x to %08x with %d\n"), real_source, real_destination, real_length);
|
||||
memcpy( (UINT8 *)RamCRam + real_destination, RomUser + real_source, real_length );
|
||||
Sh2SetIRQLine(10, SH2_IRQSTATUS_AUTO);
|
||||
Sh2SetIRQLine(10, CPU_IRQSTATUS_AUTO);
|
||||
break;
|
||||
default:
|
||||
bprintf(PRINT_NORMAL, _T("Character DMA Unknown DMA List Command Type %08x\n"), dat1);
|
||||
|
@ -693,7 +693,7 @@ void __fastcall cps3WriteWord(UINT32 addr, UINT16 data)
|
|||
#endif
|
||||
Cps3CurPal[(paldma_dest + i) ] = BurnHighCol(r, g, b, 0);
|
||||
}
|
||||
Sh2SetIRQLine(10, SH2_IRQSTATUS_AUTO);
|
||||
Sh2SetIRQLine(10, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -713,10 +713,10 @@ void __fastcall cps3WriteWord(UINT32 addr, UINT16 data)
|
|||
case 0x05050026: break;
|
||||
|
||||
case 0x05100000:
|
||||
Sh2SetIRQLine(12, SH2_IRQSTATUS_NONE);
|
||||
Sh2SetIRQLine(12, CPU_IRQSTATUS_NONE);
|
||||
break;
|
||||
case 0x05110000:
|
||||
Sh2SetIRQLine(10, SH2_IRQSTATUS_NONE);
|
||||
Sh2SetIRQLine(10, CPU_IRQSTATUS_NONE);
|
||||
break;
|
||||
|
||||
case 0x05140000:
|
||||
|
@ -2015,11 +2015,11 @@ INT32 cps3Frame()
|
|||
|
||||
if (cps_int10_cnt >= 2) {
|
||||
cps_int10_cnt = 0;
|
||||
Sh2SetIRQLine(10, SH2_IRQSTATUS_AUTO);
|
||||
Sh2SetIRQLine(10, CPU_IRQSTATUS_AUTO);
|
||||
} else cps_int10_cnt++;
|
||||
|
||||
}
|
||||
Sh2SetIRQLine(12, SH2_IRQSTATUS_AUTO);
|
||||
Sh2SetIRQLine(12, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
cps3SndUpdate();
|
||||
|
||||
|
|
|
@ -241,7 +241,7 @@ void actfan_main_write(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x150000:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
case 0x160000:
|
||||
|
@ -291,7 +291,7 @@ void triothep_main_write(UINT32 address, UINT8 data)
|
|||
{
|
||||
case 0x100000:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
case 0x110000:
|
||||
|
@ -369,7 +369,7 @@ static UINT8 Dec0_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0x3000:
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_NONE);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0x3800:
|
||||
|
@ -392,9 +392,9 @@ inline static double Dec0YM2203GetTime()
|
|||
static void Dec0YM3812IRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_ACK);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_NONE);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -911,7 +911,7 @@ static INT32 DrvFrame()
|
|||
if (i == 1) vblank = 0;
|
||||
if (i == 30) {
|
||||
vblank = 0x80;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_AUTO);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
BurnTimerUpdateYM3812(i * (nCyclesTotal[1] / nInterleave)); // m6502
|
||||
|
|
|
@ -614,7 +614,7 @@ static INT32 DrvFrame()
|
|||
ArmOpen(0);
|
||||
deco16_vblank = 0x10;
|
||||
ArmRun(nTotalCycles - 2240);
|
||||
ArmSetIRQLine(ARM_IRQ_LINE, ARM_IRQSTATUS_AUTO);
|
||||
ArmSetIRQLine(ARM_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
deco16_vblank = 0x00;
|
||||
ArmRun(2240);
|
||||
ArmClose();
|
||||
|
|
|
@ -159,7 +159,7 @@ void __fastcall boogwing_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x24e151:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
|
||||
case 0x282008:
|
||||
|
@ -195,7 +195,7 @@ void __fastcall boogwing_main_write_word(UINT32 address, UINT16 data)
|
|||
|
||||
case 0x24e150:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
|
||||
case 0x282008:
|
||||
|
@ -733,7 +733,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -136,7 +136,7 @@ void __fastcall cbuster_main_write_word(UINT32 address, UINT16 data)
|
|||
|
||||
case 0xbc002:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
//h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
//h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
|
||||
// tempo fluctuation hack
|
||||
static UINT8 last_latch = 0;
|
||||
|
@ -148,10 +148,10 @@ void __fastcall cbuster_main_write_word(UINT32 address, UINT16 data)
|
|||
|
||||
if (latch_repeat) {
|
||||
if (latch_repeat%8 == 0) {
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
} else {
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
// end tempo fluctuation hack
|
||||
return;
|
||||
|
@ -169,7 +169,7 @@ void __fastcall cbuster_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0xbc003:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0xbc004:
|
||||
|
@ -642,7 +642,7 @@ static INT32 DrvFrame()
|
|||
nSoundBufferPos += nSegmentLength;
|
||||
}
|
||||
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
BurnTimerEndFrame(nCyclesTotal[1]);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -524,7 +524,7 @@ void __fastcall cninja_main_write_word(UINT32 address, UINT16 data)
|
|||
ZetNmi();
|
||||
} else {
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -587,7 +587,7 @@ void __fastcall cninja_main_write_byte(UINT32 address, UINT8 data)
|
|||
ZetNmi();
|
||||
} else {
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -625,8 +625,8 @@ UINT16 __fastcall cninja_main_read_word(UINT32 address)
|
|||
|
||||
case 0x1a4004:
|
||||
case 0x190004:
|
||||
SekSetIRQLine(3, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -673,8 +673,8 @@ UINT8 __fastcall cninja_main_read_byte(UINT32 address)
|
|||
case 0x1a4005:
|
||||
// case 0x190004:
|
||||
case 0x190005:
|
||||
SekSetIRQLine(3, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -704,7 +704,7 @@ void __fastcall mutantf_main_write_word(UINT32 address, UINT16 data)
|
|||
|
||||
case 0x1a0064:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
|
||||
case 0x1c0000:
|
||||
|
@ -743,7 +743,7 @@ void __fastcall mutantf_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x1a0065:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -801,7 +801,7 @@ void __fastcall robocop2_main_write_word(UINT32 address, UINT16 data)
|
|||
|
||||
case 0x18c064:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;;
|
||||
|
||||
case 0x1f0000:
|
||||
|
@ -838,7 +838,7 @@ void __fastcall robocop2_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x18c065:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
|
||||
case 0x1f0000:
|
||||
|
@ -868,8 +868,8 @@ UINT16 __fastcall robocop2_main_read_word(UINT32 address)
|
|||
return scanline;
|
||||
|
||||
case 0x1b0004:
|
||||
SekSetIRQLine(3, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
|
||||
return 0;
|
||||
|
||||
case 0x1f8000:
|
||||
|
@ -909,8 +909,8 @@ UINT8 __fastcall robocop2_main_read_byte(UINT32 address)
|
|||
|
||||
case 0x1b0004:
|
||||
case 0x1b0005:
|
||||
SekSetIRQLine(3, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
|
||||
return 0;
|
||||
|
||||
case 0x1f8000:
|
||||
|
@ -951,7 +951,7 @@ UINT8 __fastcall stoneage_sound_read(UINT16 address)
|
|||
return MSM6295ReadStatus(0);
|
||||
|
||||
case 0xa000:
|
||||
ZetSetIRQLine(0x20, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0x20, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -960,7 +960,7 @@ UINT8 __fastcall stoneage_sound_read(UINT16 address)
|
|||
|
||||
static void DrvYM2151IrqHandler(INT32 state)
|
||||
{
|
||||
ZetSetIRQLine(0, state ? ZET_IRQSTATUS_ACK : ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
static void DrvYM2151WritePort(UINT32, UINT32 data)
|
||||
|
@ -2249,7 +2249,7 @@ static INT32 CninjaFrame()
|
|||
nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
|
||||
|
||||
if (irq_timer == i) {
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, SEK_IRQSTATUS_ACK);
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
|
||||
irq_timer = -1;
|
||||
}
|
||||
if (i == 206) deco16_vblank = 0x08;
|
||||
|
@ -2260,7 +2260,7 @@ static INT32 CninjaFrame()
|
|||
nSoundBufferPos += nSegmentLength;
|
||||
}
|
||||
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
BurnTimerEndFrame(nCyclesTotal[1]);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
@ -2325,7 +2325,7 @@ static INT32 EdrandyFrame()
|
|||
nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
|
||||
|
||||
if (irq_timer == i) {
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, SEK_IRQSTATUS_ACK);
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
|
||||
irq_timer = -1;
|
||||
}
|
||||
|
||||
|
@ -2338,7 +2338,7 @@ static INT32 EdrandyFrame()
|
|||
}
|
||||
|
||||
if (i == 255) {
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
// deco16_vblank = 0x00;
|
||||
}
|
||||
|
||||
|
@ -2412,7 +2412,7 @@ static INT32 Robocop2Frame()
|
|||
nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
|
||||
|
||||
if (irq_timer == i) {
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, SEK_IRQSTATUS_ACK);
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
|
||||
irq_timer = -1;
|
||||
}
|
||||
|
||||
|
@ -2431,7 +2431,7 @@ static INT32 Robocop2Frame()
|
|||
nSoundBufferPos += nSegmentLength;
|
||||
}
|
||||
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
BurnTimerEndFrame(nCyclesTotal[1]);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
@ -2503,7 +2503,7 @@ static INT32 MutantfFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
@ -2556,7 +2556,7 @@ static INT32 StoneageFrame()
|
|||
nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
|
||||
|
||||
if (irq_timer == i) {
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, SEK_IRQSTATUS_ACK);
|
||||
SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
|
||||
irq_timer = -1;
|
||||
}
|
||||
if (i == 248) deco16_vblank = 0x08;
|
||||
|
@ -2571,7 +2571,7 @@ static INT32 StoneageFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -154,7 +154,7 @@ void __fastcall darkseal_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x08:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -173,7 +173,7 @@ void __fastcall darkseal_write_word(UINT32 address, UINT16 data)
|
|||
|
||||
case 0x08:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -662,7 +662,7 @@ static INT32 DrvFrame()
|
|||
nSoundBufferPos += nSegmentLength;
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
BurnTimerEndFrame(nCyclesTotal[1]);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -240,7 +240,7 @@ void __fastcall dassault_main_write_word(UINT32 address, UINT16 data)
|
|||
{
|
||||
case 0x180000:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x1c000c:
|
||||
|
@ -261,7 +261,7 @@ void __fastcall dassault_main_write_byte(UINT32 address, UINT8 data)
|
|||
{
|
||||
case 0x180001:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x1c000b:
|
||||
|
@ -397,11 +397,11 @@ void __fastcall dassault_sub_write_byte(UINT32 address, UINT8 )
|
|||
static void set_cpuA_irq(INT32 state)
|
||||
{
|
||||
if (SekGetActive() == 0) { // main
|
||||
SekSetIRQLine(5, state ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(5, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
} else {
|
||||
SekClose();
|
||||
SekOpen(0);
|
||||
SekSetIRQLine(5, state ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(5, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
SekClose();
|
||||
SekOpen(1);
|
||||
}
|
||||
|
@ -410,11 +410,11 @@ static void set_cpuA_irq(INT32 state)
|
|||
static void set_cpuB_irq(INT32 state)
|
||||
{
|
||||
if (SekGetActive() == 1) { // sub
|
||||
SekSetIRQLine(6, state ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
} else {
|
||||
SekClose();
|
||||
SekOpen(1);
|
||||
SekSetIRQLine(6, state ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
SekClose();
|
||||
SekOpen(0);
|
||||
}
|
||||
|
@ -885,12 +885,12 @@ static INT32 DrvFrame()
|
|||
{
|
||||
SekOpen(0);
|
||||
nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
|
||||
if (i == (nInterleave - 1)) SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
if (i == (nInterleave - 1)) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
SekClose();
|
||||
|
||||
SekOpen(1);
|
||||
nCyclesDone[1] += SekRun(nCyclesDone[0] - nCyclesDone[1]);
|
||||
if (i == (nInterleave - 1)) SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
if (i == (nInterleave - 1)) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
SekClose();
|
||||
|
||||
nCyclesDone[1] += h6280Run(nCyclesTotal[2] / nInterleave);
|
||||
|
|
|
@ -2289,7 +2289,7 @@ void __fastcall Dec068KWriteByte(UINT32 a, UINT8 d)
|
|||
|
||||
case 0x30c015: {
|
||||
DrvSoundLatch = d;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2473,7 +2473,7 @@ void __fastcall Dec068KWriteWord(UINT32 a, UINT16 d)
|
|||
|
||||
case 0x30c014: {
|
||||
DrvSoundLatch = d & 0xff;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2482,13 +2482,13 @@ void __fastcall Dec068KWriteWord(UINT32 a, UINT16 d)
|
|||
if (Dec0Game == DEC0_GAME_HBARREL) HbarrelI8751Write(d);
|
||||
if (Dec0Game == DEC0_GAME_BIRDTRY) BirdtryI8751Write(d);
|
||||
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
case 0x30c018: {
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2666,7 +2666,7 @@ void __fastcall RobocopShared68KWriteByte(UINT32 a, UINT8 d)
|
|||
INT32 Offset = (a - 0x180000) >> 1;
|
||||
DrvSharedRam[Offset] = d;
|
||||
if (Offset == 0x7ff) {
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_AUTO);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2681,7 +2681,7 @@ void __fastcall RobocopShared68KWriteWord(UINT32 a, UINT16 d)
|
|||
INT32 Offset = (a - 0x180000) >> 1;
|
||||
DrvSharedRam[Offset] = d & 0xff;
|
||||
if (Offset == 0x7ff) {
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_AUTO);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2781,7 +2781,7 @@ void __fastcall Slyspy68KWriteByte(UINT32 a, UINT8 d)
|
|||
|
||||
case 0x314001: {
|
||||
DrvSoundLatch = d;
|
||||
h6280SetIRQLine(H6280_INPUT_LINE_NMI, H6280_IRQSTATUS_AUTO);
|
||||
h6280SetIRQLine(H6280_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2877,7 +2877,7 @@ void __fastcall Slyspy68KWriteWord(UINT32 a, UINT16 d)
|
|||
|
||||
case 0x314000: {
|
||||
DrvSoundLatch = d & 0xff;
|
||||
h6280SetIRQLine(H6280_INPUT_LINE_NMI, H6280_IRQSTATUS_AUTO);
|
||||
h6280SetIRQLine(H6280_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3204,7 +3204,7 @@ void __fastcall Midres68KWriteByte(UINT32 a, UINT8 d)
|
|||
switch (a) {
|
||||
case 0x1a0001: {
|
||||
DrvSoundLatch = d;
|
||||
h6280SetIRQLine(H6280_INPUT_LINE_NMI, H6280_IRQSTATUS_AUTO);
|
||||
h6280SetIRQLine(H6280_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3479,9 +3479,9 @@ inline static double Dec0YM2203GetTime()
|
|||
static void Dec0YM3812IRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_ACK);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_NONE);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3493,9 +3493,9 @@ static INT32 Dec0YM3812SynchroniseStream(INT32 nSoundRate)
|
|||
static void Dec1YM3812IRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
h6280SetIRQLine(1, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(1, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
h6280SetIRQLine(1, H6280_IRQSTATUS_NONE);
|
||||
h6280SetIRQLine(1, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5074,7 +5074,7 @@ static INT32 DrvFrame()
|
|||
if (i == 8) DrvVBlank = 0;
|
||||
if (i == 248) {
|
||||
DrvVBlank = 1;
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_ACK);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
|
||||
nCurrentCPU = 1;
|
||||
|
@ -5126,7 +5126,7 @@ static INT32 RobocopFrame()
|
|||
if (i == 8) DrvVBlank = 0;
|
||||
if (i == 248) {
|
||||
DrvVBlank = 1;
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_ACK);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
|
||||
nCurrentCPU = 2;
|
||||
|
@ -5192,7 +5192,7 @@ static INT32 Dec1Frame()
|
|||
if (i == 8) DrvVBlank = 0;
|
||||
if (i == 248) {
|
||||
DrvVBlank = 1;
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
nCurrentCPU = 1;
|
||||
|
|
|
@ -968,7 +968,7 @@ void ghostb_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x3800:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
case 0x3840:
|
||||
|
@ -1105,9 +1105,9 @@ inline static INT32 CsilverMSM5205SynchroniseStream(INT32 nSoundRate)
|
|||
static void DrvYM3812FMIRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_ACK);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_NONE);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1603,7 +1603,7 @@ static INT32 DrvDraw()
|
|||
static inline void do_interrupt()
|
||||
{
|
||||
if (*interrupt_enable) {
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_AUTO);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1622,7 +1622,7 @@ static void ghostb_interrupt()
|
|||
if (((i8751_out & 0x2) != 0x2) && latch[2]) {latch[2] = 0; do_interrupt(); i8751_return = 0x2001; } /* Player 3 coin */
|
||||
if (((i8751_out & 0x1) != 0x1) && latch[3]) {latch[3] = 0; do_interrupt(); i8751_return = 0x1001; } /* Service */
|
||||
|
||||
if (*nmi_enable) HD6309SetIRQLine(0x20, HD6309_IRQSTATUS_AUTO);
|
||||
if (*nmi_enable) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
static INT32 DrvFrame()
|
||||
|
@ -1945,7 +1945,7 @@ void cobra_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x3e00:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
M6502Run(500);
|
||||
return;
|
||||
|
||||
|
@ -2346,7 +2346,7 @@ static INT32 CobraFrame()
|
|||
if (i == 1) vblank = 0x80;
|
||||
if (i == 31) {
|
||||
vblank = 0;
|
||||
M6809SetIRQLine(0x20 /*NMI*/, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0x20 /*NMI*/, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
|
||||
|
@ -2663,7 +2663,7 @@ void srdarwin_main_write(UINT16 address, UINT8 data)
|
|||
case 0x2000:
|
||||
*soundlatch = data;
|
||||
// m6502SetIRQ(M6502_NMI);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
case 0x2001:
|
||||
|
@ -3017,7 +3017,7 @@ static INT32 SrdarwinFrame()
|
|||
if (i == 1) vblank = 0x40;
|
||||
if (i == 31) {
|
||||
vblank = 0;
|
||||
M6809SetIRQLine(0x20 /*NMI*/, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0x20 /*NMI*/, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
|
||||
|
@ -3135,7 +3135,7 @@ static void gondo_i8751_write(INT32 offset, UINT8 data)
|
|||
{
|
||||
case 0:
|
||||
i8751_value = (i8751_value & 0xff) | (data << 8);
|
||||
if (*interrupt_enable) HD6309SetIRQLine(0, HD6309_IRQSTATUS_AUTO);
|
||||
if (*interrupt_enable) HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
@ -3197,7 +3197,7 @@ void gondo_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x3810:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
case 0x3818:
|
||||
|
@ -3673,7 +3673,7 @@ static INT32 GondoFrame()
|
|||
|
||||
if (i == 270) {
|
||||
vblank = 0x80;
|
||||
if (*nmi_enable) HD6309SetIRQLine(0x20, HD6309_IRQSTATUS_AUTO);
|
||||
if (*nmi_enable) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
|
||||
|
@ -3911,29 +3911,29 @@ void oscar_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x3d80:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
case 0x3e80:
|
||||
HD6309Close();
|
||||
HD6309Open(1);
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_ACK);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
HD6309Close();
|
||||
HD6309Open(0);
|
||||
return;
|
||||
|
||||
case 0x3e81:
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_NONE);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
|
||||
case 0x3e82:
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_ACK);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x3e83:
|
||||
HD6309Close();
|
||||
HD6309Open(1);
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_NONE);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
HD6309Close();
|
||||
HD6309Open(0);
|
||||
return;
|
||||
|
@ -3951,7 +3951,7 @@ void oscar_sub_write(UINT16 address, UINT8 )
|
|||
switch (address)
|
||||
{
|
||||
case 0x3e80:
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_ACK);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
HD6309Close();
|
||||
HD6309Open(0);
|
||||
return;
|
||||
|
@ -3959,7 +3959,7 @@ void oscar_sub_write(UINT16 address, UINT8 )
|
|||
case 0x3e81:
|
||||
HD6309Close();
|
||||
HD6309Open(0);
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_NONE);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
HD6309Close();
|
||||
HD6309Open(1);
|
||||
return;
|
||||
|
@ -3967,13 +3967,13 @@ void oscar_sub_write(UINT16 address, UINT8 )
|
|||
case 0x3e82:
|
||||
HD6309Close();
|
||||
HD6309Open(0);
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_ACK);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
HD6309Close();
|
||||
HD6309Open(1);
|
||||
return;
|
||||
|
||||
case 0x3e83:
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_NONE);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -4205,7 +4205,7 @@ static INT32 OscarFrame()
|
|||
if ((DrvInputs[2] & 7) == 7) latch = 1;
|
||||
if ((DrvInputs[2] & 7) != 7 && latch) {
|
||||
latch = 0;
|
||||
HD6309SetIRQLine(0x20, HD6309_IRQSTATUS_AUTO);
|
||||
HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
vblank = 0x80;
|
||||
}
|
||||
|
@ -4416,7 +4416,7 @@ static void lastmiss_i8751_write(INT32 offset, INT32 data)
|
|||
{
|
||||
case 0:
|
||||
i8751_value = (i8751_value & 0xff) | (data << 8);
|
||||
M6809SetIRQLine(1, M6809_IRQSTATUS_AUTO); /* Signal main cpu */
|
||||
M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); /* Signal main cpu */
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
@ -4450,7 +4450,7 @@ static void shackled_i8751_write(INT32 offset, INT32 data)
|
|||
{
|
||||
case 0: /* High byte */
|
||||
i8751_value = (i8751_value & 0xff) | (data << 8);
|
||||
M6809SetIRQLine(1, M6809_IRQSTATUS_AUTO); /* Signal main cpu */
|
||||
M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); /* Signal main cpu */
|
||||
break;
|
||||
case 1: /* Low byte */
|
||||
i8751_value = (i8751_value & 0xff00) | data;
|
||||
|
@ -4480,11 +4480,11 @@ void lastmiss_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x1803:
|
||||
if (M6809GetActive() == 0) { // main
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
} else {
|
||||
M6809Close();
|
||||
M6809Open(0);
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
M6809Close();
|
||||
M6809Open(1);
|
||||
}
|
||||
|
@ -4494,11 +4494,11 @@ void lastmiss_main_write(UINT16 address, UINT8 data)
|
|||
if (M6809GetActive() == 0) { // main
|
||||
M6809Close();
|
||||
M6809Open(1);
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
M6809Close();
|
||||
M6809Open(0);
|
||||
} else {
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
return;
|
||||
|
||||
|
@ -4512,7 +4512,7 @@ void lastmiss_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x180c:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
// main cpu only!
|
||||
|
@ -5223,7 +5223,7 @@ static void csilver_i8751_write(INT32 offset, UINT8 data)
|
|||
{
|
||||
case 0: /* High byte */
|
||||
i8751_value = (i8751_value & 0xff) | (data << 8);
|
||||
M6809SetIRQLine(1, M6809_IRQSTATUS_AUTO); /* Signal main cpu */
|
||||
M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); /* Signal main cpu */
|
||||
break;
|
||||
case 1: /* Low byte */
|
||||
i8751_value = (i8751_value & 0xff00) | data;
|
||||
|
@ -5250,11 +5250,11 @@ void csilver_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x1803:
|
||||
if (M6809GetActive() == 0) { // main
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
} else {
|
||||
M6809Close();
|
||||
M6809Open(0);
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
M6809Close();
|
||||
M6809Open(1);
|
||||
}
|
||||
|
@ -5264,11 +5264,11 @@ void csilver_main_write(UINT16 address, UINT8 data)
|
|||
if (M6809GetActive() == 0) { // main
|
||||
M6809Close();
|
||||
M6809Open(1);
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
M6809Close();
|
||||
M6809Open(0);
|
||||
} else {
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
return;
|
||||
|
||||
|
@ -5282,7 +5282,7 @@ void csilver_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x180c:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
|
||||
case 0x1808:
|
||||
|
@ -5382,7 +5382,7 @@ UINT8 csilver_sound_read(UINT16 address)
|
|||
static void CsilverADPCMInt()
|
||||
{
|
||||
Toggle ^= 1;
|
||||
if (Toggle) M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_AUTO);
|
||||
if (Toggle) M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
MSM5205DataWrite(0, MSM5205Next >> 4);
|
||||
MSM5205Next <<= 4;
|
||||
|
@ -5538,7 +5538,7 @@ static INT32 CsilverFrame()
|
|||
nCyclesDone[1] += M6809Run(nSegment - nCyclesDone[1]);
|
||||
if (i == DrvVBlankSlices[1]) {
|
||||
vblank = 0;
|
||||
M6809SetIRQLine(0x20, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
MSM5205Update();
|
||||
M6809Close();
|
||||
|
|
|
@ -124,7 +124,7 @@ void __fastcall dietgogo_main_write_word(UINT32 address, UINT16 data)
|
|||
{
|
||||
case 0x340380:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ void __fastcall dietgogo_main_write_byte(UINT32 address, UINT8 data)
|
|||
case 0x340380:
|
||||
case 0x340381:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -450,7 +450,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -260,7 +260,7 @@ void __fastcall funkyjet_main_write_word(UINT32 address, UINT16 data)
|
|||
{
|
||||
case 0x18010a:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -276,7 +276,7 @@ void __fastcall funkyjet_main_write_byte(UINT32 address, UINT8 data)
|
|||
{
|
||||
case 0x18010b:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -586,7 +586,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -343,7 +343,7 @@ static void karnov_i8751_w(INT32 data)
|
|||
if (data==0x401) i8751_return=0x4138; /* ^Whistling wind */
|
||||
if (data==0x408) i8751_return=0x4276; /* ^Heavy Gates */
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO); /* Signal main cpu task is complete */
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO); /* Signal main cpu task is complete */
|
||||
i8751_needs_ack=1;
|
||||
}
|
||||
|
||||
|
@ -394,7 +394,7 @@ static void wndrplnt_i8751_w(INT32 data)
|
|||
if (data==0x501) i8751_return=0x6bf8;
|
||||
if (data==0x500) i8751_return=0x4e75;
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
i8751_needs_ack=1;
|
||||
}
|
||||
|
||||
|
@ -508,7 +508,7 @@ static void chelnov_i8751_w(INT32 data)
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
i8751_needs_ack=1;
|
||||
}
|
||||
|
||||
|
@ -517,14 +517,14 @@ static void karnov_control_w(INT32 offset, INT32 data)
|
|||
switch (offset<<1)
|
||||
{
|
||||
case 0:
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
|
||||
if (i8751_needs_ack)
|
||||
{
|
||||
if (i8751_coin_pending)
|
||||
{
|
||||
i8751_return=i8751_coin_pending;
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
i8751_coin_pending=0;
|
||||
}
|
||||
else if (i8751_command_queue)
|
||||
|
@ -542,7 +542,7 @@ static void karnov_control_w(INT32 offset, INT32 data)
|
|||
|
||||
case 2:
|
||||
*soundlatch = data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
|
@ -572,7 +572,7 @@ static void karnov_control_w(INT32 offset, INT32 data)
|
|||
break;
|
||||
|
||||
case 0xe:
|
||||
SekSetIRQLine(7, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(7, CPU_IRQSTATUS_NONE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -679,9 +679,9 @@ UINT8 karnov_sound_read(UINT16 address)
|
|||
static void DrvYM3526FMIRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_ACK);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_NONE);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1105,14 +1105,14 @@ static void DrvInterrupt()
|
|||
else
|
||||
{
|
||||
i8751_return = DrvInput[2] | 0x8000;
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
SekRun(100);
|
||||
i8751_needs_ack=1;
|
||||
}
|
||||
latch=0;
|
||||
}
|
||||
|
||||
SekSetIRQLine(7, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(7, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
static INT32 DrvFrame()
|
||||
|
|
|
@ -188,7 +188,7 @@ static void __fastcall lemmings_main_write_word(UINT32 address, UINT16 data)
|
|||
{
|
||||
case 0x1a0064:
|
||||
*soundlatch = data & 0xff;
|
||||
M6809SetIRQLine(1, M6809_IRQSTATUS_ACK);
|
||||
M6809SetIRQLine(1, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x1c0000:
|
||||
|
@ -278,7 +278,7 @@ static void lemmings_sound_write(UINT16 address, UINT8 data)
|
|||
return;
|
||||
|
||||
case 0x1800:
|
||||
M6809SetIRQLine(1, M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(1, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -303,7 +303,7 @@ static UINT8 lemmings_sound_read(UINT16 address)
|
|||
|
||||
static void lemmingsYM2151IrqHandler(INT32 irq)
|
||||
{
|
||||
M6809SetIRQLine(0, irq ? M6809_IRQSTATUS_ACK : M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(0, irq ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
M6809Run(1000); // fix music tempo
|
||||
}
|
||||
|
||||
|
@ -686,7 +686,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
nSegment = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -504,7 +504,7 @@ static INT32 DrvFrame()
|
|||
if (i == 240) deco16_vblank = 0x08;
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
SekClose();
|
||||
|
||||
|
|
|
@ -388,7 +388,7 @@ void __fastcall rohga_main_write_word(UINT32 address, UINT16 data)
|
|||
{
|
||||
case 0x2800a8:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x300000:
|
||||
|
@ -401,7 +401,7 @@ void __fastcall rohga_main_write_word(UINT32 address, UINT16 data)
|
|||
return;
|
||||
|
||||
case 0x321100: // schmeisr
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
|
||||
case 0x322000:
|
||||
|
@ -422,7 +422,7 @@ void __fastcall rohga_main_write_byte(UINT32 address, UINT8 data)
|
|||
{
|
||||
case 0x2800a9:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x300000:
|
||||
|
@ -438,7 +438,7 @@ void __fastcall rohga_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x321100: // schmeisr
|
||||
case 0x321101:
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
|
||||
case 0x322000:
|
||||
|
@ -465,7 +465,7 @@ UINT16 __fastcall rohga_main_read_word(UINT32 address)
|
|||
return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
|
||||
|
||||
case 0x321100:
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -492,7 +492,7 @@ UINT8 __fastcall rohga_main_read_byte(UINT32 address)
|
|||
|
||||
case 0x321100:
|
||||
case 0x321101:
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -527,14 +527,14 @@ void __fastcall wizdfire_main_write_word(UINT32 address, UINT16 data)
|
|||
return;
|
||||
|
||||
case 0x320004:
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
|
||||
case 0xfe4150:
|
||||
case 0xff4260: // nitrobal
|
||||
case 0xff4a60:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -576,14 +576,14 @@ void __fastcall wizdfire_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x320004:
|
||||
case 0x320005:
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
|
||||
case 0xfe4151:
|
||||
case 0xff4261: // nitrobal
|
||||
case 0xff4a61:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1637,7 +1637,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_ACK);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_ACK);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -355,7 +355,7 @@ static void SidecpcktI8751Write(UINT8 Data)
|
|||
static const INT32 table_2[] = { 0x8e, 0x42, 0xad, 0x58, 0xec, 0x85, 0xdd, 0x4c, 0xad, 0x9f, 0x00, 0x4c, 0x7e, 0x42, 0xa2, 0xff };
|
||||
static const INT32 table_3[] = { 0xbd, 0x73, 0x80, 0xbd, 0x73, 0xa7, 0xbd, 0x73, 0xe0, 0x7e, 0x72, 0x56, 0xff, 0xff, 0xff, 0xff };
|
||||
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (InMath == 1) {
|
||||
InMath=2;
|
||||
|
@ -408,7 +408,7 @@ static void SidecpcktjI8751Write(UINT8 Data)
|
|||
static const INT32 table_2[] = { 0x8e, 0x42, 0xb2, 0x58, 0xec, 0x85, 0xdd, 0x4c, 0xad, 0x9f, 0x00, 0x4c, 0x7e, 0x42, 0xa7, 0xff };
|
||||
static const INT32 table_3[] = { 0xbd, 0x71, 0xc8, 0xbd, 0x71, 0xef, 0xbd, 0x72, 0x28, 0x7e, 0x70, 0x9e, 0xff, 0xff, 0xff, 0xff };
|
||||
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (InMath == 1) {
|
||||
InMath = 2;
|
||||
|
@ -496,7 +496,7 @@ void SidepcktM6809WriteByte(UINT16 Address, UINT8 Data)
|
|||
switch (Address) {
|
||||
case 0x3004: {
|
||||
DrvSoundLatch = Data;
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, M6502_IRQSTATUS_AUTO);
|
||||
M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -573,9 +573,9 @@ inline static double DrvGetTime()
|
|||
static void DrvFMIRQHandler(INT32, INT32 nStatus)
|
||||
{
|
||||
if (nStatus) {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_ACK);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, M6502_IRQSTATUS_NONE);
|
||||
M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -880,7 +880,7 @@ static INT32 DrvFrame()
|
|||
nCurrentCPU = 0;
|
||||
nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
|
||||
BurnTimerUpdate(nNext);
|
||||
if (i == (nInterleave - 1)) M6809SetIRQLine(0x20, M6809_IRQSTATUS_AUTO);
|
||||
if (i == (nInterleave - 1)) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
nCurrentCPU = 1;
|
||||
nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
|
||||
|
|
|
@ -547,7 +547,7 @@ static INT32 DrvFrame()
|
|||
ArmOpen(0);
|
||||
deco16_vblank = 0x00;
|
||||
ArmRun(nTotalCycles - 12240);
|
||||
ArmSetIRQLine(ARM_IRQ_LINE, ARM_IRQSTATUS_AUTO);
|
||||
ArmSetIRQLine(ARM_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
deco16_vblank = 0xf0;
|
||||
ArmRun(12240);
|
||||
ArmClose();
|
||||
|
|
|
@ -167,7 +167,7 @@ void __fastcall supbtime_main_write_word(UINT32 address, UINT16 data)
|
|||
case 0x100000:
|
||||
case 0x1a0000:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -179,7 +179,7 @@ void __fastcall supbtime_main_write_byte(UINT32 address, UINT8 data)
|
|||
case 0x100001:
|
||||
case 0x1a0001:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -509,7 +509,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -125,7 +125,7 @@ void __fastcall tumblep_main_write_word(UINT32 address, UINT16 data)
|
|||
{
|
||||
case 0x100000:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ void __fastcall tumblep_main_write_byte(UINT32 address, UINT8 data)
|
|||
case 0x100000:
|
||||
case 0x100001:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -468,7 +468,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -143,7 +143,7 @@ void __fastcall vaportra_main_write_word(UINT32 address, UINT16 data)
|
|||
|
||||
case 0x100006:
|
||||
deco16_soundlatch = data & 0xff;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x30c000:
|
||||
|
@ -165,7 +165,7 @@ void __fastcall vaportra_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x100007:
|
||||
deco16_soundlatch = data;
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x30c000:
|
||||
|
@ -558,7 +558,7 @@ static INT32 DrvFrame()
|
|||
|
||||
if (i == 206) {
|
||||
deco16_vblank = 0x08;
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||
|
|
|
@ -731,7 +731,7 @@ INT32 deco16_soundlatch;
|
|||
static void deco16YM2151IrqHandler(INT32 state)
|
||||
{
|
||||
#ifdef ENABLE_HUC6280
|
||||
h6280SetIRQLine(1, state ? H6280_IRQSTATUS_ACK : H6280_IRQSTATUS_NONE);
|
||||
h6280SetIRQLine(1, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
#else
|
||||
state = state;
|
||||
#endif
|
||||
|
@ -840,7 +840,7 @@ static UINT8 deco16_sound_read(UINT32 address)
|
|||
case 0x140000:
|
||||
case 0x140001:
|
||||
#ifdef ENABLE_HUC6280
|
||||
h6280SetIRQLine(0, H6280_IRQSTATUS_NONE);
|
||||
h6280SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
#endif
|
||||
return deco16_soundlatch;
|
||||
}
|
||||
|
|
|
@ -14396,7 +14396,7 @@ void __fastcall FroggermcZ80Write(UINT16 a, UINT8 d)
|
|||
if (!(d & 1)) {
|
||||
ZetClose();
|
||||
ZetOpen(1);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
ZetClose();
|
||||
ZetOpen(0);
|
||||
}
|
||||
|
@ -15885,7 +15885,7 @@ void __fastcall ExplorerZ80Write(UINT16 a, UINT8 d)
|
|||
case 0x9000: {
|
||||
ZetClose();
|
||||
ZetOpen(1);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
ZetClose();
|
||||
ZetOpen(0);
|
||||
return;
|
||||
|
@ -16318,7 +16318,7 @@ void __fastcall HotshockZ80Write(UINT16 a, UINT8 d)
|
|||
case 0x9000: {
|
||||
ZetClose();
|
||||
ZetOpen(1);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
ZetClose();
|
||||
ZetOpen(0);
|
||||
return;
|
||||
|
@ -18225,7 +18225,7 @@ void __fastcall Ad2083Z80Write(UINT16 a, UINT8 d)
|
|||
case 0x9000: {
|
||||
ZetClose();
|
||||
ZetOpen(1);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
ZetClose();
|
||||
ZetOpen(0);
|
||||
return;
|
||||
|
|
|
@ -1650,7 +1650,7 @@ INT32 GalFrame()
|
|||
nGalCyclesDone[nCurrentCPU] += ZetRun(nGalCyclesSegment);
|
||||
if (i == nIrqInterleaveFire && GalIrqFire) {
|
||||
if (GalIrqType == GAL_IRQ_TYPE_NMI) ZetNmi();
|
||||
if (GalIrqType == GAL_IRQ_TYPE_IRQ0) ZetRaiseIrq(0);
|
||||
if (GalIrqType == GAL_IRQ_TYPE_IRQ0) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
GalIrqFire = 0;
|
||||
}
|
||||
ZetClose();
|
||||
|
@ -1663,7 +1663,7 @@ INT32 GalFrame()
|
|||
nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
|
||||
nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
|
||||
nGalCyclesDone[nCurrentCPU] += ZetRun(nGalCyclesSegment);
|
||||
if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910) ZetRaiseIrq(0);
|
||||
if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
ZetClose();
|
||||
}
|
||||
|
||||
|
@ -1675,9 +1675,9 @@ INT32 GalFrame()
|
|||
nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
|
||||
nGalCyclesSegment = ZetRun(nGalCyclesSegment);
|
||||
nGalCyclesDone[nCurrentCPU] += nGalCyclesSegment;
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
nGalCyclesDone[nCurrentCPU] += ZetRun(300);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
nGalCyclesDone[nCurrentCPU] += ZetRun(300);
|
||||
ZetClose();
|
||||
}
|
||||
|
@ -1701,9 +1701,9 @@ INT32 GalFrame()
|
|||
nGalCyclesDone[nCurrentCPU] += s2650Run(nGalCyclesSegment);
|
||||
if (i == nIrqInterleaveFire) {
|
||||
GalVBlank = 1;
|
||||
s2650SetIRQLine(0, S2650_IRQSTATUS_ACK);
|
||||
s2650SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
s2650Run(0);
|
||||
s2650SetIRQLine(0, S2650_IRQSTATUS_NONE);
|
||||
s2650SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
s2650Run(0);
|
||||
}
|
||||
s2650Close();
|
||||
|
@ -1716,7 +1716,7 @@ INT32 GalFrame()
|
|||
nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
|
||||
nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
|
||||
nGalCyclesDone[nCurrentCPU] += ZetRun(nGalCyclesSegment);
|
||||
if (HunchbksSoundIrqFire) ZetRaiseIrq(0);
|
||||
if (HunchbksSoundIrqFire) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
ZetClose();
|
||||
}
|
||||
|
||||
|
|
|
@ -535,7 +535,7 @@ UINT8 BongoDipSwitchRead(UINT32)
|
|||
|
||||
UINT8 KonamiSoundLatchRead(UINT32)
|
||||
{
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return GalSoundLatch;
|
||||
}
|
||||
|
||||
|
@ -607,11 +607,11 @@ void KonamiSoundControlWrite(UINT8 d)
|
|||
INT32 nActiveCPU = ZetGetActive();
|
||||
|
||||
if (nActiveCPU == 1) {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
ZetClose();
|
||||
ZetOpen(1);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
ZetClose();
|
||||
ZetOpen(nActiveCPU);
|
||||
}
|
||||
|
@ -652,16 +652,16 @@ void SfxSampleControlWrite(UINT32, UINT32 d)
|
|||
INT32 nActiveCPU = ZetGetActive();
|
||||
|
||||
if (nActiveCPU == 2) {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
nGalCyclesDone[2] += ZetRun(100);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
|
||||
} else {
|
||||
ZetClose();
|
||||
ZetOpen(2);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
nGalCyclesDone[2] += ZetRun(100);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
ZetClose();
|
||||
ZetOpen(nActiveCPU);
|
||||
}
|
||||
|
|
|
@ -339,7 +339,7 @@ static void m107YM2151IRQHandler(INT32 nStatus)
|
|||
{
|
||||
if (VezGetActive() == -1) return;
|
||||
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff/*default*/, nStatus ? VEZ_IRQSTATUS_ACK : VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff/*default*/, nStatus ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
VezRun(100);
|
||||
}
|
||||
|
||||
|
@ -390,8 +390,8 @@ static UINT8 __fastcall m107ReadPort(UINT32 port)
|
|||
case 0x06: return DrvInput[2];
|
||||
case 0x07: return DrvInput[3];
|
||||
|
||||
case 0x08: VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, VEZ_IRQSTATUS_NONE); return sound_status[0];
|
||||
case 0x09: VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, VEZ_IRQSTATUS_NONE); return sound_status[1];
|
||||
case 0x08: VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[0];
|
||||
case 0x09: VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[1];
|
||||
|
||||
case 0x18: return 0;
|
||||
|
||||
|
@ -440,9 +440,9 @@ static void __fastcall m107WritePort(UINT32 port, UINT8 data)
|
|||
sound_latch[0] = data;
|
||||
VezClose();
|
||||
VezOpen(1);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_ACK);
|
||||
VezRun(10);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
|
||||
VezRun(10);
|
||||
VezClose();
|
||||
VezOpen(0);
|
||||
|
@ -562,14 +562,14 @@ static void __fastcall m107SndWriteByte(UINT32 address, UINT8 data)
|
|||
return;
|
||||
|
||||
case 0xa8044:
|
||||
// VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, VEZ_IRQSTATUS_NONE);
|
||||
// VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
|
||||
case 0xa8046:
|
||||
sound_status[0] = data;
|
||||
VezClose();
|
||||
VezOpen(0);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, CPU_IRQSTATUS_ACK);
|
||||
VezClose();
|
||||
VezOpen(1);
|
||||
return;
|
||||
|
@ -1022,9 +1022,9 @@ static void scanline_interrupts(INT32 scanline)
|
|||
nPrevScreenPos = (scanline-8)+1;
|
||||
}
|
||||
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 8)/4, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 8)/4, CPU_IRQSTATUS_ACK);
|
||||
VezRun(10);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 8)/4, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 8)/4, CPU_IRQSTATUS_NONE);
|
||||
|
||||
}
|
||||
else if (scanline == 248) // vblank
|
||||
|
@ -1041,9 +1041,9 @@ static void scanline_interrupts(INT32 scanline)
|
|||
// DrvReDraw();
|
||||
}
|
||||
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 0)/4, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 0)/4, CPU_IRQSTATUS_ACK);
|
||||
VezRun(10);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 0)/4, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(0, (irq_vectorbase + 0)/4, CPU_IRQSTATUS_NONE);
|
||||
} else if (scanline == 8) {
|
||||
vblank = 0x80;
|
||||
}
|
||||
|
|
|
@ -2078,7 +2078,7 @@ void __fastcall M62Z80PortWrite(UINT16 a, UINT8 d)
|
|||
if ((d & 0x80) == 0) {
|
||||
M62SoundLatch = d & 0x7f;
|
||||
} else {
|
||||
M6803SetIRQLine(M6803_IRQ_LINE, M6803_IRQSTATUS_ACK);
|
||||
M6803SetIRQLine(M6803_IRQ_LINE, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -2385,7 +2385,7 @@ void M62M6803WriteByte(UINT16 a, UINT8 d)
|
|||
|
||||
switch (a) {
|
||||
case 0x0800: {
|
||||
M6803SetIRQLine(M6803_IRQ_LINE, M6803_IRQSTATUS_NONE);
|
||||
M6803SetIRQLine(M6803_IRQ_LINE, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2503,7 +2503,7 @@ inline static INT32 M62SynchroniseStream(INT32 nSoundRate)
|
|||
|
||||
static void M62MSM5205Vck0()
|
||||
{
|
||||
M6803SetIRQLine(M6803_INPUT_LINE_NMI, M6803_IRQSTATUS_AUTO);
|
||||
M6803SetIRQLine(M6803_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
|
||||
M62SlaveMSM5205VClckReset = 1;
|
||||
}
|
||||
|
||||
|
@ -4730,7 +4730,7 @@ static INT32 M62Frame()
|
|||
nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
|
||||
nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
|
||||
nCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
|
||||
if (i == (nInterleave - 1)) ZetSetIRQLine(0, ZET_IRQSTATUS_AUTO);
|
||||
if (i == (nInterleave - 1)) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
ZetClose();
|
||||
|
||||
nCurrentCPU = 1;
|
||||
|
|
|
@ -944,10 +944,10 @@ static void setvector_callback(INT32 param)
|
|||
}
|
||||
|
||||
if (irqvector == 0xff) {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
} else {
|
||||
ZetSetVector(irqvector);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2062,9 +2062,9 @@ static void scanline_interrupts(INT32 scanline)
|
|||
nPreviousLine = scanline + 1;
|
||||
}
|
||||
if (Kengo)
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP2, 0xff, VEZ_IRQSTATUS_AUTO);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP2, 0xff, CPU_IRQSTATUS_AUTO);
|
||||
else
|
||||
VezSetIRQLineAndVector(0, (m72_irq_base + 8)/4, VEZ_IRQSTATUS_AUTO);
|
||||
VezSetIRQLineAndVector(0, (m72_irq_base + 8)/4, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
else if (scanline == 255) // vblank
|
||||
{
|
||||
|
@ -2073,9 +2073,9 @@ static void scanline_interrupts(INT32 scanline)
|
|||
nPreviousLine = 0;
|
||||
}
|
||||
if (Kengo)
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, VEZ_IRQSTATUS_AUTO);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, CPU_IRQSTATUS_AUTO);
|
||||
else
|
||||
VezSetIRQLineAndVector(0, (m72_irq_base + 0)/4, VEZ_IRQSTATUS_AUTO);
|
||||
VezSetIRQLineAndVector(0, (m72_irq_base + 0)/4, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
if (nPreviousLine >= nScreenHeight) nPreviousLine = 0;
|
||||
|
|
|
@ -805,7 +805,7 @@ static void setvector_callback(INT32 param)
|
|||
}
|
||||
|
||||
ZetSetVector(irqvector);
|
||||
ZetSetIRQLine(0, (irqvector == 0xff) ? ZET_IRQSTATUS_NONE : ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, (irqvector == 0xff) ? CPU_IRQSTATUS_NONE : CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
|
||||
static inline void update_palette_entry(INT32 entry)
|
||||
|
@ -952,7 +952,7 @@ UINT8 __fastcall m90_sound_read_port(UINT16 port)
|
|||
case 0x42: // bbmanw
|
||||
case 0x80:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0x84:
|
||||
|
@ -1391,9 +1391,9 @@ static INT32 DrvFrame()
|
|||
|
||||
if (i == (nInterleave - 1))
|
||||
{
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, CPU_IRQSTATUS_ACK);
|
||||
VezRun(0);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
|
||||
|
|
|
@ -1230,7 +1230,7 @@ inline static UINT32 CalcCol(INT32 offs)
|
|||
static void m92YM2151IRQHandler(INT32 nStatus)
|
||||
{
|
||||
if (VezGetActive() == -1) return;
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff/*default*/, nStatus ? VEZ_IRQSTATUS_ACK : VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff/*default*/, nStatus ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
VezRun(100);
|
||||
}
|
||||
|
||||
|
@ -1308,8 +1308,8 @@ UINT8 __fastcall m92ReadPort(UINT32 port)
|
|||
case 0x06: return ~DrvInput[2]; // player 3
|
||||
case 0x07: return ~DrvInput[3]; // player 4
|
||||
|
||||
case 0x08: VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, VEZ_IRQSTATUS_NONE); return sound_status[0];
|
||||
case 0x09: VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, VEZ_IRQSTATUS_NONE); return sound_status[1];
|
||||
case 0x08: VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[0];
|
||||
case 0x09: VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[1];
|
||||
|
||||
case 0x18: return (m92_kludge == 3) ? MSM6295ReadStatus(0) : 0; // ppan
|
||||
|
||||
|
@ -1363,9 +1363,9 @@ void __fastcall m92WritePort(UINT32 port, UINT8 data)
|
|||
sound_latch[0] = data;
|
||||
VezClose();
|
||||
VezOpen(1);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_ACK);
|
||||
VezRun(10);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
|
||||
VezRun(10);
|
||||
VezClose();
|
||||
VezOpen(0);
|
||||
|
@ -1461,7 +1461,7 @@ UINT8 __fastcall m92SndReadByte(UINT32 address)
|
|||
return BurnYM2151ReadStatus();
|
||||
|
||||
case 0xa8044:
|
||||
// VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, VEZ_IRQSTATUS_NONE);
|
||||
// VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
|
||||
return sound_latch[0];
|
||||
|
||||
case 0xa8045:
|
||||
|
@ -1498,7 +1498,7 @@ void __fastcall m92SndWriteByte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0xa8044:
|
||||
// case 0xa8045:
|
||||
// VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, VEZ_IRQSTATUS_NONE);
|
||||
// VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
|
||||
case 0xa8046:
|
||||
|
@ -1506,7 +1506,7 @@ void __fastcall m92SndWriteByte(UINT32 address, UINT8 data)
|
|||
sound_status[0] = data;
|
||||
VezClose();
|
||||
VezOpen(0);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, CPU_IRQSTATUS_ACK);
|
||||
VezClose();
|
||||
VezOpen(1);
|
||||
return;
|
||||
|
@ -2017,9 +2017,9 @@ static void scanline_interrupts(INT32 prev, INT32 segment, INT32 scanline)
|
|||
memcpy (DrvSprBuf, DrvSprRAM, 0x800);
|
||||
if (m92_kludge != 4) nCyclesDone[0] += VezRun(347); // nbbatman: fix for random lockups during gameplay
|
||||
m92_sprite_buffer_busy = 0x80;
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 4)/4, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 4)/4, CPU_IRQSTATUS_ACK);
|
||||
nCyclesDone[0] += VezRun(10);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 4)/4, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 4)/4, CPU_IRQSTATUS_NONE);
|
||||
if (m92_kludge != 4) nCyclesDone[0] += VezRun(segment - (VezTotalCycles() - prev));
|
||||
|
||||
m92_sprite_buffer_timer = 0;
|
||||
|
@ -2033,9 +2033,9 @@ static void scanline_interrupts(INT32 prev, INT32 segment, INT32 scanline)
|
|||
nPrevScreenPos = (scanline-8)+1;
|
||||
}
|
||||
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 8)/4, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 8)/4, CPU_IRQSTATUS_ACK);
|
||||
nCyclesDone[0] += VezRun((m92_kludge == 4) ? 20 : 10); // nbbatman: gets rid of flashes in intro sequence
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 8)/4, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 8)/4, CPU_IRQSTATUS_NONE);
|
||||
|
||||
}
|
||||
else if (scanline == 248) // vblank
|
||||
|
@ -2050,9 +2050,9 @@ static void scanline_interrupts(INT32 prev, INT32 segment, INT32 scanline)
|
|||
}
|
||||
|
||||
if (m92_kludge == 4) nCyclesDone[0] += VezRun(1200); // nbbatman: gets rid of flash after IREM logo fades out
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, VEZ_IRQSTATUS_ACK);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, CPU_IRQSTATUS_ACK);
|
||||
nCyclesDone[0] += VezRun(10);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, VEZ_IRQSTATUS_NONE);
|
||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -828,10 +828,10 @@ static void DrvSetVector(INT32 Status)
|
|||
|
||||
if (DrvIrqVector == 0xff) {
|
||||
// ZetSetVector(DrvIrqVector);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
} else {
|
||||
ZetSetVector(DrvIrqVector);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
nCyclesDone[1] += ZetRun(1000);
|
||||
}
|
||||
}
|
||||
|
@ -2098,7 +2098,7 @@ static INT32 DrvFrame()
|
|||
nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
|
||||
nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
|
||||
nCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
|
||||
if (i == (nInterleave - 1)) ZetRaiseIrq(0);
|
||||
if (i == (nInterleave - 1)) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
ZetClose();
|
||||
|
||||
nCurrentCPU = 1;
|
||||
|
|
|
@ -169,7 +169,7 @@ void games88_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x5f90:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -263,7 +263,7 @@ UINT8 __fastcall games88_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xa000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xc000:
|
||||
|
@ -577,7 +577,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -178,12 +178,12 @@ void ajax_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x0000:
|
||||
if (address == 0 && firq_enable) {
|
||||
M6809SetIRQLine(1, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x0001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
|
||||
case 0x0002:
|
||||
|
@ -354,7 +354,7 @@ UINT8 __fastcall ajax_sound_read(UINT16 address)
|
|||
return BurnYM2151ReadStatus();
|
||||
|
||||
case 0xe000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -703,7 +703,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -157,9 +157,7 @@ void aliens_main_write(UINT16 address, UINT8 data)
|
|||
case 0x5f8c:
|
||||
*soundlatch = data;
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
|
||||
//ZetRaiseIrq(0xff);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -232,7 +230,7 @@ UINT8 __fastcall aliens_sound_read(UINT16 address)
|
|||
return BurnYM2151ReadStatus();
|
||||
|
||||
case 0xc000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -511,7 +509,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -228,7 +228,7 @@ static void _fastcall asterix_main_write_byte(UINT32 address, UINT8 data)
|
|||
return;
|
||||
|
||||
case 0x380301:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x380601:
|
||||
|
@ -342,7 +342,7 @@ static UINT8 __fastcall asterix_sound_read(UINT16 address)
|
|||
}
|
||||
|
||||
if (address >= 0xfa00 && address <= 0xfa2f) {
|
||||
if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
|
||||
return K053260Read(0, address & 0x3f);
|
||||
}
|
||||
|
@ -667,7 +667,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (K056832IsIrqEnabled()) SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
if (K056832IsIrqEnabled()) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -272,7 +272,7 @@ static void battlnts_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x2e18:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -329,7 +329,7 @@ static UINT8 __fastcall battlnts_sound_read(UINT16 address)
|
|||
return BurnYM3812Read(1, address & 1);
|
||||
|
||||
case 0xe000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return soundlatch;
|
||||
}
|
||||
|
||||
|
@ -555,7 +555,7 @@ static INT32 DrvFrame()
|
|||
|
||||
HD6309Run(nCyclesTotal[0] / nInterleave);
|
||||
|
||||
if (i == 240 && K007342_irq_enabled()) HD6309SetIRQLine(0, HD6309_IRQSTATUS_AUTO);
|
||||
if (i == 240 && K007342_irq_enabled()) HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[1] / nInterleave));
|
||||
}
|
||||
|
|
|
@ -393,7 +393,7 @@ static void bishi_tile_callback(INT32 layer, INT32 *code, INT32 *color, INT32 */
|
|||
|
||||
static void bishi_sound_irq(INT32 status)
|
||||
{
|
||||
SekSetIRQLine(1, (status) ? SEK_IRQSTATUS_ACK : SEK_IRQSTATUS_NONE);
|
||||
SekSetIRQLine(1, (status) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
static INT32 DrvDoReset()
|
||||
|
@ -598,8 +598,8 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
|
||||
|
||||
if (control_data & 0x800) {
|
||||
if (i == 0) SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
if (i == 240) SekSetIRQLine(3, SEK_IRQSTATUS_AUTO);
|
||||
if (i == 0) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
if (i == 240) SekSetIRQLine(3, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -185,7 +185,7 @@ static void bladestl_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x2e80:
|
||||
soundlatch = data;
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_ACK);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x2ec0:
|
||||
|
@ -280,7 +280,7 @@ static UINT8 bladestl_sound_read(UINT16 address)
|
|||
return (UPD7759BusyRead(0) ? 1 : 0);
|
||||
|
||||
case 0x6000:
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return soundlatch;
|
||||
}
|
||||
|
||||
|
@ -551,13 +551,13 @@ static INT32 DrvFrame()
|
|||
HD6309Open(0);
|
||||
M6809Open(0);
|
||||
|
||||
HD6309SetIRQLine(0x20, HD6309_IRQSTATUS_AUTO); // nmi
|
||||
HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // nmi
|
||||
|
||||
for (INT32 i = 0; i < nInterleave; i++) {
|
||||
|
||||
HD6309Run(nCyclesTotal[0] / nInterleave);
|
||||
|
||||
if (i == 240 && K007342_irq_enabled()) HD6309SetIRQLine(1, HD6309_IRQSTATUS_AUTO); // firq
|
||||
if (i == 240 && K007342_irq_enabled()) HD6309SetIRQLine(1, CPU_IRQSTATUS_AUTO); // firq
|
||||
|
||||
BurnTimerUpdate((i + 1) * (nCyclesTotal[1] / nInterleave));
|
||||
}
|
||||
|
|
|
@ -140,7 +140,7 @@ void blockhl_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x1f88:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x1f8c:
|
||||
|
@ -200,7 +200,7 @@ UINT8 __fastcall blockhl_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xa000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xc001:
|
||||
|
@ -447,7 +447,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
|
||||
if (K052109_irq_enabled && (nDrvKonamiBank[0] & 0x03) == 0)
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -269,7 +269,7 @@ void bottom9_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x1fc0:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -380,7 +380,7 @@ UINT8 __fastcall bottom9_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xd000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -660,7 +660,7 @@ static INT32 DrvFrame()
|
|||
if (*nmi_enable) ZetNmi();
|
||||
}
|
||||
|
||||
if (K052109_irq_enabled) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
memset(pBurnSoundOut, 0, nBurnSoundLen * sizeof(INT16) * 2);
|
||||
|
|
|
@ -162,7 +162,7 @@ static void circusc_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x0c00:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x1c00:
|
||||
|
@ -229,7 +229,7 @@ static UINT8 __fastcall circusc_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0x6000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return soundlatch;
|
||||
|
||||
case 0x8000:
|
||||
|
@ -560,7 +560,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (irqmask) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (irqmask) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
// Make sure the buffer is entirely filled.
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -433,9 +433,9 @@ static INT32 DrvDoReset()
|
|||
static void DrvYM2151IrqHandler(INT32 Irq)
|
||||
{
|
||||
if (Irq) {
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, M6809_IRQSTATUS_ACK);
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, CPU_IRQSTATUS_ACK);
|
||||
} else {
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(M6809_FIRQ_LINE, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -861,14 +861,14 @@ static INT32 DrvFrame()
|
|||
nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
|
||||
nCyclesDone[nCurrentCPU] += M6809Run(nCyclesSegment);
|
||||
if (i == (nInterleave - 1)) {
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
M6809Close();
|
||||
|
||||
nCurrentCPU = 1;
|
||||
M6809Open(nCurrentCPU);
|
||||
if (trigger_sound_irq) {
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
trigger_sound_irq = 0;
|
||||
}
|
||||
nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
|
||||
|
|
|
@ -265,7 +265,7 @@ void crimfght_main_write(UINT16 address, UINT8 data)
|
|||
case 0x3f8c:
|
||||
*soundlatch = data;
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -347,7 +347,7 @@ UINT8 __fastcall crimfght_sound_read(UINT16 address)
|
|||
return BurnYM2151ReadStatus();
|
||||
|
||||
case 0xc000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -626,7 +626,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -492,7 +492,7 @@ static void dbz_K053936_callback2(INT32 offset, UINT16 *ram, INT32 *code, INT32
|
|||
|
||||
static void dbzYM2151IrqHandler(INT32 status)
|
||||
{
|
||||
ZetSetIRQLine(0, (status) ? ZET_IRQSTATUS_ACK : ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, (status) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
static INT32 DrvDoReset()
|
||||
|
@ -919,11 +919,11 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[0] += nCyclesSegment;
|
||||
|
||||
if (i == 0 && K053246_is_IRQ_enabled()) {
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
if (i == (nInterleave - 20)) {
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO); //CK);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO); //CK);
|
||||
}
|
||||
|
||||
nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
|
||||
|
|
|
@ -718,8 +718,8 @@ static INT32 DrvFrame()
|
|||
for (INT32 i = 0; i < nInterleave; i++)
|
||||
{
|
||||
nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
|
||||
if (i == 240 && irq_enable) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if ((i % 0x1f) == 0 && nmi_enable) M6809SetIRQLine(0x20, M6809_IRQSTATUS_AUTO);
|
||||
if (i == 240 && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
if ((i % 0x1f) == 0 && nmi_enable) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == 240) vblank = 1; // ?
|
||||
|
||||
|
|
|
@ -916,7 +916,7 @@ static INT32 DrvFrame()
|
|||
nCyclesDone = ZetRun(nCyclesSegment);
|
||||
|
||||
if (irq_enable && i == (nInterleave - 1)) {
|
||||
ZetRaiseIrq(0);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
if (nmi_enable && (i & 1)) {
|
||||
|
|
|
@ -168,7 +168,7 @@ void gbusters_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x1f88:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
|
||||
return;
|
||||
|
||||
|
@ -256,7 +256,7 @@ UINT8 __fastcall gbusters_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xa000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xc001:
|
||||
|
@ -524,7 +524,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -184,7 +184,7 @@ static void _fastcall gijoe_main_write_word(UINT32 address, UINT16 data)
|
|||
break;
|
||||
|
||||
case 0x1d0000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -233,7 +233,7 @@ static void _fastcall gijoe_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x1d0000:
|
||||
case 0x1d0001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
}
|
||||
|
@ -346,7 +346,7 @@ static UINT8 __fastcall gijoe_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xfc02:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -697,7 +697,7 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[0] += nCyclesSegment;
|
||||
|
||||
if (control_data & 0x20 && irq6_timer > 0) {
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
irq6_timer--;
|
||||
|
||||
|
@ -725,7 +725,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
|
||||
if (control_data & 0x80) {
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -233,7 +233,7 @@ static void __fastcall gradius3_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x0f0000:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -436,7 +436,7 @@ static UINT8 __fastcall gradius3_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xf010:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xf031:
|
||||
|
@ -764,18 +764,18 @@ static INT32 DrvFrame()
|
|||
SekOpen(0);
|
||||
nCycleSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
|
||||
nCyclesDone[0] += SekRun(nCycleSegment - nCyclesDone[0]);
|
||||
if (i == nInterleave - 1 && irqA_enable) SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
if (i == nInterleave - 1 && irqA_enable) SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
SekClose();
|
||||
|
||||
if (gradius3_cpub_enable) {
|
||||
SekOpen(1);
|
||||
nCycleSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
|
||||
nCyclesDone[1] += SekRun(nCycleSegment - SekTotalCycles());
|
||||
if (interrupt_triggered) SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
if (interrupt_triggered) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
if (i == 240 && (irqB_mask & 1))
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
if (i == 16 && (irqB_mask & 2))
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
SekClose();
|
||||
}
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ void __fastcall gyruss_main_write(UINT16 address, UINT8 data)
|
|||
ZetClose();
|
||||
ZetOpen(1);
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
ZetClose();
|
||||
ZetOpen(0);
|
||||
return;
|
||||
|
@ -261,7 +261,7 @@ void __fastcall gyruss_main_write(UINT16 address, UINT8 data)
|
|||
case 0xc180:
|
||||
*interrupt_enable0 = data & 1;
|
||||
if (!*interrupt_enable0) {
|
||||
ZetSetIRQLine(Z80_INPUT_LINE_NMI, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(Z80_INPUT_LINE_NMI, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
return;
|
||||
|
||||
|
@ -304,7 +304,7 @@ void gyruss_sub_write(UINT16 address, UINT8 data)
|
|||
case 0x2000:
|
||||
*interrupt_enable1 = data & 1;
|
||||
if (!*interrupt_enable1) {
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -326,7 +326,7 @@ UINT8 __fastcall gyruss_sound0_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0x8000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -954,7 +954,7 @@ static INT32 DrvFrame()
|
|||
nCyclesSegment = nNext - nCyclesDone[0];
|
||||
nCyclesDone[0] += ZetRun(nCyclesSegment);
|
||||
if (i == (nInterleave - 248) && *interrupt_enable0) {
|
||||
ZetSetIRQLine(Z80_INPUT_LINE_NMI, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(Z80_INPUT_LINE_NMI, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
ZetClose();
|
||||
|
||||
|
@ -963,7 +963,7 @@ static INT32 DrvFrame()
|
|||
nCyclesSegment = nNext - nCyclesDone[1];
|
||||
nCyclesDone[1] += M6809Run(nCyclesSegment);
|
||||
if (i == (nInterleave - 248) && *interrupt_enable1) {
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_ACK);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
M6809Close();
|
||||
|
||||
|
|
|
@ -212,7 +212,7 @@ void hcastle_write(UINT16 address, UINT8 data)
|
|||
t -= ZetTotalCycles();
|
||||
if (t > 1) ZetRun((INT32)t);
|
||||
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
return;
|
||||
|
||||
|
@ -321,7 +321,7 @@ UINT8 __fastcall hcastle_sound_read(UINT16 address)
|
|||
return BurnYM3812Read(0, address & 1);
|
||||
|
||||
case 0xd000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -754,7 +754,7 @@ static INT32 DrvFrame()
|
|||
konamiOpen(0);
|
||||
|
||||
konamiRun(nCyclesTotal[0]);
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
BurnTimerEndFrameYM3812(nCyclesTotal[1]);
|
||||
|
||||
|
|
|
@ -522,7 +522,7 @@ static INT32 DrvFrame()
|
|||
nCyclesSegment = ZetRun(nCyclesSegment);
|
||||
if (i == (nInterleave / 3)) ZetNmi();
|
||||
if (i == ((nInterleave / 3) * 2)) ZetNmi();
|
||||
if (i == nInterleave - 1) ZetRaiseIrq(0);
|
||||
if (i == nInterleave - 1) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
nCyclesDone[0] += nCyclesSegment;
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -197,7 +197,7 @@ static void ironhors_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x0900:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x0a00:
|
||||
|
@ -241,7 +241,7 @@ static UINT8 __fastcall ironhors_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0x8000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return soundlatch;
|
||||
}
|
||||
|
||||
|
@ -604,8 +604,8 @@ static INT32 DrvFrame()
|
|||
{
|
||||
M6809Run(nCyclesTotal[0] / nInterleave);
|
||||
|
||||
if (i == 240 && (DrvIRQEnable[0] & 0x04)) M6809SetIRQLine(1, M6809_IRQSTATUS_AUTO); // firq
|
||||
if ((i&0x3f)==0 && (DrvIRQEnable[0] & 0x01)) M6809SetIRQLine(0x20, M6809_IRQSTATUS_AUTO); // nmi
|
||||
if (i == 240 && (DrvIRQEnable[0] & 0x04)) M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); // firq
|
||||
if ((i&0x3f)==0 && (DrvIRQEnable[0] & 0x01)) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // nmi
|
||||
|
||||
BurnTimerUpdate((i+1) * (nCyclesTotal[1] / nInterleave));
|
||||
}
|
||||
|
|
|
@ -548,9 +548,9 @@ static INT32 DrvFrame()
|
|||
{
|
||||
nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
|
||||
|
||||
if (i < 8 && nmi_enable) M6809SetIRQLine(0x20, M6809_IRQSTATUS_AUTO);
|
||||
if (i < 8 && nmi_enable) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == 8 && irq_enable) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (i == 8 && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||
|
|
|
@ -99,7 +99,7 @@ static void __fastcall kontest_write_port(UINT16 port, UINT8 data)
|
|||
|
||||
case 0x08:
|
||||
*irq_enable = data & 0x08;
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -292,7 +292,7 @@ static INT32 DrvFrame()
|
|||
ZetRun(3000000 / 60);
|
||||
|
||||
if (*irq_enable)
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
|
||||
ZetClose();
|
||||
|
||||
|
|
|
@ -745,9 +745,9 @@ static INT32 DrvFrame()
|
|||
BurnTimerUpdate((i+1) * (nCyclesTotal / nInterleave));
|
||||
|
||||
// the timings of these is extremely important.. and currently wrong.
|
||||
if ((i & 0x3f) == 0x3f && (K007121CtrlRAM[7] & 0x01)) HD6309SetIRQLine(0x20, HD6309_IRQSTATUS_AUTO);
|
||||
if ((i & 0x3f) == 0x3f && (K007121CtrlRAM[7] & 0x01)) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == 253 && (K007121CtrlRAM[7] & 0x02)) HD6309SetIRQLine(0x00, HD6309_IRQSTATUS_AUTO);
|
||||
if (i == 253 && (K007121CtrlRAM[7] & 0x02)) HD6309SetIRQLine(0x00, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
BurnTimerEndFrame(nCyclesTotal);
|
||||
|
|
|
@ -246,7 +246,7 @@ static void lethal_main_write(UINT16 address, UINT8 data)
|
|||
return;
|
||||
|
||||
case 0x00c7:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -335,7 +335,7 @@ static UINT8 __fastcall lethal_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xfc02:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xfc03:
|
||||
|
@ -707,7 +707,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
|
||||
if (K056832IsIrqEnabled()) {
|
||||
HD6309SetIRQLine(0, HD6309_IRQSTATUS_AUTO);
|
||||
HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -486,7 +486,7 @@ void mainevt_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x1f88:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x1f90:
|
||||
|
@ -562,7 +562,7 @@ UINT8 __fastcall mainevt_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xa000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xc000:
|
||||
|
@ -853,7 +853,7 @@ static INT32 DrvFrame()
|
|||
if (i == nCyclesSoundIrqTrigger-1) {
|
||||
nCyclesSoundIrqTrigger+=nCyclesSoundIrq;
|
||||
if (*irq_enable) {
|
||||
if (nGame) ZetSetIRQLine(0, ZET_IRQSTATUS_AUTO);
|
||||
if (nGame) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
else ZetNmi();
|
||||
}
|
||||
}
|
||||
|
@ -869,9 +869,9 @@ static INT32 DrvFrame()
|
|||
}
|
||||
|
||||
if (nGame) {
|
||||
if (nmi_enable[0]) HD6309SetIRQLine(0x20, HD6309_IRQSTATUS_AUTO); // nmi
|
||||
if (nmi_enable[0]) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // nmi
|
||||
} else {
|
||||
if (K052109_irq_enabled) HD6309SetIRQLine(HD6309_IRQ_LINE, HD6309_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) HD6309SetIRQLine(HD6309_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -739,12 +739,12 @@ static INT32 DrvFrame()
|
|||
{
|
||||
INT32 nSegment = (nCyclesTotal[0] * (i + 1)) / nInterleave;
|
||||
nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
|
||||
if (i == (nInterleave - 1) && irq_enable) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (i == (nInterleave - 1) && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
nSegment = (nCyclesTotal[1] * (i + 1)) / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
|
||||
if (i == (nInterleave - 2)) ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
if (i == (nInterleave - 1)) ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
if (i == (nInterleave - 2)) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
if (i == (nInterleave - 1)) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
|
||||
nSegment = (nCyclesTotal[2] * (i + 1)) / nInterleave;
|
||||
nCyclesDone[2] += I8039Run(nSegment - nCyclesDone[2]);
|
||||
|
|
|
@ -159,7 +159,7 @@ static void mikie_main_write(UINT16 a, UINT8 d)
|
|||
case 0x2002:
|
||||
if (*sound_irq == 0 && d == 1) {
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
*sound_irq = d;
|
||||
return;
|
||||
|
@ -233,7 +233,7 @@ static UINT8 __fastcall mikie_sound_read(UINT16 a)
|
|||
switch (a)
|
||||
{
|
||||
case 0x8003:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0x8005:
|
||||
|
@ -554,7 +554,7 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
|
||||
nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
|
||||
|
||||
if (i == 240 && *irq_mask) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (i == 240 && *irq_mask) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
// Render Sound Segment
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -335,7 +335,7 @@ static INT32 DrvFrame()
|
|||
|
||||
ZetOpen(0);
|
||||
ZetRun(3000000 / 60);
|
||||
ZetRaiseIrq(0);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
DACUpdate(pBurnSoundOut, nBurnSoundLen);
|
||||
|
|
|
@ -346,7 +346,7 @@ static void __fastcall moo_main_write_byte(UINT32 address, UINT8 data)
|
|||
{
|
||||
case 0x0d4000:
|
||||
case 0x0d4001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x0d600c:
|
||||
|
@ -551,7 +551,7 @@ static void __fastcall bucky_main_write_byte(UINT32 address, UINT8 data)
|
|||
{
|
||||
case 0x0d4000:
|
||||
case 0x0d4001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x0d600c:
|
||||
|
@ -721,7 +721,7 @@ static UINT8 __fastcall moo_sound_read(UINT16 address)
|
|||
return BurnYM2151ReadStatus();
|
||||
|
||||
case 0xf002:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xf003:
|
||||
|
@ -1146,7 +1146,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
|
||||
if (control_data & 0x20) {
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1155,7 +1155,7 @@ static INT32 DrvFrame()
|
|||
irq5_timer--;
|
||||
if (control_data & 0x800) {
|
||||
irq5_timer = 0;
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -557,7 +557,7 @@ static void __fastcall mystwarr_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x49a000:
|
||||
case 0x49a001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x49e004:
|
||||
|
@ -834,7 +834,7 @@ static void __fastcall metamrph_main_write_word(UINT32 address, UINT16 data)
|
|||
{
|
||||
case 0x264000:
|
||||
case 0x264001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x26800c:
|
||||
|
@ -917,7 +917,7 @@ static void __fastcall metamrph_main_write_byte(UINT32 address, UINT8 data)
|
|||
{
|
||||
case 0x264000:
|
||||
case 0x264001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x26800c:
|
||||
|
@ -1282,7 +1282,7 @@ static void __fastcall martchmp_main_write_byte(UINT32 address, UINT8 data)
|
|||
|
||||
case 0x41a000:
|
||||
case 0x41a001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1536,7 +1536,7 @@ static void __fastcall dadandrn_main_write_byte(UINT32 address, UINT8 data)
|
|||
return;
|
||||
|
||||
case 0x6e0000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0xe00000:
|
||||
|
@ -1630,7 +1630,7 @@ static void __fastcall mystwarr_sound_write(UINT16 address, UINT8 data)
|
|||
case 0xf800:
|
||||
sound_control = data & 0x10;
|
||||
bankswitch(data);
|
||||
// if (!sound_control) ZetSetIRQLine(0x20, ZET_IRQSTATUS_NONE); // CLEAR NMI LINE!
|
||||
// if (!sound_control) ZetSetIRQLine(0x20, CPU_IRQSTATUS_NONE); // CLEAR NMI LINE!
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1665,11 +1665,11 @@ static UINT8 __fastcall mystwarr_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xf002:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xf003:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch2;
|
||||
}
|
||||
|
||||
|
@ -2811,23 +2811,23 @@ static INT32 DrvFrame()
|
|||
if (mw_irq_control & 1)
|
||||
{
|
||||
if (i == 0)
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == ((nInterleave * 240)/256))
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
if (nGame == 2 || nGame == 3)
|
||||
{
|
||||
if (i == 0) // otherwise service mode doesn't work!
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == ((nInterleave * 24) / 256))
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == ((nInterleave * 248) / 256) && K053246_is_IRQ_enabled())
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
if (nGame == 4) // martchmp
|
||||
|
@ -2835,17 +2835,17 @@ static INT32 DrvFrame()
|
|||
if (mw_irq_control & 2)
|
||||
{
|
||||
if (i == ((nInterleave * 23) / 256))
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == ((nInterleave * 247) / 256) && K053246_is_IRQ_enabled())
|
||||
SekSetIRQLine(6, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
if (nGame == 5 || nGame == 6)
|
||||
{
|
||||
if (i == (nInterleave - 1))
|
||||
SekSetIRQLine(5, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
|
||||
|
@ -2854,7 +2854,7 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[1] += nCyclesSegment;
|
||||
|
||||
if ((i % (nInterleave / 8)) == ((nInterleave / 8) - 1)) {// && sound_nmi_enable && sound_control) { // iq_132
|
||||
ZetNmi(); //ZetSetIRQLine(0x20, ZET_IRQSTATUS_ACK);
|
||||
ZetNmi(); //ZetSetIRQLine(0x20, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -1262,7 +1262,7 @@ static void __fastcall nemesis_main_write_byte(UINT32 address, UINT8 data)
|
|||
case 0x05e004:
|
||||
if (data & 1) {
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
return;
|
||||
|
||||
|
@ -1356,7 +1356,7 @@ static void __fastcall salamand_main_write_byte(UINT32 address, UINT8 data)
|
|||
switch (address)
|
||||
{
|
||||
case 0x0a0000:
|
||||
if (data & 0x08) ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
if (data & 0x08) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x0a0001:
|
||||
|
@ -1394,7 +1394,7 @@ static void __fastcall salamand_main_write_word(UINT32 address, UINT16 data)
|
|||
*flipscreen = data & 0x04;
|
||||
*tilemap_flip_x = data & 0x04;
|
||||
*tilemap_flip_y = data & 0x08;
|
||||
if (data & 0x0800) ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
if (data & 0x0800) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -1475,7 +1475,7 @@ static void __fastcall hcrash_main_write_byte(UINT32 address, UINT8 data)
|
|||
switch (address)
|
||||
{
|
||||
case 0x0a0000:
|
||||
if (data & 0x08) ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
if (data & 0x08) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x0a0001:
|
||||
|
@ -1552,7 +1552,7 @@ static void __fastcall gx400_main_write_byte(UINT32 address, UINT8 data)
|
|||
case 0x05e004:
|
||||
if (data & 1) {
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
}
|
||||
return;
|
||||
|
||||
|
@ -1632,7 +1632,7 @@ static void __fastcall citybomb_main_write_byte(UINT32 address, UINT8 data)
|
|||
case 0x078000:
|
||||
case 0x0f8000:
|
||||
// coin counters
|
||||
if (data & 0x08) ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
if (data & 0x08) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
selected_ip = (~data & 0x10) >> 4;
|
||||
return;
|
||||
|
||||
|
@ -1664,7 +1664,7 @@ static void __fastcall citybomb_main_write_word(UINT32 address, UINT16 data)
|
|||
*flipscreen = data & 0x04;
|
||||
*tilemap_flip_x = data & 0x04;
|
||||
*tilemap_flip_y = data & 0x08;
|
||||
if (data & 0x0800) ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
if (data & 0x0800) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
selected_ip = (~data & 0x1000) >> 12;
|
||||
}
|
||||
return;
|
||||
|
@ -1776,7 +1776,7 @@ static UINT8 __fastcall nemesis_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xe001:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xe086:
|
||||
|
@ -1830,7 +1830,7 @@ static UINT8 __fastcall salamand_sound_read(UINT16 address)
|
|||
switch (address)
|
||||
{
|
||||
case 0xa000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
|
||||
case 0xc000:
|
||||
|
@ -1916,7 +1916,7 @@ static UINT8 __fastcall citybomb_sound_read(UINT16 address)
|
|||
return BurnYM3812Read(0, address & 1);
|
||||
|
||||
case 0xd000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -3059,7 +3059,7 @@ static INT32 NemesisFrame()
|
|||
segment = nCyclesTotal[0] / nInterleave;
|
||||
nCyclesDone[0] += SekRun(segment);
|
||||
if (i == (nInterleave - 4) && *m68k_irq_enable) // should be 2500...
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
segment = nCyclesTotal[1] / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(segment);
|
||||
|
@ -3116,10 +3116,10 @@ static INT32 KonamigtFrame()
|
|||
nCyclesDone[0] += SekRun(segment);
|
||||
|
||||
if (*m68k_irq_enable && i == 240 && (nCurrentFrame & 1) == 0)
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (*m68k_irq_enable2 && i == 0)
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
segment = nCyclesTotal[1] / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(segment);
|
||||
|
@ -3182,7 +3182,7 @@ static INT32 SalamandFrame()
|
|||
segment = nCyclesTotal[0] / nInterleave;
|
||||
nCyclesDone[0] += SekRun(segment);
|
||||
if (i == (nInterleave - 4) && *m68k_irq_enable) // should be 2500...
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
segment = nCyclesTotal[1] / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(segment);
|
||||
|
@ -3255,10 +3255,10 @@ static INT32 HcrashFrame()
|
|||
nCyclesDone[0] += SekRun(segment);
|
||||
|
||||
if (*m68k_irq_enable && i == 240 && (nCurrentFrame & 1) == 0)
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (*m68k_irq_enable2 && i == 0)
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
segment = nCyclesTotal[1] / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(segment);
|
||||
|
@ -3333,7 +3333,7 @@ static INT32 BlkpnthrFrame()
|
|||
segment = nCyclesTotal[0] / nInterleave;
|
||||
nCyclesDone[0] += SekRun(segment);
|
||||
if (i == (nInterleave - 4) && *m68k_irq_enable)
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
segment = nCyclesTotal[1] / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(segment);
|
||||
|
@ -3406,13 +3406,13 @@ static INT32 Gx400Frame()
|
|||
nCyclesDone[0] += SekRun(segment);
|
||||
|
||||
if (*m68k_irq_enable && (i == 240) && (nCurrentFrame & 1) == 0)
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (*m68k_irq_enable2 && (i == 0))
|
||||
SekSetIRQLine(2, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (*m68k_irq_enable4 && (i == 120))
|
||||
SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
segment = nCyclesTotal[1] / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(segment);
|
||||
|
@ -3471,7 +3471,7 @@ static INT32 CitybombFrame()
|
|||
nCyclesDone[0] += SekRun(nCyclesTotal[0]);
|
||||
|
||||
if (*m68k_irq_enable) // 2500...
|
||||
SekSetIRQLine(1, SEK_IRQSTATUS_AUTO);
|
||||
SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
BurnTimerEndFrameYM3812(nCyclesTotal[1]);
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ void parodius_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x3fc8:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x3fcc:
|
||||
|
@ -295,7 +295,7 @@ UINT8 __fastcall parodius_sound_read(UINT16 address)
|
|||
}
|
||||
|
||||
if (address >= 0xfc00 && address <= 0xfc2f) {
|
||||
if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
|
||||
return K053260Read(0, address & 0x3f);
|
||||
}
|
||||
|
@ -562,7 +562,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -169,7 +169,7 @@ static void __fastcall pooyan_main_write(UINT16 address, UINT8 data)
|
|||
case 0xa180:
|
||||
irq_enable = data & 1;
|
||||
if (!irq_enable)
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
break;
|
||||
|
||||
case 0xa181:
|
||||
|
@ -177,7 +177,7 @@ static void __fastcall pooyan_main_write(UINT16 address, UINT8 data)
|
|||
if (irqtrigger == 0 && data) {
|
||||
ZetClose();
|
||||
ZetOpen(1);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
ZetClose();
|
||||
ZetOpen(0);
|
||||
}
|
||||
|
|
|
@ -161,7 +161,7 @@ static void rockrage_main_write(UINT16 address, UINT8 data)
|
|||
{
|
||||
case 0x2e80:
|
||||
soundlatch = data;
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_ACK);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x2ec0:
|
||||
|
@ -228,7 +228,7 @@ static UINT8 rockrage_sound_read(UINT16 address)
|
|||
return (vlm5030_bsy(0) ? 1 : 0);
|
||||
|
||||
case 0x5000:
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return soundlatch;
|
||||
|
||||
case 0x6000:
|
||||
|
@ -523,7 +523,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
}
|
||||
|
||||
if (K007342_irq_enabled()) HD6309SetIRQLine(0, HD6309_IRQSTATUS_AUTO);
|
||||
if (K007342_irq_enabled()) HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -202,7 +202,7 @@ static void rocnrope_write(UINT16 address, UINT8 data)
|
|||
return;
|
||||
|
||||
case 0x8081:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x8082:
|
||||
|
@ -213,7 +213,7 @@ static void rocnrope_write(UINT16 address, UINT8 data)
|
|||
case 0x8087:
|
||||
irq_enable = data & 0x01;
|
||||
if (!irq_enable) {
|
||||
M6809SetIRQLine(0, M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
return;
|
||||
|
||||
|
@ -530,7 +530,7 @@ static INT32 DrvFrame()
|
|||
{
|
||||
INT32 nSegment = (nCyclesTotal[0] * (i + 1)) / nInterleave;
|
||||
nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
|
||||
if (i == (nInterleave - 1) && irq_enable) M6809SetIRQLine(0, M6809_IRQSTATUS_ACK);
|
||||
if (i == (nInterleave - 1) && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
|
||||
nSegment = (nCyclesTotal[1] * i) / nInterleave;
|
||||
nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
|
||||
|
|
|
@ -159,8 +159,7 @@ void rollerg_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x0040:
|
||||
ZetSetVector(0xff);
|
||||
// ZetRaiseIrq(0);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -265,7 +264,7 @@ UINT8 __fastcall rollerg_sound_read(UINT16 address)
|
|||
|
||||
if (address >= 0xa000 && address <= 0xa02f) {
|
||||
// not sure...
|
||||
if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
|
||||
return K053260Read(0, address & 0x3f);
|
||||
}
|
||||
|
@ -496,7 +495,7 @@ static INT32 DrvFrame()
|
|||
BurnTimerUpdateYM3812(i * (nCyclesTotal[1] / nInterleave));
|
||||
}
|
||||
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
BurnTimerEndFrameYM3812(nCyclesTotal[1]);
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ void scotrsht_main_write(UINT16 address, UINT8 data)
|
|||
|
||||
case 0x3100:
|
||||
*soundlatch = data;
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
|
||||
case 0x3300:
|
||||
|
@ -200,7 +200,7 @@ UINT8 scotrsht_main_read(UINT16 address)
|
|||
UINT8 __fastcall scotrsht_sound_read(UINT16 address)
|
||||
{
|
||||
if (address == 0x8000) {
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -571,7 +571,7 @@ static INT32 DrvFrame()
|
|||
|
||||
BurnTimerEndFrame(nCyclesTotal[1]);
|
||||
|
||||
if (*irq_enable) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (*irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
|
||||
|
|
|
@ -496,9 +496,9 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
|
||||
|
||||
if (*nmi_enable && (i & 0x1f) == 0)
|
||||
M6809SetIRQLine(0x20, M6809_IRQSTATUS_AUTO); // 480x/second (8x/frame)
|
||||
M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // 480x/second (8x/frame)
|
||||
|
||||
if (i == 240) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (i == 240) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
// Render Sound Segment
|
||||
if (pBurnSoundOut) {
|
||||
|
|
|
@ -215,7 +215,7 @@ UINT8 simpsons_main_read(UINT16 address)
|
|||
|
||||
case 0x1fc4:
|
||||
ZetSetVector(0xff);
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return 0;
|
||||
|
||||
case 0x1fc6:
|
||||
|
@ -302,7 +302,7 @@ UINT8 __fastcall simpsons_sound_read(UINT16 address)
|
|||
}
|
||||
|
||||
if (address >= 0xfc00 && address < 0xfc30) {
|
||||
if ((address & 0x3f) == 0x01) ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
if ((address & 0x3f) == 0x01) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
|
||||
return K053260Read(0, address & 0xff);
|
||||
}
|
||||
|
@ -628,7 +628,7 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[0] += nCyclesSegment;
|
||||
|
||||
if (i == 1 && K053246Irq && simpsons_firq_enabled) {
|
||||
konamiSetIrqLine(KONAMI_FIRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
konamiSetIrqLine(KONAMI_FIRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
K053246Irq = K053246_is_IRQ_enabled();
|
||||
|
@ -648,7 +648,7 @@ static INT32 DrvFrame()
|
|||
}
|
||||
|
||||
if (K053246Irq) simpsons_objdma();
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||
|
|
|
@ -257,9 +257,9 @@ static void spy_3f90_w(INT32 data)
|
|||
{
|
||||
spy_collision();
|
||||
|
||||
M6809SetIRQLine(1 /*FIRQ*/, M6809_IRQSTATUS_ACK);
|
||||
M6809SetIRQLine(1 /*FIRQ*/, CPU_IRQSTATUS_ACK);
|
||||
M6809Run(105); // delay or the M6809 won't read it...
|
||||
M6809SetIRQLine(1 /*FIRQ*/, M6809_IRQSTATUS_NONE);
|
||||
M6809SetIRQLine(1 /*FIRQ*/, CPU_IRQSTATUS_NONE);
|
||||
}
|
||||
|
||||
Drv3f90old = data;
|
||||
|
@ -300,7 +300,7 @@ void spy_main_write(UINT16 address, UINT8 data)
|
|||
return;
|
||||
|
||||
case 0x3fc0:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -392,7 +392,7 @@ UINT8 __fastcall spy_sound_read(UINT16 address)
|
|||
return BurnYM3812Read(0, address & 1);
|
||||
|
||||
case 0xd000:
|
||||
ZetSetIRQLine(0, ZET_IRQSTATUS_NONE);
|
||||
ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
|
||||
return *soundlatch;
|
||||
}
|
||||
|
||||
|
@ -657,7 +657,7 @@ static INT32 DrvFrame()
|
|||
nCyclesDone[1] += BurnTimerUpdateYM3812(nCyclesSegment - nCyclesDone[1]);
|
||||
}
|
||||
|
||||
if (K052109_irq_enabled) M6809SetIRQLine(0, M6809_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
BurnTimerEndFrameYM3812(nCyclesTotal[1]);
|
||||
|
||||
|
|
|
@ -457,7 +457,7 @@ static INT32 DrvFrame()
|
|||
nCyclesDone += konamiRun(nSegment - nCyclesDone);
|
||||
|
||||
if (i == 235) {
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
|
||||
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
|
||||
if (pBurnSoundOut) {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue