diff options
Diffstat (limited to 'src/mame/includes/vicdual.h')
-rw-r--r-- | src/mame/includes/vicdual.h | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/src/mame/includes/vicdual.h b/src/mame/includes/vicdual.h index 6b7b6a8f75f..1bd6bc1b6c5 100644 --- a/src/mame/includes/vicdual.h +++ b/src/mame/includes/vicdual.h @@ -11,6 +11,8 @@ #include "sound/discrete.h" #include "sound/samples.h" #include "screen.h" +#include "audio/vicdual-97271p.h" +#include "video/vicdual-97269pb.h" class vicdual_state : public driver_device { @@ -58,10 +60,7 @@ public: uint8_t m_coin_status; uint8_t m_palette_bank; - uint8_t m_gradient; uint8_t m_samurai_protection_data; - int m_nsub_coin_counter; - int m_nsub_play_counter; int m_port1State; int m_port2State; int m_psgData; @@ -102,8 +101,6 @@ public: DECLARE_WRITE8_MEMBER(alphaho_io_w); DECLARE_WRITE8_MEMBER(samurai_protection_w); DECLARE_WRITE8_MEMBER(samurai_io_w); - DECLARE_READ8_MEMBER(nsub_io_r); - DECLARE_WRITE8_MEMBER(nsub_io_w); DECLARE_READ8_MEMBER(invinco_io_r); DECLARE_WRITE8_MEMBER(invinco_io_w); @@ -139,14 +136,10 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(fake_lives_r); DECLARE_CUSTOM_INPUT_MEMBER(samurai_protection_r); DECLARE_INPUT_CHANGED_MEMBER(coin_changed); - DECLARE_INPUT_CHANGED_MEMBER(nsub_coin_in); TIMER_DEVICE_CALLBACK_MEMBER(clear_coin_status); - TIMER_DEVICE_CALLBACK_MEMBER(nsub_coin_pulse); DECLARE_MACHINE_START(samurai); - DECLARE_MACHINE_START(nsub); - DECLARE_MACHINE_RESET(nsub); DECLARE_MACHINE_START(frogs_audio); virtual void machine_start() override; @@ -156,4 +149,33 @@ public: uint32_t screen_update_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); int get_vcounter(); int is_cabinet_color(); + virtual pen_t choose_pen(uint8_t x, uint8_t y, pen_t back_pen); +}; + +class nsub_state : public vicdual_state +{ +public: + nsub_state(const machine_config &mconfig, device_type type, const char *tag) + : vicdual_state(mconfig, type, tag), + m_s97269pb(*this,"s97269pb"), + m_s97271p(*this,"s97271p") + { } + + required_device<s97269pb_device> m_s97269pb; + required_device<s97271p_device> m_s97271p; + + int m_nsub_coin_counter; + int m_nsub_play_counter; + + DECLARE_READ8_MEMBER(nsub_io_r); + DECLARE_WRITE8_MEMBER(nsub_io_w); + + DECLARE_INPUT_CHANGED_MEMBER(nsub_coin_in); + + TIMER_DEVICE_CALLBACK_MEMBER(nsub_coin_pulse); + + DECLARE_MACHINE_START(nsub); + DECLARE_MACHINE_RESET(nsub); + + virtual pen_t choose_pen(uint8_t x, uint8_t y, pen_t back_pen); }; |