From 8bb307b4af7f0fe4f1c556ea05be231fe6460a47 Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Fri, 20 Dec 2024 21:13:51 +0100 Subject: Add a new Spanish Turtles bootleg (#13096) New working clones ------------------ Turpin (Novatronic bootleg) [Luis Arrufat, Recreativas.org] --- src/mame/galaxian/galaxian.cpp | 64 ++++++++++++++++++++++++++++++++++++++---- src/mame/galaxian/galaxian.h | 2 ++ src/mame/mame.lst | 1 + 3 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/mame/galaxian/galaxian.cpp b/src/mame/galaxian/galaxian.cpp index b5f333a25f4..61ffd12126b 100644 --- a/src/mame/galaxian/galaxian.cpp +++ b/src/mame/galaxian/galaxian.cpp @@ -2446,6 +2446,29 @@ void galaxian_state::turtles_map(address_map &map) } +// map not derived from schematics, but comparing disasm to turpin +void galaxian_state::turpinnv_map(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0x3fff).rom(); + map(0x4000, 0x47ff).ram(); + map(0x4800, 0x4bff).mirror(0x0400).ram().w(FUNC(galaxian_state::galaxian_videoram_w)).share("videoram"); + map(0x5000, 0x50ff).mirror(0x0700).ram().w(FUNC(galaxian_state::galaxian_objram_w)).share("spriteram"); + map(0x6800, 0x6800).mirror(0x07f8).w(FUNC(galaxian_state::coin_count_0_w)); + map(0x6801, 0x6801).mirror(0x07f8).w(FUNC(galaxian_state::irq_enable_w)); + map(0x6802, 0x6802).mirror(0x07f8).w(FUNC(galaxian_state::coin_count_1_w)); + map(0x6803, 0x6803).mirror(0x07f8).w(FUNC(galaxian_state::scramble_background_blue_w)); + map(0x6804, 0x6804).mirror(0x07f8).w(FUNC(galaxian_state::scramble_background_green_w)); + map(0x6805, 0x6805).mirror(0x07f8).w(FUNC(galaxian_state::scramble_background_red_w)); + map(0x6806, 0x6806).mirror(0x07f8).w(FUNC(galaxian_state::galaxian_flip_screen_x_w)); + map(0x6807, 0x6807).mirror(0x07f8).w(FUNC(galaxian_state::galaxian_flip_screen_y_w)); + map(0x7000, 0x7000).mirror(0x07ff).r("watchdog", FUNC(watchdog_timer_device::reset_r)); + map(0x8100, 0x8103).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x8200, 0x8203).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0xc000, 0xcfff).rom().region("maincpu", 0x4000); +} + + // map NOT derived from schematics void galaxian_state::amigo2_map(address_map &map) { @@ -8080,6 +8103,15 @@ void galaxian_state::turtles(machine_config &config) } +void galaxian_state::turpinnv(machine_config &config) +{ + turtles(config); + + // alternate memory map + m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::turpinnv_map); +} + + void galaxian_state::theend(machine_config &config) { konami_base(config); @@ -14315,6 +14347,27 @@ ROM_START( turpins ) ROM_LOAD( "turtles.clr", 0x0000, 0x0020, BAD_DUMP CRC(f3ef02dd) SHA1(09fd795170d7d30f101d579f57553da5ff3800ab) ) ROM_END +// Novatronic bootleg on GGI Corp. PCB +ROM_START( turpinnv ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "2532.2c", 0x0000, 0x1000, CRC(f8e1edee) SHA1(8bd721cf35a8f1f9618af48bfcf4724822369e3a) ) + ROM_LOAD( "2532.2f", 0x1000, 0x1000, CRC(cdf884ba) SHA1(b2454715510535e116d1496d1631e736a0c4a693) ) + ROM_LOAD( "2532.2j", 0x2000, 0x1000, CRC(bf7d4f3b) SHA1(a29bb8d425188b23b2ff3df0f76b6714a6ab73ee) ) + ROM_LOAD( "2532.2m", 0x3000, 0x1000, CRC(ec9d0e04) SHA1(0be9f7ad72e90d7fa22044fa7dfbd679fbceec20) ) + ROM_LOAD( "2532.2p", 0x4000, 0x1000, CRC(c1c4d304) SHA1(e98319707870f548e425276f9219258a25ec70c5) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "2532.5c", 0x0000, 0x1000, CRC(f0c30f9a) SHA1(5621f336e9be8acf986a34bbb8855ed5d45c28ef) ) + ROM_LOAD( "2532.5d", 0x1000, 0x1000, CRC(af5fc43c) SHA1(8a49c55feba094b07380615cf0b6f0878c25a260) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "2716.5f", 0x0000, 0x0800, CRC(e5999d52) SHA1(bc3f52cf6c6e19dfd2dacd1e8c9128f437e995fc) ) + ROM_LOAD( "2716.5h", 0x0800, 0x0800, BAD_DUMP CRC(c3ffd655) SHA1(dee51d77be262a2944488e381541c10a2b6e5d83) ) // ROM damaged, borrowed from the original Turtles set + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "74s288.6e", 0x0000, 0x0020, CRC(c5f12bc3) SHA1(b746ba06b596d4227fdc730a23bdf495f84e6a72) ) +ROM_END + ROM_START( 600 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "600_vid.2c", 0x0000, 0x1000, CRC(8ee090ae) SHA1(3d491313da6cccd6dbc15774569be0555fe2f73a) ) @@ -16813,12 +16866,13 @@ GAME( 1981, froggeram, frogger, froggeram, froggeram, galaxian_state, init_ // Turtles based hardware // CPU/Video Board: KT-4108-2 // Sound Board: KT-4108-1 -GAME( 1981, turtles, 0, turtles, turtles, galaxian_state, init_turtles, ROT90, "Konami (Stern Electronics license)", "Turtles", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, turpin, turtles, turtles, turpin, galaxian_state, init_turtles, ROT90, "Konami (Sega license)", "Turpin", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, 600, turtles, turtles, turtles, galaxian_state, init_turtles, ROT90, "Konami", "600", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, turpins, turtles, turpins, turtles, galaxian_state, init_turtles, ROT90, "bootleg", "Turpin (bootleg on Super Cobra hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // needs different sound timer +GAME( 1981, turtles, 0, turtles, turtles, galaxian_state, init_turtles, ROT90, "Konami (Stern Electronics license)", "Turtles", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, turpin, turtles, turtles, turpin, galaxian_state, init_turtles, ROT90, "Konami (Sega license)", "Turpin", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, 600, turtles, turtles, turtles, galaxian_state, init_turtles, ROT90, "Konami", "600", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, turpins, turtles, turpins, turtles, galaxian_state, init_turtles, ROT90, "bootleg", "Turpin (bootleg on Super Cobra hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // needs different sound timer +GAME( 1981, turpinnv, turtles, turpinnv, turtles, galaxian_state, init_turtles, ROT90, "bootleg (Novatronic)", "Turpin (Novatronic bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, froggert, frogger, turtles, frogger, galaxian_state, init_quaak, ROT90, "Konami (Sega license)", "Frogger (Turtles hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, froggert, frogger, turtles, frogger, galaxian_state, init_quaak, ROT90, "Konami (Sega license)", "Frogger (Turtles hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, amidar, 0, turtles, amidaru, galaxian_state, init_turtles, ROT90, "Konami", "Amidar", MACHINE_SUPPORTS_SAVE ) GAME( 1981, amidar1, amidar, turtles, amidar, galaxian_state, init_turtles, ROT90, "Konami", "Amidar (older)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/galaxian/galaxian.h b/src/mame/galaxian/galaxian.h index 7e3fcb413f1..3800c993c30 100644 --- a/src/mame/galaxian/galaxian.h +++ b/src/mame/galaxian/galaxian.h @@ -324,6 +324,7 @@ public: void galartic(machine_config &config); void bigkonggx(machine_config &config); void scrammr(machine_config &config); + void turpinnv(machine_config &config); template ioport_value ckongg_coinage_r(); template int ckongs_coinage_r(); @@ -392,6 +393,7 @@ protected: void takeoff_sound_portmap(address_map &map) ATTR_COLD; void theend_map(address_map &map) ATTR_COLD; void thepitm_map(address_map &map) ATTR_COLD; + void turpinnv_map(address_map &map) ATTR_COLD; void turpins_map(address_map &map) ATTR_COLD; void turpins_sound_map(address_map &map) ATTR_COLD; void turtles_map(address_map &map) ATTR_COLD; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 10fe60c6573..9152bbe0472 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18928,6 +18928,7 @@ thepitm // bootleg timefgtr // (c) Taito (Brazil) - rewrite of Time Pilot tst_galx // Galaxian Test ROM turpin // (c) 1981 Sega +turpinnv // bootleg (Novatronic) turpins // (c) 1981 bootleg turtles // (c) 1981 Stern uniwars // (c) Irem -- cgit v1.2.3