- The following Crazy Otto project is a fan creation. Neither the cabinets nor ROM are for sale or distribution.
- To press and publishers: All images on this page after the "History of Crazy Otto" article depict my project and do not represent the original Crazy Otto. Images downloaded from this page may be used for non-profit personal purposes only. Any usage must include an attribution to Brendon Parker and a link to this webpage. For any other use please contact firstname.lastname@example.org.
Brief History of Crazy Otto
General Computer Corporation (known as GenComp or GCC) was a small corporation formed by students of the Massachusetts Institute of Technology in the late 1970s. GCC designed specialized 'enhancement kits' which added onto existing arcade hardware, overriding the game's programming to add new behavior or features. The kits were marketed to arcade owners with the promise of making their existing machines more difficult for players to master, and in turn, improving their profit.
Atari battled GCC in an unprecedented court case over GCC's enhancement kit to Missile Command, claiming copyright infringement and trademark dilution. In the settlement, GCC was ordered to obtain permission from the manufacturer of each game they design an enhancement kit for, before marketing the kit.
Pac-Man, the leading game in the arcade scene, was the perfect candidate for GCC to "enhance" next. The result was Crazy Otto, which broke Pac-Man's repetition by introducing new mazes, new characters, difficult monster AI, and various other mechanics. As a consequence of the Atari settlement, GCC needed to obtain permission before releasing the kit. This time, from Bally Midway, the company in charge of Pac-Man in the US.
Unbeknownst to GCC Bally Midway had grown impatient waiting on Namco in Japan to finish the official Pac-Man sequel (which would be 1982's Super Pac-Man). Astounded by Crazy Otto's gameplay, Midway execs realized a sequel had fallen right into their lap. Rather than permit GCC to release the Crazy Otto kit, the company offered to purchase Crazy Otto to release in an official format. No longer limited by trademark, the generic-by-design game and characters could be reworked into official ones. Midway contracted GCC to finalize the game for release, consulting Namco every step of the way. After an intense development, the game transformed into Ms. Pac-Man, and released to arcades in 1982.
Only a few Crazy Otto circuit boards were built for development and demonstration, and a dedicated Crazy Otto cabinet was never produced. The original Crazy Otto programming is kept private due to a complex royalty deal between Namco, GCC, and now AtGames (it's a long story). These factors tossed poor Otto into oblivion, and served the inspiration of my project.
Crazy Otto pictured in TIME magazine, mislabeled Pac-Man, 1981
Early engineering circuit for the Crazy Otto kit. Source: Steve Golson
Reviving Crazy Otto
To shed light on this elusive game, I designed and built a functioning Crazy Otto machine! Over the course of seven years, this involved reverse-engineering Ms. Pac-Man Z80 code to turn it back into Crazy Otto, designing unique cabinet artwork in the iconic Ms. Pac-Man style, and restoring original Pac-Man cabinets.
The machine represents an alternate timeline: "What if Crazy Otto was released and Ms. Pac-Man never came to be?"
This project made news in the arcade community, the Tracy Press, and Motherboard Magazine! At California Extreme 2015, I presented an early version of my Crazy Otto project alongside Steve Golson, an original GCC developer.
Read on for a detailed recount of my process!
Completed Crazy Otto project
The original Crazy Otto programming is unavailable to the public due to a complex royalty deal between Namco and GCC. This meant a large portion of my project involved creating a functionally identical recreation of the elusive Crazy Otto program, so I and others could experience the game.
I thrust myself into the project, at just eleven years old, with no programming experience and much to learn. Replicating Crazy Otto seemed an impossible feat with a long road ahead. I decided that the best course of action would be to reverse-engineer the widely available Ms. Pac-Man program and make the modifications needed to turn it into Crazy Otto.
Finding a Reference
Steve Golson, an original GCC developer who worked on Crazy Otto, set up an original circuit board for play at the California Extreme Arcade & Pinball Expo. The timing could not have been better: this was one of the first times the game had been available for play since its field test in 1981, and it was close to home!
I was very lucky to attend the expo and play the original Crazy Otto. I recorded extensive closeup footage of the game on my dad's cell phone. Back home I played my recordings in slow-motion to learn the game's nuances. I zoomed in and recreated the game's graphics (known as sprites) in Photoshop. I made detailed notes of the game's behavior and differences when compared to Ms. Pac-Man, which became a list of the work ahead:
Reverse-Engineering Ms. Pac-Man
Before I could make changes, I had to reverse-engineer the Ms. Pac-Man program. I had some basic tools at-the-ready: a free hexadecimal code editor and an arcade program emulator called MAME.
Early on I had the idea to reverse-engineering the program by nullifying individual commands and documenting how the game reacts. I call this the 'zero-zero method', as I replaced individual hex bytes of the Ms. Pac-Man program with "00" (blank code) to nullify it. Missing code, the game's behavior changes in various and erratic ways. By documenting where and how the game changed, I gained insight into many of the program's inner workings.
I also found online an annotated copy of the Ms. Pac-Man Z80 source code: an effort between several experieced programmers to document how it functions. Though incomplete, it proved an invaluable reference on programming locations and broke down how some of the routines work.
Demaking into Crazy Otto
With a better understanding of the code, I could start turning Ms. Pac-Man back into Crazy Otto. I'll detail a few notable examples of changes I made along the way.
Example 1: Monster eyes returning to the pen
After eating a ghost-monster, the Ms. Pac-Man game shows its eyes scuttling back to the center pen. Additionally, it interrupts the energizer sound and plays a new sound effect. Both of these features are notably absent in Crazy Otto; the monsters simply reappear in the pen and the energizer sound does not stop.
To replicate this, I searched the annotated source code for sections of code related to the procedure after Ms. Pac chomps a blue ghost-monster. From there I used my 'zero-zero' method to better outline the functions. Eventually I found the variable that controls the color pallet for the eaten monster eyes and set it to black (coincidentally also "00"). I also found the sound queue for the monster eyes sound, and was also able to simply disable it by replacing it with "00".
Example 2: The music
Crazy Otto and Ms. Pac-Man use the same music notation, but with differences in tone quality and timbre.
The music was a considerable challenge to modify, as no documentation existed on how Pac-Man's audio programming works. In each song's data, I recognized a string of code repeated:
F1 [a] F2 [b] F3 [c] F4 [d]
The value in each of those places altered different elements of the instrument. After experimenting, I discovered what each variable controls:
• [a] instrument
• [b] octave/register
• [c] 'quality' of note
• [d] release
Finding the correct values to replace them with was an entirely different challenge!
Fun fact: In trying to modify the attract-mode sequence I temporarily broke the code that starts a two-player game. The game would do strange things. To compensate, I put a small pebble inside the two-player start button so no one could press it!
Swapping Ms. Pac-Man's graphics for those of Crazy Otto was straight forward, thanks to a tool developed for DOS in 1997 called Arcade Graphics Editor. This program decodes many arcade games' sprite data and presents it in an editable format. I ran this program on modern hardware using an MS-DOS emulator called DosBox.
In contrast, the system that animates Ms. Pac onscreen works vastly differently to Crazy Otto's. This posed largest hindrance in my project and took much more than a graphics swap.
Ms. Pac is designed as a two-dimensional character, and 'glides' around the maze. Her animation system uses three frames of animation per direction in an ABCB rotation. Because Ms. Pac only rotates to change direction, many sprites were shared between directions by simply rotating or mirroring them in software.
Otto walks around the maze in a pseudo-3D fashion. This requires four unique animation frames in each direction (up, down, and sideways). Otto uses twelve total frames compared to Ms. Pac-Man's eight. To make things worse, Otto animates at half speed when walking up and down, to make the walking cycle look natural.
This meant Ms. Pac-Man's complex animation algorithm had to be entirely reworked, and the graphics data had to be rearranged to accommodate Crazy Otto's twelve unique frames of animation. I could move around the graphics just fine, but I needed help with the animation table. I reached out to the experienced assembly programmer Vernon Brooks who patched it like magic. The project would not have been possible without his help.
Me playing the original Crazy Otto
My replica program in January 2013. Graphical and textual changes were mostly complete, but function was still inaccurate.
Ms. Pac-Man's animation system.
Crazy Otto's animation system.
An experimental ROM I created: I numbered/marked Ms. Pac's sprites to help document the animation system.
The near-final version of my replica program.
I started working on a Crazy Otto cabinet when I was just eleven years old. My goal was already locked in mind: to build a plausible-looking Crazy Otto cabinet that mimicked the machines of the era. I ended up building three distinct versions of the Crazy Otto cabinet, each time improving on the last.
The first of the three cabinets was finished when I was twelve years old. It was built into an original Pac-Man cabaret cabinet, which I painted blue and applied my custom artwork onto.
Taking a step back, I felt that I missed my mark; it didn't feel authentic to Midway's cabinets of the time. I liked the blue paint, but Midway never would have done that! The game didn't play properly yet, either.
Back to the drawing board.
Completed first-generation Crazy Otto
My earliest Crazy Otto art had a simple style: I quite literally translated the game sprites into art, from pixels to vectors. I started with a marquee and designed the rest of the set to match.
I even made a set of stencils for the front art which I never used—maybe I'll do something cool with them someday!
For the second iteration of the project, I chose to hone in on the Ms. Pac-Man cabinet's art style. I designed new artwork, applied authentic faux wood vinyl over the blue paint, burned the current ROM onto the board, and installed a gorgeous new monitor. This was the first version of the project that was fully playable.
At California Extreme I unveiled the project and gave a keynote alongside original Crazy Otto developer Steve Golson!
Completed second-generation Crazy Otto
For the second iteration I wanted to flesh out the character designs—make them more than emotionless shapes. I imagined Otto as a classy showman with a top hat, cane, and bow tie.
The original Ms. Pac-Man artwork was designed by Bally Midway resident artist Tony Rammuni. To make the cabinet more historically plausible, I chose to mimic his style as close as I could. Before even working on the first cabinet, I'd been drawing Otto and the monsters trying to clone his style.
I scanned my drawings into Adobe Illustrator and vectorized them into artwork. I borrowed many elements from the Ms. Pac-Man art, including the striping, color scheme, and monster's faces.
I gave the art minor revisions a couple years later, with the help of sketches made by my talented friend DonovanArt.
I liked this version better, but I felt I'd tried to too hard make the cabinet look like Ms. Pac-Man, to a point it felt unoriginal.
Build Gallery (First and Second)
After four years, I grew sick of the last cabinet. With the program now a perfect replica of the original, it was time to house it in a new cabinet, worthy of the game. 🙂
My goal remained the same: Build a release-worthy Crazy Otto cabinet that looks like it could have been released in 1982. Over two months I designed the new Crazy Otto artwork and restored a dilapidated Pac-Man cabinet for it (this time, a full-size!).
With this cabinet, I feel I've finally reached my goal. After seven long years the Crazy Otto project can finally rest. 🙂
The final version of my replica program (video shows older cabinet)
Completed Final Crazy Otto
While conceptualizing the art, I noticed Crazy Otto (and by consequence Ms. Pac-Man) makes several references to theatre and film. The game contains three lighthearted cutscenes, called 'acts', each introduced by a pixelated clapperboard snapping shut. Additionally, one of the attract-mode variations flashes an array of theater-like marquee lights, introducing each character by name as they run onscreen like movie stars! These factors inspired me to design the art with a whimsical showbiz theme. In fact, I designed much of the art while I was backstage at theatre rehearsal!
For character design I teamed up with my longtime friend, talented artist Melissa Burke. It was a fun back and forth process: I started by sketching the art layouts on paper, with scribbles of what I imagined the characters looking like. Melissa refined my scribbles into clean drawings, which I then could then vector into artwork.
The iconic Ms. Pac-Man cabinet was designed by Bally Midway resident artist Tony Rammuni. For Crazy Otto I worked hard to mimic his style, and adhered to many of the constraints the artists of the day were limited by. This included hand-stroking each line, limiting the color palette to four colors, and making each character depiction unique (no copy-pasting across the machine). As a nod to Ms. Pac-Man's history, I derived the striping in the sideart from one of Rammuni's early concept drawings for the Ms. Pac-Man cabinet.
Early Ms. Pac-Man development sketch by Tony Rammuni, late 1981
Build Gallery (Final)
Very Special Thanks To
- Rich of ThisOldGame - printed all art for 2nd and 3rd gen cabinets
- Scott Lawrence et al - annotated Ms. Pac-Man source code
- Vernon Brooks - patched the complex animation table
- Melissa Burke - character design assistance for 3rd gen art
- DonovanArt - redrew/improved my 2nd gen characters for art revision
- 'Mike Washere' - modified the PCB to use a single 27C256 on Row 6
- Jeff Chambliss - printed all art for 1st gen cabinet
- My neighbor Steve Haney - repaired water-damaged base of 2013 cabinet