diff options
Diffstat (limited to 'src/devices/bus/nes/multigame.h')
-rw-r--r-- | src/devices/bus/nes/multigame.h | 294 |
1 files changed, 211 insertions, 83 deletions
diff --git a/src/devices/bus/nes/multigame.h b/src/devices/bus/nes/multigame.h index c4c19f4de7d..e7c401ee3ab 100644 --- a/src/devices/bus/nes/multigame.h +++ b/src/devices/bus/nes/multigame.h @@ -14,15 +14,9 @@ class nes_action52_device : public nes_nrom_device { public: // construction/destruction - nes_action52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + nes_action52_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - virtual void write_h(offs_t offset, uint8_t data) override; - - virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; + virtual void write_h(offs_t offset, u8 data) override; }; @@ -169,10 +163,6 @@ public: virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; }; @@ -206,12 +196,6 @@ public: nes_studyngame_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void write_h(offs_t offset, uint8_t data) override; - - virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; }; @@ -299,10 +283,6 @@ 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; }; @@ -397,15 +377,9 @@ class nes_ntd03_device : public nes_nrom_device { public: // construction/destruction - nes_ntd03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + nes_ntd03_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - virtual void write_h(offs_t offset, uint8_t data) override; - - virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; + virtual void write_h(offs_t offset, u8 data) override; }; @@ -423,6 +397,28 @@ public: }; +// ======================> nes_bmc_ds927_device + +class nes_bmc_ds927_device : public nes_nrom_device +{ +public: + // construction/destruction + nes_bmc_ds927_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + virtual u8 read_h(offs_t offset) override; + virtual void write_h(offs_t offset, u8 data) override; + + virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; + +private: + u8 m_latch, m_mode; +}; + + // ======================> nes_bmc_gka_device class nes_bmc_gka_device : public nes_nrom_device @@ -531,6 +527,42 @@ public: }; +// ======================> nes_bmc_k3071_device + +class nes_bmc_k3071_device : public nes_nrom_device +{ +public: + // construction/destruction + nes_bmc_k3071_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; +}; + + +// ======================> nes_bmc_s009_device + +class nes_bmc_s009_device : public nes_nrom_device +{ +public: + // construction/destruction + nes_bmc_s009_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + virtual void write_m(offs_t offset, u8 data) override; + virtual void write_h(offs_t offset, u8 data) override; + + virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; + +private: + u8 m_reg; +}; + + // ======================> nes_bmc_sa005a_device class nes_bmc_sa005a_device : public nes_nrom_device @@ -545,6 +577,53 @@ public: }; +// ======================> nes_bmc_tf2740_device + +class nes_bmc_tf2740_device : public nes_nrom_device +{ +public: + // construction/destruction + nes_bmc_tf2740_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + virtual u8 read_m(offs_t offset) override; + virtual void write_m(offs_t offset, u8 data) override; + virtual void write_h(offs_t offset, u8 data) override; + + virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; + +private: + void update_chr(); + u8 m_reg[3]; + u8 m_jumper; +}; + + +// ======================> nes_bmc_th2348_device + +class nes_bmc_th2348_device : public nes_nrom_device +{ +public: + // construction/destruction + nes_bmc_th2348_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + virtual void write_l(offs_t offset, u8 data) override; + virtual void write_h(offs_t offset, u8 data) override; + + virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; + +private: + u8 m_latch; +}; + + // ======================> nes_bmc_tj03_device class nes_bmc_tj03_device : public nes_nrom_device @@ -719,10 +798,10 @@ class nes_bmc_64y2k_device : public nes_nrom_device { public: // construction/destruction - nes_bmc_64y2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + nes_bmc_64y2k_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - virtual void write_l(offs_t offset, uint8_t data) override; - virtual void write_h(offs_t offset, uint8_t data) override; + virtual void write_l(offs_t offset, u8 data) override; + virtual void write_h(offs_t offset, u8 data) override; virtual void pcb_reset() override; @@ -731,8 +810,9 @@ protected: virtual void device_start() override; private: - void set_prg(); - uint8_t m_reg[4]; + void update_banks(); + u8 m_reg[4]; + u8 m_reg_mask; }; @@ -764,9 +844,9 @@ class nes_bmc_12in1_device : public nes_nrom_device { public: // construction/destruction - nes_bmc_12in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + nes_bmc_12in1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - virtual void write_h(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, u8 data) override; virtual void pcb_reset() override; @@ -776,7 +856,7 @@ protected: private: void update_banks(); - uint8_t m_reg[3]; + u8 m_reg[4]; }; @@ -827,10 +907,6 @@ public: virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; }; @@ -845,10 +921,6 @@ public: virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; }; @@ -863,10 +935,6 @@ public: virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; }; @@ -1005,43 +1073,15 @@ private: }; -// ======================> nes_bmc_gold150_device - -class nes_bmc_gold150_device : public nes_nrom_device -{ -public: - // construction/destruction - nes_bmc_gold150_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - virtual uint8_t read_h(offs_t offset) override; - virtual void write_h(offs_t offset, uint8_t data) override; - - virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; - -private: - uint8_t m_latch; -}; - - // ======================> nes_bmc_gold260_device class nes_bmc_gold260_device : public nes_nrom_device { public: // construction/destruction - nes_bmc_gold260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - virtual void write_h(offs_t offset, uint8_t data) override; + nes_bmc_gold260_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - virtual void pcb_reset() override; - -protected: - // device-level overrides - virtual void device_start() override; + virtual void write_h(offs_t offset, u8 data) override; }; @@ -1078,13 +1118,14 @@ public: protected: // construction/destruction - nes_bmc_42in1reset_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + nes_bmc_42in1reset_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 mirror_flip); // device-level overrides virtual void device_start() override; private: - u8 m_latch, m_mirror_flip; + u8 m_latch; + const u8 m_mirror_flip; }; @@ -1153,6 +1194,42 @@ private: }; +// ======================> nes_bmc_ctc12in1_device + +class nes_bmc_ctc12in1_device : public nes_vram_protect_device +{ +public: + // construction/destruction + nes_bmc_ctc12in1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + virtual u8 read_m(offs_t offset) override; + virtual void write_h(offs_t offset, u8 data) override; + + virtual void pcb_reset() override; + +protected: + // construction/destruction + nes_bmc_ctc12in1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + + // device-level overrides + virtual void device_start() override; + + u8 m_reg[2]; +}; + + +// ======================> nes_bmc_891227_device + +class nes_bmc_891227_device : public nes_bmc_ctc12in1_device +{ +public: + // construction/destruction + nes_bmc_891227_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + virtual void write_h(offs_t offset, u8 data) override; +}; + + // ======================> nes_bmc_k1029_device class nes_bmc_k1029_device : public nes_vram_protect_device @@ -1162,6 +1239,32 @@ public: nes_bmc_k1029_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); virtual void write_h(offs_t offset, u8 data) override; + +protected: + // construction/destruction + nes_bmc_k1029_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); +}; + + +// ======================> nes_bmc_fam250_device + +class nes_bmc_fam250_device : public nes_bmc_k1029_device +{ +public: + // construction/destruction + nes_bmc_fam250_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + virtual u8 read_m(offs_t offset) override; + virtual void write_h(offs_t offset, u8 data) override; + + virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; + +private: + u8 m_latch, m_reg; }; @@ -1197,6 +1300,23 @@ public: virtual void write_h(offs_t offset, u8 data) override; virtual void pcb_reset() override; + +protected: + // construction/destruction + nes_bmc_th22913_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 vram_prot_bit); + +private: + const u8 m_vram_prot_bit; +}; + + +// ======================> nes_bmc_82ab_device + +class nes_bmc_82ab_device : public nes_bmc_th22913_device +{ +public: + // construction/destruction + nes_bmc_82ab_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; @@ -1220,9 +1340,13 @@ DECLARE_DEVICE_TYPE(NES_BMC_810544C, nes_bmc_810544c_device) DECLARE_DEVICE_TYPE(NES_BMC_830425C, nes_bmc_830425c_device) DECLARE_DEVICE_TYPE(NES_BMC_830928C, nes_bmc_830928c_device) DECLARE_DEVICE_TYPE(NES_BMC_850437C, nes_bmc_850437c_device) +DECLARE_DEVICE_TYPE(NES_BMC_891227, nes_bmc_891227_device) DECLARE_DEVICE_TYPE(NES_BMC_970630C, nes_bmc_970630c_device) DECLARE_DEVICE_TYPE(NES_NTD03, nes_ntd03_device) DECLARE_DEVICE_TYPE(NES_BMC_CTC09, nes_bmc_ctc09_device) +DECLARE_DEVICE_TYPE(NES_BMC_CTC12IN1, nes_bmc_ctc12in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_DS927, nes_bmc_ds927_device) +DECLARE_DEVICE_TYPE(NES_BMC_FAM250, nes_bmc_fam250_device) DECLARE_DEVICE_TYPE(NES_BMC_GKA, nes_bmc_gka_device) DECLARE_DEVICE_TYPE(NES_BMC_GKB, nes_bmc_gkb_device) DECLARE_DEVICE_TYPE(NES_BMC_GKCXIN1, nes_bmc_gkcxin1_device) @@ -1231,7 +1355,11 @@ DECLARE_DEVICE_TYPE(NES_BMC_HP898F, nes_bmc_hp898f_device) DECLARE_DEVICE_TYPE(NES_BMC_K1029, nes_bmc_k1029_device) DECLARE_DEVICE_TYPE(NES_BMC_K3036, nes_bmc_k3036_device) DECLARE_DEVICE_TYPE(NES_BMC_K3046, nes_bmc_k3046_device) +DECLARE_DEVICE_TYPE(NES_BMC_K3071, nes_bmc_k3071_device) +DECLARE_DEVICE_TYPE(NES_BMC_S009, nes_bmc_s009_device) DECLARE_DEVICE_TYPE(NES_BMC_SA005A, nes_bmc_sa005a_device) +DECLARE_DEVICE_TYPE(NES_BMC_TF2740, nes_bmc_tf2740_device) +DECLARE_DEVICE_TYPE(NES_BMC_TH2348, nes_bmc_th2348_device) DECLARE_DEVICE_TYPE(NES_BMC_TJ03, nes_bmc_tj03_device) DECLARE_DEVICE_TYPE(NES_BMC_WS, nes_bmc_ws_device) DECLARE_DEVICE_TYPE(NES_BMC_11160, nes_bmc_11160_device) @@ -1259,12 +1387,12 @@ DECLARE_DEVICE_TYPE(NES_BMC_190IN1, nes_bmc_190in1_device) DECLARE_DEVICE_TYPE(NES_BMC_500IN1, nes_bmc_500in1_device) DECLARE_DEVICE_TYPE(NES_BMC_800IN1, nes_bmc_800in1_device) DECLARE_DEVICE_TYPE(NES_BMC_1200IN1, nes_bmc_1200in1_device) -DECLARE_DEVICE_TYPE(NES_BMC_GOLD150, nes_bmc_gold150_device) DECLARE_DEVICE_TYPE(NES_BMC_GOLD260, nes_bmc_gold260_device) DECLARE_DEVICE_TYPE(NES_BMC_4IN1RESET, nes_bmc_4in1reset_device) DECLARE_DEVICE_TYPE(NES_BMC_42IN1RESET, nes_bmc_42in1reset_device) DECLARE_DEVICE_TYPE(NES_BMC_NC20MB, nes_bmc_nc20mb_device) DECLARE_DEVICE_TYPE(NES_BMC_LC160, nes_bmc_lc160_device) DECLARE_DEVICE_TYPE(NES_BMC_TH22913, nes_bmc_th22913_device) +DECLARE_DEVICE_TYPE(NES_BMC_82AB, nes_bmc_82ab_device) #endif // MAME_BUS_NES_MULTIGAME_H |