From 64c1f2eb5bacb729bd151f39425cfbbea662feb7 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sat, 12 Jan 2019 05:37:24 +1100 Subject: make INI file loading examples match current behaviour at least (nw) --- docs/source/advanced/multiconfig.rst | 127 +++++++++++++++++++++++++++-------- 1 file changed, 99 insertions(+), 28 deletions(-) (limited to 'docs/source/advanced') 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 * 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/``\ **\ ``.ini`` where ** 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 ** 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] -- cgit v1.2.3-70-g09d2 13&d=retro' /> angelosa10 months xtalfull xtal conversion Olivier Galibert3 days [...] TagDownloadAuthorAge mame0277commit 84cb44566c... Vas Crabb3 days mame0276commit 758c8a169a... Vas Crabb5 weeks mame0275commit 455ffbbd7e... Vas Crabb2 months mame0274commit cd82a83c3d... Vas Crabb3 months mame0273commit e11cae0a15... Vas Crabb4 months mame0272commit 5d8e4cf07e... Vas Crabb5 months mame0271commit 4da96a0c4f... Vas Crabb6 months mame0270commit ef032a31e5... Vas Crabb7 months mame0269commit 6d1970f5f1... Vas Crabb8 months mame0268commit acea8712d6...