summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/harddriv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/harddriv.c')
-rw-r--r--src/mame/video/harddriv.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/mame/video/harddriv.c b/src/mame/video/harddriv.c
index 99c47df0b0e..0a9a5d4cbbb 100644
--- a/src/mame/video/harddriv.c
+++ b/src/mame/video/harddriv.c
@@ -30,7 +30,7 @@
*
*************************************/
-VIDEO_START_MEMBER(harddriv_state,harddriv)
+void harddriv_state::init_video()
{
UINT32 *destmask, mask;
int i;
@@ -161,7 +161,9 @@ TMS340X0_FROM_SHIFTREG_CB_MEMBER(harddriv_state::hdgsp_read_from_shiftreg)
void harddriv_state::update_palette_bank(int newbank)
{
- m_screen->update_partial(m_screen->vpos());
+ screen_device &scr = m_gsp->screen();
+
+ scr.update_partial(scr.vpos());
m_gfx_palettebank = newbank;
}
@@ -214,6 +216,7 @@ WRITE16_MEMBER( harddriv_state::hdgsp_control_hi_w )
COMBINE_DATA(&m_gsp_control_hi[offset]);
newword = m_gsp_control_hi[offset];
+ screen_device &scr = m_gsp->screen();
switch (offset & 7)
{
@@ -223,7 +226,7 @@ WRITE16_MEMBER( harddriv_state::hdgsp_control_hi_w )
case 0x01:
data = data & (15 >> m_gsp_multisync);
- m_screen->update_partial(m_screen->vpos() - 1);
+ scr.update_partial(scr.vpos() - 1);
m_gfx_finescroll = data;
break;
@@ -407,6 +410,9 @@ static void display_speedups(void)
TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_driver)
{
UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 12) & m_vram_mask];
+
+ if (!vram_base) return;
+
UINT16 *dest = &bitmap.pix16(scanline);
int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 4) - 15 + (m_gfx_finescroll & 0x0f);
int x;
@@ -422,6 +428,9 @@ TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_driver)
TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_multisync)
{
UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 11) & m_vram_mask];
+
+ if (!vram_base) return;
+
UINT16 *dest = &bitmap.pix16(scanline);
int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 3) - 7 + (m_gfx_finescroll & 0x07);
int x;