mirror of
https://github.com/holub/mame
synced 2025-05-25 15:25:33 +03:00
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:
parent
4b4228dfe2
commit
6ed3494bca
@ -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,26 +976,28 @@ 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) )
|
||||
ROM_END
|
||||
@ -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 ?
|
||||
|
@ -8870,7 +8870,36 @@ Other Sun games
|
||||
DRIVER( fb4d2 )
|
||||
DRIVER( fb4v )
|
||||
DRIVER( fb4v2 )
|
||||
DRIVER( fb4v3 )
|
||||
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 )
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user