diff options
Diffstat (limited to 'src/devices/machine/sunplus_gcm394.h')
-rw-r--r-- | src/devices/machine/sunplus_gcm394.h | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/src/devices/machine/sunplus_gcm394.h b/src/devices/machine/sunplus_gcm394.h index dd5dad14fe5..01f2f13abca 100644 --- a/src/devices/machine/sunplus_gcm394.h +++ b/src/devices/machine/sunplus_gcm394.h @@ -21,14 +21,18 @@ class sunplus_gcm394_base_device : public unsp_20_device, public device_mixer_interface { public: - sunplus_gcm394_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) - : unsp_20_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(sunplus_gcm394_base_device::internal_map), this)) - , device_mixer_interface(mconfig, *this, 2) - , m_screen(*this, finder_base::DUMMY_TAG) - , m_spg_video(*this, "spgvideo") - , m_spg_audio(*this, "spgaudio") - , m_porta_in(*this) - , m_portb_in(*this) + sunplus_gcm394_base_device(const machine_config& mconfig, device_type type, const char* tag, device_t* owner, uint32_t clock) : + unsp_20_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(sunplus_gcm394_base_device::internal_map), this)), + device_mixer_interface(mconfig, *this, 2), + m_screen(*this, finder_base::DUMMY_TAG), + m_spg_video(*this, "spgvideo"), + m_spg_audio(*this, "spgaudio"), + m_porta_in(*this), + m_portb_in(*this), + m_porta_out(*this), + m_space_read_cb(*this), + m_space_write_cb(*this), + m_bank_write_cb(*this) { } @@ -37,6 +41,14 @@ public: auto porta_in() { return m_porta_in.bind(); } auto portb_in() { return m_portb_in.bind(); } + auto porta_out() { return m_porta_out.bind(); } + + + auto space_read_callback() { return m_space_read_cb.bind(); } + auto space_write_callback() { return m_space_write_cb.bind(); } + auto bank_write_callback() { return m_bank_write_cb.bind(); } + + DECLARE_WRITE_LINE_MEMBER(vblank) { m_spg_video->vblank(state); } virtual void device_add_mconfig(machine_config& config) override; @@ -55,6 +67,8 @@ protected: devcb_read16 m_porta_in; devcb_read16 m_portb_in; + devcb_write16 m_porta_out; + uint16_t m_dma_params[7]; // unk 78xx @@ -124,6 +138,10 @@ protected: uint16_t m_7961; private: + devcb_read16 m_space_read_cb; + devcb_write16 m_space_write_cb; + devcb_write16 m_bank_write_cb; + DECLARE_READ16_MEMBER(unk_r); DECLARE_WRITE16_MEMBER(unk_w); @@ -189,6 +207,8 @@ private: DECLARE_WRITE16_MEMBER(unkarea_78a0_w); + DECLARE_READ16_MEMBER(unkarea_78a1_r); + DECLARE_WRITE16_MEMBER(unkarea_78a4_w); DECLARE_WRITE16_MEMBER(unkarea_78a5_w); DECLARE_WRITE16_MEMBER(unkarea_78a6_w); @@ -197,6 +217,8 @@ private: DECLARE_WRITE16_MEMBER(unkarea_78b0_w); DECLARE_WRITE16_MEMBER(unkarea_78b1_w); + + DECLARE_READ16_MEMBER(unkarea_78b2_r); DECLARE_WRITE16_MEMBER(unkarea_78b2_w); DECLARE_WRITE16_MEMBER(unkarea_78b8_w); |