summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/segae.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/segae.cpp')
-rw-r--r--src/mame/drivers/segae.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/mame/drivers/segae.cpp b/src/mame/drivers/segae.cpp
index 910645c4968..4197babb7a5 100644
--- a/src/mame/drivers/segae.cpp
+++ b/src/mame/drivers/segae.cpp
@@ -315,12 +315,9 @@ GND 8A 8B GND
class systeme_state : public driver_device
{
-protected:
- virtual void machine_start() override;
-
public:
- systeme_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ systeme_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_vdp1(*this, "vdp1"),
m_vdp2(*this, "vdp2"),
@@ -328,7 +325,9 @@ public:
m_maincpu_region(*this, "maincpu"),
m_bank1(*this, "bank1"),
m_bank0d(*this, "bank0d"),
- m_bank1d(*this, "bank1d") { }
+ m_bank1d(*this, "bank1d"),
+ m_lamp(*this, "lamp0")
+ { }
DECLARE_WRITE8_MEMBER(bank_write);
DECLARE_WRITE8_MEMBER(coin_counters_write);
@@ -353,6 +352,10 @@ public:
void systeme_map(address_map &map);
void vdp1_map(address_map &map);
void vdp2_map(address_map &map);
+
+protected:
+ virtual void machine_start() override;
+
private:
// Devices
required_device<cpu_device> m_maincpu;
@@ -364,6 +367,7 @@ private:
required_memory_bank m_bank1;
optional_memory_bank m_bank0d;
optional_memory_bank m_bank1d;
+ output_finder<> m_lamp;
// Analog input related
uint8_t m_port_select;
@@ -447,12 +451,13 @@ WRITE8_MEMBER(systeme_state::coin_counters_write)
{
machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // only one counter used in most games?
- machine().output().set_lamp_value(0, BIT(data, 2)); // used only by hangonjr?
+ m_lamp = BIT(data, 2); // used only by hangonjr?
}
void systeme_state::machine_start()
{
+ m_lamp.resolve();
membank("vdp1_bank")->configure_entries(0, 2, m_vram[0], 0x4000);
membank("vdp2_bank")->configure_entries(0, 2, m_vram[1], 0x4000);
m_bank1->configure_entries(0, 16, m_maincpu_region->base() + 0x10000, 0x4000);