diff options
author | Aaron Giles <aaron@aarongiles.com> | 2008-08-14 05:17:39 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2008-08-14 05:17:39 +0000 |
commit | 3b76b8e25ec2ad0947c8e9e26a6ffd092a4f99ac (patch) | |
tree | 27fb3f405e03b4a5aa2c50ca4bb8282dd8c93737 /src/mame/drivers/kinst.c | |
parent | 15893eeed0ae869cd2f31a38946ff1318349751d (diff) |
From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Subject: some more input clean-ups
Hi,
attached please find a few patches against u4. These diffs improve
input ports for drivers starting with F->L. In particular: they add
AM_READ_PORT whenever suitable, they make inputs fully 32bit where
needed, they remove indexed input read handlers from INITs, they
replace many read handlers with appropriate CUSTOM_INPUTs.
Additional improvements:
* added dip switches and locations to go2000 (even if they were
partially documented in the source)
* fixed artmagic protection (it used a wrong tag, which probably
I added somewhere in 0.125uX); even if I haven't experienced any
problems due to the bug since the regression now it's fixed
More details on the patches:
* u4_clean01 -> u4_clean07: these are standard changes like the
one I submitted previously (no custom inputs involved)
* u4_custom01 -> u4_custom04: here there are also changes involving
custom inputs (they mainly deal with eeprom reads, but a few were a
bit more interesting); I separated these from the other ones in
case you want to check them more in detail
* itech8.diff: this patch improves ports & their handling in itech8.c.
In particular, it replaces the 'special' handlers with a single
custom input and I would like a confirmation that it was the right
choice in this case.
Patches are independent one from the other and should apply with
no problems. Let me know if this is not the case.
Regards,
Fabio
Diffstat (limited to 'src/mame/drivers/kinst.c')
-rw-r--r-- | src/mame/drivers/kinst.c | 398 |
1 files changed, 204 insertions, 194 deletions
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c index 16c4a0a14fc..36c52c7a07e 100644 --- a/src/mame/drivers/kinst.c +++ b/src/mame/drivers/kinst.c @@ -326,7 +326,7 @@ static WRITE32_DEVICE_HANDLER( kinst_ide_extra_w ) static READ32_HANDLER( kinst_control_r ) { UINT32 result; - static const char *portnames[] = { "P1", "P2", "IN0", "IN1", "DSW" }; + static const char *portnames[] = { "P1", "P2", "VOLUME", "UNUSED", "DSW" }; /* apply shuffling */ offset = control_map[offset / 2]; @@ -335,7 +335,7 @@ static READ32_HANDLER( kinst_control_r ) switch (offset) { case 2: /* $90 -- sound return */ - result = 0xffff0000 | input_port_read(machine, portnames[offset]); + result = input_port_read(machine, portnames[offset]); result &= ~0x0002; if (dcs_control_r() & 0x800) result |= 0x0002; @@ -344,11 +344,11 @@ static READ32_HANDLER( kinst_control_r ) case 0: /* $80 */ case 1: /* $88 */ case 3: /* $98 */ - result = 0xffff0000 | input_port_read(machine, portnames[offset]); + result = input_port_read(machine, portnames[offset]); break; case 4: /* $a0 */ - result = 0xffff0000 | input_port_read(machine, portnames[offset]); + result = input_port_read(machine, portnames[offset]); if (activecpu_get_pc() == 0x802d428) cpu_spinuntil_int(); break; @@ -419,209 +419,219 @@ ADDRESS_MAP_END static INPUT_PORTS_START( kinst ) PORT_START("P1") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE_NO_TOGGLE( 0x1000, IP_ACTIVE_LOW ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* door */ + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_SERVICE_NO_TOGGLE( 0x00001000, IP_ACTIVE_LOW ) + PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_COIN4 ) + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* door */ + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("P2") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BILL1 ) /* bill */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* coin door */ - - PORT_START("IN0") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sound status */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN1") - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) /* verify */ + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BILL1 ) /* bill */ + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* coin door */ + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("VOLUME") + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sound status */ + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_VOLUME_UP ) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) + PORT_BIT( 0x0000fff0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("UNUSED") + PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNUSED ) /* verify */ + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW") - PORT_DIPNAME( 0x0003, 0x0003, "Blood Level" ) - PORT_DIPSETTING( 0x0003, DEF_STR( High )) - PORT_DIPSETTING( 0x0002, DEF_STR( Medium )) - PORT_DIPSETTING( 0x0001, DEF_STR( Low )) - PORT_DIPSETTING( 0x0000, DEF_STR( None )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds )) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0004, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, "Finishing Moves" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0008, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, "Display Warning" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0010, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, "Blood" ) - PORT_DIPSETTING( 0x0020, "Red" ) - PORT_DIPSETTING( 0x0000, "White" ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0080, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0100, 0x0100, "Coinage Source" ) - PORT_DIPSETTING( 0x0100, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "Disk" ) - PORT_DIPNAME( 0x3e00, 0x3e00, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x3e00, "USA-1" ) - PORT_DIPSETTING( 0x3c00, "USA-2" ) - PORT_DIPSETTING( 0x3a00, "USA-3" ) - PORT_DIPSETTING( 0x3800, "USA-4" ) - PORT_DIPSETTING( 0x3400, "USA-9" ) - PORT_DIPSETTING( 0x3200, "USA-10" ) - PORT_DIPSETTING( 0x3600, "USA-ECA" ) - PORT_DIPSETTING( 0x3000, "USA-Free Play" ) - PORT_DIPSETTING( 0x2e00, "German-1" ) - PORT_DIPSETTING( 0x2c00, "German-2" ) - PORT_DIPSETTING( 0x2a00, "German-3" ) - PORT_DIPSETTING( 0x2800, "German-4" ) - PORT_DIPSETTING( 0x2600, "German-ECA" ) - PORT_DIPSETTING( 0x2000, "German-Free Play" ) - PORT_DIPSETTING( 0x1e00, "French-1" ) - PORT_DIPSETTING( 0x1c00, "French-2" ) - PORT_DIPSETTING( 0x1a00, "French-3" ) - PORT_DIPSETTING( 0x1800, "French-4" ) - PORT_DIPSETTING( 0x1600, "French-ECA" ) - PORT_DIPSETTING( 0x1000, "French-Free Play" ) - PORT_DIPNAME( 0x4000, 0x4000, "Coin Counters" ) - PORT_DIPSETTING( 0x4000, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0x8000, 0x8000, "Test Switch" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) + PORT_DIPNAME( 0x00000003, 0x00000003, "Blood Level" ) + PORT_DIPSETTING( 0x00000003, DEF_STR( High )) + PORT_DIPSETTING( 0x00000002, DEF_STR( Medium )) + PORT_DIPSETTING( 0x00000001, DEF_STR( Low )) + PORT_DIPSETTING( 0x00000000, DEF_STR( None )) + PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Demo_Sounds )) + PORT_DIPSETTING( 0x00000000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000004, DEF_STR( On )) + PORT_DIPNAME( 0x00000008, 0x00000008, "Finishing Moves" ) + PORT_DIPSETTING( 0x00000000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000008, DEF_STR( On )) + PORT_DIPNAME( 0x00000010, 0x00000010, "Display Warning" ) + PORT_DIPSETTING( 0x00000000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000010, DEF_STR( On )) + PORT_DIPNAME( 0x00000020, 0x00000020, "Blood" ) + PORT_DIPSETTING( 0x00000020, "Red" ) + PORT_DIPSETTING( 0x00000000, "White" ) + PORT_DIPNAME( 0x00000040, 0x00000040, DEF_STR( Unused )) + PORT_DIPSETTING( 0x00000040, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000000, DEF_STR( On )) + PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unused )) + PORT_DIPSETTING( 0x00000080, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000000, DEF_STR( On )) + PORT_DIPNAME( 0x00000100, 0x00000100, "Coinage Source" ) + PORT_DIPSETTING( 0x00000100, "Dipswitch" ) + PORT_DIPSETTING( 0x00000000, "Disk" ) + PORT_DIPNAME( 0x00003e00, 0x00003e00, DEF_STR( Coinage )) + PORT_DIPSETTING( 0x00003e00, "USA-1" ) + PORT_DIPSETTING( 0x00003c00, "USA-2" ) + PORT_DIPSETTING( 0x00003a00, "USA-3" ) + PORT_DIPSETTING( 0x00003800, "USA-4" ) + PORT_DIPSETTING( 0x00003400, "USA-9" ) + PORT_DIPSETTING( 0x00003200, "USA-10" ) + PORT_DIPSETTING( 0x00003600, "USA-ECA" ) + PORT_DIPSETTING( 0x00003000, "USA-Free Play" ) + PORT_DIPSETTING( 0x00002e00, "German-1" ) + PORT_DIPSETTING( 0x00002c00, "German-2" ) + PORT_DIPSETTING( 0x00002a00, "German-3" ) + PORT_DIPSETTING( 0x00002800, "German-4" ) + PORT_DIPSETTING( 0x00002600, "German-ECA" ) + PORT_DIPSETTING( 0x00002000, "German-Free Play" ) + PORT_DIPSETTING( 0x00001e00, "French-1" ) + PORT_DIPSETTING( 0x00001c00, "French-2" ) + PORT_DIPSETTING( 0x00001a00, "French-3" ) + PORT_DIPSETTING( 0x00001800, "French-4" ) + PORT_DIPSETTING( 0x00001600, "French-ECA" ) + PORT_DIPSETTING( 0x00001000, "French-Free Play" ) + PORT_DIPNAME( 0x00004000, 0x00004000, "Coin Counters" ) + PORT_DIPSETTING( 0x00004000, "1" ) + PORT_DIPSETTING( 0x00000000, "2" ) + PORT_DIPNAME( 0x00008000, 0x00008000, "Test Switch" ) + PORT_DIPSETTING( 0x00008000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000000, DEF_STR( On )) + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( kinst2 ) PORT_START("P1") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE_NO_TOGGLE( 0x1000, IP_ACTIVE_LOW ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* door */ + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_SERVICE_NO_TOGGLE( 0x00001000, IP_ACTIVE_LOW ) + PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_COIN4 ) + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* door */ + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("P2") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BILL1 ) /* bill */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* coin door */ - - PORT_START("IN0") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sound status */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN1") - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) /* verify */ + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BILL1 ) /* bill */ + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* coin door */ + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("VOLUME") + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sound status */ + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_VOLUME_UP ) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) + PORT_BIT( 0x0000fff0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("UNUSED") + PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNUSED ) /* verify */ + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW") - PORT_DIPNAME( 0x0003, 0x0003, "Blood Level" ) - PORT_DIPSETTING( 0x0003, DEF_STR( High )) - PORT_DIPSETTING( 0x0002, DEF_STR( Medium )) - PORT_DIPSETTING( 0x0001, DEF_STR( Low )) - PORT_DIPSETTING( 0x0000, DEF_STR( None )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds )) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0004, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, "Finishing Moves" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0008, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, "Display Warning" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0010, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0020, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0080, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0100, 0x0100, "Coinage Source" ) - PORT_DIPSETTING( 0x0100, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "Disk" ) - PORT_DIPNAME( 0x3e00, 0x3e00, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x3e00, "USA-1" ) - PORT_DIPSETTING( 0x3c00, "USA-2" ) - PORT_DIPSETTING( 0x3a00, "USA-3" ) - PORT_DIPSETTING( 0x3800, "USA-4" ) - PORT_DIPSETTING( 0x3400, "USA-9" ) - PORT_DIPSETTING( 0x3200, "USA-10" ) - PORT_DIPSETTING( 0x3600, "USA-ECA" ) - PORT_DIPSETTING( 0x3000, "USA-Free Play" ) - PORT_DIPSETTING( 0x2e00, "German-1" ) - PORT_DIPSETTING( 0x2c00, "German-2" ) - PORT_DIPSETTING( 0x2a00, "German-3" ) - PORT_DIPSETTING( 0x2800, "German-4" ) - PORT_DIPSETTING( 0x2600, "German-ECA" ) - PORT_DIPSETTING( 0x2000, "German-Free Play" ) - PORT_DIPSETTING( 0x1e00, "French-1" ) - PORT_DIPSETTING( 0x1c00, "French-2" ) - PORT_DIPSETTING( 0x1a00, "French-3" ) - PORT_DIPSETTING( 0x1800, "French-4" ) - PORT_DIPSETTING( 0x1600, "French-ECA" ) - PORT_DIPSETTING( 0x1000, "French-Free Play" ) - PORT_DIPNAME( 0x4000, 0x4000, "Coin Counters" ) - PORT_DIPSETTING( 0x4000, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0x8000, 0x8000, "Test Switch" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) + PORT_DIPNAME( 0x00000003, 0x00000003, "Blood Level" ) + PORT_DIPSETTING( 0x00000003, DEF_STR( High )) + PORT_DIPSETTING( 0x00000002, DEF_STR( Medium )) + PORT_DIPSETTING( 0x00000001, DEF_STR( Low )) + PORT_DIPSETTING( 0x00000000, DEF_STR( None )) + PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Demo_Sounds )) + PORT_DIPSETTING( 0x00000000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000004, DEF_STR( On )) + PORT_DIPNAME( 0x00000008, 0x00000008, "Finishing Moves" ) + PORT_DIPSETTING( 0x00000000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000008, DEF_STR( On )) + PORT_DIPNAME( 0x00000010, 0x00000010, "Display Warning" ) + PORT_DIPSETTING( 0x00000000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000010, DEF_STR( On )) + PORT_DIPNAME( 0x00000020, 0x00000020, DEF_STR( Unused )) + PORT_DIPSETTING( 0x00000020, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000000, DEF_STR( On )) + PORT_DIPNAME( 0x00000040, 0x00000040, DEF_STR( Unused )) + PORT_DIPSETTING( 0x00000040, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000000, DEF_STR( On )) + PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unused )) + PORT_DIPSETTING( 0x00000080, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000000, DEF_STR( On )) + PORT_DIPNAME( 0x00000100, 0x00000100, "Coinage Source" ) + PORT_DIPSETTING( 0x00000100, "Dipswitch" ) + PORT_DIPSETTING( 0x00000000, "Disk" ) + PORT_DIPNAME( 0x00003e00, 0x00003e00, DEF_STR( Coinage )) + PORT_DIPSETTING( 0x00003e00, "USA-1" ) + PORT_DIPSETTING( 0x00003c00, "USA-2" ) + PORT_DIPSETTING( 0x00003a00, "USA-3" ) + PORT_DIPSETTING( 0x00003800, "USA-4" ) + PORT_DIPSETTING( 0x00003400, "USA-9" ) + PORT_DIPSETTING( 0x00003200, "USA-10" ) + PORT_DIPSETTING( 0x00003600, "USA-ECA" ) + PORT_DIPSETTING( 0x00003000, "USA-Free Play" ) + PORT_DIPSETTING( 0x00002e00, "German-1" ) + PORT_DIPSETTING( 0x00002c00, "German-2" ) + PORT_DIPSETTING( 0x00002a00, "German-3" ) + PORT_DIPSETTING( 0x00002800, "German-4" ) + PORT_DIPSETTING( 0x00002600, "German-ECA" ) + PORT_DIPSETTING( 0x00002000, "German-Free Play" ) + PORT_DIPSETTING( 0x00001e00, "French-1" ) + PORT_DIPSETTING( 0x00001c00, "French-2" ) + PORT_DIPSETTING( 0x00001a00, "French-3" ) + PORT_DIPSETTING( 0x00001800, "French-4" ) + PORT_DIPSETTING( 0x00001600, "French-ECA" ) + PORT_DIPSETTING( 0x00001000, "French-Free Play" ) + PORT_DIPNAME( 0x00004000, 0x00004000, "Coin Counters" ) + PORT_DIPSETTING( 0x00004000, "1" ) + PORT_DIPSETTING( 0x00000000, "2" ) + PORT_DIPNAME( 0x00008000, 0x00008000, "Test Switch" ) + PORT_DIPSETTING( 0x00008000, DEF_STR( Off )) + PORT_DIPSETTING( 0x00000000, DEF_STR( On )) + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END |