summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/terracre.cpp89
-rw-r--r--src/mame/includes/terracre.h2
-rw-r--r--src/mame/mame.lst1
3 files changed, 81 insertions, 11 deletions
diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp
index 280e28420da..ebcc23e97a6 100644
--- a/src/mame/drivers/terracre.cpp
+++ b/src/mame/drivers/terracre.cpp
@@ -143,6 +143,16 @@ void terracre_state::amazon_base_map(address_map &map)
map(0x070000, 0x070003).noprw(); // protection (nop for bootlegs)
}
+void terracre_state::horekidb2_map(address_map &map) // weirdly, this bootleg inverts the order of the inputs
+{
+ amazon_base_map(map);
+
+ map(0x044000, 0x044001).portr("IN3");
+ map(0x044002, 0x044003).portr("IN2");
+ map(0x044004, 0x044005).portr("IN1");
+ map(0x044006, 0x044007).portr("IN0");
+}
+
void amazon_state::amazon_1412m2_map(address_map &map)
{
amazon_base_map(map);
@@ -399,6 +409,15 @@ static INPUT_PORTS_START( horekid )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
+static INPUT_PORTS_START( horekidb2 )
+ PORT_INCLUDE(horekid)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START1 )
+INPUT_PORTS_END
+
+
static const gfx_layout char_layout =
{
8,8,
@@ -516,6 +535,11 @@ void amazon_state::amazon_1412m2(machine_config &config)
NB1412M2(config, m_prot, XTAL(16'000'000)/4); // divided by 4 maybe
}
+void terracre_state::horekidb2(machine_config &config)
+{
+ amazon_base(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &terracre_state::horekidb2_map);
+}
/**************************************
@@ -897,6 +921,48 @@ ROM_START( horekidb )
ROM_LOAD( "horekid.17", 0x0000, 0x2000, CRC(1d8d592b) SHA1(be8d6df8b5926069ae2cbc1dc26e1fa92d63f297) )
ROM_END
+ROM_START( horekidb2 )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code, first 2 ROMs different
+ ROM_LOAD16_BYTE( "5.bin", 0x00000, 0x8000, CRC(2df0e086) SHA1(7179486431e9b5566ea0549a1854e00193afcabf) )
+ ROM_LOAD16_BYTE( "1.bin", 0x00001, 0x8000, CRC(af9cdd7e) SHA1(8b93a67f8c50ade025332eee0c98f9752acb5c72) )
+ ROM_LOAD16_BYTE( "6.bin", 0x10000, 0x8000, CRC(375c0c50) SHA1(ee040dbdfe6673cf48f143518458609b21b4e15d) )
+ ROM_LOAD16_BYTE( "2.bin", 0x10001, 0x8000, CRC(ee7d52bb) SHA1(b9083f672a6bc37ec2bbb9af081e6f27b712b663) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // Z80 code, identical to the original if you ignore the first, 0xff filled, half
+ ROM_LOAD( "11b.bin", 0x0000, 0x4000, CRC(3b85e6ef) SHA1(8f7926b3c6fd7999e9d8e643bcd36311f7965cdf) ) // 0xxxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0x0000, 0x4000 )
+ ROM_LOAD( "12b.bin", 0x4000, 0x4000, CRC(b3a27456) SHA1(835be300df31b7121d558e9095ef093b0476615d) ) // 0xxxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0x4000, 0x4000 )
+ ROM_LOAD( "13b.bin", 0x8000, 0x4000, CRC(78631a6c) SHA1(24b43d8d86c53990d6d781830f49ce28d69eef02) ) // 0xxxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0x8000, 0x4000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 ) // alphanumerics, believed , identical to the original
+ ROM_LOAD( "18.bin", 0x0000, 0x2000, BAD_DUMP CRC(23a1d180) SHA1(daf212e7b82f8ec65265f0ee6b05ba4c78cfa379) )
+ ROM_LOAD( "horekid.16", 0x0000, 0x2000, CRC(104b77cc) SHA1(f875c7fe4f2b540bc44fa144a449a01268011431) ) // Given the rest of the GFX ROMs match horekid we'll assume this does too, for now
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) // tiles, identical to the original
+ ROM_LOAD( "9.bin", 0x00000, 0x8000, CRC(da25ae10) SHA1(83d8b78cff85854b497b40525ec3c93a84ba6248) )
+ ROM_LOAD( "10.bin", 0x08000, 0x8000, CRC(616e4321) SHA1(5bf0e0a7290b6bcb5dfbb1070eeb683830e6916b) )
+ ROM_LOAD( "11.bin", 0x10000, 0x8000, CRC(8c7d2be2) SHA1(efd70997126fc7c2622546fabe69cb222dca87f9) )
+ ROM_LOAD( "12.bin", 0x18000, 0x8000, CRC(a0066b02) SHA1(d6437932028e937dab5728f40d6d09b6afe9a903) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 ) // sprites, identical to the original
+ ROM_LOAD( "14b.bin", 0x00000, 0x8000, CRC(a3caa07a) SHA1(4baa7d1867dbaa8bace43416040114129f5405d6) )
+ ROM_LOAD( "15b.bin", 0x08000, 0x8000, CRC(0e48ff8e) SHA1(5a3025991378ed3f9bdc2d420b1432332278178b) )
+ ROM_LOAD( "16b.bin", 0x10000, 0x8000, CRC(e300747a) SHA1(5875a46c215b12f1e9a889819215bca40e4459a6) )
+ ROM_LOAD( "17b.bin", 0x18000, 0x8000, CRC(51105741) SHA1(01c3bb2c03ce1ca959d62d64be3a019e74f677ba) )
+
+ ROM_REGION( 0x400, "proms", 0 ) // not dumped for this set
+ ROM_LOAD( "kid_prom.10f", 0x000, 0x100, CRC(ca13ce23) SHA1(46f0ed22f601721fa35bab12ce8816f30b102f59) ) // red
+ ROM_LOAD( "kid_prom.11f", 0x100, 0x100, CRC(fb44285a) SHA1(f9605e82f63188daeff044fd48d81c1dfc4d4f2a) ) // green
+ ROM_LOAD( "kid_prom.12f", 0x200, 0x100, CRC(40d41237) SHA1(b33082540d739a3bfe096f68f3359fbf1360b5be) ) // blue
+ ROM_LOAD( "kid_prom.2g", 0x300, 0x100, CRC(4b9be0ed) SHA1(81aa7bb24fe6ea13f5dffdb67ea699adf0b3129a) ) // clut
+
+ ROM_REGION( 0x0100, "user1", 0 ) // not dumped for this set
+ ROM_LOAD( "kid_prom.4e", 0x000, 0x100, CRC(e4fb54ee) SHA1(aba89d347b24dc6680e6f25b4a6c0d6657bb6a83) ) // ctable
+ROM_END
+
+
/* This is not the REAL Booby Kids (early Japanese version of Kid no Hore Hore Daisakusen),
it is a bootleg that was manufactureed in Italy which became popular in Europe. The bootleggers
probably called it 'Booby Kids' because this is the name under which the game was known on home systems
@@ -942,18 +1008,19 @@ ROM_END
-// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS
-GAME( 1985, terracre, 0, ym3526, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, terracreo,terracre, ym3526, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, terracrea,terracre, ym3526, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 3)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, terracren,terracre, ym2203, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM2203)", MACHINE_SUPPORTS_SAVE )
+// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS
+GAME( 1985, terracre, 0, ym3526, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, terracreo, terracre, ym3526, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, terracrea, terracre, ym3526, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, terracren, terracre, ym2203, terracre, terracre_state, empty_init, ROT270, "Nichibutsu", "Terra Cresta (YM2203)", MACHINE_SUPPORTS_SAVE )
// later HW: supports 1412M2 device, see also mightguy.cpp
-GAME( 1986, amazon, 0, amazon_1412m2, amazon, amazon_state, empty_init, ROT270, "Nichibutsu", "Soldier Girl Amazon", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, amazont, amazon, amazon_1412m2, amazon, amazon_state, empty_init, ROT270, "Nichibutsu (Tecfri license)", "Soldier Girl Amazon (Tecfri license)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, amatelas, amazon, amazon_1412m2, amazon, amazon_state, empty_init, ROT270, "Nichibutsu", "Sei Senshi Amatelass", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, horekid, 0, amazon_1412m2, horekid, amazon_state, empty_init, ROT270, "Nichibutsu", "Kid no Hore Hore Daisakusen", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, amazon, 0, amazon_1412m2, amazon, amazon_state, empty_init, ROT270, "Nichibutsu", "Soldier Girl Amazon", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, amazont, amazon, amazon_1412m2, amazon, amazon_state, empty_init, ROT270, "Nichibutsu (Tecfri license)", "Soldier Girl Amazon (Tecfri license)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, amatelas, amazon, amazon_1412m2, amazon, amazon_state, empty_init, ROT270, "Nichibutsu", "Sei Senshi Amatelass", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, horekid, 0, amazon_1412m2, horekid, amazon_state, empty_init, ROT270, "Nichibutsu", "Kid no Hore Hore Daisakusen", MACHINE_SUPPORTS_SAVE )
// bootlegs
-GAME( 1987, horekidb, horekid, amazon_base, horekid, terracre_state, empty_init, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, boobhack, horekid, amazon_base, horekid, terracre_state, empty_init, ROT270, "bootleg", "Booby Kids (Italian manufactured graphic hack / bootleg of Kid no Hore Hore Daisakusen (bootleg))", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, horekidb, horekid, amazon_base, horekid, terracre_state, empty_init, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, horekidb2, horekid, horekidb2, horekidb2, terracre_state, empty_init, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, boobhack, horekid, amazon_base, horekid, terracre_state, empty_init, ROT270, "bootleg", "Booby Kids (Italian manufactured graphic hack / bootleg of Kid no Hore Hore Daisakusen (bootleg))", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/terracre.h b/src/mame/includes/terracre.h
index d8dc382b101..c20f242cfe8 100644
--- a/src/mame/includes/terracre.h
+++ b/src/mame/includes/terracre.h
@@ -26,6 +26,7 @@ public:
{ }
void amazon_base(machine_config &config);
+ void horekidb2(machine_config &config);
void ym2203(machine_config &config);
void ym3526(machine_config &config);
@@ -61,6 +62,7 @@ private:
uint32_t screen_update_amazon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
+ void horekidb2_map(address_map &map);
void sound_2203_io_map(address_map &map);
void sound_3526_io_map(address_map &map);
void sound_map(address_map &map);
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 95987a38562..2c2677efe0b 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -41184,6 +41184,7 @@ amazont // (c) 1986
boobhack // bootleg
horekid // (c) 1987
horekidb // bootleg
+horekidb2 // bootleg
terracre // (c) 1985
terracrea // (c) 1985
terracren // (c) 1985