summaryrefslogtreecommitdiffstatshomepage
path: root/docs/source/advanced/multiconfig.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/advanced/multiconfig.rst')
-rw-r--r--docs/source/advanced/multiconfig.rst127
1 files changed, 99 insertions, 28 deletions
diff --git a/docs/source/advanced/multiconfig.rst b/docs/source/advanced/multiconfig.rst
index 48385781392..abae10f5a78 100644
--- a/docs/source/advanced/multiconfig.rst
+++ b/docs/source/advanced/multiconfig.rst
@@ -8,44 +8,115 @@ MAME has a very powerful configuration file system that can allow you to tweak s
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``.
+1. The command line is parsed first, and any settings passed that way *will take
+ precedence 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 configuration file at that new location (and if so,
+ change settings using that file).
+
+3. ``debug.ini`` if the debugger is enabled. This is an advanced config file,
+ most people won't need to use it or be concerned by it.
+
+4. Screen orientation INI file (either ``horizont.ini`` or ``vertical.ini``).
+ For example Pac-Man has a vertical screen, so it loads ``vertical.ini``,
+ while Street Fighter Alpha uses a horizontal screen, so it loads
+ ``horizont.ini``.
+
+ Systems with no monitors, multiple monitors with different orientations, or
+ monitors connected to slot devices will usually load ``horizont.ini``.
+
+5. System type INI file (``arcade.ini``, ``console.ini``, ``computer.ini``, or
+ ``othersys.ini``). Both Pac-Man and Street Fighter Alpha are arcade games,
+ so ``arcade.ini`` will be loaded here, while Atari 2600 will load
+ ``console.ini`` as it is a home game console.
+
+6. Monitor type INI file (``vector.ini`` for vector monitors, ``raster.ini`` for
+ CRT raster monitors, or ``lcd.ini`` for LCD/EL/plasma matrix monitors).
+ Pac-Man and Street Fighter Alpha use raster CRTs, so ``raster.ini`` is loaded
+ here, while Tempest uses a vector monitor, so ``vector.ini`` is loaded here.
+
+ For systems that have multiple monitor types, such as House Mannequin with
+ its CRT raster monitor and dual LCD matrix monitors, the INI file relevant to
+ the first monitor is used (``raster.ini`` in this case). Systems without
+ monitors or with other kinds of monitors will not load an INI file for this
+ step.
+
+7. Driver source file INI file. MAME will attempt to load
+ ``source/``\ *<sourcefile>*\ ``.ini`` where *<sourcefile>* is the base name
+ of the source code file where the system driver is defined. A system's
+ source file can be found using **mame -listsource <pattern>** at the command
+ line.
+
+ For instance, Banpresto's Sailor Moon, Atlus's Dodonpachi, and Nihon System's
+ Dangun Feveron all run on similar hardware and are defined in the
+ ``cave.cpp`` source file, so they will all load ``source/cave.ini`` at this
+ step.
+
+8. BIOS set INI file (if applicable). For example The Last Soldier uses the
+ Neo-Geo MVS BIOS, so it will load ``neogeo.ini``. Systems that don't use a
+ BIOS set won't load an INI file for this step.
+
+9. Parent system INI file. For example The Last Soldier is a clone of The Last
+ Blade / Bakumatsu Roman - Gekka no Kenshi, so it will load ``lastblad.ini``.
+ Parent systems will not load an INI file for this step.
+
+10. System INI file. Using the previous example, The Last Soldier will load
+ ``lastsold.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!*)
+* Brix, which is a clone of Zzyzzyxx. (**mame brix**)
+
+ 1. Command line
+ 2. ``mame.ini`` (global)
+ 3. (debugger not enabled, no extra INI file loaded)
+ 4. ``vertical.ini`` (screen orientation)
+ 5. ``arcade.ini`` (system type)
+ 6. ``raster.ini`` (monitor type)
+ 7. ``source/jack.ini`` (driver source file)
+ 8. (no BIOS set)
+ 9. ``zzyzzyxx.ini`` (parent system)
+ 10. ``brix.ini`` (system)
+
+* Super Street Fighter 2 Turbo (**mame ssf2t**)
+
+ 1. Command line
+ 2. ``mame.ini`` (global)
+ 3. (debugger not enabled, no extra INI file loaded)
+ 4. ``horizont.ini`` (screen orientation)
+ 5. ``arcade.ini`` (system type)
+ 6. ``raster.ini`` (monitor type)
+ 7. ``source/cps2.ini`` (driver source file)
+ 8. (no BIOS set)
+ 9. (no parent system)
+ 10. ``ssf2t.ini`` (system)
+
+* Final Arch (**mame finlarch**)
+
+ 1. Command line
+ 2. ``mame.ini`` (global)
+ 3. (debugger not enabled, no extra INI file loaded)
+ 4. ``horizont.ini`` (screen orientation)
+ 5. ``arcade.ini`` (system type)
+ 6. ``raster.ini`` (monitor type)
+ 7. ``source/stv.ini`` (driver source file)
+ 8. ``stvbios.ini`` (BIOS set)
+ 9. ``smleague.ini`` (parent system)
+ 10. ``finlarch.ini`` (system)
-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!*)
+*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.
+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]