Fix 01500: all astrocde.c drivers: assertion

Fix 01506: all ataxx.c drivers: Assertion 
Fix 01504: all leland.c drivers: Assertion 
Fix 01501: all m107.c drivers: assertion 
Fix 01509: backfire, backfira: Assertion 
Fix 01503: sidearjp, sidearmr, sidearms: Assertion 
Fix 01507: all naomi.c drivers: Assertion
This commit is contained in:
Zsolt Vasvari 2008-03-14 14:39:32 +00:00
parent 716d0a4f2a
commit 0d06d94153
6 changed files with 15 additions and 12 deletions

View File

@ -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)

View File

@ -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 */

View File

@ -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)

View File

@ -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 )

View File

@ -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)

View File

@ -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);