diff options
Diffstat (limited to 'src/mame/drivers/missile.cpp')
-rw-r--r-- | src/mame/drivers/missile.cpp | 96 |
1 files changed, 51 insertions, 45 deletions
diff --git a/src/mame/drivers/missile.cpp b/src/mame/drivers/missile.cpp index 0d0ea8e9cbe..210f31039bd 100644 --- a/src/mame/drivers/missile.cpp +++ b/src/mame/drivers/missile.cpp @@ -361,47 +361,24 @@ class missile_state : public driver_device { public: missile_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this,"maincpu"), - m_videoram(*this, "videoram"), - m_watchdog(*this, "watchdog"), - m_pokey(*this, "pokey"), - m_in0(*this, "IN0"), - m_in1(*this, "IN1"), - m_r10(*this, "R10"), - m_r8(*this, "R8"), - m_track0_x(*this, "TRACK0_X"), - m_track0_y(*this, "TRACK0_Y"), - m_track1_x(*this, "TRACK1_X"), - m_track1_y(*this, "TRACK1_Y"), - m_screen(*this, "screen"), - m_palette(*this, "palette") + : driver_device(mconfig, type, tag) + , m_maincpu(*this,"maincpu") + , m_videoram(*this, "videoram") + , m_watchdog(*this, "watchdog") + , m_pokey(*this, "pokey") + , m_in0(*this, "IN0") + , m_in1(*this, "IN1") + , m_r10(*this, "R10") + , m_r8(*this, "R8") + , m_track0_x(*this, "TRACK0_X") + , m_track0_y(*this, "TRACK0_Y") + , m_track1_x(*this, "TRACK1_X") + , m_track1_y(*this, "TRACK1_Y") + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_led(*this, "led%u", 0U) { } - required_device<m6502_device> m_maincpu; - required_shared_ptr<uint8_t> m_videoram; - required_device<watchdog_timer_device> m_watchdog; - optional_device<pokey_device> m_pokey; - required_ioport m_in0; - required_ioport m_in1; - required_ioport m_r10; - required_ioport m_r8; - required_ioport m_track0_x; - required_ioport m_track0_y; - required_ioport m_track1_x; - required_ioport m_track1_y; - required_device<screen_device> m_screen; - required_device<palette_device> m_palette; - - const uint8_t *m_mainrom; - const uint8_t *m_writeprom; - emu_timer *m_irq_timer; - emu_timer *m_cpu_timer; - uint8_t m_irq_state; - uint8_t m_ctrld; - uint8_t m_flipscreen; - uint64_t m_madsel_lastcycles; - DECLARE_WRITE8_MEMBER(missile_w); DECLARE_READ8_MEMBER(missile_r); DECLARE_WRITE8_MEMBER(bootleg_w); @@ -409,8 +386,6 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(get_vblank); void init_missilem(); void init_suprmatk(); - virtual void machine_start() override; - virtual void machine_reset() override; uint32_t screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); inline int scanline_to_v(int scanline); @@ -428,6 +403,35 @@ public: void missilea(machine_config &config); void bootleg_main_map(address_map &map); void main_map(address_map &map); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + required_device<m6502_device> m_maincpu; + required_shared_ptr<uint8_t> m_videoram; + required_device<watchdog_timer_device> m_watchdog; + optional_device<pokey_device> m_pokey; + required_ioport m_in0; + required_ioport m_in1; + required_ioport m_r10; + required_ioport m_r8; + required_ioport m_track0_x; + required_ioport m_track0_y; + required_ioport m_track1_x; + required_ioport m_track1_y; + required_device<screen_device> m_screen; + required_device<palette_device> m_palette; + output_finder<2> m_led; + + const uint8_t *m_mainrom; + const uint8_t *m_writeprom; + emu_timer *m_irq_timer; + emu_timer *m_cpu_timer; + uint8_t m_irq_state; + uint8_t m_ctrld; + uint8_t m_flipscreen; + uint64_t m_madsel_lastcycles; }; @@ -529,6 +533,8 @@ TIMER_CALLBACK_MEMBER(missile_state::adjust_cpu_speed) void missile_state::machine_start() { + m_led.resolve(); + /* initialize globals */ m_mainrom = memregion("maincpu")->base(); m_writeprom = memregion("proms")->base(); @@ -742,8 +748,8 @@ WRITE8_MEMBER(missile_state::missile_w) machine().bookkeeping().coin_counter_w(0, data & 0x20); machine().bookkeeping().coin_counter_w(1, data & 0x10); machine().bookkeeping().coin_counter_w(2, data & 0x08); - output().set_led_value(1, ~data & 0x04); - output().set_led_value(0, ~data & 0x02); + m_led[1] = BIT(~data, 2); + m_led[0] = BIT(~data, 1); m_ctrld = data & 1; } @@ -855,8 +861,8 @@ WRITE8_MEMBER(missile_state::bootleg_w) machine().bookkeeping().coin_counter_w(0, data & 0x20); machine().bookkeeping().coin_counter_w(1, data & 0x10); machine().bookkeeping().coin_counter_w(2, data & 0x08); - output().set_led_value(1, ~data & 0x04); - output().set_led_value(0, ~data & 0x02); + m_led[1] = BIT(~data, 2); + m_led[0] = BIT(~data, 1); m_ctrld = data & 1; } |