diff options
Diffstat (limited to 'src/mame/drivers/gts80.cpp')
-rw-r--r-- | src/mame/drivers/gts80.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mame/drivers/gts80.cpp b/src/mame/drivers/gts80.cpp index 9b7f1a02f9c..5ee2f60b165 100644 --- a/src/mame/drivers/gts80.cpp +++ b/src/mame/drivers/gts80.cpp @@ -38,6 +38,7 @@ public: , m_maincpu(*this, "maincpu") , m_r0_sound(*this, "r0sound") , m_r1_sound(*this, "r1sound") + , m_digits(*this, "digit%u", 0U) { } DECLARE_DRIVER_INIT(gts80); @@ -59,9 +60,11 @@ private: uint8_t m_lamprow; uint8_t m_swrow; virtual void machine_reset() override; + virtual void machine_start() override { m_digits.resolve(); } required_device<cpu_device> m_maincpu; optional_device<gottlieb_sound_r0_device> m_r0_sound; optional_device<gottlieb_sound_r1_device> m_r1_sound; + output_finder<56> m_digits; }; void gts80_state::gts80_map(address_map &map) @@ -306,15 +309,15 @@ WRITE8_MEMBER( gts80_state::port2a_w ) { case 0x10: // player 1&2 if (!BIT(m_segment, 7)) seg2 |= 0x300; // put '1' in the middle - output().set_digit_value(data & 15, seg2); + m_digits[data & 15] = seg2; break; case 0x20: // player 3&4 if (!BIT(m_segment, 7)) seg2 |= 0x300; // put '1' in the middle - output().set_digit_value((data & 15)+20, seg2); + m_digits[(data & 15)+20] = seg2; break; case 0x40: // credits & balls if (!BIT(m_segment, 7)) m_segment = 1; // turn '1' back to normal - output().set_digit_value((data & 15)+40, patterns[m_segment & 15]); + m_digits[(data & 15)+40] = patterns[m_segment & 15]; break; } } |