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