In MameUI you have always been able to configure each game individually. This is of great use if for instance you are having performance issues with games or say want to run certain games on the Windows desktop and certain in full screen. The command line version of MAME never had this option so you had to change the command line for each game you wanted different settings on.
Now with the latest versions of MAME you can have configuration files for any game or game type you want and when MAME starts it will automatically load the settings for you.
Creating The Files
The settings files are based on the mame.ini file that is created when Mame starts. The easiest way to create a new config file is to simply duplicate the original file and remove/change the stuff you don't want.
Open you Mame folder and find the mame.ini file. It'll look someting like this...
Right click on the file and select copy. Now right click on a blank area and select paste and you will see a file "copy of mame" appear. Right click over this file and select rename. In the box type the name of the game as it appears on the original rom zip file e.g. Pole Position (Atari) = polepos1.
It will keep things alot tidier if you move your new config file to the ini folder. Mame will by default look there anyway.
Double click your config file and it should open up in notepad. Below you can see the default mame.ini file.
As you can see most of the lines mimic the command line options use by MAME and you can find detailed explanantions of these commands on the Command Line Options page. The only difference is the 1 or 0 that follows the command. These mean yes (1) or no (0) on most commands but check on the setup page as they may refer to a value. The lines starting with # are comments and are ignored by Mame.
Remember no matter what changes you make you cant mess up MAME, just change the setting back or delete the config file and start again.
Types Of Config File
There are four types of config types. You have one for vector games called vector.ini and one for specific drivers for games e.g. cps2.ini or neogeo.ini. You can also create files for specific parent rom sets that will be used by all of the clones or you can make config file for specific clones.
To find out what drivers a game uses you can add the -listxml option to your command line. e.g. mame robocop -listxml and will give you a load of text. Look through it to find the below part and the game and driver names I've highlighted.
|<mame build="0.125u8 (Jun 27 2008)" debug="no">
<game name="robocop" sourcefile="dec0.c">
<description>Robocop (World revision 4)</description>
<manufacturer>Data East Corporation</manufacturer>
Robocop is obviously the game name where as dec0 is the driver name. Adding a dec0.ini file will affect all the games in the dec0 driver. If it is a clone then it will have "clone of" in the same line.
MAME parses ini files in a specific order first mame.ini, then <driver>.ini, then <parent game>.ini and finally <clone game>.ini . Each subsequent ini file will override the previous
As an example of a config file, here is one that I have made up for the Atari version of Pole Position. The reason behind it was that I preferred it in cockpit mode rather than upright.
#Pole Position Cockpit Mode
You could also for instance move all your Neo-Geo games to a separate folder and make a config file to change the default roms folder. The possibilities are limitless.
Once you are happy with your file save it and run Mame and it will use your new settings.