summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--docs/man/mess.61332
-rw-r--r--docs/source/usingmame/mamemenus.rst8
-rw-r--r--scripts/build/verinfo.py256
-rw-r--r--scripts/resources/windows/mame/mame.rc3
-rw-r--r--scripts/resources/windows/mess/mess.icobin372526 -> 0 bytes
-rw-r--r--scripts/resources/windows/mess/mess.man16
-rw-r--r--scripts/resources/windows/mess/mess.rc14
-rw-r--r--scripts/src/main.lua138
-rw-r--r--src/frontend/mame/ui/inputopts.cpp9
-rw-r--r--src/frontend/mame/ui/miscmenu.cpp2
-rw-r--r--src/mame/mame.cpp4
-rw-r--r--src/mame/mess.cpp23
12 files changed, 213 insertions, 1592 deletions
diff --git a/docs/man/mess.6 b/docs/man/mess.6
deleted file mode 100644
index 07293db867f..00000000000
--- a/docs/man/mess.6
+++ /dev/null
@@ -1,1332 +0,0 @@
-.\" -*- nroff -*-
-.\"
-.\" mess.6
-.\"
-.\" Man page created from usage and source information:
-.\" * commands: see src/emu/clifront.c clifront.h
-.\" * options: core entries, see src/emu/emuopts.c emuopts.h
-.\" SDL-specific entries, see src/osd/sdl/sdlmain.c osdsdl.h
-.\" Cesare Falco <c.falco@ubuntu.com>, March 2011
-.\"
-.\" Some text borrowed from the xmame 0.106 man page,
-.\" done by Rene Herrmann <rene.herrmann@berlin.de>, September 2000
-.\" and updated by Andrew Burton <burtona@gol.com>, July 2003
-.\"
-.\" Other info's taken from MESS Wiki as well:
-.\" http://mess.redump.net
-.\"
-.\"
-.TH MESS 6 2015-05-20 0.162 "MESS \- Multi Emulator Super System"
-.\"
-.\"
-.\" NAME chapter
-.SH NAME
-MESS \- Multi Emulator Super System
-.\"
-.\"
-.\" SYNOPSIS chapter
-.SH SYNOPSIS
-.B mess
-.I system
-.RI [ "media software" ]
-.RI [ options ]
-.\"
-.\"
-.\" DESCRIPTION chapter
-.SH DESCRIPTION
-MESS documents the hardware for a wide variety of (mostly vintage) computers,
-video game consoles, and calculators through software emulation. As a nice
-side effect, MESS allows software and games for these hardware platforms
-to run on modern PCs.
-.\"
-.\"
-.\" SOFTWARE chapter
-.SH SOFTWARE
-A \fIsoftware\fR entry may be specified to attach an image file to the
-emulated system. In such a case, the appropriate \fImedia\fR switch
-is also required:
-.TP
-.B \-cart, \-cart1
-Cartrigde, used mainly by game consoles
-.TP
-.B \-cass
-Cassette (tape), widely used by old home computers
-.TP
-.B \-flop, -flop1
-Floppy disk
-.TP
-.B \-cdrom
-CD-Rom
-.\"
-.\"
-.\" OPTIONS chapter
-.SH OPTIONS
-.\"
-.\" *******************************************************
-.SS Core commands
-.\" *******************************************************
-.TP
-.B \-help, \-?
-Displays current MESS version and copyright notice.
-.TP
-.B \-validate, \-valid
-Performs internal validation on every driver in MESS. Run this
-before submitting changes to ensure that you haven't violated any of
-the core system rules.
-.\"
-.\" *******************************************************
-.SS Configuration commands
-.\" *******************************************************
-.TP
-.B \-createconfig, \-cc
-Creates the default \fBmess.ini\fR file in the current directory. All the
-configuration options (not commands) described below can be permanently
-changed by editing this configuration file.
-.TP
-.B \-showconfig, \-sc
-Displays the current configuration settings.
-.TP
-.B \-showusage, \-su
-Displays a summary of all the command line options. For options that
-are not mentioned here, the short summary given by \fB\-showusage\fR
-is usually sufficient.
-.\"
-.\" *******************************************************
-.SS Frontend commands
-.\" *******************************************************
-All the list commands below write info to the screen.
-If you wish to write the info to a textfile instead, use redirection.
-For example,
-.B mess \-listxml > ~/messlist.xml
-writes the full list of supported systems to \fBmesslist.xml\fR in your
-home directory.
-.TP
-.B \-listxml, \-lx \fR[\fIsystem\fR|\fIwildcard\fR]
-List comprehensive details for all of the supported systems. The output
-is quite long, so it is usually better to redirect this into a file.
-The output is in XML format. By default all systems are listed; however,
-you can limit this list by specifying a driver name or wildcard after
-the \-listxml command.
-.TP
-.B \-listfull, \-ll \fR[\fIsystem\fR|\fIwildcard\fR]
-Displays a list of system driver names and descriptions. By default all
-systems are listed; however, you can limit this list by specifying a
-driver name or wildcard after the \-listfull command.
-.TP
-.B \-listsource, \-ls \fR[\fIsystem\fR|\fIwildcard\fR]
-Displays a list of drivers and the names of the source files their system
-drivers live in. Useful for finding which driver a system runs on in
-order to fix bugs. By default all systems are listed; however, you can
-limit this list by specifying a driver name or wildcard after the
-\-listsource command.
-.TP
-.B \-listclones, \-lc \fR[\fIsystem\fR|\fIwildcard\fR]
-Displays a list of clones. By default all clones are listed; however,
-you can limit this list by specifying a driver name or wildcard after
-the \-listclones command.
-.TP
-.B \-listbrothers, \-lb \fR[\fIsystem\fR|\fIwildcard\fR]
-Displays a list of "brothers" or other drivers from same sourcefile.
-By default all systems are listed; however, you can limit this list by
-specifying a driver name or wildcard after the \-listbrothers command.
-.TP
-.B \-listcrc
-Displays a full list of CRCs of all ROM images referenced by all
-drivers within MESS code.
-.TP
-.B \-listroms, \-lr \fIsystem
-Displays a list of ROM images referenced by the specified system.
-.TP
-.B \-listsamples \fIsystem
-Displays a list of samples referenced by the specified system.
-.TP
-.B \-verifyroms \fR[\fIsystem\fR|\fIwildcard\fR]
-Checks for invalid or missing ROM images. By default all drivers that
-have valid ZIP files or directories in the rom path are verified;
-however, you can limit this list by specifying a driver name or
-wildcard after the \-verifyroms command.
-.TP
-.B \-verifysamples \fR[\fIsystem\fR|\fIwildcard\fR]
-Checks for invalid or missing samples. By default all drivers that
-have valid ZIP files or directories in the samplepath are verified;
-however, you can limit this list by specifying a driver name or
-wildcard after the \-verifyroms command.
-.TP
-.B \-romident
-Attempts to identify ROM files, if they are known to MESS, in the
-specified .zip file or directory. This command can be used to try and
-identify ROM sets taken from unknown boards. On exit, the errorlevel
-is returned as one of the following:
-.br
-\fB0\fR all files were identified
-.br
-\fB7\fR all files were identified except for some "non\-ROM" files
-.br
-\fB8\fR some files were identified
-.br
-\fB9\fR no files were identified
-.TP
-.B \-listdevices, \-ld
-Output the list of devices referenced by a given system or set of systems.
-.TP
-.B \-listslots, \-lslot
-Output the list of available slots and slot devices for the system.
-.TP
-.B \-listmedia, \-lm
-Output the list of available media for the system.
-.TP
-.B \-listsoftware, \-lsoft
-Output the list of known software for the system.
-.TP
-.B \-verifysoftware, \-vsoft \fR[\fIgamename\fR|\fIwildcard\fR]
-Checks for invalid or missing ROM images in your software lists.
-By default all drivers that have valid ZIP files or directories
-in the rompath are verified; however, you can limit this list by
-specifying a specific driver name or wildcard.
-.TP
-.B \-getsoftlist, \-glist
-Retrieve software list by name.
-.TP
-.B \-verifysoftlist, \-vlist \fR[\fIsoftwarelistname\fR]
-Checks a specified software list for missing ROM images if files exist
-for issued softwarelistname. By default, all drivers that have valid
-ZIP files or directories in the rompath are verified; however, you can
-limit this list by specifying a specific softwarelistname (without .XML).
-.TP
-.B \-listmidi, \-mlist
-List available MIDI I/O devices.
-.TP
-.B \-listnetwork, \-nlist
-List available network adapters.
-.\"
-.\" *******************************************************
-.SS Configuration options
-.\" *******************************************************
-.TP
-.B \-[no]readconfig, \-[no]rc
-Enables or disables the reading of the config files. When enabled
-(which is the default), MESS reads the following config files in order:
-.br
-1. \fBmess.ini\fR
-.br
-the main configuration file
-.br
-2. \fI[driver]\fB.ini\fR
-.br
-based on the source file name of the system driver
-.br
-3. \fBdebug.ini\fR, if the debugger is enabled
-.br
-4. \fBvector.ini\fR, for vector games only
-.br
-5. \fI[driver]\fB.ini\fR
-.br
-based on the source filename of the game driver
-.br
-6. \fI[parent]\fB.ini\fR
-.br
-for clones only, may be called recursively
-.br
-4. \fI[system]\fB.ini\fR
-.br
-note this sometimes resolves to the same of the source driver
-.P
-The settings in the later ini's override those in the earlier ini's.
-The default is ON (\-readconfig).
-.TP
-.B \-[no]writeconfig, \-[no]wc
-Write configuration to \fI[driver]\fR.ini on exit.
-Default is OFF (\-nowriteconfig).
-.\"
-.\" *******************************************************
-.SS Search path options
-.\" *******************************************************
-Be careful to use the path, directory and file options in
-mess.ini ONLY. Otherwise, the outcome may be unpredictable and not
-consistent across releases.
-.TP
-.B \-rompath, \-rp, \-biospath, \-bp \fIpathname
-Specifies a list of paths within which to find ROM or hard disk images.
-Multiple paths can be specified by separating them with semicolons.
-The default is 'roms' (that is, a directory 'roms' in the same directory
-as the MESS executable).
-.TP
-.B \-hashpath \fIpathname
-Specifies a list of paths within which to search for software hash files.
-Multiple paths can be specified by separating them with semicolons.
-The default is 'hash' (that is, a directory 'hash' in the same directory
-as the MESS executable).
-.TP
-.B \-samplepath, \-sp \fIpathname
-Specifies a list of paths within which to find sample files. Multiple
-paths can be specified by separating them with semicolons. The default
-is 'samples' (that is, a directory 'samples' in the same directory as
-the MESS executable).
-.TP
-.B \-artpath, \-artwork_directory \fIpathname
-Specifies a list of paths within which to find artwork files. Multiple
-paths can be specified by separating them with semicolons. The default
-is 'artwork' (that is, a directory 'artwork' in the same directory as
-the MESS executable).
-.TP
-.B \-ctrlrpath, \-ctrlr_directory \fIpathname
-Specifies a list of paths within which to find controller\-specific
-configuration files. Multiple paths can be specified by separating
-them with semicolons. The default is 'ctrlr' (that is, a
-directory 'ctrlr' in the same directory as the MESS executable).
-.TP
-.B \-inipath \fIpathname
-Specifies a list of paths within which to find .ini files. Multiple
-paths can be specified by separating them with semicolons. The default
-is '/etc/mess'.
-.TP
-.B \-fontpath \fIpathname
-Specifies a list of paths within which to find .bdf font files. Multiple
-paths can be specified by separating them with semicolons. The default
-is '.' (that is, search in the same directory as the MESS executable).
-.TP
-.B \-cheatpath \fIpathname
-Specifies a list of paths within which to find cheat files. Multiple
-paths can be specified by separating them with semicolons. The default
-is 'cheat' (that is, a directory 'cheat' in the same directory as
-the MESS executable).
-.TP
-.B \-crosshairpath \fIpathname
-Specifies a list of paths within which to find crosshair files. Multiple
-paths can be specified by separating them with semicolons. The default
-is 'crosshair' (that is, a directory 'crosshair' in the same directory as
-the MESS executable). If the Crosshair is set to default in the menu,
-MESS will look for system/cross#.png and then cross#.png in the
-specified path, where # is the player number. Failing that,
-MESS will use built\-in default crosshairs.
-.TP
-.B \-pluginspath \fIpathname
-Specifies a single path within which to find plugins. The default
-is 'plugins' (that is, a directory 'plugins' in the same directory as
-the MESS executable).
-.TP
-.B \-languagepath \fIpathname
-Specifies a single path within which to find language files. The default
-is 'language' (that is, a directory 'language' in the same directory as
-the MESS executable).
-.\"
-.\" *******************************************************
-.SS Output Directory Options
-.\" *******************************************************
-.TP
-.B \-cfg_directory \fIpathname
-Specifies a single directory where configuration files are stored.
-Configuration files store user configurable settings that are read at
-startup and written when MESS exits. The default is 'cfg' (that is,
-a directory 'cfg' in the same directory as the MESS executable). If this
-directory does not exist, it will be automatically created.
-.TP
-.B \-nvram_directory \fIpathname
-Specifies a single directory where NVRAM files are stored. NVRAM files
-store the contents of EEPROM and non\-volatile RAM (NVRAM) for systems
-which used this type of hardware. This data is read at startup and
-written when MESS exits. The default is 'nvram' (that is, a
-directory 'nvram' in the same directory as the MESS executable). If this
-directory does not exist, it will be automatically created.
-.TP
-.B \-input_directory \fIpathname
-Specifies a single directory where input recording files are stored.
-Input recordings are created via the \-record option and played back via
-the \-playback option. The default is 'inp' (that is, a directory 'inp'
-in the same directory as the MESS executable). If this directory
-does not exist, it will be automatically created.
-.TP
-.B \-state_directory \fIpathname
-Specifies a single directory where save state files are stored. Save
-state files are read and written either upon user request, or when using
-the \-autosave option. The default is 'sta' (that is, a directory 'sta'
-in the same directory as the MESS executable). If this directory does
-not exist, it will be automatically created.
-.TP
-.B \-snapshot_directory \fIpathname
-Specifies a single directory where screen snapshots are stored, when
-requested by the user. The default is 'snap' (that is, a directory 'snap'
-in the same directory as the MESS executable). If this directory
-does not exist, it will be automatically created.
-.TP
-.B \-diff_directory \fIpathname
-Specifies a single directory where hard drive differencing files are
-stored. Hard drive differencing files store any data that is written
-back to a hard disk image, in order to preserve the original image. The
-differencing files are created at startup when a system with a hard disk
-image. The default is 'diff' (that is, a directory 'diff' in the same
-directory as the MESS executable). If this directory does not exist,
-it will be automatically created.
-.TP
-.B \-comment_directory \fIpathname
-Specifies a single directory where debugger comment files are stored.
-Debugger comment files are written by the debugger when comments are
-added to the disassembly for a system. The default is 'comments' (that is,
-a directory 'comments' in the same directory as the MESS executable).
-If this directory does not exist, it will be automatically created.
-.\"
-.\" *******************************************************
-.SS State/playback options
-.\" *******************************************************
-.TP
-.B \-state \fIslot
-Immediately after starting the specified system, will cause the save
-state in the specified \fIslot\fP to be loaded.
-.TP
-.B \-[no]autosave
-When enabled, automatically creates a save state file when exiting MESS
-and automatically attempts to reload it when later starting MESS with
-the same system. This only works for systems that have explicitly enabled
-save state support in their driver. The default is OFF (\-noautosave).
-.TP
-.B \-playback, \-pb \fIfilename
-Specifies a file from which to play back a series of system inputs. This
-feature does not work reliably for all systems, but can be used to watch
-a previously recorded system session from start to finish. In order to
-make things consistent, you should only record and playback with all
-configuration (.cfg), NVRAM (.nv), and memory card files deleted. The
-default is NULL (no playback).
-.TP
-.B \-[no]exit_after_playback
-If play back is enabled (see \-playback option) the program exits when
-end of file is reached. Otherwise the machine will continue to run.
-Default is OFF (\-noexit_after_playback).
-.TP
-.B \-record, \-rec \fIfilename
-Specifies a file to record all input from a system session. This can be
-used to record a system session for later playback. This feature does not
-work reliably for all systems, but can be used to watch a previously
-recorded system session from start to finish. In order to make things
-consistent, you should only record and playback with all configuration
-(.cfg), NVRAM (.nv), and memory card files deleted. The default is NULL
-(no recording).
-.TP
-.B \-[no]record_timecode
-Specify whether to create a timecode file. It contains a line with elapsed
-times on each press of timecode shortcut key (default is F12).
-This option works only when recording mode is enabled (\-record option).
-The file is saved on inp folder.
-Default is OFF (\-norecord_timecode).
-.TP
-.B \-mngwrite \fIfilename
-Writes each video frame to the given file in MNG format, producing
-an animation of the system session.
-Note that \-mngwrite only writes video frames; it does not save any audio
-data. Use \-wavwrite for that, and reassemble the audio/video using
-offline tools. The default is NULL (no recording).
-.TP
-.B \-aviwrite \fIfilename
-Stream video and sound data to the given file
-in AVI format, producing an animation of the system session complete
-with sound. The default is NULL (no recording).
-.TP
-.B \-wavwrite \fIfilename
-Writes the final mixer output to the given file
-in WAV format, producing an audio recording of the system session.
-The default is NULL (no recording).
-.TP
-.B \-snapname \fIstring
-Describes how MESS should name files for snapshots. \fIstring\fP
-provides a template that is used to generate a filename. Three
-simple substitutions are provided: the / character represents the
-path separator on any target platform (even Windows); the literal \fB%g\fP
-represents the driver name of the current system; and the literal \fB%i\fP
-represents an incrementing index. If \fB%i\fP is omitted, then each
-snapshot taken will overwrite the previous one; otherwise, MESS will
-find the next empty value for \fB%i\fP and use that for a filename. The
-default is \fB%g/%i\fP, which creates a separate folder for each system,
-and names the snapshots under it starting with 0000 and increasing
-from there. In addition to the above, for drivers using different
-media, like carts or floppy disks, you can also use the
-\fB%d\fP\fI_[media]\fP indicator. Replace \fI[media]\fP with the media
-switch you want to use. A few examples: if you use
-.B mess nes \-cart robby \-snapname %g/%d_cart
-snapshots will be saved as \fBsnaps/nes/robby.png\fP; if you use
-.B mess c64 \-flop1 robby \-snapname %g/%d_flop1/%i
-snapshots will be saved as \fBsnaps/c64/robby/0000.png\fP.
-.TP
-.B \-snapsize \fIwidth\fRx\fIheight
-Hard\-codes the size for snapshots and movie recording. By default,
-MESS will create snapshots at the system's current resolution in raw
-pixels, and will create movies at the system's starting resolution in
-raw pixels. If you specify this option, then MESS will create both
-snapshots and movies at the size specified, and will bilinear filter
-the result. Note that this size does not automatically rotate if the
-system is vertically oriented. The default is 'auto'.
-.TP
-.B \-snapview internal\fR|\fBauto\fR|\fIviewname
-Specifies the view to use when rendering snapshots and movies. By
-default, both use a special 'internal' view, which renders a separate
-snapshot per screen or renders movies only of the first screen. By
-specifying this option, you can override this default behavior and
-select a single view that will apply to all snapshots and movies.
-Note that \fIviewname\fP does not need to be a perfect match; rather, it
-will select the first view whose name matches all the characters
-specified by \fIviewname\fP. For example, \-snapview native will match the
-"Native (15:14)" view even though it is not a perfect match.
-\fIviewname\fP can also be 'auto', which selects the first view with all
-screens present. The default value is 'internal'.
-.TP
-.B \-[no]snapbilinear
-Specify whether snapshot/movie should have bilinear filtering applied.
-Default is ON (\-snapbilinear).
-.TP
-.B \-statename \fIstring
-Describes how MESS should store save state files, relative to the
-state_directory path. \fIstring\fP provides a template that
-is used to generate a relative path. Two simple substitutions are
-provided: the / character represents the path separator on any target
-platform (even Windows); the literal \fB%g\fP represents the driver name of
-the current game. The default is '%g', which creates a separate folder
-for each game. In addition to the above, for drivers using different
-media, like carts or floppy disks, you can also use the
-\fB%d_\fP\fI[media]\fP indicator. Replace \fI[media]\fP with the media
-switch you want to use. A few examples: if you use
-.B mess nes \-cart robby \-statename %g/%d_cart
-save states will be stored inside \fBsta/nes/robby/\fP; if you use
-.B mess c64 \-flop1 robby \-statename %g/%d_flop1
-save states will be stored inside \fBsta/c64/robby/\fP.
-.TP
-.B \-[no]burnin
-Tracks brightness of the screen during play and at the end of
-emulation generates a PNG that can be used to simulate burn\-in
-effects on other systems. The resulting PNG is created such that the
-least\-used areas of the screen are fully white (since burned\-in areas
-are darker, all other areas of the screen must be lightened a touch).
-The intention is that this PNG can be loaded via an artwork file with
-a low alpha (e.g, 0.1\-0.2 seems to work well) and blended over the
-entire screen. The PNG files are saved in the snap directory under
-the system/burnin\-<screen.name>.png. The default is OFF (\-noburnin).
-.\"
-.\" *******************************************************
-.SS Performance options
-.\" *******************************************************
-.TP
-.B \-[no]autoframeskip, \-[no]afs
-Automatically determines the frameskip level while you're playing the
-system, adjusting it constantly in a frantic attempt to keep the system
-running at full speed. Turning this on overrides the value you have set
-for \-frameskip below. The default is OFF (\-noautoframeskip).
-.TP
-.B \-frameskip, \-fs \fIvalue
-Specifies the frameskip value (autoframeskip must be disabled). This is the
-number of frames out of every 12 to drop when running. For example, if you
-say \-frameskip 2, then MESS will display 10 out of every 12 frames. By
-skipping those frames, you may be able to get full speed in a system that
-requires more horsepower than your computer has. The default value is 0,
-which skips no frames.
-.TP
-.B \-seconds_to_run, \-str \fIvalue
-This option can be used for benchmarking and automated testing. It tells
-MESS to stop execution after a fixed number of seconds. By combining
-this with a fixed set of other command line options, you can set up a
-consistent environment for benchmarking MESS performance. In addition,
-upon exit, the \-str option will write a screenshot called final.png
-to the system's snapshot directory.
-.TP
-.B \-[no]throttle
-Configures the default thottling setting. When throttling is on, MESS
-attempts to keep the system running at the system's intended speed. When
-throttling is off, MESS runs the system as fast as it can. Note that the
-fastest speed is more often than not limited by your graphics card,
-especially for older systems. The default is ON (\-throttle).
-.TP
-.B \-[no]sleep
-Allows MESS to give time back to the system when running with \-throttle.
-This allows other programs to have some CPU time, assuming that the
-system isn't taxing 100% of your CPU resources. This option can potentially
-cause hiccups in performance if other demanding programs are running.
-The default is ON (\-sleep).
-.TP
-.B \-speed \fIvalue
-Controls the speed of gameplay, relative to realtime; smaller numbers are
-slower. Default is 1.00.
-.TP
-.B \-[no]refreshspeed, \-[no]rs
-Automatically adjusts the \fB\-speed\fR parameter to keep the effective refresh
-rate below that of the lowest screen refresh rate.
-Default is OFF (\-norefreshspeed).
-.\"
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" OS specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.TP
-.B \-numprocessors, \-np \fIvalue
-Set number of processors; this overrides the number the system reports.
-.TP
-.B \-bench \fIvalue
-Benchmark for the given number of emulated seconds;
-implies \-video none \-sound none \-nothrottle.
-.\"
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.TP
-.B \-[no]sdlvideofps
-Show SDL video performance. Default is OFF (\-nosdlvideofps).
-.\"
-.\" *******************************************************
-.SS Rotation options
-.\" *******************************************************
-.TP
-.B \-[no]rotate
-Rotate the system to match its normal state (horizontal/vertical). This
-ensures that both vertically and horizontally oriented systems show up
-correctly without the need to rotate your monitor. If you want to keep
-the system displaying 'raw' on the screen the way the actual machine would
-have, turn this option off. The default is ON (\-rotate).
-.TP
-.B \-[no]ror \-[no]rol
-Rotate the system screen to the right (clockwise) or left
-(counter\-clockwise) relative to either its normal state (if \-rotate
-is specified) or its native state (if \-norotate is specified).
-Default for both is OFF (\-noror \-norol).
-.TP
-.B \-[no]autoror \-[no]autorol
-These options are designed for use with pivoting screens that only
-pivot in a single direction. If your screen only pivots clockwise,
-use \-autorol to ensure that the system will fill the screen either
-horizontally or vertically in one of the directions you can handle.
-If your screen only pivots counter\-clockwise, use \-autoror.
-Default for both is OFF (\-noautoror \-noautorol).
-.TP
-.B \-[no]flipx \-[no]flipy
-Flip (mirror) the system screen either horizontally (\-flipx) or
-vertically (\-flipy). The flips are applied after the \-rotate and
-\-ror/\-rol options are applied.
-Default for both is OFF (\-noflipx \-noflipy).
-.\"
-.\" *******************************************************
-.SS Artwork options
-.\" *******************************************************
-.TP
-.B \-[no]artwork_crop, \-[no]artcrop
-Enable cropping of artwork to the system screen area only. This
-option can also be controlled via the Video Options menu in the user
-interface. The default is OFF (\-noartwork_crop).
-.TP
-.B \-[no]use_backdrops, \-[no]backdrop
-Enables/disables the display of backdrops. The default is ON
-(\-use_backdrops).
-.TP
-.B \-[no]use_overlays, \-[no]overlay
-Enables/disables the display of overlays. The default is ON
-(\-use_overlays).
-.TP
-.B \-[no]use_bezels, \-[no]bezel
-Enables/disables the display of bezels. The default is ON
-(\-use_bezels).
-.TP
-.B \-[no]use_cpanels, \-[no]cpanel
-Enables/disables the display of cpanels. The default is ON
-(\-use_bezels).
-.TP
-.B \-[no]use_marquees, \-[no]marquee
-Enables/disables the display of marquees. The default is ON
-(\-use_bezels).
-.\"
-.\" *******************************************************
-.SS Screen options
-.\" *******************************************************
-.TP
-.B \-brightness \fIvalue
-Controls the default brightness, or black level, of the system screens.
-This option does not affect the artwork or other parts of the display.
-Using the MESS UI, you can individually set the brightness for each system
-screen; this option controls the initial value for all visible system
-screens. The standard value is 1.0. Selecting lower values (down to 0.1)
-will produce a darkened display, while selecting higher values (up to
-2.0) will give a brighter display. The default is 1.0.
-.TP
-.B \-contrast \fIvalue
-Controls the contrast, or white level, of the system screens. This option
-does not affect the artwork or other parts of the display. Using the
-MESS UI, you can individually set the contrast for each system screen;
-this option controls the initial value for all visible system screens. The
-standard value is 1.0. Selecting lower values (down to 0.1) will produce
-a dimmer display, while selecting higher values (up to 2.0) will
-give a more saturated display. The default is 1.0.
-.TP
-.B \-gamma \fIvalue
-Controls the gamma, which produces a potentially nonlinear black to
-white ramp, for the system screens. This option does not affect the
-artwork or other parts of the display. Using the MESS UI, you can
-individually set the gamma for each system screen; this option controls
-the initial value for all visible system screens. The standard value is
-1.0, which gives a linear ramp from black to white. Selecting lower
-values (down to 0.1) will increase the nonlinearity toward black,
-while selecting higher values (up to 3.0) will push the nonlinearity
-toward white. The default is 1.0.
-.TP
-.B \-pause_brightness \fIvalue
-This controls the brightness level when MESS is paused. The default
-value is 0.65.
-.TP
-.B \-effect\fR [\fInone\fR|\fIfilename[.png]\fR]
-Name of a PNG file to use for visual effects, or 'none'. Default is 'none'.
-.\"
-.\" *******************************************************
-.SS Vector rendering options
-.\" *******************************************************
-.TP
-.B \-beam_width_min \fIvalue
-.TP
-.B \-beam_width_max \fIvalue
-Sets the minimum and maximum width of the vectors. This is a scaling factor
-against the standard vector width, which is interpolated between minimum and
-maximum according to the beam's intensity. A value of 1.0 will keep the
-default vector line width. Smaller values will reduce the width, and larger
-values will increase the width. The default is 1.0.
-.TP
-.B \-beam_intensity_weight \fIvalue
-Applies an exponential weight to the minimum and maximum beam width. For
-positive values the interpolated scaling factor will affect lines with higher
-intensity more than lines with lower intensity. The default is 0.0.
-.TP
-.B \-flicker \fIvalue
-Simulates a vector "flicker" effect, similar to a vector monitor that
-needs adjustment. This option requires a float argument in the range of
-0.00\-100.00 (0=none, 100=maximum). The default is 0.
-.\"
-.\" *******************************************************
-.SS Video options
-.\" *******************************************************
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.TP
-.B \-video\fR [\fIsoft\fR|\fIopengl\fR|\fIbgfx\fR|\fInone\fR]
-Specifies which video subsystem to use for drawing:
-.br
-\fBsoft\fR uses software rendering, which is slower but more compatible.
-.br
-\fBopengl\fR uses OpenGL and your graphics accelerator to speed up many
-aspects of drawing MAME including compositing artwork, overlays, and
-bezels, as well as stretching the image to fit your screen.
-.br
-\fBbgfx\fR uses the bgfx renderer which supports portable shaders and
-multiple graphics APIs including OpenGL, OpenGL ES and DirectX.
-.br
-\fBnone\fR does no drawing and is intended for CPU benchmarking.
-.br
-Default is 'soft' on Linux or 'opengl' on macOS.
-.TP
-.B \-numscreens \fR[\fI1-4\fR]
-Number of screens to create; usually, you want just one. Default is '1'.
-.TP
-.B \-[no]window, \-[no]w
-Run MESS in either full screen or a window. This is a fully\-featured window
-mode where the window resizes as necessary to track what the system does.
-And you can resize it yourself with your OS's standard window controls.
-The default is OFF (\-nowindow).
-.TP
-.B \-[no]maximize, \-[no]max
-Controls initial window size in windowed mode. If it is set on, the
-window will initially be set to the maximum supported size when you
-start MESS. If it is turned off, the window will start out at the
-smallest supported size. This option only has an effect when the
-\-window option is used. The default is ON (\-maximize).
-.TP
-.B \-[no]keepaspect, \-[no]ka
-Forces the correct aspect ratio. This means when you're resizing the window
-in windowed mode the actual system image will resize in discrete steps to
-maintain the proper shape of the system graphics. If you turn this off you can
-resize the window to anything you like and get funny squishing and stretching.
-The same applies for full\-screen. Default is ON (\-keepaspect).
-.TP
-.B \-[no]unevenstretch, \-[no]ues
-Allow non\-integer stretch factors. Video purists should stay far, far away
-from this option, while everyone else will be happy to know that it lets you
-fill the screen properly in full\-screen mode. Default is ON (\-unevenstretch).
-.TP
-.B \-[no]unevenstretchx, \-[no]uesx
-Act as \-[no]unevenstretch on horizontal basis only.
-.TP
-.B \-[no]intoverscan, \-[no]ios
-Allow overscan on integer scaled targets.
-.TP
-.B \-intscalex, \-sx
-Set horizontal integer scale factor.
-.TP
-.B \-intscaley, \-sy
-Set vertical integer scale factor.
-.TP
-.B \-[no]centerh
-Center horizontally within the view area. Default is ON (\-centerh).
-.TP
-.B \-[no]centerv
-Center vertically within the view area. Default is ON (\-centerv).
-.TP
-.B \-[no]waitvsync, \-[no]vs
-Enable waiting for the start of VBLANK before flipping screens;
-reduces tearing effects. Default is OFF (\-nowaitvsync).
-.TP
-.B \-[no]syncrefresh, \-[no]srf
-Enable using the start of VBLANK for throttling instead of the game time.
-Default is OFF (\-nosyncrefresh).
-.\"
-.\" *******************************************************
-.SS Software video rendering subsystem options
-.\" *******************************************************
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.B NOTE:
-All the options in this group are available only with softare video
-rendering subsystem, i.e \fB\-video soft\fR.
-.TP
-.B \-prescale\fR [\fIvalue\fR]
-Scale screen rendering by this amount in software. Default is 1.
-.TP
-.B \-scalemode, \-sm \fR[\fInone\fR|\fIasync\fR|\fIyv12\fR|\fIyuy2\fR|\fIyv12x2\fR|\fIyuy2x2\fR]
-Hardware scaling mode.
-.br
-\fBnone\fR use software rendering.
-.br
-\fBasync\fR async overlay.
-.br
-\fByv12\fR yv12 overlay.
-.br
-\fByuy2\fR yuy2 overlay.
-.br
-\fByv12x2\fR yv12 overlay using x2 prescaling.
-.br
-\fByuy2x2\fR yuy2 overlay using x2 prescaling.
-.br
-Default is NONE.
-.\"
-.\" *******************************************************
-.SS OpenGL video rendering subsystem options
-.\" *******************************************************
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.B NOTE:
-All the options in this group are available only with OpenGL video
-rendering subsystem, i.e \fB\-video opengl\fR.
-.TP
-.B \-[no]filter, \-[no]glfilter, \-[no]flt
-Enable bilinear filtering on screen output. Default is ON (\-filter).
-.TP
-.B \-prescale\fR [\fIvalue\fR]
-Scale screen rendering by this amount in software. Default is 1.
-.TP
-.B \-[no]gl_forcepow2texture
-Force power of two textures. Default is OFF (\-nogl_forcepow2texture).
-.TP
-.B \-[no]gl_notexturerect
-Don't use OpenGL GL_ARB_texture_rectangle. Turn off if
-corruption occurs in OpenGL mode, at cost of some performance
-loss. Default is ON (\-gl_notexturerect).
-.TP
-.B \-[no]gl_vbo
-Enable OpenGL VBO, if available, for a performance increase.
-Turn off if corruption occurs. Default is ON (\-gl_vbo).
-.TP
-.B \-[no]gl_pbo
-Enable OpenGL PBO, if available, for a performance increase.
-Turn off if corruption occurs. Default is ON (\-gl_pbo).
-.TP
-.B \-[no]gl_glsl
-Enable OpenGL GLSL, if available, for a performance increase.
-Default is OFF (\-nogl_glsl).
-.TP
-.B \-gl_glsl_filter \fIvalue
-Enable OpenGL GLSL filtering instead of FF filtering 0=plain, 1=bilinear.
-Default is 1: bilinear.
-.TP
-.BR \-glsl_shader_mame[0\-9]
-Preferred custom OpenGL GLSL shader set mame bitmap (from 0 to 9).
-.TP
-.BR \-glsl_shader_screen[0\-9]
-Preferred custom OpenGL GLSL shader screen bitmap (from 0 to 9).
-.TP
-.B \-gl_glsl_vid_attr
-Enable OpenGL GLSL handling of brightness and contrast. Better RGB system
-performance for free. Default is ON.
-.TP
-.B \-screen
-Explicit name for all screens; 'auto' here will try to make a best guess.
-.TP
-.B \-aspect, \-screen_aspect
-Aspect ratio for all screens; 'auto' here will try to make a best guess.
-.TP
-.B \-resolution, \-r
-Preferred resolution for all screens;
-format is \fIwidth\fRx\fIheight\fR[@\fIrefreshrate\fR] or 'auto'.
-.TP
-.B \-view
-Preferred view for all screens
-.TP
-.B \-screen[0\-3]
-Explicit name of the first|second|third|fourth screen; 'auto' here will try
-to make a best guess.
-.TP
-.B \-aspect[0\-3]
-Aspect ratio of the first|second|third|fourth screen; 'auto' here will try
-to make a best guess.
-.TP
-.B \-resolution[0\-3], \-r[0\-3]
-Preferred resolution for the first|second|third|fourth screen;
-format is \fIwidth\fRx\fIheight\fR[@\fIrefreshrate\fR] or 'auto'.
-.TP
-.B \-view[0\-3]
-Preferred view for the first|second|third|fourth screen.
-.\"
-.\" *******************************************************
-.SS BGFX post\-processing options
-.\" *******************************************************
-.B NOTE:
-All the options in this group are available only when BGFX video
-post\-processing is enabled, i.e \fB\-video bgfx\fR. For full info on BGFX
-please visit official MAME documentation page:
-.br
-http://docs.mamedev.org/advanced/bgfx.html
-.TP
-.B \-bgfx_path \fIpathname
-This is where your BGFX shader files are stored.
-The default is 'bgfx' (that is, a directory "bgfx" in the same directory
-as the MESS executable).
-.TP
-.B \-bgfx_backend \fIauto\fR|\fIopengl\fR
-Selects a rendering backend for BGFX to use. The default is 'auto',
-which will let MESS choose the best selection for you.
-.TP
-.B \-bgfx_debug
-Enables BGFX debugging features. Most users will not need to use this.
-.TP
-.B \-bgfx_screen_chains \fIdefault\fR|\fIunfiltered\fR|\fIhlsl\fR[,...]
-This dictates how to handle BGFX rendering on a per\-display basis.
-For each display specify one of the possible choices:
-.br
-\fBdefault\fR default bilinear filterered output
-.br
-\fBunfiltered\fR nearest neighbor unfiltered output
-.br
-\fBhlsl\fR HLSL display simulation through shaders
-.br
-Separate directives for each window with a comma (,) and for each physical
-screen with a colon (:). For example, for an emulated game with 3 displays
-emulated on 3 windows on your monitor,
-.B \-bgfx_screen_chains default,unfiltered,default
-specifies to apply default filter on what is been rendered on the first
-and third window and leave the content of the second window unfiltered.
-.TP
-.B \-bgfx_shadow_mask \fIfilename
-This specifies the shadow mask effect PNG file. Default is 'slot-mask.png'.
-.TP
-.B \-bgfx_avi_name \fIfilename
-This specifies a filename for BGFX output logging.
-.\"
-.\" *******************************************************
-.SS Full screen options
-.\" *******************************************************
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.TP
-.B \-[no]switchres
-Affects full screen mode only. Chooses if MESS can try to change the screen
-resolution (color depth is normally left alone) when in full\-screen mode. If
-it's off, you always get your desktop resolution in full\-screen mode (which can
-be useful for LCDs). Default is OFF (\-noswitchres).
-.TP
-.B \-[no]useallheads
-Split full screen image across monitors. Default is OFF (\-nouseallhead).
-.\"
-.\" *******************************************************
-.SS Sound options
-.\" *******************************************************
-.TP
-.B \-sound\fR [\fIsdl\fR|\fIportaudio\fR|\fIcoreaudio\fR|\fIdsound\fR|\fIxaudio2\fR|\fInone\fR]
-Specifies which sound subsystem to use for audio output:
-.br
-\fBsdl\fR uses the Simple DirectMedia Layer audio output system
-(not available on Windows by default).
-.br
-\fBportaudio\fR uses the PortAudio library which supports low-latency
-output and multiple audio APIs.
-.br
-\fBcoreaudio\fR uses the Core Audio API which supports low-latency
-output and AudioUnit effects (only available on macOS).
-.br
-\fBdsound\fR uses the DirectSound API (only available on Windows).
-.br
-\fBxaudio2\fR uses the XAudio2 API which supports low-latency output
-(only available on Windows).
-.br
-\fBnone\fR produces no audio output.
-.br
-Default is 'dsound' on Windows, 'coreaudio' on macOS or 'sdl' on other
-platforms.
-.TP
-.B \-samplerate, \-sr \fIvalue
-Sets the audio sample rate. Smaller values (e.g. 11025) cause lower
-audio quality but faster emulation speed. Higher values (e.g. 48000)
-cause higher audio quality but slower emulation speed. The default is
-48000.
-.TP
-.B \-[no]samples
-Use samples if available. The default is ON (\-samples).
-.TP
-.B \-[no]compressor
-Enable audio compressor. It temporarily reduces the overall volume when
-the audio output is overdriven. The default is ON (\-compressor).
-.TP
-.B \-volume, \-vol \fIvalue
-Sets the startup volume. It can later be changed with the user interface
-(see Keys section). The volume is an attenuation in dB:
-for example, '\-volume \-12' will start with \-12dB attenuation.
-The default is 0.
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.TP
-.B \-audio_latency \fIvalue
-This controls the amount of latency built into the audio streaming.
-The exact behavior depends on the selected audio output module (see
-the \-sound option). Smaller values provide less audio delay while
-requiring better system performance. Higher values increase audio
-delay but may help avoid buffer under-runs and audio interruptions.
-The default is 1.
-.\"
-.\" *******************************************************
-.SS Input options
-.\" *******************************************************
-.TP
-.B \-[no]coin_lockout, \-[no]coinlock
-Enables simulation of the "coin lockout" feature that is implemented
-on a number of arcade game PCBs. It was up to the operator whether or not
-the coin lockout outputs were actually connected to the coin
-mechanisms. If this feature is enabled, then attempts to enter a coin
-while the lockout is active will fail and will display a popup message
-in the user interface. If this feature is disabled, the coin lockout
-signal will be ignored. The default is ON (\-coin_lockout).
-.TP
-.B \-ctrlr \fIcontroller
-Enables support for special controllers. Configuration files are
-loaded from the ctrlrpath. They are in the same format as the .cfg
-files that are saved, but only control configuration data is read
-from the file. The default is NULL (no controller file).
-.TP
-.B \-[no]mouse
-Controls whether or not MESS looks for a mouse controller to use. Note
-that in many cases, lightguns are treated as mice by the operating
-system, so you may need to enable this to enable lightgun support. When
-this is enabled, you will not be able to use your mouse while running
-MESS. If you want to get control of your computer back, you will need
-to either pause MESS or quit. The default is OFF (\-nomouse).
-.TP
-.B \-[no]joystick, \-[no]joy
-Controls whether or not MESS looks for joystick/gamepad controllers.
-The default is ON (\-joystick).
-.TP
-.B \-[no]lightgun, \-[no]gun
-Controls whether or not MESS makes use of lightgun controllers.
-Note that most lightguns map to the mouse, so using \-lightgun and
-\-mouse together may produce strange results. The default is OFF
-(\-nolightgun).
-.TP
-.B \-[no]multikeyboard, \-[no]multikey
-Determines whether MESS differentiates between multiple keyboards.
-Some systems may report more than one keyboard; by default, the data
-from all of these keyboards is combined so that it looks like a single
-keyboard. Turning this option on will enable MESS to report keypresses
-on different keyboards independently. The default is OFF
-(\-nomultikeyboard).
-.TP
-.B \-[no]multimouse
-Determines whether MESS differentiates between multiple mice. Some
-systems may report more than one mouse device; by default, the data
-from all of these mice is combined so that it looks like a single
-mouse. Turning this option on will enable MESS to report mouse
-movement and button presses on different mice independently. The
-default is OFF (\-nomultimouse).
-.TP
-.B \-[no]steadykey, \-[no]steady
-Some systems require two or more buttons to be pressed at exactly the
-same time to make special moves. Due to limitations in the PC keyboard
-hardware, it can be difficult or even impossible to accomplish that
-using the standard keyboard handling. This option selects a different
-handling that makes it easier to register simultaneous button presses,
-but has the disadvantage of making controls less responsive. The
-default is OFF (\-nosteadykey).
-.TP
-.B \-[no]ui_active
-Enable MESS user interface on top of emulated keyboard (if present).
-User interface may be toggled during execution by pressing the key
-defined with \-ui_modekey.
-Default is OFF (\-noui_active).
-.TP
-.B \-[no]offscreen_reload, \-[no]reload
-Controls whether or not MESS treats a second button input from a
-lightgun as a reload signal. In this case, MESS will report the gun's
-position as (0,MAX) with the trigger held, which is equivalent to an
-offscreen reload. This is only needed for systems that required you to
-shoot offscreen to reload, and then only if your gun does not support
-off screen reloads. The default is OFF (\-nooffscreen_reload).
-.TP
-.B \-joystick_map, \-joymap \fImap
-Controls how joystick values map to digital joystick controls.
-See /usr/share/doc/mame\-common/config.txt for full details on
-joymap format.
-.TP
-.B \-joystick_deadzone, \-joy_deadzone, \-jdz \fIvalue
-If you play with an analog joystick, the center can drift a little.
-joystick_deadzone tells how far along an axis you must move before the
-axis starts to change. This option expects a float in the range of
-0.0 to 1.0. Where 0 is the center of the joystick and 1 is the outer
-limit. The default is 0.3.
-.TP
-.B \-joystick_saturation, \-joy_saturation, \-jsat \fIvalue
-If you play with an analog joystick, the ends can drift a little,
-and may not match in the +/\- directions. joystick_saturation tells how
-far along an axis movement change will be accepted before it reaches
-the maximum range. This option expects a float in the range of 0.0 to
-1.0, where 0 is the center of the joystick and 1 is the outer limit.
-The default is 0.85.
-.TP
-.B \-[no]natural, \-[no]nat
-Allows user to specify whether or not to use a natural keyboard.
-This allows you to start your game or system in a 'native' mode, depending
-on your region, allowing compatibility for non\-"QWERTY" style keyboards.
-The default is OFF (\-nonatural).
-.TP
-.B \-[no]joystick_contradictory, \-[no]joy_contradictory
-Enable contradictory direction digital joystick input at the same time.
-Default is OFF (\-nojoystick_contradictory).
-.TP
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.TP
-.B \-uimodekey, \-umk \fIvalue
-Specifies the key used to toggle between full and partial UI mode.
-.TP
-.B \-uifontprovider \fIauto\fR|\fIsdl\fR|\fInone
-Provider for ui font.
-.TP
-.B \-output \fIconsole\fR|\fInetwork\fR|\fInone
-Provider for output.
-.TP
-.B \-keyboardprovider \fIauto\fR|\fIsdl\fR|\fInone
-Provider for keyboard input.
-.TP
-.B \-mouseprovider \fIauto\fR|\fIsdl\fR|\fInone
-Provider for mouse input.
-.TP
-.B \-lightgunprovider \fIauto\fR|\fInone
-Provider for lightgun input.
-.TP
-.B \-joystickprovider \fIauto\fR|\fIsdl\fR|\fInone
-Provider for joystick input.
-.TP
-.B \-[no]keymap
-Enable keymap for non\-QWERTY keyboards. Used in conjunction with
-\fB\-keymap_file\fR. Default is OFF (\-nokeymap).
-.TP
-.B \-keymap_file \fIkeymap_file
-Specifies the full path to the keymap file to be used. A few
-keymap files are available in /usr/share/games/mess/keymaps.
-.TP
-.B \-joy_idx[0\-8] \fIjoystick
-With these options you can assign a joystick to a
-specific index in MESS. Even if the kernel will list the joysticks
-in a different order on the next boot, MESS will still see the joystick
-as e.g. "Joystick 2". Use mame \-v to see which joysticks are recognized.
-Default is 'auto'.
-.TP
-.B \-[no]sixaxis
-Use special handling for PS3 Sixaxis controllers.
-Default is OFF (\-nosixaxis).
-.TP
-.B \-lightgun_index[1\-8]
-Map lightgun to specific index in MESS.
-.TP
-.B \-videodriver, \-vd x11\fR|\fBdirectfb\fR|\fBauto
-SDL video driver to use; auto selects SDL default.
-.TP
-.B \-audiodriver, \-ad alsa\fR|\fBarts\fR|\fBauto
-SDL audio driver to use; auto selects SDL default.
-.TP
-.B \-gl_lib alsa\fR|\fBarts\fR|\fBauto
-Alternative libGL.so to use; auto selects SDL default.
-.\"
-.\" *******************************************************
-.SS Input automatic enable options
-.\" *******************************************************
-.TP
-.B \-paddle_device, \-paddle \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-.TP
-.B \-adstick_device, \-adstick \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-.TP
-.B \-pedal_device, \-pedal \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-.TP
-.B \-dial_device, \-dial \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-.TP
-.B \-trackball_device, \-trackball \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-.TP
-.B \-lightgun_device \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-.TP
-.B \-positional_device \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-.TP
-.B \-mouse_device \fR[\fInone\fR|\fIkeyboard\fR|\fImouse\fR|\fIlightgun\fR|\fIjoystick\fR]
-Each of these options controls automatically enabling the mouse, or
-joystick depending on the presence of a particular class of analog
-control for a particular system. For example, if you specify the option
-\-paddle mouse, then any system that has a paddle control will automatically
-enable mouse controls just as if you had explicitly specified \-mouse.
-Note that these controls override the values of \-[no]mouse, \-[no]joystick, etc.
-.\"
-.\" *******************************************************
-.SS Debugging options
-.\" *******************************************************
-.TP
-.B \-[no]log
-Creates a file called error.log which contains all of the internal
-log messages generated by the MESS core and system drivers. The default
-is OFF (\-nolog).
-.TP
-.B \-[no]verbose, \-[no]v
-Displays internal diagnostic information. This information is very
-useful for debugging problems with your configuration.
-Please use the \-verbose option and include the resulting information
-when reporting bugs. The default is OFF (\-noverbose).
-.TP
-.B \-[no]update_in_pause
-Enables updating the screen bitmap while the system is paused. This is
-useful for debuggin in some scenarios (and gets in the way in others).
-Default is OFF (\-noupdate_in_pause).
-.TP
-.B \-[no]debug, \-[no]d
-Activates the integrated debugger. By default, the debugger is entered
-by pressing the tilde (~) key during emulation. It is also entered
-immediately at startup. The default is OFF (\-nodebug).
-.TP
-.B \-debugscript \fIfilename
-Specifies a file that contains a list of debugger commands to execute
-immediately upon startup. The default is NULL (no commands).
-.\"
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.\" SDL specific
-.\" +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-.TP
-.B \-debugger \fIdebugger_name
-Name of the debugger to use. Default is AUTO.
-.TP
-.B \-debugger_font, \-dfont \fIfont_name
-Specifies the font to use for debugging. Default is AUTO.
-.TP
-.B \-debugger_font_size, \-dfontsize \fIsize
-Specifies the font size to use for debugging.
-.TP
-.B \-[no]oslog
-Outputs the error.log data to the system debugger. This can be used at
-the same time as \-log to output the log data to both targets as well.
-Default is OFF (\-nooslog).
-.\"
-.\" *******************************************************
-.SS Misc options
-.\" *******************************************************
-.TP
-.B \-[no]drc
-Enable DRC cpu core if available. Default is ON (\-drc).
-.TP
-.B \-[no]drc_use_c
-Force DRC use C backend. Default is OFF (\-nodrc_use_c).
-.TP
-.B \-[no]drc_log_uml
-Write DRC UML disassembly log. Default is OFF (\-nodrc_log_uml).
-.TP
-.B \-[no]drc_log_native
-Write DRC native disassembly log. Default is OFF (\-no_drc_log_native).
-.TP
-.B \-bios \fIbiosname
-Specifies the specific BIOS to use with the current system, for
-systems that make use of a BIOS. The \-listxml output will list all of
-the possible BIOS names for a system. The default is 'default'.
-.TP
-.B \-[no]cheat, \-[no]c
-Activates the cheat menu with autofire options and other tricks from
-the cheat database, if present.
-The default is OFF (\-nocheat).
-.TP
-.B \-[no]skip_gameinfo
-Forces MESS to skip displaying the system info screen. The default is OFF
-(\-noskip_gameinfo).
-.TP
-.B \-uifont \fIfontname
-Specifies the name of a BDF font file to use for the UI font. If this
-font cannot be found or cannot be loaded, the system will fall back
-to its built\-in UI font. On some platforms \fIfontname\fP can be a system
-font name instead of a BDF font file. The default is 'default' (use
-the OSD\-determined default font).
-.TP
-.B \-ui \fIsimple\fR|\fIcabinet
-Type of UI.
-.TP
-.B \-ramsize, \-ram \fIvalue
-Size of RAM (if supported by driver).
-.TP
-.B \-[no]confirm_quit
-Display confirm quit screen on exit. Default is ON (\-confirm_quit).
-.TP
-.B \-[no]ui_mouse
-Display UI mouse cursor. Default is OFF (\-noui_mouse).
-.TP
-.B \-autoboot_command, \-ab \fIcommand
-Command string to execute after machine boot (in quotes ""). To issue
-a quote to the emulation, use \fB"""\fP in the string.
-Using \fB\\n\fP will issue a create a new line, issuing what was
-typed prior as a command. Example:
-\fB\-autoboot_command "load """$""",8,1\\n"\fP.
-.TP
-.B \-autoboot_delay \fR[\fIvalue\fP]
-Timer delay (in seconds) to trigger command execution on autoboot.
-Default is 2.
-.TP
-.B \-autoboot_script, \-script \fR[\fIfilename.lua\fP]
-File containing scripting to execute after machine boot.
-.TP
-.B \-[no]http
-Enable local http server. Default is OFF (\-nohttp).
-.TP
-.B \-http_port \fIport
-Internal webserver listener port.
-.TP
-.B \-http_path \fIpath
-Path to web files. Default is /usr/share/games/mess/web.
-.TP
-.B \-[no]console
-Enable emulator LUA console. Default is OFF (\-noconsole).
-.TP
-.B \-[no]plugins
-Enable LUA plugin support. Default is ON (\-plugins).
-.TP
-.B \-plugin \fIvalue
-List of plugins to enable.
-.TP
-.B \-noplugin \fIvalue
-List of plugins to disable.
-.TP
-.B \-language, \-lang \fIvalue
-Display language. Default is 'English'.
-.TP
-.B \-newui, \-nu
-Use the new MESS UI.
-.TP
-.B \-watchdog \fIvalue
-Specifies a number of seconds after which MESS should automatically exit
-if it detects that the emulation has locked up.
-.\"
-.\"
-.\" SEE ALSO chapter
-.SH SEE ALSO
-castool(1), chdman(1), floptool(1), imgtool(1)
-.\"
-.\"
-.\" LEGAL NOTICE chapter
-.SH LEGAL NOTICE
-Please visit the MAME website for some important legal information:
-.PP
-http://mamedev.org/legal.html
diff --git a/docs/source/usingmame/mamemenus.rst b/docs/source/usingmame/mamemenus.rst
index 0673528214d..297f3870a6d 100644
--- a/docs/source/usingmame/mamemenus.rst
+++ b/docs/source/usingmame/mamemenus.rst
@@ -165,10 +165,6 @@ from the :ref:`main menu <menus-main>`. The items shown on this menu depend on
available emulated inputs for the running system. Available emulated inputs may
depend on slot options, machine configuration settings and DIP switch settings.
-Input Assignments (general)
- Lets you select assign user interface controls, or assign default controls
- for all emulated systems. See the section on :ref:`configuring inputs
- <ui-inptcfg>` for more details.
Input Assignments (this system)
Lets you select assign controls to emulated inputs for the running system.
See the section on :ref:`configuring inputs <ui-inptcfg>` for more details.
@@ -190,6 +186,10 @@ Toggle Inputs
Shows the :ref:`Toggle Inputs menu <menus-inputtoggle>`, where you can view
and adjust the state of multi-position or toggle inputs. This item is not
shown if the running system has no enabled toggle inputs.
+Input Assignments (general)
+ Lets you select assign user interface controls, or assign default controls
+ for all emulated systems. See the section on :ref:`configuring inputs
+ <ui-inptcfg>` for more details.
Input Devices
Shows the :ref:`Input Devices menu <menus-inputdevices>`, which lists the
input devices recognised by MAME.
diff --git a/scripts/build/verinfo.py b/scripts/build/verinfo.py
index 59e383624cc..7e61012b796 100644
--- a/scripts/build/verinfo.py
+++ b/scripts/build/verinfo.py
@@ -1,171 +1,137 @@
#!/usr/bin/python3
##
## license:BSD-3-Clause
-## copyright-holders:Aaron Giles, Andrew Gardner
+## copyright-holders:Vas Crabb
+import argparse
import io
import re
+import string
import sys
def parse_args():
- def usage():
- sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume] [-r|-p] [-o <outfile>] <srcfile>\n')
- sys.exit(1)
-
- flags = True
- target = 'mame'
- format = 'rc'
- input = None
- output = None
- i = 1
- while i < len(sys.argv):
- if flags and (sys.argv[i] == '-r'):
- format = 'rc'
- elif flags and (sys.argv[i] == '-p'):
- format = 'plist'
- elif flags and (sys.argv[i] == '-b'):
- i += 1
- if i >= len(sys.argv):
- usage()
- else:
- target = sys.argv[i]
- elif flags and (sys.argv[i] == '-o'):
- i += 1
- if (i >= len(sys.argv)) or (output is not None):
- usage()
- else:
- output = sys.argv[i]
- elif flags and (sys.argv[i] == '--'):
- flags = False
- elif flags and sys.argv[i].startswith('-'):
- usage()
- elif input is not None:
- usage()
- else:
- input = sys.argv[i]
- i += 1
- if input is None:
- usage()
- return target, format, input, output
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--target', '-t', metavar='<target>', default='mame', help='target name')
+ parser.add_argument('--subtarget', '-s', metavar='<subtarget>', default='mame', help='subtarget name')
+ parser.add_argument('--executable', '-e', metavar='<executable>', default='mame', help='base executable name')
+ parser.add_argument('--format', '-f', choices=('rc', 'plist'), metavar='<format>', default='rc', help='output format')
+ parser.add_argument('--resources', '-r', metavar='<resfile>', help='resource file to include')
+ parser.add_argument('-o', metavar='<outfile>', help='output file name')
+ parser.add_argument('input', metavar='<srcfile>', help='version info source file')
+ return parser.parse_args()
-def extract_version(input):
+def extract_version(verinfo):
pattern = re.compile('\s+BARE_BUILD_VERSION\s+"(([^."]+)\.([^."]+))"')
- for line in input.readlines():
+ for line in verinfo:
match = pattern.search(line)
if match:
return match.group(1), match.group(2), match.group(3)
return None, None, None
-build, outfmt, srcfile, dstfile = parse_args()
-
-try:
- fp = io.open(srcfile, 'r')
-except IOError:
- sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
- sys.exit(1)
-
-version_string, version_major, version_minor = extract_version(fp)
-version_build = "0"
-version_subbuild = "0"
-if not version_string:
- sys.stderr.write("Unable to extract version from source file '%s'\n" % srcfile)
- sys.exit(1)
-fp.close()
+if __name__ == '__main__':
+ options = parse_args()
-if dstfile is not None:
try:
- fp = open(dstfile, 'w')
- except IOError:
- sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
+ with io.open(options.input, 'r') as verinfo:
+ verfull, vermajor, verminor = extract_version(verinfo)
+ verbuild = '0'
+ except IOError as e:
+ sys.stderr.write("Error reading source file '%s': %s\n" % (options.input, e))
sys.exit(1)
-else:
- fp = sys.stdout
-if build == "mess":
- # MESS
- author = "MESS Team"
- comments = "Multi Emulation Super System"
- company_name = "MESS Team"
- file_description = "MESS"
- internal_name = "MESS"
- original_filename = "MESS"
- product_name = "MESS"
- bundle_identifier = "org.mamedev.mess"
-else:
- # MAME
- author = "Nicola Salmoria and the MAME Team"
- comments = "Multi-purpose emulation framework"
- company_name = "MAME Team"
- file_description = "MAME"
- internal_name = "MAME" if build == "mame" else build
- original_filename = "MAME" if build == "mame" else build
- product_name = "MAME" if build == "mame" else build
- bundle_identifier = "org.mamedev." + build
+ if verfull is None:
+ sys.stderr.write("Unable to extract version from source file '%s'\n" % (options.input, ))
+ sys.exit(1)
+
+ if options.format == 'plist':
+ template = string.Template(
+ '<?xml version="1.0" encoding="UTF-8"?>\n' \
+ '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n' \
+ '<plist version="1.0">\n' \
+ '<dict>\n' \
+ '\t<key>CFBundleDisplayName</key>\n' \
+ '\t<string>${product}</string>\n' \
+ '\t<key>CFBundleIdentifier</key>\n' \
+ '\t<string>${rdns}</string>\n' \
+ '\t<key>CFBundleInfoDictionaryVersion</key>\n' \
+ '\t<string>6.0</string>\n' \
+ '\t<key>CFBundleName</key>\n' \
+ '\t<string>${product}</string>\n' \
+ '\t<key>CFBundleShortVersionString</key>\n' \
+ '\t<string>${major}.${minor}.${build}</string>\n' \
+ '\t<key>NSPrincipalClass</key>\n' \
+ '\t<string>NSApplication</string>\n' \
+ '</dict>\n' \
+ '</plist>\n')
+ else:
+ template = string.Template(
+ '#include <windows.h>\n' \
+ '#pragma code_page(65001)\n' \
+ 'VS_VERSION_INFO VERSIONINFO\n' \
+ '\tFILEVERSION ${major},${minor},${build},${subbuild}\n' \
+ '\tPRODUCTVERSION ${major},${minor},${build},${subbuild}\n' \
+ '\tFILEFLAGSMASK 0x3fL\n' \
+ '\tFILEFLAGS ${winfileflags}\n' \
+ '\tFILEOS VOS_NT_WINDOWS32\n' \
+ '\tFILETYPE VFT_APP\n' \
+ '\tFILESUBTYPE VFT2_UNKNOWN\n' \
+ 'BEGIN\n' \
+ '\tBLOCK "StringFileInfo"\n' \
+ '\tBEGIN\n' \
+ '#ifdef UNICODE\n' \
+ '\t\tBLOCK "040904b0"\n' \
+ '#else\n' \
+ '\t\tBLOCK "040904E4"\n' \
+ '#endif\n' \
+ '\t\tBEGIN\n' \
+ '\t\t\tVALUE "Author", "${author}\\0"\n' \
+ '\t\t\tVALUE "Comments", "${comments}\\0"\n' \
+ '\t\t\tVALUE "CompanyName", "${company}\\0"\n' \
+ '\t\t\tVALUE "FileDescription", "${filedesc}\\0"\n' \
+ '\t\t\tVALUE "FileVersion", "${major}, ${minor}, ${build}, ${subbuild}\\0"\n' \
+ '\t\t\tVALUE "InternalName", "${internal}\\0"\n' \
+ '\t\t\tVALUE "LegalCopyright", "${copyright}\\0"\n' \
+ '\t\t\tVALUE "OriginalFilename", "${original}\\0"\n' \
+ '\t\t\tVALUE "ProductName", "${product}\\0"\n' \
+ '\t\t\tVALUE "ProductVersion", "${version}\\0"\n' \
+ '\t\tEND\n' \
+ '\tEND\n' \
+ '\tBLOCK "VarFileInfo"\n' \
+ '\tBEGIN\n' \
+ '#ifdef UNICODE\n' \
+ '\t\tVALUE "Translation", 0x409, 1200\n' \
+ '#else\n' \
+ '\t\tVALUE "Translation", 0x409, 1252\n' \
+ '#endif\n' \
+ '\tEND\n' \
+ 'END\n' \
+ '#include "${resources}"\n')
-legal_copyright = "Copyright Nicola Salmoria and the MAME team"
+ internal = options.target + '_' + options.subtarget if options.target != options.subtarget else options.target
+ text = template.substitute(
+ version=verfull,
+ major=vermajor, minor=verminor, build='0', subbuild='0',
+ author='MAMEdev and contributors',
+ comments='Multi-purpose emulation framework',
+ company='MAMEdev',
+ filedesc='MAME',
+ internal=internal,
+ original=options.executable,
+ product=('MAME' if options.target == 'mame' else options.target),
+ rdns=('org.mamedev.' + internal),
+ copyright='\u00a9 1997-2022 MAMEdev and contributors',
+ winfileflags=('0x0L' if verbuild == '0' else 'VS_FF_PRERELEASE'),
+ resources=(options.resources or 'mame.rc'))
-if outfmt == 'rc':
- fp.write('VS_VERSION_INFO VERSIONINFO\n')
- fp.write('\tFILEVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild))
- fp.write('\tPRODUCTVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild))
- fp.write('\tFILEFLAGSMASK 0x3fL\n')
- if version_build == 0:
- fp.write('\tFILEFLAGS 0x0L\n')
+ if options.o is not None:
+ try:
+ with io.open(options.o, 'w', encoding='utf-8') as out:
+ out.write(text)
+ except IOError as e:
+ sys.stderr.write("Error writing output file '%s': %s\n" % (options.o, e))
+ sys.exit(1)
else:
- fp.write('\tFILEFLAGS VS_FF_PRERELEASE\n')
- fp.write('\tFILEOS VOS_NT_WINDOWS32\n')
- fp.write('\tFILETYPE VFT_APP\n')
- fp.write('\tFILESUBTYPE VFT2_UNKNOWN\n')
- fp.write('BEGIN\n')
- fp.write('\tBLOCK "StringFileInfo"\n')
- fp.write('\tBEGIN\n')
- fp.write('#ifdef UNICODE\n')
- fp.write('\t\tBLOCK "040904b0"\n')
- fp.write('#else\n')
- fp.write('\t\tBLOCK "040904E4"\n')
- fp.write('#endif\n')
- fp.write('\t\tBEGIN\n')
- fp.write('\t\t\tVALUE "Author", "%s\\0"\n' % author)
- fp.write('\t\t\tVALUE "Comments", "%s\\0"\n' % comments)
- fp.write('\t\t\tVALUE "CompanyName", "%s\\0"\n' % company_name)
- fp.write('\t\t\tVALUE "FileDescription", "%s\\0"\n' % file_description)
- fp.write('\t\t\tVALUE "FileVersion", "%s, %s, %s, %s\\0"\n' % (version_major, version_minor, version_build, version_subbuild))
- fp.write('\t\t\tVALUE "InternalName", "%s\\0"\n' % internal_name)
- fp.write('\t\t\tVALUE "LegalCopyright", "%s\\0"\n' % legal_copyright)
- fp.write('\t\t\tVALUE "OriginalFilename", "%s\\0"\n' % original_filename)
- fp.write('\t\t\tVALUE "ProductName", "%s\\0"\n' % product_name)
- fp.write('\t\t\tVALUE "ProductVersion", "%s\\0"\n' % version_string)
- fp.write('\t\tEND\n')
- fp.write('\tEND\n')
- fp.write('\tBLOCK "VarFileInfo"\n')
- fp.write('\tBEGIN\n')
- fp.write('#ifdef UNICODE\n')
- fp.write('\t\tVALUE "Translation", 0x409, 1200\n')
- fp.write('#else\n')
- fp.write('\t\tVALUE "Translation", 0x409, 1252\n')
- fp.write('#endif\n')
- fp.write('\tEND\n')
- fp.write('END\n')
-elif outfmt == 'plist':
- fp.write('<?xml version="1.0" encoding="UTF-8"?>\n')
- fp.write('<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n')
- fp.write('<plist version="1.0">\n')
- fp.write('<dict>\n')
- fp.write('\t<key>CFBundleDisplayName</key>\n')
- fp.write('\t<string>%s</string>\n' % product_name)
- fp.write('\t<key>CFBundleIdentifier</key>\n')
- fp.write('\t<string>%s</string>\n' % bundle_identifier)
- fp.write('\t<key>CFBundleInfoDictionaryVersion</key>\n')
- fp.write('\t<string>6.0</string>\n')
- fp.write('\t<key>CFBundleName</key>\n')
- fp.write('\t<string>%s</string>\n' % product_name)
- fp.write('\t<key>CFBundleShortVersionString</key>\n')
- fp.write('\t<string>%s.%s.%s</string>\n' % (version_major, version_minor, version_build))
- fp.write('\t<key>NSPrincipalClass</key>\n')
- fp.write('\t<string>NSApplication</string>\n')
- fp.write('</dict>\n')
- fp.write('</plist>\n')
-fp.flush()
+ sys.stdout.write(text)
diff --git a/scripts/resources/windows/mame/mame.rc b/scripts/resources/windows/mame/mame.rc
index 8156b424c64..14caef933b9 100644
--- a/scripts/resources/windows/mame/mame.rc
+++ b/scripts/resources/windows/mame/mame.rc
@@ -6,9 +6,6 @@
//
//============================================================
-#include <windows.h>
-#include "mamevers.rc"
-
1 24 MOVEABLE PURE "mame.man"
2 ICON DISCARDABLE "mame.ico"
diff --git a/scripts/resources/windows/mess/mess.ico b/scripts/resources/windows/mess/mess.ico
deleted file mode 100644
index bab67dd6195..00000000000
--- a/scripts/resources/windows/mess/mess.ico
+++ /dev/null
Binary files differ
diff --git a/scripts/resources/windows/mess/mess.man b/scripts/resources/windows/mess/mess.man
deleted file mode 100644
index 7feef51ce9f..00000000000
--- a/scripts/resources/windows/mess/mess.man
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
- <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="MESS" type="win32" />
- <description>MESS</description>
- <dependency>
- <dependentAssembly>
- <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
- </dependentAssembly>
- </dependency>
- <asmv3:application>
- <asmv3:windowsSettings>
- <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
- <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
- </asmv3:windowsSettings>
- </asmv3:application>
-</assembly>
diff --git a/scripts/resources/windows/mess/mess.rc b/scripts/resources/windows/mess/mess.rc
deleted file mode 100644
index 1329bcd6fb8..00000000000
--- a/scripts/resources/windows/mess/mess.rc
+++ /dev/null
@@ -1,14 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Aaron Giles
-//============================================================
-//
-// mess.rc - Minimal resource file for Win32 MAME
-//
-//============================================================
-
-#include <windows.h>
-#include "messvers.rc"
-
-1 24 MOVEABLE PURE "mess.man"
-
-2 ICON DISCARDABLE "mess.ico"
diff --git a/scripts/src/main.lua b/scripts/src/main.lua
index c76fa1da227..da2ba71b61f 100644
--- a/scripts/src/main.lua
+++ b/scripts/src/main.lua
@@ -10,20 +10,18 @@
---------------------------------------------------------------------------
function mainProject(_target, _subtarget)
+local projname
if (_OPTIONS["SOURCES"] == nil) then
if (_target == _subtarget) then
- project (_target)
+ projname = _target
else
- if (_subtarget=="mess") then
- project (_subtarget)
- else
- project (_target .. _subtarget)
- end
+ projname = _target .. _subtarget
end
else
- project (_subtarget)
+ projname = _subtarget
end
- uuid (os.uuid(_target .."_" .. _subtarget))
+ project (projname)
+ uuid (os.uuid(_target .. "_" .. _subtarget))
kind "ConsoleApp"
configuration { "android*" }
@@ -196,7 +194,8 @@ end
override_resources = false;
- maintargetosdoptions(_target,_subtarget)
+ maintargetosdoptions(_target, _subtarget)
+ local exename = projname -- FIXME: should include the OSD prefix if any
includedirs {
MAME_DIR .. "src/osd",
@@ -207,11 +206,15 @@ end
MAME_DIR .. "src/lib/util",
MAME_DIR .. "3rdparty",
GEN_DIR .. _target .. "/layout",
- GEN_DIR .. "resource",
ext_includedir("zlib"),
ext_includedir("flac"),
}
+ resincludedirs {
+ MAME_DIR .. "scripts/resources/windows/" .. _target,
+ GEN_DIR .. "resource",
+ }
+
if (STANDALONE==true) then
standalone();
@@ -219,71 +222,96 @@ end
if (STANDALONE~=true) then
if _OPTIONS["targetos"]=="macosx" and (not override_resources) then
+ local plistname = _target .. "_" .. _subtarget .. "-Info.plist"
linkoptions {
- "-sectcreate __TEXT __info_plist " .. _MAKE.esc(GEN_DIR) .. "resource/" .. _subtarget .. "-Info.plist"
+ "-sectcreate __TEXT __info_plist " .. _MAKE.esc(GEN_DIR) .. "resource/" .. plistname
}
custombuildtask {
- { GEN_DIR .. "version.cpp" , GEN_DIR .. "resource/" .. _subtarget .. "-Info.plist", { MAME_DIR .. "scripts/build/verinfo.py" }, {"@echo Emitting " .. _subtarget .. "-Info.plist" .. "...", PYTHON .. " $(1) -p -b " .. _subtarget .. " $(<) > $(@)" }},
+ {
+ GEN_DIR .. "version.cpp",
+ GEN_DIR .. "resource/" .. plistname,
+ { MAME_DIR .. "scripts/build/verinfo.py" },
+ {
+ "@echo Emitting " .. plistname .. "...",
+ PYTHON .. " $(1) -f plist -t " .. _target .. " -s " .. _subtarget .. " -e " .. exename .. " -o $(@) $(<)"
+ }
+ },
}
dependency {
- { "$(TARGET)" , GEN_DIR .. "resource/" .. _subtarget .. "-Info.plist", true },
+ { "$(TARGET)" , GEN_DIR .. "resource/" .. plistname, true },
}
end
- local rctarget = _subtarget
+ local rcversfile = GEN_DIR .. "resource/" .. _target .. "_" .. _subtarget .. "_vers.rc"
if _OPTIONS["targetos"]=="windows" and (not override_resources) then
- rcfile = MAME_DIR .. "scripts/resources/windows/" .. _subtarget .. "/" .. rctarget ..".rc"
- if os.isfile(rcfile) then
- files {
- rcfile,
- }
- dependency {
- { "$(OBJDIR)/".._subtarget ..".res" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", true },
- }
- else
- rctarget = "mame"
- files {
- MAME_DIR .. "scripts/resources/windows/mame/mame.rc",
- }
- dependency {
- { "$(OBJDIR)/mame.res" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", true },
- }
- end
+ files {
+ rcversfile
+ }
+ end
+
+ local rcincfile = MAME_DIR .. "scripts/resources/windows/" .. _target .. "/" .. _subtarget ..".rc"
+ if not os.isfile(rcincfile) then
+ rcincfile = MAME_DIR .. "scripts/resources/windows/mame/mame.rc"
+ resincludedirs {
+ MAME_DIR .. "scripts/resources/windows/mame",
+ }
end
- local mainfile = MAME_DIR .. "src/".._target .."/" .. _subtarget ..".cpp"
+ local mainfile = MAME_DIR .. "src/" .. _target .. "/" .. _subtarget .. ".cpp"
if not os.isfile(mainfile) then
- mainfile = MAME_DIR .. "src/".._target .."/" .. _target ..".cpp"
+ mainfile = MAME_DIR .. "src/" .. _target .. "/" .. _target .. ".cpp"
end
files {
mainfile,
GEN_DIR .. "version.cpp",
- GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp",
+ GEN_DIR .. _target .. "/" .. _subtarget .. "/drivlist.cpp",
}
if (_OPTIONS["SOURCES"] == nil) then
- if os.isfile(MAME_DIR .. "src/".._target .."/" .. _subtarget ..".flt") then
+ if os.isfile(MAME_DIR .. "src/" .. _target .."/" .. _subtarget ..".flt") then
dependency {
- {
- GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
+ { GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
}
custombuildtask {
- { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".flt" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makedep.py", MAME_DIR .. "src/".._target .."/" .. _target ..".lst" }, {"@echo Building driver list...", PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)" }},
+ {
+ MAME_DIR .. "src/" .. _target .. "/" .. _subtarget .. ".flt",
+ GEN_DIR .. _target .. "/" .. _subtarget .. "/drivlist.cpp",
+ { MAME_DIR .. "scripts/build/makedep.py", MAME_DIR .. "src/" .. _target .."/" .. _target .. ".lst" },
+ {
+ "@echo Building driver list...",
+ PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)"
+ }
+ },
}
else
- if os.isfile(MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst") then
+ if os.isfile(MAME_DIR .. "src/" .._target .. "/" .. _subtarget ..".lst") then
custombuildtask {
- { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makedep.py" }, {"@echo Building driver list...", PYTHON .. " $(1) driverlist $(<) > $(@)" }},
+ {
+ MAME_DIR .. "src/" .. _target .. "/" .. _subtarget .. ".lst",
+ GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp",
+ { MAME_DIR .. "scripts/build/makedep.py" },
+ {
+ "@echo Building driver list...",
+ PYTHON .. " $(1) driverlist $(<) > $(@)"
+ }
+ },
}
else
dependency {
- {
- GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
+ { GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
}
custombuildtask {
- { MAME_DIR .. "src/".._target .."/" .. _target ..".lst" , GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makedep.py" }, {"@echo Building driver list...", PYTHON .. " $(1) driverlist $(<) > $(@)" }},
+ {
+ MAME_DIR .. "src/" .. _target .. "/" .. _target .. ".lst",
+ GEN_DIR .. _target .. "/" .. _target .. "/drivlist.cpp",
+ { MAME_DIR .. "scripts/build/makedep.py" },
+ {
+ "@echo Building driver list...",
+ PYTHON .. " $(1) driverlist $(<) > $(@)"
+ }
+ },
}
end
end
@@ -292,7 +320,7 @@ if (STANDALONE~=true) then
if (_OPTIONS["SOURCES"] ~= nil) then
dependency {
{
- GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
+ GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
}
custombuildtask {
{ GEN_DIR .. _target .."/" .. _subtarget ..".flt" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makedep.py", MAME_DIR .. "src/".._target .."/" .. _target ..".lst" }, {"@echo Building driver list...", PYTHON .. " $(1) driverlist $(2) -f $(<) > $(@)" }},
@@ -300,15 +328,29 @@ if (STANDALONE~=true) then
end
configuration { "mingw*" }
+ dependency {
+ { "$(OBJDIR)/" .. _target .. "_" .. _subtarget .. "_vers.res", rcincfile, true },
+ }
custombuildtask {
- { GEN_DIR .. "version.cpp" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", { MAME_DIR .. "scripts/build/verinfo.py" }, {"@echo Emitting " .. rctarget .. "vers.rc" .. "...", PYTHON .. " $(1) -r -b " .. rctarget .. " $(<) > $(@)" }},
+ {
+ GEN_DIR .. "version.cpp" ,
+ rcversfile,
+ { MAME_DIR .. "scripts/build/verinfo.py" },
+ {
+ "@echo Emitting " .. _target .. "_" .. _subtarget .. "_vers.rc" .. "...",
+ PYTHON .. " $(1) -f rc -t " .. _target .. " -s " .. _subtarget .. " -e " .. exename .. " -r " .. rcincfile .. " -o $(@) $(<)"
+ }
+ },
}
configuration { "vs20*" }
+ dependency {
+ { "$(OBJDIR)/" .. _target .. "_" .. _subtarget .. "_vers.res", rcincfile, true },
+ }
prebuildcommands {
- "mkdir \"" .. path.translate(GEN_DIR .. "resource/","\\") .. "\" 2>NUL",
- "@echo Emitting ".. rctarget .. "vers.rc...",
- PYTHON .. " \"" .. path.translate(MAME_DIR .. "scripts/build/verinfo.py","\\") .. "\" -r -b " .. rctarget .. " \"" .. path.translate(GEN_DIR .. "version.cpp","\\") .. "\" > \"" .. path.translate(GEN_DIR .. "resource/" .. rctarget .. "vers.rc", "\\") .. "\"" ,
+ "mkdir \"" .. path.translate(GEN_DIR .. _target .. "/" .. _subtarget .. "/", "\\") .. "\" 2>NUL",
+ "@echo Emitting " .. _target .. "_" .. _subtarget .. "_vers.rc" .. "...",
+ PYTHON .. " \"" .. path.translate(MAME_DIR .. "scripts/build/verinfo.py", "\\") .. "\" -f rc -t " .. _target .. " -s " .. _subtarget .. " -e " .. exename .. " -o \"" .. path.translate(rcversfile) .. "\" -r \"" .. path.translate(rcincfile, "\\") .. "\" \"" .. path.translate(GEN_DIR .. "version.cpp", "\\") .. "\"",
}
end
diff --git a/src/frontend/mame/ui/inputopts.cpp b/src/frontend/mame/ui/inputopts.cpp
index 6884574c6a5..ff433e72e7e 100644
--- a/src/frontend/mame/ui/inputopts.cpp
+++ b/src/frontend/mame/ui/inputopts.cpp
@@ -92,7 +92,7 @@ void menu_input_options::populate(float &customtop, float &custombottom)
bool inputmap, analog, toggle;
scan_inputs(machine(), inputmap, analog, toggle);
- item_append(_("menu-inputopts", "Input Assignments (general)"), 0, (void *)INPUTMAP_GENERAL);
+ // system-specific stuff
if (inputmap)
item_append(_("menu-inputopts", "Input Assignments (this system)"), 0, (void *)INPUTMAP_MACHINE);
if (analog)
@@ -101,11 +101,12 @@ void menu_input_options::populate(float &customtop, float &custombottom)
item_append(_("menu-inputopts", "Keyboard Selection"), 0, (void *)KEYBOARD);
if (toggle)
item_append(_("menu-inputopts", "Toggle Inputs"), 0, (void *)TOGGLES);
+ if (inputmap || analog || machine().natkeyboard().keyboard_count() || toggle)
+ item_append(menu_item_type::SEPARATOR);
- item_append(menu_item_type::SEPARATOR);
-
+ // general stuff
+ item_append(_("menu-inputopts", "Input Assignments (general)"), 0, (void *)INPUTMAP_GENERAL);
item_append(_("menu-inputopts", "Input Devices"), 0, (void *)INPUTDEV);
-
item_append(menu_item_type::SEPARATOR);
}
diff --git a/src/frontend/mame/ui/miscmenu.cpp b/src/frontend/mame/ui/miscmenu.cpp
index 58792ef56c8..55a2aab986f 100644
--- a/src/frontend/mame/ui/miscmenu.cpp
+++ b/src/frontend/mame/ui/miscmenu.cpp
@@ -453,8 +453,8 @@ void menu_crosshair::populate(float &customtop, float &custombottom)
// Make sure to keep these matched to the CROSSHAIR_VISIBILITY_xxx types
static char const *const vis_text[] = {
- N_p("menu-crosshair", "Always"),
N_p("menu-crosshair", "Never"),
+ N_p("menu-crosshair", "Always"),
N_p("menu-crosshair", "When moved") };
bool use_auto = false;
diff --git a/src/mame/mame.cpp b/src/mame/mame.cpp
index 217651fd510..c3fba77d580 100644
--- a/src/mame/mame.cpp
+++ b/src/mame/mame.cpp
@@ -13,8 +13,8 @@
#define APPNAME "MAME"
#define APPNAME_LOWER "mame"
#define CONFIGNAME "mame"
-#define COPYRIGHT "Copyright Nicola Salmoria\nand the MAME team\nhttps://mamedev.org"
-#define COPYRIGHT_INFO "Copyright Nicola Salmoria and the MAME team"
+#define COPYRIGHT "Copyright MAMEdev and contributors\nhttps://mamedev.org"
+#define COPYRIGHT_INFO "Copyright MAMEdev and contributors"
const char * emulator_info::get_appname() { return APPNAME;}
const char * emulator_info::get_appname_lower() { return APPNAME_LOWER;}
diff --git a/src/mame/mess.cpp b/src/mame/mess.cpp
deleted file mode 100644
index ab1c26b59c5..00000000000
--- a/src/mame/mess.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Aaron Giles
-/***************************************************************************
-
- mess.cpp
-
- Specific (per target) constants
-
-****************************************************************************/
-
-#include "emu.h"
-
-#define APPNAME "MESS"
-#define APPNAME_LOWER "mess"
-#define CONFIGNAME "mess"
-#define COPYRIGHT "Copyright Nicola Salmoria\nand the MAME team\nhttps://mamedev.org"
-#define COPYRIGHT_INFO "Copyright Nicola Salmoria and the MAME team"
-
-const char * emulator_info::get_appname() { return APPNAME;}
-const char * emulator_info::get_appname_lower() { return APPNAME_LOWER;}
-const char * emulator_info::get_configname() { return CONFIGNAME;}
-const char * emulator_info::get_copyright() { return COPYRIGHT;}
-const char * emulator_info::get_copyright_info() { return COPYRIGHT_INFO;}