diff options
Diffstat (limited to 'src/devices/bus/nes/bootleg.h')
-rw-r--r-- | src/devices/bus/nes/bootleg.h | 201 |
1 files changed, 119 insertions, 82 deletions
diff --git a/src/devices/bus/nes/bootleg.h b/src/devices/bus/nes/bootleg.h index 5e2457d2fef..a048f0955d4 100644 --- a/src/devices/bus/nes/bootleg.h +++ b/src/devices/bus/nes/bootleg.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_BTL_H -#define __NES_BTL_H +#ifndef MAME_BUS_NES_BOOTLEG_H +#define MAME_BUS_NES_BOOTLEG_H #include "nxrom.h" @@ -14,12 +14,14 @@ public: // construction/destruction nes_ax5705_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_prg(); uint8_t m_mmc_prg_bank[2]; @@ -34,14 +36,15 @@ class nes_sc127_device : public nes_nrom_device public: // construction/destruction nes_sc127_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -55,20 +58,22 @@ class nes_mbaby_device : public nes_nrom_device public: // construction/destruction nes_mbaby_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) 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: + static constexpr device_timer_id TIMER_IRQ = 0; + uint8_t m_latch; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; attotime timer_freq; }; @@ -82,13 +87,15 @@ public: // construction/destruction nes_asn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -102,13 +109,15 @@ public: // construction/destruction nes_smb3p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_h) 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: uint16_t m_irq_count; int m_irq_enable; @@ -125,14 +134,15 @@ class nes_btl_dn_device : public nes_nrom_device public: // construction/destruction nes_btl_dn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count; }; @@ -146,13 +156,15 @@ public: // construction/destruction nes_whirl2706_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -166,9 +178,6 @@ public: // construction/destruction nes_smb2j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; @@ -177,6 +186,11 @@ public: 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: uint16_t m_irq_count; int m_irq_enable; @@ -193,15 +207,16 @@ class nes_smb2ja_device : public nes_nrom_device public: // construction/destruction nes_smb2ja_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) 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: uint16_t m_irq_count; int m_irq_enable; @@ -218,16 +233,17 @@ class nes_smb2jb_device : public nes_nrom_device public: // construction/destruction nes_smb2jb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_ex) 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: uint16_t m_irq_count; int m_irq_enable; @@ -245,13 +261,15 @@ public: // construction/destruction nes_09034a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; }; @@ -265,13 +283,15 @@ public: // construction/destruction nes_tobidase_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -285,8 +305,6 @@ public: // construction/destruction nes_lh32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -294,6 +312,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -307,14 +329,16 @@ public: // construction/destruction nes_lh10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_prg(); uint8_t m_latch; @@ -330,9 +354,6 @@ public: // construction/destruction nes_lh53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override {} @@ -340,6 +361,11 @@ public: 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: uint16_t m_irq_count; int m_irq_enable; @@ -359,8 +385,6 @@ public: // construction/destruction nes_2708_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -368,6 +392,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[2]; }; @@ -380,14 +408,16 @@ public: // nes_ac08_device/destruction nes_ac08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -399,14 +429,15 @@ class nes_unl_bb_device : public nes_nrom_device public: // construction/destruction nes_unl_bb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[2]; }; @@ -419,12 +450,14 @@ public: // construction/destruction nes_mmalee_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; // ======================> nes_shuiguan_device @@ -435,14 +468,16 @@ public: // construction/destruction nes_shuiguan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) 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: uint16_t m_irq_count; int m_irq_enable; @@ -461,37 +496,39 @@ public: // construction/destruction nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; // device type definition -extern const device_type NES_AX5705; -extern const device_type NES_SC127; -extern const device_type NES_MARIOBABY; -extern const device_type NES_ASN; -extern const device_type NES_SMB3PIRATE; -extern const device_type NES_BTL_DNINJA; -extern const device_type NES_WHIRLWIND_2706; -extern const device_type NES_SMB2J; -extern const device_type NES_SMB2JA; -extern const device_type NES_SMB2JB; -extern const device_type NES_09034A; -extern const device_type NES_TOBIDASE; -extern const device_type NES_LH32; -extern const device_type NES_LH10; -extern const device_type NES_LH53; -extern const device_type NES_2708; -extern const device_type NES_AC08; -extern const device_type NES_UNL_BB; -extern const device_type NES_MMALEE; -extern const device_type NES_SHUIGUAN; -extern const device_type NES_RT01; - - -#endif +DECLARE_DEVICE_TYPE(NES_AX5705, nes_ax5705_device) +DECLARE_DEVICE_TYPE(NES_SC127, nes_sc127_device) +DECLARE_DEVICE_TYPE(NES_MARIOBABY, nes_mbaby_device) +DECLARE_DEVICE_TYPE(NES_ASN, nes_asn_device) +DECLARE_DEVICE_TYPE(NES_SMB3PIRATE, nes_smb3p_device) +DECLARE_DEVICE_TYPE(NES_BTL_DNINJA, nes_btl_dn_device) +DECLARE_DEVICE_TYPE(NES_WHIRLWIND_2706, nes_whirl2706_device) +DECLARE_DEVICE_TYPE(NES_SMB2J, nes_smb2j_device) +DECLARE_DEVICE_TYPE(NES_SMB2JA, nes_smb2ja_device) +DECLARE_DEVICE_TYPE(NES_SMB2JB, nes_smb2jb_device) +DECLARE_DEVICE_TYPE(NES_09034A, nes_09034a_device) +DECLARE_DEVICE_TYPE(NES_TOBIDASE, nes_tobidase_device) +DECLARE_DEVICE_TYPE(NES_LH32, nes_lh32_device) +DECLARE_DEVICE_TYPE(NES_LH10, nes_lh10_device) +DECLARE_DEVICE_TYPE(NES_LH53, nes_lh53_device) +DECLARE_DEVICE_TYPE(NES_2708, nes_2708_device) +DECLARE_DEVICE_TYPE(NES_AC08, nes_ac08_device) +DECLARE_DEVICE_TYPE(NES_UNL_BB, nes_unl_bb_device) +DECLARE_DEVICE_TYPE(NES_MMALEE, nes_mmalee_device) +DECLARE_DEVICE_TYPE(NES_SHUIGUAN, nes_shuiguan_device) +DECLARE_DEVICE_TYPE(NES_RT01, nes_rt01_device) + + +#endif // MAME_BUS_NES_BOOTLEG_H |