From 12098ec2503a8f1afb34fe1767263c752cdd270c Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 23 Nov 2023 18:37:26 +0100 Subject: New working clones ------------------ Crazey Mazey [chaneman] Pole Position (Atari version 1 on Namco PCB) [andynumbers] --- src/mame/galaxian/galaxian.cpp | 65 ++++++++++++++++++++++++++++++++++ src/mame/galaxian/galaxian.h | 1 + src/mame/mame.lst | 2 ++ src/mame/misc/astrcorp.cpp | 11 +++--- src/mame/namco/polepos.cpp | 79 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 153 insertions(+), 5 deletions(-) diff --git a/src/mame/galaxian/galaxian.cpp b/src/mame/galaxian/galaxian.cpp index ee9b5b009ca..05fc26a20fc 100644 --- a/src/mame/galaxian/galaxian.cpp +++ b/src/mame/galaxian/galaxian.cpp @@ -9517,6 +9517,30 @@ void galaxian_state::init_ghostmun() //galaxian_sprite_clip_end = 250; } +void galaxian_state::init_crazeym() +{ + init_nolock(); + + m_extend_sprite_info_ptr = extend_sprite_info_delegate(&bagmanmc_state::upper_extend_sprite_info, this); + + uint8_t *rom = memregion("maincpu")->base(); + + for (int i = 0; i < 0x4000; i++) + { + switch(rom[i] & 0x38) + { + case 0x00: (i & 0x01) ? rom[i] ^= 0x30 : rom[i] ^= 0x20; break; + case 0x08: (i & 0x01) ? rom[i] ^= 0x30 : rom[i] ^= 0x08; break; + case 0x10: (i & 0x01) ? rom[i] ^= 0x30 : rom[i] ^= 0x28; break; + case 0x18: (i & 0x01) ? rom[i] ^= 0x18 : rom[i] ^= 0x08; break; + case 0x20: (i & 0x01) ? rom[i] ^= 0x30 : rom[i] ^= 0x10; break; + case 0x28: (i & 0x01) ? rom[i] ^= 0x30 : rom[i] ^= 0x20; break; + case 0x30: (i & 0x01) ? rom[i] ^= 0x18 : rom[i] ^= 0x18; break; + case 0x38: (i & 0x01) ? rom[i] ^= 0x30 : rom[i] ^= 0x20; break; + } + } +} + void galaxian_state::init_froggrs() { // video extensions @@ -9772,6 +9796,46 @@ ROM_START( mcwars ) // 2-PCB stack, title comes from instructions. Code is ident ROM_LOAD( "82s123.6l", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) ROM_END +/* +Crazey Mazey PCB Info: + +PCB is a copy of the Galaxian/Moon Cresta two board style. + +"Manufactured in Great Britain by: +SOUTHWEST RESEARCH LTD.. +2-12 Mill Lane, Bedminster, Bristol. TEL:632182" + +All EPROMs are 2732 size. (Hitachi HN462732G) +PROM is 32 X 8 type. (Texas Instruments TBP18S030N) + +The CPU block was missing. It appears it only contains the decryption logic. + +Handwritten labels. + +The marquee says +TM. EAGLE CONVERTIONS +MADE UNDER LICENCE FROM EAGLE CONVERTIONS INC ©1982 +*/ +ROM_START( crazeym ) + ROM_REGION( 0x4000, "maincpu", 0 ) + ROM_LOAD( "cm.7f", 0x0000, 0x0800, CRC(d1f2e906) SHA1(794d6a0816722973d6a782a3d8a3c52586525b39) ) + ROM_CONTINUE( 0x2000, 0x0800 ) + ROM_LOAD( "cm.7h", 0x0800, 0x0800, CRC(27aeff15) SHA1(de1e394901713ce6cfcb4dace86979217228162b) ) + ROM_CONTINUE( 0x2800, 0x0800 ) + ROM_LOAD( "cm.7k", 0x1000, 0x0800, CRC(0ae404f3) SHA1(12f093f8ebbd307db590aadb58a5c171df591233) ) + ROM_CONTINUE( 0x3000, 0x0800 ) + ROM_LOAD( "cm.7m", 0x1800, 0x0800, CRC(f553eca3) SHA1(d7ba242d078174d8a509d93ab491fbfcc6a21f71) ) + ROM_CONTINUE( 0x3800, 0x0800 ) + // 8f not populated + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "cm.1h", 0x0000, 0x1000, CRC(5b347525) SHA1(d71375e9fbaf753d233fb018cd41bd5ee77465a1) ) + ROM_LOAD( "cm.1k", 0x1000, 0x1000, CRC(30203318) SHA1(10ec18f260eab03f86e80a8be28ed64a0d809071) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "cm.6l", 0x0000, 0x0020, CRC(fbb00a71) SHA1(83be71f5370d45b1b7ff6b5645fc9fb564f52c24) ) +ROM_END + ROM_START( galaxrfgg ) ROM_REGION( 0x4000, "maincpu", 0 ) ROM_LOAD( "gxrf.7f", 0x0000, 0x1000, CRC(c06eeb10) SHA1(cf1006a7ff02fe8b04a096d802fb8d8937dd913d) ) @@ -16263,6 +16327,7 @@ GAME( 1981, pacmanblc, puckman, pacmanbl, pacmanbl, galaxian_state, init_ GAME( 1981, pacmanblci, puckman, pacmanbl, pacmanbl, galaxian_state, init_pacmanbl, ROT270, "bootleg (Cirsa)", "Pac-Man (Cirsa, Spanish bootleg on Galaxian hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 199?, komemokos, puckman, pacmanbl, pacmanbl, galaxian_state, init_pacmanbl, ROT270, "hack", "Komemokos (hack of 'Pac-Man (Cirsa, Spanish bootleg)')", MACHINE_SUPPORTS_SAVE ) GAME( 1981, pacmanblv, puckman, pacmanbl, pacmanbl, galaxian_state, init_pacmanbl, ROT270, "bootleg (Video Dens)", "Pac-Man (Video Dens, Spanish bootleg on Galaxian hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, crazeym, puckman, galaxian, pacmanblb, galaxian_state, init_crazeym, ROT90, "bootleg (GAT)", "Crazey Mazey", MACHINE_SUPPORTS_SAVE ) GAME( 1981, ghostmun, puckman, pacmanbl, streakng, galaxian_state, init_ghostmun, ROT90, "bootleg (Leisure and Allied)", "Ghost Muncher", MACHINE_SUPPORTS_SAVE ) GAME( 1981, phoenxp2, phoenix, pisces, phoenxp2, pisces_state, init_batman2, ROT270, "bootleg", "Phoenix Part 2", MACHINE_SUPPORTS_SAVE ) GAME( 1981, batman2, phoenix, pisces, batman2, pisces_state, init_batman2, ROT270, "bootleg", "Batman Part 2", MACHINE_SUPPORTS_SAVE ) // Similar to pisces, but with different video banking characteristics diff --git a/src/mame/galaxian/galaxian.h b/src/mame/galaxian/galaxian.h index b85b685fdc3..954757497e2 100644 --- a/src/mame/galaxian/galaxian.h +++ b/src/mame/galaxian/galaxian.h @@ -198,6 +198,7 @@ public: void init_mimonkeyb(); void init_victoryc(); void init_bigkonggx(); + void init_crazeym(); TILE_GET_INFO_MEMBER(bg_get_tile_info); void galaxian_palette(palette_device &palette); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 249ec84bf0a..c1a1b8fcb68 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18302,6 +18302,7 @@ ckongis // ckongmc // 1981 bootleg ckongmc2 // 1981 bootleg ckongs // bootleg +crazeym // (c) 1982 GAT (bootleg) devilfshg // (c) 1982 Artic (bootleg?) devilfshgb // (c) 1984 Vision / Artic (bootleg?) dingo // (c) 1983 Ashby Computers and Graphics LTD. + Jaleco license @@ -33022,6 +33023,7 @@ polepos2b // bootleg polepos2bi // bootleg polepos2bs // 1984, BCN Internacional S.A. (bootleg) poleposa1 // 136014 (c) 1982 Atari +poleposa1n // poleposa2 // 136014 (c) 1982 + Atari license poleposj // (c) 1982 ppspeed // bootleg diff --git a/src/mame/misc/astrcorp.cpp b/src/mame/misc/astrcorp.cpp index b639d99cca4..221c660b27b 100644 --- a/src/mame/misc/astrcorp.cpp +++ b/src/mame/misc/astrcorp.cpp @@ -26,6 +26,7 @@ Year + Game PCB ID CPU Video 04 Zoo M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2005-02-18 Encrypted 04 Magic Bomb (NB6.1) J (CS350P001 + CS350P033) ASTRO V102PX-014? ASTRO V07 ?, Encrypted, select CGA / VGA via jumper 04 Go & Stop K2 (CS350P011) no markings ASTRO V05 ASTRO F01 2007-06-03 Encrypted +04 Magic Bomb (AA.72C) M1.1 ASTRO V102PX-014? ASTRO V05 ASTRO F02 2005-02-18 Encrypted 05 Dino Dino T-3802A ASTRO V102PX-010? ASTRO V05 ASTRO F02 2003-03-12 Encrypted 05 Stone Age L1 ASTRO V102PX-012? ASTRO V05(x2) ASTRO F02 2004-09-04 Encrypted 05? Hacher (hack) M1.2 ? ? ASTRO F02 2005-02-18 Encrypted @@ -1751,15 +1752,15 @@ ROM_END ROM_START( magibombj ) ROM_REGION( 0x40000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, CRC(7faa57c3) SHA1(6176848354f90b819d4ffe2d91cdd9cca36ff58f) ) - ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(987c3e4e) SHA1(d2ffac771dc1d30f0598c79cad0691753e4945f7) ) - ROM_FILL( 0x20000, 0x20000, 0xff ) + ROM_LOAD16_BYTE( "1_mb_aa72c.u26", 0x00000, 0x10000, CRC(7faa57c3) SHA1(6176848354f90b819d4ffe2d91cdd9cca36ff58f) ) + ROM_LOAD16_BYTE( "2_mb_aa72c.u25", 0x00001, 0x10000, CRC(987c3e4e) SHA1(d2ffac771dc1d30f0598c79cad0691753e4945f7) ) + ROM_FILL( 0x20000, 0x20000, 0xff ) ROM_REGION( 0x200000, "sprites", 0 ) - ROM_LOAD( "mx29f1610ml.u26", 0x000000, 0x200000, CRC(c120f256) SHA1(f7468fb73b2f7453c950256880c0b8db24849a4e) ) + ROM_LOAD( "mx29f1610ml.u26", 0x000000, 0x200000, CRC(c120f256) SHA1(f7468fb73b2f7453c950256880c0b8db24849a4e) ) // the "U26" marking is present twice ROM_REGION( 0x80000, "oki", 0 ) - ROM_LOAD( "rom5", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) ) + ROM_LOAD( "5_mb_e1.0", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) ) ROM_REGION16_LE( 0x80, "eeprom", 0 ) ROM_LOAD( "93c46.u6", 0x00, 0x80, CRC(7278d581) SHA1(c0851466b669e42c657ca5517c00c44d76e559f4) ) // factory default diff --git a/src/mame/namco/polepos.cpp b/src/mame/namco/polepos.cpp index c76cc263df1..7d0a9fa8ecb 100644 --- a/src/mame/namco/polepos.cpp +++ b/src/mame/namco/polepos.cpp @@ -1404,6 +1404,84 @@ ROM_START( poleposa2 ) ROM_LOAD( "137279-001.7c", 0x0200, 0x00eb, CRC(4ddc51ba) SHA1(78e64ef9074bd103662bc78a312e3a2b2b0957cc) ) // N82S153N ROM_END +ROM_START( poleposa1n ) // dumped from an original NAMCO 22089612 (22089632) PCB + // Z80 memory/ROM data + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pp2_9.6h", 0x0000, 0x2000, CRC(c918c043) SHA1(abc1aa3d7b670b5a65b4565dc646cd3c4edf4e6f) ) + ROM_LOAD( "pp2_10.5h", 0x2000, 0x1000, CRC(7174bcb7) SHA1(460326a6cea201db2df813013c95562a222ea95d) ) + + // Z8002 #1 memory/ROM data + ROM_REGION( 0x10000, "sub", 0 ) + ROM_LOAD16_BYTE( "pp2_1.8m", 0x0001, 0x2000, CRC(8c2cf172) SHA1(57c774afab79599ac3f434113c3170fbb3d42620) ) + ROM_LOAD16_BYTE( "pp2_2.8l", 0x0000, 0x2000, CRC(51018857) SHA1(ed28d44d172a01f76461f556229d1fe3a1b779a7) ) + + // Z8002 #2 memory/ROM data + ROM_REGION( 0x10000, "sub2", 0 ) + ROM_LOAD16_BYTE( "pp2_5.4m", 0x0001, 0x2000, CRC(af4fc019) SHA1(1bb6c0f3ffada2e1df72e1767581f8e8bb2b18f9) ) + ROM_LOAD16_BYTE( "pp2_6.4l", 0x0000, 0x2000, CRC(ba0045f3) SHA1(aedb8d8c56407963aa4ffb66243288c8fd6d845a) ) + + // graphics data + ROM_REGION( 0x01000, "gfx1", 0 ) // 2bpp alpha layer + ROM_LOAD( "pp2_28.1f", 0x0000, 0x1000, CRC(a949aa85) SHA1(2d6414196b6071101001128418233e585279ffb9) ) + + ROM_REGION( 0x01000, "gfx2", 0 ) // 2bpp view layer + ROM_LOAD( "pp1_29.1e", 0x0000, 0x1000, CRC(706e888a) SHA1(af1aa2199fcf73a3afbe760857ff117865350954) ) + + ROM_REGION( 0x04000, "gfx3", 0 ) // 4bpp 16x16 sprites + ROM_LOAD( "pp2_25.1n", 0x0000, 0x2000, CRC(34c2d310) SHA1(151513da03c49436e16856bfe9666526f81eda71) ) // 4bpp sm sprites, planes 0+1 + ROM_LOAD( "pp2_26.1m", 0x2000, 0x2000, CRC(ba3005f3) SHA1(faef996b1282c97644a0cb503cb6a98a16084d30) ) // 4bpp sm sprites, planes 2+3 + + ROM_REGION( 0x10000, "gfx4", 0 ) // 4bpp 32x32 sprites + ROM_LOAD( "pp2_17.5n", 0x0000, 0x2000, CRC(2e134b46) SHA1(0938f5f9f5cc6d7c1096c569449db78dbc42da01) ) // 4bpp lg sprites, planes 0+1 + ROM_LOAD( "pp2_19.4n", 0x2000, 0x2000, CRC(1c5c05b7) SHA1(2c2e912b7fd030d8c120508195aa6b1f3a6b34fc) ) + ROM_LOAD( "pp2_21.3n", 0x4000, 0x2000, CRC(020f4de5) SHA1(50cb1633f50703fdc941b3183b0d2fac4977f687) ) + ROM_LOAD( "pp2_18.5m", 0x8000, 0x2000, CRC(6f9997d2) SHA1(b26d505266ccf23bfd867f881756c3251c80f57b) ) // bpp lg sprites, planes 2+3 + ROM_LOAD( "pp2_20.4m", 0xa000, 0x2000, CRC(b8a0411c) SHA1(fe6ac41c950004ef729733c6561d6d76ffeecf98) ) + ROM_LOAD( "pp2_22.3m", 0xc000, 0x2000, CRC(4fbf3e94) SHA1(ec7ab91c7db768425e47c625098008f4d7da7bb0) ) + + ROM_REGION( 0x5000, "gfx5", 0 ) // road generation ROMs needed at runtime + ROM_LOAD( "pp1_30.3a", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ + ROM_LOAD( "pp1_31.2a", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ + ROM_LOAD( "pp1_32.1a", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ + + ROM_REGION( 0x1000, "gfx6", 0 ) // sprite scaling + ROM_LOAD( "pp1_27.1l", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) // vertical scaling + + // graphics PROM data + ROM_REGION( 0x1040, "proms", 0 ) + ROM_LOAD( "pp1-7.8l", 0x0000, 0x0100, CRC(f07ff2ad) SHA1(e1f3cb10a03d23f8c1d422acf271dba4e7b98cb1) ) // red palette + ROM_LOAD( "pp1-8.9l", 0x0100, 0x0100, CRC(adbde7d7) SHA1(956ac5117c1e310f554ac705aa2dc24a796c36a5) ) // green palette + ROM_LOAD( "pp1-9.10l", 0x0200, 0x0100, CRC(ddac786a) SHA1(d1860105bf91297533ccc4aa6775987df198d0fa) ) // blue palette + ROM_LOAD( "pp2-10.2h", 0x0300, 0x0100, CRC(1e8d0491) SHA1(e8bf1db5c1fb04a35763099965cf5c588240bde5) ) // alpha color + ROM_LOAD( "pp1-11.4d", 0x0400, 0x0100, CRC(0e4fe8a0) SHA1(d330b1e5ebccf5bbefcf71486fd80d816de38196) ) // background color + ROM_LOAD( "pp1-15.9a", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) // vertical position low + ROM_LOAD( "pp1-16.10a", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) // vertical position med + ROM_LOAD( "pp1-17.11a", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) // vertical position hi + ROM_LOAD( "pp1-12.3c", 0x0800, 0x0400, CRC(7afc7cfc) SHA1(ba2407f6eff124e881b354f13205a4c058b7cf60) ) // road color + ROM_LOAD( "pp2-6.6m", 0x0c00, 0x0400, CRC(b448c934) SHA1(8f3f440a922c5c4a1cad17c87662860610c4dd9d) ) // sprite color + ROM_LOAD( "pp1-13.8e", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) // video RAM address decoder (not used) + ROM_LOAD( "pp1-14.9e", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) // video RAM address decoder (not used) + + // sound PROM data + ROM_REGION( 0x0100, "namco", 0 ) // not dumped for this set + ROM_LOAD( "136014-118.11d", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) // Namco sound + + ROM_REGION( 0x4000, "engine", 0 ) // not dumped for this set + ROM_LOAD( "136014-110.12f", 0x0000, 0x2000, CRC(b5ad4d5f) SHA1(c07e77a050200d6fe9952031f971ca35f4d15ff8) ) // engine sound + ROM_LOAD( "136014-111.12e", 0x2000, 0x2000, CRC(8fdd2f6f) SHA1(3818dc94c60cd78c4212ab7a4367cf3d98166ee6) ) // engine sound + + ROM_REGION( 0x6000, "52xx", 0 ) // not dumped for this set + ROM_LOAD( "136014-106.9c", 0x0000, 0x2000, CRC(5b4cf05e) SHA1(52342572940489175607bbf5b6cfd05ee9b0f004) ) // voice + + ROM_REGION( 0x0100, "user1", 0 ) // not dumped for this set + ROM_LOAD( "136014-117.7l", 0x0000, 0x0100, CRC(2401c817) SHA1(8991b7994513a469e64392fa8f233af5e5f06d54) ) // sync chain (unused) + + ROM_REGION( 0x0300, "cpu_pals", 0 ) // PALs located on the CPU board, not dumped for this set + ROM_LOAD( "137316-001.2n", 0x0000, 0x0034, CRC(dd37bd15) SHA1(3820203c8d7a64826ed6172be38d51fc70792ccd) ) // MMI PAL12L6CN - manual states 137280-001 + ROM_LOAD( "137316-001.5c", 0x0100, 0x0034, CRC(dd37bd15) SHA1(3820203c8d7a64826ed6172be38d51fc70792ccd) ) // MMI PAL12L6CN - manual states 137280-001 + ROM_LOAD( "137279-001.7c", 0x0200, 0x00eb, CRC(4ddc51ba) SHA1(78e64ef9074bd103662bc78a312e3a2b2b0957cc) ) // N82S153N +ROM_END + /* Top Racer / Pole Position I/II (?) @@ -2459,6 +2537,7 @@ void polepos_state::init_polepos2() GAME( 1982, polepos, 0, polepos, poleposa, polepos_state, empty_init, ROT0, "Namco", "Pole Position (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, poleposj, polepos, polepos, polepos, polepos_state, empty_init, ROT0, "Namco", "Pole Position (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, poleposa1, polepos, polepos, poleposa, polepos_state, empty_init, ROT0, "Namco (Atari license)", "Pole Position (Atari version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, poleposa1n, polepos, polepos, poleposa, polepos_state, empty_init, ROT0, "Namco (Atari license)", "Pole Position (Atari version 1 on Namco PCB)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, poleposa2, polepos, polepos, poleposa, polepos_state, empty_init, ROT0, "Namco (Atari license)", "Pole Position (Atari version 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, topracer, polepos, polepos, polepos, polepos_state, empty_init, ROT0, "bootleg", "Top Racer (with MB8841 + MB8842, 1984)", MACHINE_SUPPORTS_SAVE ) // the NAMCO customs have been cloned on these bootlegs GAME( 1983, topracera, polepos, polepos, polepos, polepos_state, empty_init, ROT0, "bootleg", "Top Racer (with MB8841 + MB8842, 1983)", MACHINE_SUPPORTS_SAVE ) // the only difference between them is the year displayed on the title screen -- cgit v1.2.3