summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes
diff options
context:
space:
mode:
author andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
committer andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
commitb380514764cf857469bae61c11143a19f79a74c5 (patch)
tree63c8012e262618f08a332da31dd714281aa2c5ed /src/devices/bus/nes
parentc24473ddff715ecec2e258a6eb38960cf8c8e98e (diff)
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/devices/bus/nes')
-rw-r--r--src/devices/bus/nes/2a03pur.cpp4
-rw-r--r--src/devices/bus/nes/2a03pur.h4
-rw-r--r--src/devices/bus/nes/act53.cpp4
-rw-r--r--src/devices/bus/nes/act53.h4
-rw-r--r--src/devices/bus/nes/aladdin.cpp21
-rw-r--r--src/devices/bus/nes/aladdin.h23
-rw-r--r--src/devices/bus/nes/ave.cpp6
-rw-r--r--src/devices/bus/nes/ave.h6
-rw-r--r--src/devices/bus/nes/bandai.cpp40
-rw-r--r--src/devices/bus/nes/bandai.h22
-rw-r--r--src/devices/bus/nes/benshieng.cpp2
-rw-r--r--src/devices/bus/nes/benshieng.h2
-rw-r--r--src/devices/bus/nes/bootleg.cpp98
-rw-r--r--src/devices/bus/nes/bootleg.h98
-rw-r--r--src/devices/bus/nes/camerica.cpp6
-rw-r--r--src/devices/bus/nes/camerica.h8
-rw-r--r--src/devices/bus/nes/cne.cpp8
-rw-r--r--src/devices/bus/nes/cne.h8
-rw-r--r--src/devices/bus/nes/cony.cpp12
-rw-r--r--src/devices/bus/nes/cony.h12
-rw-r--r--src/devices/bus/nes/datach.cpp36
-rw-r--r--src/devices/bus/nes/datach.h24
-rw-r--r--src/devices/bus/nes/discrete.cpp8
-rw-r--r--src/devices/bus/nes/discrete.h8
-rw-r--r--src/devices/bus/nes/disksys.cpp19
-rw-r--r--src/devices/bus/nes/disksys.h12
-rw-r--r--src/devices/bus/nes/ggenie.cpp38
-rw-r--r--src/devices/bus/nes/ggenie.h22
-rw-r--r--src/devices/bus/nes/henggedianzi.cpp8
-rw-r--r--src/devices/bus/nes/henggedianzi.h8
-rw-r--r--src/devices/bus/nes/hes.cpp2
-rw-r--r--src/devices/bus/nes/hes.h2
-rw-r--r--src/devices/bus/nes/hosenkan.cpp2
-rw-r--r--src/devices/bus/nes/hosenkan.h2
-rw-r--r--src/devices/bus/nes/irem.cpp10
-rw-r--r--src/devices/bus/nes/irem.h10
-rw-r--r--src/devices/bus/nes/jaleco.cpp22
-rw-r--r--src/devices/bus/nes/jaleco.h28
-rw-r--r--src/devices/bus/nes/jy.cpp20
-rw-r--r--src/devices/bus/nes/jy.h14
-rw-r--r--src/devices/bus/nes/kaiser.cpp48
-rw-r--r--src/devices/bus/nes/kaiser.h46
-rw-r--r--src/devices/bus/nes/karastudio.cpp23
-rw-r--r--src/devices/bus/nes/karastudio.h25
-rw-r--r--src/devices/bus/nes/konami.cpp50
-rw-r--r--src/devices/bus/nes/konami.h18
-rw-r--r--src/devices/bus/nes/legacy.cpp12
-rw-r--r--src/devices/bus/nes/legacy.h14
-rw-r--r--src/devices/bus/nes/mmc1.cpp24
-rw-r--r--src/devices/bus/nes/mmc1.h18
-rw-r--r--src/devices/bus/nes/mmc2.cpp6
-rw-r--r--src/devices/bus/nes/mmc2.h6
-rw-r--r--src/devices/bus/nes/mmc3.cpp28
-rw-r--r--src/devices/bus/nes/mmc3.h20
-rw-r--r--src/devices/bus/nes/mmc3_clones.cpp202
-rw-r--r--src/devices/bus/nes/mmc3_clones.h112
-rw-r--r--src/devices/bus/nes/mmc5.cpp24
-rw-r--r--src/devices/bus/nes/mmc5.h20
-rw-r--r--src/devices/bus/nes/multigame.cpp128
-rw-r--r--src/devices/bus/nes/multigame.h122
-rw-r--r--src/devices/bus/nes/namcot.cpp44
-rw-r--r--src/devices/bus/nes/namcot.h40
-rw-r--r--src/devices/bus/nes/nanjing.cpp4
-rw-r--r--src/devices/bus/nes/nanjing.h4
-rw-r--r--src/devices/bus/nes/nes_slot.cpp63
-rw-r--r--src/devices/bus/nes/nes_slot.h51
-rw-r--r--src/devices/bus/nes/ntdec.cpp4
-rw-r--r--src/devices/bus/nes/ntdec.h4
-rw-r--r--src/devices/bus/nes/nxrom.cpp35
-rw-r--r--src/devices/bus/nes/nxrom.h28
-rw-r--r--src/devices/bus/nes/pirate.cpp48
-rw-r--r--src/devices/bus/nes/pirate.h46
-rw-r--r--src/devices/bus/nes/pt554.cpp2
-rw-r--r--src/devices/bus/nes/pt554.h2
-rw-r--r--src/devices/bus/nes/racermate.cpp2
-rw-r--r--src/devices/bus/nes/racermate.h2
-rw-r--r--src/devices/bus/nes/rcm.cpp12
-rw-r--r--src/devices/bus/nes/rcm.h14
-rw-r--r--src/devices/bus/nes/rexsoft.cpp8
-rw-r--r--src/devices/bus/nes/rexsoft.h10
-rw-r--r--src/devices/bus/nes/sachen.cpp26
-rw-r--r--src/devices/bus/nes/sachen.h34
-rw-r--r--src/devices/bus/nes/somari.cpp16
-rw-r--r--src/devices/bus/nes/somari.h12
-rw-r--r--src/devices/bus/nes/subor.cpp12
-rw-r--r--src/devices/bus/nes/subor.h10
-rw-r--r--src/devices/bus/nes/sunsoft.cpp30
-rw-r--r--src/devices/bus/nes/sunsoft.h24
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.cpp27
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.h27
-rw-r--r--src/devices/bus/nes/taito.cpp18
-rw-r--r--src/devices/bus/nes/taito.h14
-rw-r--r--src/devices/bus/nes/tengen.cpp8
-rw-r--r--src/devices/bus/nes/tengen.h8
-rw-r--r--src/devices/bus/nes/txc.cpp16
-rw-r--r--src/devices/bus/nes/txc.h16
-rw-r--r--src/devices/bus/nes/waixing.cpp46
-rw-r--r--src/devices/bus/nes/waixing.h36
-rw-r--r--src/devices/bus/nes/zemina.cpp2
-rw-r--r--src/devices/bus/nes/zemina.h2
100 files changed, 1204 insertions, 1232 deletions
diff --git a/src/devices/bus/nes/2a03pur.cpp b/src/devices/bus/nes/2a03pur.cpp
index 87e364b1638..ddb3820770d 100644
--- a/src/devices/bus/nes/2a03pur.cpp
+++ b/src/devices/bus/nes/2a03pur.cpp
@@ -91,7 +91,7 @@ void nes_2a03pur_device::pcb_reset()
This has been assigned to iNES mapper 31.
-------------------------------------------------*/
-void nes_2a03pur_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_2a03pur_device::write_l)
{
LOG_MMC(("2a03 puritans write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -99,7 +99,7 @@ void nes_2a03pur_device::write_l(offs_t offset, uint8_t data)
m_reg[offset & 7] = data & ((m_prg_chunks << 2) - 1);
}
-uint8_t nes_2a03pur_device::read_h(offs_t offset)
+READ8_MEMBER(nes_2a03pur_device::read_h)
{
LOG_MMC(("2a03 puritans read_h, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/2a03pur.h b/src/devices/bus/nes/2a03pur.h
index 970898ff128..2ec647ccc4a 100644
--- a/src/devices/bus/nes/2a03pur.h
+++ b/src/devices/bus/nes/2a03pur.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_2a03pur_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_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/act53.cpp b/src/devices/bus/nes/act53.cpp
index 2a441c36153..f163be268fd 100644
--- a/src/devices/bus/nes/act53.cpp
+++ b/src/devices/bus/nes/act53.cpp
@@ -158,7 +158,7 @@ void nes_action53_device::update_mirr()
}
}
-void nes_action53_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_action53_device::write_l)
{
LOG_MMC(("action 53 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -167,7 +167,7 @@ void nes_action53_device::write_l(offs_t offset, uint8_t data)
}
-void nes_action53_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_action53_device::write_h)
{
LOG_MMC(("action 53 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/act53.h b/src/devices/bus/nes/act53.h
index 8e4b1c3b073..1f299a5a5da 100644
--- a/src/devices/bus/nes/act53.h
+++ b/src/devices/bus/nes/act53.h
@@ -14,8 +14,8 @@ public:
// construction/destruction
nes_action53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/aladdin.cpp b/src/devices/bus/nes/aladdin.cpp
index db57b61ff00..e9d81555a72 100644
--- a/src/devices/bus/nes/aladdin.cpp
+++ b/src/devices/bus/nes/aladdin.cpp
@@ -52,7 +52,7 @@ aladdin_cart_interface::~aladdin_cart_interface()
{
}
-uint8_t aladdin_cart_interface::read(offs_t offset)
+READ8_MEMBER(aladdin_cart_interface::read)
{
if (offset < 0x4000)
return m_rom[(m_lobank * 0x4000) + (offset & 0x3fff)];
@@ -84,10 +84,10 @@ void nes_aladdin_slot_device::device_start()
m_cart = dynamic_cast<aladdin_cart_interface *>(get_card_device());
}
-uint8_t nes_aladdin_slot_device::read(offs_t offset)
+READ8_MEMBER(nes_aladdin_slot_device::read)
{
if (m_cart)
- return m_cart->read(offset);
+ return m_cart->read(space, offset, mem_mask);
return 0xff;
}
@@ -296,19 +296,19 @@ void nes_aladdin_device::pcb_reset()
-------------------------------------------------*/
-uint8_t nes_aladdin_device::read_h(offs_t offset)
+READ8_MEMBER(nes_aladdin_device::read_h)
{
LOG_MMC(("aladdin read_h, offset: %04x\n", offset));
// this shall be the proper code, but it's a bit slower, so we access directly the subcart below
- //return m_subslot->read(offset);
+ //return m_subslot->read(space, offset, mem_mask);
if (m_subslot->m_cart)
- return m_subslot->m_cart->read(offset);
+ return m_subslot->m_cart->read(space, offset, mem_mask);
else // this is "fake" in the sense that we fill CPU space with 0xff if no Aladdin cart is loaded
return hi_access_rom(offset);
}
-void nes_aladdin_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_aladdin_device::write_h)
{
LOG_MMC(("aladdin write_h, offset: %04x, data: %02x\n", offset, data));
m_subslot->write_prg(offset, data);
@@ -325,7 +325,6 @@ static void ade_cart(device_slot_interface &device)
}
-void nes_aladdin_device::device_add_mconfig(machine_config &config)
-{
- NES_ALADDIN_SLOT(config, m_subslot, ade_cart);
-}
+MACHINE_CONFIG_START(nes_aladdin_device::device_add_mconfig)
+ MCFG_ALADDIN_MINICART_ADD("ade_slot", ade_cart)
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/nes/aladdin.h b/src/devices/bus/nes/aladdin.h
index 9014bf6969a..de6725bb9f1 100644
--- a/src/devices/bus/nes/aladdin.h
+++ b/src/devices/bus/nes/aladdin.h
@@ -24,7 +24,7 @@ public:
virtual ~aladdin_cart_interface();
// reading and writing
- virtual uint8_t read(offs_t offset);
+ virtual DECLARE_READ8_MEMBER(read);
uint8_t *get_cart_base() { return m_rom; }
void set_cart_size(uint32_t size) { m_rom_size = size; m_rom_mask = (size / 0x4000) - 1; }
@@ -50,16 +50,6 @@ class nes_aladdin_slot_device : public device_t,
friend class nes_aladdin_device;
public:
// construction/destruction
- template <typename T>
- nes_aladdin_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts)
- : nes_aladdin_slot_device(mconfig, tag, owner, (uint32_t)0)
- {
- option_reset();
- opts(*this);
- set_default_option(nullptr);
- set_fixed(false);
- }
-
nes_aladdin_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~nes_aladdin_slot_device();
@@ -82,7 +72,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- uint8_t read(offs_t offset);
+ virtual DECLARE_READ8_MEMBER(read);
void write_prg(uint32_t offset, uint8_t data) { if (m_cart) m_cart->write_prg(offset, data); }
protected:
@@ -93,6 +83,11 @@ protected:
DECLARE_DEVICE_TYPE(NES_ALADDIN_SLOT, nes_aladdin_slot_device)
+#define MCFG_ALADDIN_MINICART_ADD(_tag, _slot_intf) \
+ MCFG_DEVICE_ADD(_tag, NES_ALADDIN_SLOT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false)
+
+
//----------------------------------
//
// Aladdin Minicart implementation
@@ -160,8 +155,8 @@ public:
// construction/destruction
nes_aladdin_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/ave.cpp b/src/devices/bus/nes/ave.cpp
index 2e93ea17501..823d66e2e57 100644
--- a/src/devices/bus/nes/ave.cpp
+++ b/src/devices/bus/nes/ave.cpp
@@ -122,7 +122,7 @@ void nes_maxi15_device::pcb_reset()
-------------------------------------------------*/
-void nes_nina001_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_nina001_device::write_m)
{
LOG_MMC(("nina-001 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -155,7 +155,7 @@ void nes_nina001_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_nina006_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_nina006_device::write_l)
{
LOG_MMC(("nina-006 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -192,7 +192,7 @@ void nes_maxi15_device::update_banks()
}
}
-uint8_t nes_maxi15_device::read_h(offs_t offset)
+READ8_MEMBER(nes_maxi15_device::read_h)
{
LOG_MMC(("Maxi 15 read_h, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/ave.h b/src/devices/bus/nes/ave.h
index b40d2ed6d9d..5fdd233b3c3 100644
--- a/src/devices/bus/nes/ave.h
+++ b/src/devices/bus/nes/ave.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_nina001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_nina006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_maxi15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_h(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/bandai.cpp b/src/devices/bus/nes/bandai.cpp
index 1dd82f1747d..ff87be980d5 100644
--- a/src/devices/bus/nes/bandai.cpp
+++ b/src/devices/bus/nes/bandai.cpp
@@ -205,7 +205,7 @@ void nes_fjump2_device::pcb_reset()
-------------------------------------------------*/
-void nes_oekakids_device::nt_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_oekakids_device::nt_w)
{
int page = ((offset & 0xc00) >> 10);
@@ -220,7 +220,7 @@ void nes_oekakids_device::nt_w(offs_t offset, uint8_t data)
m_nt_access[page][offset & 0x3ff] = data;
}
-uint8_t nes_oekakids_device::nt_r(offs_t offset)
+READ8_MEMBER(nes_oekakids_device::nt_r)
{
int page = ((offset & 0xc00) >> 10);
@@ -253,7 +253,7 @@ void nes_oekakids_device::ppu_latch(offs_t offset)
#endif
}
-void nes_oekakids_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_oekakids_device::write_h)
{
LOG_MMC(("oeka kids write_h, offset: %04x, data: %02x\n", offset, data));
@@ -308,7 +308,7 @@ void nes_fcg_device::device_timer(emu_timer &timer, device_timer_id id, int para
}
}
-void nes_fcg_device::fcg_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fcg_device::fcg_write)
{
LOG_MMC(("lz93d50_write, offset: %04x, data: %02x\n", offset, data));
@@ -346,12 +346,12 @@ void nes_fcg_device::fcg_write(offs_t offset, uint8_t data)
}
}
-void nes_fcg_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fcg_device::write_m)
{
LOG_MMC(("lz93d50 write_m, offset: %04x, data: %02x\n", offset, data));
if (m_battery.empty() && m_prgram.empty())
- fcg_write(offset & 0x0f, data);
+ fcg_write(space, offset & 0x0f, data, mem_mask);
else if (!m_battery.empty())
m_battery[offset] = data;
else
@@ -361,7 +361,7 @@ void nes_fcg_device::write_m(offs_t offset, uint8_t data)
// FCG board does not access regs in 0x8000-0xffff space!
// only later design lz93d50 (and its variants do)!
-void nes_lz93d50_24c01_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_lz93d50_24c01_device::write_h)
{
LOG_MMC(("lz93d50_24c01 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -373,12 +373,12 @@ void nes_lz93d50_24c01_device::write_h(offs_t offset, uint8_t data)
m_i2c_dir = BIT(data, 7);
break;
default:
- fcg_write(offset & 0x0f, data);
+ fcg_write(space, offset & 0x0f, data, mem_mask);
break;
}
}
-uint8_t nes_lz93d50_24c01_device::read_m(offs_t offset)
+READ8_MEMBER(nes_lz93d50_24c01_device::read_m)
{
LOG_MMC(("lz93d50 EEPROM read, offset: %04x\n", offset));
if (m_i2c_dir)
@@ -391,15 +391,13 @@ uint8_t nes_lz93d50_24c01_device::read_m(offs_t offset)
// SERIAL I2C DEVICE
//-------------------------------------------------
-void nes_lz93d50_24c01_device::device_add_mconfig(machine_config &config)
-{
- I2C_24C01(config, m_i2cmem);
-}
+MACHINE_CONFIG_START(nes_lz93d50_24c01_device::device_add_mconfig)
+ MCFG_24C01_ADD("i2cmem")
+MACHINE_CONFIG_END
-void nes_lz93d50_24c02_device::device_add_mconfig(machine_config &config)
-{
- I2C_24C02(config, m_i2cmem);
-}
+MACHINE_CONFIG_START(nes_lz93d50_24c02_device::device_add_mconfig)
+ MCFG_24C02_ADD("i2cmem")
+MACHINE_CONFIG_END
/*-------------------------------------------------
@@ -430,19 +428,19 @@ void nes_fjump2_device::set_prg()
prg16_cdef(prg_base | 0x0f);
}
-uint8_t nes_fjump2_device::read_m(offs_t offset)
+READ8_MEMBER(nes_fjump2_device::read_m)
{
LOG_MMC(("fjump2 read_m, offset: %04x\n", offset));
return m_battery[offset & (m_battery.size() - 1)];
}
-void nes_fjump2_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fjump2_device::write_m)
{
LOG_MMC(("fjump2 write_m, offset: %04x, data: %02x\n", offset, data));
m_battery[offset & (m_battery.size() - 1)] = data;
}
-void nes_fjump2_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fjump2_device::write_h)
{
LOG_MMC(("fjump2 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -460,7 +458,7 @@ void nes_fjump2_device::write_h(offs_t offset, uint8_t data)
set_prg();
break;
default:
- fcg_write(offset & 0x0f, data);
+ fcg_write(space, offset & 0x0f, data, mem_mask);
break;
}
}
diff --git a/src/devices/bus/nes/bandai.h b/src/devices/bus/nes/bandai.h
index e7cb0a1d0cd..e44ff99de20 100644
--- a/src/devices/bus/nes/bandai.h
+++ b/src/devices/bus/nes/bandai.h
@@ -17,9 +17,9 @@ public:
// construction/destruction
nes_oekakids_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 uint8_t nt_r(offs_t offset) override;
- virtual void nt_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual DECLARE_READ8_MEMBER(nt_r) override;
+ virtual DECLARE_WRITE8_MEMBER(nt_w) override;
virtual void pcb_reset() override;
@@ -46,8 +46,8 @@ public:
nes_fcg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
- void fcg_write(offs_t offset, uint8_t data);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(fcg_write);
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -75,7 +75,7 @@ public:
nes_lz93d50_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override { fcg_write(offset, data); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { fcg_write(space, offset, data, mem_mask); }
protected:
nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@@ -90,8 +90,8 @@ public:
// construction/destruction
nes_lz93d50_24c01_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 DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -131,9 +131,9 @@ public:
// construction/destruction
nes_fjump2_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_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/benshieng.cpp b/src/devices/bus/nes/benshieng.cpp
index 2b3c7818f58..921d7c5b56f 100644
--- a/src/devices/bus/nes/benshieng.cpp
+++ b/src/devices/bus/nes/benshieng.cpp
@@ -86,7 +86,7 @@ void nes_benshieng_device::update_banks()
chr2_6(m_mmc_vrom_bank[3], CHRROM);
}
-void nes_benshieng_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_benshieng_device::write_h)
{
uint8_t helper = (offset & 0xc00) >> 10;
LOG_MMC(("benshieng write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/benshieng.h b/src/devices/bus/nes/benshieng.h
index 599de5a6e9c..c25aba92508 100644
--- a/src/devices/bus/nes/benshieng.h
+++ b/src/devices/bus/nes/benshieng.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_benshieng_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/bootleg.cpp b/src/devices/bus/nes/bootleg.cpp
index d585a8df9de..49cccaa6a3b 100644
--- a/src/devices/bus/nes/bootleg.cpp
+++ b/src/devices/bus/nes/bootleg.cpp
@@ -570,7 +570,7 @@ void nes_ax5705_device::set_prg()
prg8_ab(m_mmc_prg_bank[1]);
}
-void nes_ax5705_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ax5705_device::write_h)
{
uint8_t bank;
LOG_MMC(("ax5705 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -652,7 +652,7 @@ void nes_sc127_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-void nes_sc127_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sc127_device::write_h)
{
LOG_MMC(("sc127 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -715,7 +715,7 @@ void nes_mbaby_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-void nes_mbaby_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_mbaby_device::write_h)
{
LOG_MMC(("Mario Baby write_h, offset: %04x, data: %02x\n", offset, data));
@@ -746,7 +746,7 @@ void nes_mbaby_device::write_h(offs_t offset, uint8_t data)
}
}
-uint8_t nes_mbaby_device::read_m(offs_t offset)
+READ8_MEMBER(nes_mbaby_device::read_m)
{
LOG_MMC(("Mario Baby read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)];
@@ -764,7 +764,7 @@ uint8_t nes_mbaby_device::read_m(offs_t offset)
-------------------------------------------------*/
-void nes_asn_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_asn_device::write_h)
{
LOG_MMC(("Ai Senshi Nicol write_h, offset: %04x, data: %02x\n", offset, data));
@@ -775,7 +775,7 @@ void nes_asn_device::write_h(offs_t offset, uint8_t data)
m_latch = data;
}
-uint8_t nes_asn_device::read_m(offs_t offset)
+READ8_MEMBER(nes_asn_device::read_m)
{
LOG_MMC(("Ai Senshi Nicol read_m, offset: %04x\n", offset));
return m_prg[((m_latch * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -811,7 +811,7 @@ void nes_smb3p_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-void nes_smb3p_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_smb3p_device::write_h)
{
LOG_MMC(("btl_smb3_w, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x0f)
@@ -879,7 +879,7 @@ void nes_btl_dn_device::hblank_irq(int scanline, int vblank, int blanked )
hold_irq_line();
}
-void nes_btl_dn_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_btl_dn_device::write_h)
{
uint8_t bank;
LOG_MMC(("btl_dn write_h, offset: %04x, data: %02x\n", offset, data));
@@ -933,13 +933,13 @@ void nes_btl_dn_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_whirl2706_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_whirl2706_device::write_h)
{
LOG_MMC(("whirl2706 write_h, offset: %04x, data: %02x\n", offset, data));
m_latch = data;
}
-uint8_t nes_whirl2706_device::read_m(offs_t offset)
+READ8_MEMBER(nes_whirl2706_device::read_m)
{
LOG_MMC(("whirl2706 read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000 + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -975,7 +975,7 @@ void nes_smb2j_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-void nes_smb2j_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_smb2j_device::write_l)
{
LOG_MMC(("smb2j write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -984,7 +984,7 @@ void nes_smb2j_device::write_l(offs_t offset, uint8_t data)
m_irq_enable = data & 3; // maybe also m_irq_count = 0?!?
}
-void nes_smb2j_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_smb2j_device::write_h)
{
LOG_MMC(("smb2j write_h, offset: %04x, data: %02x\n", offset, data));
@@ -992,7 +992,7 @@ void nes_smb2j_device::write_h(offs_t offset, uint8_t data)
m_irq_enable = data & 3;
}
-void nes_smb2j_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_smb2j_device::write_ex)
{
LOG_MMC(("smb2j write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -1010,7 +1010,7 @@ void nes_smb2j_device::write_ex(offs_t offset, uint8_t data)
}
}
-uint8_t nes_smb2j_device::read_l(offs_t offset)
+READ8_MEMBER(nes_smb2j_device::read_l)
{
LOG_MMC(("smb2j read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1018,10 +1018,10 @@ uint8_t nes_smb2j_device::read_l(offs_t offset)
if (offset >= 0x1000)
return m_prg[0x10000 + (offset & 0x0fff)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
-uint8_t nes_smb2j_device::read_m(offs_t offset)
+READ8_MEMBER(nes_smb2j_device::read_m)
{
LOG_MMC(("smb2j read_m, offset: %04x\n", offset));
return m_prg[0x4000 + offset];
@@ -1057,7 +1057,7 @@ void nes_smb2ja_device::device_timer(emu_timer &timer, device_timer_id id, int p
}
}
-void nes_smb2ja_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_smb2ja_device::write_h)
{
LOG_MMC(("smb2ja write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1076,7 +1076,7 @@ void nes_smb2ja_device::write_h(offs_t offset, uint8_t data)
}
}
-uint8_t nes_smb2ja_device::read_m(offs_t offset)
+READ8_MEMBER(nes_smb2ja_device::read_m)
{
LOG_MMC(("smb2ja read_m, offset: %04x\n", offset));
return m_prg[(0xfe * 0x2000 + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -1114,7 +1114,7 @@ void nes_smb2jb_device::device_timer(emu_timer &timer, device_timer_id id, int p
}
}
-void nes_smb2jb_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_smb2jb_device::write_l)
{
uint8_t prg;
LOG_MMC(("smb2jb write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1134,14 +1134,14 @@ void nes_smb2jb_device::write_l(offs_t offset, uint8_t data)
}
}
-uint8_t nes_smb2jb_device::read_m(offs_t offset)
+READ8_MEMBER(nes_smb2jb_device::read_m)
{
LOG_MMC(("smb2jb read_m, offset: %04x\n", offset));
return m_prg[((0x0f * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
}
/* This goes to 0x4020-0x403f & 0x40a0-0x40bf */
-void nes_smb2jb_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_smb2jb_device::write_ex)
{
uint8_t prg;
LOG_MMC(("smb2jb write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -1169,7 +1169,7 @@ void nes_smb2jb_device::write_ex(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_09034a_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_09034a_device::write_ex)
{
LOG_MMC(("09-034a write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -1177,7 +1177,7 @@ void nes_09034a_device::write_ex(offs_t offset, uint8_t data)
m_reg = data & 1;
}
-uint8_t nes_09034a_device::read_m(offs_t offset)
+READ8_MEMBER(nes_09034a_device::read_m)
{
LOG_MMC(("09-034a read_m, offset: %04x\n", offset));
// in 0x6000-0x7fff is mapped the 2nd PRG chip which starts after 32K (hence the +4)
@@ -1198,7 +1198,7 @@ uint8_t nes_09034a_device::read_m(offs_t offset)
-------------------------------------------------*/
-void nes_tobidase_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tobidase_device::write_l)
{
LOG_MMC(("tobidase write_h, offset: %04x, data: %02x\n", offset, data));
offset += 0x4100;
@@ -1207,7 +1207,7 @@ void nes_tobidase_device::write_l(offs_t offset, uint8_t data)
m_latch = data & 0x0f;
}
-uint8_t nes_tobidase_device::read_m(offs_t offset)
+READ8_MEMBER(nes_tobidase_device::read_m)
{
LOG_MMC(("tobidase read_m, offset: %04x\n", offset));
if (m_latch >= 0x0c)
@@ -1229,13 +1229,13 @@ uint8_t nes_tobidase_device::read_m(offs_t offset)
-------------------------------------------------*/
-uint8_t nes_lh32_device::read_m(offs_t offset)
+READ8_MEMBER(nes_lh32_device::read_m)
{
LOG_MMC(("lh32 read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)];
}
-uint8_t nes_lh32_device::read_h(offs_t offset)
+READ8_MEMBER(nes_lh32_device::read_h)
{
// LOG_MMC(("lh32 read_h, offset: %04x\n", offset));
@@ -1245,7 +1245,7 @@ uint8_t nes_lh32_device::read_h(offs_t offset)
return hi_access_rom(offset);
}
-void nes_lh32_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_lh32_device::write_m)
{
LOG_MMC(("lh32 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1256,7 +1256,7 @@ void nes_lh32_device::write_m(offs_t offset, uint8_t data)
}
}
-void nes_lh32_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_lh32_device::write_h)
{
LOG_MMC(("lh32 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1285,13 +1285,13 @@ void nes_lh10_device::update_prg()
prg8_ab(m_reg[7]);
}
-uint8_t nes_lh10_device::read_m(offs_t offset)
+READ8_MEMBER(nes_lh10_device::read_m)
{
LOG_MMC(("lh10 read_m, offset: %04x\n", offset));
return m_prg[(0x0e * 0x2000) + (offset & 0x1fff)];
}
-uint8_t nes_lh10_device::read_h(offs_t offset)
+READ8_MEMBER(nes_lh10_device::read_h)
{
// LOG_MMC(("lh10 read_h, offset: %04x\n", offset));
@@ -1301,7 +1301,7 @@ uint8_t nes_lh10_device::read_h(offs_t offset)
return hi_access_rom(offset);
}
-void nes_lh10_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_lh10_device::write_h)
{
LOG_MMC(("lh10 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1354,13 +1354,13 @@ void nes_lh53_device::device_timer(emu_timer &timer, device_timer_id id, int par
}
}
-uint8_t nes_lh53_device::read_m(offs_t offset)
+READ8_MEMBER(nes_lh53_device::read_m)
{
LOG_MMC(("lh53 read_m, offset: %04x\n", offset));
return m_prg[(m_reg * 0x2000) + (offset & 0x1fff)];
}
-uint8_t nes_lh53_device::read_h(offs_t offset)
+READ8_MEMBER(nes_lh53_device::read_h)
{
// LOG_MMC(("lh53 read_h, offset: %04x\n", offset));
@@ -1370,7 +1370,7 @@ uint8_t nes_lh53_device::read_h(offs_t offset)
return hi_access_rom(offset);
}
-void nes_lh53_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_lh53_device::write_h)
{
LOG_MMC(("lh53 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1412,7 +1412,7 @@ void nes_lh53_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_2708_device::read_m(offs_t offset)
+READ8_MEMBER(nes_2708_device::read_m)
{
LOG_MMC(("btl-2708 read_m, offset: %04x\n", offset));
if (!m_reg[1])
@@ -1421,14 +1421,14 @@ uint8_t nes_2708_device::read_m(offs_t offset)
return m_prg[(m_reg[0] * 0x2000) + (offset & 0x1fff)];
}
-void nes_2708_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_2708_device::write_m)
{
LOG_MMC(("btl-2708 write_m, offset: %04x, data: %02x\n", offset, data));
// if (!m_reg[1])
m_prgram[offset] = data; // lower 8K of WRAM
}
-uint8_t nes_2708_device::read_h(offs_t offset)
+READ8_MEMBER(nes_2708_device::read_h)
{
// LOG_MMC(("btl-2708 read_h, offset: %04x\n", offset));
@@ -1438,7 +1438,7 @@ uint8_t nes_2708_device::read_h(offs_t offset)
return hi_access_rom(offset);
}
-void nes_2708_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_2708_device::write_h)
{
LOG_MMC(("btl-2708 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1475,20 +1475,20 @@ void nes_2708_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_ac08_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ac08_device::write_ex)
{
LOG_MMC(("AC-08 write_ex, offset: %04x, data: %02x\n", offset, data));
if (offset == 5) // $4025
set_nt_mirroring(!BIT(data, 3) ? PPU_MIRROR_VERT : PPU_MIRROR_HORZ);
}
-uint8_t nes_ac08_device::read_m(offs_t offset)
+READ8_MEMBER(nes_ac08_device::read_m)
{
LOG_MMC(("AC-08 read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)];
}
-void nes_ac08_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ac08_device::write_h)
{
LOG_MMC(("AC-08 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1511,13 +1511,13 @@ void nes_ac08_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_unl_bb_device::read_m(offs_t offset)
+READ8_MEMBER(nes_unl_bb_device::read_m)
{
LOG_MMC(("unl-bb read_m, offset: %04x\n", offset));
return m_prg[(((m_reg[0] & 3 & m_prg_mask) * 0x2000) + (offset & 0x1fff))];
}
-void nes_unl_bb_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_unl_bb_device::write_h)
{
LOG_MMC(("unl-bb write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1549,7 +1549,7 @@ void nes_unl_bb_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_mmalee_device::read_m(offs_t offset)
+READ8_MEMBER(nes_mmalee_device::read_m)
{
LOG_MMC(("mmalee read_m, offset: %04x\n", offset));
@@ -1561,7 +1561,7 @@ uint8_t nes_mmalee_device::read_m(offs_t offset)
return ((offset + 0x6000) & 0xff00) >> 8;
}
-void nes_mmalee_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_mmalee_device::write_m)
{
LOG_MMC(("mmalee write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1594,7 +1594,7 @@ void nes_shuiguan_device::device_timer(emu_timer &timer, device_timer_id id, int
}
}
-void nes_shuiguan_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_shuiguan_device::write_h)
{
int bank;
LOG_MMC(("shuiguan write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1646,7 +1646,7 @@ void nes_shuiguan_device::write_h(offs_t offset, uint8_t data)
}
}
-uint8_t nes_shuiguan_device::read_m(offs_t offset)
+READ8_MEMBER(nes_shuiguan_device::read_m)
{
// always first bank??
LOG_MMC(("shuiguan read_m, offset: %04x\n", offset));
@@ -1670,7 +1670,7 @@ uint8_t nes_shuiguan_device::read_m(offs_t offset)
-------------------------------------------------*/
-uint8_t nes_rt01_device::read_h(offs_t offset)
+READ8_MEMBER(nes_rt01_device::read_h)
{
// LOG_MMC(("rt01 read_h, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/bootleg.h b/src/devices/bus/nes/bootleg.h
index 42213b131b8..a048f0955d4 100644
--- a/src/devices/bus/nes/bootleg.h
+++ b/src/devices/bus/nes/bootleg.h
@@ -14,7 +14,7 @@ public:
// construction/destruction
nes_ax5705_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -36,7 +36,7 @@ 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);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -58,8 +58,8 @@ 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);
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -87,8 +87,8 @@ public:
// construction/destruction
nes_asn_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 DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -109,7 +109,7 @@ public:
// construction/destruction
nes_smb3p_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -134,7 +134,7 @@ 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);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -156,8 +156,8 @@ public:
// construction/destruction
nes_whirl2706_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 DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -178,11 +178,11 @@ public:
// construction/destruction
nes_smb2j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_ex(offs_t offset, uint8_t data) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_ex) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -207,8 +207,8 @@ 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);
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -233,9 +233,9 @@ 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);
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_ex(offs_t offset, uint8_t data) 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;
@@ -261,8 +261,8 @@ public:
// construction/destruction
nes_09034a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_ex(offs_t offset, uint8_t data) override;
- virtual uint8_t read_m(offs_t offset) override;
+ virtual DECLARE_WRITE8_MEMBER(write_ex) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
virtual void pcb_reset() override;
@@ -283,8 +283,8 @@ public:
// construction/destruction
nes_tobidase_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_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -305,10 +305,10 @@ public:
// construction/destruction
nes_lh32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -329,9 +329,9 @@ public:
// construction/destruction
nes_lh10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_h(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) 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;
@@ -354,10 +354,10 @@ public:
// construction/destruction
nes_lh53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_m(offs_t offset, uint8_t data) override {}
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -385,10 +385,10 @@ public:
// construction/destruction
nes_2708_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -408,9 +408,9 @@ public:
// nes_ac08_device/destruction
nes_ac08_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_ex(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) 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;
@@ -429,8 +429,8 @@ 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);
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -450,8 +450,8 @@ public:
// construction/destruction
nes_mmalee_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -468,8 +468,8 @@ public:
// construction/destruction
nes_shuiguan_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 DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -496,7 +496,7 @@ public:
// construction/destruction
nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_h(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/camerica.cpp b/src/devices/bus/nes/camerica.cpp
index 5870b2911ab..7b9d413f6c9 100644
--- a/src/devices/bus/nes/camerica.cpp
+++ b/src/devices/bus/nes/camerica.cpp
@@ -136,7 +136,7 @@ void nes_golden5_device::pcb_reset()
-------------------------------------------------*/
-void nes_bf9093_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bf9093_device::write_h)
{
LOG_MMC(("bf9093 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -174,7 +174,7 @@ void nes_bf9093_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bf9096_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bf9096_device::write_h)
{
LOG_MMC(("bf9096 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -203,7 +203,7 @@ void nes_bf9096_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_golden5_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_golden5_device::write_h)
{
LOG_MMC(("golden5 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/camerica.h b/src/devices/bus/nes/camerica.h
index 7688249a64c..b7a4782c342 100644
--- a/src/devices/bus/nes/camerica.h
+++ b/src/devices/bus/nes/camerica.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_bf9093_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_bf9096_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 write_m(offs_t offset, uint8_t data) override { write_h(offset, data); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override { write_h(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -56,7 +56,7 @@ public:
// construction/destruction
nes_golden5_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/cne.cpp b/src/devices/bus/nes/cne.cpp
index c81e7a2bdc8..1f0ad793937 100644
--- a/src/devices/bus/nes/cne.cpp
+++ b/src/devices/bus/nes/cne.cpp
@@ -112,7 +112,7 @@ void nes_cne_shlz_device::pcb_reset()
-------------------------------------------------*/
-void nes_cne_decathl_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cne_decathl_device::write_h)
{
LOG_MMC(("cne_decathl_w, offset: %04x, data: %02x\n", offset, data));
@@ -146,7 +146,7 @@ void nes_cne_decathl_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_cne_fsb_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cne_fsb_device::write_m)
{
LOG_MMC(("cne_fsb write_m, offset: %04x, data: %02x\n", offset, data));
@@ -184,7 +184,7 @@ void nes_cne_fsb_device::write_m(offs_t offset, uint8_t data)
m_battery[offset] = data;
}
-uint8_t nes_cne_fsb_device::read_m(offs_t offset)
+READ8_MEMBER(nes_cne_fsb_device::read_m)
{
LOG_MMC(("cne_fsb read_m, offset: %04x\n", offset));
@@ -211,7 +211,7 @@ uint8_t nes_cne_fsb_device::read_m(offs_t offset)
-------------------------------------------------*/
-void nes_cne_shlz_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cne_shlz_device::write_l)
{
LOG_MMC(("cne_shlz write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/cne.h b/src/devices/bus/nes/cne.h
index da0623cbde3..d5e117c791a 100644
--- a/src/devices/bus/nes/cne.h
+++ b/src/devices/bus/nes/cne.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_cne_decathl_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_cne_fsb_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -53,7 +53,7 @@ public:
// construction/destruction
nes_cne_shlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/cony.cpp b/src/devices/bus/nes/cony.cpp
index e42ae833f82..78c89a57141 100644
--- a/src/devices/bus/nes/cony.cpp
+++ b/src/devices/bus/nes/cony.cpp
@@ -174,7 +174,7 @@ void nes_cony_device::device_timer(emu_timer &timer, device_timer_id id, int par
}
}
-void nes_cony_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cony_device::write_l)
{
LOG_MMC(("cony write_l, offset: %04x, data: %02x\n", offset, data));
@@ -182,7 +182,7 @@ void nes_cony_device::write_l(offs_t offset, uint8_t data)
m_low_reg[offset & 0x03] = data;
}
-uint8_t nes_cony_device::read_l(offs_t offset)
+READ8_MEMBER(nes_cony_device::read_l)
{
LOG_MMC(("cony read_l, offset: %04x\n", offset));
@@ -229,7 +229,7 @@ void nes_cony_device::set_chr()
}
}
-void nes_cony_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cony_device::write_h)
{
LOG_MMC(("cony write_h, offset: %04x, data: %02x\n", offset, data));
@@ -310,7 +310,7 @@ void nes_cony_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_yoko_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_yoko_device::write_l)
{
LOG_MMC(("yoko write_l, offset: %04x, data: %02x\n", offset, data));
@@ -318,7 +318,7 @@ void nes_yoko_device::write_l(offs_t offset, uint8_t data)
m_low_reg[offset & 0x03] = data;
}
-uint8_t nes_yoko_device::read_l(offs_t offset)
+READ8_MEMBER(nes_yoko_device::read_l)
{
LOG_MMC(("yoko read_l, offset: %04x\n", offset));
@@ -359,7 +359,7 @@ void nes_yoko_device::set_chr()
chr2_6(m_reg[7], CHRROM);
}
-void nes_yoko_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_yoko_device::write_h)
{
LOG_MMC(("yoko write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/cony.h b/src/devices/bus/nes/cony.h
index aa767a88c13..b7b759a7fe1 100644
--- a/src/devices/bus/nes/cony.h
+++ b/src/devices/bus/nes/cony.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_cony_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -54,9 +54,9 @@ public:
// construction/destruction
nes_yoko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/datach.cpp b/src/devices/bus/nes/datach.cpp
index 5262b6d927a..c8549924f68 100644
--- a/src/devices/bus/nes/datach.cpp
+++ b/src/devices/bus/nes/datach.cpp
@@ -52,7 +52,7 @@ datach_cart_interface::~datach_cart_interface()
{
}
-uint8_t datach_cart_interface::read(offs_t offset)
+READ8_MEMBER(datach_cart_interface::read)
{
if (offset < 0x4000)
return m_rom[(m_bank * 0x4000) + (offset & 0x3fff)];
@@ -84,10 +84,10 @@ void nes_datach_slot_device::device_start()
m_cart = dynamic_cast<datach_cart_interface *>(get_card_device());
}
-uint8_t nes_datach_slot_device::read(offs_t offset)
+READ8_MEMBER(nes_datach_slot_device::read)
{
if (m_cart)
- return m_cart->read(offset);
+ return m_cart->read(space, offset, mem_mask);
return 0xff;
}
@@ -201,10 +201,9 @@ uint8_t *nes_datach_rom_device::get_cart_base()
}
-void nes_datach_24c01_device::device_add_mconfig(machine_config &config)
-{
- I2C_24C01(config, m_i2cmem);
-}
+MACHINE_CONFIG_START(nes_datach_24c01_device::device_add_mconfig)
+ MCFG_24C01_ADD("i2cmem")
+MACHINE_CONFIG_END
//---------------------------------
@@ -284,7 +283,7 @@ void nes_datach_device::pcb_reset()
-------------------------------------------------*/
-uint8_t nes_datach_device::read_m(offs_t offset)
+READ8_MEMBER(nes_datach_device::read_m)
{
LOG_MMC(("Datach read_m, offset: %04x\n", offset));
uint8_t i2c_val = 0;
@@ -301,19 +300,19 @@ uint8_t nes_datach_device::read_m(offs_t offset)
}
-uint8_t nes_datach_device::read_h(offs_t offset)
+READ8_MEMBER(nes_datach_device::read_h)
{
LOG_MMC(("Datach read_h, offset: %04x\n", offset));
// this shall be the proper code, but it's a bit slower, so we access directly the subcart below
- //return m_subslot->read(offset);
+ //return m_subslot->read(space, offset, mem_mask);
if (m_subslot->m_cart)
- return m_subslot->m_cart->read(offset);
+ return m_subslot->m_cart->read(space, offset, mem_mask);
else // this is "fake" in the sense that we fill CPU space with 0xff if no Datach cart is loaded
return hi_access_rom(offset);
}
-void nes_datach_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_datach_device::write_h)
{
LOG_MMC(("Datach write_h, offset: %04x, data: %02x\n", offset, data));
@@ -353,7 +352,7 @@ void nes_datach_device::write_h(offs_t offset, uint8_t data)
#endif
break;
default:
- fcg_write(offset & 0x0f, data);
+ fcg_write(space, offset & 0x0f, data, mem_mask);
break;
}
}
@@ -369,12 +368,11 @@ static void datach_cart(device_slot_interface &device)
}
-void nes_datach_device::device_add_mconfig(machine_config &config)
-{
- BARCODE_READER(config, m_reader, 0);
- NES_DATACH_SLOT(config, m_subslot, 0, datach_cart);
- I2C_24C02(config, m_i2cmem);
-}
+MACHINE_CONFIG_START(nes_datach_device::device_add_mconfig)
+ BARCODE_READER(config, "datach", 0);
+ MCFG_DATACH_MINICART_ADD("datach_slot", datach_cart)
+ MCFG_24C02_ADD("i2cmem")
+MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/nes/datach.h b/src/devices/bus/nes/datach.h
index 81865baa69f..5d4decd64fa 100644
--- a/src/devices/bus/nes/datach.h
+++ b/src/devices/bus/nes/datach.h
@@ -25,7 +25,7 @@ public:
virtual ~datach_cart_interface();
// reading and writing
- virtual uint8_t read(offs_t offset);
+ virtual DECLARE_READ8_MEMBER(read);
uint8_t *get_cart_base() { return m_rom; }
void write_prg_bank(uint8_t bank) { m_bank = bank; }
@@ -52,15 +52,6 @@ class nes_datach_slot_device : public device_t,
friend class nes_datach_device;
public:
// construction/destruction
- template <typename T>
- nes_datach_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&opts)
- : nes_datach_slot_device(mconfig, tag, owner, clock)
- {
- option_reset();
- opts(*this);
- set_default_option(nullptr);
- set_fixed(false);
- }
nes_datach_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~nes_datach_slot_device();
@@ -83,7 +74,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- uint8_t read(offs_t offset);
+ virtual DECLARE_READ8_MEMBER(read);
void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); }
protected:
@@ -94,6 +85,11 @@ protected:
DECLARE_DEVICE_TYPE(NES_DATACH_SLOT, nes_datach_slot_device)
+#define MCFG_DATACH_MINICART_ADD(_tag, _slot_intf) \
+ MCFG_DEVICE_ADD(_tag, NES_DATACH_SLOT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false)
+
+
//--------------------------------
//
// Datach Minicart implementation
@@ -152,9 +148,9 @@ public:
// construction/destruction
nes_datach_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/discrete.cpp b/src/devices/bus/nes/discrete.cpp
index 2fb7883d063..2e1f6a4c81b 100644
--- a/src/devices/bus/nes/discrete.cpp
+++ b/src/devices/bus/nes/discrete.cpp
@@ -134,7 +134,7 @@ void nes_74x161x138_device::pcb_reset()
-------------------------------------------------*/
// there are two 'variants' depending on hardwired or mapper ctrl mirroring
-void nes_74x161x161x32_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_74x161x161x32_device::write_h)
{
LOG_MMC(("74x161x161x32 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -155,7 +155,7 @@ void nes_74x161x161x32_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_74x139x74_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_74x139x74_device::write_m)
{
LOG_MMC(("74x139x74 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -179,7 +179,7 @@ void nes_74x139x74_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_74x377_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_74x377_device::write_h)
{
LOG_MMC(("74x377 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -200,7 +200,7 @@ void nes_74x377_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_74x161x138_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_74x161x138_device::write_m)
{
LOG_MMC(("74x161x138 write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/discrete.h b/src/devices/bus/nes/discrete.h
index 861b8b643bf..51576a77e41 100644
--- a/src/devices/bus/nes/discrete.h
+++ b/src/devices/bus/nes/discrete.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_74x161x161x32_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_74x139x74_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_74x377_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -70,7 +70,7 @@ public:
// construction/destruction
nes_74x161x138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/disksys.cpp b/src/devices/bus/nes/disksys.cpp
index 71101492822..0f350fb7922 100644
--- a/src/devices/bus/nes/disksys.cpp
+++ b/src/devices/bus/nes/disksys.cpp
@@ -51,10 +51,9 @@ static const floppy_interface nes_floppy_interface =
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void nes_disksys_device::device_add_mconfig(machine_config &config)
-{
- LEGACY_FLOPPY(config, FLOPPY_0, 0, &nes_floppy_interface);
-}
+MACHINE_CONFIG_START(nes_disksys_device::device_add_mconfig)
+ MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, nes_floppy_interface)
+MACHINE_CONFIG_END
ROM_START( disksys )
@@ -173,7 +172,7 @@ void nes_disksys_device::pcb_reset()
-------------------------------------------------*/
-void nes_disksys_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_disksys_device::write_h)
{
LOG_MMC(("Famicom Disk System write_h, offset %04x, data: %02x\n", offset, data));
@@ -181,7 +180,7 @@ void nes_disksys_device::write_h(offs_t offset, uint8_t data)
m_prgram[offset + 0x2000] = data;
}
-uint8_t nes_disksys_device::read_h(offs_t offset)
+READ8_MEMBER(nes_disksys_device::read_h)
{
LOG_MMC(("Famicom Disk System read_h, offset: %04x\n", offset));
@@ -191,13 +190,13 @@ uint8_t nes_disksys_device::read_h(offs_t offset)
return m_2c33_rom[offset & 0x1fff];
}
-void nes_disksys_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_disksys_device::write_m)
{
LOG_MMC(("Famicom Disk System write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[offset] = data;
}
-uint8_t nes_disksys_device::read_m(offs_t offset)
+READ8_MEMBER(nes_disksys_device::read_m)
{
LOG_MMC(("Famicom Disk System read_m, offset: %04x\n", offset));
return m_prgram[offset];
@@ -209,7 +208,7 @@ void nes_disksys_device::hblank_irq(int scanline, int vblank, int blanked)
hold_irq_line();
}
-void nes_disksys_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_disksys_device::write_ex)
{
LOG_MMC(("Famicom Disk System write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -281,7 +280,7 @@ void nes_disksys_device::write_ex(offs_t offset, uint8_t data)
}
}
-uint8_t nes_disksys_device::read_ex(offs_t offset)
+READ8_MEMBER(nes_disksys_device::read_ex)
{
LOG_MMC(("Famicom Disk System read_ex, offset: %04x\n", offset));
uint8_t ret;
diff --git a/src/devices/bus/nes/disksys.h b/src/devices/bus/nes/disksys.h
index 1e3e45afb1e..907ee06abef 100644
--- a/src/devices/bus/nes/disksys.h
+++ b/src/devices/bus/nes/disksys.h
@@ -17,12 +17,12 @@ public:
// construction/destruction
nes_disksys_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_ex(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_ex(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_ex) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_ex) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void disk_flip_side() override;
diff --git a/src/devices/bus/nes/ggenie.cpp b/src/devices/bus/nes/ggenie.cpp
index bb5866feac7..462c9c5da37 100644
--- a/src/devices/bus/nes/ggenie.cpp
+++ b/src/devices/bus/nes/ggenie.cpp
@@ -80,7 +80,7 @@ void nes_ggenie_device::pcb_reset()
-------------------------------------------------*/
-void nes_ggenie_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ggenie_device::write_h)
{
// LOG_MMC(("axrom write_h, offset: %04x, data: %02x\n", offset, data));
if (!m_gg_bypass)
@@ -150,22 +150,22 @@ void nes_ggenie_device::write_h(offs_t offset, uint8_t data)
}
}
else
- m_ggslot->write_h(offset, data);
+ m_ggslot->write_h(space, offset, data, mem_mask);
}
-void nes_ggenie_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ggenie_device::write_m)
{
if (m_gg_bypass && m_ggslot)
- m_ggslot->write_m(offset, data);
+ m_ggslot->write_m(space, offset, data, mem_mask);
}
-void nes_ggenie_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ggenie_device::write_l)
{
if (m_gg_bypass && m_ggslot)
- m_ggslot->write_l(offset, data);
+ m_ggslot->write_l(space, offset, data, mem_mask);
}
-uint8_t nes_ggenie_device::read_h(offs_t offset)
+READ8_MEMBER(nes_ggenie_device::read_h)
{
if (m_gg_bypass && m_ggslot->m_cart)
{
@@ -186,29 +186,29 @@ uint8_t nes_ggenie_device::read_h(offs_t offset)
return hi_access_rom(offset);
}
-uint8_t nes_ggenie_device::read_m(offs_t offset)
+READ8_MEMBER(nes_ggenie_device::read_m)
{
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->read_m(offset);
+ return m_ggslot->m_cart->read_m(space, offset, mem_mask);
return 0xff;
}
-uint8_t nes_ggenie_device::read_l(offs_t offset)
+READ8_MEMBER(nes_ggenie_device::read_l)
{
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->read_l(offset);
+ return m_ggslot->m_cart->read_l(space, offset, mem_mask);
return 0xff;
}
-void nes_ggenie_device::chr_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ggenie_device::chr_w)
{
int bank = offset >> 10;
if (m_gg_bypass && m_ggslot->m_cart)
{
- m_ggslot->m_cart->chr_w(offset, data);
+ m_ggslot->m_cart->chr_w(space, offset, data, mem_mask);
return;
}
@@ -216,24 +216,24 @@ void nes_ggenie_device::chr_w(offs_t offset, uint8_t data)
m_chr_access[bank][offset & 0x3ff] = data;
}
-uint8_t nes_ggenie_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_ggenie_device::chr_r)
{
int bank = offset >> 10;
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->chr_r(offset);
+ return m_ggslot->m_cart->chr_r(space, offset, mem_mask);
return m_chr_access[bank][offset & 0x3ff];
}
-void nes_ggenie_device::nt_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ggenie_device::nt_w)
{
int page = ((offset & 0xc00) >> 10);
if (m_gg_bypass && m_ggslot->m_cart)
{
- m_ggslot->m_cart->nt_w(offset, data);
+ m_ggslot->m_cart->nt_w(space, offset, data, mem_mask);
return;
}
@@ -243,12 +243,12 @@ void nes_ggenie_device::nt_w(offs_t offset, uint8_t data)
m_nt_access[page][offset & 0x3ff] = data;
}
-uint8_t nes_ggenie_device::nt_r(offs_t offset)
+READ8_MEMBER(nes_ggenie_device::nt_r)
{
int page = ((offset & 0xc00) >> 10);
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->nt_r(offset);
+ return m_ggslot->m_cart->nt_r(space, offset, mem_mask);
return m_nt_access[page][offset & 0x3ff];
}
diff --git a/src/devices/bus/nes/ggenie.h b/src/devices/bus/nes/ggenie.h
index 2d6974be849..1ca577ec7b0 100644
--- a/src/devices/bus/nes/ggenie.h
+++ b/src/devices/bus/nes/ggenie.h
@@ -16,17 +16,17 @@ public:
// construction/destruction
nes_ggenie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
-
- virtual uint8_t chr_r(offs_t offset) override;
- virtual void chr_w(offs_t offset, uint8_t data) override;
- virtual uint8_t nt_r(offs_t offset) override;
- virtual void nt_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual DECLARE_WRITE8_MEMBER(chr_w) override;
+ virtual DECLARE_READ8_MEMBER(nt_r) override;
+ virtual DECLARE_WRITE8_MEMBER(nt_w) override;
void hblank_irq(int scanline, int vblank, int blanked) override { if (m_gg_bypass && m_ggslot->m_cart) m_ggslot->m_cart->hblank_irq(scanline, vblank, blanked); }
void scanline_irq(int scanline, int vblank, int blanked) override { if (m_gg_bypass && m_ggslot->m_cart) m_ggslot->m_cart->scanline_irq(scanline, vblank, blanked); }
diff --git a/src/devices/bus/nes/henggedianzi.cpp b/src/devices/bus/nes/henggedianzi.cpp
index 0f9acd05d45..5d75850a0c8 100644
--- a/src/devices/bus/nes/henggedianzi.cpp
+++ b/src/devices/bus/nes/henggedianzi.cpp
@@ -135,7 +135,7 @@ void nes_hengg_shjy3_device::pcb_reset()
-------------------------------------------------*/
-void nes_hengg_srich_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hengg_srich_device::write_h)
{
LOG_MMC(("hengg_srich write_h, offset: %04x, data: %02x\n", offset, data));
@@ -162,7 +162,7 @@ void nes_hengg_srich_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_hengg_xhzs_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hengg_xhzs_device::write_l)
{
LOG_MMC(("hengg_xhzs write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x4100;
@@ -171,7 +171,7 @@ void nes_hengg_xhzs_device::write_l(offs_t offset, uint8_t data)
prg32(data >> 1);
}
-void nes_hengg_xhzs_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hengg_xhzs_device::write_h)
{
LOG_MMC(("hengg_xhzs write_h, offset: %04x, data: %02x\n", offset, data));
@@ -225,7 +225,7 @@ void nes_hengg_shjy3_device::update_banks()
}
}
-void nes_hengg_shjy3_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hengg_shjy3_device::write_h)
{
LOG_MMC(("shjy3 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/henggedianzi.h b/src/devices/bus/nes/henggedianzi.h
index 0bf0b2faebc..d74da743425 100644
--- a/src/devices/bus/nes/henggedianzi.h
+++ b/src/devices/bus/nes/henggedianzi.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_hengg_srich_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_hengg_xhzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -53,7 +53,7 @@ public:
// construction/destruction
nes_hengg_shjy3_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/hes.cpp b/src/devices/bus/nes/hes.cpp
index 946ea1f9585..8d1d3a7a590 100644
--- a/src/devices/bus/nes/hes.cpp
+++ b/src/devices/bus/nes/hes.cpp
@@ -73,7 +73,7 @@ void nes_hes_device::pcb_reset()
-------------------------------------------------*/
-void nes_hes_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hes_device::write_l)
{
LOG_MMC(("hes write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/hes.h b/src/devices/bus/nes/hes.h
index ea72578ad98..d45d20a1a3f 100644
--- a/src/devices/bus/nes/hes.h
+++ b/src/devices/bus/nes/hes.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_hes_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/hosenkan.cpp b/src/devices/bus/nes/hosenkan.cpp
index ae7749b7e9a..4200655897e 100644
--- a/src/devices/bus/nes/hosenkan.cpp
+++ b/src/devices/bus/nes/hosenkan.cpp
@@ -105,7 +105,7 @@ void nes_hosenkan_device::hblank_irq( int scanline, int vblank, int blanked )
m_irq_clear = 0;
}
-void nes_hosenkan_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hosenkan_device::write_h)
{
LOG_MMC(("hosenkan write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/hosenkan.h b/src/devices/bus/nes/hosenkan.h
index 163aef76edc..153638a9cbe 100644
--- a/src/devices/bus/nes/hosenkan.h
+++ b/src/devices/bus/nes/hosenkan.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_hosenkan_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/irem.cpp b/src/devices/bus/nes/irem.cpp
index c55cb588506..15ef687dbea 100644
--- a/src/devices/bus/nes/irem.cpp
+++ b/src/devices/bus/nes/irem.cpp
@@ -166,7 +166,7 @@ void nes_h3001_device::pcb_reset()
-------------------------------------------------*/
-void nes_lrog017_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_lrog017_device::write_h)
{
LOG_MMC(("lrog017 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -185,7 +185,7 @@ void nes_lrog017_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_holydivr_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_holydivr_device::write_h)
{
LOG_MMC(("holy diver write_h, offset: %04x, data: %02x\n", offset, data));
@@ -209,7 +209,7 @@ void nes_holydivr_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_tam_s1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tam_s1_device::write_h)
{
LOG_MMC(("tam s1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -233,7 +233,7 @@ void nes_tam_s1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_g101_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_g101_device::write_h)
{
LOG_MMC(("g101 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -299,7 +299,7 @@ void nes_h3001_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-void nes_h3001_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_h3001_device::write_h)
{
LOG_MMC(("h3001 write_h, offset %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/irem.h b/src/devices/bus/nes/irem.h
index 82fd0815c38..a50077e70a3 100644
--- a/src/devices/bus/nes/irem.h
+++ b/src/devices/bus/nes/irem.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_lrog017_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_holydivr_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_tam_s1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -70,7 +70,7 @@ public:
// construction/destruction
nes_g101_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -90,7 +90,7 @@ public:
// construction/destruction
nes_h3001_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/jaleco.cpp b/src/devices/bus/nes/jaleco.cpp
index 740c3c799b8..907580d6a1e 100644
--- a/src/devices/bus/nes/jaleco.cpp
+++ b/src/devices/bus/nes/jaleco.cpp
@@ -253,7 +253,7 @@ void nes_ss88006_device::pcb_reset()
-------------------------------------------------*/
-void nes_jf11_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jf11_device::write_m)
{
LOG_MMC(("jf11 write_m, offset: %04x, data: %02x\n", offset, data));
chr8(data, CHRROM);
@@ -274,7 +274,7 @@ void nes_jf11_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_jf13_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jf13_device::write_m)
{
LOG_MMC(("jf13 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -301,7 +301,7 @@ void nes_jf13_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_jf16_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jf16_device::write_h)
{
LOG_MMC(("jf16 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -330,7 +330,7 @@ void nes_jf16_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_jf17_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jf17_device::write_h)
{
LOG_MMC(("jf17 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -345,7 +345,7 @@ void nes_jf17_device::write_h(offs_t offset, uint8_t data)
m_latch = data;
}
-void nes_jf17_adpcm_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jf17_adpcm_device::write_h)
{
LOG_MMC(("jf17 + ADPCM write_h, offset: %04x, data: %02x\n", offset, data));
@@ -379,7 +379,7 @@ void nes_jf17_adpcm_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_jf19_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jf19_device::write_h)
{
LOG_MMC(("jf19 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -392,7 +392,7 @@ void nes_jf19_device::write_h(offs_t offset, uint8_t data)
chr8(data & 0x0f, CHRROM);
}
-void nes_jf19_adpcm_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jf19_adpcm_device::write_h)
{
LOG_MMC(("jf19 + ADPCM write_h, offset: %04x, data: %02x\n", offset, data));
@@ -474,7 +474,7 @@ void nes_ss88006_device::device_timer(emu_timer &timer, device_timer_id id, int
}
}
-void nes_ss88006_device::ss88006_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ss88006_device::ss88006_write)
{
uint8_t bank;
LOG_MMC(("ss88006 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -564,7 +564,7 @@ void nes_ss88006_device::ss88006_write(offs_t offset, uint8_t data)
// bits2-bits6 are sample number, bit1 is setup/enable/disable
// program first write sample # + bit1 set to 'init' the sample
// then it writes sample # + bit1 clear to 'start' the sample
-void nes_ss88006_adpcm_device::ss88006_adpcm_write(offs_t offset, uint8_t data, samples_device &dev)
+void nes_ss88006_adpcm_device::ss88006_adpcm_write(address_space &space, offs_t offset, uint8_t data, samples_device *dev)
{
LOG_MMC(("ss88006 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -575,13 +575,13 @@ void nes_ss88006_adpcm_device::ss88006_adpcm_write(offs_t offset, uint8_t data,
{
// printf("sample write: data: %02x\n", data);
if ((m_latch & 2) && !(data & 2))
- dev.start((data >> 2) & 0x1f, (data >> 2) & 0x1f);
+ dev->start((data >> 2) & 0x1f, (data >> 2) & 0x1f);
}
m_latch = data;
break;
default:
- ss88006_write(offset, data);
+ ss88006_write(space, offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/jaleco.h b/src/devices/bus/nes/jaleco.h
index 53cc5716ce3..ed8c04da7a0 100644
--- a/src/devices/bus/nes/jaleco.h
+++ b/src/devices/bus/nes/jaleco.h
@@ -17,7 +17,7 @@ public:
// construction/destruction
nes_jf11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -35,7 +35,7 @@ public:
// construction/destruction
nes_jf13_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -58,7 +58,7 @@ public:
// construction/destruction
nes_jf16_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -76,7 +76,7 @@ public:
// construction/destruction
nes_jf17_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -98,7 +98,7 @@ public:
// construction/destruction
nes_jf17_adpcm_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 DECLARE_WRITE8_MEMBER(write_h) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
@@ -116,7 +116,7 @@ public:
// construction/destruction
nes_jf19_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -136,7 +136,7 @@ public:
// construction/destruction
nes_jf19_adpcm_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 DECLARE_WRITE8_MEMBER(write_h) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
@@ -154,8 +154,8 @@ public:
// construction/destruction
nes_ss88006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void ss88006_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { ss88006_write(offset, data); }
+ virtual DECLARE_WRITE8_MEMBER(ss88006_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_write(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -188,7 +188,7 @@ protected:
// construction/destruction
nes_ss88006_adpcm_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
- void ss88006_adpcm_write(offs_t offset, uint8_t data, samples_device &dev);
+ void ss88006_adpcm_write(address_space &space, offs_t offset, uint8_t data, samples_device *dev);
};
@@ -204,7 +204,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
required_device<samples_device> m_samples;
};
@@ -222,7 +222,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
required_device<samples_device> m_samples;
};
@@ -240,7 +240,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
required_device<samples_device> m_samples;
};
@@ -258,7 +258,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
required_device<samples_device> m_samples;
};
diff --git a/src/devices/bus/nes/jy.cpp b/src/devices/bus/nes/jy.cpp
index 8a54624cd5a..33c1e6e6cac 100644
--- a/src/devices/bus/nes/jy.cpp
+++ b/src/devices/bus/nes/jy.cpp
@@ -144,14 +144,14 @@ void nes_jy_typea_device::pcb_reset()
-------------------------------------------------*/
-uint8_t nes_jy_typea_device::nt_r(offs_t offset)
+READ8_MEMBER(nes_jy_typea_device::nt_r)
{
int page = ((offset & 0xc00) >> 10);
irq_clock(0, 2);
return m_nt_access[page][offset & 0x3ff];
}
-uint8_t nes_jy_typea_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_jy_typea_device::chr_r)
{
int bank = offset >> 10;
irq_clock(0, 2);
@@ -241,7 +241,7 @@ void nes_jy_typea_device::scanline_irq(int scanline, int vblank, int blanked)
// 0x5000-0x5fff : sort of protection?
-uint8_t nes_jy_typea_device::read_l(offs_t offset)
+READ8_MEMBER(nes_jy_typea_device::read_l)
{
LOG_MMC(("JY Company write_m, offset: %04x\n", offset));
offset += 0x100;
@@ -249,7 +249,7 @@ uint8_t nes_jy_typea_device::read_l(offs_t offset)
if (offset >= 0x1000 && offset < 0x1800)
{
// bit6/bit7 DSW read
- return get_open_bus() & 0x3f;
+ return m_open_bus & 0x3f;
}
if (offset >= 0x1800)
@@ -262,10 +262,10 @@ uint8_t nes_jy_typea_device::read_l(offs_t offset)
return m_latch;
}
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
-void nes_jy_typea_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jy_typea_device::write_l)
{
LOG_MMC(("JY Company write_m, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -282,14 +282,14 @@ void nes_jy_typea_device::write_l(offs_t offset, uint8_t data)
}
// 0x6000-0x7fff : WRAM or open bus
-uint8_t nes_jy_typea_device::read_m(offs_t offset)
+READ8_MEMBER(nes_jy_typea_device::read_m)
{
LOG_MMC(("JY Company write_m, offset: %04x\n", offset));
if (m_reg[0] & 0x80)
return m_prg[(m_bank_6000 & m_prg_mask) * 0x2000 + (offset & 0x1fff)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
@@ -425,7 +425,7 @@ void nes_jy_typea_device::update_banks(int reg)
}
-void nes_jy_typea_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_jy_typea_device::write_h)
{
LOG_MMC(("JY Company write_m, offset: %04x, data: %02x\n", offset, data));
@@ -569,7 +569,7 @@ void nes_jy_typec_device::update_mirror_typec()
update_mirror_typea();
}
-uint8_t nes_jy_typec_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_jy_typec_device::chr_r)
{
int bank = offset >> 10;
diff --git a/src/devices/bus/nes/jy.h b/src/devices/bus/nes/jy.h
index d318bfae60a..80be5d98631 100644
--- a/src/devices/bus/nes/jy.h
+++ b/src/devices/bus/nes/jy.h
@@ -16,13 +16,13 @@ public:
// construction/destruction
nes_jy_typea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
- virtual uint8_t chr_r(offs_t offset) override;
- virtual uint8_t nt_r(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual DECLARE_READ8_MEMBER(nt_r) override;
virtual void scanline_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -90,7 +90,7 @@ public:
// construction/destruction
nes_jy_typec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t chr_r(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
protected:
void update_mirror_typec();
diff --git a/src/devices/bus/nes/kaiser.cpp b/src/devices/bus/nes/kaiser.cpp
index 52690376e4b..2e228782785 100644
--- a/src/devices/bus/nes/kaiser.cpp
+++ b/src/devices/bus/nes/kaiser.cpp
@@ -295,7 +295,7 @@ void nes_ks7037_device::pcb_reset()
-------------------------------------------------*/
-void nes_ks7058_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7058_device::write_h)
{
LOG_MMC(("ks7058 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -322,7 +322,7 @@ void nes_ks7058_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_ks7022_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7022_device::write_h)
{
LOG_MMC(("ks7022 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -333,7 +333,7 @@ void nes_ks7022_device::write_h(offs_t offset, uint8_t data)
m_latch = data & 0x0f;
}
-uint8_t nes_ks7022_device::read_h(offs_t offset)
+READ8_MEMBER(nes_ks7022_device::read_h)
{
LOG_MMC(("ks7022 read_h, offset: %04x\n", offset));
@@ -388,7 +388,7 @@ void nes_ks7032_device::prg_update()
prg8_cd(m_reg[3]);
}
-void nes_ks7032_device::ks7032_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7032_device::ks7032_write)
{
LOG_MMC(("ks7032_write, offset: %04x, data: %02x\n", offset, data));
@@ -419,7 +419,7 @@ void nes_ks7032_device::ks7032_write(offs_t offset, uint8_t data)
}
}
-uint8_t nes_ks7032_device::read_m(offs_t offset)
+READ8_MEMBER(nes_ks7032_device::read_m)
{
LOG_MMC(("ks7032 read_m, offset: %04x\n", offset));
return m_prg[((m_reg[4] * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -438,7 +438,7 @@ uint8_t nes_ks7032_device::read_m(offs_t offset)
-------------------------------------------------*/
-void nes_ks202_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks202_device::write_h)
{
LOG_MMC(("ks202 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -458,12 +458,12 @@ void nes_ks202_device::write_h(offs_t offset, uint8_t data)
}
break;
default:
- ks7032_write(offset, data);
+ ks7032_write(space, offset, data, mem_mask);
break;
}
}
-uint8_t nes_ks202_device::read_m(offs_t offset)
+READ8_MEMBER(nes_ks202_device::read_m)
{
LOG_MMC(("ks202 read_m, offset: %04x\n", offset));
return m_prgram[offset & 0x1fff];
@@ -499,7 +499,7 @@ void nes_ks7017_device::device_timer(emu_timer &timer, device_timer_id id, int p
}
}
-void nes_ks7017_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7017_device::write_l)
{
LOG_MMC(("ks7017 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -512,7 +512,7 @@ void nes_ks7017_device::write_l(offs_t offset, uint8_t data)
prg16_89ab(m_latch);
}
-void nes_ks7017_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7017_device::write_ex)
{
LOG_MMC(("ks7017 write_ex, offset: %04x, data: %02x\n", offset, data));
offset += 0x20;
@@ -530,7 +530,7 @@ void nes_ks7017_device::write_ex(offs_t offset, uint8_t data)
set_nt_mirroring(BIT(data, 3) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-uint8_t nes_ks7017_device::read_ex(offs_t offset)
+READ8_MEMBER(nes_ks7017_device::read_ex)
{
LOG_MMC(("ks7017 read_ex, offset: %04x\n", offset));
offset += 0x20;
@@ -542,7 +542,7 @@ uint8_t nes_ks7017_device::read_ex(offs_t offset)
return temp;
}
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
/*-------------------------------------------------
@@ -557,7 +557,7 @@ uint8_t nes_ks7017_device::read_ex(offs_t offset)
-------------------------------------------------*/
-void nes_ks7012_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7012_device::write_h)
{
LOG_MMC(("ks7012 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -580,13 +580,13 @@ void nes_ks7012_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_ks7013b_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7013b_device::write_m)
{
LOG_MMC(("ks7013b write_l, offset: %04x, data: %02x\n", offset, data));
prg16_89ab(data);
}
-void nes_ks7013b_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7013b_device::write_h)
{
LOG_MMC(("ks7013b write_h, offset: %04x, data: %02x\n", offset, data));
set_nt_mirroring((data & 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
@@ -613,20 +613,20 @@ void nes_ks7013b_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_ks7031_device::read_m(offs_t offset)
+READ8_MEMBER(nes_ks7031_device::read_m)
{
// LOG_MMC(("ks7031 read_m, offset: %04x\n", offset));
return m_prg[(m_reg[(offset >> 11) & 3] * 0x0800) + (offset & 0x7ff)];
}
-uint8_t nes_ks7031_device::read_h(offs_t offset)
+READ8_MEMBER(nes_ks7031_device::read_h)
{
// here the first 32K are accessed, but in 16x2K blocks loaded in reverse order
int accessed_2k = (offset >> 11) & 0x0f;
return m_prg[((0x0f - accessed_2k) * 0x0800) + (offset & 0x7ff)];
}
-void nes_ks7031_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7031_device::write_h)
{
LOG_MMC(("ks7031 write_h, offset: %04x, data: %02x\n", offset, data));
m_reg[(offset >> 11) & 3] = data & 0x3f;
@@ -646,13 +646,13 @@ void nes_ks7031_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_ks7016_device::read_m(offs_t offset)
+READ8_MEMBER(nes_ks7016_device::read_m)
{
// LOG_MMC(("ks7016 read_m, offset: %04x\n", offset));
return m_prg[((m_reg * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
}
-void nes_ks7016_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7016_device::write_h)
{
LOG_MMC(("ks7016 write_h, offset: %04x, data: %02x\n", offset, data));
uint8_t mask = offset & 0x30;
@@ -692,7 +692,7 @@ void nes_ks7037_device::update_prg()
set_nt_page(3, CIRAM, m_reg[5] & 1, 1);
}
-uint8_t nes_ks7037_device::read_m(offs_t offset)
+READ8_MEMBER(nes_ks7037_device::read_m)
{
// LOG_MMC(("ks7037 read_m, offset: %04x\n", offset));
if (offset < 0x1000)
@@ -701,14 +701,14 @@ uint8_t nes_ks7037_device::read_m(offs_t offset)
return m_prg[(0x1e * 0x1000) + (offset & 0x0fff)];
}
-void nes_ks7037_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7037_device::write_m)
{
LOG_MMC(("ks7037 write_m, offset: %04x, data: %02x\n", offset, data));
if (offset < 0x1000)
m_prgram[offset & 0x0fff] = data;
}
-uint8_t nes_ks7037_device::read_h(offs_t offset)
+READ8_MEMBER(nes_ks7037_device::read_h)
{
// LOG_MMC(("ks7037 read_h, offset: %04x\n", offset));
@@ -718,7 +718,7 @@ uint8_t nes_ks7037_device::read_h(offs_t offset)
return hi_access_rom(offset);
}
-void nes_ks7037_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7037_device::write_h)
{
LOG_MMC(("ks7037 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/kaiser.h b/src/devices/bus/nes/kaiser.h
index e0e31658cdb..8c544059aa9 100644
--- a/src/devices/bus/nes/kaiser.h
+++ b/src/devices/bus/nes/kaiser.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_ks7058_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_ks7022_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -56,9 +56,9 @@ public:
// construction/destruction
nes_ks7032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- void ks7032_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { ks7032_write(offset, data); }
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(ks7032_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { ks7032_write(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -91,8 +91,8 @@ public:
nes_ks202_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -104,9 +104,9 @@ public:
// construction/destruction
nes_ks7017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_ex(offs_t offset) override;
- virtual void write_ex(offs_t offset, uint8_t data) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_ex) override;
+ virtual DECLARE_WRITE8_MEMBER(write_ex) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -135,7 +135,7 @@ public:
// construction/destruction
nes_ks7012_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -152,8 +152,8 @@ public:
// construction/destruction
nes_ks7013b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -171,9 +171,9 @@ public:
// construction/destruction
nes_ks7031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -194,8 +194,8 @@ 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 DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -215,10 +215,10 @@ public:
// construction/destruction
nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/karastudio.cpp b/src/devices/bus/nes/karastudio.cpp
index fc98a658213..1b828001078 100644
--- a/src/devices/bus/nes/karastudio.cpp
+++ b/src/devices/bus/nes/karastudio.cpp
@@ -60,7 +60,7 @@ kstudio_cart_interface::~kstudio_cart_interface()
{
}
-uint8_t kstudio_cart_interface::read(offs_t offset)
+READ8_MEMBER(kstudio_cart_interface::read)
{
return m_rom[(m_bank * 0x4000) + (offset & 0x3fff)];
}
@@ -89,10 +89,10 @@ void nes_kstudio_slot_device::device_start()
m_cart = dynamic_cast<kstudio_cart_interface *>(get_card_device());
}
-uint8_t nes_kstudio_slot_device::read(offs_t offset)
+READ8_MEMBER(nes_kstudio_slot_device::read)
{
if (m_cart)
- return m_cart->read(offset);
+ return m_cart->read(space, offset, mem_mask);
return 0xff;
}
@@ -225,29 +225,29 @@ void nes_karaokestudio_device::pcb_reset()
-------------------------------------------------*/
-uint8_t nes_karaokestudio_device::read_m(offs_t offset)
+READ8_MEMBER(nes_karaokestudio_device::read_m)
{
LOG_MMC(("karaoke studio read_m, offset: %04x\n", offset));
return m_mic_ipt->read();
}
-uint8_t nes_karaokestudio_device::read_h(offs_t offset)
+READ8_MEMBER(nes_karaokestudio_device::read_h)
{
LOG_MMC(("karaoke studio read_h, offset: %04x\n", offset));
// this shall be the proper code, but it's a bit slower, so we access directly the subcart below
- //return m_subslot->read(offset);
+ //return m_subslot->read(space, offset, mem_mask);
// access expansion cart only if all of the followings are verified
// * we are in $8000-$bfff range
// * there has been a bankswitch write to map the expansion to such range
// * there actually is an expansion cart mounted
if (offset < 0x4000 && m_exp_active && m_subslot->m_cart)
- return m_subslot->m_cart->read(offset);
+ return m_subslot->m_cart->read(space, offset, mem_mask);
else
return hi_access_rom(offset);
}
-void nes_karaokestudio_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_karaokestudio_device::write_h)
{
LOG_MMC(("karaoke studio write_h, offset: %04x, data: %02x\n", offset, data));
// bit3 1 = M ROM (main unit), 0=E ROM (expansion)
@@ -296,7 +296,6 @@ static void karaoke_studio_cart(device_slot_interface &device)
}
-void nes_karaokestudio_device::device_add_mconfig(machine_config &config)
-{
- NES_KSEXPANSION_SLOT(config, m_subslot, karaoke_studio_cart);
-}
+MACHINE_CONFIG_START(nes_karaokestudio_device::device_add_mconfig)
+ MCFG_KSTUDIO_MINICART_ADD("exp_slot", karaoke_studio_cart)
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/nes/karastudio.h b/src/devices/bus/nes/karastudio.h
index fcb481f046e..bd712722fe9 100644
--- a/src/devices/bus/nes/karastudio.h
+++ b/src/devices/bus/nes/karastudio.h
@@ -24,7 +24,7 @@ public:
virtual ~kstudio_cart_interface();
// reading and writing
- virtual uint8_t read(offs_t offset);
+ virtual DECLARE_READ8_MEMBER(read);
uint8_t *get_cart_base() { return m_rom; }
void write_prg_bank(uint8_t bank) { m_bank = bank; }
@@ -49,16 +49,6 @@ class nes_kstudio_slot_device : public device_t,
friend class nes_karaokestudio_device;
public:
// construction/destruction
- template <typename T>
- nes_kstudio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts)
- : nes_kstudio_slot_device(mconfig, tag, owner, (uint32_t)0)
- {
- option_reset();
- opts(*this);
- set_default_option(nullptr);
- set_fixed(false);
- }
-
nes_kstudio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~nes_kstudio_slot_device();
@@ -78,7 +68,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- uint8_t read(offs_t offset);
+ virtual DECLARE_READ8_MEMBER(read);
void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); }
protected:
@@ -92,6 +82,11 @@ protected:
DECLARE_DEVICE_TYPE(NES_KSEXPANSION_SLOT, nes_kstudio_slot_device)
+#define MCFG_KSTUDIO_MINICART_ADD(_tag, _slot_intf) \
+ MCFG_DEVICE_ADD(_tag, NES_KSEXPANSION_SLOT, 0) \
+MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false)
+
+
//-----------------------------------------------
//
// Karaoke Studio Expansion cart implementation
@@ -135,9 +130,9 @@ public:
// construction/destruction
nes_karaokestudio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/konami.cpp b/src/devices/bus/nes/konami.cpp
index 2d3f20863cb..320ceb1eb9b 100644
--- a/src/devices/bus/nes/konami.cpp
+++ b/src/devices/bus/nes/konami.cpp
@@ -81,7 +81,7 @@ nes_konami_vrc6_device::nes_konami_vrc6_device(const machine_config &mconfig, co
}
nes_konami_vrc7_device::nes_konami_vrc7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : nes_konami_vrc4_device(mconfig, NES_VRC7, tag, owner, clock), m_vrc7snd(*this, "vrc7snd")
+ : nes_konami_vrc4_device(mconfig, NES_VRC7, tag, owner, clock), m_ym2413(*this, "ym")
{
}
@@ -239,7 +239,7 @@ void nes_konami_vrc7_device::pcb_reset()
-------------------------------------------------*/
-void nes_konami_vrc1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_konami_vrc1_device::write_h)
{
LOG_MMC(("VRC-1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -280,7 +280,7 @@ void nes_konami_vrc1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_konami_vrc2_device::read_m(offs_t offset)
+READ8_MEMBER(nes_konami_vrc2_device::read_m)
{
LOG_MMC(("VRC-2 read_m, offset: %04x\n", offset));
@@ -289,10 +289,10 @@ uint8_t nes_konami_vrc2_device::read_m(offs_t offset)
else if (!m_prgram.empty())
return m_prgram[offset & (m_prgram.size() - 1)];
else // sort of protection? it returns open bus in $7000-$7fff and (open bus & 0xfe) | m_latch in $6000-$6fff
- return (offset < 0x1000) ? ((get_open_bus() & 0xfe) | (m_latch & 1)) : get_open_bus();
+ return (offset < 0x1000) ? ((m_open_bus & 0xfe) | (m_latch & 1)) : m_open_bus;
}
-void nes_konami_vrc2_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_konami_vrc2_device::write_m)
{
LOG_MMC(("VRC-2 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -304,7 +304,7 @@ void nes_konami_vrc2_device::write_m(offs_t offset, uint8_t data)
m_latch = data;
}
-void nes_konami_vrc2_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_konami_vrc2_device::write_h)
{
uint8_t bank, shift, mask;
uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100);
@@ -385,7 +385,7 @@ void nes_konami_vrc3_device::device_timer(emu_timer &timer, device_timer_id id,
}
}
-void nes_konami_vrc3_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_konami_vrc3_device::write_h)
{
LOG_MMC(("VRC-3 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -482,7 +482,7 @@ void nes_konami_vrc4_device::set_prg()
}
}
-void nes_konami_vrc4_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_konami_vrc4_device::write_h)
{
uint8_t bank, shift, mask;
uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100);
@@ -564,7 +564,7 @@ void nes_konami_vrc4_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_konami_vrc6_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_konami_vrc6_device::write_h)
{
uint8_t bank;
uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100);
@@ -579,10 +579,10 @@ void nes_konami_vrc6_device::write_h(offs_t offset, uint8_t data)
prg8_cd(data);
break;
case 0x1000: // pulse 1 & global control
- m_vrc6snd->write(add_lines>>8, data);
+ m_vrc6snd->write(space, add_lines>>8, data);
break;
case 0x2000: // pulse 2
- m_vrc6snd->write((add_lines>>8) | 0x100, data);
+ m_vrc6snd->write(space, (add_lines>>8) | 0x100, data);
break;
case 0x3000:
if (add_lines == 0x300)
@@ -596,7 +596,7 @@ void nes_konami_vrc6_device::write_h(offs_t offset, uint8_t data)
}
}
else // saw
- m_vrc6snd->write((add_lines>>8) | 0x200, data);
+ m_vrc6snd->write(space, (add_lines>>8) | 0x200, data);
break;
case 0x5000:
case 0x6000:
@@ -637,15 +637,16 @@ void nes_konami_vrc6_device::write_h(offs_t offset, uint8_t data)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void nes_konami_vrc6_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(nes_konami_vrc6_device::device_add_mconfig)
+
// additional sound hardware
SPEAKER(config, "addon").front_center();
// TODO: this is not how VRC6 clock signaling works!
// The board uses the CLK pin in reality, not hardcoded NTSC values!
- VRC6(config, m_vrc6snd, XTAL(21'477'272)/12).add_route(ALL_OUTPUTS, "addon", 0.5);
-}
+ MCFG_DEVICE_ADD("vrc6snd", VRC6, XTAL(21'477'272)/12)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "addon", 0.5)
+MACHINE_CONFIG_END
/*-------------------------------------------------
@@ -659,7 +660,7 @@ void nes_konami_vrc6_device::device_add_mconfig(machine_config &config)
-------------------------------------------------*/
-void nes_konami_vrc7_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_konami_vrc7_device::write_h)
{
uint8_t bank;
LOG_MMC(("VRC-7 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -681,11 +682,11 @@ void nes_konami_vrc7_device::write_h(offs_t offset, uint8_t data)
case 0x1010:
case 0x1018:
- m_vrc7snd->register_port_w(data);
+ m_ym2413->register_port_w(space, 0, data);
break;
case 0x1030:
case 0x1038:
- m_vrc7snd->data_port_w(data);
+ m_ym2413->data_port_w(space, 0, data);
break;
case 0x2000:
@@ -758,12 +759,15 @@ void nes_konami_vrc7_device::write_h(offs_t offset, uint8_t data)
// and has one output pin for audio, multiplexed for all 6 channels; OPLL has two output pins, one for
// FM and one for Rhythm, and has no special status pin.
-void nes_konami_vrc7_device::device_add_mconfig(machine_config &config)
-{
+// FIXME: we currently emulate this as a base YM2413!
+
+MACHINE_CONFIG_START(nes_konami_vrc7_device::device_add_mconfig)
+
// additional sound hardware
SPEAKER(config, "addon").front_center();
// TODO: this is not how VRC7 clock signaling works!
// The board uses the CLK pin in reality, not hardcoded NTSC values!
- VRC7(config, m_vrc7snd, XTAL(21'477'272)/6).add_route(0, "addon", 1.0).add_route(1, "addon", 0.0);
-}
+ MCFG_DEVICE_ADD("ym", YM2413, XTAL(21'477'272)/12)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "addon", 0.5)
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/nes/konami.h b/src/devices/bus/nes/konami.h
index 86afa1832e1..db269170f53 100644
--- a/src/devices/bus/nes/konami.h
+++ b/src/devices/bus/nes/konami.h
@@ -18,7 +18,7 @@ public:
// construction/destruction
nes_konami_vrc1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -39,9 +39,9 @@ public:
// construction/destruction
nes_konami_vrc2_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_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -63,7 +63,7 @@ public:
// construction/destruction
nes_konami_vrc3_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -91,7 +91,7 @@ public:
// construction/destruction
nes_konami_vrc4_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -126,7 +126,7 @@ public:
// construction/destruction
nes_konami_vrc6_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 DECLARE_WRITE8_MEMBER(write_h) override;
protected:
// device-level overrides
@@ -146,7 +146,7 @@ public:
// construction/destruction
nes_konami_vrc7_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -157,7 +157,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- required_device<vrc7snd_device> m_vrc7snd;
+ required_device<ym2413_device> m_ym2413;
};
diff --git a/src/devices/bus/nes/legacy.cpp b/src/devices/bus/nes/legacy.cpp
index a3ab9377082..d2b1c697296 100644
--- a/src/devices/bus/nes/legacy.cpp
+++ b/src/devices/bus/nes/legacy.cpp
@@ -136,7 +136,7 @@ void nes_ffe8_device::pcb_reset()
-------------------------------------------------*/
-void nes_ffe3_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ffe3_device::write_h)
{
LOG_MMC(("mapper8 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -174,7 +174,7 @@ void nes_ffe4_device::device_timer(emu_timer &timer, device_timer_id id, int par
}
}
-void nes_ffe4_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ffe4_device::write_l)
{
LOG_MMC(("mapper6 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -202,7 +202,7 @@ void nes_ffe4_device::write_l(offs_t offset, uint8_t data)
}
}
-void nes_ffe4_device::chr_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ffe4_device::chr_w)
{
int bank = offset >> 10;
if (m_exram_enabled)
@@ -212,7 +212,7 @@ void nes_ffe4_device::chr_w(offs_t offset, uint8_t data)
m_chr_access[bank][offset & 0x3ff] = data;
}
-uint8_t nes_ffe4_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_ffe4_device::chr_r)
{
int bank = offset >> 10;
if (m_exram_enabled)
@@ -222,7 +222,7 @@ uint8_t nes_ffe4_device::chr_r(offs_t offset)
}
-void nes_ffe4_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ffe4_device::write_h)
{
LOG_MMC(("mapper6 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -257,7 +257,7 @@ void nes_ffe4_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_ffe8_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ffe8_device::write_l)
{
LOG_MMC(("mapper17 write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/legacy.h b/src/devices/bus/nes/legacy.h
index 92722c0591c..91b44e108c0 100644
--- a/src/devices/bus/nes/legacy.h
+++ b/src/devices/bus/nes/legacy.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_ffe3_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,10 +34,10 @@ public:
// construction/destruction
nes_ffe4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
- virtual uint8_t chr_r(offs_t offset) override;
- virtual void chr_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual DECLARE_WRITE8_MEMBER(chr_w) override;
virtual void pcb_reset() override;
@@ -71,8 +71,8 @@ public:
nes_ffe8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override {}
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc1.cpp b/src/devices/bus/nes/mmc1.cpp
index 9a27c601b4c..d324c153782 100644
--- a/src/devices/bus/nes/mmc1.cpp
+++ b/src/devices/bus/nes/mmc1.cpp
@@ -219,7 +219,7 @@ void nes_sxrom_device::update_regs(int reg)
}
}
-void nes_sxrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER( nes_sxrom_device::write_h )
{
LOG_MMC(("sxrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -265,7 +265,7 @@ void nes_sxrom_device::write_h(offs_t offset, uint8_t data)
}
}
-void nes_sxrom_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sxrom_device::write_m)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -279,7 +279,7 @@ void nes_sxrom_device::write_m(offs_t offset, uint8_t data)
}
}
-uint8_t nes_sxrom_device::read_m(offs_t offset)
+READ8_MEMBER(nes_sxrom_device::read_m)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom read_m, offset: %04x\n", offset));
@@ -292,11 +292,11 @@ uint8_t nes_sxrom_device::read_m(offs_t offset)
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
}
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
// SOROM has two RAM banks, the first is not battery backed up, the second is.
-void nes_sorom_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sorom_device::write_m)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -310,7 +310,7 @@ void nes_sorom_device::write_m(offs_t offset, uint8_t data)
}
}
-uint8_t nes_sorom_device::read_m(offs_t offset)
+READ8_MEMBER(nes_sorom_device::read_m)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom read_m, offset: %04x\n", offset));
@@ -323,11 +323,11 @@ uint8_t nes_sorom_device::read_m(offs_t offset)
return m_prgram[offset & (m_prgram.size() - 1)];
}
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
// MMC1A boards have no wram enable/disable bit
-void nes_sxrom_a_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sxrom_a_device::write_m)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom_a write_m, offset: %04x, data: %02x\n", offset, data));
@@ -338,7 +338,7 @@ void nes_sxrom_a_device::write_m(offs_t offset, uint8_t data)
m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
}
-uint8_t nes_sxrom_a_device::read_m(offs_t offset)
+READ8_MEMBER(nes_sxrom_a_device::read_m)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom_a read_m, offset: %04x\n", offset));
@@ -348,10 +348,10 @@ uint8_t nes_sxrom_a_device::read_m(offs_t offset)
if (!m_prgram.empty())
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
-void nes_sorom_a_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sorom_a_device::write_m)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom_a write_m, offset: %04x, data: %02x\n", offset, data));
@@ -362,7 +362,7 @@ void nes_sorom_a_device::write_m(offs_t offset, uint8_t data)
m_prgram[offset & (m_prgram.size() - 1)] = data;
}
-uint8_t nes_sorom_a_device::read_m(offs_t offset)
+READ8_MEMBER(nes_sorom_a_device::read_m)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom_a read_m, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/mmc1.h b/src/devices/bus/nes/mmc1.h
index c8ccb835d76..dd9ecccac75 100644
--- a/src/devices/bus/nes/mmc1.h
+++ b/src/devices/bus/nes/mmc1.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_sxrom_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_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -46,8 +46,8 @@ public:
// construction/destruction
nes_sorom_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
};
@@ -58,8 +58,8 @@ public:
// construction/destruction
nes_sxrom_a_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
};
class nes_sorom_a_device : public nes_sxrom_device
@@ -68,8 +68,8 @@ public:
// construction/destruction
nes_sorom_a_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc2.cpp b/src/devices/bus/nes/mmc2.cpp
index 8be7b04d2d7..1055ce98921 100644
--- a/src/devices/bus/nes/mmc2.cpp
+++ b/src/devices/bus/nes/mmc2.cpp
@@ -130,7 +130,7 @@ void nes_pxrom_device::ppu_latch(offs_t offset)
}
}
-void nes_pxrom_device::pxrom_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER( nes_pxrom_device::pxrom_write )
{
LOG_MMC(("pxrom write_h, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x7000)
@@ -182,7 +182,7 @@ void nes_pxrom_device::pxrom_write(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_fxrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER( nes_fxrom_device::write_h )
{
LOG_MMC(("fxrom write_h, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x7000)
@@ -191,7 +191,7 @@ void nes_fxrom_device::write_h(offs_t offset, uint8_t data)
prg16_89ab(data);
break;
default:
- pxrom_write(offset, data);
+ pxrom_write(space, offset, data, mem_mask);
break;
}
}
diff --git a/src/devices/bus/nes/mmc2.h b/src/devices/bus/nes/mmc2.h
index 9f4d100d2f6..cfd81aa87d3 100644
--- a/src/devices/bus/nes/mmc2.h
+++ b/src/devices/bus/nes/mmc2.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_pxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void pxrom_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { pxrom_write(offset, data); }
+ virtual DECLARE_WRITE8_MEMBER(pxrom_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { pxrom_write(space, offset, data, mem_mask); }
virtual void ppu_latch(offs_t offset) override;
virtual void pcb_reset() override;
@@ -42,7 +42,7 @@ public:
nes_fxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc3.cpp b/src/devices/bus/nes/mmc3.cpp
index d6f7f37dc4a..f8497dbd42d 100644
--- a/src/devices/bus/nes/mmc3.cpp
+++ b/src/devices/bus/nes/mmc3.cpp
@@ -244,7 +244,7 @@ void nes_txrom_device::set_chr( uint8_t chr, int chr_base, int chr_mask )
chr_cb(chr_page ^ 7, chr_base | (m_mmc_vrom_bank[5] & chr_mask), chr);
}
-void nes_txrom_device::txrom_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txrom_device::txrom_write)
{
uint8_t mmc_helper, cmd;
@@ -313,7 +313,7 @@ void nes_txrom_device::txrom_write(offs_t offset, uint8_t data)
}
}
-void nes_txrom_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txrom_device::write_m)
{
LOG_MMC(("txrom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -326,7 +326,7 @@ void nes_txrom_device::write_m(offs_t offset, uint8_t data)
}
}
-uint8_t nes_txrom_device::read_m(offs_t offset)
+READ8_MEMBER(nes_txrom_device::read_m)
{
LOG_MMC(("txrom read_m, offset: %04x\n", offset));
@@ -338,7 +338,7 @@ uint8_t nes_txrom_device::read_m(offs_t offset)
return m_prgram[offset & (m_prgram.size() - 1)];
}
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
@@ -350,7 +350,7 @@ uint8_t nes_txrom_device::read_m(offs_t offset)
-------------------------------------------------*/
-void nes_hkrom_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hkrom_device::write_m)
{
uint8_t write_hi, write_lo;
LOG_MMC(("hkrom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -369,15 +369,15 @@ void nes_hkrom_device::write_m(offs_t offset, uint8_t data)
m_mmc6_ram[offset & 0x3ff] = data;
}
-uint8_t nes_hkrom_device::read_m(offs_t offset)
+READ8_MEMBER(nes_hkrom_device::read_m)
{
LOG_MMC(("hkrom read_m, offset: %04x\n", offset));
if (offset < 0x1000)
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
if (!(m_mmc6_reg & 0xa0))
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
if (BIT(offset, 9) && BIT(m_mmc6_reg, 7)) // access to upper half of 1k when upper read is enabled
return m_mmc6_ram[offset & 0x3ff];
@@ -389,7 +389,7 @@ uint8_t nes_hkrom_device::read_m(offs_t offset)
return 0x00;
}
-void nes_hkrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_hkrom_device::write_h)
{
uint8_t mmc6_helper;
LOG_MMC(("hkrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -423,7 +423,7 @@ void nes_hkrom_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -465,7 +465,7 @@ void nes_txsrom_device::chr_cb( int start, int bank, int source )
chr1_x(start, bank, source);
}
-void nes_txsrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txsrom_device::write_h)
{
LOG_MMC(("txsrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -475,7 +475,7 @@ void nes_txsrom_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -524,7 +524,7 @@ void nes_tqrom_device::set_chr( uint8_t chr, int chr_base, int chr_mask )
-------------------------------------------------*/
-void nes_qj_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_qj_device::write_m)
{
LOG_MMC(("qj write_m, offset: %04x, data: %02x\n", offset, data));
@@ -546,7 +546,7 @@ void nes_qj_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_zz_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_zz_device::write_m)
{
uint8_t mmc_helper = data & 0x07;
LOG_MMC(("zz write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/mmc3.h b/src/devices/bus/nes/mmc3.h
index 5ef9e8dbdaa..d16a0000268 100644
--- a/src/devices/bus/nes/mmc3.h
+++ b/src/devices/bus/nes/mmc3.h
@@ -16,10 +16,10 @@ public:
// construction/destruction
nes_txrom_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_m(offs_t offset, uint8_t data) override;
- virtual void txrom_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { txrom_write(offset, data); }
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(txrom_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { txrom_write(space, offset, data, mem_mask); }
virtual void prg_cb(int start, int bank);
virtual void chr_cb(int start, int bank, int source);
@@ -62,9 +62,9 @@ public:
// construction/destruction
nes_hkrom_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_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -89,7 +89,7 @@ public:
nes_txsrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void chr_cb(int start, int bank, int source) override;
protected:
@@ -119,7 +119,7 @@ public:
nes_qj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
};
@@ -133,7 +133,7 @@ public:
nes_zz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc3_clones.cpp b/src/devices/bus/nes/mmc3_clones.cpp
index 9be591c7d9f..5c578c0fcbd 100644
--- a/src/devices/bus/nes/mmc3_clones.cpp
+++ b/src/devices/bus/nes/mmc3_clones.cpp
@@ -637,11 +637,11 @@ void nes_pjoy84_device::pcb_reset()
-------------------------------------------------*/
-void nes_nitra_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_nitra_device::write_h)
{
LOG_MMC(("nitra write_h, offset: %04x, data: %02x\n", offset, data));
- txrom_write((offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff);
+ txrom_write(space, (offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff, mem_mask);
}
/*-------------------------------------------------
@@ -656,12 +656,12 @@ void nes_nitra_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_ks7057_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ks7057_device::write_h)
{
LOG_MMC(("ks7057 write_h, offset: %04x, data: %02x\n", offset, data));
offset = (BIT(offset, 0) << 1) | BIT(offset, 1) | (offset & ~0x03);
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
}
/*-------------------------------------------------
@@ -679,11 +679,11 @@ void nes_ks7057_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sbros11_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sbros11_device::write_h)
{
LOG_MMC(("smb11 write_h, offset: %04x, data: %02x\n", offset, data));
- txrom_write((offset & 0x6000) | ((offset & 0x04) >> 2), data);
+ txrom_write(space, (offset & 0x6000) | ((offset & 0x04) >> 2), data, mem_mask);
}
/*-------------------------------------------------
@@ -711,14 +711,14 @@ void nes_malisb_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-void nes_malisb_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_malisb_device::write_h)
{
LOG_MMC(("malisb write_h, offset: %04x, data: %02x\n", offset, data));
if (offset > 0x4000)
- txrom_write((offset & 0xfffe) | ((offset & 0x04) >> 2) | ((offset & 0x08) >> 3), data);
+ txrom_write(space, (offset & 0xfffe) | ((offset & 0x04) >> 2) | ((offset & 0x08) >> 3), data, mem_mask);
else
- txrom_write((offset & 0xfffe) | ((offset & 0x08) >> 3), data);
+ txrom_write(space, (offset & 0xfffe) | ((offset & 0x08) >> 3), data, mem_mask);
}
/*-------------------------------------------------
@@ -736,7 +736,7 @@ void nes_malisb_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_family4646_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_family4646_device::write_m)
{
LOG_MMC(("family4646 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -763,7 +763,7 @@ void nes_family4646_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_pikay2k_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_pikay2k_device::write_h)
{
LOG_MMC(("pikay2k write_h, offset: %04x, data: %02x\n", offset, data));
@@ -776,20 +776,20 @@ void nes_pikay2k_device::write_h(offs_t offset, uint8_t data)
case 0x2000:
m_reg[0] = 0;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
// strange WRAM usage: it is protected at start, and gets unprotected after the first write to 0xa000
-void nes_pikay2k_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_pikay2k_device::write_m)
{
LOG_MMC(("pikay2k write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[offset & 0x1fff] = data;
}
-uint8_t nes_pikay2k_device::read_m(offs_t offset)
+READ8_MEMBER(nes_pikay2k_device::read_m)
{
LOG_MMC(("pikay2k read_m, offset: %04x\n", offset));
@@ -820,7 +820,7 @@ void nes_8237_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-void nes_8237_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_8237_device::write_l)
{
LOG_MMC(("unl_8237 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -854,7 +854,7 @@ void nes_8237_device::write_l(offs_t offset, uint8_t data)
}
}
-void nes_8237_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_8237_device::write_h)
{
static const uint8_t conv_table[8] = {0, 2, 6, 1, 7, 3, 4, 5};
LOG_MMC(("unl_8237 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -870,7 +870,7 @@ void nes_8237_device::write_h(offs_t offset, uint8_t data)
case 0x3000:
m_cd_enable = 1;
data = (data & 0xc0) | conv_table[data & 0x07];
- txrom_write(0x0000, data);
+ txrom_write(space, 0x0000, data, mem_mask);
break;
case 0x4000:
@@ -878,7 +878,7 @@ void nes_8237_device::write_h(offs_t offset, uint8_t data)
if (m_cd_enable)
{
m_cd_enable = 0;
- txrom_write(0x0001, data);
+ txrom_write(space, 0x0001, data, mem_mask);
}
break;
@@ -886,9 +886,9 @@ void nes_8237_device::write_h(offs_t offset, uint8_t data)
break;
case 0x7000:
- txrom_write(0x6001, data);
- txrom_write(0x4000, data);
- txrom_write(0x4001, data);
+ txrom_write(space, 0x6001, data, mem_mask);
+ txrom_write(space, 0x4000, data, mem_mask);
+ txrom_write(space, 0x4001, data, mem_mask);
break;
}
}
@@ -907,7 +907,7 @@ void nes_8237_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sglionk_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sglionk_device::write_m)
{
LOG_MMC(("sglionk write_m, offset: %04x, data: %02x\n", offset, data));
@@ -923,7 +923,7 @@ void nes_sglionk_device::write_m(offs_t offset, uint8_t data)
}
-void nes_sglionk_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sglionk_device::write_h)
{
static const uint8_t conv_table[8] = {0, 3, 1, 5, 6, 7, 2, 4};
LOG_MMC(("sglionk write_h, offset: %04x, data: %02x\n", offset, data));
@@ -938,13 +938,13 @@ void nes_sglionk_device::write_h(offs_t offset, uint8_t data)
case 0x2000:
m_reg_enabled = 1;
data = (data & 0xc0) | conv_table[data & 0x07];
- txrom_write(0x0000, data);
+ txrom_write(space, 0x0000, data, mem_mask);
break;
case 0x4000:
if (m_reg_enabled && (m_reg & 0x80) == 0)
{
m_reg_enabled = 0;
- txrom_write(0x0001, data);
+ txrom_write(space, 0x0001, data, mem_mask);
}
break;
}
@@ -954,12 +954,12 @@ void nes_sglionk_device::write_h(offs_t offset, uint8_t data)
switch (offset & 0x03)
{
case 0x02:
- txrom_write(0x6000, data);
+ txrom_write(space, 0x6000, data, mem_mask);
break;
case 0x03:
- txrom_write(0x6001, data);
- txrom_write(0x4000, data);
- txrom_write(0x4001, data);
+ txrom_write(space, 0x6001, data, mem_mask);
+ txrom_write(space, 0x4000, data, mem_mask);
+ txrom_write(space, 0x4001, data, mem_mask);
break;
}
}
@@ -1022,7 +1022,7 @@ void nes_sgboog_device::set_prg(int prg_base, int prg_mask)
}
}
-void nes_sgboog_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sgboog_device::write_l)
{
LOG_MMC(("sgboog write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1046,7 +1046,7 @@ void nes_sgboog_device::write_l(offs_t offset, uint8_t data)
}
}
-void nes_sgboog_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sgboog_device::write_m)
{
LOG_MMC(("sgboog write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1069,7 +1069,7 @@ void nes_sgboog_device::write_m(offs_t offset, uint8_t data)
}
}
-void nes_sgboog_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sgboog_device::write_h)
{
static const uint8_t conv_table[8] = {0,2,5,3,6,1,7,4};
LOG_MMC(("sgboog write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1085,14 +1085,14 @@ void nes_sgboog_device::write_h(offs_t offset, uint8_t data)
if (m_reg[2] && ((m_reg[0] & 0x80) == 0 || (m_latch & 0x07) < 6)) // if we use the prg16 banks and cmd=6,7 DON'T enter!
{
m_reg[2] = 0;
- txrom_write(0x0001, data);
+ txrom_write(space, 0x0001, data, mem_mask);
}
break;
case 0x2000:
data = (data & 0xc0) | conv_table[data & 0x07];
m_reg[2] = 1;
- txrom_write(0x0000, data);
+ txrom_write(space, 0x0000, data, mem_mask);
break;
case 0x4000:
@@ -1100,21 +1100,21 @@ void nes_sgboog_device::write_h(offs_t offset, uint8_t data)
break;
case 0x4001:
- txrom_write(0x6001, data);
+ txrom_write(space, 0x6001, data, mem_mask);
break;
case 0x6001:
- txrom_write(0x4000, data);
- txrom_write(0x4001, data);
+ txrom_write(space, 0x4000, data, mem_mask);
+ txrom_write(space, 0x4001, data, mem_mask);
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
else
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
}
/*-------------------------------------------------
@@ -1140,7 +1140,7 @@ void nes_kasing_device::prg_cb(int start, int bank)
prg8_x(start, bank);
}
-void nes_kasing_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_kasing_device::write_m)
{
LOG_MMC(("kasing write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1172,7 +1172,7 @@ void nes_kasing_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_kay_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_kay_device::write_l)
{
LOG_MMC(("kay write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1195,7 +1195,7 @@ void nes_kay_device::write_l(offs_t offset, uint8_t data)
}
}
-uint8_t nes_kay_device::read_l(offs_t offset)
+READ8_MEMBER(nes_kay_device::read_l)
{
LOG_MMC(("kay read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1269,14 +1269,14 @@ void nes_kay_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-void nes_kay_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_kay_device::write_h)
{
LOG_MMC(("kay write_h, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x6003)
{
case 0x0000:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
set_prg(m_prg_base, m_prg_mask);
break;
@@ -1285,19 +1285,19 @@ void nes_kay_device::write_h(offs_t offset, uint8_t data)
| (BIT(data, 3) << 2) | (BIT(data, 4) << 1) | BIT(data, 5);
if (!m_reg[7])
update_regs();
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
set_prg(m_prg_base, m_prg_mask);
break;
case 0x0003:
m_reg[5] = data;
update_regs();
- txrom_write(0x0000, data);
+ txrom_write(space, 0x0000, data, mem_mask);
set_prg(m_prg_base, m_prg_mask);
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -1314,7 +1314,7 @@ void nes_h2288_device::prg_cb(int start, int bank)
prg8_x(start, bank);
}
-void nes_h2288_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_h2288_device::write_l)
{
LOG_MMC(("h2288 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1334,7 +1334,7 @@ void nes_h2288_device::write_l(offs_t offset, uint8_t data)
}
}
-uint8_t nes_h2288_device::read_l(offs_t offset)
+READ8_MEMBER(nes_h2288_device::read_l)
{
LOG_MMC(("h2288 read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1351,7 +1351,7 @@ uint8_t nes_h2288_device::read_l(offs_t offset)
return 0;
}
-void nes_h2288_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_h2288_device::write_h)
{
static const uint8_t conv_table[8] = {0, 3, 1, 5, 6, 7, 2, 4};
LOG_MMC(("h2288 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1359,11 +1359,11 @@ void nes_h2288_device::write_h(offs_t offset, uint8_t data)
switch (offset & 0x6001)
{
case 0x0000:
- txrom_write(0x0000, (data & 0xc0) | conv_table[data & 0x07]);
+ txrom_write(space, 0x0000, (data & 0xc0) | conv_table[data & 0x07], mem_mask);
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -1378,7 +1378,7 @@ void nes_h2288_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_6035052_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_6035052_device::write_ex)
{
LOG_MMC(("6035052 write_ex, offset: %04x, data: %02x\n", offset, data));
m_prot = data & 0x03;
@@ -1386,7 +1386,7 @@ void nes_6035052_device::write_ex(offs_t offset, uint8_t data)
m_prot = 2;
}
-uint8_t nes_6035052_device::read_ex(offs_t offset)
+READ8_MEMBER(nes_6035052_device::read_ex)
{
LOG_MMC(("6035052 read_ex, offset: %04x\n", offset));
return m_prot;
@@ -1406,7 +1406,7 @@ uint8_t nes_6035052_device::read_ex(offs_t offset)
-------------------------------------------------*/
-void nes_txc_tw_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txc_tw_device::write_l)
{
LOG_MMC(("txc_tw write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1436,22 +1436,22 @@ inline uint8_t kof97_unscramble( uint8_t data )
return ((data >> 1) & 0x01) | ((data >> 4) & 0x02) | ((data << 2) & 0x04) | ((data >> 0) & 0xd8) | ((data << 3) & 0x20);
}
-void nes_kof97_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_kof97_device::write_h)
{
LOG_MMC(("kof97 write_h, offset: %04x, data: %02x\n", offset, data));
/* Addresses 0x9000, 0xa000, 0xd000 & 0xf000 behaves differently than MMC3 */
if (offset == 0x1000)
- txrom_write(0x0001, kof97_unscramble(data));
+ txrom_write(space, 0x0001, kof97_unscramble(data), mem_mask);
else if (offset == 0x2000)
- txrom_write(0x0000, kof97_unscramble(data));
+ txrom_write(space, 0x0000, kof97_unscramble(data), mem_mask);
else if (offset == 0x5000)
- txrom_write(0x4001, kof97_unscramble(data));
+ txrom_write(space, 0x4001, kof97_unscramble(data), mem_mask);
else if (offset == 0x7000)
- txrom_write(0x6001, kof97_unscramble(data));
+ txrom_write(space, 0x6001, kof97_unscramble(data), mem_mask);
/* Other addresses behaves like MMC3, up to unscrambling data */
else
- txrom_write(offset, kof97_unscramble(data));
+ txrom_write(space, offset, kof97_unscramble(data), mem_mask);
}
/*-------------------------------------------------
@@ -1485,7 +1485,7 @@ void nes_kof96_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-void nes_kof96_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_kof96_device::write_l)
{
uint8_t new_bank;
LOG_MMC(("kof96 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1532,11 +1532,11 @@ void nes_kof96_device::write_l(offs_t offset, uint8_t data)
if (!m_reg[3] && offset > 0x1000)
{
m_reg[3] = 1;
- poke(0x4017, 0x40); // FIXME
+ space.write_byte(0x4017, 0x40);
}
}
-uint8_t nes_kof96_device::read_l(offs_t offset)
+READ8_MEMBER(nes_kof96_device::read_l)
{
LOG_MMC(("kof96 read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1547,7 +1547,7 @@ uint8_t nes_kof96_device::read_l(offs_t offset)
return 0;
}
-void nes_kof96_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_kof96_device::write_h)
{
LOG_MMC(("kof96 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1555,12 +1555,12 @@ void nes_kof96_device::write_h(offs_t offset, uint8_t data)
{
case 0x0000:
m_reg[2] = 1;
- txrom_write(0x0000, data);
+ txrom_write(space, 0x0000, data, mem_mask);
break;
case 0x0001:
if (m_reg[2])
- txrom_write(0x0001, data);
+ txrom_write(space, 0x0001, data, mem_mask);
break;
case 0x0002:
@@ -1576,7 +1576,7 @@ void nes_kof96_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -1600,7 +1600,7 @@ void nes_sf3_device::set_chr(uint8_t chr_source, int chr_base, int chr_mask)
chr2_6(chr_base | (m_mmc_vrom_bank[2] & chr_mask), chr_source);
}
-void nes_sf3_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sf3_device::write_h)
{
uint8_t cmd;
LOG_MMC(("sf3 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1624,7 +1624,7 @@ void nes_sf3_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -1643,7 +1643,7 @@ void nes_sf3_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_gouder_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_gouder_device::write_l)
{
static const uint8_t conv_table[256] =
{
@@ -1675,7 +1675,7 @@ void nes_gouder_device::write_l(offs_t offset, uint8_t data)
prg32(((data >> 3) & 0x02) | (data & 0x01));
}
-uint8_t nes_gouder_device::read_l(offs_t offset)
+READ8_MEMBER(nes_gouder_device::read_l)
{
LOG_MMC(("gouder read_l, offset: %04x\n", offset));
@@ -1722,7 +1722,7 @@ void nes_sa9602b_device::prg_cb(int start, int bank)
}
-void nes_sa9602b_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER( nes_sa9602b_device::write_h )
{
LOG_MMC(("sa9602b write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1738,7 +1738,7 @@ void nes_sa9602b_device::write_h(offs_t offset, uint8_t data)
break;
}
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
}
/*-------------------------------------------------
@@ -1762,7 +1762,7 @@ void nes_sachen_shero_device::chr_cb( int start, int bank, int source )
}
-void nes_sachen_shero_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER( nes_sachen_shero_device::write_l )
{
LOG_MMC(("shero write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x4100;
@@ -1777,7 +1777,7 @@ void nes_sachen_shero_device::write_l(offs_t offset, uint8_t data)
}
}
-uint8_t nes_sachen_shero_device::read_l(offs_t offset)
+READ8_MEMBER( nes_sachen_shero_device::read_l )
{
LOG_MMC(("shero read_l, offset: %04x\n", offset));
offset += 0x4100;
@@ -1786,7 +1786,7 @@ uint8_t nes_sachen_shero_device::read_l(offs_t offset)
{
// DSW read!
}
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
@@ -1886,7 +1886,7 @@ void nes_fk23c_device::fk23c_set_chr()
}
}
-void nes_fk23c_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fk23c_device::write_l)
{
LOG_MMC(("fk23c write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1903,7 +1903,7 @@ void nes_fk23c_device::write_l(offs_t offset, uint8_t data)
}
}
-void nes_fk23c_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fk23c_device::write_h)
{
LOG_MMC(("fk23c write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1929,7 +1929,7 @@ void nes_fk23c_device::write_h(offs_t offset, uint8_t data)
fk23c_set_chr();
}
else
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
case 0x2000:
@@ -1937,7 +1937,7 @@ void nes_fk23c_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -1971,7 +1971,7 @@ void nes_s24in1sc03_device::chr_cb(int start, int bank, int source)
chr1_x(start, chr_base | bank, chr);
}
-void nes_s24in1sc03_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_s24in1sc03_device::write_l)
{
LOG_MMC(("s24in1sc03 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -2009,7 +2009,7 @@ void nes_s24in1sc03_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_15in1_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_15in1_device::write_m)
{
LOG_MMC(("bmc_15in1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2037,7 +2037,7 @@ void nes_bmc_15in1_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_sbig7_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_sbig7_device::write_h)
{
uint8_t page;
LOG_MMC(("bmc_sbig7 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2058,7 +2058,7 @@ void nes_bmc_sbig7_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -2076,7 +2076,7 @@ void nes_bmc_sbig7_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_hik8_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_hik8_device::write_m)
{
LOG_MMC(("bmc_hik8 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2123,7 +2123,7 @@ void nes_bmc_hik8_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_hik4_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_hik4_device::write_m)
{
LOG_MMC(("bmc_hik4 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2162,7 +2162,7 @@ void nes_bmc_hik4_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_mario7in1_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_mario7in1_device::write_m)
{
uint8_t helper1, helper2;
LOG_MMC(("bmc_mario7in1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2204,7 +2204,7 @@ void nes_bmc_mario7in1_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_gold7in1_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gold7in1_device::write_m)
{
uint8_t helper1, helper2;
LOG_MMC(("bmc_gold7in1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2265,7 +2265,7 @@ void nes_bmc_gc6in1_device::chr_cb(int start, int bank, int source)
chr1_x(start, ((m_reg[1] & 0x03) << 8) | bank, source);
}
-void nes_bmc_gc6in1_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gc6in1_device::write_l)
{
uint8_t bank;
LOG_MMC(("bmc_gc6in1 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -2294,7 +2294,7 @@ void nes_bmc_gc6in1_device::write_l(offs_t offset, uint8_t data)
}
}
-void nes_bmc_gc6in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gc6in1_device::write_h)
{
uint8_t cmd;
static const uint8_t conv_table[8] = {0, 6, 3, 7, 5, 2, 4, 1};
@@ -2303,20 +2303,20 @@ void nes_bmc_gc6in1_device::write_h(offs_t offset, uint8_t data)
if (!m_reg[2])
{
// in this case we act like MMC3, only with alt prg/chr handlers
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
}
else
{
switch (offset & 0x6001)
{
case 0x0000:
- txrom_write(0x4000, data);
+ txrom_write(space, 0x4000, data, mem_mask);
break;
case 0x0001:
data = (data & 0xc0) | conv_table[data & 0x07];
m_reg[3] = 1;
- txrom_write(0x0000, data);
+ txrom_write(space, 0x0000, data, mem_mask);
break;
case 0x2000:
@@ -2346,7 +2346,7 @@ void nes_bmc_gc6in1_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -2377,7 +2377,7 @@ void nes_bmc_411120c_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank | ((m_reg & 3) << 7), source);
}
-void nes_bmc_411120c_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_411120c_device::write_m)
{
LOG_MMC(("bmc_411120c write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2422,7 +2422,7 @@ void nes_bmc_830118c_device::chr_cb(int start, int bank, int source)
chr1_x(start, (bank & 0x7f) | ((m_reg & 0x0c) << 5), source);
}
-void nes_bmc_830118c_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_830118c_device::write_m)
{
LOG_MMC(("bmc_830118c write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2478,7 +2478,7 @@ inline void nes_pjoy84_device::set_base_mask()
m_chr_mask = BIT(m_reg[0], 7) ? 0x7f : 0xff;
}
-void nes_pjoy84_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_pjoy84_device::write_m)
{
LOG_MMC(("pjoy84 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2523,7 +2523,7 @@ void nes_coolboy_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-void nes_coolboy_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_coolboy_device::write_m)
{
LOG_MMC(("coolboy write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2593,7 +2593,7 @@ void nes_a9746_device::update_banks(uint8_t value)
}
}
-void nes_a9746_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_a9746_device::write_h)
{
LOG_MMC(("unl_a9746 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2619,7 +2619,7 @@ void nes_a9746_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
diff --git a/src/devices/bus/nes/mmc3_clones.h b/src/devices/bus/nes/mmc3_clones.h
index 680e86b4c9c..b6102e8fd62 100644
--- a/src/devices/bus/nes/mmc3_clones.h
+++ b/src/devices/bus/nes/mmc3_clones.h
@@ -17,7 +17,7 @@ public:
nes_nitra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -30,7 +30,7 @@ public:
nes_ks7057_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -43,7 +43,7 @@ public:
nes_sbros11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -56,7 +56,7 @@ public:
nes_malisb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
};
@@ -71,7 +71,7 @@ public:
nes_family4646_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
};
@@ -85,9 +85,9 @@ public:
// construction/destruction
nes_pikay2k_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_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -110,8 +110,8 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -131,8 +131,8 @@ public:
// construction/destruction
nes_sglionk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -154,9 +154,9 @@ public:
// construction/destruction
nes_sgboog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -181,7 +181,7 @@ public:
// construction/destruction
nes_kasing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -203,9 +203,9 @@ public:
// construction/destruction
nes_kay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -230,9 +230,9 @@ public:
// construction/destruction
nes_h2288_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -254,12 +254,12 @@ public:
// construction/destruction
nes_6035052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_ex(offs_t offset) override;
- virtual void write_ex(offs_t offset, uint8_t data) override;
- virtual uint8_t read_l(offs_t offset) override { return read_ex(offset); }
- virtual uint8_t read_m(offs_t offset) override { return read_ex(offset); }
- virtual void write_l(offs_t offset, uint8_t data) override { write_ex(offset, data); }
- virtual void write_m(offs_t offset, uint8_t data) override { write_ex(offset, data); }
+ virtual DECLARE_READ8_MEMBER(read_ex) override;
+ virtual DECLARE_WRITE8_MEMBER(write_ex) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override { return read_ex(space, offset, mem_mask); }
+ virtual DECLARE_READ8_MEMBER(read_m) override { return read_ex(space, offset, mem_mask); }
+ virtual DECLARE_WRITE8_MEMBER(write_l) override { write_ex(space, offset, data, mem_mask); }
+ virtual DECLARE_WRITE8_MEMBER(write_m) override { write_ex(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -281,8 +281,8 @@ public:
nes_txc_tw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override { write_l(offset & 0xff, data); } // offset does not really count for this mapper }
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, offset & 0xff, data, mem_mask); } // offset does not really count for this mapper }
virtual void prg_cb(int start, int bank) override;
};
@@ -296,7 +296,7 @@ public:
nes_kof97_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -308,9 +308,9 @@ public:
// construction/destruction
nes_kof96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override; // offset does not really count for this mapper
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override; // offset does not really count for this mapper
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -334,7 +334,7 @@ public:
nes_sf3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
protected:
virtual void set_chr(uint8_t chr, int chr_base, int chr_mask) override;
@@ -349,8 +349,8 @@ public:
// construction/destruction
nes_gouder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -372,7 +372,7 @@ public:
// construction/destruction
nes_sa9602b_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -395,8 +395,8 @@ public:
// construction/destruction
nes_sachen_shero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -418,7 +418,7 @@ public:
// construction/destruction
nes_a9746_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset();
@@ -441,8 +441,8 @@ public:
// construction/destruction
nes_fk23c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -481,7 +481,7 @@ public:
// construction/destruction
nes_s24in1sc03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) 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;
@@ -505,7 +505,7 @@ public:
nes_bmc_15in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
};
@@ -520,7 +520,7 @@ public:
nes_bmc_sbig7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
};
@@ -534,7 +534,7 @@ public:
// construction/destruction
nes_bmc_hik8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -557,7 +557,7 @@ public:
nes_bmc_hik4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
};
@@ -571,7 +571,7 @@ public:
// construction/destruction
nes_bmc_mario7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -592,7 +592,7 @@ public:
// construction/destruction
nes_bmc_gold7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -613,8 +613,8 @@ public:
// construction/destruction
nes_bmc_gc6in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -637,7 +637,7 @@ public:
// construction/destruction
nes_bmc_411120c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -660,7 +660,7 @@ public:
// construction/destruction
nes_bmc_830118c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -683,7 +683,7 @@ public:
// construction/destruction
nes_pjoy84_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -707,7 +707,7 @@ public:
nes_coolboy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
diff --git a/src/devices/bus/nes/mmc5.cpp b/src/devices/bus/nes/mmc5.cpp
index b512f914e8b..681b9491ef2 100644
--- a/src/devices/bus/nes/mmc5.cpp
+++ b/src/devices/bus/nes/mmc5.cpp
@@ -287,7 +287,7 @@ inline bool nes_exrom_device::in_split()
return false;
}
-uint8_t nes_exrom_device::nt_r(offs_t offset)
+READ8_MEMBER(nes_exrom_device::nt_r)
{
int page = ((offset & 0xc00) >> 10);
@@ -339,7 +339,7 @@ uint8_t nes_exrom_device::nt_r(offs_t offset)
}
}
-void nes_exrom_device::nt_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_exrom_device::nt_w)
{
int page = ((offset & 0xc00) >> 10);
@@ -397,7 +397,7 @@ inline uint8_t nes_exrom_device::bg_ex1_chr_r(uint32_t offset)
return m_vrom[helper & (m_vrom_size - 1)];
}
-uint8_t nes_exrom_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_exrom_device::chr_r)
{
int bank = offset >> 10;
@@ -425,7 +425,7 @@ uint8_t nes_exrom_device::chr_r(offs_t offset)
}
-uint8_t nes_exrom_device::read_l(offs_t offset)
+READ8_MEMBER(nes_exrom_device::read_l)
{
int value;
LOG_MMC(("exrom read_l, offset: %04x\n", offset));
@@ -437,7 +437,7 @@ uint8_t nes_exrom_device::read_l(offs_t offset)
if (BIT(m_exram_control, 1)) // Modes 2,3 = read
return m_exram[offset - 0x1c00];
else
- return get_open_bus(); // Modes 0,1 = open bus
+ return m_open_bus; // Modes 0,1 = open bus
}
switch (offset)
@@ -455,12 +455,12 @@ uint8_t nes_exrom_device::read_l(offs_t offset)
default:
logerror("MMC5 uncaught read, offset: %04x\n", offset + 0x4100);
- return get_open_bus();
+ return m_open_bus;
}
}
-void nes_exrom_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_exrom_device::write_l)
{
LOG_MMC(("exrom write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -618,7 +618,7 @@ void nes_exrom_device::write_l(offs_t offset, uint8_t data)
// bit3 select the chip (2 of them can be accessed, each up to 32KB)
// bit1 & bit2 select the 8KB banks inside the chip
// same mechanism is used also when "WRAM" is mapped in higher banks
-uint8_t nes_exrom_device::read_m(offs_t offset)
+READ8_MEMBER(nes_exrom_device::read_m)
{
LOG_MMC(("exrom read_m, offset: %04x\n", offset));
if (!m_battery.empty() && !m_prgram.empty()) // 2 chips present: first is BWRAM, second is WRAM
@@ -633,10 +633,10 @@ uint8_t nes_exrom_device::read_m(offs_t offset)
else if (!m_battery.empty()) // 1 chip, BWRAM
return m_battery[(offset + (m_wram_base & 0x03) * 0x2000) & (m_battery.size() - 1)];
else
- return get_open_bus();
+ return m_open_bus;
}
-void nes_exrom_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_exrom_device::write_m)
{
LOG_MMC(("exrom write_m, offset: %04x, data: %02x\n", offset, data));
if (m_wram_protect_1 != 0x02 || m_wram_protect_2 != 0x01)
@@ -649,7 +649,7 @@ void nes_exrom_device::write_m(offs_t offset, uint8_t data)
}
// some games (e.g. Bandit Kings of Ancient China) write to PRG-RAM through 0x8000-0xdfff
-uint8_t nes_exrom_device::read_h(offs_t offset)
+READ8_MEMBER(nes_exrom_device::read_h)
{
LOG_MMC(("exrom read_h, offset: %04x\n", offset));
int bank = offset / 0x2000;
@@ -665,7 +665,7 @@ uint8_t nes_exrom_device::read_h(offs_t offset)
return hi_access_rom(offset);
}
-void nes_exrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_exrom_device::write_h)
{
LOG_MMC(("exrom write_h, offset: %04x, data: %02x\n", offset, data));
int bank = offset / 0x2000;
diff --git a/src/devices/bus/nes/mmc5.h b/src/devices/bus/nes/mmc5.h
index 093a64471d0..c0c07cb07a9 100644
--- a/src/devices/bus/nes/mmc5.h
+++ b/src/devices/bus/nes/mmc5.h
@@ -20,16 +20,16 @@ public:
nes_exrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
~nes_exrom_device();
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
-
- virtual uint8_t chr_r(offs_t offset) override;
- virtual uint8_t nt_r(offs_t offset) override;
- virtual void nt_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual DECLARE_READ8_MEMBER(nt_r) override;
+ virtual DECLARE_WRITE8_MEMBER(nt_w) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/multigame.cpp b/src/devices/bus/nes/multigame.cpp
index c117520afe5..6971e68ac61 100644
--- a/src/devices/bus/nes/multigame.cpp
+++ b/src/devices/bus/nes/multigame.cpp
@@ -1016,7 +1016,7 @@ void nes_bmc_42in1reset_device::pcb_reset()
-------------------------------------------------*/
-void nes_action52_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_action52_device::write_h)
{
uint8_t pmode = offset & 0x20;
int pbank = (offset & 0x1fc0) >> 6;
@@ -1048,7 +1048,7 @@ void nes_action52_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_caltron_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_caltron_device::write_m)
{
LOG_MMC(("caltron write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1057,7 +1057,7 @@ void nes_caltron_device::write_m(offs_t offset, uint8_t data)
prg32(offset & 0x07);
}
-void nes_caltron_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_caltron_device::write_h)
{
LOG_MMC(("caltron write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1077,7 +1077,7 @@ void nes_caltron_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_rumblestat_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_rumblestat_device::write_m)
{
LOG_MMC(("rumblestation write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1087,7 +1087,7 @@ void nes_rumblestat_device::write_m(offs_t offset, uint8_t data)
chr8(m_chr, CHRROM);
}
-void nes_rumblestat_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_rumblestat_device::write_h)
{
LOG_MMC(("rumblestation write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1129,14 +1129,14 @@ void nes_svision16_device::update_prg()
}
-uint8_t nes_svision16_device::read_m(offs_t offset)
+READ8_MEMBER(nes_svision16_device::read_m)
{
int bank = (((m_latch1 & 0x0f) << 4) | 0x0f) + 4 ; // +4 due to the eeprom
LOG_MMC(("svision16 read_m, offset: %04x\n", offset));
return m_prg[((bank * 0x2000) + (offset & 0x1fff)) & m_prg_mask];
}
-void nes_svision16_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_svision16_device::write_m)
{
LOG_MMC(("svision16 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1145,7 +1145,7 @@ void nes_svision16_device::write_m(offs_t offset, uint8_t data)
set_nt_mirroring(BIT(data, 5) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-void nes_svision16_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_svision16_device::write_h)
{
LOG_MMC(("svision16 write_h, offset: %04x, data: %02x\n", offset, data));
m_latch2 = data;
@@ -1175,7 +1175,7 @@ void nes_n625092_device::set_prg(uint8_t reg1, uint8_t reg2)
prg16_cdef(helper2 | ((reg1 & 0x70) >> 1));
}
-void nes_n625092_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_n625092_device::write_h)
{
LOG_MMC(("n625092 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1213,7 +1213,7 @@ void nes_n625092_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_a65as_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_a65as_device::write_h)
{
uint8_t helper = (data & 0x30) >> 1;
LOG_MMC(("a65as write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1242,7 +1242,7 @@ void nes_a65as_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_t262_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_t262_device::write_h)
{
uint8_t mmc_helper;
LOG_MMC(("t262 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1281,7 +1281,7 @@ void nes_t262_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
// Are this correct or should they work the same?
-void nes_novel1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_novel1_device::write_h)
{
LOG_MMC(("novel1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1289,7 +1289,7 @@ void nes_novel1_device::write_h(offs_t offset, uint8_t data)
chr8(offset & 0x07, CHRROM);
}
-void nes_novel2_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_novel2_device::write_h)
{
LOG_MMC(("novel2 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1311,7 +1311,7 @@ void nes_novel2_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_studyngame_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_studyngame_device::write_h)
{
LOG_MMC(("studyngame write_h, offset: %04x, data: %02x\n", offset, data));
prg32(data);
@@ -1330,7 +1330,7 @@ void nes_studyngame_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sgun20in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sgun20in1_device::write_h)
{
LOG_MMC(("supergun20in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1345,7 +1345,7 @@ void nes_sgun20in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_vt5201_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_vt5201_device::write_h)
{
LOG_MMC(("vt5201 wirte_h, offset: %04x, data: %02x\n", offset, data));
@@ -1364,7 +1364,7 @@ void nes_vt5201_device::write_h(offs_t offset, uint8_t data)
chr8(offset, CHRROM);
}
-uint8_t nes_vt5201_device::read_h(offs_t offset)
+READ8_MEMBER(nes_vt5201_device::read_h)
{
LOG_MMC(("bmc_vt5201 read_h, offset: %04x\n", offset));
// m_dipsetting = ioport("CARTDIPS")->read();
@@ -1383,7 +1383,7 @@ uint8_t nes_vt5201_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_810544c_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_810544c_device::write_h)
{
uint8_t bank = (offset >> 7);
LOG_MMC(("810544 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1407,7 +1407,7 @@ void nes_810544c_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_ntd03_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ntd03_device::write_h)
{
uint8_t pbank = (offset >> 10) & 0x1e;
uint8_t cbank = ((offset & 0x300) >> 5) | (offset & 0x07);
@@ -1434,7 +1434,7 @@ void nes_ntd03_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_gb63_device::chr_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gb63_device::chr_w)
{
int bank = offset >> 10;
@@ -1459,7 +1459,7 @@ void nes_bmc_gb63_device::update_banks()
// m_vram_disable = BIT(m_reg[1], 1) ? 0 : 1;
}
-void nes_bmc_gb63_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gb63_device::write_h)
{
LOG_MMC(("bmc_gb63 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1468,13 +1468,13 @@ void nes_bmc_gb63_device::write_h(offs_t offset, uint8_t data)
update_banks();
}
-uint8_t nes_bmc_gb63_device::read_h(offs_t offset)
+READ8_MEMBER(nes_bmc_gb63_device::read_h)
{
LOG_MMC(("bmc_gb63 read_h, offset: %04x\n", offset));
// m_dipsetting = ioport("CARTDIPS")->read();
if (m_latch == 1)
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
else
return hi_access_rom(offset);
}
@@ -1493,7 +1493,7 @@ uint8_t nes_bmc_gb63_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_bmc_gka_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gka_device::write_h)
{
LOG_MMC(("bmc_gka write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1529,7 +1529,7 @@ void nes_bmc_gka_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_gkb_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gkb_device::write_h)
{
uint8_t bank = (offset & 0x40) ? 0 : 1;
LOG_MMC(("bmc_gkb write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1551,7 +1551,7 @@ void nes_bmc_gkb_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_ws_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_ws_device::write_m)
{
uint8_t mmc_helper;
LOG_MMC(("bmc_ws write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1588,7 +1588,7 @@ void nes_bmc_ws_device::write_m(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_11160_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_11160_device::write_h)
{
LOG_MMC(("bmc_11160 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1607,7 +1607,7 @@ void nes_bmc_11160_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_g146_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_g146_device::write_h)
{
LOG_MMC(("bmc_g146 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1640,7 +1640,7 @@ void nes_bmc_g146_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_8157_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_8157_device::write_h)
{
LOG_MMC(("bmc_8157 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1653,7 +1653,7 @@ void nes_bmc_8157_device::write_h(offs_t offset, uint8_t data)
set_nt_mirroring(!BIT(offset, 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-uint8_t nes_bmc_8157_device::read_h(offs_t offset)
+READ8_MEMBER(nes_bmc_8157_device::read_h)
{
LOG_MMC(("bmc_8157 read_h, offset: %04x\n", offset));
// m_dipsetting = ioport("CARTDIPS")->read();
@@ -1678,7 +1678,7 @@ uint8_t nes_bmc_8157_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_bmc_hik300_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_hik300_device::write_h)
{
LOG_MMC(("bmc_hik300 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1707,7 +1707,7 @@ void nes_bmc_hik300_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_s700_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_s700_device::write_h)
{
LOG_MMC(("bmc_s700 write_h, offset :%04x, data: %02x\n", offset, data));
@@ -1754,7 +1754,7 @@ void nes_bmc_ball11_device::set_banks()
}
}
-void nes_bmc_ball11_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_ball11_device::write_m)
{
LOG_MMC(("bmc_ball11 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1762,7 +1762,7 @@ void nes_bmc_ball11_device::write_m(offs_t offset, uint8_t data)
set_banks();
}
-void nes_bmc_ball11_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_ball11_device::write_h)
{
LOG_MMC(("bmc_ball11 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1793,7 +1793,7 @@ void nes_bmc_ball11_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_22games_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_22games_device::write_h)
{
LOG_MMC(("bmc_22games write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1846,7 +1846,7 @@ void nes_bmc_64y2k_device::set_prg()
prg16_cdef(helper2);
}
-void nes_bmc_64y2k_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_64y2k_device::write_l)
{
LOG_MMC(("bmc64y2k write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1866,7 +1866,7 @@ void nes_bmc_64y2k_device::write_l(offs_t offset, uint8_t data)
set_nt_mirroring(BIT(data, 5) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-void nes_bmc_64y2k_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_64y2k_device::write_h)
{
LOG_MMC(("bmc64y2k write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1904,7 +1904,7 @@ void nes_bmc_12in1_device::update_banks()
set_nt_mirroring(BIT(m_reg[2], 2) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-void nes_bmc_12in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_12in1_device::write_h)
{
LOG_MMC(("bmc_12in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1930,7 +1930,7 @@ void nes_bmc_12in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_20in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_20in1_device::write_h)
{
LOG_MMC(("bmc_20in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1953,7 +1953,7 @@ void nes_bmc_20in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_21in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_21in1_device::write_h)
{
LOG_MMC(("bmc_21in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1974,7 +1974,7 @@ void nes_bmc_21in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_31in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_31in1_device::write_h)
{
LOG_MMC(("bmc_31in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2006,7 +2006,7 @@ void nes_bmc_31in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_35in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_35in1_device::write_h)
{
LOG_MMC(("bmc_35in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2028,7 +2028,7 @@ void nes_bmc_35in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_36in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_36in1_device::write_h)
{
LOG_MMC(("bmc_36in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2052,7 +2052,7 @@ void nes_bmc_36in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_64in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_64in1_device::write_h)
{
int bank = (offset >> 1) & (offset >> 2) & 0x01;
@@ -2082,7 +2082,7 @@ void nes_bmc_64in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_70in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_70in1_device::write_h)
{
LOG_MMC(("bmc70in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2105,7 +2105,7 @@ void nes_bmc_70in1_device::write_h(offs_t offset, uint8_t data)
}
}
-uint8_t nes_bmc_70in1_device::read_h(offs_t offset)
+READ8_MEMBER(nes_bmc_70in1_device::read_h)
{
LOG_MMC(("bmc70in1 read_h, offset: %04x\n", offset));
@@ -2128,7 +2128,7 @@ uint8_t nes_bmc_70in1_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_bmc_72in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_72in1_device::write_h)
{
int hi_bank = offset & 0x40;
int size_16 = offset & 0x1000;
@@ -2165,7 +2165,7 @@ void nes_bmc_72in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
// does this work for super42in1 as well?!?
-void nes_bmc_76in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_76in1_device::write_h)
{
int hi_bank;
int size_16;
@@ -2210,7 +2210,7 @@ void nes_bmc_76in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_110in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_110in1_device::write_h)
{
uint8_t helper1 = (offset >> 12) ? 0 : 1;
uint8_t helper2 = ((offset >> 8) & 0x40) | ((offset >> 6) & 0x3f);
@@ -2237,7 +2237,7 @@ void nes_bmc_110in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_150in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_150in1_device::write_h)
{
int bank = (offset >> 1) & 0x07;
@@ -2261,7 +2261,7 @@ void nes_bmc_150in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_190in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_190in1_device::write_h)
{
LOG_MMC(("bmc190in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2287,7 +2287,7 @@ void nes_bmc_190in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_800in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_800in1_device::write_h)
{
LOG_MMC(("bmc800in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2312,7 +2312,7 @@ void nes_bmc_800in1_device::write_h(offs_t offset, uint8_t data)
prg16_cdef(m_reg[1]);
}
-uint8_t nes_bmc_800in1_device::read_h(offs_t offset)
+READ8_MEMBER(nes_bmc_800in1_device::read_h)
{
LOG_MMC(("bmc800in1 read_h, offset: %04x\n", offset));
@@ -2335,7 +2335,7 @@ uint8_t nes_bmc_800in1_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_bmc_1200in1_device::chr_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_1200in1_device::chr_w)
{
int bank = offset >> 10;
@@ -2344,7 +2344,7 @@ void nes_bmc_1200in1_device::chr_w(offs_t offset, uint8_t data)
}
-void nes_bmc_1200in1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_1200in1_device::write_h)
{
int bank = ((offset >> 2) & 0x1f) | ((offset & 0x0100) >> 3);
@@ -2390,7 +2390,7 @@ void nes_bmc_1200in1_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_gold260_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gold260_device::write_h)
{
int bank = (offset & 0x1f) | ((offset & 0x0300) >> 3);
LOG_MMC(("bmc_gold260 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2428,7 +2428,7 @@ void nes_bmc_gold260_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_gold150_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_gold150_device::write_h)
{
int bank = (offset & 0x1f) | ((offset & 0x0200) >> 4);
LOG_MMC(("bmc_gold150 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2450,12 +2450,12 @@ void nes_bmc_gold150_device::write_h(offs_t offset, uint8_t data)
prg32(bank);
}
-uint8_t nes_bmc_gold150_device::read_h(offs_t offset)
+READ8_MEMBER(nes_bmc_gold150_device::read_h)
{
LOG_MMC(("bmc_gold150 read_h, offset: %04x\n", offset));
if (m_latch) // open bus
- return get_open_bus();
+ return m_open_bus;
else
return hi_access_rom(offset);
}
@@ -2475,7 +2475,7 @@ uint8_t nes_bmc_gold150_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_bmc_ch001_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_ch001_device::write_h)
{
int bank = ((offset >> 1) & 0x1fc);
LOG_MMC(("bmc_ch001 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2503,12 +2503,12 @@ void nes_bmc_ch001_device::write_h(offs_t offset, uint8_t data)
prg8_ef((offset & 0x07c ) | ((offset & 0x6) ? 0x3 : 0x1));
}
-uint8_t nes_bmc_ch001_device::read_h(offs_t offset)
+READ8_MEMBER(nes_bmc_ch001_device::read_h)
{
LOG_MMC(("bmc_ch001 read_h, offset: %04x\n", offset));
if (m_latch && offset < 0x4000) // open bus
- return get_open_bus();
+ return m_open_bus;
else
return hi_access_rom(offset);
}
@@ -2528,7 +2528,7 @@ uint8_t nes_bmc_ch001_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_bmc_super22_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_super22_device::write_h)
{
LOG_MMC(("bmc_super22 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2581,7 +2581,7 @@ void nes_bmc_super22_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bmc_42in1reset_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bmc_42in1reset_device::write_h)
{
int bank;
LOG_MMC(("bmc_42in1reset write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/multigame.h b/src/devices/bus/nes/multigame.h
index 51db3e9f821..e88ec21be58 100644
--- a/src/devices/bus/nes/multigame.h
+++ b/src/devices/bus/nes/multigame.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_action52_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_caltron_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -56,8 +56,8 @@ public:
// construction/destruction
nes_rumblestat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -78,9 +78,9 @@ public:
// construction/destruction
nes_svision16_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_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -102,7 +102,7 @@ public:
// construction/destruction
nes_n625092_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -124,7 +124,7 @@ public:
// construction/destruction
nes_a65as_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -142,7 +142,7 @@ public:
// construction/destruction
nes_t262_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -163,7 +163,7 @@ public:
// construction/destruction
nes_novel1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -181,7 +181,7 @@ public:
// construction/destruction
nes_novel2_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -199,7 +199,7 @@ public:
// construction/destruction
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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -217,7 +217,7 @@ public:
// construction/destruction
nes_sgun20in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -235,8 +235,8 @@ public:
// construction/destruction
nes_vt5201_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -257,7 +257,7 @@ public:
// construction/destruction
nes_810544c_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -275,7 +275,7 @@ public:
// construction/destruction
nes_ntd03_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -293,9 +293,9 @@ public:
// construction/destruction
nes_bmc_gb63_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 chr_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual DECLARE_WRITE8_MEMBER(chr_w) override;
virtual void pcb_reset() override;
@@ -318,7 +318,7 @@ public:
// construction/destruction
nes_bmc_gka_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -339,7 +339,7 @@ public:
// construction/destruction
nes_bmc_gkb_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -357,7 +357,7 @@ public:
// construction/destruction
nes_bmc_ws_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -378,7 +378,7 @@ public:
// construction/destruction
nes_bmc_11160_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -396,7 +396,7 @@ public:
// construction/destruction
nes_bmc_g146_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -414,8 +414,8 @@ public:
// construction/destruction
nes_bmc_8157_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -433,7 +433,7 @@ public:
// construction/destruction
nes_bmc_hik300_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -451,7 +451,7 @@ public:
// construction/destruction
nes_bmc_s700_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -469,8 +469,8 @@ public:
// construction/destruction
nes_bmc_ball11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -492,7 +492,7 @@ public:
// construction/destruction
nes_bmc_22games_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -510,8 +510,8 @@ public:
// construction/destruction
nes_bmc_64y2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -533,7 +533,7 @@ public:
// construction/destruction
nes_bmc_12in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -555,7 +555,7 @@ public:
// construction/destruction
nes_bmc_20in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -573,7 +573,7 @@ public:
// construction/destruction
nes_bmc_21in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -591,7 +591,7 @@ public:
// construction/destruction
nes_bmc_31in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -609,7 +609,7 @@ public:
// construction/destruction
nes_bmc_35in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -627,7 +627,7 @@ public:
// construction/destruction
nes_bmc_36in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -645,7 +645,7 @@ public:
// construction/destruction
nes_bmc_64in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -663,8 +663,8 @@ public:
// construction/destruction
nes_bmc_70in1_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -686,7 +686,7 @@ public:
// construction/destruction
nes_bmc_72in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -704,7 +704,7 @@ public:
// construction/destruction
nes_bmc_76in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -725,7 +725,7 @@ public:
// construction/destruction
nes_bmc_110in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -743,7 +743,7 @@ public:
// construction/destruction
nes_bmc_150in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -761,7 +761,7 @@ public:
// construction/destruction
nes_bmc_190in1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -779,8 +779,8 @@ public:
// construction/destruction
nes_bmc_800in1_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -802,8 +802,8 @@ public:
// construction/destruction
nes_bmc_1200in1_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 chr_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual DECLARE_WRITE8_MEMBER(chr_w) override;
virtual void pcb_reset() override;
@@ -824,8 +824,8 @@ 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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -846,7 +846,7 @@ 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;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -864,8 +864,8 @@ public:
// construction/destruction
nes_bmc_ch001_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -886,7 +886,7 @@ public:
// construction/destruction
nes_bmc_super22_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -922,7 +922,7 @@ public:
// construction/destruction
nes_bmc_42in1reset_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/namcot.cpp b/src/devices/bus/nes/namcot.cpp
index e2898d6b9ba..84b41996272 100644
--- a/src/devices/bus/nes/namcot.cpp
+++ b/src/devices/bus/nes/namcot.cpp
@@ -246,7 +246,7 @@ void nes_namcot163_device::pcb_reset()
-------------------------------------------------*/
-void nes_namcot3433_device::dxrom_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot3433_device::dxrom_write)
{
LOG_MMC(("dxrom_write, offset: %04x, data: %02x\n", offset, data));
@@ -290,7 +290,7 @@ void nes_namcot3433_device::dxrom_write(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_namcot3446_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot3446_device::write_h)
{
LOG_MMC(("namcot3446 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -334,7 +334,7 @@ void nes_namcot3446_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_namcot3425_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot3425_device::write_h)
{
uint8_t mode;
LOG_MMC(("namcot3425 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -407,7 +407,7 @@ void nes_namcot340_device::device_timer(emu_timer &timer, device_timer_id id, in
}
}
-void nes_namcot340_device::n340_lowrite(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot340_device::n340_lowrite)
{
LOG_MMC(("n340_lowrite, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -426,7 +426,7 @@ void nes_namcot340_device::n340_lowrite(offs_t offset, uint8_t data)
}
}
-uint8_t nes_namcot340_device::n340_loread(offs_t offset)
+READ8_MEMBER(nes_namcot340_device::n340_loread)
{
LOG_MMC(("n340_loread, offset: %04x\n", offset));
offset += 0x100;
@@ -444,7 +444,7 @@ uint8_t nes_namcot340_device::n340_loread(offs_t offset)
}
}
-void nes_namcot340_device::n340_hiwrite(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot340_device::n340_hiwrite)
{
LOG_MMC(("n340_hiwrite, offset: %04x, data: %02x\n", offset, data));
@@ -505,17 +505,17 @@ void nes_namcot340_device::n340_hiwrite(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_namcot175_device::read_m(offs_t offset)
+READ8_MEMBER(nes_namcot175_device::read_m)
{
// the only game supporting this is Family Circuit '91, and it has 2KB of battery
// but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not)
if (!m_battery.empty() && !m_wram_protect)
return m_battery[offset & (m_battery.size() - 1)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
-void nes_namcot175_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot175_device::write_m)
{
// the only game supporting this is Family Circuit '91, and it has 2KB of battery
// but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not)
@@ -523,7 +523,7 @@ void nes_namcot175_device::write_m(offs_t offset, uint8_t data)
m_battery[offset & (m_battery.size() - 1)] = data;
}
-void nes_namcot175_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot175_device::write_h)
{
LOG_MMC(("namcot175 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -536,7 +536,7 @@ void nes_namcot175_device::write_h(offs_t offset, uint8_t data)
prg8_89(data & 0x3f);
break;
default:
- n340_hiwrite(offset, data);
+ n340_hiwrite(space, offset, data, mem_mask);
break;
}
}
@@ -560,7 +560,7 @@ void nes_namcot175_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_namcot163_device::chr_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot163_device::chr_w)
{
int bank = offset >> 10;
@@ -576,7 +576,7 @@ void nes_namcot163_device::chr_w(offs_t offset, uint8_t data)
// or ROM, so no write
}
-uint8_t nes_namcot163_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_namcot163_device::chr_r)
{
int bank = offset >> 10;
if (!(m_latch & 0x40) && m_chr_bank >= 0xe0)
@@ -590,15 +590,15 @@ uint8_t nes_namcot163_device::chr_r(offs_t offset)
}
-uint8_t nes_namcot163_device::read_m(offs_t offset)
+READ8_MEMBER(nes_namcot163_device::read_m)
{
if (!m_battery.empty() && offset < m_battery.size())
return m_battery[offset & (m_battery.size() - 1)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
-void nes_namcot163_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot163_device::write_m)
{
// the pcb can separately protect each 2KB chunk of the external wram from writes
int bank = (offset & 0x1800) >> 11;
@@ -606,7 +606,7 @@ void nes_namcot163_device::write_m(offs_t offset, uint8_t data)
m_battery[offset & (m_battery.size() - 1)] = data;
}
-void nes_namcot163_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot163_device::write_l)
{
LOG_MMC(("namcot163 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -617,12 +617,12 @@ void nes_namcot163_device::write_l(offs_t offset, uint8_t data)
LOG_MMC(("Namcot-163 sound reg write, data: %02x\n", data));
break;
default:
- n340_lowrite(offset, data);
+ n340_lowrite(space, offset, data, mem_mask);
break;
}
}
-uint8_t nes_namcot163_device::read_l(offs_t offset)
+READ8_MEMBER(nes_namcot163_device::read_l)
{
LOG_MMC(("namcot163 read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -633,7 +633,7 @@ uint8_t nes_namcot163_device::read_l(offs_t offset)
LOG_MMC(("Namcot-163 sound reg read\n"));
return 0;
default:
- return n340_loread(offset);
+ return n340_loread(space, offset, mem_mask);
}
}
@@ -645,7 +645,7 @@ void nes_namcot163_device::set_mirror(uint8_t page, uint8_t data)
set_nt_page(page, CIRAM, data & 0x01, 1);
}
-void nes_namcot163_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_namcot163_device::write_h)
{
int page;
LOG_MMC(("namcot163 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -680,7 +680,7 @@ void nes_namcot163_device::write_h(offs_t offset, uint8_t data)
LOG_MMC(("Namcot-163 sound address write, data: %02x\n", data));
break;
default:
- n340_hiwrite(offset, data);
+ n340_hiwrite(space, offset, data, mem_mask);
break;
}
}
diff --git a/src/devices/bus/nes/namcot.h b/src/devices/bus/nes/namcot.h
index bcf72f5bad4..a4ab64084e1 100644
--- a/src/devices/bus/nes/namcot.h
+++ b/src/devices/bus/nes/namcot.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_namcot3433_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void dxrom_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { dxrom_write(offset, data); }
+ virtual DECLARE_WRITE8_MEMBER(dxrom_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { dxrom_write(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -40,7 +40,7 @@ public:
// construction/destruction
nes_namcot3446_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -61,7 +61,7 @@ public:
// construction/destruction
nes_namcot3425_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -83,12 +83,12 @@ public:
// construction/destruction
nes_namcot340_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- uint8_t n340_loread(offs_t offset);
- void n340_lowrite(offs_t offset, uint8_t data);
- void n340_hiwrite(offs_t offset, uint8_t data);
- virtual uint8_t read_l(offs_t offset) override { return n340_loread(offset); }
- virtual void write_l(offs_t offset, uint8_t data) override { n340_lowrite(offset, data); }
- virtual void write_h(offs_t offset, uint8_t data) override { n340_hiwrite(offset, data); }
+ virtual DECLARE_READ8_MEMBER(n340_loread);
+ virtual DECLARE_WRITE8_MEMBER(n340_lowrite);
+ virtual DECLARE_WRITE8_MEMBER(n340_hiwrite);
+ virtual DECLARE_READ8_MEMBER(read_l) override { return n340_loread(space, offset, mem_mask); }
+ virtual DECLARE_WRITE8_MEMBER(write_l) override { n340_lowrite(space, offset, data, mem_mask); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { n340_hiwrite(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -122,9 +122,9 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -141,15 +141,15 @@ public:
// construction/destruction
nes_namcot163_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
// we have to overwrite these to allow CIRAM to be used for VRAM, even if it's not clear which game(s) use this
- virtual uint8_t chr_r(offs_t offset) override;
- virtual void chr_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual DECLARE_WRITE8_MEMBER(chr_w) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/nanjing.cpp b/src/devices/bus/nes/nanjing.cpp
index 9719816beb2..26a7e20f97c 100644
--- a/src/devices/bus/nes/nanjing.cpp
+++ b/src/devices/bus/nes/nanjing.cpp
@@ -111,7 +111,7 @@ void nes_nanjing_device::hblank_irq(int scanline, int vblank, int blanked)
}
-void nes_nanjing_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_nanjing_device::write_l)
{
LOG_MMC(("nanjing write_l, offset: %04x, data: %02x\n", offset, data));
@@ -154,7 +154,7 @@ void nes_nanjing_device::write_l(offs_t offset, uint8_t data)
prg32((m_reg[0] & 0x0f) | ((m_reg[1] & 0x0f) << 4));
}
-uint8_t nes_nanjing_device::read_l(offs_t offset)
+READ8_MEMBER(nes_nanjing_device::read_l)
{
uint8_t value = 0;
LOG_MMC(("nanjing read_l, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/nanjing.h b/src/devices/bus/nes/nanjing.h
index c5a71032573..a231872a124 100644
--- a/src/devices/bus/nes/nanjing.h
+++ b/src/devices/bus/nes/nanjing.h
@@ -19,8 +19,8 @@ public:
nes_nanjing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
~nes_nanjing_device();
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/nes_slot.cpp b/src/devices/bus/nes/nes_slot.cpp
index ab8235ccc55..c3d036b8493 100644
--- a/src/devices/bus/nes/nes_slot.cpp
+++ b/src/devices/bus/nes/nes_slot.cpp
@@ -592,12 +592,6 @@ void device_nes_cart_interface::reset_cpu()
m_maincpu->set_pc(0xfffc);
}
-void device_nes_cart_interface::poke(offs_t offset, uint8_t data)
-{
- // even worse hack
- m_maincpu->space(AS_PROGRAM).write_byte(offset, data);
-}
-
//-------------------------------------------------
// Other helpers
//-------------------------------------------------
@@ -630,7 +624,7 @@ uint8_t device_nes_cart_interface::account_bus_conflict(uint32_t offset, uint8_t
// PPU accessors
//-------------------------------------------------
-void device_nes_cart_interface::chr_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(device_nes_cart_interface::chr_w)
{
int bank = offset >> 10;
@@ -638,14 +632,14 @@ void device_nes_cart_interface::chr_w(offs_t offset, uint8_t data)
m_chr_access[bank][offset & 0x3ff] = data;
}
-uint8_t device_nes_cart_interface::chr_r(offs_t offset)
+READ8_MEMBER(device_nes_cart_interface::chr_r)
{
int bank = offset >> 10;
return m_chr_access[bank][offset & 0x3ff];
}
-void device_nes_cart_interface::nt_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(device_nes_cart_interface::nt_w)
{
int page = ((offset & 0xc00) >> 10);
@@ -655,7 +649,7 @@ void device_nes_cart_interface::nt_w(offs_t offset, uint8_t data)
m_nt_access[page][offset & 0x3ff] = data;
}
-uint8_t device_nes_cart_interface::nt_r(offs_t offset)
+READ8_MEMBER(device_nes_cart_interface::nt_r)
{
int page = ((offset & 0xc00) >> 10);
return m_nt_access[page][offset & 0x3ff];
@@ -671,26 +665,26 @@ uint8_t device_nes_cart_interface::nt_r(offs_t offset)
// source)
//-------------------------------------------------
-uint8_t device_nes_cart_interface::read_l(offs_t offset)
+READ8_MEMBER(device_nes_cart_interface::read_l)
{
- return get_open_bus();
+ return m_open_bus;
}
-uint8_t device_nes_cart_interface::read_m(offs_t offset)
+READ8_MEMBER(device_nes_cart_interface::read_m)
{
if (!m_battery.empty())
return m_battery[offset & (m_battery.size() - 1)];
if (!m_prgram.empty())
return m_prgram[offset & (m_prgram.size() - 1)];
- return get_open_bus();
+ return m_open_bus;
}
-void device_nes_cart_interface::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(device_nes_cart_interface::write_l)
{
}
-void device_nes_cart_interface::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(device_nes_cart_interface::write_m)
{
if (!m_battery.empty())
m_battery[offset & (m_battery.size() - 1)] = data;
@@ -698,7 +692,7 @@ void device_nes_cart_interface::write_m(offs_t offset, uint8_t data)
m_prgram[offset & (m_prgram.size() - 1)] = data;
}
-void device_nes_cart_interface::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(device_nes_cart_interface::write_h)
{
}
@@ -746,9 +740,6 @@ void device_nes_cart_interface::pcb_start(running_machine &machine, uint8_t *cir
device().save_item(NAME(m_vram));
if (!m_battery.empty())
device().save_item(NAME(m_battery));
-
- // open bus
- device().save_item(NAME(m_open_bus));
}
void device_nes_cart_interface::pcb_reg_postload(running_machine &machine)
@@ -952,11 +943,11 @@ std::string nes_cart_slot_device::get_default_card_software(get_default_card_sof
read
-------------------------------------------------*/
-uint8_t nes_cart_slot_device::read_l(offs_t offset)
+READ8_MEMBER(nes_cart_slot_device::read_l)
{
if (m_cart)
{
- uint8_t val = m_cart->read_l(offset);
+ uint8_t val = m_cart->read_l(space, offset);
// update open bus
m_cart->set_open_bus(((offset + 0x4100) & 0xff00) >> 8);
return val;
@@ -965,11 +956,11 @@ uint8_t nes_cart_slot_device::read_l(offs_t offset)
return 0xff;
}
-uint8_t nes_cart_slot_device::read_m(offs_t offset)
+READ8_MEMBER(nes_cart_slot_device::read_m)
{
if (m_cart)
{
- uint8_t val = m_cart->read_m(offset);
+ uint8_t val = m_cart->read_m(space, offset);
// update open bus
m_cart->set_open_bus(((offset + 0x6000) & 0xff00) >> 8);
return val;
@@ -978,11 +969,11 @@ uint8_t nes_cart_slot_device::read_m(offs_t offset)
return 0xff;
}
-uint8_t nes_cart_slot_device::read_h(offs_t offset)
+READ8_MEMBER(nes_cart_slot_device::read_h)
{
if (m_cart)
{
- uint8_t val = m_cart->read_h(offset);
+ uint8_t val = m_cart->read_h(space, offset);
// update open bus
m_cart->set_open_bus(((offset + 0x8000) & 0xff00) >> 8);
return val;
@@ -991,11 +982,11 @@ uint8_t nes_cart_slot_device::read_h(offs_t offset)
return 0xff;
}
-uint8_t nes_cart_slot_device::read_ex(offs_t offset)
+READ8_MEMBER(nes_cart_slot_device::read_ex)
{
if (m_cart)
{
- uint8_t val = m_cart->read_ex(offset);
+ uint8_t val = m_cart->read_ex(space, offset);
// update open bus
m_cart->set_open_bus(((offset + 0x4020) & 0xff00) >> 8);
return val;
@@ -1009,41 +1000,41 @@ uint8_t nes_cart_slot_device::read_ex(offs_t offset)
write
-------------------------------------------------*/
-void nes_cart_slot_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cart_slot_device::write_l)
{
if (m_cart)
{
- m_cart->write_l(offset, data);
+ m_cart->write_l(space, offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x4100) & 0xff00) >> 8);
}
}
-void nes_cart_slot_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cart_slot_device::write_m)
{
if (m_cart)
{
- m_cart->write_m(offset, data);
+ m_cart->write_m(space, offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x6000) & 0xff00) >> 8);
}
}
-void nes_cart_slot_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cart_slot_device::write_h)
{
if (m_cart)
{
- m_cart->write_h(offset, data);
+ m_cart->write_h(space, offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x8000) & 0xff00) >> 8);
}
}
-void nes_cart_slot_device::write_ex(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cart_slot_device::write_ex)
{
if (m_cart)
{
- m_cart->write_ex(offset, data);
+ m_cart->write_ex(space, offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x4020) & 0xff00) >> 8);
}
diff --git a/src/devices/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h
index 952ffd74b1f..b86dbfb1e41 100644
--- a/src/devices/bus/nes/nes_slot.h
+++ b/src/devices/bus/nes/nes_slot.h
@@ -166,19 +166,19 @@ public:
virtual ~device_nes_cart_interface();
// reading and writing
- virtual uint8_t read_l(offs_t offset);
- virtual uint8_t read_m(offs_t offset);
- virtual uint8_t read_h(offs_t offset) { return 0xff; }
- virtual uint8_t read_ex(offs_t offset) { return 0xff; }
- virtual void write_l(offs_t offset, uint8_t data);
- virtual void write_m(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data);
- virtual void write_ex(offs_t offset, uint8_t data) { }
-
- virtual uint8_t chr_r(offs_t offset);
- virtual void chr_w(offs_t offset, uint8_t data);
- virtual uint8_t nt_r(offs_t offset);
- virtual void nt_w(offs_t offset, uint8_t data);
+ virtual DECLARE_READ8_MEMBER(read_l);
+ virtual DECLARE_READ8_MEMBER(read_m);
+ virtual DECLARE_READ8_MEMBER(read_h) { return 0xff; }
+ virtual DECLARE_READ8_MEMBER(read_ex) { return 0xff; }
+ virtual DECLARE_WRITE8_MEMBER(write_l);
+ virtual DECLARE_WRITE8_MEMBER(write_m);
+ virtual DECLARE_WRITE8_MEMBER(write_h);
+ virtual DECLARE_WRITE8_MEMBER(write_ex) { }
+
+ virtual DECLARE_READ8_MEMBER(chr_r);
+ virtual DECLARE_WRITE8_MEMBER(chr_w);
+ virtual DECLARE_READ8_MEMBER(nt_r);
+ virtual DECLARE_WRITE8_MEMBER(nt_w);
// hack until disk system is made modern!
virtual void disk_flip_side() { }
@@ -202,7 +202,6 @@ public:
void set_vrc_lines(int PRG_A, int PRG_B, int CHR) { m_vrc_ls_prg_a = PRG_A; m_vrc_ls_prg_b = PRG_B; m_vrc_ls_chr = CHR; }
void set_x1_005_alt(bool val) { m_x1_005_alt_mirroring = val; }
void set_bus_conflict(bool val) { m_bus_conflict = val; }
- uint8_t get_open_bus() { return m_open_bus; }
void set_open_bus(uint8_t val) { m_open_bus = val; }
uint8_t *get_prg_base() { return m_prg; }
@@ -238,7 +237,6 @@ protected:
DECLARE_WRITE_LINE_MEMBER(set_irq_line);
void hold_irq_line();
void reset_cpu();
- void poke(offs_t offset, uint8_t data);
// internal state
uint8_t *m_prg;
@@ -272,10 +270,8 @@ protected:
bool m_pcb_ctrl_mirror, m_four_screen_vram, m_has_trainer;
bool m_x1_005_alt_mirroring; // temp hack for two kind of mirroring in Taito X1-005 boards (to be replaced with pin checking)
bool m_bus_conflict;
-private:
uint8_t m_open_bus;
-public:
// PRG
inline int prg_8k_bank_num(int bank);
inline void update_prg_banks(int prg_bank_start, int prg_bank_end);
@@ -392,14 +388,14 @@ public:
int nes_get_pcb_id(const char *slot);
// reading and writing
- virtual uint8_t read_l(offs_t offset);
- virtual uint8_t read_m(offs_t offset);
- virtual uint8_t read_h(offs_t offset);
- virtual uint8_t read_ex(offs_t offset);
- virtual void write_l(offs_t offset, uint8_t data);
- virtual void write_m(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data);
- virtual void write_ex(offs_t offset, uint8_t data);
+ virtual DECLARE_READ8_MEMBER(read_l);
+ virtual DECLARE_READ8_MEMBER(read_m);
+ virtual DECLARE_READ8_MEMBER(read_h);
+ virtual DECLARE_READ8_MEMBER(read_ex);
+ virtual DECLARE_WRITE8_MEMBER(write_l);
+ virtual DECLARE_WRITE8_MEMBER(write_m);
+ virtual DECLARE_WRITE8_MEMBER(write_h);
+ virtual DECLARE_WRITE8_MEMBER(write_ex);
// hack until disk system is made modern!
virtual void disk_flip_side() { if (m_cart) m_cart->disk_flip_side(); }
@@ -433,4 +429,9 @@ DECLARE_DEVICE_TYPE(NES_CART_SLOT, nes_cart_slot_device)
#define NESSLOT_PRGROM_REGION_TAG ":cart:prg_rom"
#define NESSLOT_CHRROM_REGION_TAG ":cart:chr_rom"
+
+#define MCFG_NES_CARTRIDGE_NOT_MANDATORY \
+ static_cast<nes_cart_slot_device *>(device)->set_must_be_loaded(false);
+
+
#endif // MAME_BUS_NES_NES_SLOT_H
diff --git a/src/devices/bus/nes/ntdec.cpp b/src/devices/bus/nes/ntdec.cpp
index 6fbcd6f31ef..5ea3458e8f3 100644
--- a/src/devices/bus/nes/ntdec.cpp
+++ b/src/devices/bus/nes/ntdec.cpp
@@ -102,7 +102,7 @@ void nes_ntdec_fh_device::pcb_reset()
-------------------------------------------------*/
-void nes_ntdec_asder_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ntdec_asder_device::write_h)
{
LOG_MMC(("ntdec_asder write_h, offset: %04x, data: %02x\n", offset, data));
@@ -165,7 +165,7 @@ void nes_ntdec_asder_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_ntdec_fh_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_ntdec_fh_device::write_m)
{
LOG_MMC(("ntdec_fh write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/ntdec.h b/src/devices/bus/nes/ntdec.h
index 062c5d7dcec..1e5e8ef6cbb 100644
--- a/src/devices/bus/nes/ntdec.h
+++ b/src/devices/bus/nes/ntdec.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_ntdec_asder_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -37,7 +37,7 @@ public:
// construction/destruction
nes_ntdec_fh_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/nxrom.cpp b/src/devices/bus/nes/nxrom.cpp
index 352b7534250..e78fd6d1527 100644
--- a/src/devices/bus/nes/nxrom.cpp
+++ b/src/devices/bus/nes/nxrom.cpp
@@ -145,6 +145,9 @@ void nes_nrom_device::common_start()
save_item(NAME(m_nt_src));
save_item(NAME(m_nt_orig));
save_item(NAME(m_nt_writable));
+
+ // open bus
+ save_item(NAME(m_open_bus));
}
void nes_nrom_device::pcb_reset()
@@ -288,23 +291,23 @@ void nes_un1rom_device::pcb_reset()
-------------------------------------------------*/
-uint8_t nes_nrom368_device::read_l(offs_t offset)
+READ8_MEMBER(nes_nrom368_device::read_l)
{
LOG_MMC(("nrom368 read_l, offset: %04x\n", offset));
offset += 0x100;
if (offset >= 0x800)
return m_prg[offset - 0x800];
else
- return get_open_bus();
+ return m_open_bus;
}
-uint8_t nes_nrom368_device::read_m(offs_t offset)
+READ8_MEMBER(nes_nrom368_device::read_m)
{
LOG_MMC(("nrom368 read_m, offset: %04x\n", offset));
return m_prg[0x1800 + (offset & 0x1fff)];
}
-uint8_t nes_nrom368_device::read_h(offs_t offset)
+READ8_MEMBER(nes_nrom368_device::read_h)
{
LOG_MMC(("nrom368 read_h, offset: %04x\n", offset));
return m_prg[0x3800 + (offset & 0x7fff)];
@@ -331,7 +334,7 @@ uint8_t nes_nrom368_device::read_h(offs_t offset)
-------------------------------------------------*/
-void nes_axrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_axrom_device::write_h)
{
LOG_MMC(("axrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -352,7 +355,7 @@ void nes_axrom_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_bxrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bxrom_device::write_h)
{
/* This portion of the mapper is nearly identical to Mapper 7, except no one-screen mirroring */
/* Deadly Towers is really a BxROM game - the demo screens look wrong using mapper 7. */
@@ -388,7 +391,7 @@ void nes_bxrom_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_cnrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cnrom_device::write_h)
{
LOG_MMC(("cxrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -409,7 +412,7 @@ void nes_cnrom_device::write_h(offs_t offset, uint8_t data)
chr8(data, CHRROM);
}
-uint8_t nes_cnrom_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_cnrom_device::chr_r)
{
int bank = offset >> 10;
@@ -418,7 +421,7 @@ uint8_t nes_cnrom_device::chr_r(offs_t offset)
// give actual VROM content or open bus values.
// For most boards, chr_open_bus remains always zero.
if (m_chr_open_bus)
- return get_open_bus();
+ return m_open_bus;
return m_chr_access[bank][offset & 0x3ff];
}
@@ -438,7 +441,7 @@ uint8_t nes_cnrom_device::chr_r(offs_t offset)
-------------------------------------------------*/
-void nes_cprom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cprom_device::write_h)
{
LOG_MMC(("cprom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -459,7 +462,7 @@ void nes_cprom_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_gxrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_gxrom_device::write_h)
{
LOG_MMC(("gxrom write_h, offset %04x, data: %02x\n", offset, data));
@@ -485,7 +488,7 @@ void nes_gxrom_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_uxrom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_uxrom_device::write_h)
{
LOG_MMC(("uxrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -511,7 +514,7 @@ void nes_uxrom_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_uxrom_cc_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_uxrom_cc_device::write_h)
{
LOG_MMC(("uxrom_cc write_h, offset: %04x, data: %02x\n", offset, data));
@@ -532,7 +535,7 @@ void nes_uxrom_cc_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_un1rom_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_un1rom_device::write_h)
{
LOG_MMC(("un1rom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -555,7 +558,7 @@ void nes_un1rom_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_nochr_device::chr_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_nochr_device::chr_w)
{
int mirr = get_mirroring();
if (mirr == PPU_MIRROR_HIGH)
@@ -566,7 +569,7 @@ void nes_nochr_device::chr_w(offs_t offset, uint8_t data)
m_ciram[offset & 0x7ff] = data; // not sure here, since there is no software to test...
}
-uint8_t nes_nochr_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_nochr_device::chr_r)
{
int mirr = get_mirroring();
if (mirr == PPU_MIRROR_HIGH)
diff --git a/src/devices/bus/nes/nxrom.h b/src/devices/bus/nes/nxrom.h
index 382abf05390..721ed5b5e98 100644
--- a/src/devices/bus/nes/nxrom.h
+++ b/src/devices/bus/nes/nxrom.h
@@ -36,9 +36,9 @@ public:
// construction/destruction
nes_nrom368_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
};
@@ -62,7 +62,7 @@ public:
// construction/destruction
nes_axrom_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -80,7 +80,7 @@ public:
// construction/destruction
nes_bxrom_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -98,8 +98,8 @@ public:
// construction/destruction
nes_cnrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t chr_r(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -122,7 +122,7 @@ public:
// construction/destruction
nes_cprom_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -140,7 +140,7 @@ public:
// construction/destruction
nes_gxrom_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -158,7 +158,7 @@ public:
// construction/destruction
nes_uxrom_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -176,7 +176,7 @@ public:
// construction/destruction
nes_uxrom_cc_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -194,7 +194,7 @@ public:
// construction/destruction
nes_un1rom_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -213,8 +213,8 @@ public:
nes_nochr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual uint8_t chr_r(offs_t offset) override;
- virtual void chr_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual DECLARE_WRITE8_MEMBER(chr_w) override;
};
diff --git a/src/devices/bus/nes/pirate.cpp b/src/devices/bus/nes/pirate.cpp
index acda901ecca..1d2035a9b91 100644
--- a/src/devices/bus/nes/pirate.cpp
+++ b/src/devices/bus/nes/pirate.cpp
@@ -423,7 +423,7 @@ void nes_cityfight_device::pcb_reset()
-------------------------------------------------*/
-void nes_agci_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_agci_device::write_h)
{
LOG_MMC(("agci write_h, offset: %04x, data: %02x\n", offset, data));
@@ -445,7 +445,7 @@ void nes_agci_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_dreamtech_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_dreamtech_device::write_l)
{
LOG_MMC(("dreamtech write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -467,7 +467,7 @@ void nes_dreamtech_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_fukutake_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fukutake_device::write_l)
{
LOG_MMC(("fukutake write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -483,7 +483,7 @@ void nes_fukutake_device::write_l(offs_t offset, uint8_t data)
m_ram[offset - 0x400] = data;
}
-uint8_t nes_fukutake_device::read_l(offs_t offset)
+READ8_MEMBER(nes_fukutake_device::read_l)
{
LOG_MMC(("fukutake read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -503,13 +503,13 @@ uint8_t nes_fukutake_device::read_l(offs_t offset)
return 0;
}
-void nes_fukutake_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fukutake_device::write_m)
{
LOG_MMC(("fukutake write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
}
-uint8_t nes_fukutake_device::read_m(offs_t offset)
+READ8_MEMBER(nes_fukutake_device::read_m)
{
LOG_MMC(("fukutake read_m, offset: %04x\n", offset));
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)];
@@ -540,7 +540,7 @@ void nes_futuremedia_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-void nes_futuremedia_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_futuremedia_device::write_h)
{
LOG_MMC(("futuremedia write_h, offset: %04x, data: %02x\n", offset, data));
@@ -603,7 +603,7 @@ void nes_futuremedia_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_magseries_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_magseries_device::write_h)
{
LOG_MMC(("magseries write_h, offset: %04x, data: %02x\n", offset, data));
@@ -626,7 +626,7 @@ void nes_magseries_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_daou306_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_daou306_device::write_h)
{
LOG_MMC(("daou306 write_h, offset: %04x, data: %02x\n", offset, data));
int reg = BIT(offset, 2) ? 8 : 0;
@@ -695,7 +695,7 @@ void nes_daou306_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_cc21_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cc21_device::write_h)
{
LOG_MMC(("cc21 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -718,7 +718,7 @@ void nes_cc21_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_xiaozy_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_xiaozy_device::write_l)
{
LOG_MMC(("xiaozy write_l, offset: %04x, data: %02x\n", offset, data));
@@ -739,7 +739,7 @@ void nes_xiaozy_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_edu2k_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_edu2k_device::write_h)
{
LOG_MMC(("edu2k write_h, offset: %04x, data: %02x\n", offset, data));
@@ -747,13 +747,13 @@ void nes_edu2k_device::write_h(offs_t offset, uint8_t data)
m_latch = (data & 0xc0) >> 6;
}
-void nes_edu2k_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_edu2k_device::write_m)
{
LOG_MMC(("edu2k write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
}
-uint8_t nes_edu2k_device::read_m(offs_t offset)
+READ8_MEMBER(nes_edu2k_device::read_m)
{
LOG_MMC(("edu2k read_m, offset: %04x\n", offset));
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)];
@@ -787,7 +787,7 @@ void nes_t230_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-void nes_t230_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_t230_device::write_h)
{
LOG_MMC(("t230 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -869,7 +869,7 @@ void nes_mk2_device::hblank_irq( int scanline, int vblank, int blanked )
m_irq_clear = 0;
}
-void nes_mk2_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_mk2_device::write_m)
{
LOG_MMC(("mk2 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -921,7 +921,7 @@ void nes_whero_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-void nes_whero_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_whero_device::write_h)
{
int bank, shift, mask1, mask2;
LOG_MMC(("World Hero write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1005,7 +1005,7 @@ void nes_whero_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_43272_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_43272_device::write_h)
{
LOG_MMC(("unl_43272 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1016,7 +1016,7 @@ void nes_43272_device::write_h(offs_t offset, uint8_t data)
}
-uint8_t nes_43272_device::read_h(offs_t offset)
+READ8_MEMBER(nes_43272_device::read_h)
{
uint8_t mask = (m_latch & 0x400) ? 0xfe : 0xff;
LOG_MMC(("unl_43272 read_h, offset: %04x\n", offset));
@@ -1054,7 +1054,7 @@ void nes_tf1201_device::update_prg()
prg8_cd(m_swap ? m_prg : 0xff );
}
-void nes_tf1201_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tf1201_device::write_h)
{
int bank;
LOG_MMC(("unl_tf1201 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1139,7 +1139,7 @@ void nes_cityfight_device::update_prg()
prg8_cd(m_prg_reg);
}
-void nes_cityfight_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_cityfight_device::write_h)
{
int bank;
LOG_MMC(("unl_cityfight write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1244,7 +1244,7 @@ void nes_fujiya_device::pcb_reset()
m_latch = 0;
}
-void nes_fujiya_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_fujiya_device::write_m)
{
LOG_MMC(("fujiya write_m, offset: %04x, data: %02x\n", offset, data));
offset += 0x6000;
@@ -1253,7 +1253,7 @@ void nes_fujiya_device::write_m(offs_t offset, uint8_t data)
m_latch = (data & 0x40) << 1;
}
-uint8_t nes_fujiya_device::read_m(offs_t offset)
+READ8_MEMBER(nes_fujiya_device::read_m)
{
LOG_MMC(("fujiya read_m, offset: %04x\n", offset));
offset += 0x6000;
@@ -1261,6 +1261,6 @@ uint8_t nes_fujiya_device::read_m(offs_t offset)
if (offset == 0x7001 || offset == 0x7777)
return m_latch | ((offset >> 8) & 0x7f);
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
#endif
diff --git a/src/devices/bus/nes/pirate.h b/src/devices/bus/nes/pirate.h
index e99bd703aec..91424d32e25 100644
--- a/src/devices/bus/nes/pirate.h
+++ b/src/devices/bus/nes/pirate.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_agci_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_dreamtech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -52,10 +52,10 @@ public:
// construction/destruction
nes_fukutake_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -77,7 +77,7 @@ public:
// construction/destruction
nes_futuremedia_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -101,7 +101,7 @@ public:
// construction/destruction
nes_magseries_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -119,7 +119,7 @@ public:
// construction/destruction
nes_daou306_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -140,7 +140,7 @@ public:
// construction/destruction
nes_cc21_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -158,7 +158,7 @@ public:
// construction/destruction
nes_xiaozy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -176,9 +176,9 @@ public:
// construction/destruction
nes_edu2k_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_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -199,7 +199,7 @@ public:
// construction/destruction
nes_t230_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -225,7 +225,7 @@ public:
// construction/destruction
nes_mk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -249,7 +249,7 @@ public:
// construction/destruction
nes_whero_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -276,8 +276,8 @@ public:
// construction/destruction
nes_43272_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 DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -298,7 +298,7 @@ public:
// construction/destruction
nes_tf1201_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -325,7 +325,7 @@ public:
// construction/destruction
nes_cityfight_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -359,8 +359,8 @@ public:
// construction/destruction
nes_fujiya_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/pt554.cpp b/src/devices/bus/nes/pt554.cpp
index db16ca42e37..98524a04bc7 100644
--- a/src/devices/bus/nes/pt554.cpp
+++ b/src/devices/bus/nes/pt554.cpp
@@ -59,7 +59,7 @@ nes_bandai_pt554_device::nes_bandai_pt554_device(const machine_config &mconfig,
-------------------------------------------------*/
-void nes_bandai_pt554_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_bandai_pt554_device::write_m)
{
LOG_MMC(("Bandai PT-554 Sound write, data: %02x\n", data));
diff --git a/src/devices/bus/nes/pt554.h b/src/devices/bus/nes/pt554.h
index 746750c52ed..f25281ea4f0 100644
--- a/src/devices/bus/nes/pt554.h
+++ b/src/devices/bus/nes/pt554.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_bandai_pt554_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
protected:
// device-level overrides
diff --git a/src/devices/bus/nes/racermate.cpp b/src/devices/bus/nes/racermate.cpp
index 111cb997dd0..5b578da0e09 100644
--- a/src/devices/bus/nes/racermate.cpp
+++ b/src/devices/bus/nes/racermate.cpp
@@ -81,7 +81,7 @@ void nes_racermate_device::update_banks()
prg16_89ab(m_latch >> 6);
}
-void nes_racermate_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_racermate_device::write_h)
{
LOG_MMC(("racermate write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/racermate.h b/src/devices/bus/nes/racermate.h
index cb74a06a6b0..5366ec1a6ea 100644
--- a/src/devices/bus/nes/racermate.h
+++ b/src/devices/bus/nes/racermate.h
@@ -16,7 +16,7 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/rcm.cpp b/src/devices/bus/nes/rcm.cpp
index fdd07830381..5c861922afb 100644
--- a/src/devices/bus/nes/rcm.cpp
+++ b/src/devices/bus/nes/rcm.cpp
@@ -161,7 +161,7 @@ void nes_3dblock_device::pcb_reset()
-------------------------------------------------*/
-void nes_gs2015_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_gs2015_device::write_h)
{
LOG_MMC(("gs2015 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -169,7 +169,7 @@ void nes_gs2015_device::write_h(offs_t offset, uint8_t data)
chr8(offset >> 1, m_chr_source);
}
-uint8_t nes_gs2015_device::read_m(offs_t offset)
+READ8_MEMBER(nes_gs2015_device::read_m)
{
LOG_MMC(("gs2015 read_m, offset: %04x\n", offset));
return 0; // Videopoker Bonza needs this (sort of protection? or related to inputs?)
@@ -186,7 +186,7 @@ uint8_t nes_gs2015_device::read_m(offs_t offset)
-------------------------------------------------*/
-void nes_gs2004_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_gs2004_device::write_h)
{
LOG_MMC(("gs2004 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -204,7 +204,7 @@ void nes_gs2004_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_gs2013_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_gs2013_device::write_h)
{
LOG_MMC(("gs2013 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -232,7 +232,7 @@ void nes_gs2013_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_tf9_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tf9_device::write_h)
{
LOG_MMC(("tetrisfam write_h, offset: %04x, data: %02x\n", offset, data));
@@ -279,7 +279,7 @@ void nes_3dblock_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-void nes_3dblock_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_3dblock_device::write_l)
{
LOG_MMC(("3dblock write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
diff --git a/src/devices/bus/nes/rcm.h b/src/devices/bus/nes/rcm.h
index 005869fe09c..f37a6074432 100644
--- a/src/devices/bus/nes/rcm.h
+++ b/src/devices/bus/nes/rcm.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_gs2015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override { return read_m(offset); }
- virtual uint8_t read_m(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override { return read_m(space, offset, mem_mask); }
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -36,7 +36,7 @@ public:
// construction/destruction
nes_gs2004_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -54,7 +54,7 @@ public:
// construction/destruction
nes_gs2013_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -72,7 +72,7 @@ public:
// construction/destruction
nes_tf9_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -90,7 +90,7 @@ public:
// construction/destruction
nes_3dblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/rexsoft.cpp b/src/devices/bus/nes/rexsoft.cpp
index c10b88afe01..3d868a0c970 100644
--- a/src/devices/bus/nes/rexsoft.cpp
+++ b/src/devices/bus/nes/rexsoft.cpp
@@ -112,7 +112,7 @@ void nes_rex_sl1632_device::pcb_reset()
-------------------------------------------------*/
-void nes_rex_dbz5_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_rex_dbz5_device::write_l)
{
LOG_MMC(("rex_dbz write_l, offset: %04x, data: %02x\n", offset, data));
@@ -121,7 +121,7 @@ void nes_rex_dbz5_device::write_l(offs_t offset, uint8_t data)
}
/* we would need to use this read handler in 0x6000-0x7fff as well */
-uint8_t nes_rex_dbz5_device::read_l(offs_t offset)
+READ8_MEMBER(nes_rex_dbz5_device::read_l)
{
LOG_MMC(("rex_dbz read_l, offset: %04x\n", offset));
return 0x01;
@@ -208,7 +208,7 @@ void nes_rex_sl1632_device::set_chr(uint8_t chr, int chr_base, int chr_mask)
chr1_x(chr_page ^ 7, chr_base2[7] | (bank[7] & chr_mask), chr);
}
-void nes_rex_sl1632_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_rex_sl1632_device::write_h)
{
uint8_t helper1, helper2;
LOG_MMC(("rex_sl1632 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -232,7 +232,7 @@ void nes_rex_sl1632_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
diff --git a/src/devices/bus/nes/rexsoft.h b/src/devices/bus/nes/rexsoft.h
index 0c44c73139d..61fe876633a 100644
--- a/src/devices/bus/nes/rexsoft.h
+++ b/src/devices/bus/nes/rexsoft.h
@@ -16,10 +16,10 @@ public:
// construction/destruction
nes_rex_dbz5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual uint8_t read_m(offs_t offset) override { return read_l(offset); }
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void chr_cb(int start, int bank, int source) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override { return read_l(space, offset, mem_mask); }
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void chr_cb( int start, int bank, int source ) override;
virtual void pcb_reset() override;
@@ -40,7 +40,7 @@ public:
// construction/destruction
nes_rex_sl1632_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/sachen.cpp b/src/devices/bus/nes/sachen.cpp
index 0622bfec8d4..369c4cde885 100644
--- a/src/devices/bus/nes/sachen.cpp
+++ b/src/devices/bus/nes/sachen.cpp
@@ -308,7 +308,7 @@ void nes_sachen_8259d_device::pcb_reset()
-------------------------------------------------*/
-void nes_sachen_sa009_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_sa009_device::write_l)
{
LOG_MMC(("SA009 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -327,7 +327,7 @@ void nes_sachen_sa009_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sachen_sa0036_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_sa0036_device::write_h)
{
LOG_MMC(("sa0036 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -346,7 +346,7 @@ void nes_sachen_sa0036_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sachen_sa0037_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_sa0037_device::write_h)
{
LOG_MMC(("sa0037 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -369,7 +369,7 @@ void nes_sachen_sa0037_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sachen_sa72007_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_sa72007_device::write_l)
{
LOG_MMC(("SA72007 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -390,7 +390,7 @@ void nes_sachen_sa72007_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sachen_sa72008_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_sa72008_device::write_l)
{
LOG_MMC(("SA72008 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -410,7 +410,7 @@ void nes_sachen_sa72008_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_sachen_tca01_device::read_l(offs_t offset)
+READ8_MEMBER(nes_sachen_tca01_device::read_l)
{
LOG_MMC(("TCA-01 read_l, offset: %04x\n", offset));
@@ -433,7 +433,7 @@ uint8_t nes_sachen_tca01_device::read_l(offs_t offset)
-------------------------------------------------*/
-void nes_sachen_tcu01_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_tcu01_device::write_l)
{
LOG_MMC(("TCU-01 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -456,7 +456,7 @@ void nes_sachen_tcu01_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_sachen_tcu02_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_tcu02_device::write_l)
{
LOG_MMC(("TCU-02 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -467,7 +467,7 @@ void nes_sachen_tcu02_device::write_l(offs_t offset, uint8_t data)
}
}
-uint8_t nes_sachen_tcu02_device::read_l(offs_t offset)
+READ8_MEMBER(nes_sachen_tcu02_device::read_l)
{
LOG_MMC(("TCU-02 read_l, offset: %04x\n", offset));
@@ -512,7 +512,7 @@ void nes_sachen_74x374_device::set_mirror(uint8_t nt) // also used by mappers 13
}
-void nes_sachen_74x374_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_74x374_device::write_l)
{
LOG_MMC(("Sachen 74*374 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -551,7 +551,7 @@ void nes_sachen_74x374_device::write_l(offs_t offset, uint8_t data)
}
}
-uint8_t nes_sachen_74x374_device::read_l(offs_t offset)
+READ8_MEMBER(nes_sachen_74x374_device::read_l)
{
LOG_MMC(("Sachen 74*374 read_l, offset: %04x", offset));
@@ -562,7 +562,7 @@ uint8_t nes_sachen_74x374_device::read_l(offs_t offset)
return 0;
}
-void nes_sachen_74x374_alt_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_74x374_alt_device::write_l)
{
LOG_MMC(("Sachen 74*374 Alt write_l, offset: %04x, data: %02x\n", offset, data));
@@ -626,7 +626,7 @@ void nes_sachen_8259a_device::chr_update()
}
}
-void nes_sachen_8259a_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sachen_8259a_device::write_l)
{
LOG_MMC(("Sachen 8259 write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/sachen.h b/src/devices/bus/nes/sachen.h
index b23599345b3..cfec9363bdc 100644
--- a/src/devices/bus/nes/sachen.h
+++ b/src/devices/bus/nes/sachen.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_sachen_sa009_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_sachen_sa0036_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_sachen_sa0037_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -70,7 +70,7 @@ public:
// construction/destruction
nes_sachen_sa72007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -88,7 +88,7 @@ public:
// construction/destruction
nes_sachen_sa72008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -106,7 +106,7 @@ public:
// construction/destruction
nes_sachen_tca01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
virtual void pcb_reset() override;
@@ -124,9 +124,9 @@ public:
// construction/destruction
nes_sachen_tcu01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); }
- virtual void write_h(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); }
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); }
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); }
virtual void pcb_reset() override;
@@ -144,8 +144,8 @@ public:
// construction/destruction
nes_sachen_tcu02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -166,8 +166,8 @@ public:
// construction/destruction
nes_sachen_74x374_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -191,8 +191,8 @@ public:
nes_sachen_74x374_alt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual uint8_t read_l(offs_t offset) override { return 0xff; } // no read_l here
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override { return 0xff; } // no read_l here
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
};
@@ -204,8 +204,8 @@ public:
// construction/destruction
nes_sachen_8259a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); }
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); }
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/somari.cpp b/src/devices/bus/nes/somari.cpp
index c517a4fae16..f4a5c2e7f40 100644
--- a/src/devices/bus/nes/somari.cpp
+++ b/src/devices/bus/nes/somari.cpp
@@ -157,7 +157,7 @@ void nes_somari_device::pcb_reset()
-------------------------------------------------*/
// MMC1 Mode emulation
-void nes_somari_device::mmc1_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_somari_device::mmc1_w)
{
assert(m_board_mode == 2);
@@ -191,7 +191,7 @@ void nes_somari_device::mmc1_w(offs_t offset, uint8_t data)
}
// MMC3 Mode emulation
-void nes_somari_device::mmc3_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_somari_device::mmc3_w)
{
uint8_t mmc_helper, cmd;
@@ -240,7 +240,7 @@ void nes_somari_device::mmc3_w(offs_t offset, uint8_t data)
}
// VRC2 Mode emulation
-void nes_somari_device::vrc2_w(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_somari_device::vrc2_w)
{
uint8_t bank, shift;
@@ -381,15 +381,15 @@ void nes_somari_device::update_mirror()
}
-void nes_somari_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_somari_device::write_h)
{
LOG_MMC(("somari write_h, mode %d, offset: %04x, data: %02x\n", m_board_mode, offset, data));
switch (m_board_mode)
{
- case SOMARI_VRC2_MODE: vrc2_w(offset, data); break;
- case SOMARI_MMC3_MODE: mmc3_w(offset, data); break;
- case SOMARI_MMC1_MODE: mmc1_w(offset, data); break;
+ case SOMARI_VRC2_MODE: vrc2_w(space, offset, data, mem_mask); break;
+ case SOMARI_MMC3_MODE: mmc3_w(space, offset, data, mem_mask); break;
+ case SOMARI_MMC1_MODE: mmc1_w(space, offset, data, mem_mask); break;
}
}
@@ -409,7 +409,7 @@ void nes_somari_device::bank_update_switchmode()
update_chr();
}
-void nes_somari_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_somari_device::write_m)
{
LOG_MMC(("somari write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/somari.h b/src/devices/bus/nes/somari.h
index dda299b3a99..7b5d2920923 100644
--- a/src/devices/bus/nes/somari.h
+++ b/src/devices/bus/nes/somari.h
@@ -16,12 +16,12 @@ public:
// construction/destruction
nes_somari_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override { write_m(offset + 0x100, data); }
- virtual void write_m(offs_t offset, uint8_t data) override;
- void mmc1_w(offs_t offset, uint8_t data);
- void mmc3_w(offs_t offset, uint8_t data);
- void vrc2_w(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override { write_m(space, offset + 0x100, data, mem_mask); }
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(mmc1_w);
+ virtual DECLARE_WRITE8_MEMBER(mmc3_w);
+ virtual DECLARE_WRITE8_MEMBER(vrc2_w);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/subor.cpp b/src/devices/bus/nes/subor.cpp
index 0fa25b2b5bb..c15e8761112 100644
--- a/src/devices/bus/nes/subor.cpp
+++ b/src/devices/bus/nes/subor.cpp
@@ -183,7 +183,7 @@ void nes_subor2_device::ppu_latch(offs_t offset)
nt
-------------------------------------------------*/
-uint8_t nes_subor2_device::nt_r(offs_t offset)
+READ8_MEMBER(nes_subor2_device::nt_r)
{
int page = ((offset & 0xc00) >> 10);
@@ -234,7 +234,7 @@ void nes_subor2_device::update_banks()
read
-------------------------------------------------*/
-uint8_t nes_subor2_device::read_l(offs_t offset)
+READ8_MEMBER(nes_subor2_device::read_l)
{
LOG_MMC("subor2 read_l, offset: %04x\n", offset);
@@ -242,14 +242,14 @@ uint8_t nes_subor2_device::read_l(offs_t offset)
{
return 0x8F;
}
- return get_open_bus();
+ return m_open_bus;
}
/*-------------------------------------------------
write
-------------------------------------------------*/
-void nes_subor0_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_subor0_device::write_h)
{
uint8_t subor_helper1, subor_helper2;
LOG_MMC("subor0 write_h, offset: %04x, data: %02x\n", offset, data);
@@ -279,7 +279,7 @@ void nes_subor0_device::write_h(offs_t offset, uint8_t data)
prg16_cdef(subor_helper2);
}
-void nes_subor1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_subor1_device::write_h)
{
uint8_t subor_helper1, subor_helper2;
LOG_MMC("subor1 write_h, offset: %04x, data: %02x\n", offset, data);
@@ -309,7 +309,7 @@ void nes_subor1_device::write_h(offs_t offset, uint8_t data)
prg16_cdef(subor_helper2);
}
-void nes_subor2_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_subor2_device::write_l)
{
LOG_MMC("subor2 write_l, offset: %04x, data: %02x\n", offset, data);
diff --git a/src/devices/bus/nes/subor.h b/src/devices/bus/nes/subor.h
index a4ffc13a553..93e542cf481 100644
--- a/src/devices/bus/nes/subor.h
+++ b/src/devices/bus/nes/subor.h
@@ -20,7 +20,7 @@ public:
// construction/destruction
nes_subor0_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -41,7 +41,7 @@ public:
// construction/destruction
nes_subor1_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -62,9 +62,9 @@ public:
// construction/destruction
nes_subor2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t nt_r(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual uint8_t read_l(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(nt_r) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
virtual void ppu_latch(offs_t offset) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/sunsoft.cpp b/src/devices/bus/nes/sunsoft.cpp
index be90e36e535..f62fa24e67d 100644
--- a/src/devices/bus/nes/sunsoft.cpp
+++ b/src/devices/bus/nes/sunsoft.cpp
@@ -209,7 +209,7 @@ void nes_sunsoft_fme7_device::pcb_reset()
-------------------------------------------------*/
-void nes_sunsoft_1_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_1_device::write_m)
{
LOG_MMC(("Sunsoft 1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -235,7 +235,7 @@ void nes_sunsoft_1_device::write_m(offs_t offset, uint8_t data)
// there are two 'variants' depending on hardwired or mapper ctrl mirroring
-void nes_sunsoft_2_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_2_device::write_h)
{
uint8_t helper = (data & 0x07) | ((data & 0x80) ? 0x08 : 0x00);
LOG_MMC(("Sunsoft 2 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -282,7 +282,7 @@ void nes_sunsoft_3_device::device_timer(emu_timer &timer, device_timer_id id, in
}
}
-void nes_sunsoft_3_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_3_device::write_h)
{
LOG_MMC(("Sunsoft 3 write_h, offset %04x, data: %02x\n", offset, data));
@@ -384,7 +384,7 @@ void nes_sunsoft_4_device::sun4_mirror( int mirror, int mirr0, int mirr1 )
}
}
-void nes_sunsoft_4_device::sun4_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_4_device::sun4_write)
{
LOG_MMC(("Sunsoft 4 write_h, offset %04x, data: %02x\n", offset, data));
@@ -424,7 +424,7 @@ void nes_sunsoft_4_device::sun4_write(offs_t offset, uint8_t data)
}
}
-void nes_sunsoft_4_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_4_device::write_m)
{
LOG_MMC(("Sunsoft 4 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -434,7 +434,7 @@ void nes_sunsoft_4_device::write_m(offs_t offset, uint8_t data)
m_prgram[offset & (m_prgram.size() - 1)] = data;
}
-uint8_t nes_sunsoft_4_device::read_m(offs_t offset)
+READ8_MEMBER(nes_sunsoft_4_device::read_m)
{
LOG_MMC(("Sunsoft 4 read_m, offset: %04x\n", offset));
@@ -443,7 +443,7 @@ uint8_t nes_sunsoft_4_device::read_m(offs_t offset)
if (!m_prgram.empty() && m_wram_enable)
return m_prgram[offset & (m_prgram.size() - 1)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
/*-------------------------------------------------
@@ -475,7 +475,7 @@ void nes_sunsoft_fme7_device::device_timer(emu_timer &timer, device_timer_id id,
}
}
-void nes_sunsoft_fme7_device::fme7_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_fme7_device::fme7_write)
{
LOG_MMC(("fme7_write, offset %04x, data: %02x\n", offset, data));
@@ -533,7 +533,7 @@ void nes_sunsoft_fme7_device::fme7_write(offs_t offset, uint8_t data)
}
}
-void nes_sunsoft_fme7_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_fme7_device::write_m)
{
uint8_t bank = m_wram_bank & 0x3f;
LOG_MMC(("Sunsoft FME7 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -549,7 +549,7 @@ void nes_sunsoft_fme7_device::write_m(offs_t offset, uint8_t data)
}
}
-uint8_t nes_sunsoft_fme7_device::read_m(offs_t offset)
+READ8_MEMBER(nes_sunsoft_fme7_device::read_m)
{
uint8_t bank = m_wram_bank & 0x3f;
LOG_MMC(("Sunsoft FME7 read_m, offset: %04x\n", offset));
@@ -564,7 +564,7 @@ uint8_t nes_sunsoft_fme7_device::read_m(offs_t offset)
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
}
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
@@ -578,20 +578,20 @@ uint8_t nes_sunsoft_fme7_device::read_m(offs_t offset)
-------------------------------------------------*/
-void nes_sunsoft_5_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_5_device::write_h)
{
LOG_MMC(("sunsoft 5 write_h, offset %04x, data: %02x\n", offset, data));
switch (offset & 0x6000)
{
case 0x4000:
- m_ym2149->address_w(data & 0x0f);
+ m_ym2149->address_w(space, 0, data & 0x0f);
break;
case 0x6000:
- m_ym2149->data_w(data);
+ m_ym2149->data_w(space, 0, data);
break;
default:
- fme7_write(offset, data);
+ fme7_write(space, offset, data, mem_mask);
break;
}
}
diff --git a/src/devices/bus/nes/sunsoft.h b/src/devices/bus/nes/sunsoft.h
index c02b94647cf..b4b035d515d 100644
--- a/src/devices/bus/nes/sunsoft.h
+++ b/src/devices/bus/nes/sunsoft.h
@@ -17,7 +17,7 @@ public:
// construction/destruction
nes_sunsoft_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -35,7 +35,7 @@ public:
// construction/destruction
nes_sunsoft_2_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -53,7 +53,7 @@ public:
// construction/destruction
nes_sunsoft_3_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -78,10 +78,10 @@ public:
// construction/destruction
nes_sunsoft_4_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_m(offs_t offset, uint8_t data) override;
- void sun4_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { sun4_write(offset, data); }
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(sun4_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { sun4_write(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -104,10 +104,10 @@ public:
// construction/destruction
nes_sunsoft_fme7_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_m(offs_t offset, uint8_t data) override;
- void fme7_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { fme7_write(offset, data); }
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(fme7_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { fme7_write(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -138,7 +138,7 @@ public:
// construction/destruction
nes_sunsoft_5_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 DECLARE_WRITE8_MEMBER(write_h) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
diff --git a/src/devices/bus/nes/sunsoft_dcs.cpp b/src/devices/bus/nes/sunsoft_dcs.cpp
index 23c81894666..5df2c6557d2 100644
--- a/src/devices/bus/nes/sunsoft_dcs.cpp
+++ b/src/devices/bus/nes/sunsoft_dcs.cpp
@@ -68,10 +68,10 @@ void nes_ntb_slot_device::device_start()
m_cart = dynamic_cast<ntb_cart_interface *>(get_card_device());
}
-uint8_t nes_ntb_slot_device::read(offs_t offset)
+READ8_MEMBER(nes_ntb_slot_device::read)
{
if (m_cart)
- return m_cart->read(offset);
+ return m_cart->read(space, offset, mem_mask);
return 0xff;
}
@@ -212,7 +212,7 @@ void nes_sunsoft_dcs_device::pcb_reset()
-------------------------------------------------*/
-void nes_sunsoft_dcs_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_dcs_device::write_h)
{
LOG_MMC(("Sunsoft DCS write_h, offset %04x, data: %02x\n", offset, data));
@@ -224,27 +224,27 @@ void nes_sunsoft_dcs_device::write_h(offs_t offset, uint8_t data)
m_wram_enable = BIT(data, 4);
break;
default:
- sun4_write(offset, data);
+ sun4_write(space, offset, data, mem_mask);
break;
}
}
-uint8_t nes_sunsoft_dcs_device::read_h(offs_t offset)
+READ8_MEMBER(nes_sunsoft_dcs_device::read_h)
{
LOG_MMC(("Sunsoft DCS read_h, offset: %04x\n", offset));
if (m_exrom_enable && m_subslot->m_cart && offset < 0x4000)
{
if (m_timer_on)
- return m_subslot->m_cart->read(offset);
+ return m_subslot->m_cart->read(space, offset, mem_mask);
else
- return get_open_bus(); // after the timer is off, this returns open bus...
+ return m_open_bus; // after the timer is off, this returns open bus...
}
else
return hi_access_rom(offset);
}
-void nes_sunsoft_dcs_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_sunsoft_dcs_device::write_m)
{
LOG_MMC(("Sunsoft DCS write_m, offset: %04x, data: %02x\n", offset, data));
@@ -260,7 +260,7 @@ void nes_sunsoft_dcs_device::write_m(offs_t offset, uint8_t data)
}
}
-uint8_t nes_sunsoft_dcs_device::read_m(offs_t offset)
+READ8_MEMBER(nes_sunsoft_dcs_device::read_m)
{
LOG_MMC(("Sunsoft DCS read_m, offset: %04x\n", offset));
@@ -269,7 +269,7 @@ uint8_t nes_sunsoft_dcs_device::read_m(offs_t offset)
if (!m_prgram.empty() && m_wram_enable)
return m_prgram[offset & (m_prgram.size() - 1)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
@@ -285,10 +285,9 @@ static void ntb_cart(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void nes_sunsoft_dcs_device::device_add_mconfig(machine_config &config)
-{
- NES_NTB_SLOT(config, m_subslot, ntb_cart);
-}
+MACHINE_CONFIG_START(nes_sunsoft_dcs_device::device_add_mconfig)
+ MCFG_NTB_MINICART_ADD("ntb_slot", ntb_cart)
+MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/nes/sunsoft_dcs.h b/src/devices/bus/nes/sunsoft_dcs.h
index 51a11b22ae4..f14d9f9c8c1 100644
--- a/src/devices/bus/nes/sunsoft_dcs.h
+++ b/src/devices/bus/nes/sunsoft_dcs.h
@@ -24,7 +24,7 @@ public:
virtual ~ntb_cart_interface();
// reading and writing
- virtual uint8_t read(offs_t offset) { return m_rom[offset]; }
+ virtual DECLARE_READ8_MEMBER(read) { return m_rom[offset]; }
uint8_t *get_cart_base() { return m_rom; }
@@ -46,16 +46,6 @@ class nes_ntb_slot_device : public device_t,
friend class nes_sunsoft_dcs_device;
public:
// construction/destruction
- template <typename T>
- nes_ntb_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts)
- : nes_ntb_slot_device(mconfig, tag, owner, (uint32_t)0)
- {
- option_reset();
- opts(*this);
- set_default_option(nullptr);
- set_fixed(false);
- }
-
nes_ntb_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~nes_ntb_slot_device();
@@ -78,7 +68,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- virtual uint8_t read(offs_t offset);
+ virtual DECLARE_READ8_MEMBER(read);
protected:
ntb_cart_interface* m_cart;
@@ -88,6 +78,11 @@ protected:
DECLARE_DEVICE_TYPE(NES_NTB_SLOT, nes_ntb_slot_device)
+#define MCFG_NTB_MINICART_ADD(_tag, _slot_intf) \
+ MCFG_DEVICE_ADD(_tag, NES_NTB_SLOT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false)
+
+
//-----------------------------------------------
//
// Nantettate!! Baseball Minicart implementation
@@ -133,10 +128,10 @@ public:
// construction/destruction
nes_sunsoft_dcs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_m(offs_t offset) override;
- virtual uint8_t read_h(offs_t offset) override;
- virtual void write_m(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/taito.cpp b/src/devices/bus/nes/taito.cpp
index 28c37b6109c..2868bfea1dc 100644
--- a/src/devices/bus/nes/taito.cpp
+++ b/src/devices/bus/nes/taito.cpp
@@ -172,7 +172,7 @@ void nes_x1_017_device::pcb_reset()
-------------------------------------------------*/
-void nes_tc0190fmc_device::tc0190fmc_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tc0190fmc_device::tc0190fmc_write)
{
LOG_MMC(("tc0190fmc_write, offset: %04x, data: %02x\n", offset, data));
@@ -240,7 +240,7 @@ void nes_tc0190fmc_pal16r4_device::hblank_irq( int scanline, int vblank, int bla
}
}
-void nes_tc0190fmc_pal16r4_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tc0190fmc_pal16r4_device::write_h)
{
LOG_MMC(("tc0190fmc pal16r4 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -256,7 +256,7 @@ void nes_tc0190fmc_pal16r4_device::write_h(offs_t offset, uint8_t data)
case 0x2001:
case 0x2002:
case 0x2003:
- tc0190fmc_write(offset, data);
+ tc0190fmc_write(space, offset, data, mem_mask);
break;
case 0x4000:
m_irq_count_latch = (0x100 - data) & 0xff;
@@ -291,7 +291,7 @@ void nes_tc0190fmc_pal16r4_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_x1_005_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_x1_005_device::write_m)
{
LOG_MMC(("x1_005 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -355,14 +355,14 @@ void nes_x1_005_device::write_m(offs_t offset, uint8_t data)
m_x1_005_ram[offset & 0x7f] = data;
}
-uint8_t nes_x1_005_device::read_m(offs_t offset)
+READ8_MEMBER(nes_x1_005_device::read_m)
{
LOG_MMC(("x1_005 read_m, offset: %04x\n", offset));
if (offset >= 0x1f00 && m_latch == 0xa3)
return m_x1_005_ram[offset & 0x7f];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
/*-------------------------------------------------
@@ -399,7 +399,7 @@ void nes_x1_017_device::set_chr()
chr1_x(7 ^ m_latch, m_mmc_vrom_bank[5], CHRROM);
}
-void nes_x1_017_device::write_m(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_x1_017_device::write_m)
{
LOG_MMC(("x1017 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -453,7 +453,7 @@ void nes_x1_017_device::write_m(offs_t offset, uint8_t data)
m_x1_017_ram[0x1000 + (offset & 0x3ff)] = data;
}
-uint8_t nes_x1_017_device::read_m(offs_t offset)
+READ8_MEMBER(nes_x1_017_device::read_m)
{
LOG_MMC(("x1017 read_m, offset: %04x\n", offset));
@@ -465,5 +465,5 @@ uint8_t nes_x1_017_device::read_m(offs_t offset)
if (offset < 0x1400 && m_reg[2] == 0x84)
return m_x1_017_ram[0x1000 + (offset & 0x3ff)];
- return get_open_bus(); // open bus
+ return m_open_bus; // open bus
}
diff --git a/src/devices/bus/nes/taito.h b/src/devices/bus/nes/taito.h
index b4efa553c86..8f3ccb2a8ee 100644
--- a/src/devices/bus/nes/taito.h
+++ b/src/devices/bus/nes/taito.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_tc0190fmc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void tc0190fmc_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { tc0190fmc_write(offset, data); }
+ virtual DECLARE_WRITE8_MEMBER(tc0190fmc_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { tc0190fmc_write(space, offset, data, mem_mask); }
virtual void pcb_reset() override;
@@ -37,7 +37,7 @@ public:
// construction/destruction
nes_tc0190fmc_pal16r4_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -60,8 +60,8 @@ public:
// construction/destruction
nes_x1_005_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
@@ -84,8 +84,8 @@ public:
// construction/destruction
nes_x1_017_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_m(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/tengen.cpp b/src/devices/bus/nes/tengen.cpp
index f6228685796..9cef09434a0 100644
--- a/src/devices/bus/nes/tengen.cpp
+++ b/src/devices/bus/nes/tengen.cpp
@@ -126,7 +126,7 @@ void nes_tengen032_device::pcb_reset()
-------------------------------------------------*/
-void nes_tengen008_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tengen008_device::write_h)
{
LOG_MMC(("tengen008 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -240,7 +240,7 @@ void nes_tengen032_device::set_chr()
chr_cb(7 ^ chr_page, m_mmc_vrom_bank[5], CHRROM);
}
-void nes_tengen032_device::tengen032_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tengen032_device::tengen032_write)
{
uint8_t helper, cmd;
LOG_MMC(("tengen032_write, offset: %04x, data: %02x\n", offset, data));
@@ -359,7 +359,7 @@ void nes_tengen037_device::chr_cb( int start, int bank, int source )
}
-void nes_tengen037_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_tengen037_device::write_h)
{
LOG_MMC(("tengen037 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -369,7 +369,7 @@ void nes_tengen037_device::write_h(offs_t offset, uint8_t data)
break;
default:
- tengen032_write(offset, data);
+ tengen032_write(space, offset, data, mem_mask);
break;
}
}
diff --git a/src/devices/bus/nes/tengen.h b/src/devices/bus/nes/tengen.h
index 6d651339f86..dce41f4fbb4 100644
--- a/src/devices/bus/nes/tengen.h
+++ b/src/devices/bus/nes/tengen.h
@@ -14,7 +14,7 @@ public:
// construction/destruction
nes_tengen008_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -32,8 +32,8 @@ public:
// construction/destruction
nes_tengen032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void tengen032_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { tengen032_write(offset, data); }
+ virtual DECLARE_WRITE8_MEMBER(tengen032_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { tengen032_write(space, offset, data, mem_mask); }
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -74,7 +74,7 @@ public:
nes_tengen037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void chr_cb(int start, int bank, int source) override;
protected:
diff --git a/src/devices/bus/nes/txc.cpp b/src/devices/bus/nes/txc.cpp
index 4149c6262a3..f3ab8efc5f9 100644
--- a/src/devices/bus/nes/txc.cpp
+++ b/src/devices/bus/nes/txc.cpp
@@ -139,7 +139,7 @@ void nes_txc_commandos_device::pcb_reset()
-------------------------------------------------*/
-void nes_txc_22211_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txc_22211_device::write_l)
{
LOG_MMC(("TXC 22111 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -147,7 +147,7 @@ void nes_txc_22211_device::write_l(offs_t offset, uint8_t data)
m_reg[offset & 0x03] = data;
}
-uint8_t nes_txc_22211_device::read_l(offs_t offset)
+READ8_MEMBER(nes_txc_22211_device::read_l)
{
LOG_MMC(("TXC 22111 read_l, offset: %04x\n", offset));
@@ -157,7 +157,7 @@ uint8_t nes_txc_22211_device::read_l(offs_t offset)
return 0x00;
}
-void nes_txc_22211_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txc_22211_device::write_h)
{
LOG_MMC(("TXC 22111 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -180,7 +180,7 @@ void nes_txc_22211_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_txc_dumarc_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txc_dumarc_device::write_h)
{
LOG_MMC(("TXC Du Ma Racing write_h, offset: %04x, data: %02x\n", offset, data));
@@ -203,7 +203,7 @@ void nes_txc_dumarc_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_txc_mjblock_device::read_l(offs_t offset)
+READ8_MEMBER(nes_txc_mjblock_device::read_l)
{
LOG_MMC(("TXC mjblock read_l, offset: %04x\n", offset));
@@ -226,7 +226,7 @@ uint8_t nes_txc_mjblock_device::read_l(offs_t offset)
-------------------------------------------------*/
-void nes_txc_strikew_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txc_strikew_device::write_h)
{
LOG_MMC(("TXC Strike Wolf write_h, offset: %04x, data: %02x\n", offset, data));
@@ -256,12 +256,12 @@ void nes_txc_strikew_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-uint8_t nes_txc_commandos_device::read_l(offs_t offset)
+READ8_MEMBER(nes_txc_commandos_device::read_l)
{
return 0x50;
}
-void nes_txc_commandos_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_txc_commandos_device::write_h)
{
LOG_MMC(("TXC Commandos write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/txc.h b/src/devices/bus/nes/txc.h
index 9ad5e2807dc..f4b875b51ba 100644
--- a/src/devices/bus/nes/txc.h
+++ b/src/devices/bus/nes/txc.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_txc_22211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -41,7 +41,7 @@ public:
nes_txc_dumarc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -54,7 +54,7 @@ public:
nes_txc_mjblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual uint8_t read_l(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
};
@@ -66,7 +66,7 @@ public:
// construction/destruction
nes_txc_strikew_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -84,8 +84,8 @@ public:
// construction/destruction
nes_txc_commandos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/waixing.cpp b/src/devices/bus/nes/waixing.cpp
index 3706d64b26e..791779f0a76 100644
--- a/src/devices/bus/nes/waixing.cpp
+++ b/src/devices/bus/nes/waixing.cpp
@@ -433,7 +433,7 @@ void nes_waixing_a1_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, chr_src);
}
-void nes_waixing_a_device::waixing_write(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_a_device::waixing_write)
{
LOG_MMC(("waixing_write, offset: %04x, data: %02x\n", offset, data));
@@ -447,12 +447,12 @@ void nes_waixing_a_device::waixing_write(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
-uint8_t nes_waixing_a_device::read_l(offs_t offset)
+READ8_MEMBER(nes_waixing_a_device::read_l)
{
LOG_MMC(("waixing read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -462,7 +462,7 @@ uint8_t nes_waixing_a_device::read_l(offs_t offset)
return 0xff;
}
-void nes_waixing_a_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_a_device::write_l)
{
LOG_MMC(("waixing write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -597,7 +597,7 @@ void nes_waixing_f_device::set_prg( int prg_base, int prg_mask )
prg_cb(3, m_mmc_prg_bank[3]);
}
-void nes_waixing_f_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_f_device::write_h)
{
uint8_t cmd;
LOG_MMC(("waixing_f write_h, offset: %04x, data: %02x\n", offset, data));
@@ -628,7 +628,7 @@ void nes_waixing_f_device::write_h(offs_t offset, uint8_t data)
break;
default:
- waixing_write(offset, data);
+ waixing_write(space, offset, data, mem_mask);
break;
}
}
@@ -668,7 +668,7 @@ void nes_waixing_g_device::set_chr(uint8_t chr, int chr_base, int chr_mask)
chr_cb(chr_page ^ 7, chr_base | (m_mmc_vrom_bank[5] & chr_mask), chr);
}
-void nes_waixing_g_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_g_device::write_h)
{
uint8_t cmd;
LOG_MMC(("waixing_g write_h, offset: %04x, data: %02x\n", offset, data));
@@ -699,7 +699,7 @@ void nes_waixing_g_device::write_h(offs_t offset, uint8_t data)
break;
default:
- waixing_write(offset, data);
+ waixing_write(space, offset, data, mem_mask);
break;
}
}
@@ -731,7 +731,7 @@ void nes_waixing_h_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-void nes_waixing_h_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_h_device::write_h)
{
uint8_t cmd;
LOG_MMC(("waixing_h write_h, offset: %04x, data: %02x\n", offset, data));
@@ -767,12 +767,12 @@ void nes_waixing_h_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
-void nes_waixing_h1_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_h1_device::write_h)
{
uint8_t cmd;
LOG_MMC(("waixing_h1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -805,7 +805,7 @@ void nes_waixing_h1_device::write_h(offs_t offset, uint8_t data)
break;
default:
- txrom_write(offset, data);
+ txrom_write(space, offset, data, mem_mask);
break;
}
}
@@ -832,7 +832,7 @@ void nes_waixing_j_device::set_prg( int prg_base, int prg_mask )
prg_cb(3, m_reg[3]);
}
-void nes_waixing_j_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_j_device::write_h)
{
uint8_t cmd;
LOG_MMC(("waixing_f write_h, offset: %04x, data: %02x\n", offset, data));
@@ -862,7 +862,7 @@ void nes_waixing_j_device::write_h(offs_t offset, uint8_t data)
// break;
default:
- waixing_write(offset, data);
+ waixing_write(space, offset, data, mem_mask);
break;
}
}
@@ -887,7 +887,7 @@ void nes_waixing_sh2_device::chr_cb(int start, int bank, int source)
chr4_4(m_reg[1], m_reg[1] ? CHRRAM : CHRROM);
}
-uint8_t nes_waixing_sh2_device::chr_r(offs_t offset)
+READ8_MEMBER(nes_waixing_sh2_device::chr_r)
{
int bank = offset >> 10;
uint8_t val = m_chr_access[bank][offset & 0x3ff]; // this would be usual return value
@@ -940,7 +940,7 @@ void nes_waixing_sec_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-void nes_waixing_sec_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_sec_device::write_l)
{
LOG_MMC(("waixing_sec write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -979,7 +979,7 @@ void nes_waixing_sgz_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-void nes_waixing_sgz_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_sgz_device::write_h)
{
uint8_t helper, bank;
LOG_MMC(("waixing_sgz write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1047,7 +1047,7 @@ void nes_waixing_sgz_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_waixing_sgzlz_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_sgzlz_device::write_l)
{
LOG_MMC(("waixing_sgzlz write_l, offset: %04x, data: %02x\n", offset, data));
if (offset >= 0x700 && offset <= 0xEFF)
@@ -1112,7 +1112,7 @@ void nes_waixing_sgzlz_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_waixing_ffv_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_ffv_device::write_l)
{
uint8_t helper;
LOG_MMC(("waixing_ffv write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1161,7 +1161,7 @@ void nes_waixing_ffv_device::write_l(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_waixing_wxzs_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_wxzs_device::write_h)
{
LOG_MMC(("waixing_zs write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1191,7 +1191,7 @@ void nes_waixing_wxzs_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_waixing_dq8_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_dq8_device::write_h)
{
LOG_MMC(("waixing_dq8 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1212,7 +1212,7 @@ void nes_waixing_dq8_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_waixing_wxzs2_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_wxzs2_device::write_h)
{
uint8_t flip = (data & 0x80) >> 7;
uint8_t helper = (data & 0x7f) << 1;
@@ -1265,7 +1265,7 @@ void nes_waixing_wxzs2_device::write_h(offs_t offset, uint8_t data)
-------------------------------------------------*/
-void nes_waixing_fs304_device::write_l(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_waixing_fs304_device::write_l)
{
LOG_MMC(("fs304 write_l, offset: %04x, data: %02x\n", offset, data));
int bank;
diff --git a/src/devices/bus/nes/waixing.h b/src/devices/bus/nes/waixing.h
index bb6fcaf831a..5488973a14c 100644
--- a/src/devices/bus/nes/waixing.h
+++ b/src/devices/bus/nes/waixing.h
@@ -16,10 +16,10 @@ public:
// construction/destruction
nes_waixing_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual uint8_t read_l(offs_t offset) override;
- virtual void write_l(offs_t offset, uint8_t data) override;
- virtual void waixing_write(offs_t offset, uint8_t data);
- virtual void write_h(offs_t offset, uint8_t data) override { waixing_write(offset, data); }
+ virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual DECLARE_WRITE8_MEMBER(waixing_write);
+ virtual DECLARE_WRITE8_MEMBER(write_h) override { waixing_write(space, offset, data, mem_mask); }
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -109,7 +109,7 @@ public:
nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -129,7 +129,7 @@ public:
nes_waixing_g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -155,7 +155,7 @@ 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 void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
};
@@ -168,7 +168,7 @@ public:
nes_waixing_h1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
// This variant does not ignore the wram protect!
};
@@ -194,7 +194,7 @@ public:
// construction/destruction
nes_waixing_j_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -217,7 +217,7 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual uint8_t chr_r(offs_t offset) override;
+ virtual DECLARE_READ8_MEMBER(chr_r) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -235,7 +235,7 @@ public:
// construction/destruction
nes_waixing_sec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) 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;
@@ -257,7 +257,7 @@ public:
// construction/destruction
nes_waixing_sgz_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -281,7 +281,7 @@ public:
// construction/destruction
nes_waixing_sgzlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -301,7 +301,7 @@ public:
// construction/destruction
nes_waixing_ffv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
@@ -321,7 +321,7 @@ public:
// construction/destruction
nes_waixing_wxzs_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -339,7 +339,7 @@ public:
// construction/destruction
nes_waixing_dq8_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -357,7 +357,7 @@ public:
// construction/destruction
nes_waixing_wxzs2_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 DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
@@ -375,7 +375,7 @@ public:
// construction/destruction
nes_waixing_fs304_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_l) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/zemina.cpp b/src/devices/bus/nes/zemina.cpp
index 22741967572..bb4b3b61bc0 100644
--- a/src/devices/bus/nes/zemina.cpp
+++ b/src/devices/bus/nes/zemina.cpp
@@ -80,7 +80,7 @@ void nes_zemina_device::pcb_reset()
write
-------------------------------------------------*/
-void nes_zemina_device::write_h(offs_t offset, uint8_t data)
+WRITE8_MEMBER(nes_zemina_device::write_h)
{
LOG_MMC("zemina write_h, offset: %04x, data: %02x\n", offset, data);
diff --git a/src/devices/bus/nes/zemina.h b/src/devices/bus/nes/zemina.h
index 752c7f1382d..87d170d053d 100644
--- a/src/devices/bus/nes/zemina.h
+++ b/src/devices/bus/nes/zemina.h
@@ -20,7 +20,7 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override;
};