This project is all done in my spare time, if you like it, please consider donating any small amount you see fit using the link below.
Like a lot of you, I've tried out all the front-ends over the years and at some point ran across Mike Billings' "CocktailFE" program. It used the MAME control keys, was configurable somewhat as to what graphics you could put where, and was clean and fast. Since it used Windows fonts, it had the bonus feature of working with the ClearType feature of Windows XP. This made it look beautiful on my setup. There has been another fork of Mike's project called "EmuWizard" which added the ability to use other emulators (somewhat) but didn't add any new display features other than using other graphic formats. This wasn't very useful as all MAME art is in PNG format anyway.
Then one day I took the family to Pizza Hut, only to find a new arcade machine called "Ultracade". Ultracade looked to me like a MAME ripoff with a nice frontend, but after later research it turns out it's legitimate, or at least it hasn't proven to be illegimate. Has anyone tried to look at the hard drive of an Ultracade PC to see what's there? Anyway, it had a beautiful interface where you chose the games by the marquee on the left (2x4 grid) and it shows the live attract mode running on the right. Newer versions of this machine don't look as good to me as it now has some crazy looking broad on the screen with the marquees in a rotating semicircle on the right and the live attract on the left.
For reference, here is a photo of the older Ultracade version. It's static, metallic, and somewhate boring. But hey, animated attract modes in the menu!
Here is a photo of the newer Ultracade version. I think things zoom in and out and the crazy broad does a little dance when you select a game. Very polished, but gawdy.
My goal was to use all the fine marquee, screenshot, and cabinet pictures available in the community to make an interface as attractive as the Ultracade is/was. The art available to us is higher quality (in resolution and color depth) than what they used.
I began modifying Mike's source a year or so ago. First I made it compile with free tools-- It compiles with MinGW now, in the exact configuration that MAME uses. Then I started modifying how it displays the games.
The default setup for Mike's CocktailFE has two modes. The first is it's default setup which is to show you a list of games in the Windows font of your choice, followed by a screenshot and a flyer on the screen in the upper left and lower left if it finds one in the directories specified. I changed this in UltraMame to show the list in a smaller area on the lower left corner, followed by the marquee across the top of the screen, and a user selectable photo in the lower right. Pressing a predesignated key will alternate between a flyer, screenshot, or cabinet photo. If you are missing the current choice, it automatically searches for the other photos for that game and displays them instead. Also, if you are missing the marquee, it will display a generic MAME one. (One is included in the binary archive for this.)
The second mode is a newer version of Mike's 'ImageBrowser' mode. It originally let you select the game by whatever photo was in the directory of the type you had specified, but I have expanded this. In my version, you select the game by the marquees on the left (if it's missing, the description at the bottom still lists the game) and a cabinet photo and screenshot on the right.
New features since Mike's version:
* Nearly complete rewrite of the interface elements, rom detection, graphic searching/loading.
* UltraMame now plays AVIs of attract modes (or anything you want) in the ImageBrowser mode.
* Random select. Press a predesignated button and you get a random game choice. (I need this to choose a game, personally)
* Change sort order. Press a predesignated button and you can sort the games by year of release (it's fun to scroll back to 1975 and play through history), manufacturer (so you could play all the Namco games in order), and of course by title. It subsorts each of these also, so if you're in 'year' mode it also sorts by manufacturer, then title, etc.
* I had to rewrite the file search algorithms as they did't work with either MinGW or Windows XP, not sure which.
* I added more sound effects. You can make sounds play when the selection is moved now, as well as a couple others I forgot.
New features in 1.8 (10/3/2006)
* Now automatically generates it's own game information file. If you update MAME, you must delete the "listinfo.dat" file so it can be regenerated. This requires a recent version of XML2INFO (see download link below)
* It will now play MP3 files in the background. I use the "Arcade Ambience" files you can find around on the net to add a nice effect. You can modify the INI file to turn this off (or not) when a game is selected. The default is to silence it.
* The AVI feature is in and working. It requires VFW codecs, which are gettting long in the tooth at this point. I may add DirectShow filter ability to it at some point, but I don't use this feature so it's way down the list. :)
* Fix the rotation routines. (Sorry Mike!) I know this was originally designed for Mike's cocktail MAME machine, but I just need to sit down and fix the screen placement math for the other rotations.
* The new control keys (random, sort, change photo, and scroll +/- 100) aren't remappable in the .ini file. I will fix this soon.
* There are probably bugs in the onscreen menu if you enable that feature in the INI. I haven't troubleshot this feature much because I don't use it in my cabinet. My children seem to screw up the frontend good when it's enabled!
The configuration sticks to Mike's original design of simplicity. Unzip the binary distribution into your MAME directory and go. You can change the dir entries in 'ultramame.ini' to point to the directories your photos are in if you don't use the MAME defaults. It will work with any version of MAME and automatically (and quickly) configures itself every time it is run. It works in any color depth or resolution, adopting whatever your Windows desktop default is. To take advantage of the high quality art available, I recommend 1024x768 in at least 16-bit color. Sounds can be removed by deleting the files, or rename any .wav file you want to play instead (you may want to stay away from long sounds for 'select.wav'). Also, you must have all your art (marquees, titles, screenshots, cabinets) unzipped and in separate PNG files in the directories, as UltraMame cannot deal with those monolithic zip files.
Here are the default controls:
Joystick Up/Down: Move up or down one game.
Joystick Left/Right: Move up or down one 'page'
MAME Button 1: Show DAT file entry (if enabled). Press again to exit.
MAME Button 2: Choose random game. It is intelligent and seeded properly.
MAME Button 3: Scroll up 100 games.
MAME Button 4: Change default photo choice (in ListView mode only, no need in ImageBrowser)
MAME Button 5: Change sort order. Alternates between title, date, manufacturer.
MAME Button 6: Scroll down 100 games.
Here is where you get all the great artwork and data to use. without these guys, UltraMame wouldn't do much!
This started it all for UltraMame!
This has title, ingame, and select screenshots.
Invaluable source of game info and history.
In case you want development notes in the frontend.
UltraMame is based on his code, with permission.