diff options
Diffstat (limited to 'src/devices/machine/sunplus_gcm394.h')
-rw-r--r-- | src/devices/machine/sunplus_gcm394.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/devices/machine/sunplus_gcm394.h b/src/devices/machine/sunplus_gcm394.h index 70480f4d9ed..c822893b543 100644 --- a/src/devices/machine/sunplus_gcm394.h +++ b/src/devices/machine/sunplus_gcm394.h @@ -24,8 +24,8 @@ public: , device_mixer_interface(mconfig, *this, 2) , m_cpu(*this, finder_base::DUMMY_TAG) , m_screen(*this, finder_base::DUMMY_TAG) - , m_palette(*this, "palette") , m_spg_video(*this, "spgvideo") + , m_porta_in(*this) { } @@ -33,6 +33,8 @@ public: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return m_spg_video->screen_update(screen, bitmap, cliprect); } + auto porta_in() { return m_porta_in.bind(); } + DECLARE_WRITE_LINE_MEMBER(vblank) { m_spg_video->vblank(state); } virtual void device_add_mconfig(machine_config& config) override; @@ -44,9 +46,10 @@ protected: required_device<unsp_device> m_cpu; required_device<screen_device> m_screen; - required_device<palette_device> m_palette; required_device<gcm394_video_device> m_spg_video; + devcb_read16 m_porta_in; + uint16_t m_dma_params[7]; // unk 78xx @@ -109,6 +112,7 @@ protected: // unk 79xx uint16_t m_7934; + uint16_t m_7935; uint16_t m_7936; @@ -194,12 +198,24 @@ private: DECLARE_READ16_MEMBER(unkarea_7934_r); DECLARE_WRITE16_MEMBER(unkarea_7934_w); + + DECLARE_READ16_MEMBER(unkarea_7935_r); + DECLARE_WRITE16_MEMBER(unkarea_7935_w); + DECLARE_READ16_MEMBER(unkarea_7936_r); DECLARE_WRITE16_MEMBER(unkarea_7936_w); DECLARE_WRITE_LINE_MEMBER(videoirq_w); + + void checkirq6(); + + emu_timer *m_unk_timer; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + }; + + class sunplus_gcm394_device : public sunplus_gcm394_base_device { public: |