summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/vegas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/vegas.cpp')
-rw-r--r--src/mame/drivers/vegas.cpp310
1 files changed, 212 insertions, 98 deletions
diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp
index f641b79d9ba..35a5829360f 100644
--- a/src/mame/drivers/vegas.cpp
+++ b/src/mame/drivers/vegas.cpp
@@ -324,11 +324,13 @@ public:
m_uart1(*this, "uart1"),
m_uart2(*this, "uart2"),
m_io_analog(*this, "AN.%u", 0U),
+ m_io_8way(*this, "8WAY_P%u", 1U),
m_io_49way_x(*this, "49WAYX_P%u", 1U),
m_io_49way_y(*this, "49WAYY_P%u", 1U),
m_io_keypad(*this, "KEYPAD"),
m_io_gearshift(*this, "GEAR"),
m_io_system(*this, "SYSTEM"),
+ m_io_dips(*this, "DIPS"),
m_wheel_driver(*this, "wheel"),
m_lamps(*this, "lamp%u", 0U),
m_a2d_shift(0)
@@ -369,6 +371,8 @@ public:
void init_sf2049se();
DECLARE_CUSTOM_INPUT_MEMBER(i40_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(gauntleg_p12_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(gauntleg_p34_r);
DECLARE_CUSTOM_INPUT_MEMBER(keypad_r);
DECLARE_CUSTOM_INPUT_MEMBER(gearshift_r);
@@ -383,15 +387,22 @@ private:
required_device<midway_ioasic_device> m_ioasic;
optional_device<ns16550_device> m_uart1;
optional_device<ns16550_device> m_uart2;
+
optional_ioport_array<8> m_io_analog;
+ optional_ioport_array<4> m_io_8way;
+
optional_ioport_array<4> m_io_49way_x;
optional_ioport_array<4> m_io_49way_y;
+
optional_ioport m_io_keypad;
optional_ioport m_io_gearshift;
optional_ioport m_io_system;
+ optional_ioport m_io_dips;
output_finder<1> m_wheel_driver;
output_finder<16> m_lamps;
+ static const uint8_t translate49[7];
+
int m_a2d_shift;
int8_t m_wheel_force;
int m_wheel_offset;
@@ -735,26 +746,39 @@ uint8_t vegas_state::sio_r(offs_t offset)
break;
case 1:
// Gun 1 H High
+ // P1 magic = ~0x10;
+ // P1 fight = ~0x20;
+ result = ~m_io_8way[0]->read() & 0x30;
+ //result = 0x70;
break;
case 2:
// Gun 1 V Low
break;
case 3:
// Gun 1 V High
+ // P1 run = 0x08
+ // P2 magic = 0x10
+ // P2 fight = 0x20
+ // P2 run = 0x40
+ result = (((m_io_8way[0]->read() & 0x40) >> 3) | ((m_io_8way[1]->read() & 0x7000) >> 8));
+ //result = ~0x7c;
break;
case 4:
// Gun 2 H Low
break;
case 5:
// Gun 2 H High
+ result = ~m_io_8way[2]->read() & 0x30;
break;
case 6:
// Gun 2 V Low
break;
case 7:
// Gun 2 V High
+ result = (((m_io_8way[2]->read() & 0x40) >> 3) | ((m_io_8way[3]->read() & 0x7000) >> 8));
break;
}
+ logerror("%s: sio_r: offset: %08x index: %d result: %02X\n", machine().describe_context(), offset, index, result);
break;
}
}
@@ -1037,6 +1061,11 @@ void vegas_state::mpsreset_w(offs_t offset, uint8_t data)
}
/*************************************
+* 49 Way translation matrix
+*************************************/
+const uint8_t vegas_state::translate49[7] = { 0x8, 0xc, 0xe, 0xf, 0x3, 0x1, 0x0 };
+
+/*************************************
* Optical 49 Way Joystick I40 Board
*************************************/
void vegas_state::i40_w(uint32_t data)
@@ -1048,48 +1077,86 @@ void vegas_state::i40_w(uint32_t data)
CUSTOM_INPUT_MEMBER(vegas_state::i40_r)
{
- static const uint8_t translate49[7] = { 0x8, 0xc, 0xe, 0xf, 0x3, 0x1, 0x0 };
- int index = m_i40_data & 0xf;
- uint8_t data = 0;
- switch (index) {
- case 0:
- data = translate49[m_io_49way_x[0]->read() >> 4];
- break;
- case 1:
- data = translate49[m_io_49way_y[0]->read() >> 4];
- break;
- case 2:
- data = translate49[m_io_49way_x[1]->read() >> 4];
- break;
- case 3:
- data = translate49[m_io_49way_y[1]->read() >> 4];
- break;
- case 4:
- data = translate49[m_io_49way_x[2]->read() >> 4];
- break;
- case 5:
- data = translate49[m_io_49way_y[2]->read() >> 4];
- break;
- case 6:
- data = translate49[m_io_49way_x[3]->read() >> 4];
- break;
- case 7:
- data = translate49[m_io_49way_y[3]->read() >> 4];
- break;
- case 10:
- case 11:
- case 12:
- // I40 Detection
- data = ~index & 0xf;
- break;
- default:
- //logerror("%s: i40_r: select: %x index: %d data: %x\n", machine().describe_context(), m_i40_data, index, data);
- break;
+ if (m_io_dips->read() & 0x100) {
+ // 8 way joysticks
+ return m_io_8way[3]->read();
+ }
+ else {
+ // 49 way joysticks via i40 adapter board
+ int index = m_i40_data & 0xf;
+ uint8_t data = 0;
+ switch (index) {
+ case 0:
+ data = translate49[m_io_49way_x[0]->read() >> 4];
+ break;
+ case 1:
+ data = translate49[m_io_49way_y[0]->read() >> 4];
+ break;
+ case 2:
+ data = translate49[m_io_49way_x[1]->read() >> 4];
+ break;
+ case 3:
+ data = translate49[m_io_49way_y[1]->read() >> 4];
+ break;
+ case 4:
+ data = translate49[m_io_49way_x[2]->read() >> 4];
+ break;
+ case 5:
+ data = translate49[m_io_49way_y[2]->read() >> 4];
+ break;
+ case 6:
+ data = translate49[m_io_49way_x[3]->read() >> 4];
+ break;
+ case 7:
+ data = translate49[m_io_49way_y[3]->read() >> 4];
+ break;
+ case 10:
+ case 11:
+ case 12:
+ // I40 Detection
+ data = ~index & 0xf;
+ break;
+ default:
+ //logerror("%s: i40_r: select: %x index: %d data: %x\n", machine().describe_context(), m_i40_data, index, data);
+ break;
+ }
+ //if (m_i40_data & 0x1000)
+ // printf("%s: i40_r: select: %x index: %d data: %x\n", machine().describe_context().c_str(), m_i40_data, index, data);
+ //m_i40_data &= ~0x1000;
+ return data;
+ }
+}
+
+/*************************************
+* Gauntlet Player 1 & 2 control read
+*************************************/
+CUSTOM_INPUT_MEMBER(vegas_state::gauntleg_p12_r)
+{
+ if (m_io_dips->read() & 0x2000) {
+ // 8 way joysticks
+ return m_io_8way[1]->read() | m_io_8way[0]->read();
+ }
+ else {
+ // 49 way joysticks
+ return (translate49[m_io_49way_x[1]->read() >> 4] << 12) | (translate49[m_io_49way_y[1]->read() >> 4] << 8) |
+ (translate49[m_io_49way_x[0]->read() >> 4] << 4) | (translate49[m_io_49way_y[0]->read() >> 4] << 0);
+ }
+}
+
+/*************************************
+* Gauntlet Player 3 & 4 control read
+*************************************/
+CUSTOM_INPUT_MEMBER(vegas_state::gauntleg_p34_r)
+{
+ if (m_io_dips->read() & 0x2000) {
+ // 8 way joysticks
+ return m_io_8way[3]->read() | m_io_8way[2]->read();
+ }
+ else {
+ // 49 way joysticks
+ return (translate49[m_io_49way_x[3]->read() >> 4] << 12) | (translate49[m_io_49way_y[3]->read() >> 4] << 8) |
+ (translate49[m_io_49way_x[2]->read() >> 4] << 4) | (translate49[m_io_49way_y[2]->read() >> 4] << 0);
}
- //if (m_i40_data & 0x1000)
- // printf("%s: i40_r: select: %x index: %d data: %x\n", machine().describe_context().c_str(), m_i40_data, index, data);
- //m_i40_data &= ~0x1000;
- return data;
}
/*************************************
@@ -1229,8 +1296,8 @@ static INPUT_PORTS_START( vegas_common )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN )
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP )
PORT_BIT( 0x6000, IP_ACTIVE_LOW, IPT_UNUSED )
@@ -1244,7 +1311,7 @@ static INPUT_PORTS_START( vegas_common )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
@@ -1252,10 +1319,25 @@ static INPUT_PORTS_START( vegas_common )
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
PORT_START("IN2")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3)
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4)
PORT_START("AN.0") PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
PORT_START("AN.1") PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
@@ -1268,33 +1350,6 @@ static INPUT_PORTS_START( vegas_common )
INPUT_PORTS_END
-static INPUT_PORTS_START( vegas_4p )
- PORT_INCLUDE(vegas_common)
-
- PORT_MODIFY("SYSTEM")
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 )
-
- PORT_MODIFY("IN2")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) PORT_8WAY
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) PORT_8WAY
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) PORT_8WAY
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) PORT_8WAY
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) PORT_8WAY
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) PORT_8WAY
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_8WAY
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_8WAY
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
-
-INPUT_PORTS_END
-
static INPUT_PORTS_START( vegas_analog )
PORT_INCLUDE(vegas_common)
@@ -1311,7 +1366,7 @@ INPUT_PORTS_END
*************************************/
static INPUT_PORTS_START( gauntleg )
- PORT_INCLUDE(vegas_4p)
+ PORT_INCLUDE(vegas_common)
PORT_MODIFY("DIPS")
PORT_DIPNAME( 0x0001, 0x0001, "PM Dump" )
@@ -1343,20 +1398,74 @@ static INPUT_PORTS_START( gauntleg )
PORT_DIPSETTING( 0x0000, "VGA Res 640x480" ) //VGA res not supported for gauntleg
PORT_MODIFY("IN1")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Fight")
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Magic")
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Turbo")
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fight")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Magic")
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Fight")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(vegas_state, gauntleg_p12_r)
PORT_MODIFY("IN2")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) PORT_NAME("P3 Fight")
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_NAME("P3 Magic")
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) PORT_NAME("P3 Turbo")
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME("P4 Fight")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_NAME("P4 Magic")
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_NAME("P4 Turbo")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(vegas_state, gauntleg_p34_r)
+
+ PORT_START("8WAY_P1")
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Magic")
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Fight")
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Turbo")
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("8WAY_P2")
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Magic")
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Fight")
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Turbo")
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("8WAY_P3")
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) PORT_8WAY
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(3) PORT_NAME("P3 Magic")
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_NAME("P3 Fight")
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(3) PORT_NAME("P3 Turbo")
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("8WAY_P4")
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME("P4 Magic")
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_NAME("P4 Fight")
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_NAME("P4 Turbo")
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("49WAYX_P1")
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
+
+ PORT_START("49WAYY_P1")
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) PORT_REVERSE
+
+ PORT_START("49WAYX_P2")
+ PORT_BIT(0xff, 0x38, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2)
+
+ PORT_START("49WAYY_P2")
+ PORT_BIT(0xff, 0x38, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) PORT_REVERSE
+
+ PORT_START("49WAYX_P3")
+ PORT_BIT(0xff, 0x38, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3)
+
+ PORT_START("49WAYY_P3")
+ PORT_BIT(0xff, 0x38, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3) PORT_REVERSE
+
+ PORT_START("49WAYX_P4")
+ PORT_BIT(0xff, 0x38, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(4)
+
+ PORT_START("49WAYY_P4")
+ PORT_BIT(0xff, 0x38, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(4) PORT_REVERSE
INPUT_PORTS_END
@@ -1379,9 +1488,11 @@ static INPUT_PORTS_START( tenthdeg )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Jab")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Strong")
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Short")
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Jab")
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Strong")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Short")
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("IN2")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("P1 Roundhouse")
@@ -1470,7 +1581,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( nbashowt )
- PORT_INCLUDE(vegas_4p)
+ PORT_INCLUDE(vegas_common)
PORT_MODIFY("DIPS")
PORT_DIPNAME( 0x0001, 0x0000, "Coinage Source" )
@@ -1514,17 +1625,14 @@ static INPUT_PORTS_START( nbashowt )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_MODIFY("IN1")
- PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED) // P1 Joystick
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 A")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 B")
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Turbo")
- PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNUSED) // P2 Joystick
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 A")
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 B")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Turbo")
PORT_MODIFY("IN2")
- PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED) // P3 Joystick
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) PORT_NAME("P3 A")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_NAME("P3 B")
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) PORT_NAME("P3 Turbo")
@@ -1533,29 +1641,35 @@ static INPUT_PORTS_START( nbashowt )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_NAME("P4 B")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_NAME("P4 Turbo")
+ PORT_START("8WAY_P4")
+ PORT_BIT( 0x1, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_8WAY
+ PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_8WAY
+
PORT_START("49WAYX_P1")
- PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
PORT_START("49WAYY_P1")
- PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
PORT_START("49WAYX_P2")
- PORT_BIT(0xff, 0x38, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2)
PORT_START("49WAYY_P2")
- PORT_BIT(0xff, 0x38, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2)
PORT_START("49WAYX_P3")
- PORT_BIT(0xff, 0x38, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3)
PORT_START("49WAYY_P3")
- PORT_BIT(0xff, 0x38, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3)
PORT_START("49WAYX_P4")
- PORT_BIT(0xff, 0x38, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(4)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(4)
PORT_START("49WAYY_P4")
- PORT_BIT(0xff, 0x38, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(4)
+ PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00, 0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(4)
INPUT_PORTS_END