summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/taito/topspeed.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/taito/topspeed.cpp')
-rw-r--r--src/mame/taito/topspeed.cpp45
1 files changed, 20 insertions, 25 deletions
diff --git a/src/mame/taito/topspeed.cpp b/src/mame/taito/topspeed.cpp
index b3253f3b04b..9f2fb25d657 100644
--- a/src/mame/taito/topspeed.cpp
+++ b/src/mame/taito/topspeed.cpp
@@ -206,12 +206,12 @@ public:
void topspeed(machine_config &config);
- DECLARE_CUSTOM_INPUT_MEMBER(gas_pedal_r);
- DECLARE_CUSTOM_INPUT_MEMBER(brake_pedal_r);
+ ioport_value gas_pedal_r();
+ ioport_value brake_pedal_r();
protected:
- virtual void machine_start() override;
- virtual void machine_reset() override;
+ virtual void machine_start() override ATTR_COLD;
+ virtual void machine_reset() override ATTR_COLD;
private:
required_shared_ptr<u16> m_spritemap;
@@ -267,15 +267,13 @@ private:
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void cpua_map(address_map &map);
- void cpub_map(address_map &map);
- void z80_io(address_map &map);
- void z80_prg(address_map &map);
+ void cpua_map(address_map &map) ATTR_COLD;
+ void cpub_map(address_map &map) ATTR_COLD;
+ void z80_io(address_map &map) ATTR_COLD;
+ void z80_prg(address_map &map) ATTR_COLD;
};
-// video
-
/****************************************************************************
NOTES
@@ -555,8 +553,6 @@ u32 topspeed_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c
}
-// machine
-
/**********************************************************
CPU CONTROL
**********************************************************/
@@ -591,13 +587,13 @@ u8 topspeed_state::input_bypass_r()
}
}
-CUSTOM_INPUT_MEMBER(topspeed_state::gas_pedal_r)
+ioport_value topspeed_state::gas_pedal_r()
{
static constexpr u8 retval[8] = { 0, 1, 3, 2, 6, 7, 5, 4 };
return retval[m_gas->read() & 7];
}
-CUSTOM_INPUT_MEMBER(topspeed_state::brake_pedal_r)
+ioport_value topspeed_state::brake_pedal_r()
{
static constexpr u8 retval[8] = { 0, 1, 3, 2, 6, 7, 5, 4 };
return retval[m_brake->read() & 7];
@@ -858,7 +854,7 @@ static INPUT_PORTS_START( topspeed )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(topspeed_state, brake_pedal_r) PORT_CONDITION("DSWA", 0x03, NOTEQUALS, 0x02)
+ PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(topspeed_state::brake_pedal_r)) PORT_CONDITION("DSWA", 0x03, NOTEQUALS, 0x02)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Brake Switch") PORT_CONDITION("DSWA", 0x03, EQUALS, 0x02)
PORT_START("IN1")
@@ -867,7 +863,7 @@ static INPUT_PORTS_START( topspeed )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Calibrate") // ?
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Shifter") PORT_TOGGLE
- PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(topspeed_state, gas_pedal_r) PORT_CONDITION("DSWA", 0x03, NOTEQUALS, 0x02)
+ PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(topspeed_state::gas_pedal_r)) PORT_CONDITION("DSWA", 0x03, NOTEQUALS, 0x02)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas Switch") PORT_CONDITION("DSWA", 0x03, EQUALS, 0x02)
PORT_START("IN2") // Unused
@@ -997,8 +993,7 @@ void topspeed_state::topspeed(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 8192);
// sound hardware
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
+ SPEAKER(config, "speaker", 2).front();
ym2151_device &ymsnd(YM2151(config, "ymsnd", 16_MHz_XTAL / 4));
ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
@@ -1015,12 +1010,12 @@ void topspeed_state::topspeed(machine_config &config)
m_msm[1]->set_prescaler_selector(msm5205_device::SEX_4B); // Slave mode, 4-bit
m_msm[1]->add_route(ALL_OUTPUTS, "filter3", 1.0);
- FILTER_VOLUME(config, "filter1l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- FILTER_VOLUME(config, "filter1r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+ FILTER_VOLUME(config, "filter1l").add_route(ALL_OUTPUTS, "speaker", 1.0, 0);
+ FILTER_VOLUME(config, "filter1r").add_route(ALL_OUTPUTS, "speaker", 1.0, 1);
- FILTER_VOLUME(config, "filter2").add_route(ALL_OUTPUTS, "lspeaker", 1.0).add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+ FILTER_VOLUME(config, "filter2").add_route(ALL_OUTPUTS, "speaker", 1.0, 0).add_route(ALL_OUTPUTS, "speaker", 1.0, 1);
- FILTER_VOLUME(config, "filter3").add_route(ALL_OUTPUTS, "lspeaker", 1.0).add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+ FILTER_VOLUME(config, "filter3").add_route(ALL_OUTPUTS, "speaker", 1.0, 0).add_route(ALL_OUTPUTS, "speaker", 1.0, 1);
}
@@ -1169,6 +1164,6 @@ ROM_END
} // anonymous namespace
-GAMEL( 1987, topspeed, 0, topspeed, topspeed, topspeed_state, empty_init, ROT0, "Taito Corporation Japan", "Top Speed (World)", MACHINE_SUPPORTS_SAVE, layout_topspeed )
-GAMEL( 1987, topspeedu, topspeed, topspeed, fullthrl, topspeed_state, empty_init, ROT0, "Taito America Corporation (Romstar license)", "Top Speed (US)", MACHINE_SUPPORTS_SAVE, layout_topspeed )
-GAMEL( 1987, fullthrl, topspeed, topspeed, fullthrl, topspeed_state, empty_init, ROT0, "Taito Corporation", "Full Throttle (Japan)", MACHINE_SUPPORTS_SAVE, layout_topspeed )
+GAMEL( 1987, topspeed, 0, topspeed, topspeed, topspeed_state, empty_init, ROT0, "Taito Corporation Japan", "Top Speed (World, rev 1)", MACHINE_SUPPORTS_SAVE, layout_topspeed )
+GAMEL( 1987, topspeedu, topspeed, topspeed, fullthrl, topspeed_state, empty_init, ROT0, "Taito America Corporation (Romstar license)", "Top Speed (US)", MACHINE_SUPPORTS_SAVE, layout_topspeed )
+GAMEL( 1987, fullthrl, topspeed, topspeed, fullthrl, topspeed_state, empty_init, ROT0, "Taito Corporation", "Full Throttle (Japan)", MACHINE_SUPPORTS_SAVE, layout_topspeed )