summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/igs/igs_m027.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/igs/igs_m027.cpp')
-rw-r--r--src/mame/igs/igs_m027.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/mame/igs/igs_m027.cpp b/src/mame/igs/igs_m027.cpp
index 27074b5597d..d28edec69cc 100644
--- a/src/mame/igs/igs_m027.cpp
+++ b/src/mame/igs/igs_m027.cpp
@@ -205,6 +205,8 @@ public:
void init_jhg3d() ATTR_COLD;
void init_gonefsh() ATTR_COLD;
void init_mgfx() ATTR_COLD;
+ void init_tarzan2() ATTR_COLD;
+ void init_magtree() ATTR_COLD;
protected:
virtual void machine_start() override ATTR_COLD;
@@ -3143,6 +3145,25 @@ ROM_START( jking02 ) // PCB-0367-05-FG-1
ROM_LOAD( "igs_w4201_speech_v103.u28", 0x000000, 0x200000, CRC(fb72d4b5) SHA1(c4f434fb20ac3df8d08aaf62f1dfad03f6f619ef) ) // M27C160, 1xxxxxxxxxxxxxxxxxxxx = 0x00
ROM_END
+ROM_START( tarzan2 ) // PCB-0367-07-FG-1
+ ROM_REGION( 0x04000, "maincpu", 0 )
+ // Internal ROM of IGS027A type G ARM based MCU
+ ROM_LOAD( "t2_027a.u32", 0x0000, 0x4000, NO_DUMP ) // dead PCB, no way to trojan
+
+ ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
+ ROM_LOAD( "tarzan_ii_v-101xb.u23", 0x00000, 0x80000, CRC(46400562) SHA1(7f0dc9b68ce63c190a9c2b2bf2c4f21fe89a1bbf) ) // 27C4096
+
+ ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 )
+ ROM_LOAD16_WORD_SWAP( "tarzan_ii_textu12.u12", 0x00000, 0x80000, CRC(22dcebd0) SHA1(0383f017135230d020d12c8c6cc3aeb136fe9106) ) // M27C4002
+
+ ROM_REGION( 0x480000, "igs017_igs031:sprites", 0 )
+ ROM_LOAD( "tarzan_ii_a4202_u13.u13", 0x000000, 0x400000, CRC(97a68f85) SHA1(177c8c23fd0d585b24a71359ede005ac9a2e4d4d) ) // 27C322, FIXED BITS (xxxxxxx0xxxxxxxx)
+ ROM_LOAD( "tarzan_ii_cg_u11.u11", 0x400000, 0x080000, CRC(9e101ef3) SHA1(86593754c00408eea078c01731716ab6d61c6dcd) ) // M27C4002, FIXED BITS (xxxxxxxx0xxxxxxx)
+
+ ROM_REGION( 0x200000, "oki", 0 )
+ ROM_LOAD( "igs_w4201_speech_v103.u28", 0x000000, 0x200000, CRC(fb72d4b5) SHA1(c4f434fb20ac3df8d08aaf62f1dfad03f6f619ef) ) // M27C160, 1xxxxxxxxxxxxxxxxxxxx = 0x00
+ROM_END
+
ROM_START( olympic5 ) // PCB type not readable, layout almost identical to PCB-0367-05-FG-1
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU
@@ -3199,6 +3220,25 @@ ROM_START( royal5p ) // PCB-0367-08-FG-1
ROM_LOAD( "r5+_sp_u37.u37", 0x000000, 0x200000, CRC(030ffdb4) SHA1(7ba129d0301e4e3d58245e733a505ff035395089) ) // 27C160, BADADDR --xxxxxxxxxxxxxxxxxxx
ROM_END
+// game title isn't sure, however comparing strings to Crazy Bugs seems to confirm it's Magic Tree
+ROM_START( magtree ) // PCB-0367-08-FG-1, all labels not readable
+ ROM_REGION( 0x04000, "maincpu", 0 )
+ // Internal ROM of IGS027A type G ARM based MCU
+ ROM_LOAD( "m10_027a.u32", 0x0000, 0x4000, NO_DUMP ) // marked MT/PR (Magic Tree?). Dead PCB, so not possible to trojan
+
+ ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
+ ROM_LOAD( "27c4002.u23", 0x00000, 0x80000, CRC(e61ee1d8) SHA1(4ed11bc733f461e6ec59f6c98927905502ea1c2f) )
+
+ ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 )
+ ROM_LOAD16_WORD_SWAP( "27c4002.u12", 0x00000, 0x80000, CRC(3e95242e) SHA1(b8188897afb25559af3e1392e16a8e044c23731a) )
+
+ ROM_REGION( 0x200000, "igs017_igs031:sprites", 0 )
+ ROM_LOAD( "m27c160.u13", 0x000000, 0x200000, CRC(f7da0faf) SHA1(9598240e386cb469f9cbbb6f9f7f9687e3cbf0e0) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
+
+ ROM_REGION( 0x200000, "oki", 0 )
+ ROM_LOAD( "m27c160.u37", 0x000000, 0x200000, CRC(f97cf8c9) SHA1(a95a53f071503d0463e1a356a37fdfc5c81ebe28) ) // 11xxxxxxxxxxxxxxxxxxx = 0xFF
+ROM_END
+
// Games with prg at u16
// text at u24
// cg at u25
@@ -4653,6 +4693,20 @@ void igs_m027_state::init_mgfx()
m_igs017_igs031->set_text_reverse_bits(false);
}
+void igs_m027_state::init_tarzan2()
+{
+ tarzan2_decrypt(machine());
+ m_igs017_igs031->sdwx_gfx_decrypt();
+ m_igs017_igs031->tarzan_decrypt_sprites(0x400000, 0x400000);
+ pgm_create_dummy_internal_arm_region();
+}
+
+void igs_m027_state::init_magtree()
+{
+ magtree_decrypt(machine());
+ pgm_create_dummy_internal_arm_region();
+}
+
} // anonymous namespace
@@ -4724,3 +4778,5 @@ GAME( 2003, amazoni2, 0, m027_1ppi<false>, base, igs_m027_state
GAME( 2002, sdwx, 0, m027_1ppi<false>, base, igs_m027_state, init_sdwx, ROT0, "IGS", "Sheng Dan Wu Xian", MACHINE_NOT_WORKING ) // aka Christmas 5 Line? (or Amazonia King II, shares roms at least?)
GAME( 2001, cjdh6th, 0, m027_1ppi<false>, base, igs_m027_state, init_extradrw, ROT0, "IGS", "Chaoji Daheng 6th", MACHINE_NOT_WORKING )
GAME( 200?, jhg3d, 0, m027_1ppi<false>, base, igs_m027_state, init_jhg3d, ROT0, "IGS", "Jin Huangguan 3-dai (V445CN)", MACHINE_NOT_WORKING )
+GAME( 200?, tarzan2, jking02, m027_1ppi<false>, base, igs_m027_state, init_tarzan2, ROT0, "IGS", "Tarzan II (V101XB)", MACHINE_NOT_WORKING )
+GAME( 2006, magtree, crzybugs, m027_1ppi<false>, base, igs_m027_state, init_magtree, ROT0, "IGS", "Magic Tree (V200PR)", MACHINE_NOT_WORKING )