Skip to content

Commit

Permalink
Add a new Spanish Turtles bootleg (mamedev#13096)
Browse files Browse the repository at this point in the history
New working clones
------------------
Turpin (Novatronic bootleg) [Luis Arrufat, Recreativas.org]
  • Loading branch information
clawgrip authored Dec 20, 2024
1 parent 70f0fca commit 8bb307b
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 5 deletions.
64 changes: 59 additions & 5 deletions src/mame/galaxian/galaxian.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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) )
Expand Down Expand Up @@ -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 )
Expand Down
2 changes: 2 additions & 0 deletions src/mame/galaxian/galaxian.h
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ class galaxian_state : public driver_device
void galartic(machine_config &config);
void bigkonggx(machine_config &config);
void scrammr(machine_config &config);
void turpinnv(machine_config &config);

template <int Mask> ioport_value ckongg_coinage_r();
template <int Mask> int ckongs_coinage_r();
Expand Down Expand Up @@ -392,6 +393,7 @@ class galaxian_state : public driver_device
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;
Expand Down
1 change: 1 addition & 0 deletions src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 8bb307b

Please sign in to comment.