2012-09-30

M.A.M.E. Project

M.A.M.E. stands for Multiple Arcade Machine Emulator, and in short, is a software package that (given the proper "ROMs" or hardware cartridges) can play virtually every arcade game from the very first games in the mid 1970s to the more complex games of the early 2000s. The idea of the project isn't to "pirate games," but rather preserve the authenticity and technology of early arcade games. As coined by one of the early M.A.M.E. pioneers: "The ability to play the games is a nice side-effect."

My first sketch of my M.A.M.E. cabinet

It has been a dream of mine to create the ultimate arcade game machine since the inception of the M.A.M.E. project back in 1997. I immediately glommed onto the M.A.M.E. craze and even started to build a cabinet back in 2001. I got as far as a fully functioning computer with about 5000 games and a 1/8th scale mock-up of the cabinet -- but stopped working on it and eventually, dismantled the computer.

Since then, the M.A.M.E. project has become immense and is now growing rapidly. Some über-M.A.M.E. geeks try to get every possible ROM with every possible permutation and build extravagant cabinets to showcase their creations -- but it's like an addiction, once you start seeking the "ultimate collection," there's always another ROM out there.

My approach is this: Find a good collection (even if it's older), and stick to it. Once the collection is amassed, audited and polished - create a user interface that is seamless and aesthetically pleasing. Pay attention to the game-play, do not make things too fancy. Make whole experience authentic -- it needs to FEEL like you're playing an arcade game -- not some computer emulation. Lastly, make the cabinet work for as many games as possible without compromising authenticity and simplicity.

PHASE 1 - FILE COLLECTION (complete):

I have amassed a collection of ROMs, artwork, and miscellaneous files that I am happy with:

  • A LOT OF GAMES (only ones that I am allowed to play legally, of course)
  • 828 artwork overlays (older games relied on transparent overlays to provide color or visual aids that were otherwise impossible to render electronically)
  • 2,541 images of the original cabinets (each cropped w/ transparent backgrounds)
  • 3,201 images of the original flyers
  • 3,689 custom 32x32 pixel icons
  • 1,220 owners manuals (PDF)
  • 1,866 images of original cabinet marquees
  • 1,720 images of original PCBs (printed circuit boards)
  • Total hard drive space for these files: 190GBs

PHASE 2 - COMPUTER HARDWARE (nearly complete):

I'm using a modular, air-cooled computer with a 3.8GHz dual-core AMD processor / 3GBs RAM / 2 x 250GB hard drives (with external expansion) running Ubuntu LINUX 12.04. The graphics card is an Nvidia GeForce 7800GTX (I those this video card because it is a has good-ole' 480i "TV out" which will give the games the most authentic feel possible). The unit draws about 340 watts of power. Because the video card is a "modern" 3D card, I can plug this into any computer monitor or projector -- but that would compromise the "look and feel" of older arcade games, so for the final cabinet, it will be connected to a 32" JVC cathode-ray-tube (CRT) television.

PHASE 3 - USER-INTERFACE (in process):

I have done some research, and I think I am going to use some amalgamation of the MAMEWah front-end (I know -- the screenshots are HORRIBLE. Luckily, this front-end is extremely customizable, and it will look MUCH nicer when I am done with it). I have been tinkering with the idea of using some of the higher-end 3D front-ends, but I'm looking for simplicity, not flashy. I don't want to ruin the feel of playing old games by seeing crazy 3D graphics right before game-play for the exact same reason I hate seeing television commercials at the movie theatres right before the movie starts.

The motherboard I'm using is an Asus Ai-Life board (specifically: A8N32-SLI Deluxe) which has a really awesome (rare) feature: the BIOS splash-screen can be modified, and not only with a single image -- but with an animation. What this means is - when the power is first turned on and through the entire boot sequence, the screen will never display any computer-y text. In fact, I can spoof the BIOS splash screen to look like an old Zilog Z-80-based arcade cabinet boot-screen. HOW COOL IS THAT?

I will be putting just as much (if not more) effort on the authenticity of the actual in-game experience as I am in the process of creating a software "filter" that will mimic the phosphorescent burn-in on games that have static images (like the mazes on "Pac Man"). The filter will record a segment of in-game play controlled by me. I will purposely play the game in such a way that I get a good sampling of all of the graphics that would normally display during your average player's stint -- but then when the game is over, I will leave it on the idle mode for about the same length of time I played. The filter then runs that loop over again and examines what static images display the longest, and creates a "burn-in" ghost image that then becomes a transparent overlay to the game itself. This will give certain games a very realistic "worn" look, even if it does look horrible.

Basic design of the "Rolling-Pin" controller
PHASE 4 - CABINET / CONTROLLERS (still dreaming):

My vision is this: A "stand-up" cabinet with a controller that has three faces that are interchangeable by swiveling the controller around 120 degrees (like a rolling-pin). Each face will have a particular controller / button layout to cater to a particular style of game. I have given it much thought as to which three layouts would be the best compromise, and currently am sold on the following:

  • Controller 1: 2 players - each side has one 8-way joystick and eight buttons. This is the most common layout -- good for almost any game that doesn't require a specialized controller.
  • Controller 2: Single player - one center-placed analog X-Y controller with top and side trigger (like a flight-stick), one spinner controller, one roller-ball controller and four buttons. Aligned on far-right is a row of fourteen small buttons (the first being a toggle for the other 13 - this can be used for many of the Japanese card games which can use as many as 26 buttons). This set-up will satisfy most flight games as well as "Tron" and "Discs of Tron" (which are two of my favorite games) and any games that require a roller-ball (like "Crystal Castles").
  • Controller 3: A single 4-way joystick with a ball-top - like on the original "Pac Mac." Also on this controller will be a USB expansion port and possibly a harness to hold things like gun holsters for light-gun games, steering wheel, etc. The USB expansion on the controller portion will be proprietary and access only the controller interface, not the computer itself.

The computer will be locked-down and only managed by me (or anyone I authorize) -- I do not like the idea of a MAME front-end allowing for administrative access. Some features I've tossed around are: Wireless internet connectivity with a webcam on the bottom of the marquee -- so people playing can be broadcast (along with a live screen-view). See-through panels for sides to showcase the computer hardware. For the purpose of realism, I would like to add a quarter slot to the front, but that is technically illegal, so I may opt to have a "token slot." Finally, if money was no option, I would make the marquee out of a series of LCD screens and have it display the current game being played -- or just animate as per my design.

Again, the cabinet phase is all pie-in-the-sky dreaming on my part -- but the rest of it is very real - and nearly complete. I AM VERY EXCITE!!

1 comment:

  1. OK, since we're starting our projects at roughly the same time, I'll be following along. Good luck!

    ReplyDelete