* Various bugfixes for issues found over the years in my home cabinet. Stress-tested for 24 hours choosing random games every 10 seconds. I removed the "screensaver" mode that runs MAME randomly for a couple minutes at a time, because sometimes MAME hangs on certain games and locks up the cabinet. You can use attract AVI's for the same effect, since UltraMame will automatically choose random games when left alone.
* Greatly expanded the search for valid artwork. If there is no art for the specific game, it looks for the clone, the parent, the parent's clone, etc. until it finds something. If still nothing, it uses "generic.png" as before.
* I believe I finally have all the bugs squashed related to parsing rom sets that have no "video" section. These sets were causing a problem because they never filled in the Raster/Vector and Horizontal/Vertical arrays, causing strange bugs when these fields were accessed.
* Added realtime filtering. You can hold the P2 start button and use up/down on the joystick to show/hide clones, and left/right to show/hide horizontal games (for vertical cabs).
* Separated the list generation from the XML converstion. This allows you to customize your listinfo.xml file with tools like "ROMLISTER" (outputting back to XML) and UltraMAME will convert this file. Unfortunately, at this time the XML files that ROMLISTER outputs are not compatible with XML2INFO.
* Fixed bug where frontend would crash on certain games when it couldn't parse the orientation properly.
* Activated player 2 button to toggle between showing clones or not.
* Fixed the ListView mode which may have been broken for a while since I don't use it.
* Fixed some more scaling/centering issues with all photos in all modes.
* Fixed it so that cabinet views are never a toggle option in quadrant IV in the ImageBrowser mode, since they are always in quadrant II already.
* Fixed quadrant II cabinet view to use 'generic.png' if no cabinet picture is found for the selected game.
* Fixed long standing problem with launching MAME under Windows XP versions SP2 or later and Windows Vista. UltraMAME is now compatible with all Windows releases, XP and Vista.
* You must now hold the SHIFT and press the exit button to quit the program. This was necessary for fixing the MAME launch issue.
* I moved the Information bar to the top instead of the bottom, where it's much easier to see on a cocktail machine.
* Updated parser to better handle games without a controller (only buttons). Some were missed before, like Track and Field.
* Integrated the game information conversion into the main program, so you no longer have to use 'makeumli.cmd'. It still requires XML2INFO to be in the same directory as UltraMAME. If you change MAME versions, you still have to delete 'listinfo.dat' so it will regenerate.
* Fixed various parsing issues with games that have no primary controller, such as 'asteroids' which has 5 buttons and no other controls. Before, this would not show up on a machine that had a joystick and 3 buttons, but now it intelligently figures that out for you.
* Fixed issue with different screen sizes. Now properly works on displays with different aspects, such as vertical and 16:9. This fixes my Pac-Man cocktail with vertical monitor. :)
* Fixed bug which crept into newer versions of MAME with regard to parsing the games list with VIPER bios sets.
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.
Download the latest version of XML2INFO here. (Required)
XML2INFO also requres the Microsoft Visal C++ Runtimes, so if you don't have that, it's a free download from Microsoft.
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.