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