diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index cdde00263b5..221bbcbccad 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -500,14 +500,14 @@ static MACHINE_DRIVER_START( backfire ) MDRV_SCREEN_ADD("left", RASTER) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MDRV_SCREEN_SIZE(40*8, 32*8) MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MDRV_SCREEN_ADD("right", RASTER) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MDRV_SCREEN_SIZE(40*8, 32*8) MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c index 7c4feb22199..4076d046344 100644 --- a/src/mame/drivers/m107.c +++ b/src/mame/drivers/m107.c @@ -495,7 +495,7 @@ static MACHINE_DRIVER_START( firebarr ) /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_SIZE(512, 256) MDRV_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index 075341e416e..59d33ffa585 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -788,7 +788,7 @@ static MACHINE_DRIVER_START( naomi ) /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) MDRV_SCREEN_SIZE(640, 480) MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c index 75edb097085..8638cbbb6b7 100644 --- a/src/mame/drivers/sidearms.c +++ b/src/mame/drivers/sidearms.c @@ -729,7 +729,7 @@ static MACHINE_DRIVER_START( sidearms ) MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_SIZE(64*8, 32*8) MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) @@ -775,7 +775,7 @@ static MACHINE_DRIVER_START( turtship ) MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_SIZE(64*8, 32*8) MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c index bad3cd93ef5..348ff733b5d 100644 --- a/src/mame/video/astrocde.c +++ b/src/mame/video/astrocde.c @@ -468,7 +468,8 @@ static TIMER_CALLBACK( scanline_callback ) int astrocade_scanline = mame_vpos_to_astrocade_vpos(scanline); /* force an update against the current scanline */ - video_screen_update_partial(machine->primary_screen, scanline - 1); + if (scanline > 0) + video_screen_update_partial(machine->primary_screen, scanline - 1); /* generate a scanline interrupt if it's time */ if (astrocade_scanline == interrupt_scanline && (interrupt_enable & 0x08) != 0) diff --git a/src/mame/video/leland.c b/src/mame/video/leland.c index bc2e432b51e..c55ee859465 100644 --- a/src/mame/video/leland.c +++ b/src/mame/video/leland.c @@ -82,26 +82,26 @@ static VIDEO_START( ataxx ) WRITE8_HANDLER( leland_scroll_w ) { + int scanline = video_screen_get_vpos(machine->primary_screen); + if (scanline > 0) + video_screen_update_partial(machine->primary_screen, scanline - 1); + /* adjust the proper scroll value */ switch (offset) { case 0: - video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen) - 1); xscroll = (xscroll & 0xff00) | (data & 0x00ff); break; case 1: - video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen) - 1); xscroll = (xscroll & 0x00ff) | ((data << 8) & 0xff00); break; case 2: - video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen) - 1); yscroll = (yscroll & 0xff00) | (data & 0x00ff); break; case 3: - video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen) - 1); yscroll = (yscroll & 0x00ff) | ((data << 8) & 0xff00); break; @@ -200,7 +200,9 @@ static void leland_vram_port_w(int offset, int data, int num) /* don't fully understand why this is needed. Isn't the video RAM just one big RAM? */ - video_screen_update_partial(Machine->primary_screen, video_screen_get_vpos(Machine->primary_screen) - 1); + int scanline = video_screen_get_vpos(Machine->primary_screen); + if (scanline > 0) + video_screen_update_partial(Machine->primary_screen, scanline - 1); if (LOG_COMM && addr >= 0xf000) logerror("%04X:%s comm write %04X = %02X\n", activecpu_get_previouspc(), num ? "slave" : "master", addr, data);