diff options
Diffstat (limited to 'src/devices/bus/nes/bandai.h')
-rw-r--r-- | src/devices/bus/nes/bandai.h | 60 |
1 files changed, 37 insertions, 23 deletions
diff --git a/src/devices/bus/nes/bandai.h b/src/devices/bus/nes/bandai.h index 108c6fb96cc..17a1fed1b79 100644 --- a/src/devices/bus/nes/bandai.h +++ b/src/devices/bus/nes/bandai.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_BANDAI_H -#define __NES_BANDAI_H +#ifndef MAME_BUS_NES_BANDAI_H +#define MAME_BUS_NES_BANDAI_H + +#pragma once #include "nxrom.h" #include "machine/i2cmem.h" @@ -15,8 +17,6 @@ public: // construction/destruction nes_oekakids_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_READ8_MEMBER(nt_r) override; virtual DECLARE_WRITE8_MEMBER(nt_w) override; @@ -26,8 +26,13 @@ public: virtual void ppu_latch(offs_t offset) override; // TODO: add oeka kids controller emulation + protected: + // device-level overrides + virtual void device_start() override; + void update_chr(); + uint8_t m_reg, m_latch; }; @@ -38,11 +43,8 @@ class nes_fcg_device : public nes_nrom_device { public: // construction/destruction - nes_fcg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_fcg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(fcg_write); virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -50,10 +52,16 @@ public: virtual void pcb_reset() override; protected: - uint16_t m_irq_count; + static constexpr device_timer_id TIMER_IRQ = 0; + + nes_fcg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + + uint16_t m_irq_count; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; }; @@ -64,11 +72,13 @@ class nes_lz93d50_device : public nes_fcg_device { public: // construction/destruction - nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_lz93d50_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides 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); }; @@ -78,17 +88,20 @@ class nes_lz93d50_24c01_device : public nes_lz93d50_device { public: // construction/destruction - nes_lz93d50_24c01_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_lz93d50_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + nes_lz93d50_24c01_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + // TODO: fix EEPROM I/O emulation required_device<i2cmem_device> m_i2cmem; uint8_t m_i2c_dir; @@ -116,8 +129,6 @@ public: // construction/destruction nes_fjump2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -125,17 +136,20 @@ public: virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + void set_prg(); uint8_t m_reg[5]; }; // device type definition -extern const device_type NES_OEKAKIDS; -extern const device_type NES_FCG; -extern const device_type NES_LZ93D50; -extern const device_type NES_LZ93D50_24C01; -extern const device_type NES_LZ93D50_24C02; -extern const device_type NES_FJUMP2; - -#endif +DECLARE_DEVICE_TYPE(NES_OEKAKIDS, nes_oekakids_device) +DECLARE_DEVICE_TYPE(NES_FCG, nes_fcg_device) +DECLARE_DEVICE_TYPE(NES_LZ93D50, nes_lz93d50_device) +DECLARE_DEVICE_TYPE(NES_LZ93D50_24C01, nes_lz93d50_24c01_device) +DECLARE_DEVICE_TYPE(NES_LZ93D50_24C02, nes_lz93d50_24c02_device) +DECLARE_DEVICE_TYPE(NES_FJUMP2, nes_fjump2_device) + +#endif // MAME_BUS_NES_BANDAI_H |