summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/bootleg.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nes/bootleg.h')
-rw-r--r--src/devices/bus/nes/bootleg.h201
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