summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/kaiser.h
diff options
context:
space:
mode:
author 0kmg <9137159+0kmg@users.noreply.github.com>2021-07-13 04:40:51 -0800
committer GitHub <noreply@github.com>2021-07-13 22:40:51 +1000
commita857cfcdee7244f1053031d31f32a12197ec78f0 (patch)
treed893d798f2d82a0588eed4a873d1562866d76116 /src/devices/bus/nes/kaiser.h
parent099e7a399f4d4c1cb31f2c169b5e8aed21f50ad9 (diff)
bus/nes: Added emulation for two more Kaiser bootlegs, fixed a third. (#8277)
New working software list additions (nes.xml) ----------------------------------- GetsuFumaDen (Kaiser) Meikyuu Jiin Dababa (Asia, FDS conversion, alt PCB) Software list items promoted to working (nes.xml) --------------------------------------- Exciting Basket (Asia, FDS conversion)
Diffstat (limited to 'src/devices/bus/nes/kaiser.h')
-rw-r--r--src/devices/bus/nes/kaiser.h78
1 files changed, 55 insertions, 23 deletions
diff --git a/src/devices/bus/nes/kaiser.h b/src/devices/bus/nes/kaiser.h
index 0b71e59cb51..5dfe730ae91 100644
--- a/src/devices/bus/nes/kaiser.h
+++ b/src/devices/bus/nes/kaiser.h
@@ -96,6 +96,40 @@ public:
};
+// ======================> nes_ks7016_device
+
+class nes_ks7016_device : public nes_nrom_device
+{
+public:
+ // construction/destruction
+ nes_ks7016_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:
+ nes_ks7016_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 mask);
+
+ // device-level overrides
+ virtual void device_start() override;
+
+private:
+ u8 m_latch, m_mask;
+};
+
+
+// ======================> nes_ks7016b_device
+
+class nes_ks7016b_device : public nes_ks7016_device
+{
+public:
+ // construction/destruction
+ nes_ks7016b_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+};
+
+
// ======================> nes_ks7017_device
class nes_ks7017_device : public nes_nrom_device
@@ -127,6 +161,24 @@ private:
};
+// ======================> nes_ks7021a_device
+
+class nes_ks7021a_device : public nes_nrom_device
+{
+public:
+ // construction/destruction
+ nes_ks7021a_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;
+};
+
+
// ======================> nes_ks7010_device
class nes_ks7010_device : public nes_nrom_device
@@ -233,28 +285,6 @@ private:
};
-// ======================> nes_ks7016_device
-
-class nes_ks7016_device : public nes_nrom_device
-{
-public:
- // construction/destruction
- nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- virtual uint8_t read_m(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_reg;
-};
-
-
// ======================> nes_ks7037_device
class nes_ks7037_device : public nes_nrom_device
@@ -308,9 +338,11 @@ private:
DECLARE_DEVICE_TYPE(NES_KS202, nes_ks202_device)
DECLARE_DEVICE_TYPE(NES_KS7010, nes_ks7010_device)
DECLARE_DEVICE_TYPE(NES_KS7012, nes_ks7012_device)
+DECLARE_DEVICE_TYPE(NES_KS7013B, nes_ks7013b_device)
DECLARE_DEVICE_TYPE(NES_KS7016, nes_ks7016_device)
+DECLARE_DEVICE_TYPE(NES_KS7016B, nes_ks7016b_device)
DECLARE_DEVICE_TYPE(NES_KS7017, nes_ks7017_device)
-DECLARE_DEVICE_TYPE(NES_KS7013B, nes_ks7013b_device)
+DECLARE_DEVICE_TYPE(NES_KS7021A, nes_ks7021a_device)
DECLARE_DEVICE_TYPE(NES_KS7022, nes_ks7022_device)
DECLARE_DEVICE_TYPE(NES_KS7030, nes_ks7030_device)
DECLARE_DEVICE_TYPE(NES_KS7031, nes_ks7031_device)