summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ted Green <tedgreen99@protonmail.com>2018-06-28 11:13:02 -0600
committer Ted Green <tedgreen99@protonmail.com>2018-06-28 11:13:31 -0600
commitc97cd6691bd77ead2fe57b6a99ccb3be41c39b7a (patch)
tree88951d14ea2ae900f9d7f768c3c142b09cfb9ee2
parenteb5a8a3dc85b2cb3572687633b07bf93292ead62 (diff)
vegas: Remove runtime tag lookups. (nw)
-rw-r--r--src/mame/drivers/vegas.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp
index eab9280c945..7c796c29b84 100644
--- a/src/mame/drivers/vegas.cpp
+++ b/src/mame/drivers/vegas.cpp
@@ -328,7 +328,12 @@ public:
m_uart0(*this, "uart0"),
m_uart1(*this, "uart1"),
m_uart2(*this, "uart2"),
- m_io_analog(*this, "AN.%u", 0),
+ m_io_analog(*this, "AN.%u", 0U),
+ m_49way_x(*this, "49WAYX_P%u", 1U),
+ m_49way_y(*this, "49WAYY_P%u", 1U),
+ m_keypad(*this, "KEYPAD"),
+ m_gearshift(*this, "GEAR"),
+ m_wheel_driver(*this, "wheel"),
m_lamps(*this, "lamp%u", 0U),
m_a2d_shift(0)
{ }
@@ -344,6 +349,11 @@ public:
optional_device<ns16550_device> m_uart1;
optional_device<ns16550_device> m_uart2;
optional_ioport_array<8> m_io_analog;
+ optional_ioport_array<4> m_49way_x;
+ optional_ioport_array<4> m_49way_y;
+ optional_ioport m_keypad;
+ optional_ioport m_gearshift;
+ output_finder<1> m_wheel_driver;
output_finder<16> m_lamps;
int m_a2d_shift;
@@ -457,6 +467,7 @@ void vegas_state::machine_start()
/* set the fastest DRC options, but strict verification */
m_maincpu->mips3drc_set_options(MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY + MIPS3DRC_FLUSH_PC);
+ m_wheel_driver.resolve();
m_lamps.resolve();
/* register for save states */
@@ -1039,28 +1050,28 @@ CUSTOM_INPUT_MEMBER(vegas_state::i40_r)
uint8_t data = 0;
switch (index) {
case 0:
- data = translate49[ioport("49WAYX_P1")->read() >> 4];
+ data = translate49[m_49way_x[0]->read() >> 4];
break;
case 1:
- data = translate49[ioport("49WAYY_P1")->read() >> 4];
+ data = translate49[m_49way_y[0]->read() >> 4];
break;
case 2:
- data = translate49[ioport("49WAYX_P2")->read() >> 4];
+ data = translate49[m_49way_x[1]->read() >> 4];
break;
case 3:
- data = translate49[ioport("49WAYY_P2")->read() >> 4];
+ data = translate49[m_49way_y[1]->read() >> 4];
break;
case 4:
- data = translate49[ioport("49WAYX_P3")->read() >> 4];
+ data = translate49[m_49way_x[2]->read() >> 4];
break;
case 5:
- data = translate49[ioport("49WAYY_P3")->read() >> 4];
+ data = translate49[m_49way_y[2]->read() >> 4];
break;
case 6:
- data = translate49[ioport("49WAYX_P4")->read() >> 4];
+ data = translate49[m_49way_x[3]->read() >> 4];
break;
case 7:
- data = translate49[ioport("49WAYY_P4")->read() >> 4];
+ data = translate49[m_49way_y[3]->read() >> 4];
break;
case 10:
case 11:
@@ -1124,7 +1135,7 @@ CUSTOM_INPUT_MEMBER(vegas_state::keypad_r)
break;
}
if (row_sel <= 3) {
- uint32_t bits = ioport((const char *)param)->read();
+ uint32_t bits = m_keypad->read();
bits >>= row_sel * 3;
return bits & 0x7;
}
@@ -1140,7 +1151,7 @@ CUSTOM_INPUT_MEMBER(vegas_state::keypad_r)
DECLARE_CUSTOM_INPUT_MEMBER(vegas_state::gearshift_r)
{
// Check for gear change and save gear selection
- uint32_t gear = ioport("GEAR")->read();
+ uint32_t gear = m_gearshift->read();
for (int i = 0; i < 4; i++)
{
if (gear & (1 << i))