diff options
Diffstat (limited to 'src/mame/includes/seta2.h')
-rw-r--r-- | src/mame/includes/seta2.h | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/src/mame/includes/seta2.h b/src/mame/includes/seta2.h index 4598d41e043..56f6bf7ef61 100644 --- a/src/mame/includes/seta2.h +++ b/src/mame/includes/seta2.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia +#ifndef MAME_INCLUDES_SETA2_H +#define MAME_INCLUDES_SETA2_H + +#pragma once + #include "machine/tmp68301.h" #include "machine/eepromser.h" @@ -26,7 +31,6 @@ public: m_nvram(*this, "nvram"), m_spriteram(*this, "spriteram", 0), m_tileram(*this, "tileram", 0), - m_rgbram(*this, "rgbram", 0), m_vregs(*this, "vregs", 0), m_funcube_outputs(*this, "funcube_outputs"), m_funcube_leds(*this, "funcube_leds") @@ -45,7 +49,6 @@ public: optional_shared_ptr<uint16_t> m_nvram; optional_shared_ptr<uint16_t> m_spriteram; optional_shared_ptr<uint16_t> m_tileram; - optional_shared_ptr<uint16_t> m_rgbram; optional_shared_ptr<uint16_t> m_vregs; optional_shared_ptr<uint16_t> m_funcube_outputs; optional_shared_ptr<uint16_t> m_funcube_leds; @@ -58,8 +61,6 @@ public: uint64_t m_funcube_coin_start_cycles; uint8_t m_funcube_hopper_motor; - uint16_t m_lamps1, m_lamps2, m_cam; - DECLARE_WRITE16_MEMBER(spriteram16_word_w); DECLARE_READ16_MEMBER(spriteram16_word_r); DECLARE_WRITE16_MEMBER(vregs_w); @@ -94,16 +95,9 @@ public: DECLARE_WRITE16_MEMBER(funcube_outputs_w); DECLARE_READ16_MEMBER(funcube_battery_r); - DECLARE_WRITE16_MEMBER(staraudi_camera_w); - DECLARE_WRITE16_MEMBER(staraudi_lamps1_w); - DECLARE_WRITE16_MEMBER(staraudi_lamps2_w); - DECLARE_READ16_MEMBER(staraudi_tileram_r); - DECLARE_WRITE16_MEMBER(staraudi_tileram_w); - DECLARE_DRIVER_INIT(funcube3); DECLARE_DRIVER_INIT(funcube); DECLARE_DRIVER_INIT(funcube2); - DECLARE_DRIVER_INIT(staraudi); DECLARE_MACHINE_START(mj4simai); DECLARE_MACHINE_START(funcube); @@ -114,15 +108,46 @@ public: DECLARE_VIDEO_START(xoffset); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t staraudi_screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(screen_vblank); void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); - void draw_rgbram(bitmap_ind16 &bitmap); INTERRUPT_GEN_MEMBER(seta2_interrupt); INTERRUPT_GEN_MEMBER(samshoot_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(funcube_interrupt); void funcube_debug_outputs(); +}; + + +class staraudi_state : public seta2_state +{ +public: + staraudi_state(const machine_config &mconfig, device_type type, const char *tag) : + seta2_state(mconfig, type, tag), + m_rgbram(*this, "rgbram", 0) + { + } + static constexpr feature_type unemulated_features() { return feature::CAMERA | feature::PRINTER; } + + DECLARE_WRITE16_MEMBER(staraudi_camera_w); + DECLARE_WRITE16_MEMBER(staraudi_lamps1_w); + DECLARE_WRITE16_MEMBER(staraudi_lamps2_w); + DECLARE_READ16_MEMBER(staraudi_tileram_r); + DECLARE_WRITE16_MEMBER(staraudi_tileram_w); + + uint32_t staraudi_screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + +protected: + virtual void driver_start() override; + void staraudi_debug_outputs(); + +private: + void draw_rgbram(bitmap_ind16 &bitmap); + + required_shared_ptr<uint16_t> m_rgbram; + + uint16_t m_lamps1 = 0, m_lamps2 = 0, m_cam = 0; }; + +#endif // MAME_INCLUDES_SETA2_H |