summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author davidhay <davidhay@localhost>2009-03-06 00:15:28 +0000
committer davidhay <davidhay@localhost>2009-03-06 00:15:28 +0000
commit6ed3494bca9aa5fa2fdae35d4a210183f5035c76 (patch)
tree59bced1329950c8f05d52d93d906819b7765d77f
parent4b4228dfe2a2cfb9bb819a9c436410bf464e5981 (diff)
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.
-rw-r--r--src/mame/drivers/esd16.c32
-rw-r--r--src/mame/mamedriv.c31
-rw-r--r--src/mame/video/esd16.c77
3 files changed, 126 insertions, 14 deletions
diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c
index 46f295127a9..2f0742e2bc6 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -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 ?
diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c
index 6fb779598a9..f6b2de0cb42 100644
--- a/src/mame/mamedriv.c
+++ b/src/mame/mamedriv.c
@@ -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 )
diff --git a/src/mame/video/esd16.c b/src/mame/video/esd16.c
index ae37edd8e4e..5526f25d849 100644
--- a/src/mame/video/esd16.c
+++ b/src/mame/video/esd16.c
@@ -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;
+}