Author Home
Home
Download
Screenshots
Background Pics
Menu Pics
Feedback
|

MAMEMenu
A Frontend for M.A.M.E.
by Ed Salisbury / website
Latest Version: 2.01 -- released 08/05/2001
Jun 11, 2003:
Well, I haven't had the time to touch MM in a while, but I occasionally get requests to do this that or the other to MM, mostly to restart development on it. I thought about it today, and since this was a labor of love for me originally, I had no problems doing it -- if there would be some monetary motivation, I would probably work on it. Since shareware is pretty much a no-no in the emu community, I figured I'd just put up a PayPal Donate link and see what happens. If you like MAMEMenu and you want to support future development, feel free to use the link :)
Jan 20, 2003:
Sorry the site has been down for a while, I moved to a new host and didn't put up much. The good news is, I'm thinking about actually doing some work on this again -- I know, you'll believe it when you see it :) Thanks to all the people that have used (and liked) MM for all this time!
Oct 26, 2001:
I am picking up the project again, and will be doing (yet another) rewrite, this time with cleaner code, and more features, including vertical mode. I have been getting a lot of requests for this feature, so I'm going to see what I can do :) Your opinions are important to me, so feel free to send me feedback with any features you'd like to see, or ideas, etc.. I can't promise I'll respond right away, but I *WILL* respond :) I'll post on this page with progress, so check back in a little while. - Ed
Introduction:
I wrote MAMEMenu because I built a cabinet for running MAME games, and none of the frontends that I could find were appropriate for the box. I wanted something simple but yet functional, and I didn't want to be windows-driven, because the box doesn't have a mouse. I wrote the program mainly for my uses, but I thought that there might be a couple of people out there in the emulation community that might like it as well, so I decided to release it to the public. If you like the program and would like to see improvements, or just to say hi, drop me a line at mamemenu@gmail.com.
Features:
- Automatic tree-type menu system
- Automatic screenshot support
- Random game feature
- Party-proof - Nothing can be changed from the menu itself
- Generic-looking -- No bylines to detract from the general look
- Easily customizable menu entries
- Configurable colors and background pictures
- Supports multiple resolutions, from 640x480 to 1600x1200
- Supports True-Type fonts
- Fully-configurable keyboard input
- Automatic scrolling of game titles that are too wide for the menu
- Source Code is available
- Other emus/games are now supported
- Game limit of 10000 (was 3000) *new*
Installation:
- Download the archive
- Unzip the contents of mm_201.zip to your MAME directory.
- Run mamemenu.exe to create the config file (mamemenu.ini).
- Edit mamemenu.ini, and make sure that the mame= line points to the mame executable you're using.
- Run mamemenu.exe -newroms, which will build mm_games.ini. (where all of the game entries are stored)
- Edit mame.cfg, and make sure that your soundcard is set to something other than -1 (so that it doesn't prompt you when you run MAME) You will most likely set this to 1.
- Run mamemenu.exe.
Differences from 1.1 to 2.0:
Since 2.0 is a complete rewrite, there have been many changes, some of which will affect current MAMEMenu users:
- mamemenu.cfg has been renamed to mm_games.ini - file format is still the same
- A lot more things have been added to mamemenu.cfg, and it is automatically created
- Menu graphic filenames have been changed to have "cat_" as a prefix (to distinguish it from games)
- Keyboard entry is a bit different now, due to the way the scrolling titles work.
Configuration:
There are two configuration files, mamemenu.ini and mm_games.ini. The first one (mamemenu.ini) is where global configuration variables are set, such as the MAME executable name, default command-line options, fonts, key configs, colors and background pictures. The second file (mm_games.ini) is where all of the game entries are stored, with the menus that the games belong in.
MAMEMENU.INI:
| Config line | Description |
| # comment line | Comment line, doesn't get interpreted by MAMEMenu |
| [mame] |
| mame = mame.exe | Specifies the filename of the MAME executable |
| options = [options] | Specifies any default options you want for all games in the menu |
| [config] |
| resolution = 3 | Specifies the resolution for MAMEMenu to run in -- 1=640x480, 2=800x600, 3=1024x768, 4=1280x1024, and 5=1600x1200. The default is 1024x768 (3). |
| bkg = blumarbl.png | background picture, found in the bkg directory. Must be 1024x768. A template is included for making your own background pics (bkg/template.png) Also, you can download some ready-made background pics on the Background Pics page. |
| gamecolor = 0,0,255 | 24-bit RGB color code for the games on the menu (default is blue) |
| selectcolor = 255,0,0 | 24-bit RGB color code for the selected item on the menu (default is red) |
| menucolor = 130,58,194 | 24-bit RGB color code for the menus (default is purple) |
| uppercase_title = 1 | Specifies if you want the game titles to be uppercased or not (default is 1) |
| uppercase_menu = 1 | Specifies if you want the menu titles to be uppercased or not (default is 1) |
| font = mamemenu.ttf | Specifies the True-type font to use for the menu |
| font_smoothing = 2 | Font smoothing can make fonts look better, especially in higher resolutions. The range is 0=no smoothing, 1=smoothing level #1, 2=smoothing level #2 |
| fontsize = 15 | Specifies the font size that will be used in MAMEMenu |
| random = 1 | Turns the random game feature off or on |
| randomstring = RANDOM | Specifies the string to use for the random game title |
| backstring = BACK | Specifies the string to display when you want to go back from a menu |
| loadingstring = LOADING... | Specifies the string that is to be displayed when loading a game (make sure this isn't too long, or it may cause unexpected results) |
| [control] |
| up = UP | The key(s) to be used for the up direction |
| down = DOWN | The key(s) to be used for the down direction |
| pageup = PGUP | The key(s) to be used to go up a page in the menu |
| pagedown = PGDN | The key(s) to be used to go down a page in the menu |
| select = SPACE | The key(s) to be used to select a game or menu |
| top = LEFT | The key(s) to be used to go to the top of the list |
| bottom = RIGHT | The key(s) to be used to go to the bottom of the list |
| quit = ESC | The key(s) to be used to quit MAMEMenu |
| screenshot = F12 | The key(s) to be used to grab a screenshot |
| key_sensitivity = 7 | Specifies how fast you want the keyboard to be read - Use caution, as messing with this could have unexpected results! |
MM_GAMES.INI:
MM_GAMES.INI is set up like this:
Game Name|mamename|mame options|menu1,menu2, etc.
Game Name: How you want the game to appear in the list
Mame Name: What filename to pass to mame
Mame Options: What options to pass to mame (-flipy for Pac-Land, for example)
Menus work like this -- when the program runs, it looks at the entire mm_games.ini file, and builds menus based on what you put in the last column. You can have entries that are in multiple menus as well.
To add non-MAME games to the menu:
Make the options field start with a "!" character, i.e.:
Doom 2|doom2|!c:\games\doom2\doom2.exe -q|idgames
The 2nd field is still used for the screenshot, so if you want one, make sure to put it in the screenshot directory. (specified in mame.cfg, and make sure it's a .PNG file)
Other Stuff:
Adding more games:
If you add more games to the rom directory, and want to add them to MAMEMenu, simply run mamemenu.exe -newroms, which will go out and find them (and also add them to a menu called "new" so that they are easy to find). You can also edit mm_games.ini to add the games to menus or change the options for a particular game. If you don't want a game to appear, simply put a "#" in front of the line.
Screenshots:
By default, MAME does screenshots kinda funky. It names the first one you take [mamename].png, but then subsequent shots get named [mame000x].png. This kinda bites, since you want to be able to change the screenshots automatically. I have hacked MAME so that it doesn't do versioning, which fixes the problem. (No, I'm not going to send it to you!) Also, if you want to do pictures for the menus, simply put a picture in png format in the snap directory (or wherever mame.cfg points to) called cat_[menuname].png, and it will automatically load it. You can download some ready-made menu pics from the Menu Pics page.
Keyboard configuration:
Most of the keys are pretty easy to specify in the config file ('A' for the A-key, etc, but the special keys need to be specified correctly. Here is the list of keys and how to specify them:
| Key | String to use | Key | String to use |
| A-Z | A-Z | - (by 0 key) | MINUS |
| 0-9 | 0-9 | = (by minus) | EQUALS |
| F1-F12 | F1-F12 | (backspace) | BACKSPACE |
| NumPad Keys 0-9 | 0_PAD - 9_PAD | (tab) | TAB |
| { | OPENBRACE | } | CLOSEBRACE |
| (enter) | ENTER | : | COLON |
| ' | QUOTE | \ | BACKSLASH |
| , | COMMA | / | SLASH |
| Insert | INSERT | Delete | DEL |
| Home | HOME | End | END |
| Page Up | PGUP | Page Down | PGDN |
| Left Arrow | LEFT | Right Arrow | RIGHT |
| Up Arrow | UP | Down Arrow | DOWN |
| / (on numpad) | SLASH_PAD | * (on numpad) | ASTERISK |
| - (on numpad) | MINUS_PAD | + (on numpad) | PLUS_PAD |
| . or Del (on numpad) | DEL_PAD | Enter (on numpad) | ENTER_PAD |
| PrintScreen | PRTSCR | Pause | PAUSE |
| LeftShift | LSHIFT | RightShift | RSHIFT |
| LeftControl | LCONTROL | RightControl | RCONTROL |
| Alt | ALT | WinMenu | MENU |
| LeftWin | LWIN | RightWin | RWIN |
| ScrollLock | SCRLOCK | NumLock | NUMLOCK |
| CapsLock | CAPSLOCK | ~ | TILDE |
| Esc | ESC |
Also, you can specify more than one key for a particular function in mamemenu.ini, i.e.:
select = SPACE ENTER
Source Code:
If you're interested in taking a look at the code, it can be downloaded from here. If you are interested in compiling it, here's what you need:
After all of the above has been installed correctly, you should be able to type make, and it will make the program for you.
License:
Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify and/or distribute this package, provided that:
- copyright notices are retained unchanged
- any distribution of this package, whether modified or not, includes this file
Permission is hereby also granted, without written agreement and without license or royalty fees, to distribute binary programs which depend on this package, provided that:
- If the binary program depends on a modified version of this package, you must publicly release the modified version of this package.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT WARRANTY. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THIS PACKAGE.
Acknowledgements:
- To my family (Brandy, Amelia & Daphne), Thank you for dealing with me working on the computer for such long hours, to make this program a reality
- To Chris Pugh -- For making such cool graphics!
- To Shawn Hargreaves -- For writing Allegro, the graphics library that I used for the program
- To Nicola Salmoria -- For writing MAME, which was my reason for writing this!
- To Dave @ Vintage Gaming Network -- Keep up the good work Dave!
- To Jerry Beckman and Monty McDougal -- Thanks for all of the coding help!
- To Filipe Estima -- for testing and being so nit-picky :)
- To all of the other supporters of MAMEMenu -- Thanks for helping me to make MAMEMenu a better program!
|