From 4f416ecd7836ad273514031e0b036f4700c38e6a Mon Sep 17 00:00:00 2001 From: David Haywood Date: Thu, 24 Apr 2014 23:25:16 +0000 Subject: [PATCH] new clones Dragon Bowl (set 2, unencrypted program) [system11] --- src/mame/drivers/gaiden.c | 54 +++++++++++++++++++++++++++++++++++--- src/mame/includes/gaiden.h | 3 ++- src/mame/mame.lst | 2 ++ 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c index 460f4b53ca5..9b3501d4cf2 100644 --- a/src/mame/drivers/gaiden.c +++ b/src/mame/drivers/gaiden.c @@ -1475,6 +1475,43 @@ ROM_START( drgnbowl ) ROM_END +ROM_START( drgnbowla ) + ROM_REGION( 0x40000, "maincpu", 0 ) /* 2*128k for 68000 code */ + ROM_LOAD16_BYTE( "dbowl_4.u4", 0x00000, 0x20000, CRC(58d69235) SHA1(58ab422793787cae5dfffd07d3bbbb7fee48b628) ) + ROM_LOAD16_BYTE( "dbowl_5.u3", 0x00001, 0x20000, CRC(e3176ebb) SHA1(9513a84c016b372fbb17117998e6910bde1f72a2) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "1.2r", 0x00000, 0x10000, CRC(d9cbf84a) SHA1(d14d749a41a440a56fea1d836a8d62be65786d68) ) /* Audio CPU is a Z80 */ + + ROM_REGION( 0x010000, "gfx1", 0 ) + ROM_LOAD( "22.6m", 0x00000, 0x10000, CRC(86e41198) SHA1(40201a139a668e6fc441d500f40601c7af934b1d) ) /* 8x8 tiles */ + + ROM_REGION( 0x100000, "gfx2", 0 ) + ROM_LOAD( "6.5a", 0x00000, 0x20000, CRC(b15759f7) SHA1(1710e5ebe8197fdc622ed5c2813257ebe662b7f2) ) + ROM_LOAD( "7.5b", 0x20000, 0x20000, CRC(2541d445) SHA1(a9688cb216bc56fe1b454bc79f967582709991b1) ) + ROM_LOAD( "8.6a", 0x40000, 0x20000, CRC(51a2f5c4) SHA1(dba1278303055b420b128907ba9909e7a39b2df6) ) + ROM_LOAD( "9.6b", 0x60000, 0x20000, CRC(f4c8850f) SHA1(d618c3b8b5d93b9e6fa47b833d8f06a664f63e49) ) + ROM_LOAD( "10.7a", 0x80000, 0x20000, CRC(9e4b3c61) SHA1(5a3739a40d8ffe551262fe42fc36d5a07a59457e) ) + ROM_LOAD( "11.7b", 0xa0000, 0x20000, CRC(0d33d083) SHA1(204889531cce4f7251edfa44f723b43a08c3b28c) ) + ROM_LOAD( "12.8a", 0xc0000, 0x20000, CRC(6c497ad3) SHA1(f0bbf5d7b6efe64c34829104f97b343def705d7f) ) + ROM_LOAD( "13.8b", 0xe0000, 0x20000, CRC(7a84adff) SHA1(86b15842e1fcdb882af6159ff3d44c5806fe3ced) ) + + ROM_REGION( 0x100000, "gfx3", ROMREGION_INVERT ) + ROM_LOAD( "15.5r", 0x00000, 0x20000, CRC(7429371c) SHA1(1412312d429ea4bb00db2b8704a7c3d7e14db19b) ) + ROM_LOAD( "14.5q", 0x20000, 0x20000, CRC(4301b97f) SHA1(70614691794a04e0ac1547ba1772ee527fe77ba8) ) + ROM_LOAD( "17.6r", 0x40000, 0x20000, CRC(9088af09) SHA1(8b5090d8a88ad06152030e92acecd76cb2f0f88c) ) + ROM_LOAD( "16.6q", 0x60000, 0x20000, CRC(8ade4e01) SHA1(f02fcc66d1f842ff3861813431942a95de08f654) ) + ROM_LOAD( "19.7r", 0x80000, 0x20000, CRC(5082ceff) SHA1(fad67375b774236b345d3496ce17665947a21201) ) + ROM_LOAD( "18.7q", 0xa0000, 0x20000, CRC(d18a7ffb) SHA1(8ea792dfb8e7c9e6df0fd7596c3972f79b15d860) ) + ROM_LOAD( "21.8r", 0xc0000, 0x20000, CRC(0cee8711) SHA1(5ec071db383a56629a7063d86264bd2bbb6b0036) ) + ROM_LOAD( "20.8q", 0xe0000, 0x20000, CRC(9647e02a) SHA1(97b05716b13dd77f31ac6a08326267ec175115f1) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* 2*128k for ADPCM samples - sound chip is OKIM6295 */ + ROM_LOAD( "3.3q", 0x00000, 0x20000, CRC(489c6d0e) SHA1(5a276fad500a760c83a16e0a4cd91d5963ad8089) ) /* samples */ + ROM_LOAD( "2.3r", 0x20000, 0x20000, CRC(7710ce39) SHA1(7a7cf0b4005b000589d0bad380575d625d9d20f7) ) /* samples */ +ROM_END + + DRIVER_INIT_MEMBER(gaiden_state,shadoww) { /* sprite size Y = sprite size X */ @@ -1506,12 +1543,13 @@ DRIVER_INIT_MEMBER(gaiden_state,raiga) m_maincpu->space(AS_PROGRAM).install_write_handler(0x07a804, 0x07a805, write16_delegate(FUNC(gaiden_state::raiga_protection_w),this)); } -void gaiden_state::descramble_drgnbowl_gfx() +void gaiden_state::descramble_drgnbowl(int descramble_cpu) { int i; UINT8 *ROM = memregion("maincpu")->base(); size_t size = memregion("maincpu")->bytes(); + if (descramble_cpu) { dynamic_buffer buffer(size); @@ -1549,7 +1587,14 @@ DRIVER_INIT_MEMBER(gaiden_state,drgnbowl) { m_raiga_jumppoints = jumppoints_00; - descramble_drgnbowl_gfx(); + descramble_drgnbowl(1); +} + +DRIVER_INIT_MEMBER(gaiden_state,drgnbowla) +{ + m_raiga_jumppoints = jumppoints_00; + + descramble_drgnbowl(0); } void gaiden_state::descramble_mastninj_gfx(UINT8* src) @@ -1605,9 +1650,12 @@ GAME( 1988, gaiden, shadoww, shadoww, common, gaiden_state, shadoww, ROT GAME( 1989, ryukendn, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 1)", GAME_SUPPORTS_SAVE ) GAME( 1989, ryukendna, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 2)", GAME_SUPPORTS_SAVE ) GAME( 1989, mastninj, shadoww, mastninj, common, gaiden_state, mastninj, ROT0, "bootleg", "Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // sprites need fixing, sound and yscroll too. +GAME( 1992, drgnbowl, 0, drgnbowl, drgnbowl, gaiden_state, drgnbowl, ROT0, "Nics", "Dragon Bowl (set 1, encrypted program)", GAME_SUPPORTS_SAVE ) // Draogn Bowl is based on Ninja Gaiden code +GAME( 1992, drgnbowla, drgnbowl, drgnbowl, drgnbowl, gaiden_state, drgnbowla,ROT0, "Nics", "Dragon Bowl (set 2, unencrypted program)", GAME_SUPPORTS_SAVE ) + GAME( 1989, wildfang, 0, shadoww, wildfang, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang / Tecmo Knight", GAME_SUPPORTS_SAVE ) GAME( 1989, wildfangs, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang", GAME_SUPPORTS_SAVE ) GAME( 1989, tknight, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Tecmo Knight", GAME_SUPPORTS_SAVE ) + GAME( 1991, stratof, 0, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) GAME( 1991, raiga, stratof, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) -GAME( 1992, drgnbowl, 0, drgnbowl, drgnbowl, gaiden_state, drgnbowl, ROT0, "Nics", "Dragon Bowl", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/gaiden.h b/src/mame/includes/gaiden.h index c2cf4a62620..d425e3dd18d 100644 --- a/src/mame/includes/gaiden.h +++ b/src/mame/includes/gaiden.h @@ -77,6 +77,7 @@ public: DECLARE_WRITE16_MEMBER(gaiden_videoram_w); DECLARE_DRIVER_INIT(raiga); DECLARE_DRIVER_INIT(drgnbowl); + DECLARE_DRIVER_INIT(drgnbowla); DECLARE_DRIVER_INIT(mastninj); DECLARE_DRIVER_INIT(shadoww); DECLARE_DRIVER_INIT(wildfang); @@ -94,7 +95,7 @@ public: UINT32 screen_update_drgnbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void drgnbowl_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void descramble_drgnbowl_gfx(); + void descramble_drgnbowl(int descramble_cpu); void descramble_mastninj_gfx(UINT8* src); void blendbitmaps(bitmap_rgb32 &dest,bitmap_ind16 &src1,bitmap_ind16 &src2,bitmap_ind16 &src3, int sx,int sy,const rectangle &cliprect); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index dd140369ccb..dea24d4b770 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -6078,6 +6078,7 @@ tknight // (c) 1989 Tecmo stratof // (c) 1991 Tecmo raiga // (c) 1991 Tecmo drgnbowl // (c) 1992 Nics +drgnbowla // (c) 1992 Nics wc90 // (c) 1989 Tecmo wc90a // (c) 1989 Tecmo wc90b // (c) 1989 Tecmo @@ -9078,6 +9079,7 @@ gulfstrmm // (c) 1991 Dooyong + distributed by Media Shoji pollux // (c) 1991 Dooyong polluxa // (c) 1991 Dooyong polluxa2 // (c) 1991 Dooyong +polluxn // (c) 1991 NTC flytiger // (c) 1992 Dooyong flytigera // (c) 1992 Dooyong bluehawk // (c) 1993 Dooyong