a free M.A.M.E. frontend

DOWNLOAD HERE (win32 executable and source code - 2.5mb) - 2012-12-19

2012-12-19 Update
Updated the file with the latest source code and latest executable. Fixed some issues with the source code so that it will actually build without errors. To build it, please use a Windows XP machine with Visual Studio 6 - I know, it's ancient and extremely outdated but I haven't updated the code to work with DirectX 9 yet so you need a build machine and tools that will work with the DirectX 8.1 SDK.

MAME 0.147
To get MamePlayer to work with MAME V0.147 (and later) press F5 after MamePlayer loads to bring up the options dialog then make sure the "force digital" option for joysticks is turned off.

2012-12-05 Update
This version does not behave well in Windows 7. It is recommended to use Windows XP if you plan on using this frontend for your MAME machine.

The source code is old and requires DirectX 8 SDK and Visual Studio 6 or 2005 to build it.

MamePlayer is a free M.A.M.E. graphical frontend. Once executed it will parse the xml file generated by mame.exe and search the "mame/roms" folder for available roms. It will also search the "mameplayer/screens" folder for matching screenshot files (.png or .bmp). Once the initial search is complete it displays a list of games available to play and allows you to scroll through the list using the keyboard, joystick or arcade controller of your M.A.M.E. machine.

Here's how the frontend controls are mapped:

UP_ARROW or 8 = Scroll up
DOWN_ARROW or 2 = Scroll down
LEFT_ARROW or 4 = Move to previous alphabetical letter
RIGHT_ARROW or 6 = Move to next alphabetical letter
ENTER or CTRL = Launch game

In addition to the keyboard controls above you can also use the mouse/trackball or joystick to scroll up and down the list.

A screen saver is built into the frontend to prevent any kind of monitor burn-in. The screen saver activates after 5 minutes of inactivity only when you are within the frontend. If you launch a game the screen saver does not activate. The screen saver merely randomly picks a screenshot image and displays it every minute.


Download and install the following files:
mame0115b.exe (or later) (for Mame32)

1. Install mame0115b.exe then unzip MamePlayer to the same folder.
2. Unzip the screenshots ( to the "mame/MamePlayer/screens" folder.
3. Put your roms in the "mame/roms" folder.
3. Type "mame -listxml >list.xml" to generate the xml file.
4. Run MamePlayer.exe


Filters are used to ignore (not display) certain games in the list. With 6,000+ roms to choose from you most likely don't want them all in the list. Also, some roms are adult-oriented and you probably don't want them to be seen or played by other members of your family. Adding a game to a filter will cause that game to not be displayed. My technique to create a filter list is simply to filter all games by pressing LSHIFT-F then on a game-by-game basis unfilter the game that I want in my list by pressing SHIFT-D.

Here's a list of the filter keys:

LSHIFT-F = Filter all games
LSHIFT-A = Add the selected game to the filter list
LSHIFT-D = Remove the filter for the selected game
LSHIFT-U = Unfilter all games
X = Toggle filtered games on/off

When filtered games are visible they will show up in red text.

Joystick control from within the frontend (Xbox 360 controller):

LEFT-SHOULDER + RED = Add the selected game to the filter list
LEFT-SHOULDER + BLUE = Remove the filter for the selected game
RIGHT-SHOULDER = Toggle filtered games on/off


There are plenty of M.A.M.E. frontends to choose from and most are more configurable than MamePlayer. In fact, MamePlayer is probably the least configurable frontend out there. I've tried several graphical frontends but they just seemed too complicated to setup the way I wanted so I decided to just write my own.

Here's what it will do:

1) Shows a list of the games with a screenshot for the currently selected game.
2) Allows you to quickly navigate the list with an arcade controller or joystick.
3) Allows you to use it without the need for a keyboard and mouse.
4) Allows you to add your own games to the list using a Lua script file.

Here's what it won't do:

1) The layout is not configurable - you get what you get.
2) It won't do everything. It's designed to do one thing, list games and launch them.
3) The frontend controls are not configurable.
4) The file paths are not configurable.

December 5, 2012