pacman.cpp: Added Miss Packman Plus. (#10201)

New working clones
---------------------
Miss Packman Plus [Marc Deslauriers]
This commit is contained in:
mdeslaur 2022-08-12 11:09:13 -04:00 committed by GitHub
parent cb31973770
commit f3b42285fc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 66 additions and 22 deletions

View file

@ -11168,6 +11168,7 @@ mspacmbmc:
mspacmbn:
mspacmnf:
mspacpls:
mspackpls:
msrumble: ; missing
mssilad: ; missing
newpuc2:

View file

@ -34169,6 +34169,7 @@ mspacmbmc // bootleg (Marti Colls / Falgas)
mspacmbn // bootleg
mspacmnf // hack
mspacpls // hack
mspackpls // hack
mspactwin // (c) 1992 SUSILU
newpuc2 // hack
newpuc2b // hack

View file

@ -37,7 +37,6 @@
* mspactwin_map supposed ROM 0x2000 mirroring implementation doesn't make much sense, there's a bus conflict now
Known to exist but dumps needed
* Ms Pac Plus
* MTV Rock-N-Roll Trivia (Part 2), 1 bad rom. It's not a bad dump, the rom is bad.
****************************************************************************
@ -230,8 +229,8 @@ notes:
- mspacpls: This romset is hacked. mspacatk.2 is more commonly known as the "cheat chip" and is used on bootleg
ms pacs in place of boot2. It was created circa 1997 by Doc Cutlip and allows turbo speed and invulnerability.
mspacatk.5 and .6 contain the decoded maze data for ms pac plus. The actual dump is not available.
I believe the actual version contains more than just new maze data.
mspacatk.5 and .6 contain the decoded maze data for ms pac plus. The maze data was obtained from the mspackpls
romset.
- pacgal: This is a common hack found on make trax and other boards. Mostly they use 4k eproms but Make Trax allows
4x2k for graphics. Boot5 and 6 are stacked on boot3 and 4, the refresh hack is used for addressing. Usually
@ -5965,6 +5964,40 @@ ROM_START( mspacpls )
ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) // Timing - not used
ROM_END
// This is a bootleg Ms. Pac-Man auxiliary board that displays "Miss Packman Plus" at the title screen and
// contains alternate mazes. These are the mazes that were later hacked into the mspacpls romset.
//
// The auxiliary board contains a Z80, a PAL with "MTS" handwritten on it, and 3 2764 eproms labelled "E",
// "F", and "H". The eproms have data bits 3 and 4 swapped, and the PAL scrambles the addressing in 0x0800
// chunks.
ROM_START( mspackpls )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "rom-h.bin", 0x0000, 0x0800, CRC(88c89824) SHA1(8fa49483864c79c50b4734896fc7bd3cc6531afb) )
ROM_CONTINUE( 0x8800, 0x0800 )
ROM_CONTINUE( 0x3000, 0x0800 )
ROM_CONTINUE( 0x9800, 0x0800 )
ROM_LOAD( "rom-f.bin", 0x2000, 0x0800, CRC(19620d5d) SHA1(3ab7dbdd6d72dd395b1d37b27e70f9a106e87971) )
ROM_CONTINUE( 0x0800, 0x0800 )
ROM_CONTINUE( 0x9000, 0x0800 )
ROM_CONTINUE( 0x1800, 0x0800 )
ROM_LOAD( "rom-e.bin", 0x8000, 0x0800, CRC(59cb7ea0) SHA1(bf6f84ea7c08be88ad14e13a6b45ae788804d850) )
ROM_CONTINUE( 0x2800, 0x0800 )
ROM_CONTINUE( 0x1000, 0x0800 )
ROM_CONTINUE( 0x3800, 0x0800 )
ROM_REGION( 0x2000, "gfx1", 0 )
ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
ROM_REGION( 0x0120, "proms", 0 )
ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) )
ROM_REGION( 0x0200, "namco", 0 ) // Sound PROMs
ROM_LOAD( "82s126.1m", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) // Timing - not used
ROM_END
ROM_START( mspacmanlai )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "1-cpu.6e", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
@ -8168,6 +8201,13 @@ void mspactwin_state::init_mspactwin()
}
}
void pacman_state::init_mspackpls()
{
uint8_t *rom = memregion("maincpu")->base();
for (int i = 0x0000; i < 0xa000; i++)
rom[i] = bitswap<8>(rom[i], 7, 6, 5, 3, 4, 2, 1, 0);
}
/*************************************
*
@ -8215,25 +8255,26 @@ GAME( 1980, pacmanug, puckman, pacman, pacman, pacman_state, empty_init,
GAME( 1982, pacplus, 0, pacman, pacman, pacman_state, init_pacplus, ROT90, "Namco (Midway license)", "Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacman, 0, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "Midway / General Computer Corporation", "Ms. Pac-Man", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmnf, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "hack", "Ms. Pac-Man (speedup hack)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "hack", "Ms. Pac Attack", MACHINE_SUPPORTS_SAVE )
GAME( 1989, msheartb, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "hack (Two-Bit Score)", "Ms. Pac-Man Heart Burn", MACHINE_SUPPORTS_SAVE )
GAME( 1981, pacgal2, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "bootleg", "Pac-Gal (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmancr, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "bootleg", "Ms. Pac-Man (bootleg on Crush Roller Hardware)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmab, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmab2, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmab4, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 4)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmbe, mspacman, woodpek, mspacman, pacman_state, init_mspacmbe, ROT90, "bootleg", "Ms. Pac-Man (bootleg, encrypted)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, mspacmbmc, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg (Marti Colls)", "Ms. Pac-Man (Marti Colls bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmbn, mspacman, woodpek, mspacman, pacman_state, init_pengomc1, ROT90, "bootleg (Novatronic)", "Ms. Pac-Man (Novatronic bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, mspacmanlai,mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg (Leisure and Allied)", "Ms. Pac-Man (Leisure and Allied bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacii, mspacman, mspacii, mspacman, pacman_state, init_mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacii2, mspacman, mspacii, mspacman, pacman_state, init_mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, pacgal, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "hack", "Pac-Gal (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacpls, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "hack", "Ms. Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
GAME( 1992, mschamp, mspacman, mschamp, mschamp, pacman_state, init_mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Zola-Puc Gal", MACHINE_SUPPORTS_SAVE ) // Rayglo version
GAME( 1995, mschamps, mspacman, mschamp, mschamp, pacman_state, init_mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacman, 0, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "Midway / General Computer Corporation", "Ms. Pac-Man", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmnf, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "hack", "Ms. Pac-Man (speedup hack)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "hack", "Ms. Pac Attack", MACHINE_SUPPORTS_SAVE )
GAME( 1989, msheartb, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "hack (Two-Bit Score)", "Ms. Pac-Man Heart Burn", MACHINE_SUPPORTS_SAVE )
GAME( 1981, pacgal2, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "bootleg", "Pac-Gal (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmancr, mspacman, mspacman, mspacman, pacman_state, init_mspacman, ROT90, "bootleg", "Ms. Pac-Man (bootleg on Crush Roller Hardware)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmab, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmab2, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmab4, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 4)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmbe, mspacman, woodpek, mspacman, pacman_state, init_mspacmbe, ROT90, "bootleg", "Ms. Pac-Man (bootleg, encrypted)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, mspacmbmc, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg (Marti Colls)", "Ms. Pac-Man (Marti Colls bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacmbn, mspacman, woodpek, mspacman, pacman_state, init_pengomc1, ROT90, "bootleg (Novatronic)", "Ms. Pac-Man (Novatronic bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, mspacmanlai,mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "bootleg (Leisure and Allied)", "Ms. Pac-Man (Leisure and Allied bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacii, mspacman, mspacii, mspacman, pacman_state, init_mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacii2, mspacman, mspacii, mspacman, pacman_state, init_mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, pacgal, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "hack", "Pac-Gal (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspacpls, mspacman, woodpek, mspacman, pacman_state, empty_init, ROT90, "hack", "Ms. Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
GAME( 1992, mschamp, mspacman, mschamp, mschamp, pacman_state, init_mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Zola-Puc Gal", MACHINE_SUPPORTS_SAVE ) // Rayglo version
GAME( 1995, mschamps, mspacman, mschamp, mschamp, pacman_state, init_mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", MACHINE_SUPPORTS_SAVE )
GAME( 1981, mspackpls, mspacman, woodpek, mspacman, pacman_state, init_mspackpls, ROT90, "hack", "Miss Packman Plus", MACHINE_SUPPORTS_SAVE )
// These bootlegs have MADE IN GREECE clearly visible and etched into the PCBs. They were very common in Spain with several operators having their own versions.
// Based on the PCBs and copyright dates shown they were produced late 80s / early 90s. Usually they run a version of Ms. Pacman, but were sometimes converted back to regular Pac-Man

View file

@ -168,6 +168,7 @@ public:
void init_maketrax();
void init_drivfrcp();
void init_mspacmbe();
void init_mspackpls();
void init_ponpoko();
void init_eyes();
void init_woodpek();