diff options
Diffstat (limited to 'src/devices/bus/nes/vrc_clones.h')
-rw-r--r-- | src/devices/bus/nes/vrc_clones.h | 56 |
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 |