summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ted Green <tedgreen99@users.noreply.github.com>2020-06-28 09:58:30 -0600
committer Ted Green <tedgreen99@users.noreply.github.com>2020-06-28 10:00:16 -0600
commitf065adb53f05cd5eadb617025294d551ad2c3aa9 (patch)
tree6e4681430eb3ec09ff67feb7f3d2c162ece0d232
parentedc44787829c0ab98ff3ea6ead19ecd00963317f (diff)
MT07340: Fix 8 way and 49 way joystick selection on vegas and seattle drivers
-rw-r--r--src/mame/drivers/seattle.cpp166
-rw-r--r--src/mame/drivers/vegas.cpp310
2 files changed, 355 insertions, 121 deletions
diff --git a/src/mame/drivers/seattle.cpp b/src/mame/drivers/seattle.cpp
index 1461c8c16f9..ebfb8538386 100644
--- a/src/mame/drivers/seattle.cpp
+++ b/src/mame/drivers/seattle.cpp
@@ -288,11 +288,15 @@ public:
m_ethernet(*this, "ethernet"),
m_ioasic(*this, "ioasic"),
m_io_analog(*this, "AN%u", 0U),
+ m_io_p4_8way(*this, "8WAY_P4"),
+ m_io_49way_x(*this, "49WAYX_P%u", 1U),
+ m_io_49way_y(*this, "49WAYY_P%u", 1U),
m_io_gun_x(*this, "LIGHT%u_X", 0U),
m_io_gun_y(*this, "LIGHT%u_Y", 0U),
m_io_fake(*this, "FAKE"),
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_leds(*this, "led%u", 0U)
@@ -332,6 +336,8 @@ public:
void init_mace();
void init_blitz99();
+ DECLARE_CUSTOM_INPUT_MEMBER(blitz_49way_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(i40_r);
DECLARE_CUSTOM_INPUT_MEMBER(gearshift_r);
private:
@@ -345,15 +351,21 @@ private:
optional_device<smc91c94_device> m_ethernet;
required_device<midway_ioasic_device> m_ioasic;
optional_ioport_array<8> m_io_analog;
+ optional_ioport m_io_p4_8way;
+ optional_ioport_array<4> m_io_49way_x;
+ optional_ioport_array<4> m_io_49way_y;
optional_ioport_array<2> m_io_gun_x;
optional_ioport_array<2> m_io_gun_y;
optional_ioport m_io_fake;
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;
output_finder<24> m_leds;
+ static const uint8_t translate49[7];
+
widget_data m_widget;
uint32_t m_interrupt_enable;
uint32_t m_interrupt_config;
@@ -370,6 +382,7 @@ private:
uint32_t m_cmos_write_enabled;
uint16_t m_output_last;
uint8_t m_output_mode;
+ uint32_t m_i40_data;
uint32_t m_gear;
int8_t m_wheel_force;
int m_wheel_offset;
@@ -401,6 +414,7 @@ private:
void output_w(uint32_t data);
uint32_t widget_r(offs_t offset, uint32_t mem_mask = ~0);
void widget_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void i40_w(uint32_t data);
void wheel_board_w(offs_t offset, uint32_t data);
@@ -427,7 +441,6 @@ private:
void flagstaff_cs3_map(address_map &map);
};
-
/*************************************
*
* Machine init
@@ -460,6 +473,7 @@ void seattle_state::machine_start()
save_item(NAME(m_cmos_write_enabled));
save_item(NAME(m_output_last));
save_item(NAME(m_output_mode));
+ save_item(NAME(m_i40_data));
save_item(NAME(m_gear));
save_item(NAME(m_wheel_calibrated));
@@ -732,6 +746,83 @@ void seattle_state::wheel_board_w(offs_t offset, uint32_t data)
}
/*************************************
+* 49 Way translation matrix
+*************************************/
+const uint8_t seattle_state::translate49[7] = { 0x8, 0xc, 0xe, 0xf, 0x3, 0x1, 0x0 };
+
+/*************************************
+* 2 player 49 Way Joystick on Blitz
+*************************************/
+CUSTOM_INPUT_MEMBER(seattle_state::blitz_49way_r)
+{
+ return (translate49[m_io_49way_y[1]->read() >> 4] << 12) | (translate49[m_io_49way_x[1]->read() >> 4] << 8) |
+ (translate49[m_io_49way_y[0]->read() >> 4] << 4) | (translate49[m_io_49way_x[0]->read() >> 4] << 0);
+}
+
+/*************************************
+* Optical 49 Way Joystick I40 Board
+*************************************/
+void seattle_state::i40_w(uint32_t data)
+{
+ //printf("i40_w: data = %08x\n", data);
+ //logerror("i40_w: data = %08x\n", data);
+ m_i40_data = data;
+}
+
+CUSTOM_INPUT_MEMBER(seattle_state::i40_r)
+{
+ if (m_io_dips->read() & 0x100) {
+ // 8 way joysticks
+ return m_io_p4_8way->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;
+ }
+ logerror("%s: i40_r: select: %x index: %d data: %x\n", machine().describe_context(), m_i40_data, index, data);
+ //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;
+ }
+}
+
+/*************************************
*
* Gearshift (calspeed)
*
@@ -1247,8 +1338,8 @@ static INPUT_PORTS_START( seattle_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 )
@@ -1273,18 +1364,6 @@ static INPUT_PORTS_START( seattle_common )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN2")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
-
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( seattle_4p )
- PORT_INCLUDE(seattle_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_8WAY PORT_PLAYER(3)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
@@ -1328,7 +1407,7 @@ INPUT_PORTS_END
*************************************/
static INPUT_PORTS_START( wg3dh )
- PORT_INCLUDE(seattle_4p)
+ PORT_INCLUDE(seattle_common)
PORT_MODIFY("DIPS")
PORT_DIPNAME( 0x0002, 0x0002, "Boot ROM Test" )
@@ -1547,7 +1626,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( blitz )
- PORT_INCLUDE(seattle_4p)
+ PORT_INCLUDE(seattle_common)
PORT_MODIFY("DIPS")
PORT_DIPNAME( 0x0001, 0x0000, "Coinage Source" )
@@ -1606,12 +1685,19 @@ static INPUT_PORTS_START( blitz )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Turbo")
PORT_MODIFY("IN2")
- 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")
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME("P4 A")
- 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_BIT( 0xffff, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(seattle_state, blitz_49way_r)
+
+ 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_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)
INPUT_PORTS_END
@@ -1663,6 +1749,37 @@ static INPUT_PORTS_START( blitz99 )
PORT_DIPSETTING( 0x2000, "2" )
PORT_DIPSETTING( 0x0000, "4" )
+ PORT_MODIFY("IN2")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ 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")
+ PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_CUSTOM_MEMBER(seattle_state, i40_r)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME("P4 A")
+ 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_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_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)
+
INPUT_PORTS_END
static INPUT_PORTS_START( carnevil )
@@ -2088,6 +2205,7 @@ void seattle_state::blitz(machine_config &config)
m_ioasic->set_upper(444); // or 528
m_ioasic->set_yearoffs(80);
m_ioasic->irq_handler().set(FUNC(seattle_state::ioasic_irq));
+ m_ioasic->aux_output_handler().set(FUNC(seattle_state::i40_w));
}
void seattle_state::blitz99(machine_config &config)
@@ -2102,6 +2220,7 @@ void seattle_state::blitz99(machine_config &config)
m_ioasic->set_upper(481); // or 484 or 520
m_ioasic->set_yearoffs(80);
m_ioasic->irq_handler().set(FUNC(seattle_state::ioasic_irq));
+ m_ioasic->aux_output_handler().set(FUNC(seattle_state::i40_w));
}
void seattle_state::blitz2k(machine_config &config)
@@ -2116,6 +2235,7 @@ void seattle_state::blitz2k(machine_config &config)
m_ioasic->set_upper(494); // or 498
m_ioasic->set_yearoffs(80);
m_ioasic->irq_handler().set(FUNC(seattle_state::ioasic_irq));
+ m_ioasic->aux_output_handler().set(FUNC(seattle_state::i40_w));
}
void seattle_state::carnevil(machine_config &config)
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