diff options
author | 2016-08-24 15:15:09 +0200 | |
---|---|---|
committer | 2016-08-24 15:16:43 +0200 | |
commit | cb30b9d3070281a0098023feedc9d3529602fe6d (patch) | |
tree | dedbca7b33e70ff7d73ad644a8eb8cac6efc27db /docs/source/advanced/multiconfig.rst | |
parent | a86a53fb64dd4b9e6dfa3d6a1ebd48e30f9d3efa (diff) |
Added documentation to main tree (nw)
Diffstat (limited to 'docs/source/advanced/multiconfig.rst')
-rw-r--r-- | docs/source/advanced/multiconfig.rst | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/source/advanced/multiconfig.rst b/docs/source/advanced/multiconfig.rst new file mode 100644 index 00000000000..707d980d1fc --- /dev/null +++ b/docs/source/advanced/multiconfig.rst @@ -0,0 +1,51 @@ +Multiple Configuration Files +============================ + +MAME has a very powerful configuration file system that can allow you to tweak settings on a per-game, per-system, or even per-monitor type basis, but requires careful thought about how you arrange your configs. + +.. _advanced-multi-CFG: + +Order of Config Loading +----------------------- + +1. The command line is parsed first, and any settings passed that way *will take priority over anything in an INI file*. +2. **MAME.INI** (or other platform INI; e.g. **MESS.INI**) is parsed twice. + The first pass may change various path settings, so the second pass is done to see if there is a valid config file at that new location (and if so, change settings using that file) +3. **DEBUG.INI** if in debug mode. + This is an advanced config file, most people won't need to use it or be concerned by it. +4. System-specific INI files where appropriate (e.g. **NEOGEO_NOSLOT.INI** or **CPS2.INI**) + As an example, Street Fighter Alpha is a CPS2 game, and so **CPS2.INI** would be loaded here. +5. Monitor orientation INI file (either **HORIZONT.INI** or **VERTICAL.INI**) + Pac-Man, for one example, is a vertical monitor setup, so it would load **VERTICAL.INI**. Street Fighter Alpha is a horizontal game, so it loads **HORIZONT.INI**. +6. System-type INI files (**ARCADE.INI**, **CONSOLE.INI**, **COMPUTER.INI**, or **OTHERSYS.INI**) + Both Pac-Man and Street Fighter Alpha are arcade games, so **ARCADE.INI** would be loaded here. Atari 2600 would load **CONSOLE.INI**. +7. Screen-type INI file (**VECTOR.INI** for vector games, **RASTER.INI** for raster games, **LCD.INI** for LCD games) + Pac-Man and Street Fighter Alpha are raster, so **RASTER.INI** gets loaded here. Tempest is a vector monitor game, and **VECTOR.INI** would be loaded here. +8. Source INI files. + This is an advanced config file, most people won't need to use it and it can be safely ignored. + MAME will attempt to load **SOURCE/SOURCEFILE.INI** and **SOURCEFILE.INI**, where sourcefile is the actual filename of the source code file. + *mame -listsource <game>* will show the source file for a given game. + + For instance, Banpresto's Sailor Moon, Atlus's Dodonpachi, and Nihon System's Dangun Feveron all share a large amount of hardware and are grouped into the CAVE.C file, meaning they all parse **source/cave.ini** +9. Parent INI file. + For example, if running Pac-Man, which is a clone of Puck-Man, it'd be **PUCKMAN.INI** +10. Driver INI file. + Using our previous example of Pac-Man, this would be **PACMAN.INI**. + + +Examples of Config Loading Order +-------------------------------- + +1. Alcon, which is the US clone of Slap Fight. (*mame alcon*) + Command line, MAME.INI, VERTICAL.INI, ARCADE.INI, RASTER.INI, SLAPFGHT.INI, and lastly ALCON.INI (*remember command line parameters take precedence over all else!*) + +2. Super Street Fighter 2 Turbo (*mame ssf2t*) + Command line, MAME.INI, HORIZONT.INI, ARCADE.INI, RASTER.INI, CPS2.INI, and lastly SSF2T.INI (*remember command line parameters take precedence over all else!*) + + +Tricks to Make Life Easier +-------------------------- + +Some users may have a wall-mounted or otherwise rotatable monitor, and may wish to actually play vertical games with the rotated display. The easiest way to accomplish this is to put your rotation modifiers into **VERTICAL.INI**, where they will only affect vertical games. + +[todo: more practical examples] |