summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/vrc_clones.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nes/vrc_clones.h')
-rw-r--r--src/devices/bus/nes/vrc_clones.h56
1 files changed, 55 insertions, 1 deletions
diff --git a/src/devices/bus/nes/vrc_clones.h b/src/devices/bus/nes/vrc_clones.h
index 8ad84e629ca..1e479139f9f 100644
--- a/src/devices/bus/nes/vrc_clones.h
+++ b/src/devices/bus/nes/vrc_clones.h
@@ -10,7 +10,7 @@
// ======================> nes_900218_device
-class nes_900218_device : public nes_konami_vrc4_device
+class nes_900218_device : public nes_konami_vrc2_device
{
public:
// construction/destruction
@@ -18,10 +18,35 @@ public:
virtual void write_h(offs_t offset, u8 data) override;
+ virtual void pcb_reset() override;
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+
+private:
+ u16 m_irq_count;
+ int m_irq_enable;
+
+ static const device_timer_id TIMER_IRQ = 0;
+ emu_timer *irq_timer;
+};
+
+
+// ======================> nes_ax40g_device
+
+class nes_ax40g_device : public nes_konami_vrc2_device
+{
+public:
+ // construction/destruction
+ nes_ax40g_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+ virtual void write_h(offs_t offset, u8 data) override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
};
@@ -96,11 +121,40 @@ protected:
};
+// ======================> nes_th21311_device
+
+class nes_th21311_device : public nes_konami_vrc2_device
+{
+public:
+ // construction/destruction
+ nes_th21311_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+ virtual void write_h(offs_t offset, u8 data) override;
+
+ virtual void pcb_reset() override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+
+private:
+ u16 m_irq_count;
+ u8 m_irq_latch;
+ int m_irq_enable;
+
+ static const device_timer_id TIMER_IRQ = 0;
+ emu_timer *irq_timer;
+};
+
+
// device type definition
DECLARE_DEVICE_TYPE(NES_900218, nes_900218_device)
+DECLARE_DEVICE_TYPE(NES_AX40G, nes_ax40g_device)
DECLARE_DEVICE_TYPE(NES_AX5705, nes_ax5705_device)
DECLARE_DEVICE_TYPE(NES_CITYFIGHT, nes_cityfight_device)
DECLARE_DEVICE_TYPE(NES_SHUIGUAN, nes_shuiguan_device)
DECLARE_DEVICE_TYPE(NES_TF1201, nes_tf1201_device)
+DECLARE_DEVICE_TYPE(NES_TH21311, nes_th21311_device)
#endif // MAME_BUS_NES_VRC_CLONES_H