From b741c79488c58fb85d7047e22cffa83061791232 Mon Sep 17 00:00:00 2001 From: iq_132 <1191709+iq132@users.noreply.github.com> Date: Sun, 8 Jun 2014 07:32:15 +0000 Subject: [PATCH] Fix up save states a little Fix layer in spinal breakers - is the flashing normal? --- src/burn/drv/pst90s/d_aerofgt.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/burn/drv/pst90s/d_aerofgt.cpp b/src/burn/drv/pst90s/d_aerofgt.cpp index 31c426c92..2ca091e51 100644 --- a/src/burn/drv/pst90s/d_aerofgt.cpp +++ b/src/burn/drv/pst90s/d_aerofgt.cpp @@ -1202,6 +1202,7 @@ static UINT8 __fastcall pspikesReadByte(UINT32 sekAddress) static void aerofgtFMIRQHandler(INT32, INT32 nStatus) { + if (ZetGetActive() == -1) return; // bprintf(PRINT_NORMAL, _T(" - IRQ -> %i.\n"), nStatus); if (nStatus) { ZetSetIRQLine(0xFF, ZET_IRQSTATUS_ACK); @@ -1212,11 +1213,13 @@ static void aerofgtFMIRQHandler(INT32, INT32 nStatus) static INT32 aerofgtSynchroniseStream(INT32 nSoundRate) { + if (ZetGetActive() == -1) return 0; return (INT64)ZetTotalCycles() * nSoundRate / 5000000; } static double aerofgtGetTime() { + if (ZetGetActive() == -1) return 0; return (double)ZetTotalCycles() / 5000000.0; } @@ -2368,7 +2371,7 @@ static void karatblzTileBackground(UINT16 *bgram, UINT8 *gfx, INT32 transp, UINT if (sx >= nScreenWidth || sy >= nScreenHeight) continue; INT32 attr = BURN_ENDIAN_SWAP_INT16(bgram[offs]); - INT32 code = (attr & 0x1fff) + ((bankbase & 0x01) << 13); + INT32 code = (attr & 0x1fff) + (bankbase << 13); INT32 color = attr >> 13; if (transp) { @@ -2517,8 +2520,8 @@ static INT32 karatblzDraw() DrvRecalc = 0; } - karatblzTileBackground(RamBg1V, DeRomBg + 0x000000, 0, 0x000, bg1scrollx, bg1scrolly, RamGfxBank[0]); - karatblzTileBackground(RamBg2V, DeRomBg + 0x100000, 1, 0x100, bg2scrollx, bg2scrolly, RamGfxBank[1]); + karatblzTileBackground(RamBg1V, DeRomBg + 0x000000, 0, 0x000, bg1scrollx, bg1scrolly, RamGfxBank[0] & 1); + karatblzTileBackground(RamBg2V, DeRomBg + 0x100000, 1, 0x100, bg2scrollx, bg2scrolly, RamGfxBank[1] & 1); /* turbofrc_drawsprites(1,-1); @@ -2545,7 +2548,7 @@ static INT32 spinlbrkDraw() } spinlbrkTileBackground(); - karatblzTileBackground(RamBg2V, DeRomBg + 0x200000, 1, 0x100, bg2scrollx, bg2scrolly, RamGfxBank[1]); + karatblzTileBackground(RamBg2V, DeRomBg + 0x200000, 1, 0x100, bg2scrollx, bg2scrolly, RamGfxBank[1] & 0x07); turbofrc_drawsprites(1,768,-1); // enemy(near far) turbofrc_drawsprites(1,768, 0); // enemy(near) fense @@ -2659,7 +2662,9 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin) SCAN_VAR(RamGfxBank); SCAN_VAR(DrvInput); + ZetOpen(0); BurnYM2610Scan(nAction, pnMin); + ZetClose(); SCAN_VAR(nSoundlatch); SCAN_VAR(nAerofgtZ80Bank);