From db95e264bb976b96afda1a049c7998ac371aec64 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sun, 19 Oct 2014 09:13:05 +0000 Subject: [PATCH] new clones S.V.G. - Spectral vs Generation (M68k label V101TW) (ARM label V101TW, ROM 06/20/05 S.V.G V100) [ShouTime] (not working) (internal ROM isn't dumped at all for now, using one from Japan PCB but it crashes on special moves) Rom Labels are all V101, internal ROM strings are all V100, because IGS... --- src/mame/drivers/pgm.c | 38 ++++++++++++++++++++++-- src/mame/includes/pgm.h | 1 + src/mame/machine/pgmprot_igs027a_type3.c | 16 ++++++++++ src/mame/mame.lst | 1 + 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index 66819404782..0038ffb561f 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -3698,6 +3698,39 @@ ROM_START( svg ) ROM_LOAD( "w05602b032.bin", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) ROM_END +ROM_START( svgtw ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v101tw.U30", 0x100000, 0x080000, CRC(8d0405e4) SHA1(b6175c9ffeaac531d28e7845cb34c673476e286a) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ // marked H1 + ROM_LOAD( "svgpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) + ROM_LOAD( "svgcpb_igs027a_v100_japan.bin", 0x0188, 0x3e78, CRC(7a59da5d) SHA1(d67ba465db40ca716b4b901b1c8e762716fb954e) ) // this is from the Japan set, the cart this came from was Taiwan + + ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v101tw.u26", 0x000000, 0x400000, CRC(cc24f542) SHA1(623ed398d2eeea229833d92eb4fb6492133202b3) ) + ROM_LOAD( "v101tw.u36", 0x400000, 0x400000, CRC(f18283e2) SHA1(15323c5f816a0bf6f510311eb49d485ccf713cf7) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t05601w016.bin",0x180000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a05601w064.bin", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) + ROM_LOAD( "a05602w064.bin", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) + ROM_LOAD( "a05603w064.bin", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) + ROM_LOAD( "a05604w032.bin", 0x1800000, 0x0400000, CRC(9452a567) SHA1(01fdb8e1f131603843ef4c49ab76d7a56b2d6414) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b05601w064.bin", 0x0000000, 0x0800000, CRC(35c0a489) SHA1(a7d5527da01f8eaa7499fb6785b57094521bce97) ) + ROM_LOAD( "b05602w064.bin", 0x0800000, 0x0800000, CRC(8aad3f85) SHA1(da6996d901d42b3a2ba7019ad014bb938a5e328b) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "w05601b064.bin", 0x400000, 0x800000, CRC(bfe61a71) SHA1(e682ca8d57ca51c4d72f64fc091161f3dbdce871) ) + ROM_LOAD( "w05602b032.bin", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) +ROM_END + ROM_START( svgpcb ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ @@ -4227,8 +4260,9 @@ GAME( 2003, theglad100, theglad, pgm_arm_type3, theglad, pgm_arm_type3_s // newer than ARM V100 Cart, older than ARM V101 Cart, same 68k rom as V101 Cart. GAME( 2003, thegladpcb, theglad, pgm_arm_type3, pgm, pgm_arm_type3_state, theglad, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (Japan, JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// ARM time: 16:32:21 // PCB version only released in Japan? -GAME( 2005, svg, pgm, pgm_arm_type3, svg, pgm_arm_type3_state, svg, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // label was 200, but it's code rev 201? // ARM time: 10:07:20 -GAME( 2005, svgpcb, svg, pgm_arm_type3, svg, pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// ARM time: 15:31:35 // PCB version only released in Japan? +GAME( 2005, svg, pgm, pgm_arm_type3, svg, pgm_arm_type3_state, svg, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // ARM label was 200, but it's code rev 201? // ARM time: 10:07:20 +GAME( 2005, svgtw, svg, pgm_arm_type3, svgtw,pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V101TW) (ARM label V101TW, ROM 06/20/05 S.V.G V100)", GAME_NOT_WORKING ) // 68k label was 101 but it's same as v100 +GAME( 2005, svgpcb, svg, pgm_arm_type3, svg, pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP, ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// ARM time: 15:31:35 // PCB version only released in Japan? GAME( 2004, happy6, pgm, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 102CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) GAME( 2004, happy6101, happy6, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 101CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h index 50d72359681..eff96270e29 100644 --- a/src/mame/includes/pgm.h +++ b/src/mame/includes/pgm.h @@ -512,6 +512,7 @@ MACHINE_CONFIG_EXTERN( pgm_arm_type3 ); INPUT_PORTS_EXTERN(theglad); INPUT_PORTS_EXTERN(happy6); INPUT_PORTS_EXTERN(svg); +INPUT_PORTS_EXTERN(svgtw); /*----------- defined in machine/pgmprot4.c -----------*/ diff --git a/src/mame/machine/pgmprot_igs027a_type3.c b/src/mame/machine/pgmprot_igs027a_type3.c index a8150fd15ab..804565979ec 100644 --- a/src/mame/machine/pgmprot_igs027a_type3.c +++ b/src/mame/machine/pgmprot_igs027a_type3.c @@ -162,6 +162,7 @@ MACHINE_RESET_MEMBER(pgm_arm_type3_state, pgm_arm_type3_reset) if (!strcmp(machine().system().name, "happy6101")) base = 0x3586; if (!strcmp(machine().system().name, "svgpcb")) base = 0x3a8e; if (!strcmp(machine().system().name, "svg")) base = 0x3c3e; + if (!strcmp(machine().system().name, "svgtw")) base = 0x3a8e; if (base != -1) { @@ -611,6 +612,21 @@ INPUT_PORTS_START( svg ) PORT_CONFSETTING( 0x00ff, "Don't Change" ) // don't hack the region INPUT_PORTS_END +INPUT_PORTS_START( svgtw ) + PORT_INCLUDE ( pgm ) + + PORT_START("RegionHack") /* Region - actually supplied by protection device */ + PORT_CONFNAME( 0x00ff, 0x0001, DEF_STR( Region ) ) + PORT_CONFSETTING( 0x0000, DEF_STR( China ) ) + PORT_CONFSETTING( 0x0001, DEF_STR( Taiwan ) ) + PORT_CONFSETTING( 0x0002, DEF_STR( Japan ) ) + PORT_CONFSETTING( 0x0003, DEF_STR( Korea ) ) + PORT_CONFSETTING( 0x0004, DEF_STR( Hong_Kong ) ) + PORT_CONFSETTING( 0x0005, "Spanish Territories" ) + PORT_CONFSETTING( 0x0006, DEF_STR( World ) ) + PORT_CONFSETTING( 0x00ff, "Don't Change" ) // don't hack the region +INPUT_PORTS_END + DRIVER_INIT_MEMBER(pgm_arm_type3_state,svg) { svg_basic_init(); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 695f25e1b7d..696c6c56842 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9800,6 +9800,7 @@ killbldp // (c) 2004 Killing Blade Plus happy6 // (c) 2004 Happy 6 happy6101 // svg // (c) 2003 Spectral vs Generation +svgtw svgpcb // ket // (c) 2002 Ketsui keta //