summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/waixing.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nes/waixing.h')
-rw-r--r--src/devices/bus/nes/waixing.h123
1 files changed, 70 insertions, 53 deletions
diff --git a/src/devices/bus/nes/waixing.h b/src/devices/bus/nes/waixing.h
index dd53d109e73..5488973a14c 100644
--- a/src/devices/bus/nes/waixing.h
+++ b/src/devices/bus/nes/waixing.h
@@ -1,7 +1,9 @@
// license:BSD-3-Clause
// copyright-holders:Fabio Priuli
-#ifndef __NES_WAIXING_H
-#define __NES_WAIXING_H
+#ifndef MAME_BUS_NES_WAIXING_H
+#define MAME_BUS_NES_WAIXING_H
+
+#pragma once
#include "mmc3.h"
@@ -12,11 +14,8 @@ class nes_waixing_a_device : public nes_txrom_device
{
public:
// construction/destruction
- nes_waixing_a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
nes_waixing_a_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_l) override;
virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual DECLARE_WRITE8_MEMBER(waixing_write);
@@ -26,7 +25,13 @@ public:
virtual void pcb_reset() override;
protected:
+ nes_waixing_a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+
void set_mirror(uint8_t nt);
+
uint8_t mapper_ram[0x400];
};
@@ -109,6 +114,7 @@ public:
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
+
private:
virtual void set_prg(int prg_base, int prg_mask) override;
};
@@ -139,14 +145,17 @@ class nes_waixing_h_device : public nes_txrom_device
{
public:
// construction/destruction
- nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
nes_waixing_h_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void chr_cb(int start, int bank, int source) override;
// This PCB does not have 1K of internal RAM, so it's not derived from nes_waixing_a_device!!
+
+protected:
+ nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ // device-level overrides
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -185,13 +194,14 @@ public:
// construction/destruction
nes_waixing_j_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;
+
virtual void set_prg(int prg_base, int prg_mask) override;
uint8_t m_reg[4];
};
@@ -225,8 +235,6 @@ public:
// construction/destruction
nes_waixing_sec_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_l) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -234,6 +242,9 @@ public:
virtual void pcb_reset() override;
protected:
+ // device-level overrides
+ virtual void device_start() override;
+
uint8_t m_reg;
};
@@ -246,14 +257,15 @@ public:
// construction/destruction
nes_waixing_sgz_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;
+
uint16_t m_irq_count, m_irq_count_latch;
int m_irq_enable, m_irq_enable_latch;
@@ -269,13 +281,14 @@ public:
// construction/destruction
nes_waixing_sgzlz_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_l) override;
virtual void pcb_reset() override;
protected:
+ // device-level overrides
+ virtual void device_start() override;
+
uint8_t m_reg[4];
};
@@ -288,13 +301,14 @@ public:
// construction/destruction
nes_waixing_ffv_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_l) override;
virtual void pcb_reset() override;
protected:
+ // device-level overrides
+ virtual void device_start() override;
+
uint8_t m_reg[2];
};
@@ -307,11 +321,13 @@ public:
// construction/destruction
nes_waixing_wxzs_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;
};
@@ -323,11 +339,13 @@ public:
// construction/destruction
nes_waixing_dq8_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;
};
@@ -339,11 +357,13 @@ public:
// construction/destruction
nes_waixing_wxzs2_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;
};
@@ -355,42 +375,39 @@ public:
// construction/destruction
nes_waixing_fs304_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_l) override;
virtual void pcb_reset() override;
protected:
+ // device-level overrides
+ virtual void device_start() override;
+
uint8_t m_reg[4];
};
-
-
-
// device type definition
-extern const device_type NES_WAIXING_A;
-extern const device_type NES_WAIXING_A1;
-extern const device_type NES_WAIXING_B;
-extern const device_type NES_WAIXING_C;
-extern const device_type NES_WAIXING_D;
-extern const device_type NES_WAIXING_E;
-extern const device_type NES_WAIXING_F;
-extern const device_type NES_WAIXING_G;
-extern const device_type NES_WAIXING_H;
-extern const device_type NES_WAIXING_H1;
-extern const device_type NES_WAIXING_I;
-extern const device_type NES_WAIXING_J;
-extern const device_type NES_WAIXING_SH2;
-extern const device_type NES_WAIXING_SEC;
-extern const device_type NES_WAIXING_SGZ;
-extern const device_type NES_WAIXING_SGZLZ;
-extern const device_type NES_WAIXING_FFV;
-extern const device_type NES_WAIXING_WXZS;
-extern const device_type NES_WAIXING_DQ8;
-extern const device_type NES_WAIXING_WXZS2;
-extern const device_type NES_WAIXING_FS304;
-
-
-#endif
+DECLARE_DEVICE_TYPE(NES_WAIXING_A, nes_waixing_a_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_A1, nes_waixing_a1_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_B, nes_waixing_b_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_C, nes_waixing_c_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_D, nes_waixing_d_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_E, nes_waixing_e_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_F, nes_waixing_f_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_G, nes_waixing_g_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_H, nes_waixing_h_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_H1, nes_waixing_h1_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_I, nes_waixing_i_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_J, nes_waixing_j_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_SH2, nes_waixing_sh2_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_SEC, nes_waixing_sec_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_SGZ, nes_waixing_sgz_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_SGZLZ, nes_waixing_sgzlz_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_FFV, nes_waixing_ffv_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_WXZS, nes_waixing_wxzs_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_DQ8, nes_waixing_dq8_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_WXZS2, nes_waixing_wxzs2_device)
+DECLARE_DEVICE_TYPE(NES_WAIXING_FS304, nes_waixing_fs304_device)
+
+#endif // MAME_BUS_NES_WAIXING_H