d_zaxxon: coin oops + dips oops (oops!)
This commit is contained in:
parent
18700c1b7a
commit
26173c00e5
|
@ -1,10 +1,10 @@
|
|||
/*
|
||||
Games supported:
|
||||
* Zaxxon yes
|
||||
* Zaxxon yes
|
||||
* Super Zaxxon yes
|
||||
* Future Spy yes
|
||||
* Razmatazz no sound+bad controls sega_universal_sound_board_rom ?
|
||||
* Ixion no
|
||||
* Razmatazz no sound+bad controls sega_universal_sound_board_rom ?
|
||||
* Ixion no
|
||||
* Congo Bongo yes
|
||||
|
||||
To do:
|
||||
|
@ -184,13 +184,41 @@ static struct BurnDIPInfo CongoBongoDIPList[]=
|
|||
{0x10, 0x01, 0x0c, 0x08, "Hard" },
|
||||
{0x10, 0x01, 0x0c, 0x00, "Hardest" },
|
||||
|
||||
{0 , 0xfe, 0 , 2, "Coin B" },
|
||||
{0x11, 0x01, 0x0f, 0x03, "1 Coin 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x0d, "1 Coin 2 Credits" },
|
||||
{0 , 0xfe, 0 , 16, "Coin B" },
|
||||
{0x11, 0x01, 0x0f, 0x0f, "4 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x07, "3 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x0b, "2 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x06, "2 Coins / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x0a, "2 Coins / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0x0f, 0x03, "1 Coin / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x02, "1 Coin / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x0c, "1 Coin / 1 Credit + Bonus each 4" },
|
||||
{0x11, 0x01, 0x0f, 0x04, "1 Coin / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0x0f, 0x0d, "1 Coin / 2 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x08, "1 Coin / 2 Credits + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x00, "1 Coin / 2 Credits + Bonus each 4" },
|
||||
{0x11, 0x01, 0x0f, 0x05, "1 Coin / 3 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x09, "1 Coin / 4 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x01, "1 Coin / 5 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x0e, "1 Coin / 6 Credits" },
|
||||
|
||||
{0 , 0xfe, 0 , 2, "Coin A" },
|
||||
{0x11, 0x01, 0xf0, 0x30, "1 Coin 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0xd0, "1 Coin 2 Credits" },
|
||||
{0 , 0xfe, 0 , 16, "Coin A" },
|
||||
{0x11, 0x01, 0xf0, 0xf0, "4 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x70, "3 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0xb0, "2 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x60, "2 Coins / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0xa0, "2 Coins / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0xf0, 0x30, "1 Coin / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x20, "1 Coin / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0xc0, "1 Coin / 1 Credit + Bonus each 4" },
|
||||
{0x11, 0x01, 0xf0, 0x40, "1 Coin / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0xf0, 0xd0, "1 Coin / 2 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x80, "1 Coin / 2 Credits + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0x00, "1 Coin / 2 Credits + Bonus each 4" },
|
||||
{0x11, 0x01, 0xf0, 0x50, "1 Coin / 3 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x90, "1 Coin / 4 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x10, "1 Coin / 5 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0xe0, "1 Coin / 6 Credits" },
|
||||
};
|
||||
|
||||
STDDIPINFO(CongoBongo)
|
||||
|
@ -231,13 +259,41 @@ static struct BurnDIPInfo ZaxxonDIPList[]=
|
|||
{0x10, 0x01, 0x80, 0x00, "Upright" },
|
||||
{0x10, 0x01, 0x80, 0x80, "Cocktail" },
|
||||
|
||||
{0 , 0xfe, 0 , 2, "Coin B" },
|
||||
{0x11, 0x01, 0x0f, 0x03, "1 Coin 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x0d, "1 Coin 2 Credits" },
|
||||
{0 , 0xfe, 0 , 16, "Coin B" },
|
||||
{0x11, 0x01, 0x0f, 0x0f, "4 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x07, "3 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x0b, "2 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x06, "2 Coins / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x0a, "2 Coins / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0x0f, 0x03, "1 Coin / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x02, "1 Coin / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x0c, "1 Coin / 1 Credit + Bonus each 4" },
|
||||
{0x11, 0x01, 0x0f, 0x04, "1 Coin / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0x0f, 0x0d, "1 Coin / 2 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x08, "1 Coin / 2 Credits + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x00, "1 Coin / 2 Credits + Bonus each 4" },
|
||||
{0x11, 0x01, 0x0f, 0x05, "1 Coin / 3 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x09, "1 Coin / 4 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x01, "1 Coin / 5 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x0e, "1 Coin / 6 Credits" },
|
||||
|
||||
{0 , 0xfe, 0 , 2, "Coin A" },
|
||||
{0x11, 0x01, 0xf0, 0x30, "1 Coin 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0xd0, "1 Coin 2 Credits" },
|
||||
{0 , 0xfe, 0 , 16, "Coin A" },
|
||||
{0x11, 0x01, 0xf0, 0xf0, "4 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x70, "3 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0xb0, "2 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x60, "2 Coins / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0xa0, "2 Coins / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0xf0, 0x30, "1 Coin / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x20, "1 Coin / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0xc0, "1 Coin / 1 Credit + Bonus each 4" },
|
||||
{0x11, 0x01, 0xf0, 0x40, "1 Coin / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0xf0, 0xd0, "1 Coin / 2 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x80, "1 Coin / 2 Credits + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0x00, "1 Coin / 2 Credits + Bonus each 4" },
|
||||
{0x11, 0x01, 0xf0, 0x50, "1 Coin / 3 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x90, "1 Coin / 4 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x10, "1 Coin / 5 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0xe0, "1 Coin / 6 Credits" },
|
||||
};
|
||||
|
||||
STDDIPINFO(Zaxxon)
|
||||
|
@ -282,13 +338,41 @@ static struct BurnDIPInfo SzaxxonDIPList[]=
|
|||
{0x10, 0x01, 0x04, 0x04, "Normal" },
|
||||
{0x10, 0x01, 0x04, 0x00, "Hard" },
|
||||
|
||||
{0 , 0xfe, 0 , 2, "Coin B" },
|
||||
{0x11, 0x01, 0x0f, 0x03, "1 Coin 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x0d, "1 Coin 2 Credits" },
|
||||
{0 , 0xfe, 0 , 16, "Coin B" },
|
||||
{0x11, 0x01, 0x0f, 0x0f, "4 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x07, "3 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x0b, "2 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x06, "2 Coins / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x0a, "2 Coins / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0x0f, 0x03, "1 Coin / 1 Credit" },
|
||||
{0x11, 0x01, 0x0f, 0x02, "1 Coin / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x0c, "1 Coin / 1 Credit + Bonus each 4" },
|
||||
{0x11, 0x01, 0x0f, 0x04, "1 Coin / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0x0f, 0x0d, "1 Coin / 2 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x08, "1 Coin / 2 Credits + Bonus each 5" },
|
||||
{0x11, 0x01, 0x0f, 0x00, "1 Coin / 2 Credits + Bonus each 4" },
|
||||
{0x11, 0x01, 0x0f, 0x05, "1 Coin / 3 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x09, "1 Coin / 4 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x01, "1 Coin / 5 Credits" },
|
||||
{0x11, 0x01, 0x0f, 0x0e, "1 Coin / 6 Credits" },
|
||||
|
||||
{0 , 0xfe, 0 , 2, "Coin A" },
|
||||
{0x11, 0x01, 0xf0, 0x30, "1 Coin 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0xd0, "1 Coin 2 Credits" },
|
||||
{0 , 0xfe, 0 , 16, "Coin A" },
|
||||
{0x11, 0x01, 0xf0, 0xf0, "4 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x70, "3 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0xb0, "2 Coins / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x60, "2 Coins / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0xa0, "2 Coins / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0xf0, 0x30, "1 Coin / 1 Credit" },
|
||||
{0x11, 0x01, 0xf0, 0x20, "1 Coin / 1 Credit + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0xc0, "1 Coin / 1 Credit + Bonus each 4" },
|
||||
{0x11, 0x01, 0xf0, 0x40, "1 Coin / 1 Credit + Bonus each 2" },
|
||||
{0x11, 0x01, 0xf0, 0xd0, "1 Coin / 2 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x80, "1 Coin / 2 Credits + Bonus each 5" },
|
||||
{0x11, 0x01, 0xf0, 0x00, "1 Coin / 2 Credits + Bonus each 4" },
|
||||
{0x11, 0x01, 0xf0, 0x50, "1 Coin / 3 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x90, "1 Coin / 4 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0x10, "1 Coin / 5 Credits" },
|
||||
{0x11, 0x01, 0xf0, 0xe0, "1 Coin / 6 Credits" },
|
||||
};
|
||||
|
||||
STDDIPINFO(Szaxxon)
|
||||
|
@ -436,6 +520,7 @@ static void CongoPPIWriteC(UINT8 data)
|
|||
|
||||
static UINT8 __fastcall zaxxon_read(UINT16 address)
|
||||
{
|
||||
UINT16 oa = address;
|
||||
// address mirroring
|
||||
if ((address & 0xe700) == 0xc000) address &= ~0x18f8;
|
||||
if ((address & 0xe700) == 0xc100) address &= ~0x18ff;
|
||||
|
@ -470,7 +555,7 @@ static UINT8 __fastcall zaxxon_read(UINT16 address)
|
|||
|
||||
static void zaxxon_coin_inserted(UINT8 param)
|
||||
{
|
||||
if (zaxxon_coin_last[param] != (param == 0) ? DrvJoy4[2] : DrvJoy4[param-1])
|
||||
if (zaxxon_coin_last[param] != DrvJoy4[param])
|
||||
{
|
||||
zaxxon_coin_status[param] = zaxxon_coin_enable[param];
|
||||
}
|
||||
|
@ -549,6 +634,7 @@ static void __fastcall zaxxon_write(UINT16 address, UINT8 data)
|
|||
|
||||
static UINT8 __fastcall congo_read(UINT16 address)
|
||||
{
|
||||
UINT16 oa = address;
|
||||
// address mirroring
|
||||
if ((address & 0xe008) == 0xc000) address &= ~0x1fc4;
|
||||
if ((address & 0xe008) == 0xc008) address &= ~0x1fc7;
|
||||
|
@ -1261,18 +1347,18 @@ static INT32 DrvDraw()
|
|||
static void zaxxon_coin_lockout()
|
||||
{
|
||||
// soft-coin lockout - prevents 30 coins per 1 insert-coin keypress.
|
||||
if (DrvJoy4[2]) // service pressed
|
||||
if (DrvJoy4[0]) // a coin inserted
|
||||
zaxxon_coin_inserted(0);
|
||||
if (DrvJoy4[0]) // coin pressed
|
||||
if (DrvJoy4[1]) // b coin inserted
|
||||
zaxxon_coin_inserted(1);
|
||||
if (DrvJoy4[1]) // coin pressed
|
||||
if (DrvJoy4[2]) // service pressed
|
||||
zaxxon_coin_inserted(2);
|
||||
DrvInputs[2] += (zaxxon_coin_r(0)) ? 0x20 : 0;
|
||||
DrvInputs[2] += (zaxxon_coin_r(1)) ? 0x40 : 0;
|
||||
DrvInputs[2] += (zaxxon_coin_r(2)) ? 0x80 : 0;
|
||||
zaxxon_coin_last[0] = DrvJoy4[2];
|
||||
zaxxon_coin_last[1] = DrvJoy4[0];
|
||||
zaxxon_coin_last[2] = DrvJoy4[1];
|
||||
zaxxon_coin_last[0] = DrvJoy4[0];
|
||||
zaxxon_coin_last[1] = DrvJoy4[1];
|
||||
zaxxon_coin_last[2] = DrvJoy4[2];
|
||||
// end soft-coin lockout
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue