added new graphic roms to the 1999 head panic set

note, this version is clearly a different PCB, it uses the older style sprites (which are actually just bootleg tumble pop sprites..)

the sound rom on the PCB is bad.

also added sprite flicker flag, based on tumble pop etc.
This commit is contained in:
davidhay 2009-03-06 00:15:28 +00:00
parent 4b4228dfe2
commit 6ed3494bca
3 changed files with 126 additions and 14 deletions

View File

@ -65,7 +65,7 @@ WRITE16_HANDLER( esd16_tilemap0_color_w );
VIDEO_START( esd16 );
VIDEO_UPDATE( esd16 );
VIDEO_UPDATE( hedpanic );
VIDEO_UPDATE( hedpanio );
static UINT16 *headpanic_platform_x;
static UINT16 *headpanic_platform_y;
@ -645,6 +645,16 @@ static MACHINE_DRIVER_START( swatpolc )
MDRV_GFXDECODE(tangtang)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( hedpanio )
/* basic machine hardware */
MDRV_IMPORT_FROM(hedpanic)
MDRV_VIDEO_UPDATE(hedpanio)
MACHINE_DRIVER_END
/***************************************************************************
@ -966,25 +976,27 @@ ROM_START( hedpanif ) /* Story line in Japanese, game instructions in English */
ROM_END
ROM_START( hedpanio ) /* Story line & game instructions in English, copyright year is 1999 */
ROM_START( hedpanio ) /* Story line & game instructions in English, copyright year is 1999 - uses older style sprites */
ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "esd2.rom", 0x000000, 0x040000, CRC(70b08424) SHA1(2ba4fb3b749e31db4239a9173b8509366400152f) )
ROM_LOAD16_BYTE( "esd1.rom", 0x000001, 0x040000, CRC(4e0682c5) SHA1(f4117f31b6426d7bf126a6c62c489b9347885b42) )
ROM_REGION( 0x24000, "audiocpu", 0 ) /* Z80 Code */
ROM_REGION( 0x44000, "audiocpu", 0 ) /* Z80 Code */
ROM_LOAD( "esd3.rom", 0x00000, 0x0c000, BAD_DUMP CRC(b72b761b) SHA1(9735e05ddc1db38bf81eac89a5312200fc008248) ) /* Should be twice the size, IE: 27C020 */
ROM_CONTINUE( 0x10000, 0x14000)
//ROM_LOAD( "esd3.su06", 0x00000, 0x0c000, CRC(a88d4424) SHA1(eefb5ac79632931a36f360713c482cd079891f91) ) /* AT27C020 mask rom */
//ROM_CONTINUE( 0x10000, 0x34000)
ROM_REGION( 0x600000, "gfx1", ROMREGION_DISPOSE ) /* Sprites, 16x16x5 */
ROM_LOAD( "ver615_esd6.ju01", 0x200000, 0x200000, BAD_DUMP CRC(5858372c) SHA1(dc96112587df681d53cf7449bd39477919978325) )
ROM_LOAD( "ver615_esd7.ju02", 0x000000, 0x200000, BAD_DUMP CRC(055d525f) SHA1(85ad474691f96e47311a1904015d1c92d3b2d607) )
ROM_LOAD( "sm1.bin", 0x000000, 0x200000, CRC(8083813f) SHA1(9492e7e844e45d59f0506f69d40c338b27bd3ce3) )
ROM_LOAD( "sm2.bin", 0x200000, 0x200000, CRC(7a9610e4) SHA1(21ae3ec3fbddfc66416c109b091bd885d5ba0558) )
/* expand this to take up 0x200000 bytes too so we can decode it */
ROM_LOAD16_BYTE( "esd5.rom", 0x400000, 0x080000, CRC(82c5727f) SHA1(017f1d0c94475c51d17f12e24895f47a273a2dbb) )
ROM_FILL( 0x500000, 0x100000, 0 )
ROM_REGION( 0x400000, "gfx2", ROMREGION_DISPOSE ) /* Layers, 16x16x8 */
ROM_LOAD16_BYTE( "ver615_esd8.fu35", 0x000000, 0x200000, BAD_DUMP CRC(23aceb4f) SHA1(35d9ebc33b9e1515e47750cfcdfc0bf8bf44b71d) )
ROM_LOAD16_BYTE( "ver615_esd9.fu34", 0x000001, 0x200000, BAD_DUMP CRC(76b46cd2) SHA1(679cbf50ae5935e8848868081ecef4ec66424f6c) )
ROM_LOAD16_BYTE( "sm3.bin", 0x000000, 0x200000, CRC(94dd4cfc) SHA1(a3f9c49611f0bc9d26166dafb44e2c5ebbb31127) )
ROM_LOAD16_BYTE( "sm4.bin", 0x000001, 0x200000, CRC(6da0fb9e) SHA1(c4e7487953f45c5f6ce2ebe558b4c325f6ec54eb) )
ROM_REGION( 0x20000, "oki", 0 ) /* Samples */
ROM_LOAD( "esd4.rom", 0x000000, 0x020000, CRC(d7ca6806) SHA1(8ad668bfb5b7561cc0f3e36dfc3c936b136a4274) )
@ -1160,7 +1172,7 @@ GAME( 2000, mchampdx, 0, mchampdx, hedpanic, 0, ROT0, "ESD", "Mul
GAME( 1999, mchampda, mchampdx, mchampdx, hedpanic, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1126, 26/11/1999)", 0 ) // 26/11/1999 ?
GAME( 2000, hedpanic, 0, hedpanic, hedpanic, 0, ROT0, "ESD", "Head Panic (ver. 0117, 17/01/2000)", 0 ) // 17/01/2000 ?
GAME( 2000, hedpanif, hedpanic, hedpanic, hedpanic, 0, ROT0, "ESD / Fuuki", "Head Panic (ver. 0315, 15/03/2000)", 0 ) // 15/03/2000 ?
GAME( 1999, hedpanio, hedpanic, hedpanic, hedpanic, 0, ROT0, "ESD", "Head Panic (ver. 0615, 15/06/1999)", GAME_NOT_WORKING ) // 15/06/1999 ?
GAME( 1999, hedpanio, hedpanic, hedpanio, hedpanic, 0, ROT0, "ESD", "Head Panic (ver. 0615, 15/06/1999)", GAME_NO_SOUND ) // 15/06/1999 ?
/* ESD - This PCB looks identical to the ESD 08-26-1999 PCB */
GAME( 2000, tangtang, 0, tangtang, hedpanic, 0, ROT0, "ESD", "Tang Tang (ver. 0526, 26/05/2000)", 0 ) // 26/05/2000 ?

View File

@ -8871,6 +8871,35 @@ Other Sun games
DRIVER( fb4v )
DRIVER( fb4v2 )
DRIVER( fb4v3 )
DRIVER( fb5 )
DRIVER( fb5c )
DRIVER( fb5d )
DRIVER( fb5v )
DRIVER( fb6 )
DRIVER( fb6v3 )
DRIVER( fb6d2 )
DRIVER( fb6s )
DRIVER( fb6v )
DRIVER( fb6d )
DRIVER( fb6s2 )
DRIVER( fb6v2 )
DRIVER( fb6se )
DRIVER( fb6sev )
DRIVER( fb6sed )
DRIVER( fb6sev2 )
DRIVER( fb6sed2 )
DRIVER( fb6sev3 )
DRIVER( version4 )
DRIVER( bugfever )
DRIVER( bugfeverd )
DRIVER( bugfeverv )
DRIVER( bugfeverv2 )
DRIVER( dvisland )
DRIVER( funriver )
DRIVER( funriverv )
DRIVER( amclink )
DRIVER( act2000 )
DRIVER( act2000a )
DRIVER( act2000a2 )

View File

@ -195,6 +195,8 @@ VIDEO_START( esd16 )
- To Do: Flip X&Y ? They seem unused.
these are clearly the same as the tumble pop (bootleg?) sprites
***************************************************************************/
static void esd16_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
@ -215,13 +217,16 @@ static void esd16_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
int dimy = 1 << ((sy >> 9) & 3);
int flipx = attr & 0x0000;
int flipx = sy & 0x2000;
int flipy = attr & 0x0000;
int flash = sy & 0x1000;
int color = (sx >> 9) & 0xf;
int pri_mask;
if (flash && (video_screen_get_frame_number(machine->primary_screen) & 1)) continue;
if(sx & 0x8000)
pri_mask = 0xfffe; // under "tilemap 1"
else
@ -271,13 +276,17 @@ static void hedpanic_draw_sprites(running_machine *machine, bitmap_t *bitmap, co
int dimy = 1 << ((sy >> 9) & 3);
int flipx = spriteram16[ offs + 0 ] & 0x2000;
int flipx = sy & 0x2000;
int flipy = sy & 0x0000;
int flash = sy & 0x1000;
int color = (sx >> 9) & 0xf;
int pri_mask;
if (flash && (video_screen_get_frame_number(machine->primary_screen) & 1)) continue;
if(sx & 0x8000)
pri_mask = 0xfffe; // under "tilemap 1"
else
@ -412,3 +421,65 @@ if ( input_code_pressed(KEYCODE_Z) )
// popmessage("%04x %04x %04x %04x %04x",head_unknown1[0],head_layersize[0],head_unknown3[0],head_unknown4[0],head_unknown5[0]);
return 0;
}
// uses older style sprites
VIDEO_UPDATE( hedpanio )
{
int layers_ctrl = -1;
bitmap_fill(priority_bitmap,cliprect,0);
#ifdef MAME_DEBUG
if ( input_code_pressed(KEYCODE_Z) )
{ int msk = 0;
if (input_code_pressed(KEYCODE_Q)) msk |= 1;
if (input_code_pressed(KEYCODE_W)) msk |= 2;
if (input_code_pressed(KEYCODE_A)) msk |= 4;
if (msk != 0) layers_ctrl &= msk; }
#endif
if (layers_ctrl & 1)
{
if (head_layersize[0]&0x0001)
{
tilemap_set_scrollx(esdtilemap_0_16x16, 0, esd16_scroll_0[0]);
tilemap_set_scrolly(esdtilemap_0_16x16, 0, esd16_scroll_0[1]);
tilemap_draw(bitmap,cliprect,esdtilemap_0_16x16,0,0);
}
else
{
tilemap_set_scrollx(esdtilemap_0, 0, esd16_scroll_0[0]);
tilemap_set_scrolly(esdtilemap_0, 0, esd16_scroll_0[1]);
tilemap_draw(bitmap,cliprect,esdtilemap_0,0,0);
}
}
else
{
bitmap_fill(bitmap,cliprect,0);
}
if (layers_ctrl & 2)
{
if (head_layersize[0]&0x0002)
{
tilemap_set_scrollx(esdtilemap_1_16x16, 0, esd16_scroll_1[0]);
tilemap_set_scrolly(esdtilemap_1_16x16, 0, esd16_scroll_1[1]);
tilemap_draw(bitmap,cliprect,esdtilemap_1_16x16,0,1);
}
else
{
tilemap_set_scrollx(esdtilemap_1, 0, esd16_scroll_1[0]);
tilemap_set_scrolly(esdtilemap_1, 0, esd16_scroll_1[1]);
tilemap_draw(bitmap,cliprect,esdtilemap_1,0,1);
}
}
if (layers_ctrl & 4) esd16_draw_sprites(screen->machine,bitmap,cliprect);
// popmessage("%04x %04x %04x %04x %04x",head_unknown1[0],head_layersize[0],head_unknown3[0],head_unknown4[0],head_unknown5[0]);
return 0;
}