Problem: How to map individual mame games, without having to do it one by one in every game.
Solution: CFG Magician!
Question: "Why do I care?"
Answer: You probably don't, but you should...
I have a seven button layout on my control panel:
Pretty standard, the six buttons on the right for fighting games, bottom row of four butttons for Neo Geo, and other four button games. I started this project because I had made a CTLR file for NeoGeo games, but that left me with 234 Non-NeoGeo, no-clone, four button games that didn't use the 4 button layout that I wanted. Another example would be that for trackball games, you could map buttons on either side of the trackball to be used in the games, so that either hand could be used for the trackball. I wanted a way to mass produce Mame Cfgs based on options that I could choose myself.
How to use CFG Magician:
- DownLoad a set of 'CFG Magician Data Files' that matches your version of Mame, and put them in the CFG Magician\Data Files folder. EG: CFG Magician\Data Files\005.cfg
- Browse to the list of games you want to convert. You can use one of the files provided, or you can make your own list with RomLister. The nice thing about this, is that you can create any list you want.
- Put a tick in the box, if you want to mirror player1 buttons to player2 for alternating games. If you do this, for games like Asteroids that normally only use the one player controls, both sets of controls will be mapped, so that two players can play without "swapping" in and out. If you want to convert all 2 player alternating games, select the "AlternatingGames.csv" in step 1.
- Enter the controls that you want mapped for players 1 - 4. Skip any controls that you don't want to change from the default controls. For Mouse, Joy, and Gun codes, use the right-click menu. To enter multiple inputs into a box, put a tick in the box "Enter Multiple Inputs". Use the radio buttons for Multiple Keyboards. (Keycodes for Keyboard #2 will not show up in Mame, unless the -multikeyboard switch is used.)
CFG Magician creates new cfg files with the inputs you entered, copies all existing Mame/cfg information to the newly created cfgs, and places the new cfg file into the "New Cfg" folder, over-writing any existing cfgs in the folder. For this reason, if you are working with multiple lists, do the "High Priority" list last! Once you are satisfied with the results, move the new cfgs in the CFG Magician\New CFG folder into your Mame/cfg folder. Always backup your existing cfg files!
When the program is finished, if some cfgs weren't created, CFG Magician creates a list called Roms Skipped.csv, Listing the reason a cfg was skipped.
Use the "Save" button to save current input codes. I think it is important to note, that CFG Magician does not write blank inputs to the cfg file. It is advisable that you only enter the inputs that you want changed from the default.cfg, or your ctrlr.cfg, otherwise there will be many unnecessary entries in your Mame\cfg files.
I have included two folders (Clone, No-Clone) with lists for: buttons 1-16, Trackball, Spinner, Dial, and 4 button Non-NeoGeo lists for people who have a NeoGeo entry in a ctrlr file. Examples of what could be done:
- Map a 14 button game across a two player 7 button control panel.
- Map Buttons on either side of the trackball/spinner for right/left hand play.
The value "Joycode=0" from the CFG Magician.ini file is subtracted from the Joy Number. So if your Joy # is off, use this value to adjust it.
CFG Magician can set the following dipswitch options:
Bonus Lives (Min,Max)
If you want a game to be as easy as possible, set Difficulty (Min), Lives (Max), Bonus Lives (Min)
A word about Difficulty, Lives, and Bonus Lives. All I do is set the dipswitch to the first available option for (Min), and to the last available option for (Max). This is not 100% accurate, some of the dipswitches are in Max-Min order in the drivers, instead of Min-Max. There are too many names for the different dips, and I have no desire to work it all out.
I believe that the Language, FreePlay, and Cocktail dips are accurate.