diff options
Diffstat (limited to 'src/mame/audio/s11c_bg.h')
-rw-r--r-- | src/mame/audio/s11c_bg.h | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/mame/audio/s11c_bg.h b/src/mame/audio/s11c_bg.h index bc6133bcd52..235520b5ab3 100644 --- a/src/mame/audio/s11c_bg.h +++ b/src/mame/audio/s11c_bg.h @@ -17,31 +17,19 @@ #include "sound/ym2151.h" -#define MCFG_S11C_BG_ROM_REGION(_region) \ - downcast<s11c_bg_device &>(*device).set_romregion(_region); - - class s11c_bg_device : public device_t, public device_mixer_interface { public: // construction/destruction s11c_bg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - required_device<cpu_device> m_cpu; - required_device<ym2151_device> m_ym2151; - required_device<hc55516_device> m_hc55516; - required_device<pia6821_device> m_pia40; - required_memory_bank m_cpubank; - memory_region* m_rom; - - DECLARE_WRITE8_MEMBER(bg_speech_clock_w); DECLARE_WRITE8_MEMBER(bg_speech_digit_w); DECLARE_WRITE8_MEMBER(bgbank_w); void ctrl_w(uint8_t data); void data_w(uint8_t data); - void set_romregion(const char *tag) { m_regiontag = tag; } + template <typename T> void set_romregion(T &&tag) { m_rom.set_tag(std::forward<T>(tag)); } void s11c_bg_map(address_map &map); protected: @@ -51,7 +39,12 @@ protected: virtual void device_add_mconfig(machine_config &config) override; private: - const char* m_regiontag; + required_device<cpu_device> m_cpu; + required_device<ym2151_device> m_ym2151; + required_device<hc55516_device> m_hc55516; + required_device<pia6821_device> m_pia40; + required_memory_bank m_cpubank; + required_region_ptr<uint8_t> m_rom; DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); DECLARE_WRITE8_MEMBER(pia40_pb_w); |