From 7ee4b34f625f2a3fc5e8975555ddc551b8effbde Mon Sep 17 00:00:00 2001 From: Brian Troha Date: Sat, 18 Aug 2012 17:03:13 +0000 Subject: new Tunder Zone clone dassault.c: Better documented the PCB stack and changed clocks to be derived by on board OSC. [Brian Troha, Stefan Lindberg] New Clone Added ------------------------------------------- Thunder Zone (Rev 1, World) [Stefan Lindberg] --- src/mame/drivers/dassault.c | 108 ++++++++++++++++++++++++++++++++++++++------ src/mame/mame.lst | 1 + 2 files changed, 96 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c index c18b62deb38..acf0aa534d4 100644 --- a/src/mame/drivers/dassault.c +++ b/src/mame/drivers/dassault.c @@ -1,13 +1,28 @@ /*************************************************************************** - Thunder Zone (c) 1991 Data East Corporation (World 2 players) - Thunder Zone (c) 1991 Data East Corporation (Japan 2 players) - Desert Assault (c) 1991 Data East Corporation (USA 4 players) - Desert Assault (c) 1991 Data East Corporation (USA 2 players) + Thunder Zone / Desert Assault (c) 1991 Data East Corporation + + Thunder Zone (World 2 players, 2 sets) + Thunder Zone (Japan 2 players) + Desert Assault (USA 4 players) + Desert Assault (USA 2 players) Emulation by Bryan McPhail, mish@tendril.co.uk -PCB DE-0344-3 (verified for the Japan set) +PCB DE-0344-3 (Main board) + Data East 59 (68000 Main CPU) + Data East 55 x 2 + Data East 45 (H6280 Sound CPU) + YM2203C + YM3014B + YM2151 + YM3012 + OKI M6295 x 2 + 32.220MHz OSC + DSW 8-switch (2 populated, 1 unpopulated) + +PCB DE-0345-1 (Sub board) + Data East 59 (68000 Sub CPU) + Data East 55 x 2 + 28MHz OSC Stephh's notes (based on the games M68000 code and some tests) : @@ -564,15 +579,15 @@ static const deco16ic_interface dassault_deco16ic_tilegen2_intf = static MACHINE_CONFIG_START( dassault, dassault_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M68000, 14000000) /* Accurate */ + MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/2) /* 14MHz - Accurate */ MCFG_CPU_PROGRAM_MAP(dassault_map) MCFG_CPU_VBLANK_INT("screen", irq4_line_hold) - MCFG_CPU_ADD("sub", M68000, 14000000) /* Accurate */ + MCFG_CPU_ADD("sub", M68000, XTAL_28MHz/2) /* 14MHz - Accurate */ MCFG_CPU_PROGRAM_MAP(dassault_sub_map) MCFG_CPU_VBLANK_INT("screen", irq5_line_hold) - MCFG_CPU_ADD("audiocpu", H6280,32220000/8) /* Accurate */ + MCFG_CPU_ADD("audiocpu", H6280, XTAL_32_22MHz/8) /* Accurate */ MCFG_CPU_PROGRAM_MAP(sound_map) // MCFG_QUANTUM_TIME(attotime::from_hz(8400)) /* 140 CPU slices per frame */ @@ -609,20 +624,20 @@ static MACHINE_CONFIG_START( dassault, dassault_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("ym1", YM2203, 32220000/8) + MCFG_SOUND_ADD("ym1", YM2203, XTAL_32_22MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) - MCFG_SOUND_ADD("ym2", YM2151, 32220000/9) + MCFG_SOUND_ADD("ym2", YM2151, XTAL_32_22MHz/9) MCFG_SOUND_CONFIG(ym2151_config) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki1", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified - was 1.023924MHz MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki2", 2047848, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified - was 2.047848MHz MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) MACHINE_CONFIG_END @@ -630,6 +645,72 @@ MACHINE_CONFIG_END /**********************************************************************************/ ROM_START( thndzone ) + ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE("gz01-1.a15", 0x00000, 0x20000, CRC(20250da6) SHA1(2d01d59b67a2ecc2ddc88eded43f451931a0a33b) ) + ROM_LOAD16_BYTE("gz03-1.a17", 0x00001, 0x20000, CRC(3595fad0) SHA1(5d61776cdf2274cb26ea06ce97c35f5ce7f27e66) ) + ROM_LOAD16_BYTE("gt00.a14", 0x40000, 0x20000, CRC(b7277175) SHA1(ffb19c4dd12e0391f01de57c46a7998885fe22bf) ) /* Same data as GS00.A14 */ + ROM_LOAD16_BYTE("gt02.a16", 0x40001, 0x20000, CRC(cde31e35) SHA1(0219845308c9f46e73b0504bd2aefa2fa74f388e) ) /* Same data as GS02.A16 */ + + ROM_REGION(0x80000, "sub", 0 ) /* 68000 code (Sub cpu) */ + ROM_LOAD16_BYTE("gz10-1.a12", 0x00000, 0x20000, CRC(811d86d7) SHA1(94971acad2c648b7a65ca54d9315414ed3b94f24) ) + ROM_LOAD16_BYTE("gz08-1.a9", 0x00001, 0x20000, CRC(8f61ab1e) SHA1(df4e7db889915eca39ed4e1a4b5fcae9cd1a9882) ) + ROM_LOAD16_BYTE("gt11-1.a14", 0x40000, 0x20000, CRC(80cb23de) SHA1(d52426460eea2285c57cfc3fe37aa6dc79990e25) ) /* Same data as GS11.A14 */ + ROM_LOAD16_BYTE("gt09-1.a11", 0x40001, 0x20000, CRC(0a8fa7e1) SHA1(330ae9602b5f56b5dc4961a41991b64412a59880) ) /* Same data as GS09.A11 */ + + ROM_REGION(0x10000, "audiocpu", 0 ) /* Sound CPU */ + ROM_LOAD( "gt04.f18", 0x00000, 0x10000, CRC(81c29ebf) SHA1(1b241277a8e35cdeaeb120970d14a09d33032459) ) /* Same data for all regions, different label */ + + ROM_REGION(0x020000, "gfx1", 0 ) + ROM_LOAD16_BYTE( "gt05.h11", 0x000000, 0x10000, CRC(0aae996a) SHA1(d37a12b057e9934212362d7eafa575c961819a27) ) /* Same data for all regions, different label */ + ROM_LOAD16_BYTE( "gt06.h12", 0x000001, 0x10000, CRC(4efdf03d) SHA1(835d22829c6d0f4efc76801b449f9a779f460f1c) ) /* Same data for all regions, different label */ + + ROM_REGION(0x120000, "gfx2", 0 ) + ROM_LOAD( "maj-02.h14", 0x000000, 0x100000, CRC(383bbc37) SHA1(c537ab147a2770ce28ee185b08dd62d35249bfa9) ) + /* Other 0x20000 filled in later */ + + ROM_REGION(0x200000, "gfx3", 0 ) + ROM_LOAD( "maj-01.c18", 0x000000, 0x100000, CRC(9840a204) SHA1(096c351769da5184c3d9a05495370134acc9507a) ) + ROM_LOAD( "maj-00.c17", 0x100000, 0x100000, CRC(87ea8d16) SHA1(db47123aa2ebbb800cfc5cfcf50309bc39cadbcd) ) + + ROM_REGION( 0x400000, "gfx4", 0 ) /* sprites chip 1 */ + ROM_LOAD( "maj-04.r1", 0x000000, 0x80000, CRC(36e49b19) SHA1(bfbc45b635bf3d46ff8b8a514a3f352bf3a95535) ) + ROM_LOAD( "maj-05.r2", 0x080000, 0x80000, CRC(80fc71cc) SHA1(65b15afbe5d628051b012777d486b6ce92a3795c) ) + ROM_LOAD( "maj-06.r3", 0x100000, 0x80000, CRC(2e7a684b) SHA1(cffeda1a816dad30d6b1cb12458661188d625d40) ) + ROM_LOAD( "maj-07.r5", 0x180000, 0x80000, CRC(3acc1f78) SHA1(87ec65b4f54a66370754534d03f4c9217531b42f) ) + ROM_LOAD( "maj-08.s6", 0x200000, 0x80000, CRC(1958a36d) SHA1(466a30dcd2ea13028272ed2187f890ee20d6636b) ) + ROM_LOAD( "maj-09.s8", 0x280000, 0x80000, CRC(c21087a1) SHA1(b769c5f2f9b9c525d121902fe9557a6bfc077b99) ) + ROM_LOAD( "maj-10.s9", 0x300000, 0x80000, CRC(a02fa641) SHA1(14b999a441964e612700bf21945a948eaebb253e) ) + ROM_LOAD( "maj-11.s11", 0x380000, 0x80000, CRC(dabe9305) SHA1(44d69fe55e674de7f4c610d295d4528d4b2eb150) ) + + ROM_REGION( 0x80000, "gfx5", 0 ) /* sprites chip 2 */ + ROM_LOAD16_BYTE( "gt12.n1", 0x000000, 0x20000, CRC(9a86a015) SHA1(968576b8422393ab9a93d98c15428b1c11417b3d) ) + ROM_LOAD16_BYTE( "gt13.n2", 0x000001, 0x20000, CRC(f4709905) SHA1(697842a3d7bc2588c77833c3af8938e6f0b1238d) ) + ROM_LOAD16_BYTE( "gt14.n3", 0x040000, 0x20000, CRC(750fc523) SHA1(ef8794359ff3a44a97ab402821fbe205a0be8f6a) ) + ROM_LOAD16_BYTE( "gt15.n5", 0x040001, 0x20000, CRC(f14edd3d) SHA1(802d576df6dac2c9bf99f963f1955fc3a7ffdac0) ) + + ROM_REGION(0x40000, "oki1", 0 ) /* Oki samples */ + ROM_LOAD( "gt07.h15", 0x00000, 0x20000, CRC(750b7e5d) SHA1(d33b17a1d8c9b05d5c1daf0c80fed6381e04b167) ) /* Same data as GS07.H15 */ + + ROM_REGION(0x80000, "oki2", 0 ) /* Extra Oki samples */ + ROM_LOAD( "maj-03.h16", 0x00000, 0x80000, CRC(31dcfac3) SHA1(88c7fc139f871991defbc8dc2c9c66b150dd6f6f) ) /* banked */ + + ROM_REGION( 0x1000, "proms", 0 ) + ROM_LOAD( "mb7128y.10m", 0x00000, 0x800, CRC(bde780a2) SHA1(94ea9fe6c3a421e976d077e67f564ca5c37a5e88) ) /* Priority? Unused */ + ROM_LOAD( "mb7128y.16p", 0x00800, 0x800, CRC(c44d2751) SHA1(7c195650689d5cbbdccba696e0e7d3dc5bb7c506) ) /* Timing?? Unused */ + /* Above prom also at 16s and 17s */ + + ROM_REGION( 0x1000, "plds", 0 ) + ROM_LOAD( "pal16r8a 1h", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "pal16l8b.7c", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "pal16l8b.7d", 0x0400, 0x0104, CRC(199e83fd) SHA1(ebb5d66f29935b0a58e79b0db30611b5dce328a6) ) /* PAL is read protected */ + ROM_LOAD( "pal16l8b.7e", 0x0600, 0x0104, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "pal16l8b.7l", 0x0800, 0x0104, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "pal16l8b.8e", 0x0a00, 0x0104, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "pal16l8b.9d", 0x0c00, 0x0104, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "pal16l8b.10c", 0x0e00, 0x0104, NO_DUMP ) /* PAL is read protected */ +ROM_END + +ROM_START( thndzonea ) ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("gz01.a15", 0x00000, 0x20000, CRC(15e8c328) SHA1(8876b5fde77604c2fe4654271ceb341a8fa460c1) ) ROM_LOAD16_BYTE("gz03.a17", 0x00001, 0x20000, CRC(aab5c86e) SHA1(c3560b15360ddf14e8444d9f70724e698b2bd42f) ) @@ -943,7 +1024,8 @@ DRIVER_INIT_MEMBER(dassault_state,thndzone) /**********************************************************************************/ -GAME( 1991, thndzone, 0, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World)", GAME_SUPPORTS_SAVE ) +GAME( 1991, thndzone, 0, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (Rev 1, World)", GAME_SUPPORTS_SAVE ) +GAME( 1991, thndzonea, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World)", GAME_SUPPORTS_SAVE ) GAME( 1991, thndzonej, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1991, dassault, thndzone, dassault, dassault, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US)", GAME_SUPPORTS_SAVE ) GAME( 1991, dassault4, thndzone, dassault, dassault4, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US 4 Players)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 232f9cb02f7..aa0b6c3c0d1 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -5487,6 +5487,7 @@ robocop2 // MAH (c) 1991 Data East Corporation (World) robocop2u // MAH (c) 1991 Data East Corporation (US) robocop2j // MAH (c) 1991 Data East Corporation (Japan) thndzone // MAJ (c) 1991 Data East Corporation (World) +thndzonea // MAJ (c) 1991 Data East Corporation (World) thndzonej // MAJ (c) 1991 Data East Corporation (Japan) - Some MASK ROMS stamped MAL dassault // MAJ (c) 1991 Data East Corporation (US) dassault4 // MAJ (c) 1991 Data East Corporation (US) -- cgit v1.2.3