Senil Data Systems
Student
TL;DR
If your Pac Man machine has buttons that can be lit, you can have them controllable, so if there's a credit on, the 1 Player Start button will light up, more than one credit, both Start buttons light. Also, if you want to switch between Pac Man and Ms. Pac Man, there's circuitry for that as well. You can stop reading here if this is not for you.
At the Pinball and Arcade Museum Seligenstadt, there is no dedicated Pac Man or Ms. Pac Man machine. All we have are bootleg PCBs and universal cabinets made by TV Ideal.
They use gambling machine buttons which can be lit.
And they have 3 fire buttons even though Pac needs none. And we don't have a Ms. Pac Man board, let alone machine, let alone space for one.
First order of course was dedicate one of the fire buttons for Credit, because Free Play on Pac sux as there's no more attract mode. People run around looking for a Pac Man machine and can't find it as it's in a universal cab and the screen only says PRESS 1 OR 2 PLAYER BUTTON TO START.
So far so boring.
However when Classic Arcade Repairs unearthed a Ms. Pac Man bootleg that runs on unmodified Pac Man bootleg hardware, I was getting an idea.
How about having both games in the same cabinet and have them switchable?
So I went and did that.
The first naive approach was kinda crappy. I put a light in the credit button only. The game would reset if you push any of the game select buttons.
People wouldn't understand how it worked. They pressed the Pac Man button even Pac Man was already running, after running through the reset routine, they would just push the Pac Man button again... and again... and then go away. Even though there's a brightly lit Credit button right next to it.
(btw. we also have to tell everyone that car racing games have a gas pedal. They push the start button and wonder why their car doesn't move. And after looking around for a minute they walk away if you don't tell them there's a gas pedal. Like how do you make your car move in real life?)
So the second approach was to only reset the game when it changes, and also reflect the game selection through lights. I send the output of the first flipflop as data into the second flipflop and then use a slowish signal like VBlank as Clock input, this way if the game changes, there is a distinct time period where there's a difference that can be detected to fire a reset signal only when needed.
People still push the Pac Man button thrice. But since nothing happens, they look again and then press the credit button.
And now I find that this forum won't let me upload plain old .bmp files (bitmap). The schematics are hand-painted with good old MS Paint on Windows 3.11 on a 386.
I forgot the base resistors, they're around 10k. Any NPN that can at least switch 200mA would do the job.
(and ROM A14 is for the PRG ROM. On the CHR ROM, it's A12)
Unfortunately, as opposed to many other old arcade games (eg. Konami Scramble), there are no(t enough) unused gates on the PCB. Scramble had enough unused gates and flipflops to put the entire Big ROM Hack and the game select flipflop logic on the board without having to add a single IC (the Amidar at the museum can be switched to Scramble and back)
And while I'm at it, why not make the start buttons light up when there's credits on it?
To do that, I checked if the strings for 1 PLAYER BUTTON ONLY and 1 OR 2 PLAYER BUTTON are at the same address in ROM on both Pac Man and Ms. Pac man, and they are.
So I deduced the logic terms to check if any of these strings is being read by the CPU and trip a flipflop to light the button.
Since I've wired up the machine to take one big ROM instead of 8 small ones, there's 7 empty ROM sockets. The way A12 is used for chip select means using the outermost socket, the furthest away from the CPU, it's Chip Select signal saves us some address lines we don't need to check anymore.
/ means this signal is available in Low Active or has already been inverted
! means NOT (this signal needs to be inverted)
& means AND
| means OR
Common Term = !/CS6 & /A11 & A10 & A9 & A8 & A7 &!A6 & A5
Trigger Player 1: CT & !A4 &!A3
Trigger Player 2: Trigger Player 1 | CT & A4 & (A3 | A2)
(A1 and A0 are unused - the strings are longer than 4 bytes)
Clear: !(/Start 1 1 & /Start 2 & /Reset)
This way the buttons will extinguish if the game is changed or any start button is pressed. After Game Over, if there's still credits on, the start buttons will relight.
What a mess of wires. Some is hard to follow. I painted the signals that I invert on board in pink and since there's too many wires around already, I didn't even paint in the jumpers (eg. LS04 pin 4 goes to LS11 pin 3)
The diodes are standard small signal diodes (eg. 1N414
I used a 74LS73 as a flipflop because I have once bought way too many of these and I'm short on 74LS74. You could also just use a 74LS00 wired up as an SR flipflop.
Ugh - I just see that I didn't label the bulbs which is which. But I'm pretty sure I wired the player 1 start to the #1 flipflop in the package and player 2 to the #2 in the package so the left bulb is start 1 and the right bulb is start 2.
Btw. if you use LEDs, you can probably skip the transistors entirely.
Here's the thumbnail to the Youtube video I made. The bright ceiling lights make the buttons hard to see if they're lit, but during business hours the lights are off anyways so it's easy to see the lit buttons.
Sure, this project gives a lot of insight on how my brain looks from the inside (big poorly documented mess of wires, look at it weird and it will short out and crash the system, plus smart people who understand schematics will point out there isn't any real intelligence in that circuit, thus a perfect analogy to my brain), and it will not be useful to most of you, but maybe someone else has a universal cab with lit buttons and thinks it's a neat idea to light the buttons depending on the state of the machine.
On other games, you must find the address where the strings are stored in. Also it helps that Pac Man doesn't seem to perform a ROM check on powerup, otherwise it will read the strings and trigger the lights to come on every reset, so this method can't be used on any game. Plus of course there's a lot of games that don't store the strings in ASCII.
Btw. my Youtube channel is senilyDeluxe
If your Pac Man machine has buttons that can be lit, you can have them controllable, so if there's a credit on, the 1 Player Start button will light up, more than one credit, both Start buttons light. Also, if you want to switch between Pac Man and Ms. Pac Man, there's circuitry for that as well. You can stop reading here if this is not for you.
At the Pinball and Arcade Museum Seligenstadt, there is no dedicated Pac Man or Ms. Pac Man machine. All we have are bootleg PCBs and universal cabinets made by TV Ideal.
They use gambling machine buttons which can be lit.
And they have 3 fire buttons even though Pac needs none. And we don't have a Ms. Pac Man board, let alone machine, let alone space for one.
First order of course was dedicate one of the fire buttons for Credit, because Free Play on Pac sux as there's no more attract mode. People run around looking for a Pac Man machine and can't find it as it's in a universal cab and the screen only says PRESS 1 OR 2 PLAYER BUTTON TO START.
So far so boring.
However when Classic Arcade Repairs unearthed a Ms. Pac Man bootleg that runs on unmodified Pac Man bootleg hardware, I was getting an idea.
How about having both games in the same cabinet and have them switchable?
So I went and did that.
The first naive approach was kinda crappy. I put a light in the credit button only. The game would reset if you push any of the game select buttons.
People wouldn't understand how it worked. They pressed the Pac Man button even Pac Man was already running, after running through the reset routine, they would just push the Pac Man button again... and again... and then go away. Even though there's a brightly lit Credit button right next to it.
(btw. we also have to tell everyone that car racing games have a gas pedal. They push the start button and wonder why their car doesn't move. And after looking around for a minute they walk away if you don't tell them there's a gas pedal. Like how do you make your car move in real life?)
So the second approach was to only reset the game when it changes, and also reflect the game selection through lights. I send the output of the first flipflop as data into the second flipflop and then use a slowish signal like VBlank as Clock input, this way if the game changes, there is a distinct time period where there's a difference that can be detected to fire a reset signal only when needed.
People still push the Pac Man button thrice. But since nothing happens, they look again and then press the credit button.
And now I find that this forum won't let me upload plain old .bmp files (bitmap). The schematics are hand-painted with good old MS Paint on Windows 3.11 on a 386.
I forgot the base resistors, they're around 10k. Any NPN that can at least switch 200mA would do the job.
(and ROM A14 is for the PRG ROM. On the CHR ROM, it's A12)
Unfortunately, as opposed to many other old arcade games (eg. Konami Scramble), there are no(t enough) unused gates on the PCB. Scramble had enough unused gates and flipflops to put the entire Big ROM Hack and the game select flipflop logic on the board without having to add a single IC (the Amidar at the museum can be switched to Scramble and back)
And while I'm at it, why not make the start buttons light up when there's credits on it?
To do that, I checked if the strings for 1 PLAYER BUTTON ONLY and 1 OR 2 PLAYER BUTTON are at the same address in ROM on both Pac Man and Ms. Pac man, and they are.
So I deduced the logic terms to check if any of these strings is being read by the CPU and trip a flipflop to light the button.
Since I've wired up the machine to take one big ROM instead of 8 small ones, there's 7 empty ROM sockets. The way A12 is used for chip select means using the outermost socket, the furthest away from the CPU, it's Chip Select signal saves us some address lines we don't need to check anymore.
/ means this signal is available in Low Active or has already been inverted
! means NOT (this signal needs to be inverted)
& means AND
| means OR
Common Term = !/CS6 & /A11 & A10 & A9 & A8 & A7 &!A6 & A5
Trigger Player 1: CT & !A4 &!A3
Trigger Player 2: Trigger Player 1 | CT & A4 & (A3 | A2)
(A1 and A0 are unused - the strings are longer than 4 bytes)
Clear: !(/Start 1 1 & /Start 2 & /Reset)
This way the buttons will extinguish if the game is changed or any start button is pressed. After Game Over, if there's still credits on, the start buttons will relight.
What a mess of wires. Some is hard to follow. I painted the signals that I invert on board in pink and since there's too many wires around already, I didn't even paint in the jumpers (eg. LS04 pin 4 goes to LS11 pin 3)
The diodes are standard small signal diodes (eg. 1N414

I used a 74LS73 as a flipflop because I have once bought way too many of these and I'm short on 74LS74. You could also just use a 74LS00 wired up as an SR flipflop.
Ugh - I just see that I didn't label the bulbs which is which. But I'm pretty sure I wired the player 1 start to the #1 flipflop in the package and player 2 to the #2 in the package so the left bulb is start 1 and the right bulb is start 2.
Btw. if you use LEDs, you can probably skip the transistors entirely.
Here's the thumbnail to the Youtube video I made. The bright ceiling lights make the buttons hard to see if they're lit, but during business hours the lights are off anyways so it's easy to see the lit buttons.
Sure, this project gives a lot of insight on how my brain looks from the inside (big poorly documented mess of wires, look at it weird and it will short out and crash the system, plus smart people who understand schematics will point out there isn't any real intelligence in that circuit, thus a perfect analogy to my brain), and it will not be useful to most of you, but maybe someone else has a universal cab with lit buttons and thinks it's a neat idea to light the buttons depending on the state of the machine.
On other games, you must find the address where the strings are stored in. Also it helps that Pac Man doesn't seem to perform a ROM check on powerup, otherwise it will read the strings and trigger the lights to come on every reset, so this method can't be used on any game. Plus of course there's a lot of games that don't store the strings in ASCII.
Btw. my Youtube channel is senilyDeluxe