diff options
Diffstat (limited to 'src/mame/includes/victory.h')
-rw-r--r-- | src/mame/includes/victory.h | 101 |
1 files changed, 57 insertions, 44 deletions
diff --git a/src/mame/includes/victory.h b/src/mame/includes/victory.h index c69f17c440e..0db8f44943c 100644 --- a/src/mame/includes/victory.h +++ b/src/mame/includes/victory.h @@ -5,6 +5,10 @@ Victory system ****************************************************************************/ +#ifndef MAME_INCLUDES_VICTORY_H +#define MAME_INCLUDES_VICTORY_H + +#pragma once #include "screen.h" @@ -20,63 +24,27 @@ #define VICTORY_VBSTART (0x100) -/* microcode state */ -struct micro_t -{ - uint16_t i; - uint16_t pc; - uint8_t r,g,b; - uint8_t xp,yp; - uint8_t cmd,cmdlo; - emu_timer * timer; - uint8_t timer_active; - attotime endtime; -}; - class victory_state : public driver_device { public: - victory_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), + victory_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_screen(*this, "screen"), m_palette(*this, "palette"), m_videoram(*this, "videoram"), - m_charram(*this, "charram") { } - - required_device<cpu_device> m_maincpu; - required_device<screen_device> m_screen; - required_device<palette_device> m_palette; + m_charram(*this, "charram") + { + } - required_shared_ptr<uint8_t> m_videoram; - required_shared_ptr<uint8_t> m_charram; - - uint16_t m_paletteram[0x40]; - std::unique_ptr<uint8_t[]> m_bgbitmap; - std::unique_ptr<uint8_t[]> m_fgbitmap; - std::unique_ptr<uint8_t[]> m_rram; - std::unique_ptr<uint8_t[]> m_gram; - std::unique_ptr<uint8_t[]> m_bram; - uint8_t m_vblank_irq; - uint8_t m_fgcoll; - uint8_t m_fgcollx; - uint8_t m_fgcolly; - uint8_t m_bgcoll; - uint8_t m_bgcollx; - uint8_t m_bgcolly; - uint8_t m_scrollx; - uint8_t m_scrolly; - uint8_t m_video_control; - struct micro_t m_micro; - emu_timer *m_bgcoll_irq_timer; + void victory(machine_config &config); +protected: DECLARE_WRITE8_MEMBER(lamp_control_w); DECLARE_WRITE8_MEMBER(paletteram_w); DECLARE_READ8_MEMBER(video_control_r); DECLARE_WRITE8_MEMBER(video_control_w); - virtual void video_start() override; - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_interrupt); @@ -92,9 +60,54 @@ public: int command7(); void update_background(); void update_foreground(); - void victory(machine_config &config); + + virtual void video_start() override; void victory_audio(machine_config &config); void main_io_map(address_map &map); void main_map(address_map &map); void victory_audio_map(address_map &map); + +private: + /* microcode state */ + struct micro_t + { + uint16_t i; + uint16_t pc; + uint8_t r,g,b; + uint8_t xp,yp; + uint8_t cmd,cmdlo; + emu_timer * timer; + uint8_t timer_active; + attotime endtime; + + void count_states(int states); + }; + + required_device<cpu_device> m_maincpu; + required_device<screen_device> m_screen; + required_device<palette_device> m_palette; + + required_shared_ptr<uint8_t> m_videoram; + required_shared_ptr<uint8_t> m_charram; + + uint16_t m_paletteram[0x40]; + std::unique_ptr<uint8_t[]> m_bgbitmap; + std::unique_ptr<uint8_t[]> m_fgbitmap; + std::unique_ptr<uint8_t[]> m_rram; + std::unique_ptr<uint8_t[]> m_gram; + std::unique_ptr<uint8_t[]> m_bram; + uint8_t m_vblank_irq; + uint8_t m_fgcoll; + uint8_t m_fgcollx; + uint8_t m_fgcolly; + uint8_t m_bgcoll; + uint8_t m_bgcollx; + uint8_t m_bgcolly; + uint8_t m_scrollx; + uint8_t m_scrolly; + uint8_t m_video_control; + micro_t m_micro; + emu_timer *m_bgcoll_irq_timer; }; + +#endif // MAME_INCLUDES_VICTORY_H |