diff options
Diffstat (limited to 'src/mame/video/harddriv.c')
-rw-r--r-- | src/mame/video/harddriv.c | 15 |
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; |