summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/sunplus_gcm394_video.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/sunplus_gcm394_video.h')
-rw-r--r--src/devices/machine/sunplus_gcm394_video.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/devices/machine/sunplus_gcm394_video.h b/src/devices/machine/sunplus_gcm394_video.h
index 05a703f9f47..28ca2d0f1ff 100644
--- a/src/devices/machine/sunplus_gcm394_video.h
+++ b/src/devices/machine/sunplus_gcm394_video.h
@@ -14,7 +14,7 @@
#include "cpu/unsp/unsp.h"
#include "screen.h"
-class gcm394_base_video_device : public device_t
+class gcm394_base_video_device : public device_t, public device_gfx_interface, public device_video_interface
{
public:
gcm394_base_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@@ -83,8 +83,7 @@ public:
DECLARE_WRITE16_MEMBER(video_7088_w);
DECLARE_READ16_MEMBER(video_7083_r);
-
-
+
auto write_video_irq_callback() { return m_video_irq_cb.bind(); };
protected:
@@ -135,6 +134,8 @@ protected:
template<blend_enable_t Blend, rowscroll_enable_t RowScroll, flipx_t FlipX>
void draw(const rectangle &cliprect, uint32_t line, uint32_t xoff, uint32_t yoff, uint32_t bitmap_addr, uint16_t tile, int32_t h, int32_t w, uint8_t bpp, uint32_t yflipmask, uint32_t palette_offset);
void draw_page(const rectangle &cliprect, uint32_t scanline, int priority, uint32_t bitmap_addr, uint16_t *regs);
+ void draw_sprites(const rectangle& cliprect, uint32_t scanline, int priority);
+ void draw_sprite(const rectangle& cliprect, uint32_t scanline, int priority, uint32_t base_addr);
uint32_t m_screenbuf[320 * 240];
uint8_t m_rgb5_to_rgb8[32];
@@ -144,11 +145,15 @@ protected:
required_device<screen_device> m_screen;
// required_shared_ptr<uint16_t> m_scrollram;
required_shared_ptr<uint16_t> m_paletteram;
-// required_shared_ptr<uint16_t> m_spriteram;
+ required_shared_ptr<uint16_t> m_spriteram;
uint16_t m_page1_addr;
uint16_t m_page2_addr;
+ uint16_t m_videodma_bank;
+ uint16_t m_videodma_size;
+ uint16_t m_videodma_dest;
+ uint16_t m_videodma_source;
devcb_write_line m_video_irq_cb;
@@ -179,6 +184,8 @@ protected:
uint16_t m_video_irq_status;
+ uint16_t m_spriteextra[0x100];
+
uint16_t read_data(uint32_t offset);
};