mirror of
https://github.com/holub/mame
synced 2025-05-23 22:20:01 +03:00
Changed Caveman Ninja driver to use Partial Updates for Raster Effects
instead of buffering scanline data [David Haywood] - Tested against Robocop 2 road stage Changed Deco32 driver to use Partial Updates for Raster Effects instead of buffering scanline data (but left Dragon Gun using the buffering, because the video rendering code is far too slow with 224 partial updates for now) [David Haywood] - Tested against Captain America intro Commented out some harmful and suspicious looking interrupt generation in NamcoND1 driver until it's being properly verified; fixes Game Options menu in NCV2 test mode. [David Haywood] new clones ----------- Cherry Master I (ver.1.01) (various bootleg? sets) [David Haywood] Block (Game Corporation bootleg, set 3) [David Haywood]
This commit is contained in:
parent
81523f2e10
commit
674fcdc548
@ -1088,6 +1088,28 @@ ROM_START( block2 )
|
||||
ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */
|
||||
ROM_END
|
||||
|
||||
// this set has the same 'space invader' scrambled block gfx, and unknown (sound?) rom as the one above
|
||||
// sadly no mention of what chip it might be for in the readme.
|
||||
ROM_START( arkbloc3 )
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD( "blockbl.001", 0x00000, 0x8000, CRC(bf7197a0) SHA1(4fbc0cbc09d292ab0f2e4a35b30505b2f7e4dc0d) )
|
||||
ROM_LOAD( "blockbl.002", 0x08000, 0x8000, CRC(29dbe452) SHA1(b99cb98549bddf1e673e2e715c80664001581f9f) )
|
||||
|
||||
ROM_REGION( 0x8000, "unknown", 0 ) /* is it more data or something else like sound or palette ? not Z80 code nor levels anyway */
|
||||
ROM_LOAD( "blockbl.006", 0x00000, 0x8000, CRC(e336c219) SHA1(e1dce37727e7084a83e73f15a138312ab6224061) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx1", 0 )
|
||||
ROM_LOAD( "blockbl.003", 0x00000, 0x8000, CRC(6d2c6123) SHA1(26f32099d363ab2c8505722513638b827e49a8fc) )
|
||||
ROM_LOAD( "blockbl.004", 0x08000, 0x8000, CRC(09a1f9d9) SHA1(c7e21aba6efb51c5501aa1428f6d9a817cb86555) )
|
||||
ROM_LOAD( "blockbl.005", 0x10000, 0x8000, CRC(dfb9f7e2) SHA1(8d938ee6f8dcac0a564d5fa7cd5da34e0db07c71) )
|
||||
|
||||
// no proms were present in this set.. assumed to be the same
|
||||
ROM_REGION( 0x0600, "proms", 0 )
|
||||
ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */
|
||||
ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */
|
||||
ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */
|
||||
ROM_END
|
||||
|
||||
ROM_START( arkblock )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "ark-6.bin", 0x0000, 0x8000, CRC(0be015de) SHA1(f4209085b59d2c96a62ac9657c7bf097da55362b) )
|
||||
@ -1365,9 +1387,10 @@ GAME( 1986, arkmcubl, arkanoid, arkanoid, arknoidj, 0, ROT90, "bootleg"
|
||||
GAME( 1986, ark1ball, arkanoid, arkanoid, ark1ball, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, harder)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, arkangc, arkanoid, bootleg, arkangc, arkangc, ROT90, "bootleg", "Arkanoid (Game Corporation bootleg, set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, arkangc2, arkanoid, bootleg, arkangc2, arkangc2, ROT90, "bootleg", "Arkanoid (Game Corporation bootleg, set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, block2, arkanoid, bootleg, block2, block2, ROT90, "bootleg", "Block 2 (S.P.A. CO. bootleg)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, arkblock, arkanoid, bootleg, arkangc, arkblock, ROT90, "bootleg", "Block (Game Corporation bootleg, set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, arkbloc2, arkanoid, bootleg, arkangc, arkbloc2, ROT90, "bootleg", "Block (Game Corporation bootleg, set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, arkbloc3, arkanoid, bootleg, block2, block2, ROT90, "bootleg", "Block (Game Corporation bootleg, set 3)", GAME_SUPPORTS_SAVE )// Both these sets have an extra unknown rom
|
||||
GAME( 1986, block2, arkanoid, bootleg, block2, block2, ROT90, "bootleg", "Block 2 (S.P.A. CO. bootleg)", GAME_SUPPORTS_SAVE ) // and scrambled gfx roms with 'space invader' themed gfx
|
||||
GAME( 1986, arkgcbl, arkanoid, bootleg, arkgcbl, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, arkgcbla, arkanoid, bootleg, arkgcbl, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, paddle2, arkanoid, bootleg, paddle2, paddle2, ROT90, "bootleg", "Paddle 2 (bootleg on Block hardware)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -72,19 +72,6 @@ static WRITE16_HANDLER( stoneage_sound_w )
|
||||
|
||||
static TIMER_DEVICE_CALLBACK( interrupt_gen )
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
/* Save state of scroll registers before the IRQ */
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = scanline;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf12_control[1] & 0xffff;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf12_control[2] & 0xffff;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf12_control[3] & 0xffff;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf12_control[4] & 0xffff;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf34_control[1] & 0xffff;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf34_control[2] & 0xffff;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf34_control[3] & 0xffff;
|
||||
deco16_raster_display_list[deco16_raster_display_position++] = deco16_pf34_control[4] & 0xffff;
|
||||
|
||||
cputag_set_input_line(timer->machine, "maincpu", (cninja_irq_mask&0x10) ? 3 : 4, ASSERT_LINE);
|
||||
timer_device_adjust_oneshot(raster_irq_timer, attotime_never, 0);
|
||||
}
|
||||
@ -122,7 +109,9 @@ static WRITE16_HANDLER( cninja_irq_w )
|
||||
case 1: /* Raster IRQ scanline position, only valid for values between 1 & 239 (0 and 240-256 do NOT generate IRQ's) */
|
||||
cninja_scanline=data&0xff;
|
||||
if ((cninja_irq_mask&0x2)==0 && cninja_scanline>0 && cninja_scanline<240)
|
||||
{
|
||||
timer_device_adjust_oneshot(raster_irq_timer, video_screen_get_time_until_pos(space->machine->primary_screen, cninja_scanline, 0), cninja_scanline);
|
||||
}
|
||||
else
|
||||
timer_device_adjust_oneshot(raster_irq_timer,attotime_never,0);
|
||||
return;
|
||||
@ -153,16 +142,30 @@ static READ16_HANDLER( robocop2_prot_r )
|
||||
|
||||
/**********************************************************************************/
|
||||
|
||||
static WRITE16_HANDLER( deco16_pf12_control_w )
|
||||
{
|
||||
COMBINE_DATA(&deco16_pf12_control[offset]);
|
||||
video_screen_update_partial(space->machine->primary_screen, video_screen_get_vpos(space->machine->primary_screen));
|
||||
}
|
||||
|
||||
|
||||
static WRITE16_HANDLER( deco16_pf34_control_w )
|
||||
{
|
||||
COMBINE_DATA(&deco16_pf34_control[offset]);
|
||||
video_screen_update_partial(space->machine->primary_screen, video_screen_get_vpos(space->machine->primary_screen));
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( cninja_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0bffff) AM_ROM
|
||||
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITE(deco16_pf12_control_w) AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x144000, 0x144fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
|
||||
AM_RANGE(0x146000, 0x146fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
|
||||
AM_RANGE(0x14c000, 0x14c7ff) AM_WRITEONLY AM_BASE(&deco16_pf1_rowscroll)
|
||||
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(&deco16_pf2_rowscroll)
|
||||
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITEONLY AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITE(deco16_pf34_control_w) AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x154000, 0x154fff) AM_RAM_WRITE(deco16_pf3_data_w) AM_BASE(&deco16_pf3_data)
|
||||
AM_RANGE(0x156000, 0x156fff) AM_RAM_WRITE(deco16_pf4_data_w) AM_BASE(&deco16_pf4_data)
|
||||
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(&deco16_pf3_rowscroll)
|
||||
@ -190,13 +193,13 @@ static ADDRESS_MAP_START( cninjabl_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
|
||||
AM_RANGE(0x138000, 0x1387ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* bootleg sprite-ram (sprites rewritten here in new format) */
|
||||
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITE(deco16_pf12_control_w) AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x144000, 0x144fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
|
||||
AM_RANGE(0x146000, 0x146fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
|
||||
AM_RANGE(0x14c000, 0x14c7ff) AM_WRITEONLY AM_BASE(&deco16_pf1_rowscroll)
|
||||
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(&deco16_pf2_rowscroll)
|
||||
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITEONLY AM_BASE(&deco16_pf34_control) // not used / incorrect on this
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITE(deco16_pf34_control_w) AM_BASE(&deco16_pf34_control) // not used / incorrect on this
|
||||
AM_RANGE(0x154000, 0x154fff) AM_RAM_WRITE(deco16_pf3_data_w) AM_BASE(&deco16_pf3_data)
|
||||
AM_RANGE(0x156000, 0x156fff) AM_RAM_WRITE(deco16_pf4_data_w) AM_BASE(&deco16_pf4_data)
|
||||
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(&deco16_pf3_rowscroll)
|
||||
@ -218,13 +221,13 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( edrandy_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITE(deco16_pf12_control_w) AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x144000, 0x144fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
|
||||
AM_RANGE(0x146000, 0x146fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
|
||||
AM_RANGE(0x14c000, 0x14c7ff) AM_RAM AM_BASE(&deco16_pf1_rowscroll)
|
||||
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(&deco16_pf2_rowscroll)
|
||||
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITEONLY AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITE(deco16_pf34_control_w) AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x154000, 0x154fff) AM_RAM_WRITE(deco16_pf3_data_w) AM_BASE(&deco16_pf3_data)
|
||||
AM_RANGE(0x156000, 0x156fff) AM_RAM_WRITE(deco16_pf4_data_w) AM_BASE(&deco16_pf4_data)
|
||||
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(&deco16_pf3_rowscroll)
|
||||
@ -242,16 +245,17 @@ static ADDRESS_MAP_START( edrandy_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x1bc800, 0x1bcfff) AM_WRITENOP /* Another bug in game code? Sprite list can overrun. Doesn't seem to mirror */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( robocop2_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x140000, 0x14000f) AM_WRITE(deco16_pf12_control_w) AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x144000, 0x144fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
|
||||
AM_RANGE(0x146000, 0x146fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
|
||||
AM_RANGE(0x14c000, 0x14c7ff) AM_RAM AM_BASE(&deco16_pf1_rowscroll)
|
||||
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(&deco16_pf2_rowscroll)
|
||||
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITEONLY AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x150000, 0x15000f) AM_WRITE(deco16_pf34_control_w) AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x154000, 0x154fff) AM_RAM_WRITE(deco16_pf3_data_w) AM_BASE(&deco16_pf3_data)
|
||||
AM_RANGE(0x156000, 0x156fff) AM_RAM_WRITE(deco16_pf4_data_w) AM_BASE(&deco16_pf4_data)
|
||||
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(&deco16_pf3_rowscroll)
|
||||
@ -281,13 +285,13 @@ static ADDRESS_MAP_START( mutantf_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x1c0000, 0x1c0001) AM_READWRITE(deco16_71_r, buffer_spriteram16_w)
|
||||
AM_RANGE(0x1e0000, 0x1e0001) AM_WRITE(buffer_spriteram16_2_w)
|
||||
|
||||
AM_RANGE(0x300000, 0x30000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x300000, 0x30000f) AM_WRITE(deco16_pf12_control_w) AM_BASE(&deco16_pf12_control)
|
||||
AM_RANGE(0x304000, 0x305fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
|
||||
AM_RANGE(0x306000, 0x307fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
|
||||
AM_RANGE(0x308000, 0x3087ff) AM_RAM AM_BASE(&deco16_pf1_rowscroll)
|
||||
AM_RANGE(0x30a000, 0x30a7ff) AM_RAM AM_BASE(&deco16_pf2_rowscroll)
|
||||
|
||||
AM_RANGE(0x310000, 0x31000f) AM_WRITEONLY AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x310000, 0x31000f) AM_WRITE(deco16_pf34_control_w) AM_BASE(&deco16_pf34_control)
|
||||
AM_RANGE(0x314000, 0x315fff) AM_RAM_WRITE(deco16_pf3_data_w) AM_BASE(&deco16_pf3_data)
|
||||
AM_RANGE(0x316000, 0x317fff) AM_RAM_WRITE(deco16_pf4_data_w) AM_BASE(&deco16_pf4_data)
|
||||
AM_RANGE(0x318000, 0x3187ff) AM_RAM AM_BASE(&deco16_pf3_rowscroll)
|
||||
@ -770,7 +774,6 @@ static MACHINE_DRIVER_START( cninja )
|
||||
|
||||
MDRV_VIDEO_START(cninja)
|
||||
MDRV_VIDEO_UPDATE(cninja)
|
||||
MDRV_VIDEO_EOF(cninja)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -820,7 +823,6 @@ static MACHINE_DRIVER_START( stoneage )
|
||||
|
||||
MDRV_VIDEO_START(stoneage)
|
||||
MDRV_VIDEO_UPDATE(cninja)
|
||||
MDRV_VIDEO_EOF(cninja)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -866,9 +868,8 @@ static MACHINE_DRIVER_START( cninjabl )
|
||||
MDRV_GFXDECODE(cninjabl)
|
||||
MDRV_PALETTE_LENGTH(2048)
|
||||
|
||||
MDRV_VIDEO_START(stoneage)
|
||||
MDRV_VIDEO_UPDATE(cninja)
|
||||
MDRV_VIDEO_EOF(cninja)
|
||||
MDRV_VIDEO_START(cninja)
|
||||
MDRV_VIDEO_UPDATE(cninjabl)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -912,7 +913,6 @@ static MACHINE_DRIVER_START( edrandy )
|
||||
|
||||
MDRV_VIDEO_START(edrandy)
|
||||
MDRV_VIDEO_UPDATE(edrandy)
|
||||
MDRV_VIDEO_EOF(cninja)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -962,7 +962,6 @@ static MACHINE_DRIVER_START( robocop2 )
|
||||
|
||||
MDRV_VIDEO_START(robocop2)
|
||||
MDRV_VIDEO_UPDATE(robocop2)
|
||||
MDRV_VIDEO_EOF(cninja)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
@ -244,15 +244,24 @@ static UINT8 nslasher_sound_irq;
|
||||
|
||||
/**********************************************************************************/
|
||||
|
||||
|
||||
static WRITE32_HANDLER( deco32_pf12_control_w )
|
||||
{
|
||||
COMBINE_DATA(&deco32_pf12_control[offset]);
|
||||
video_screen_update_partial(space->machine->primary_screen, video_screen_get_vpos(space->machine->primary_screen));
|
||||
}
|
||||
|
||||
|
||||
static WRITE32_HANDLER( deco32_pf34_control_w )
|
||||
{
|
||||
COMBINE_DATA(&deco32_pf34_control[offset]);
|
||||
video_screen_update_partial(space->machine->primary_screen, video_screen_get_vpos(space->machine->primary_screen));
|
||||
}
|
||||
|
||||
|
||||
|
||||
static TIMER_DEVICE_CALLBACK( interrupt_gen )
|
||||
{
|
||||
/* Save state of scroll registers before the IRQ */
|
||||
deco32_raster_display_list[deco32_raster_display_position++]=video_screen_get_vpos(timer->machine->primary_screen);
|
||||
deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[1]&0xffff;
|
||||
deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[2]&0xffff;
|
||||
deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[3]&0xffff;
|
||||
deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[4]&0xffff;
|
||||
|
||||
cputag_set_input_line(timer->machine, "maincpu", ARM_IRQ_LINE, HOLD_LINE);
|
||||
}
|
||||
|
||||
@ -305,7 +314,10 @@ static WRITE32_HANDLER( deco32_irq_controller_w )
|
||||
case 1: /* Raster IRQ scanline position, only valid for values between 1 & 239 (0 and 240-256 do NOT generate IRQ's) */
|
||||
scanline=(data&0xff);
|
||||
if (raster_enable && scanline>0 && scanline<240)
|
||||
timer_device_adjust_oneshot(raster_irq_timer,video_screen_get_time_until_pos(space->machine->primary_screen, scanline-1, 320),0);
|
||||
{
|
||||
// needs +16 for the raster to align on captaven intro? (might just be our screen size / visible area / layer offsets need adjusting instead)
|
||||
timer_device_adjust_oneshot(raster_irq_timer,video_screen_get_time_until_pos(space->machine->primary_screen, scanline+16, 320),0);
|
||||
}
|
||||
else
|
||||
timer_device_adjust_oneshot(raster_irq_timer,attotime_never,0);
|
||||
break;
|
||||
@ -673,14 +685,14 @@ static ADDRESS_MAP_START( captaven_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
|
||||
AM_RANGE(0x178000, 0x178003) AM_WRITE(deco32_pri_w)
|
||||
|
||||
AM_RANGE(0x180000, 0x18001f) AM_RAM AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x180000, 0x18001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x190000, 0x191fff) AM_RAM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data)
|
||||
AM_RANGE(0x192000, 0x193fff) AM_WRITE(deco32_pf1_data_w) /* Mirror address - bug in program code */
|
||||
AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
|
||||
AM_RANGE(0x1a0000, 0x1a1fff) AM_RAM AM_BASE(&deco32_pf1_rowscroll)
|
||||
AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM AM_BASE(&deco32_pf2_rowscroll)
|
||||
|
||||
AM_RANGE(0x1c0000, 0x1c001f) AM_RAM AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1c0000, 0x1c001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1d0000, 0x1d1fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data)
|
||||
AM_RANGE(0x1e0000, 0x1e1fff) AM_RAM AM_BASE(&deco32_pf3_rowscroll)
|
||||
ADDRESS_MAP_END
|
||||
@ -706,13 +718,13 @@ static ADDRESS_MAP_START( fghthist_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x184000, 0x185fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
|
||||
AM_RANGE(0x192000, 0x192fff) AM_RAM AM_BASE(&deco32_pf1_rowscroll)
|
||||
AM_RANGE(0x194000, 0x194fff) AM_RAM AM_BASE(&deco32_pf2_rowscroll)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE(&deco32_pf12_control)
|
||||
|
||||
AM_RANGE(0x1c2000, 0x1c3fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data)
|
||||
AM_RANGE(0x1c4000, 0x1c5fff) AM_RAM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data)
|
||||
AM_RANGE(0x1d2000, 0x1d2fff) AM_RAM AM_BASE(&deco32_pf3_rowscroll)
|
||||
AM_RANGE(0x1d4000, 0x1d4fff) AM_RAM AM_BASE(&deco32_pf4_rowscroll)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE(&deco32_pf34_control)
|
||||
|
||||
AM_RANGE(0x16c000, 0x16c01f) AM_READNOP
|
||||
AM_RANGE(0x17c000, 0x17c03f) AM_READNOP
|
||||
@ -739,17 +751,19 @@ static ADDRESS_MAP_START( fghthsta_memmap, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x184000, 0x185fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
|
||||
AM_RANGE(0x192000, 0x192fff) AM_RAM AM_BASE(&deco32_pf1_rowscroll)
|
||||
AM_RANGE(0x194000, 0x194fff) AM_RAM AM_BASE(&deco32_pf2_rowscroll)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE(&deco32_pf12_control)
|
||||
|
||||
AM_RANGE(0x1c2000, 0x1c3fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data)
|
||||
AM_RANGE(0x1c4000, 0x1c5fff) AM_RAM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data)
|
||||
AM_RANGE(0x1d2000, 0x1d2fff) AM_RAM AM_BASE(&deco32_pf3_rowscroll)
|
||||
AM_RANGE(0x1d4000, 0x1d4fff) AM_RAM AM_BASE(&deco32_pf4_rowscroll)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE(&deco32_pf34_control)
|
||||
|
||||
AM_RANGE(0x200000, 0x200fff) AM_READWRITE(deco16_146_fghthist_prot_r, deco16_146_fghthist_prot_w) AM_BASE(&deco32_prot_ram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// the video drawing (especially sprite) code on this is too slow to cope with proper partial updates
|
||||
// raster effects appear to need some work on it anyway?
|
||||
static ADDRESS_MAP_START( dragngun_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE(&deco32_ram)
|
||||
@ -760,12 +774,14 @@ static ADDRESS_MAP_START( dragngun_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x138000, 0x138003) AM_NOP /* Palette dma complete in bit 0x8? ack? return 0 else tight loop */
|
||||
AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w)
|
||||
|
||||
// AM_RANGE(0x180000, 0x18001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x180000, 0x18001f) AM_RAM AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x190000, 0x191fff) AM_RAM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data)
|
||||
AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
|
||||
AM_RANGE(0x1a0000, 0x1a0fff) AM_RAM AM_BASE(&deco32_pf1_rowscroll)
|
||||
AM_RANGE(0x1a4000, 0x1a4fff) AM_RAM AM_BASE(&deco32_pf2_rowscroll)
|
||||
|
||||
// AM_RANGE(0x1c0000, 0x1c001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1c0000, 0x1c001f) AM_RAM AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1d0000, 0x1d1fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data)
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data)
|
||||
@ -811,12 +827,14 @@ static ADDRESS_MAP_START( lockload_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x170000, 0x170007) AM_READ(lockload_gun_mirror_r) /* Not on Dragongun */
|
||||
AM_RANGE(0x178008, 0x17800f) AM_WRITENOP /* Gun read ACK's */
|
||||
|
||||
// AM_RANGE(0x180000, 0x18001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x180000, 0x18001f) AM_RAM AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x190000, 0x191fff) AM_RAM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data)
|
||||
AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
|
||||
AM_RANGE(0x1a0000, 0x1a0fff) AM_RAM AM_BASE(&deco32_pf1_rowscroll)
|
||||
AM_RANGE(0x1a4000, 0x1a4fff) AM_RAM AM_BASE(&deco32_pf2_rowscroll)
|
||||
|
||||
// AM_RANGE(0x1c0000, 0x1c001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1c0000, 0x1c001f) AM_RAM AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1d0000, 0x1d1fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data)
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data)
|
||||
@ -877,13 +895,13 @@ static ADDRESS_MAP_START( tattass_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x184000, 0x185fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
|
||||
AM_RANGE(0x192000, 0x193fff) AM_RAM AM_BASE(&deco32_pf1_rowscroll)
|
||||
AM_RANGE(0x194000, 0x195fff) AM_RAM AM_BASE(&deco32_pf2_rowscroll)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE(&deco32_pf12_control)
|
||||
|
||||
AM_RANGE(0x1c2000, 0x1c3fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data)
|
||||
AM_RANGE(0x1c4000, 0x1c5fff) AM_RAM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data)
|
||||
AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM AM_BASE(&deco32_pf3_rowscroll)
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM AM_BASE(&deco32_pf4_rowscroll)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE(&deco32_pf34_control)
|
||||
|
||||
AM_RANGE(0x200000, 0x200fff) AM_READWRITE(tattass_prot_r, tattass_prot_w) AM_BASE(&deco32_prot_ram)
|
||||
ADDRESS_MAP_END
|
||||
@ -917,13 +935,13 @@ static ADDRESS_MAP_START( nslasher_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x184000, 0x185fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
|
||||
AM_RANGE(0x192000, 0x193fff) AM_RAM AM_BASE(&deco32_pf1_rowscroll)
|
||||
AM_RANGE(0x194000, 0x195fff) AM_RAM AM_BASE(&deco32_pf2_rowscroll)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM AM_BASE(&deco32_pf12_control)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE(&deco32_pf12_control)
|
||||
|
||||
AM_RANGE(0x1c2000, 0x1c3fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data)
|
||||
AM_RANGE(0x1c4000, 0x1c5fff) AM_RAM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data)
|
||||
AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM AM_BASE(&deco32_pf3_rowscroll)
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM AM_BASE(&deco32_pf4_rowscroll)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM AM_BASE(&deco32_pf34_control)
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE(&deco32_pf34_control)
|
||||
|
||||
AM_RANGE(0x200000, 0x200fff) AM_READWRITE(nslasher_prot_r, nslasher_prot_w) AM_BASE(&deco32_prot_ram)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -5962,6 +5962,188 @@ ROM_START( cmasterc )
|
||||
ROM_LOAD( "82s129.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
|
||||
this set is weird, apart from the MGRAISE.BIN it's a cherry master set, I'm assuming that somehow
|
||||
there is extra hardware which causes it to run a different game contained in that rom?
|
||||
|
||||
the extra rom contains
|
||||
|
||||
MEGA DOUBLE POKER TM COPYRIGHT 1991
|
||||
|
||||
as well as various
|
||||
|
||||
COPYRIGHT (C) 1988-90-92 GERALD DUHAMEL
|
||||
|
||||
strings spread across the rom
|
||||
|
||||
------------------
|
||||
|
||||
Blitz Video Poker
|
||||
1991
|
||||
|
||||
Hardware for a real Video Poker Machine that was supposed to pay out $$$.
|
||||
|
||||
Contains:
|
||||
|
||||
1 X Z80 CPU
|
||||
2 X 6505s?
|
||||
1 GI AY-3-8910
|
||||
2 x 8255
|
||||
|
||||
CH3 BIN 32,768 11-15-98 8:46a CH3.BIN
|
||||
MAST9 BIN 65,536 11-15-98 8:47a MAST9.BIN
|
||||
MAST5 BIN 32,768 11-15-98 8:48a MAST5.BIN
|
||||
MAST6 BIN 32,768 11-15-98 8:50a MAST6.BIN
|
||||
MAST7 BIN 32,768 11-15-98 8:50a MAST7.BIN
|
||||
MAST1 BIN 8,192 11-15-98 8:52a MAST1.BIN
|
||||
MAST2 BIN 8,192 11-15-98 8:53a MAST2.BIN
|
||||
MAST3 BIN 8,192 11-15-98 8:54a MAST3.BIN
|
||||
MAST4 BIN 8,192 11-15-98 8:55a MAST4.BIN
|
||||
MGRAISE BIN 131,072 11-15-98 8:58a MGRAISE.BIN Sound Amp with 6502
|
||||
|
||||
*/
|
||||
|
||||
ROM_START( cmasterbv )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "ch3.bin", 0x0000, 0x1000, CRC(9af51e47) SHA1(ac002c218502430a3e45259776ca409d32d2d4e5) )
|
||||
ROM_CONTINUE(0x4000,0x1000)
|
||||
ROM_CONTINUE(0x3000,0x1000)
|
||||
ROM_CONTINUE(0x7000,0x1000)
|
||||
ROM_CONTINUE(0x1000,0x1000)
|
||||
ROM_CONTINUE(0x6000,0x1000)
|
||||
ROM_CONTINUE(0x2000,0x1000)
|
||||
ROM_CONTINUE(0x5000,0x1000)
|
||||
|
||||
ROM_REGION( 0x20000, "extra", 0 ) // how do we use this?!!
|
||||
ROM_LOAD( "mgraise.bin", 0x0000, 0x20000, CRC(019f37d4) SHA1(ab71fe0b41ff4415896a23f28b27a0e64950c68c) )
|
||||
|
||||
|
||||
ROM_REGION( 0x18000, "gfx1", 0 )
|
||||
ROM_LOAD( "mast5.bin", 0x00000, 0x8000, CRC(19cc1d67) SHA1(47487f9362bfb36a32100ed772960628844462bf) )
|
||||
ROM_LOAD( "mast6.bin", 0x08000, 0x8000, CRC(63b3df4e) SHA1(9bacd23da598805ec18ec5ad15cab95d71eb9262) )
|
||||
ROM_LOAD( "mast7.bin", 0x10000, 0x8000, CRC(e39fff9c) SHA1(22fdc517fa478441622c6245cecb5728c5595757) )
|
||||
|
||||
ROM_REGION( 0x8000, "gfx2", 0 )
|
||||
ROM_LOAD( "mast3.bin", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) )
|
||||
ROM_LOAD( "mast4.bin", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) )
|
||||
ROM_LOAD( "mast1.bin", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) )
|
||||
ROM_LOAD( "mast2.bin", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) )
|
||||
|
||||
ROM_REGION( 0x10000, "user1", 0 ) // girl bitmaps
|
||||
ROM_LOAD( "mast9.bin", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) )
|
||||
|
||||
ROM_REGION( 0x200, "proms", 0 )
|
||||
ROM_LOAD( "82s129.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) )
|
||||
ROM_LOAD( "82s129.u70", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) )
|
||||
|
||||
ROM_REGION( 0x100, "proms2", 0 )
|
||||
ROM_LOAD( "82s129.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cmasterd )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "cherryb.rom", 0x0000, 0x1000, CRC(b6ab94f6) SHA1(6e74a2354d15aa1da6b8207e0413158d7cb52a44) )
|
||||
ROM_CONTINUE(0x4000,0x1000)
|
||||
ROM_CONTINUE(0x3000,0x1000)
|
||||
ROM_CONTINUE(0x7000,0x1000)
|
||||
ROM_CONTINUE(0x1000,0x1000)
|
||||
ROM_CONTINUE(0x6000,0x1000)
|
||||
ROM_CONTINUE(0x2000,0x1000)
|
||||
ROM_CONTINUE(0x5000,0x1000)
|
||||
|
||||
ROM_REGION( 0x18000, "gfx1", 0 )
|
||||
ROM_LOAD( "u16.7", 0x00000, 0x8000, CRC(19cc1d67) SHA1(47487f9362bfb36a32100ed772960628844462bf) )
|
||||
ROM_LOAD( "u11.6", 0x08000, 0x8000, CRC(63b3df4e) SHA1(9bacd23da598805ec18ec5ad15cab95d71eb9262) )
|
||||
ROM_LOAD( "u4.5", 0x10000, 0x8000, CRC(e39fff9c) SHA1(22fdc517fa478441622c6245cecb5728c5595757) )
|
||||
|
||||
ROM_REGION( 0x8000, "gfx2", 0 )
|
||||
ROM_LOAD( "u15.4", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) )
|
||||
ROM_LOAD( "u10.3", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) )
|
||||
ROM_LOAD( "u14.2", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) )
|
||||
ROM_LOAD( "u9.1", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) )
|
||||
|
||||
ROM_REGION( 0x10000, "user1", 0 )
|
||||
ROM_LOAD( "u53.8", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) )
|
||||
|
||||
/* proms taken from cmv4, probably wrong */
|
||||
ROM_REGION( 0x200, "proms", 0 )
|
||||
ROM_LOAD( "82s129.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) )
|
||||
ROM_LOAD( "82s129.u70", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) )
|
||||
|
||||
ROM_REGION( 0x100, "proms2", 0 )
|
||||
ROM_LOAD( "82s129.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cmastere )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "cm33.rom", 0x0000, 0x1000, CRC(c3c3f7df) SHA1(47eda025859afebe64fd76e17e8390262fb40e0b) )
|
||||
ROM_CONTINUE(0x4000,0x1000)
|
||||
ROM_CONTINUE(0x3000,0x1000)
|
||||
ROM_CONTINUE(0x7000,0x1000)
|
||||
ROM_CONTINUE(0x1000,0x1000)
|
||||
ROM_CONTINUE(0x6000,0x1000)
|
||||
ROM_CONTINUE(0x2000,0x1000)
|
||||
ROM_CONTINUE(0x5000,0x1000)
|
||||
|
||||
ROM_REGION( 0x18000, "gfx1", 0 )
|
||||
ROM_LOAD( "u16.7", 0x00000, 0x8000, CRC(19cc1d67) SHA1(47487f9362bfb36a32100ed772960628844462bf) )
|
||||
ROM_LOAD( "u11.6", 0x08000, 0x8000, CRC(63b3df4e) SHA1(9bacd23da598805ec18ec5ad15cab95d71eb9262) )
|
||||
ROM_LOAD( "u4.5", 0x10000, 0x8000, CRC(e39fff9c) SHA1(22fdc517fa478441622c6245cecb5728c5595757) )
|
||||
|
||||
ROM_REGION( 0x8000, "gfx2", 0 )
|
||||
ROM_LOAD( "u15.4", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) )
|
||||
ROM_LOAD( "u10.3", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) )
|
||||
ROM_LOAD( "u14.2", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) )
|
||||
ROM_LOAD( "u9.1", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) )
|
||||
|
||||
ROM_REGION( 0x10000, "user1", 0 )
|
||||
ROM_LOAD( "u53.8", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) )
|
||||
|
||||
/* proms taken from cmv4, probably wrong */
|
||||
ROM_REGION( 0x200, "proms", 0 )
|
||||
ROM_LOAD( "82s129.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) )
|
||||
ROM_LOAD( "82s129.u70", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) )
|
||||
|
||||
ROM_REGION( 0x100, "proms2", 0 )
|
||||
ROM_LOAD( "82s129.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cmasterf )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "cmbig55.rom", 0x0000, 0x1000, CRC(2cc4df7b) SHA1(ad5b8108913ff88fb435c8c12b47446575e1360e) )
|
||||
ROM_CONTINUE(0x4000,0x1000)
|
||||
ROM_CONTINUE(0x3000,0x1000)
|
||||
ROM_CONTINUE(0x7000,0x1000)
|
||||
ROM_CONTINUE(0x1000,0x1000)
|
||||
ROM_CONTINUE(0x6000,0x1000)
|
||||
ROM_CONTINUE(0x2000,0x1000)
|
||||
ROM_CONTINUE(0x5000,0x1000)
|
||||
|
||||
ROM_REGION( 0x18000, "gfx1", 0 )
|
||||
ROM_LOAD( "u16.7", 0x00000, 0x8000, CRC(19cc1d67) SHA1(47487f9362bfb36a32100ed772960628844462bf) )
|
||||
ROM_LOAD( "u11.6", 0x08000, 0x8000, CRC(63b3df4e) SHA1(9bacd23da598805ec18ec5ad15cab95d71eb9262) )
|
||||
ROM_LOAD( "u4.5", 0x10000, 0x8000, CRC(e39fff9c) SHA1(22fdc517fa478441622c6245cecb5728c5595757) )
|
||||
|
||||
ROM_REGION( 0x8000, "gfx2", 0 )
|
||||
ROM_LOAD( "u15.4", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) )
|
||||
ROM_LOAD( "u10.3", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) )
|
||||
ROM_LOAD( "u14.2", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) )
|
||||
ROM_LOAD( "u9.1", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) )
|
||||
|
||||
ROM_REGION( 0x10000, "user1", 0 )
|
||||
ROM_LOAD( "u53.8", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) )
|
||||
|
||||
/* proms taken from cmv4, probably wrong */
|
||||
ROM_REGION( 0x200, "proms", 0 )
|
||||
ROM_LOAD( "82s129.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) )
|
||||
ROM_LOAD( "82s129.u70", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) )
|
||||
|
||||
ROM_REGION( 0x100, "proms2", 0 )
|
||||
ROM_LOAD( "82s129.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
|
||||
ROM_END
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Cherry Master '91
|
||||
@ -6026,6 +6208,38 @@ ROM_START( cmast91 )
|
||||
ROM_LOAD( "pld4.bin", 0x0600, 0x0104, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
ROM_START( cmast92 )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "cm9230d.rom", 0x00000, 0x01000, CRC(214a0a2d) SHA1(2d349e0888ac2da3df954517fdeb9214a3b17ae1) )
|
||||
// I've not checked the rom loading yet
|
||||
ROM_CONTINUE(0x1000,0x1000)
|
||||
ROM_CONTINUE(0x4000,0x1000)
|
||||
ROM_CONTINUE(0x5000,0x1000)
|
||||
ROM_CONTINUE(0x2000,0x1000)
|
||||
ROM_CONTINUE(0x3000,0x1000)
|
||||
ROM_CONTINUE(0x6000,0x1000)
|
||||
ROM_CONTINUE(0x7000,0x1000)
|
||||
ROM_CONTINUE(0x8000,0x1000)
|
||||
ROM_CONTINUE(0x9000,0x1000)
|
||||
ROM_CONTINUE(0xa000,0x1000)
|
||||
ROM_CONTINUE(0xb000,0x1000)
|
||||
ROM_CONTINUE(0xc000,0x1000)
|
||||
ROM_CONTINUE(0xd000,0x1000)
|
||||
ROM_CONTINUE(0xe000,0x1000)
|
||||
ROM_CONTINUE(0xf000,0x1000)
|
||||
|
||||
// we only have a program rom :-(
|
||||
ROM_REGION( 0x18000, "gfx1", 0 )
|
||||
ROM_LOAD( "cherry master 92 graphics", 0x00000, 0x8000, NO_DUMP )
|
||||
ROM_REGION( 0x20000, "gfx2", ROMREGION_ERASEFF )
|
||||
ROM_REGION( 0x40000, "user1", ROMREGION_ERASEFF )
|
||||
ROM_REGION( 0x300, "proms", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "cherry master 92 proms", 0x00000, 0x100, NO_DUMP )
|
||||
ROM_REGION( 0x100, "proms2", ROMREGION_ERASEFF )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
|
||||
Lucky 8 Line
|
||||
@ -8408,13 +8622,24 @@ GAME( 199?, cb3b, ncb3, cherrys, ncb3, cherrys, ROT0, "Dyna",
|
||||
// cherry master hardware has a rather different mem map, but is basically the same
|
||||
GAME( 198?, cmv801, 0, cm, cmv801, cm, ROT0, "Corsica", "Cherry Master (Corsica, ver.8.01)", 0 ) /* says ED-96 where the manufacturer is on some games.. */
|
||||
|
||||
// most of these are almost certainly bootlegs, with added features, hacked payouts etc. identifying which are
|
||||
// the original, unmodified dyna versions is almost impossible due to lack of documentation from back in the day,
|
||||
// even original boards almost always run modified sets
|
||||
GAME( 1992, cmv4, 0, cm, cmv4, cmv4, ROT0, "Dyna", "Cherry Master (ver.4, set 1)", 0 )
|
||||
GAME( 1992, cmv4a, cmv4, cm, cmv4, cmv4, ROT0, "Dyna", "Cherry Master (ver.4, set 2)", GAME_NOT_WORKING ) /* stealth game? */
|
||||
GAME( 1991, cmaster, 0, cm, cmaster, 0, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 1)", 0 )
|
||||
GAME( 1991, cmasterb, cmaster, cm, cmasterb, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 2)", 0 )
|
||||
GAME( 1991, cmasterc, cmaster, cmasterc, cmasterc, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 3)", 0 )
|
||||
GAME( 1991, cmasterbv, cmaster, cm, cmasterb, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 4, with Blitz Poker ROM?)", GAME_NOT_WORKING ) // Cherry Master works, but no idea how to use the Blitz ROM
|
||||
GAME( 1991, cmasterd, cmaster, cm, cmasterb, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 5)", 0 )
|
||||
GAME( 1991, cmastere, cmaster, cm, cmasterb, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 6)", 0 )
|
||||
GAME( 1991, cmasterf, cmaster, cm, cmasterb, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 7)", 0 )
|
||||
|
||||
|
||||
GAME( 1991, cmast91, 0, cmast91, cmast91, cmast91, ROT0, "Dyna", "Cherry Master '91 (ver.1.30)", 0 )
|
||||
|
||||
GAME( 1992, cmast92, 0, cmast91, cmast91, cmast91, ROT0, "Dyna", "Cherry Master '92", GAME_NOT_WORKING ) // no gfx roms are dumped
|
||||
|
||||
|
||||
GAME( 1989, lucky8, 0, lucky8, lucky8, 0, ROT0, "Wing Co.Ltd / GEI", "New Lucky 8 Lines (set 1)", 0 )
|
||||
GAME( 1989, lucky8a, lucky8, lucky8, lucky8a, lucky8a, ROT0, "Wing Co.Ltd / GEI", "New Lucky 8 Lines (set 2)", 0 )
|
||||
|
@ -287,7 +287,13 @@ static MACHINE_DRIVER_START( namcond1 )
|
||||
MDRV_CPU_ADD("maincpu", M68000, 12288000)
|
||||
MDRV_CPU_PROGRAM_MAP(namcond1_map)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
|
||||
MDRV_CPU_PERIODIC_INT(ygv608_timed_interrupt, 1000)
|
||||
|
||||
// I've disabled this for now, I don't think it's correct, it breaks ncv2 'game options' in test
|
||||
// mode (and could also be responsible for the random resets?)
|
||||
// also, if you log the timing of it and the scanlines on which the interrupt fires, it doesn't
|
||||
// seem correct for the intended purpose?
|
||||
//MDRV_CPU_PERIODIC_INT(ygv608_timed_interrupt, 1000)
|
||||
|
||||
|
||||
MDRV_CPU_ADD("mcu", H83002, 16384000 )
|
||||
MDRV_CPU_PROGRAM_MAP( nd1h8rwmap)
|
||||
|
@ -6,6 +6,7 @@ VIDEO_START( robocop2 );
|
||||
VIDEO_START( stoneage );
|
||||
VIDEO_START( mutantf );
|
||||
VIDEO_UPDATE( cninja );
|
||||
VIDEO_UPDATE( cninjabl );
|
||||
VIDEO_UPDATE( edrandy );
|
||||
VIDEO_UPDATE( robocop2 );
|
||||
VIDEO_UPDATE( mutantf );
|
||||
|
@ -1805,6 +1805,7 @@ const game_driver * const drivers[] =
|
||||
DRIVER( arkangc2 ) /* bootleg */
|
||||
DRIVER( arkblock ) /* bootleg */
|
||||
DRIVER( arkbloc2 ) /* bootleg */
|
||||
DRIVER( arkbloc3 ) /* bootleg */
|
||||
DRIVER( arkgcbl ) /* bootleg */
|
||||
DRIVER( arkgcbla ) /* bootleg */
|
||||
DRIVER( paddle2 ) /* bootleg */
|
||||
@ -9365,9 +9366,6 @@ Other Sun games
|
||||
DRIVER( showhanc ) /* (c) 1999? Astro Corp. */
|
||||
|
||||
/* Dyna */
|
||||
DRIVER( cb2001 ) /* (c) 2001 Dyna Electronics */
|
||||
DRIVER( scherrym ) /* (c) 2001? Dyna Electronics */
|
||||
|
||||
DRIVER( ncb3 ) /* (c) 199? Dyna Electronics */
|
||||
DRIVER( cb3a ) /* (c) 199? Dyna Electronics */
|
||||
DRIVER( cb3 ) /* (c) 199? Dyna Electronics */
|
||||
@ -9378,7 +9376,14 @@ Other Sun games
|
||||
DRIVER( cmaster ) /* (c) 1991 Dyna Electronics */
|
||||
DRIVER( cmasterb ) /* (c) 1991 Dyna Electronics */
|
||||
DRIVER( cmasterc ) /* (c) 1991 Dyna Electronics */
|
||||
DRIVER( cmasterbv ) /* (c) 1991 Dyna Electronics / Gerald Duhamel?*/
|
||||
DRIVER( cmasterd ) /* (c) 1991 Dyna Electronics */
|
||||
DRIVER( cmastere ) /* (c) 1991 Dyna Electronics */
|
||||
DRIVER( cmasterf ) /* (c) 1991 Dyna Electronics */
|
||||
DRIVER( cmast91 ) /* (c) 1991 Dyna Electronics */
|
||||
DRIVER( cmast92 ) /* (c) 1992 Dyna Electronics */
|
||||
DRIVER( cb2001 ) /* (c) 2001 Dyna Electronics */
|
||||
DRIVER( scherrym ) /* (c) 2001? Dyna Electronics */
|
||||
|
||||
/* STG? */
|
||||
DRIVER( queen )
|
||||
|
@ -97,55 +97,6 @@ VIDEO_START( mutantf )
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
VIDEO_EOF( cninja )
|
||||
{
|
||||
deco16_raster_display_position=0;
|
||||
}
|
||||
|
||||
static void raster_pf3_draw(bitmap_t *bitmap, const rectangle *cliprect, int flags, int pri)
|
||||
{
|
||||
tilemap_t *tmap=deco16_get_tilemap(2,0);
|
||||
int ptr=0,start,end=0;
|
||||
rectangle clip;
|
||||
int overflow=deco16_raster_display_position;
|
||||
|
||||
clip.min_x = cliprect->min_x;
|
||||
clip.max_x = cliprect->max_x;
|
||||
|
||||
/* Finish list up to end of visible display */
|
||||
deco16_raster_display_list[overflow++]=255;
|
||||
deco16_raster_display_list[overflow++]=deco16_pf12_control[1];
|
||||
deco16_raster_display_list[overflow++]=deco16_pf12_control[2];
|
||||
deco16_raster_display_list[overflow++]=deco16_pf12_control[3];
|
||||
deco16_raster_display_list[overflow++]=deco16_pf12_control[4];
|
||||
deco16_raster_display_list[overflow++]=deco16_pf34_control[1];
|
||||
deco16_raster_display_list[overflow++]=deco16_pf34_control[2];
|
||||
deco16_raster_display_list[overflow++]=deco16_pf34_control[3];
|
||||
deco16_raster_display_list[overflow++]=deco16_pf34_control[4];
|
||||
|
||||
while (ptr<overflow) {
|
||||
start=end;
|
||||
end=deco16_raster_display_list[ptr++];
|
||||
|
||||
/* Restore state of registers before IRQ */
|
||||
deco16_pf12_control[1]=deco16_raster_display_list[ptr++];
|
||||
deco16_pf12_control[2]=deco16_raster_display_list[ptr++];
|
||||
deco16_pf12_control[3]=deco16_raster_display_list[ptr++];
|
||||
deco16_pf12_control[4]=deco16_raster_display_list[ptr++];
|
||||
deco16_pf34_control[1]=deco16_raster_display_list[ptr++];
|
||||
deco16_pf34_control[2]=deco16_raster_display_list[ptr++];
|
||||
deco16_pf34_control[3]=deco16_raster_display_list[ptr++];
|
||||
deco16_pf34_control[4]=deco16_raster_display_list[ptr++];
|
||||
|
||||
clip.min_y = start;
|
||||
clip.max_y = end;
|
||||
|
||||
/* Update tilemap for this register state, and draw */
|
||||
deco16_pf34_update(deco16_pf3_rowscroll,deco16_pf4_rowscroll);
|
||||
tilemap_draw(bitmap,&clip,tmap,flags,pri);
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static void cninja_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
@ -218,6 +169,104 @@ static void cninja_draw_sprites(running_machine *machine, bitmap_t *bitmap, cons
|
||||
}
|
||||
}
|
||||
|
||||
/* The bootleg sprites are in a different format! */
|
||||
static void cninjabl_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
UINT16 *buffered_spriteram16 = machine->generic.buffered_spriteram.u16;
|
||||
int offs;
|
||||
int endoffs;
|
||||
|
||||
// bootleg seems to use 0x180 as an end of list marker
|
||||
// find it first, so we can use normal list processing
|
||||
endoffs = 0x400-4;
|
||||
for (offs = 0;offs <0x400-4 ;offs += 4)
|
||||
{
|
||||
int y;
|
||||
|
||||
y = buffered_spriteram16[offs+1];
|
||||
|
||||
if (y==0x180)
|
||||
{
|
||||
endoffs = offs;
|
||||
offs = 0x400-4;
|
||||
}
|
||||
}
|
||||
|
||||
for (offs = endoffs;offs >=0 ;offs -= 4)
|
||||
{
|
||||
int x,y,sprite,colour,multi,fx,fy,inc,flash,mult,pri=0;
|
||||
|
||||
sprite = buffered_spriteram16[offs+0]; // changed on bootleg!
|
||||
y = buffered_spriteram16[offs+1]; // changed on bootleg!
|
||||
|
||||
if (!sprite) continue;
|
||||
|
||||
x = buffered_spriteram16[offs+2];
|
||||
|
||||
/* Sprite/playfield priority */
|
||||
switch (x&0xc000) {
|
||||
case 0x0000: pri=0; break;
|
||||
case 0x4000: pri=0xf0; break;
|
||||
case 0x8000: pri=0xf0|0xcc; break;
|
||||
case 0xc000: pri=0xf0|0xcc; break; /* Perhaps 0xf0|0xcc|0xaa (Sprite under bottom layer) */
|
||||
}
|
||||
|
||||
|
||||
|
||||
flash=y&0x1000;
|
||||
if (flash && (video_screen_get_frame_number(machine->primary_screen) & 1)) continue;
|
||||
|
||||
colour = (x >> 9) &0x1f;
|
||||
|
||||
|
||||
fx = y & 0x2000;
|
||||
fy = y & 0x4000;
|
||||
|
||||
multi = (1 << ((y & 0x0600) >> 9)) - 1; /* 1x, 2x, 4x, 8x height */
|
||||
|
||||
y -= multi*16; // changed on bootleg!
|
||||
y += 4;
|
||||
|
||||
x = x & 0x01ff;
|
||||
y = y & 0x01ff;
|
||||
if (x >= 256) x -= 512;
|
||||
if (y >= 256) y -= 512;
|
||||
x = 240 - x;
|
||||
y = 240 - y;
|
||||
|
||||
//sprite &= ~multi;
|
||||
if (fy)
|
||||
inc = -1;
|
||||
else
|
||||
{
|
||||
sprite += multi;
|
||||
inc = 1;
|
||||
}
|
||||
|
||||
if (flip_screen_get(machine)) {
|
||||
y=240-y;
|
||||
x=240-x;
|
||||
if (fx) fx=0; else fx=1;
|
||||
if (fy) fy=0; else fy=1;
|
||||
mult=16;
|
||||
}
|
||||
else mult=-16;
|
||||
|
||||
while (multi >= 0)
|
||||
{
|
||||
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[3],
|
||||
sprite - multi * inc,
|
||||
colour,
|
||||
fx,fy,
|
||||
x,y + mult * multi,
|
||||
machine->priority_bitmap,pri,0);
|
||||
|
||||
multi--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void robocop2_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
UINT16 *buffered_spriteram16 = machine->generic.buffered_spriteram.u16;
|
||||
@ -414,6 +463,24 @@ VIDEO_UPDATE( cninja )
|
||||
return 0;
|
||||
}
|
||||
|
||||
VIDEO_UPDATE( cninjabl )
|
||||
{
|
||||
flip_screen_set(screen->machine, deco16_pf12_control[0]&0x80 );
|
||||
deco16_pf12_update(deco16_pf1_rowscroll,deco16_pf2_rowscroll);
|
||||
deco16_pf34_update(deco16_pf3_rowscroll,deco16_pf4_rowscroll);
|
||||
|
||||
/* Draw playfields */
|
||||
bitmap_fill(screen->machine->priority_bitmap,cliprect,0);
|
||||
bitmap_fill(bitmap,cliprect,512);
|
||||
deco16_tilemap_4_draw(screen,bitmap,cliprect,TILEMAP_DRAW_OPAQUE,1);
|
||||
deco16_tilemap_3_draw(screen,bitmap,cliprect,0,2);
|
||||
deco16_tilemap_2_draw(screen,bitmap,cliprect,TILEMAP_DRAW_LAYER1,2);
|
||||
deco16_tilemap_2_draw(screen,bitmap,cliprect,TILEMAP_DRAW_LAYER0,4);
|
||||
cninjabl_draw_sprites(screen->machine,bitmap,cliprect);
|
||||
deco16_tilemap_1_draw(screen,bitmap,cliprect,0,0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
VIDEO_UPDATE( edrandy )
|
||||
{
|
||||
flip_screen_set(screen->machine, deco16_pf12_control[0]&0x80 );
|
||||
@ -423,10 +490,7 @@ VIDEO_UPDATE( edrandy )
|
||||
bitmap_fill(screen->machine->priority_bitmap,cliprect,0);
|
||||
bitmap_fill(bitmap,cliprect,0);
|
||||
deco16_tilemap_4_draw(screen,bitmap,cliprect,TILEMAP_DRAW_OPAQUE,1);
|
||||
if (deco16_raster_display_position)
|
||||
raster_pf3_draw(bitmap,cliprect,0,2);
|
||||
else
|
||||
deco16_tilemap_3_draw(screen,bitmap,cliprect,0,2);
|
||||
deco16_tilemap_3_draw(screen,bitmap,cliprect,0,2);
|
||||
deco16_tilemap_2_draw(screen,bitmap,cliprect,0,4);
|
||||
cninja_draw_sprites(screen->machine,bitmap,cliprect);
|
||||
deco16_tilemap_1_draw(screen,bitmap,cliprect,0,0);
|
||||
@ -461,17 +525,11 @@ VIDEO_UPDATE( robocop2 )
|
||||
switch (deco16_priority&0x8) {
|
||||
case 8:
|
||||
deco16_tilemap_2_draw(screen,bitmap,cliprect,0,2);
|
||||
if (deco16_raster_display_position)
|
||||
raster_pf3_draw(bitmap,cliprect,0,4);
|
||||
else
|
||||
deco16_tilemap_3_draw(screen,bitmap,cliprect,0,4);
|
||||
deco16_tilemap_3_draw(screen,bitmap,cliprect,0,4);
|
||||
break;
|
||||
default:
|
||||
case 0:
|
||||
if (deco16_raster_display_position)
|
||||
raster_pf3_draw(bitmap,cliprect,0,2);
|
||||
else
|
||||
deco16_tilemap_3_draw(screen,bitmap,cliprect,0,2);
|
||||
deco16_tilemap_3_draw(screen,bitmap,cliprect,0,2);
|
||||
deco16_tilemap_2_draw(screen,bitmap,cliprect,0,4);
|
||||
break;
|
||||
}
|
||||
|
@ -972,8 +972,6 @@ VIDEO_START( captaven )
|
||||
pf1a_tilemap =tilemap_create(machine, get_pf1a_tile_info, deco16_scan_rows,16,16,64,32);
|
||||
pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, deco16_scan_rows,16,16,64,32);
|
||||
pf3_tilemap = tilemap_create(machine, get_ca_pf3_tile_info, tilemap_scan_rows,16,16,32,32);
|
||||
deco32_raster_display_list=auto_alloc_array(machine, UINT16, 10 * 256 / 2);
|
||||
memset(deco32_raster_display_list, 0, 10 * 256);
|
||||
|
||||
tilemap_set_transparent_pen(pf1_tilemap,0);
|
||||
tilemap_set_transparent_pen(pf1a_tilemap,0);
|
||||
@ -1000,7 +998,6 @@ VIDEO_START( fghthist )
|
||||
tilemap_set_transparent_pen(pf2_tilemap,0);
|
||||
tilemap_set_transparent_pen(pf3_tilemap,0);
|
||||
|
||||
deco32_raster_display_list=0;
|
||||
deco32_pf2_colourbank=deco32_pf4_colourbank=0;
|
||||
has_ace_ram=0;
|
||||
}
|
||||
@ -1072,7 +1069,6 @@ VIDEO_START( nslasher )
|
||||
tilemap_set_transparent_pen(pf3_tilemap,0);
|
||||
memset(dirty_palette,0,4096);
|
||||
|
||||
deco32_raster_display_list=0;
|
||||
deco32_pf2_colourbank=16;
|
||||
deco32_pf4_colourbank=16;
|
||||
state_save_register_global(machine, deco32_pri);
|
||||
@ -1084,7 +1080,6 @@ VIDEO_START( nslasher )
|
||||
VIDEO_EOF( captaven )
|
||||
{
|
||||
memcpy(machine->generic.buffered_spriteram.u32,machine->generic.spriteram.u32,machine->generic.spriteram_size);
|
||||
deco32_raster_display_position=0;
|
||||
}
|
||||
|
||||
VIDEO_EOF( dragngun )
|
||||
@ -1153,37 +1148,6 @@ static void deco32_setup_scroll(tilemap_t *pf_tilemap, UINT16 height, UINT8 cont
|
||||
}
|
||||
}
|
||||
|
||||
static void tilemap_raster_draw(bitmap_t *bitmap, const rectangle *cliprect, int flags, int pri)
|
||||
{
|
||||
int ptr=0,start,end=0;
|
||||
rectangle clip;
|
||||
int overflow=deco32_raster_display_position;
|
||||
|
||||
clip.min_x = cliprect->min_x;
|
||||
clip.max_x = cliprect->max_x;
|
||||
|
||||
/* Finish list up to end of visible display */
|
||||
deco32_raster_display_list[overflow++]=255;
|
||||
deco32_raster_display_list[overflow++]=deco32_pf12_control[1];
|
||||
deco32_raster_display_list[overflow++]=deco32_pf12_control[2];
|
||||
deco32_raster_display_list[overflow++]=deco32_pf12_control[3];
|
||||
deco32_raster_display_list[overflow++]=deco32_pf12_control[4];
|
||||
|
||||
while (ptr<overflow) {
|
||||
start=end;
|
||||
end=deco32_raster_display_list[ptr++];
|
||||
deco32_pf12_control[1]=deco32_raster_display_list[ptr++];
|
||||
deco32_pf12_control[2]=deco32_raster_display_list[ptr++];
|
||||
deco32_pf12_control[3]=deco32_raster_display_list[ptr++];
|
||||
deco32_pf12_control[4]=deco32_raster_display_list[ptr++];
|
||||
|
||||
clip.min_y = start;
|
||||
clip.max_y = end;
|
||||
|
||||
deco32_setup_scroll(pf2_tilemap, 512,(deco32_pf12_control[5]>>8)&0xff,(deco32_pf12_control[6]>>8)&0xff,deco32_pf12_control[4],deco32_pf12_control[3],deco32_pf2_rowscroll,deco32_pf2_rowscroll+0x200);
|
||||
tilemap_draw(bitmap,&clip,pf2_tilemap,flags,pri);
|
||||
}
|
||||
}
|
||||
|
||||
static void combined_tilemap_draw(running_machine* machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
@ -1266,16 +1230,10 @@ VIDEO_UPDATE( captaven )
|
||||
else
|
||||
bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine));
|
||||
|
||||
if (deco32_raster_display_position)
|
||||
tilemap_raster_draw(bitmap,cliprect,0,2);
|
||||
else
|
||||
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,2);
|
||||
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,2);
|
||||
} else {
|
||||
if (pf2_enable) {
|
||||
if (deco32_raster_display_position)
|
||||
tilemap_raster_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE,1);
|
||||
else
|
||||
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,1);
|
||||
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,1);
|
||||
}
|
||||
else
|
||||
bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine));
|
||||
|
Loading…
Reference in New Issue
Block a user