Small Epos update -- Dealer sound, implement watchdog.

This commit is contained in:
iq_132 2012-04-30 16:55:54 +00:00
parent e91c2fd678
commit 4f8fd4a0d9
1 changed files with 38 additions and 14 deletions

View File

@ -35,6 +35,8 @@ static UINT8 *DrvPaletteBank;
static UINT8 *DealerZ80Bank; static UINT8 *DealerZ80Bank;
static UINT8 *DealerZ80Bank2; static UINT8 *DealerZ80Bank2;
static int watchdog;
static struct BurnInputInfo MegadonInputList[] = { static struct BurnInputInfo MegadonInputList[] = {
{"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" }, {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
{"P1 Start", BIT_DIGITAL, DrvJoy1 + 2, "p1 start" }, {"P1 Start", BIT_DIGITAL, DrvJoy1 + 2, "p1 start" },
@ -276,19 +278,20 @@ void __fastcall epos_write_port(UINT16 port, UINT8 data)
switch (port & 0xff) switch (port & 0xff)
{ {
case 0x00: case 0x00:
break; watchdog = 0;
return;
case 0x01: case 0x01:
*DrvPaletteBank = (data << 1) & 0x10; *DrvPaletteBank = (data << 1) & 0x10;
break; return;
case 0x02: case 0x02:
AY8910Write(0, 1, data); AY8910Write(0, 1, data);
break; return;
case 0x06: case 0x06:
AY8910Write(0, 0, data); AY8910Write(0, 0, data);
break; return;
} }
} }
@ -348,7 +351,7 @@ void __fastcall dealer_write_port(UINT16 port, UINT8 data)
case 0x12: case 0x12:
case 0x13: case 0x13:
ppi8255_w(0, port & 3, data); ppi8255_w(0, port & 3, data);
break; return;
case 0x20: case 0x20:
case 0x21: case 0x21:
@ -356,7 +359,19 @@ void __fastcall dealer_write_port(UINT16 port, UINT8 data)
case 0x23: case 0x23:
case 0x24: case 0x24:
dealer_bankswitch(port & 7); dealer_bankswitch(port & 7);
break; return;
case 0x34:
AY8910Write(0, 1, data);
return;
case 0x3c:
AY8910Write(0, 0, data);
return;
case 0x40:
watchdog = 0;
return;
} }
} }
@ -370,11 +385,11 @@ void DealerPPIWriteC(UINT8 data)
dealer_bankswitch2(data); dealer_bankswitch2(data);
} }
static INT32 DrvDoReset() static INT32 DrvDoReset(INT32 full_reset)
{ {
DrvReset = 0; if (full_reset) {
memset (AllRam, 0, RamEnd - AllRam); memset (AllRam, 0, RamEnd - AllRam);
}
ZetOpen(0); ZetOpen(0);
ZetReset(); ZetReset();
@ -384,6 +399,8 @@ static INT32 DrvDoReset()
AY8910Reset(0); AY8910Reset(0);
watchdog = 0;
return 0; return 0;
} }
@ -492,7 +509,7 @@ static INT32 DrvInit()
GenericTilesInit(); GenericTilesInit();
DrvDoReset(); DrvDoReset(1);
return 0; return 0;
} }
@ -539,7 +556,7 @@ static INT32 DealerInit()
GenericTilesInit(); GenericTilesInit();
DrvDoReset(); DrvDoReset(1);
return 0; return 0;
} }
@ -572,6 +589,8 @@ static INT32 DrvDraw()
DrvPalette[i] = BurnHighCol(r, g, b, 0); DrvPalette[i] = BurnHighCol(r, g, b, 0);
} }
DrvRecalc = 0;
} }
for (INT32 i = 0; i < 0x8000; i++) for (INT32 i = 0; i < 0x8000; i++)
@ -591,8 +610,13 @@ static INT32 DrvDraw()
static INT32 DrvFrame() static INT32 DrvFrame()
{ {
watchdog++;
if (watchdog > 180) {
DrvDoReset(0);
}
if (DrvReset) { if (DrvReset) {
DrvDoReset(); DrvDoReset(1);
} }
{ {
@ -886,7 +910,7 @@ STD_ROM_FN(dealer)
struct BurnDriver BurnDrvDealer = { struct BurnDriver BurnDrvDealer = {
"dealer", NULL, NULL, NULL, "198?", "dealer", NULL, NULL, NULL, "198?",
"The Dealer\0", "No Sound / Incorrect Colors", "Epos Corporation", "EPOS Tristar", "The Dealer\0", "Incorrect Colors", "Epos Corporation", "EPOS Tristar",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 1, HARDWARE_MISC_PRE90S, GBF_CASINO, 0, BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 1, HARDWARE_MISC_PRE90S, GBF_CASINO, 0,
NULL, dealerRomInfo, dealerRomName, NULL, NULL, DealerInputInfo, DealerDIPInfo, NULL, dealerRomInfo, dealerRomName, NULL, NULL, DealerInputInfo, DealerDIPInfo,