New working clones

------------------
Raiden II (Great Britain) [Domenico Cervini]

- igs/igs_m027.cpp: confirmed some more internal ROM dumps [Guru]
This commit is contained in:
Ivan Vangelista 2024-10-17 19:27:49 +02:00
parent 1df414b73b
commit 8e3f4df02a
5 changed files with 81 additions and 37 deletions

View File

@ -179,7 +179,7 @@ const uint32_t igs036_decryptor::triggers[16][2] = {
// * There are quite a number of functionally equivalent ways to implement
// those boolean functions, so the given implementation (by multiplexing
// over some simple functions) shouldn't be taken too seriously: while it's
// functionally correct, it doesn't neccesarily represent the way the hardware
// functionally correct, it doesn't necessarily represent the way the hardware
// is calculating them.
static int unknown(int address) { return 0; }

View File

@ -5,14 +5,18 @@
Driver by XingXing
These games use the IGS027A processor. This is an ARM7 with internal
ROM (also used on later PGM games).
ROM (also used on later PGM games). The IGS027A is usually covered by
a holographic sticker with an alphanumerical code. It has been
confirmed that it doesn't correspond to a specific internal ROM (i.e.
two B6-stickered IGS027As have been found to contain different internal
ROM, while 3 differently stickered IGS027As have been found to contain
the same internal ROM).
In some cases the first part of the internal ROM is execute only, and
cannot be read out with a trojan. It hasn't been confirmed if these
games make use of that feature.
cannot be read out with a trojan. No games in this driver make use of
this feature.
To emulate these games the internal ROM will need dumping.
There are at least 20 other games on this and similar platforms.
There are several more games on this and similar platforms.
Hold service on boot to access input test and sound test when
implemented.
@ -2786,8 +2790,7 @@ ROM_END
ROM_START( cjddz ) // PCB-0489-05-FM-1
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A ARM based MCU
// stickered B6 but doesn't work with other B6 dumps. Using the dump for cjddz215cn which works, waiting for trojan
ROM_LOAD( "cjddz_igs027a", 0x00000, 0x4000, BAD_DUMP CRC(124f4bee) SHA1(bf9785516ef36290c2a7bac307bb2d849f2045ae) )
ROM_LOAD( "b6_igs027a", 0x00000, 0x4000, CRC(124f4bee) SHA1(bf9785516ef36290c2a7bac307bb2d849f2045ae) )
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "p1.u17", 0x000000, 0x80000, CRC(81bc6ff6) SHA1(ca07b9becf6dd8724be339d8eee29c908dc10422) )
@ -2807,8 +2810,7 @@ ROM_END
ROM_START( cjddz217cn ) // PCB-0489-05-FM-1
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A ARM based MCU
// stickered s12. Using the dump for cjddz215cn which works, waiting for trojan
ROM_LOAD( "cjddz217cn_igs027a", 0x00000, 0x4000, BAD_DUMP CRC(124f4bee) SHA1(bf9785516ef36290c2a7bac307bb2d849f2045ae) )
ROM_LOAD( "s12_igs027a", 0x00000, 0x4000, CRC(124f4bee) SHA1(bf9785516ef36290c2a7bac307bb2d849f2045ae) )
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "v-217cn.u17", 0x000000, 0x80000, CRC(42df949c) SHA1(262237d8219d41b04a99156289858fc63f9614dd) )
@ -2930,8 +2932,7 @@ ROM_END
ROM_START( lhzb4dhb ) // Only 2 DIP switch banks are populated.
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A ARM based MCU
// stickered F12. Using the dump for lhzb4104cn which works, waiting for trojan
ROM_LOAD( "f12_igs027a", 0x00000, 0x4000, CRC(de12c918) SHA1(87c1cf92a95565d78c6fe7629c19729f5fb5c2a5) ) // F12
ROM_LOAD( "f12_igs027a", 0x00000, 0x4000, CRC(de12c918) SHA1(87c1cf92a95565d78c6fe7629c19729f5fb5c2a5) )
ROM_REGION32_LE( 0x200000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "v-203cn.u46", 0x000000, 0x200000, CRC(96d0cb19) SHA1(e5a450a9767327f5ceb0611400fe40b3582c0e8d) )
@ -3227,7 +3228,7 @@ GAME( 2004, lhzb4, 0, lhzb4, lhzb4, igs_m027_stat
GAME( 2004, lhzb4dhb, 0, lhzb4, lhzb4, igs_m027_state, init_lhzb4, ROT0, "IGS", "Long Hu Zhengba 4 Dui Hua Ban (V203CN)", 0 )
GAME( 1999, lthyp, 0, lthyp, lthyp, igs_m027_state, init_lthyp, ROT0, "IGS", "Long Teng Hu Yao Duizhan Jiaqiang Ban (S104CN)", MACHINE_NODEVICE_LAN )
GAME( 2000, zhongguo, 0, zhongguo, zhongguo, igs_m027_state, init_zhongguo, ROT0, "IGS", "Zhongguo Chu Da D (V102C)", 0 )
GAMEL( 200?, jking02, 0, jking02, jking02, igs_m027_state, init_jking02, ROT0, "IGS", "Jungle King 2002 (V209US)", MACHINE_NODEVICE_LAN, layout_jking02 ) // shows V212US in bookkeeping menu
GAMEL( 2001, jking02, 0, jking02, jking02, igs_m027_state, init_jking02, ROT0, "IGS", "Jungle King 2002 (V209US)", MACHINE_NODEVICE_LAN, layout_jking02 ) // shows V212US in bookkeeping menu
GAME( 2003, mgzz, 0, mgzz, mgzz101cn, igs_m027_state, init_mgzz, ROT0, "IGS", "Manguan Zhizun (V101CN)", 0 )
GAME( 2003, mgzz100cn, mgzz, mgzz, mgzz100cn, igs_m027_state, init_mgzz, ROT0, "IGS", "Manguan Zhizun (V100CN)", 0 )
GAME( 2007, mgcs3, 0, lhzb4, mgcs3, igs_m027_state, init_mgcs3, ROT0, "IGS", "Manguan Caishen 3 (V101CN)", 0 )
@ -3235,11 +3236,11 @@ GAMEL( 1999, oceanpar, 0, oceanpar, oceanpar105us, igs_m027_stat
GAMEL( 1999, oceanpar101us, oceanpar, oceanpar, oceanpar101us, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V101US)", 0, layout_oceanpar ) // 1999 copyright in ROM
GAMEL( 1999, fruitpar, 0, oceanpar, oceanpar105us, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214US)", 0, layout_oceanpar )
GAMEL( 1999, fruitpar206us, fruitpar, oceanpar, fruitpar206us, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V206US)", 0, layout_oceanpar )
GAME( 200?, cjddz, 0, cjddz, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu (V219CN)", 0 )
GAME( 200?, cjddz217cn, cjddz, cjddz, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu (V217CN)", 0 )
GAME( 200?, cjddz215cn, cjddz, cjddz, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu (V215CN)", 0 )
GAME( 200?, cjddzp, 0, cjddz, cjddzp, igs_m027_state, init_cjddzp, ROT0, "IGS", "Chaoji Dou Dizhu Jiaqiang Ban (S300CN)", MACHINE_NODEVICE_LAN )
GAME( 200?, cjddzlf, 0, cjddz, cjddz, igs_m027_state, init_cjddzlf, ROT0, "IGS", "Chaoji Dou Dizhu Liang Fu Pai (V109CN)", 0 )
GAME( 2004, cjddz, 0, cjddz, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu (V219CN)", 0 ) // 2004 date in internal ROM
GAME( 2004, cjddz217cn, cjddz, cjddz, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu (V217CN)", 0 ) // 2004 date in internal ROM
GAME( 2004, cjddz215cn, cjddz, cjddz, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu (V215CN)", 0 ) // 2004 date in internal ROM
GAME( 2004, cjddzp, 0, cjddz, cjddzp, igs_m027_state, init_cjddzp, ROT0, "IGS", "Chaoji Dou Dizhu Jiaqiang Ban (S300CN)", MACHINE_NODEVICE_LAN ) // 2004 date in internal ROM
GAME( 2005, cjddzlf, 0, cjddz, cjddz, igs_m027_state, init_cjddzlf, ROT0, "IGS", "Chaoji Dou Dizhu Liang Fu Pai (V109CN)", 0 ) // 2005 date in internal ROM
GAME( 2005, cjtljp, 0, cjtljp, lhzb4, igs_m027_state, init_cjtljp, ROT0, "IGS", "Chaoji Tuolaji Jiaqiang Ban (V206CN)", 0 ) // 2005 date in internal ROM
GAMEL( 2007, tripslot, 0, tripslot, tripslot, igs_m027_state, init_tripslot, ROT0, "IGS", "Triple Slot (V200VE)", 0, layout_tripslot ) // 2007 date in internal ROM at least, could be later, default settings password is all 'start 1'
// this has a 2nd 8255

View File

@ -739,7 +739,7 @@ ROM_END
ROM_START( wldfruit ) // IGS PCB-0447-05-GM - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, three banks of 8 DIP switches
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A ARM based MCU
ROM_LOAD( "w1.u37", 0x00000, 0x4000, NO_DUMP ) // sticker marked 'W1?' (same label, but not the same as tripfev? or an error)
ROM_LOAD( "w1.u37", 0x00000, 0x4000, NO_DUMP ) // sticker marked 'W1?' (same label, but not the same as tripfev)
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "wild_fruit_v-208us.u23", 0x000000, 0x80000, CRC(d43398f1) SHA1(ecc4bd5cb6da16b35c63b843cf7beec1ab84ed9d) ) // M27C4002

View File

@ -20323,36 +20323,36 @@ icescape // (c) 2006
superkds
@source:igs/igs_m027.cpp
amazoni2 // (c) 2002
amazoni2 // (c) 2003
amazonia // (c) 1999
amazonkp // (c) 1999
chessc2 // (c) 200?
cjddz // (c) 200?
cjddz215cn // (c) 200?
cjddz217cn // (c) 200?
cjddzlf // (c) 200?
cjddzp // (c) 200?
chessc2 // (c) 2002
cjddz // (c) 2004
cjddz215cn // (c) 2004
cjddz217cn // (c) 2004
cjddzlf // (c) 2005
cjddzp // (c) 2004
cjtljp // (c) 2005
extradrw // (c) 200?
extradrw // (c) 2001
fruitpar // (c) 1999
fruitpar206us // (c) 1999
gonefsh2 // (c) 200?
jking02 // (c) 200?
jking02 // (c) 2001
klxyj // (c) 200?
lhdmg // (c) 1999
lhdmgp // (c) 1999
lhzb3 // (c) 200?
lhzb3106c5m // (c) 200?
lhzb3sjb // (c) 200?
lhzb4 // (c) 200?
lhzb4dhb // (c) 200?
lhzb3 // (c) 1999
lhzb3106c5m // (c) 1999
lhzb3sjb // (c) 1999
lhzb4 // (c) 2004
lhzb4dhb // (c) 2004
lthyp // (c) 1999
luckycrs // (c) 200?
mgcs3 // (c) 200?
mgcs3 // (c) 2007
mgzz // (c) 2003
mgzz100cn // (c) 2003
oceanpar //
oceanpar101us //
oceanpar // (c) 1999
oceanpar101us // (c) 1999
olympic5 // (c) 2005
olympic5107us // (c) 2003
tripslot // (c) 2007
@ -41253,12 +41253,13 @@ raiden2eua // (c) 1993 Seibu Kaihatsu + Fabtek license
raiden2eub // (c) 1993 Seibu Kaihatsu + Fabtek license
raiden2f // (c) 1993 Seibu Kaihatsu
raiden2g // (c) 1993 Seibu Kaihatsu + Tuning license
raiden2gb // (c) 1993 Seibu Kaihatsu
raiden2hk // (c) 1993 Seibu Kaihatsu + Metrotainment license
raiden2i // (c) 1993 Seibu Kaihatsu
raiden2j // (c) 1993 Seibu Kaihatsu
raiden2k // (c) 1993 Seibu Kaihatsu
raiden2nl // (c) 1993 Seibu Kaihatsu
raiden2sw // (c) 1993 Seibu Kaihats
raiden2sw // (c) 1993 Seibu Kaihatsu
raiden2u // (c) 1993 Seibu Kaihatsu + Fabtek license
raidendx // (c) 1994 Seibu Kaihatsu
raidendxa1 // (c) 1994 Seibu Kaihatsu + Metrotainment license

View File

@ -1368,6 +1368,47 @@ ROM_START( raiden2g )
ROM_LOAD( "raiden_2_pcm.u1018", 0x00000, 0x40000, CRC(8cf0d17e) SHA1(0fbe0b1e1ca5360c7c8329331408e3d799b4714c) )
ROM_END
ROM_START( raiden2gb ) // original board with serial number on sticker on u0212
ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */
ROM_LOAD16_BYTE("prg0.u0211", 0x000000, 0x80000, CRC(09475ec4) SHA1(05027f2d8f9e11fcbd485659eda68ada286dae32) )
ROM_RELOAD(0x100000, 0x80000)
ROM_LOAD16_BYTE("prg1.u0212", 0x000001, 0x80000, CRC(4b9e3024) SHA1(10f0384cff6acac5823c77277b3c75e83d34589c) )
ROM_RELOAD(0x100001, 0x80000)
ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */
ROM_LOAD( "snd.u1110", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) )
ROM_CONTINUE(0x10000,0x8000)
ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */
ROM_LOAD( "seibu7.u0724", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */
ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */
ROM_LOAD( "seibu6.u1017", 0x00000, 0x40000, CRC(fb0fca23) SHA1(4b2217b121a66c5ab6015537609cf908ffedaf86) ) /* PCB silkscreened VOICE1 */
// Common Raiden II PALs below
ROM_REGION( 0x10000, "pals", 0 ) /* PALS */
ROM_LOAD( "jj4b02__ami18cv8-15.u0342", 0x0000, 0x155, CRC(057a9cdc) SHA1(8b46f6673ddf11efbc3394ae423ec89d4a1283bf) )
ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341", 0x0000, 0x117, CRC(20931f21) SHA1(95ce9cfbfb280dfc6a326e378684eff3c6f54701) )
// Common Raiden II soldered mask ROMs below
ROM_REGION( 0x40000, "user2", 0 ) /* COPX */
ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) )
ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */
ROM_LOAD( "raiden_2_seibu_bg-1.u0714", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) )
ROM_LOAD( "raiden_2_seibu_bg-2.u075", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) )
ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */
ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) )
ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) )
ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) )
ROM_LOAD32_WORD( "raiden_2_seibu_obj-4.u0836", 0x400002, 0x200000, CRC(b676e188) SHA1(19cc838f1ccf9c4203cd0e5365e5d99ff3a4ff0f) )
ROM_REGION( 0x100000, "oki2", 0 ) /* ADPCM samples */
ROM_LOAD( "raiden_2_pcm.u1018", 0x00000, 0x40000, CRC(8cf0d17e) SHA1(0fbe0b1e1ca5360c7c8329331408e3d799b4714c) )
ROM_END
/*
---------------------------------------
@ -3193,6 +3234,7 @@ void raiden2_state::init_zeroteam()
// code rev with first ROM having checksum 09475ec4
GAME( 1993, raiden2, 0, raiden2, raiden2, raiden2_state, init_raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (US, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, raiden2g, raiden2, raiden2, raiden2, raiden2_state, init_raiden2, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden II (Germany)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, raiden2gb, raiden2, raiden2, raiden2, raiden2_state, init_raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Great Britain)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, raiden2hk, raiden2, raiden2, raiden2, raiden2_state, init_raiden2, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden II (Hong Kong)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, raiden2j, raiden2, raiden2, raiden2, raiden2_state, init_raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, raiden2sw, raiden2, raiden2, raiden2, raiden2_state, init_raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Switzerland)", MACHINE_SUPPORTS_SAVE )