diff options
Diffstat (limited to 'src/mame/drivers/omegrace.cpp')
-rw-r--r-- | src/mame/drivers/omegrace.cpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/mame/drivers/omegrace.cpp b/src/mame/drivers/omegrace.cpp index fa946231a37..4a9950e1e62 100644 --- a/src/mame/drivers/omegrace.cpp +++ b/src/mame/drivers/omegrace.cpp @@ -233,28 +233,34 @@ class omegrace_state : public driver_device { public: omegrace_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_dvg(*this, "dvg"), - m_soundlatch(*this, "soundlatch") { } - - required_device<cpu_device> m_maincpu; - required_device<cpu_device> m_audiocpu; - required_device<dvg_device> m_dvg; - required_device<generic_latch_8_device> m_soundlatch; + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_audiocpu(*this, "audiocpu") + , m_dvg(*this, "dvg") + , m_soundlatch(*this, "soundlatch") + , m_led(*this, "led%u", 0U) + { } DECLARE_READ8_MEMBER(omegrace_vg_go_r); DECLARE_READ8_MEMBER(omegrace_spinner1_r); DECLARE_WRITE8_MEMBER(omegrace_leds_w); DECLARE_WRITE8_MEMBER(omegrace_soundlatch_w); void init_omegrace(); - virtual void machine_reset() override; void omegrace(machine_config &config); void main_map(address_map &map); void port_map(address_map &map); void sound_map(address_map &map); void sound_port(address_map &map); + +protected: + virtual void machine_start() override { m_led.resolve(); } + virtual void machine_reset() override; + + required_device<cpu_device> m_maincpu; + required_device<cpu_device> m_audiocpu; + required_device<dvg_device> m_dvg; + required_device<generic_latch_8_device> m_soundlatch; + output_finder<4> m_led; }; @@ -337,10 +343,10 @@ WRITE8_MEMBER(omegrace_state::omegrace_leds_w) machine().bookkeeping().coin_counter_w(1,data & 0x02); /* bits 2 to 5 are the start leds (4 and 5 cocktail only) */ - output().set_led_value(0,~data & 0x04); - output().set_led_value(1,~data & 0x08); - output().set_led_value(2,~data & 0x10); - output().set_led_value(3,~data & 0x20); + m_led[0] = BIT(~data, 2); + m_led[1] = BIT(~data, 3); + m_led[2] = BIT(~data, 4); + m_led[3] = BIT(~data, 5); /* bit 6 flips screen (not supported) */ } |