summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/sunplus_gcm394_video.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/sunplus_gcm394_video.cpp')
-rw-r--r--src/devices/machine/sunplus_gcm394_video.cpp57
1 files changed, 53 insertions, 4 deletions
diff --git a/src/devices/machine/sunplus_gcm394_video.cpp b/src/devices/machine/sunplus_gcm394_video.cpp
index 277fa8f69ba..0b7d1df65d0 100644
--- a/src/devices/machine/sunplus_gcm394_video.cpp
+++ b/src/devices/machine/sunplus_gcm394_video.cpp
@@ -215,10 +215,59 @@ void gcm394_base_video_device::device_start()
if (memregion(":maincpu"))
decodegfx(":maincpu");
- save_item(NAME(m_spriteextra));
- save_item(NAME(m_spriteram));
-
m_space_read_cb.resolve_safe(0);
+
+
+ save_item(NAME(m_screenbuf));
+ save_item(NAME(m_rgb5_to_rgb8));
+ save_item(NAME(m_rgb555_to_rgb888));
+ save_item(NAME(m_page0_addr_lsb));
+ save_item(NAME(m_page0_addr_msb));
+ save_item(NAME(m_page1_addr_lsb));
+ save_item(NAME(m_page1_addr_msb));
+ save_item(NAME(m_707e_videodma_bank));
+ save_item(NAME(m_videodma_size));
+ save_item(NAME(m_videodma_dest));
+ save_item(NAME(m_videodma_source));
+ save_item(NAME(m_tmap0_regs));
+ save_item(NAME(m_tmap1_regs));
+ save_item(NAME(m_tmap2_regs));
+ save_item(NAME(m_tmap3_regs));
+ save_item(NAME(m_tmap0_scroll));
+ save_item(NAME(m_tmap1_scroll));
+ save_item(NAME(m_tmap2_scroll));
+ save_item(NAME(m_tmap3_scroll));
+ save_item(NAME(m_707f));
+ save_item(NAME(m_703a_palettebank));
+ save_item(NAME(m_7062));
+ save_item(NAME(m_7063));
+ save_item(NAME(m_702a));
+ save_item(NAME(m_7030_brightness));
+ save_item(NAME(m_703c));
+ save_item(NAME(m_7042_sprite));
+ save_item(NAME(m_7080));
+ save_item(NAME(m_7081));
+ save_item(NAME(m_7082));
+ save_item(NAME(m_7083));
+ save_item(NAME(m_7084));
+ save_item(NAME(m_7085));
+ save_item(NAME(m_7086));
+ save_item(NAME(m_7087));
+ save_item(NAME(m_7088));
+ save_item(NAME(m_sprite_7022_gfxbase_lsb));
+ save_item(NAME(m_sprite_702d_gfxbase_msb));
+ save_item(NAME(m_unk_vid1_gfxbase_lsb));
+ save_item(NAME(m_unk_vid1_gfxbase_msb));
+ save_item(NAME(m_unk_vid2_gfxbase_lsb));
+ save_item(NAME(m_unk_vid2_gfxbase_msb));
+ save_item(NAME(m_video_irq_status));
+ save_item(NAME(m_spriteram));
+ save_item(NAME(m_spriteextra));
+ save_item(NAME(m_paletteram));
+ save_item(NAME(m_maxgfxelement));
+ save_item(NAME(m_global_y_mask));
+ save_item(NAME(m_pal_displaybank_high));
+ save_item(NAME(m_alt_tile_addressing));
}
void gcm394_base_video_device::device_reset()
@@ -335,7 +384,7 @@ void gcm394_base_video_device::draw(const rectangle &cliprect, uint32_t line, ui
if (nbits < nc_bpp)
{
- uint16_t b = m_space_read_cb((m++ & 0x3fffff));
+ uint16_t b = m_space_read_cb((m++)&0xfffffff);
b = (b << 8) | (b >> 8);
bits |= b << (nc_bpp - nbits);
nbits += 16;