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