Konami 573 Console Project: initial successes!

Eli Wenig
7 min readFeb 10, 2016

A while ago, I had a bit of a strange idea. I had been reading a lot about the Konami System 573, which was a piece of arcade hardware, based on the original PlayStation, that Konami produced in the late 1990s. It plays a variety of Konami arcade games from that era that were distributed via CD-ROM and security cassette. Notable among the list of releases for the 573 is every original Dance Dance Revolution mix up to DDR Extreme. Since I recently reacquainted myself with Konami rhythm games via Beatmania IIDX, and appreciate the fact that I can exercise while I play rhythm games, I figured that a fun project might be to get my hands on a Digital System 573 (the board that runs DDR 3rd Mix and beyond) and coax it into acting as a console unit, complete with component video output and controller input for plugging in a PS2 hard or soft pad.

And what fun it was.

So, a little backstory. I’ve never worked on a project involving an arcade board, or attempted to homebrew a “SuperGun” (as these things are called), but I know someone who has, so I knew going in that this project would be doable, if involved. The high level is this: The 573 (like many arcade boards manufactured since 1985) relies on a standard connector (referred to as JAMMA, after the organization that assembled the spec) to provide such things as power (±5 and 12 VDC), controller inputs, and an interface to the coin mechanism (although I’m not interested in that part). In return, it also provides video out (RGB, sync, and ground) through the same connector. Theoretically, it also provides sound out through the JAMMA connector, but it has two standard RCA jacks on the front panel so I didn’t have to worry about splicing the cables myself — the less wiring I have to do, the better.

The JAMMA connector is the key to this entire project. To provide all these things to the board, as a cabinet normally would, I needed four major parts. One, a switching power supply to give the board the voltage it needs to power up at all. Two, a converter board to handle the RGB video from the 573 and translate it to the more TV-friendly YPbPr color space. Three, a microcontroller to handle the inputs from an external source (in this case, a PS2 controller) and outputs in the tristate logic that JAMMA boards use. I chose to use an Arduino for this since they are cheap, readily available, and can speak both PS2 (via a library) and JAMMA controller logic. Finally, I needed a JAMMA harness to actually plug all this stuff into the board.

Since the scale of this project was already proving to be a little daunting, I decided to focus my efforts first on completing a proof of concept Arduino setup to handle the input from the PS2 pad, before committing to purchase a 573 or any of the more-expensive home arcade equipment. I blocked out a free evening, sat down with an Arduino, and wired it all up to my breadboard with the business end of a PS2 connector I repurposed from a USB adapter. Using a program modified from the example bundled with the library, I eventually came up with a proof of concept wherein pressing a button on the controller would light up a corresponding LED on the breadboard (in lieu of sending a serial message, which is just not as visually interesting).

At this point, I was ready to start acquiring the rest of the parts I needed for the project. I was able to come up on a digital 573 board by posting on a Facebook marketplace group for rhythm gamers. For the power supply, video converter board, and JAMMA harness, I placed an order at Arcade Shop in Georgia. They don’t have a web store which is kind of weird (you have to call them), but I received the parts in the mail 2 days after I called, which is pretty remarkable. There was one part I wasn’t expecting, though. I had naively assumed that the power supply would receive mains voltage via a standard three-prong plug, not unlike the ATX power supply that can be found in any desktop computer. When I looked at the power supply I was using, however, there was no such connector to be found. Instead, there were three separate screw connectors for providing the mains voltage input. Not a problem for any experienced arcade tech, but for me the prospect of hand wiring wall voltage makes me trepidatious. Nonetheless, I steeled my nerves, committing to be extra careful for this step of the project so as to not fry myself.

My super detailed schematic & notes for the project.

Finally, I had all the components I needed to finish up my project. I loaded everything up into a stacking crate and headed to Noisebridge on a Saturday, stopping at the hardware store beforehand to pick up a surge protector (just in case). I spent about 4 hours wiring up the various parts, making the connectors, and testing, which was just about the least interesting part of the project, and I’ll spare you the details. After I had wired the power supply and video board into the JAMMA harness, it was time to power up and test the board. I had already seen the 573 in operation when I bought it from the seller, who had bought a whole cabinet to use for her own project, but the question of whether the video board would work for my purposes was slightly more contentious. After all, the official documentation for the board I was using says:

This board ONLY works with standard resolution arcade boardsets ( 15kHz horizontal line frequency )

it is NOT designed for medium resolution games or for VGA cards.

From reading some documentation about the 573, I was able to ascertain that it outputs video at “standard resolution” (256x224), but you can never quite be sure. Anyway, there was only one way to find out. I connected the component outputs from the video board to an LCD TV. And…

Well, this is underwhelming.

I should have known; LCDs are known to be kind of finicky with inputs, and this particular display was manufactured by Hyundai, who I had no idea was even in the TV business. Anyway, I pulled out a CRT that took composite input, like I should have done all along.

Finally seeing the video from the board.

OK! So the video converter board was doing its thing properly. Now, it was time to wire the inputs for Player 1 from the JAMMA harness into the Arduino. I planned to use pins 0–7 on the Arduino for the 8 controller inputs, but this turned out to be problematic because pins 0–1 are also used for serial communication, so no programs can be uploaded while anything is using those pins. I desoldered those connections and was able to send the signals for the Up, Down, Left, Right and Start buttons through JAMMA by sending serial signals to the Arduino. At this point, I installed a copy of DDR 3rd Mix on my board. NB: this takes about as much time as the running length of In The Aeroplane Over The Sea, which someone at Noisebridge was playing in its entirety while I waited for the damn thing to finish uploading. Another important thing to note here is that dipswitch 4 on the front panel of the board controls whether it boots from CD or flash storage, which is where 3rd Mix was installed. I say this only because I didn’t find it in any plain-language documentation, but rather in the source code of the MAME driver for the 573. Had I not spotted this, I surely would have been upset when my 573 booted right back into the installer CD after the long install process had finished.

Once 3rd Mix booted up, I started a game using the jury-rigged serial to JAMMA program I was running off of the Arduino. It worked, somewhat to my surprise. I was able to play a game of DDR, Stepmania-style, although I was only able to hit a single pad at a time because I hardcoded a 200ms delay between the button-on and button-off events. Video:

Here’s where things start to come to a standstill, unfortunately. Upon plugging the PS2 controller cable pins back into my Arduino, I was chagrined to discover that although the board picked up on the fact that there was a controller connected to it, it wasn’t able to read any of the controller inputs. Additionally, once I moved the desoldered connections from pins 0–1 to pins 12–13, the button outputs from the Arduino no longer worked at all. I suspect that I managed to fry my Arduino, and I’ve ordered a few more that should be arriving this week, so I can do more prototyping and testing.

All in all, this has been a fun project to work on, and even though I haven’t been able to finish it just yet, I’ve learned a lot so far. I’d be super interested to hear from anyone else who has undertaken a similar project!

--

--

Eli Wenig

Sysadmin living in San Jose, CA. I try to do interesting things in my spare time.