summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/victory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/victory.h')
-rw-r--r--src/mame/includes/victory.h101
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