mirror of
https://github.com/holub/mame
synced 2025-06-23 04:48:37 +03:00
this is an italian bootleg of double dragon. not currently working.
the graphic roms are scrambled, the banking code has been patched out (and the program roms might have some protection on them too, there is a weird jump to the 0x2000 range) also it runs on 3x M6809s instead of the usual CPUs. Not convinced the sound roms are good dumps, they seem to small. This bootleg needs a fairly significant chunk of time put into getting it working due to the heavy modifications. I've had several people asking me to add it, but I simply don't have time.
This commit is contained in:
parent
fecf13b28d
commit
503df78746
@ -910,6 +910,7 @@ INPUT_PORTS_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
|
||||
static const gfx_layout char_layout =
|
||||
{
|
||||
8,8,
|
||||
@ -934,6 +935,7 @@ static const gfx_layout tile_layout =
|
||||
64*8
|
||||
};
|
||||
|
||||
|
||||
static GFXDECODE_START( ddragon )
|
||||
GFXDECODE_ENTRY( REGION_GFX1, 0, char_layout, 0, 8 ) /* colors 0-127 */
|
||||
GFXDECODE_ENTRY( REGION_GFX2, 0, tile_layout, 128, 8 ) /* colors 128-255 */
|
||||
@ -1032,6 +1034,52 @@ static MACHINE_DRIVER_START( ddragnba )
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( ddgn6809 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD_TAG("main", M6809, MAIN_CLOCK) /* 12MHz / 4 internally */
|
||||
MDRV_CPU_PROGRAM_MAP(ddragon_map,0)
|
||||
|
||||
MDRV_CPU_ADD_TAG("sub", M6809, MAIN_CLOCK/2) /* 6Mhz / 4 internally */
|
||||
MDRV_CPU_PROGRAM_MAP(sub_map,0)
|
||||
|
||||
MDRV_CPU_ADD_TAG("sound", M6809, MAIN_CLOCK/2) /* 6MHz / 4 internally */
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
|
||||
MDRV_INTERLEAVE(1000) /* heavy interleaving to sync up sprite<->main cpu's */
|
||||
|
||||
MDRV_MACHINE_START(ddragon)
|
||||
MDRV_MACHINE_RESET(ddragon)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_GFXDECODE(ddragon)
|
||||
MDRV_PALETTE_LENGTH(384)
|
||||
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 384, 0, 256, 272, 0, 240)
|
||||
|
||||
MDRV_VIDEO_START(ddragon)
|
||||
MDRV_VIDEO_UPDATE(ddragon)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD_TAG("fm", YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "mono", 0.60)
|
||||
MDRV_SOUND_ROUTE(1, "mono", 0.60)
|
||||
|
||||
MDRV_SOUND_ADD_TAG("oki1", MSM5205, MAIN_CLOCK/32)
|
||||
MDRV_SOUND_CONFIG(msm5205_interface)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
MDRV_SOUND_ADD_TAG("oki2", MSM5205, MAIN_CLOCK/32)
|
||||
MDRV_SOUND_CONFIG(msm5205_interface)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( ddragon2 )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -1392,6 +1440,65 @@ ROM_START( ddragnba )
|
||||
ROM_END
|
||||
|
||||
|
||||
/* this is a well known italian bootleg of Double Dragon it can be identified by the following gameplay trait
|
||||
-- The Boss of level 4 is coloured like level 1 and 5 instead of green, and is invulnerable to rocks attack.
|
||||
|
||||
in terms of code the game code has been heavily modified, banking writes appear to have been removed, and
|
||||
the graphic roms are all scrambled. The game also runs on 3x M6809 rather than the original CPUs.
|
||||
|
||||
I'm not 100% convinced the program roms are good dumps, apprently ROM3 fails on the original board (could just
|
||||
be due to the rom hacking, as the game runs fine) but there is a jump to the 0x2000 region in the code, although
|
||||
this could be additional protection / rom scrambling. Also the sound roms seem too small. If you have this
|
||||
PCB please verify.
|
||||
|
||||
*/
|
||||
ROM_START( ddgn6809 )
|
||||
ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* 64k for code + bankswitched memory */
|
||||
ROM_LOAD( "16.bin", 0x08000, 0x08000, CRC(f4c72690) SHA1(c70d032355acf3f7f6586b6e57a94f80e099bf1a) )
|
||||
ROM_LOAD( "17.bin", 0x10000, 0x08000, CRC(6489d637) SHA1(fd17fd870e9386a3e3bdd56c8d731c73d8c70b88) ) /* banked at 0x4000-0x8000 */
|
||||
ROM_LOAD( "18.bin", 0x18000, 0x08000, CRC(154d50c4) SHA1(4ffdd29406b6c6b552344f820f83715b1c7727d1) ) /* banked at 0x4000-0x8000 */
|
||||
ROM_LOAD( "19.bin", 0x20000, 0x08000, CRC(090e2baf) SHA1(29b775c59c7a4d30a33e3d10e736cd1a83baf3bb) ) /* banked at 0x4000-0x8000 */
|
||||
|
||||
ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sprite cpu */
|
||||
ROM_LOAD( "20.bin", 0x8000, 0x8000, CRC(67e3b4f1) SHA1(4945d76b0694299f2f4739ebfba98da6d96fe4cb) )
|
||||
|
||||
ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* audio cpu */
|
||||
ROM_LOAD( "21.bin", 0x08000, 0x08000, CRC(4437fc51) SHA1(fffcf2bec50d0b79861904b4abc607206b7794e6) )
|
||||
|
||||
/* all the gfx roms are scrambled on this set */
|
||||
ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "13.bin", 0x00000, 0x08000, CRC(b5a54537) SHA1(a6157cde4f9738565008d11a4a6d8576ae3abfef) ) /* chars */
|
||||
|
||||
ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "22.bin", 0x00000, 0x08000, CRC(fe08ef61) SHA1(50404936934dc61f3553add4d4b918529b3b5ef3) )
|
||||
ROM_LOAD( "23.bin", 0x08000, 0x08000, CRC(988bea93) SHA1(053ebb5a71dfdb68ae88ef49d8409a99f8c6926d) )
|
||||
ROM_LOAD( "24.bin", 0x10000, 0x08000, CRC(437501fc) SHA1(e7758e0fb226ae46eb398bd95f5e95c90b6adb93) )
|
||||
ROM_LOAD( "25.bin", 0x18000, 0x08000, CRC(d302f69b) SHA1(64d4d8ae38457ee6b361b5157ec0557f9a7639a8) )
|
||||
ROM_LOAD( "26.bin", 0x20000, 0x08000, CRC(8ece953e) SHA1(12a43e1ed1a99b04299941a9506228490649b181) )
|
||||
ROM_LOAD( "27.bin", 0x28000, 0x08000, CRC(15cd16cb) SHA1(ab2068ebba14da256e8f2600f34dca0e048a1de9) )
|
||||
ROM_LOAD( "28.bin", 0x30000, 0x08000, CRC(51b8a217) SHA1(60c067cd7272f856e29cdb64312535236656891a) )
|
||||
ROM_LOAD( "29.bin", 0x38000, 0x08000, CRC(e4ec2394) SHA1(43376ce2a07c1fc3053f7ac9b750e944d289105b) )
|
||||
ROM_LOAD( "1.bin", 0x40000, 0x08000, CRC(2485a71d) SHA1(3e987a2f3e9a59da5fdc7bb779a43736ca67aac7) )
|
||||
ROM_LOAD( "2.bin", 0x48000, 0x08000, CRC(6940120d) SHA1(bbe94f095ef983f54658c936f916ba6a72a84ead) )
|
||||
ROM_LOAD( "3.bin", 0x50000, 0x08000, CRC(c67aac12) SHA1(aab535507e3889bf1bdc2f4fe4828a70a350ba63) )
|
||||
ROM_LOAD( "4.bin", 0x58000, 0x08000, CRC(941dcd08) SHA1(266dee264f28affe8c3f57fe569929817ae16508) )
|
||||
ROM_LOAD( "5.bin", 0x60000, 0x08000, CRC(42d36bc3) SHA1(080cbc3ffda8ab26dc65a8e9eaf948c509d064b3) )
|
||||
ROM_LOAD( "6.bin", 0x68000, 0x08000, CRC(d5d19a8d) SHA1(c4b044dd12d6468c0ad114644f01813d4fe9a673) )
|
||||
ROM_LOAD( "7.bin", 0x70000, 0x08000, CRC(d4e350cd) SHA1(78ed2baa8c52b766f998091e7ce9e1a2941352e7) )
|
||||
ROM_LOAD( "8.bin", 0x78000, 0x08000, CRC(204fdb7d) SHA1(f75b1bc6f65e7a33927cd451267fcd7e2aa44f7e) )
|
||||
|
||||
ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "9.bin", 0x00000, 0x10000, CRC(736eff0f) SHA1(ae2ec2d5c8ab1db579a08256d874426dc5d889c6) )
|
||||
ROM_LOAD( "10.bin", 0x10000, 0x10000, CRC(a670d088) SHA1(27e7b49645753dd039f104c3e0a7e6513a98710d) )
|
||||
ROM_LOAD( "11.bin", 0x20000, 0x10000, CRC(4171b70d) SHA1(dc300c9bca6481417e97ad03c973e47389f261c1) )
|
||||
ROM_LOAD( "12.bin", 0x30000, 0x10000, CRC(5f6a6d6f) SHA1(7d546a226cda81c28e7ccfb4c5daebc65072198d) )
|
||||
|
||||
ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* adpcm samples -- roms too small? (please check) */
|
||||
ROM_LOAD( "14.bin", 0x00000, 0x08000, BAD_DUMP CRC(678f8657) SHA1(2652fdc6719d2c889ca87802f6e2cefae59fc2eb) )
|
||||
ROM_LOAD( "15.bin", 0x10000, 0x08000, BAD_DUMP CRC(10f21dea) SHA1(739cf649f91490384297a81a2cc9855acb58a1c0) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( ddragon2 )
|
||||
ROM_REGION( 0x30000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "26a9-04.bin", 0x08000, 0x8000, CRC(f2cfc649) SHA1(d3f1e0bae02472914a940222e4f600170a91736d) )
|
||||
@ -1752,7 +1859,15 @@ static DRIVER_INIT( toffy )
|
||||
/* should the sound rom be bitswapped too? */
|
||||
}
|
||||
|
||||
DRIVER_INIT( ddgn6809 )
|
||||
{
|
||||
/* Descramble GFX here */
|
||||
|
||||
sprite_irq = INPUT_LINE_NMI;
|
||||
sound_irq = M6809_IRQ_LINE;
|
||||
ym_irq = M6809_FIRQ_LINE;
|
||||
technos_video_hw = 0;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -1767,6 +1882,7 @@ GAME( 1987, ddragonu, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos] (
|
||||
GAME( 1987, ddragoua, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos] (Taito America license)", "Double Dragon (US Set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, ddragonb, ddragon, ddragonb, ddragon, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with HD6309)", GAME_SUPPORTS_SAVE ) // according to dump notes
|
||||
GAME( 1987, ddragnba, ddragon, ddragnba, ddragon, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with M6803)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, ddgn6809, ddragon, ddgn6809, ddragon, ddgn6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 1988, ddragon2, 0, ddragon2, ddragon2, ddragon2, ROT0, "Technos", "Double Dragon II - The Revenge (World)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, ddragn2u, ddragon2, ddragon2, ddragon2, ddragon2, ROT0, "Technos", "Double Dragon II - The Revenge (US)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -5792,6 +5792,7 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
|
||||
DRIVER( ddragnw1 ) /* TA-0021 (c) 1987 Taito */
|
||||
DRIVER( ddragonb ) /* bootleg */
|
||||
DRIVER( ddragnba ) /* bootleg */
|
||||
DRIVER( ddgn6809 ) /* bootleg */
|
||||
DRIVER( spdodgeb ) /* TA-0022 (c) 1987 */
|
||||
DRIVER( nkdodge ) /* TA-0022 (c) 1987 (Japan) */
|
||||
DRIVER( nkdodgeb ) /* TA-0022 (c) 1987 (Japan) */
|
||||
|
Loading…
Reference in New Issue
Block a user