diff options
Diffstat (limited to 'src/mame/drivers/segaxbd.cpp')
-rw-r--r-- | src/mame/drivers/segaxbd.cpp | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/src/mame/drivers/segaxbd.cpp b/src/mame/drivers/segaxbd.cpp index 38aafc5c7ed..7c695f20413 100644 --- a/src/mame/drivers/segaxbd.cpp +++ b/src/mame/drivers/segaxbd.cpp @@ -39,7 +39,7 @@ Royal Ascot (C) Sega 1991 dumped, but very likely incomplete Super Monaco GP (C) Sega 1989 Thunder Blade (C) Sega 1987 -* denotes not dumped. There are also several revisions of the above games not dumper either. +* denotes not dumped. There are also several revisions of the above games not dumped either. Main Board ---------- @@ -283,34 +283,35 @@ segaxbd_state::segaxbd_state(const machine_config &mconfig, const char *tag, dev } segaxbd_state::segaxbd_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, tag, owner, clock), - m_maincpu(*this, "maincpu"), - m_subcpu(*this, "subcpu"), - m_soundcpu(*this, "soundcpu"), - m_soundcpu2(*this, "soundcpu2"), - m_mcu(*this, "mcu"), - m_watchdog(*this, "watchdog"), - m_cmptimer_1(*this, "cmptimer_main"), - m_sprites(*this, "sprites"), - m_segaic16vid(*this, "segaic16vid"), - m_segaic16road(*this, "segaic16road"), - m_soundlatch(*this, "soundlatch"), - m_subram0(*this, "subram0"), - m_road_priority(1), - m_scanline_timer(nullptr), - m_timer_irq_state(0), - m_vblank_irq_state(0), - m_pc_0(0), - m_loffire_sync(nullptr), - m_lastsurv_mux(0), - m_paletteram(*this, "paletteram"), - m_gprider_hack(false), - m_palette_entries(0), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_io0_porta(*this, "IO0PORTA"), - m_adc_ports(*this, "ADC%u", 0), - m_mux_ports(*this, "MUX%u", 0) + : device_t(mconfig, type, tag, owner, clock) + , m_maincpu(*this, "maincpu") + , m_subcpu(*this, "subcpu") + , m_soundcpu(*this, "soundcpu") + , m_soundcpu2(*this, "soundcpu2") + , m_mcu(*this, "mcu") + , m_watchdog(*this, "watchdog") + , m_cmptimer_1(*this, "cmptimer_main") + , m_sprites(*this, "sprites") + , m_segaic16vid(*this, "segaic16vid") + , m_segaic16road(*this, "segaic16road") + , m_soundlatch(*this, "soundlatch") + , m_subram0(*this, "subram0") + , m_road_priority(1) + , m_scanline_timer(nullptr) + , m_timer_irq_state(0) + , m_vblank_irq_state(0) + , m_pc_0(0) + , m_loffire_sync(nullptr) + , m_lastsurv_mux(0) + , m_paletteram(*this, "paletteram") + , m_gprider_hack(false) + , m_palette_entries(0) + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_io0_porta(*this, "IO0PORTA") + , m_adc_ports(*this, "ADC%u", 0) + , m_mux_ports(*this, "MUX%u", 0) + , m_lamp(*this, "lamp%u", 0U) { memset(m_adc_reverse, 0, sizeof(m_adc_reverse)); palette_init(); @@ -322,6 +323,7 @@ void segaxbd_state::device_start() if(!m_segaic16road->started()) throw device_missing_dependencies(); + m_lamp.resolve(); // point globals to allocated memory regions m_segaic16road->segaic16_roadram_0 = reinterpret_cast<uint16_t *>(memshare("roadram")->ptr()); @@ -733,10 +735,10 @@ void segaxbd_state::generic_iochip0_lamps_w(uint8_t data) // d6: danger lamp // in clone aburner, lamps work only in testmode? - machine().output().set_lamp_value(0, (data >> 5) & 0x01); - machine().output().set_lamp_value(1, (data >> 6) & 0x01); - machine().output().set_lamp_value(2, (data >> 1) & 0x01); - machine().output().set_lamp_value(3, (data >> 2) & 0x01); + m_lamp[0] = BIT(data, 5); + m_lamp[1] = BIT(data, 6); + m_lamp[2] = BIT(data, 1); + m_lamp[3] = BIT(data, 2); } |