summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/galastrm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/galastrm.cpp')
-rw-r--r--src/mame/video/galastrm.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mame/video/galastrm.cpp b/src/mame/video/galastrm.cpp
index 77863568fe9..49e3efa5bf0 100644
--- a/src/mame/video/galastrm.cpp
+++ b/src/mame/video/galastrm.cpp
@@ -31,7 +31,9 @@ void galastrm_state::video_start()
save_item(NAME(m_rsxoffs));
save_item(NAME(m_rsyoffs));
save_item(NAME(m_frame_counter));
- save_item(NAME(m_tc0610_addr));
+ save_item(NAME(m_tc0110pcr_addr));
+ save_item(NAME(m_tc0610_0_addr));
+ save_item(NAME(m_tc0610_1_addr));
save_item(NAME(m_tc0610_ctrl_reg));
}
@@ -84,6 +86,8 @@ Heavy use is made of sprite zooming.
void galastrm_state::draw_sprites_pre(int x_offs, int y_offs)
{
+ uint32_t *spriteram32 = m_spriteram;
+ uint16_t *spritemap = (uint16_t *)memregion("user1")->base();
int offs, data, tilenum, color, flipx, flipy;
int x, y, priority, dblsize, curx, cury;
int sprites_flipscreen = 0;
@@ -97,19 +101,19 @@ void galastrm_state::draw_sprites_pre(int x_offs, int y_offs)
for (offs = (m_spriteram.bytes()/4-4);offs >= 0;offs -= 4)
{
- data = m_spriteram[offs+0];
+ data = spriteram32[offs+0];
flipx = (data & 0x00800000) >> 23;
zoomx = (data & 0x007f0000) >> 16;
tilenum = (data & 0x00007fff);
if (!tilenum) continue;
- data = m_spriteram[offs+2];
+ data = spriteram32[offs+2];
priority = (data & 0x000c0000) >> 18;
color = (data & 0x0003fc00) >> 10;
x = (data & 0x000003ff);
- data = m_spriteram[offs+3];
+ data = spriteram32[offs+3];
dblsize = (data & 0x00040000) >> 18;
flipy = (data & 0x00020000) >> 17;
zoomy = (data & 0x0001fc00) >> 10;
@@ -142,7 +146,7 @@ void galastrm_state::draw_sprites_pre(int x_offs, int y_offs)
if (flipx) px = dimension-1-k;
if (flipy) py = dimension-1-j;
- code = m_spritemap_rom[map_offset + px + (py<<(dblsize+1))];
+ code = spritemap[map_offset + px + (py<<(dblsize+1))];
if (code==0xffff)
{