summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author davidhay <davidhay@localhost>2008-07-05 12:03:05 +0000
committer davidhay <davidhay@localhost>2008-07-05 12:03:05 +0000
commit14e03fa10797a103a31017682dc90c19660da4e4 (patch)
tree673cfe5d2628fd8dce2c20bb1ab18d0e721cc8e2 /src
parent02e8edd3b780280698e48d0376f3dde57ccc167e (diff)
adds SF2 Magic Turbo Delta bootleg as non-working.. it's heavily modified, different sound system etc. definite candidate for it's own file.
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/cps1.c199
-rw-r--r--src/mame/mamedriv.c1
-rw-r--r--src/mame/video/cps1.c1
3 files changed, 187 insertions, 14 deletions
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index 0fc5a669f96..c22ec8c2795 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -10,6 +10,9 @@
68000 clock speeds are unknown for all games (except where commented)
+ todo: move the bootleg sets with modified hardware into their own
+ drivers, like fcrash.c
+
Stephh's notes (based on the games M68000 code and some tests) :
@@ -157,6 +160,8 @@ Stephh's log (2006.09.20) :
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "sound/qsound.h"
+#include "sound/msm5205.h"
+
#include "cps1.h" /* External CPS1 definitions */
@@ -3725,6 +3730,84 @@ static MACHINE_DRIVER_START( wofhfh )
MDRV_NVRAM_HANDLER(qsound)
MACHINE_DRIVER_END
+/* incomplete */
+static ADDRESS_MAP_START( sf2mdt_z80map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xcfff) AM_ROM
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ADDRESS_MAP_END
+
+static void m5205_int1(running_machine *machine, int data)
+{
+// MSM5205_data_w(0, sample_buffer1 & 0x0F);
+// sample_buffer1 >>= 4;
+// sample_select1 ^= 1;
+// if (sample_select1 == 0)
+// cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE);
+}
+
+static void m5205_int2(running_machine *machine, int data)
+{
+// MSM5205_data_w(1, sample_buffer2 & 0x0F);
+// sample_buffer2 >>= 4;
+// sample_select2 ^= 1;
+}
+
+static const struct MSM5205interface msm5205_interface1 =
+{
+ m5205_int1, /* interrupt function */
+ MSM5205_S96_4B /* 4KHz 4-bit */
+};
+
+static const struct MSM5205interface msm5205_interface2 =
+{
+ m5205_int2, /* interrupt function */
+ MSM5205_S96_4B /* 4KHz 4-bit */
+};
+
+static MACHINE_DRIVER_START( sf2mdt )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD_TAG("main", M68000, 12000000)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
+ MDRV_CPU_VBLANK_INT("main", cps1_interrupt)
+
+ MDRV_CPU_ADD_TAG("sound", Z80, 3579545)
+ /* audio CPU */
+ MDRV_CPU_PROGRAM_MAP(sf2mdt_z80map,0)
+
+ /* video hardware */
+ MDRV_SCREEN_ADD("main", RASTER)
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(64*8, 32*8)
+ MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+
+ MDRV_GFXDECODE(cps1)
+ MDRV_PALETTE_LENGTH(0xc00)
+
+ MDRV_VIDEO_START(cps1)
+ MDRV_VIDEO_EOF(cps1)
+ MDRV_VIDEO_UPDATE(cps1)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD_TAG("2151", YM2151, 3579545)
+ MDRV_SOUND_CONFIG(ym2151_interface)
+ MDRV_SOUND_ROUTE(0, "mono", 0.35)
+ MDRV_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* has 2x MSM5205 instead of OKI6295 */
+ MDRV_SOUND_ADD(MSM5205, 24000000/64) /* ? */
+ MDRV_SOUND_CONFIG(msm5205_interface1)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MDRV_SOUND_ADD(MSM5205, 24000000/64) /* ? */
+ MDRV_SOUND_CONFIG(msm5205_interface2)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_DRIVER_END
+
#endif
@@ -6946,6 +7029,63 @@ ROM_START( sf2koryu )
ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
ROM_END
+/*
+CPU
+
+1x MC68000P12 (main)
+1x TPC1020AFN-084C (main)
+1x Z0840006PSC-Z80CPU (sound)
+1x YM2151 (sound)
+1x YM3012 (sound)
+2x M5205 (sound)
+2x LM324N (sound)
+1x TDA2003 (sound)
+1x oscillator 24.000000MHz
+1x oscillator 30.000MHz
+ROMs
+
+14x AM27C040 (1,3,6,7,8,9,10,11,12,13,14,15,16,17)
+3x TMS27C010A (2,4,5)
+3x PAL 16S20 (ic7,ic72, ic80) (read protected, not dumped)
+3x GAL20V8A (ic120, ic121, ic169) (read protected, not dumped)
+
+Note
+
+1x JAMMA edge connector
+1x trimmer (volume)
+3x 8x2 switches dip
+
+*/
+
+ROM_START( sf2mdt )
+ ROM_REGION( CODE_SIZE, REGION_CPU1, 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(5301b41f) SHA1(6855a57b21e8c5d74e5cb18f9ce6af650d7fb422) )
+ ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(c1c803f6) SHA1(9fe18ae2553a63d8e4dcc20bafd5a4634f8b93c4) )
+ ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "2.ic175", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, REGION_GFX1, 0 ) /* rearranged in init */
+ ROMX_LOAD( "7.ic90", 0x000000, 0x80000, CRC(896eaf48) SHA1(5a13ae8b554e05eed3d5749aaf5845d499bce45b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "10.ic88", 0x000002, 0x80000, CRC(ef3f5be8) SHA1(d4e1de7d7caf6977e48544d6701618ae70c717f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "13.ic89", 0x000004, 0x80000, CRC(305dd72a) SHA1(c373b517c23f3b019abb06e21f6b9ab6e1e47909) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "16.ic87", 0x000006, 0x80000, CRC(e57f6db9) SHA1(b37f95737804002ec0e237472eaacf0bc1e868e8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6.ic91", 0x200000, 0x80000, CRC(054cd5c4) SHA1(07f275e118c141a84ca15a2e9edc81694af37cf2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "9.ic93", 0x200002, 0x80000, CRC(818ca33d) SHA1(dfb707e17c83216f8a62e905f8c7cd6d406b417b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "12.ic92", 0x200004, 0x80000, CRC(87e069e8) SHA1(cddd3be84f8379134590bfbbb080518f28120e49) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "15.ic94", 0x200006, 0x80000, CRC(5dfb44d1) SHA1(08e44b8efc84f9cfc829aabf704155ddc700de76) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8.ic86", 0x400000, 0x80000, CRC(34bbb3fa) SHA1(7794e89258f12b17d38c3d302dc15c502a8c8eb6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "11.ic84", 0x400002, 0x80000, CRC(cea6d1d6) SHA1(9c953db42f0d877e43c0c239f69a00df39a18295) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "14.ic85", 0x400004, 0x80000, CRC(7d9f1a67) SHA1(6deb7fff867c42b13a32bb11eda798cfdb4cbaa8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "17.ic83", 0x400006, 0x80000, CRC(91a9a05d) SHA1(5266ceddd2df925e79b4200843dec2f7aa9297b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, REGION_GFX2, 0 )
+ ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x8000 ) /* stars */
+
+ ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Sound program + samples */
+ ROM_LOAD( "5.ic26", 0x00000, 0x08000, CRC(17d5ba8a) SHA1(6ff3b8860d7e1fdee3561846f645eb4d3a8965ec) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ROM_END
+
/* B-Board 89624B */
ROM_START( varth )
ROM_REGION( CODE_SIZE, REGION_CPU1, 0 ) /* 68000 code */
@@ -8350,6 +8490,36 @@ static DRIVER_INIT( pang3j )
}
#endif
+static READ16_HANDLER( sf2mdt_r )
+{
+ return 0xffff;
+}
+
+static DRIVER_INIT( sf2mdt )
+{
+ int i;
+ UINT32 gfx_size = memory_region_length( machine, REGION_GFX1 );
+ UINT8 *rom = memory_region( machine, REGION_GFX1 );
+ UINT8 tmp;
+
+ for( i = 0; i < gfx_size; i += 8 )
+ {
+ tmp = rom[i+1];
+ rom[i+1] = rom[i+4];
+ rom[i+4] = tmp;
+ tmp = rom[i+3];
+ rom[i+3] = rom[i+6];
+ rom[i+6] = tmp;
+ }
+ memory_install_read16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x70c01a, 0x70c01b, 0, 0, sf2mdt_r);
+ memory_install_read16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x70c01c, 0x70c01d, 0, 0, sf2mdt_r);
+ memory_install_read16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x70c01e, 0x70c01f, 0, 0, sf2mdt_r);
+ memory_install_read16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x70c010, 0x70c011, 0, 0, sf2mdt_r);
+ memory_install_read16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x70c018, 0x70c019, 0, 0, sf2mdt_r);
+
+ driver_init_cps1(machine);
+}
+
GAME( 1988, forgottn, 0, cps1_10MHz, forgottn, forgottn, ROT0, "Capcom", "Forgotten Worlds (US)", 0 )
GAME( 1988, forgott1, forgottn, cps1_10MHz, forgottn, forgottn, ROT0, "Capcom", "Forgotten Worlds (World?)", GAME_NOT_WORKING )
@@ -8425,20 +8595,21 @@ GAME( 1992, sf2ceua, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "Capcom"
GAME( 1992, sf2ceub, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "Capcom", "Street Fighter II' - Champion Edition (US 920513)", 0 )
GAME( 1992, sf2ceuc, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "Capcom", "Street Fighter II' - Champion Edition (US 920803)", 0 )
GAME( 1992, sf2cej, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "Capcom", "Street Fighter II' - Champion Edition (Japan 920513)", 0 )
-GAME( 1992, sf2rb, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Rainbow set 1)" , 0) // 920322 - based on World version
-GAME( 1992, sf2rb2, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Rainbow set 2)" , 0) // 920322 - based on World version
-GAME( 1992, sf2red, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Red Wave)" , 0) // 920313 - based on World version
-GAME( 1992, sf2v004, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II! - Champion Edition (V004)", 0 ) // "102092" !!! - based on (heavily modified) World version
-GAME( 1992, sf2accp2, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Accelerator Pt.II)" , 0) // 920313 - based on USA version
-GAME( 1992, sf2m1, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (M1)", GAME_NOT_WORKING )
-GAME( 1992, sf2m2, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (M2)", GAME_NOT_WORKING )
-GAME( 1992, sf2m3, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (M3)", GAME_NOT_WORKING )
-GAME( 1992, sf2m4, sf2ce, cps1_12MHz, sf2j, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M4)", 0 )
-GAME( 1992, sf2m5, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M5)", 0 )
-GAME( 1992, sf2m6, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M6)", 0 )
-GAME( 1992, sf2m7, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M7)", 0 )
-GAME( 1992, sf2yyc, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (YYC)", 0 )
-GAME( 1992, sf2koryu, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (Kouryu)", 0 )
+GAME( 1992, sf2rb, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Rainbow set 1, bootleg)" , 0) // 920322 - based on World version
+GAME( 1992, sf2rb2, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Rainbow set 2, bootleg)" , 0) // 920322 - based on World version
+GAME( 1992, sf2red, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Red Wave, bootleg)" , 0) // 920313 - based on World version
+GAME( 1992, sf2v004, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II! - Champion Edition (V004, bootleg)", 0 ) // "102092" !!! - based on (heavily modified) World version
+GAME( 1992, sf2accp2, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (Accelerator Pt.II, bootleg)" , 0) // 920313 - based on USA version
+GAME( 1992, sf2m1, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (M1, bootleg)", GAME_NOT_WORKING )
+GAME( 1992, sf2m2, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (M2, bootleg)", GAME_NOT_WORKING )
+GAME( 1992, sf2m3, sf2ce, cps1_12MHz, sf2, cps1, ROT0, "bootleg","Street Fighter II' - Champion Edition (M3, bootleg)", GAME_NOT_WORKING )
+GAME( 1992, sf2m4, sf2ce, cps1_12MHz, sf2j, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M4, bootleg)", 0 )
+GAME( 1992, sf2m5, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M5, bootleg)", 0 )
+GAME( 1992, sf2m6, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M6, bootleg)", 0 )
+GAME( 1992, sf2m7, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (M7, bootleg)", 0 )
+GAME( 1992, sf2yyc, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (YYC, bootleg)", 0 )
+GAME( 1992, sf2koryu, sf2ce, cps1_12MHz, sf2, sf2hack, ROT0, "bootleg","Street Fighter II' - Champion Edition (Xiang Long, Chinese bootleg)", 0 )
+GAME( 1992, sf2mdt, sf2ce, sf2mdt, sf2, sf2mdt, ROT0, "bootleg","Street Fighter II' - Champion Edition (Magic Delta Turbo, bootleg)", GAME_NOT_WORKING|GAME_NO_SOUND ); // heavily modified, different sound & gfx hardware
GAME( 1992, varth, 0, cps1_12MHz, varth, cps1, ROT270, "Capcom", "Varth - Operation Thunderstorm (World 920714)" , 0) // "ETC" 12MHz not verified but game slows down at 10MHz
GAME( 1992, varthr1, varth, cps1_12MHz, varth, cps1, ROT270, "Capcom", "Varth - Operation Thunderstorm (World 920612)" , 0) // "ETC"
GAME( 1992, varthu, varth, cps1_12MHz, varth, cps1, ROT270, "Capcom (Romstar license)", "Varth - Operation Thunderstorm (US 920612)", 0 )
diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c
index 93326b1c566..e4c8d76cb16 100644
--- a/src/mame/mamedriv.c
+++ b/src/mame/mamedriv.c
@@ -2466,6 +2466,7 @@ V-V TP-027
DRIVER( sf2m7 ) /* hack */
DRIVER( sf2yyc ) /* hack */
DRIVER( sf2koryu ) /* hack */
+ DRIVER( sf2mdt ) /* bootleg */
DRIVER( varth ) /* 14/07/1992 (c) 1992 (World) */
DRIVER( varthr1 ) /* 12/06/1992 (c) 1992 (World) */
DRIVER( varthu ) /* 12/06/1992 (c) 1992 (US) */
diff --git a/src/mame/video/cps1.c b/src/mame/video/cps1.c
index 290ccc6e85c..9065f2fccd9 100644
--- a/src/mame/video/cps1.c
+++ b/src/mame/video/cps1.c
@@ -1251,6 +1251,7 @@ static const struct CPS1config cps1_config_table[]=
{"sf2m7", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2yyc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"sf2koryu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2mdt", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
{"varth", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */
{"varthr1", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */
{"varthu", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */