From 3da7f476068b3ffef713218ba2fc1bd5030f2c38 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Mon, 17 Dec 2007 06:11:01 +0000 Subject: [PATCH] First checkin of MAME 0.121 docs folder. --- .gitattributes | 5 + docs/config.txt | 911 ++++++++++++++++++++++++++++++++++++++++++++++ docs/license.txt | 32 ++ docs/mame.txt | 81 +++++ docs/newvideo.txt | 146 ++++++++ docs/windows.txt | 362 ++++++++++++++++++ 6 files changed, 1537 insertions(+) create mode 100644 docs/config.txt create mode 100644 docs/license.txt create mode 100644 docs/mame.txt create mode 100644 docs/newvideo.txt create mode 100644 docs/windows.txt diff --git a/.gitattributes b/.gitattributes index 8e948c534a1..339e85090ae 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,6 @@ * text=auto !eol +docs/config.txt svneol=native#text/plain +docs/license.txt svneol=native#text/plain +docs/mame.txt svneol=native#text/plain +docs/newvideo.txt svneol=native#text/plain +docs/windows.txt svneol=native#text/plain diff --git a/docs/config.txt b/docs/config.txt new file mode 100644 index 00000000000..cd29497cc89 --- /dev/null +++ b/docs/config.txt @@ -0,0 +1,911 @@ +This file describes general usage information about MAME. It is intended +to cover aspects of using and configuring the program that are common +across operating systems. For additional OS-specific options, please see +the separate documentation for your particular version of MAME. + + + +Using the program +----------------- + +The usual way to run MAME is by telling it to run a particular game: + + mame [options] + +For example: + + mame robby -nosound + +...will run Robby Roto without sound. There are many, many options +available. All commonly supported options are listed below. Options that +are specific to one operating system or version of MAME will be listed +in a separate document. + +An alternative way to run MAME is to give it a command: + + mame [parameters] + +For example: + + mame -listsource gridlee + +...will print the name of the source file where the gridlee driver lives +to the screen. There are just a handful of these commands in MAME. They +are all listed below, just before the options list. + + + +Default Keys +------------ + +All the keys below are fully configurable in the user interface. This list +shows the standard keyboard configuration. + +Tab Toggles the configuration menu. + +~ Toggles the On Screen Display. When the on-screen display is + visible, you can use the following keys to control it: + + Up - select previous parameter to modify + Down - select next parameter to modify + Enter - reset parameter value to its default + + Left - decrease the value of the selected parameter + Control+Left - decrease the value by 10x + Shift+Left - decrease the value by 0.1x + Alt+Left - decrease the value by the smallest amount + + Right - increase the value of the selected parameter + Control+Right - increase the value by 10x + Shift+Right - increase the value by 0.1x + Alt+Right - increase the value by the smallest amount + +P Pauses the game. + +Shift+P While paused, advances to next frame. + +F1 Toggle crosshairs for games that use them. Each subsequent + press will enable crosshairs for one more player. + +F2 Service Mode for games that support it. + +F3 Resets the game. + +Shift+F3 Performs a "hard reset", which tears everything down and re- + creates it from scratch. This is a more thorough and complete + reset than an F3. + +F4 Shows the game palette, decoded GFX, and any tilemaps. Use the + Enter key to switch between the three modes (palette, graphics, + and tilemaps). Press F4 again to turn off the display. The key + controls in each mode vary slightly: + + * Palette/colortable mode: + [ ] - switch between palette and colortable modes + Up/Down - scroll up/down one line at a time + Page Up/Page Down - scroll up/down one page at a time + Home/End - move to top/bottom of list + -/+ - increase/decrease the number of colors per row + Enter - switch to graphics viewer + + * Graphics mode: + [ ] - switch between different graphics sets + Up/Down - scroll up/down one line at a time + Page Up/Page Down - scroll up/down one page at a time + Home/End - move to top/bottom of list + Left/Right - change color displayed + R - rotate tiles 90 degrees clockwise + -/+ - increase/decrease the number of tiles per row + Enter - switch to tilemap viewer + + * Tilemap mode: + [ ] - switch between different tilemaps + Up/Down/Left/Right - scroll 8 pixels at a time + Shift+Up/Down/Left/Right - scroll 1 pixel at a time + Control+Up/Down/Left/Right - scroll 64 pixels at a time + R - rotate tilemap view 90 degrees clockwise + -/+ - increase/decrease the zoom factor + Enter - switch to palette/colortable mode + + Note: Not all games have decoded graphics and/or tilemaps. + +F6 Toggle cheat mode (if started with "-cheat"). + +F7 Load a save state. You will be requested to press a key to + determine which save state you wish to load. Note that the save + state feature is not supported for a large number of drivers. If + support is not enabled for a given driver, you will receive a + warning when attempting to save or load. + +Shift+F7 Create a save state. Requires an additional keypress to identify + the state, similar to the load option above. + +F8 Decrease frame skip on the fly. + +F9 Increase frame skip on the fly. + +F10 Toggle speed throttling. + +F11 Toggles speed display. + +Shift+F11 Toggles profiler display (debug builds only). + +F12 Saves a screen snapshot. + +Insert Fast forward. While held, runs the game with throttling disabled + and with the maximum frameskip. + +Escape Exits emulator. + + + + +Core commands +------------- + +-help / -h / -? + + Displays current MAME version and copyright notice. + +-validate / -valid + + Performs internal validation on every driver in the system. Run this + before submitting changes to ensure that you haven't violated any of + the core system rules. + + + +Configuration commands +---------------------- + +-createconfig / -cc + + Creates the default mame.ini file. All the configuration options + (not commands) described below can be permanently changed by editing + this configuration file. + +-showconfig / -sc + + Displays the current configuration settings. If you route this to a + file, you can use it as an INI file. For example, the command: + + mame -showconfig >mame.ini + + is equivalent to -createconfig. + +-showusage / -su + + Displays a summary of all the command line options. For options that + are not mentioned here, the short summary given by "mame -showusage" + is usually sufficient. + + + +Frontend commands +----------------- + +Note: By default, all the '-list' commands below write info to the screen. +If you wish to write the info to a textfile instead, add this to the end +of your command: + + > filename + +...where 'filename' is the textfile's path and name +(e.g., c:\mame\list.txt). + +-listxml / -lx [] + + List comprehensive details for all of the supported games. 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 games are listed; however, + you can limit this list by specifying a driver name or wildcard after + the -listxml command. + +-listfull / -ll [] + + Displays a list of game driver names and descriptions. By default all + games are listed; however, you can limit this list by specifying a + driver name or wildcard after the -listfull command. + +-listsource / -ls [] + + Displays a list of drivers and the names of the source files their + game drivers live in. Useful for finding which driver a game runs on + in order to fix bugs. By default all games are listed; however, you + can limit this list by specifying a driver name or wildcard after + the -listsource command. + +-listclones / -lc [] + + 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 -listsource command. + +-listcrc + + Displays a full list of CRCs of all ROM images referenced by all + drivers within MAME. + +-listroms + + Displays a list of ROM images referenced by the specified game. + +-listsamples + + Displays a list of samples referenced by the specified game. + +-verifyroms [] + + Checks for invalid or missing ROM images. 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 driver name or + wildcard after the -verifyroms command. + +-verifysamples [] + + 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. + +-romident + + Attempts to identify ROM files, if they are known to MAME, 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: + + 0: means all files were identified + 7: means all files were identified except for 1 or more "non-ROM" + files + 8: means some files were identified + 9: means no files were identified + + + +Configuration options +--------------------- + +-[no]readconfig / -[no]rc + + Enables or disables the reading of the config files. When enabled + (which is the default), MAME reads the following config files in order: + + - mame.ini + - .ini (i.e. if MAME was renamed mame060.exe, MAME + parses mame060.ini here) + - mamed.ini (if this is a debug build, i.e. mamed.exe) + - vector.ini (for vector games only) + - .ini (based on the source filename of the driver) + - .ini (for clones only, may be called recursively) + - .ini + + The settings in the later ini's override those in the earlier ini's. + So, for example, if you wanted to disable overlay effects in the + vector games, you can create a vector.ini with the "effect none" line + in it, and it will override whatever effect value you have in your + mame.ini. The default is ON (-readconfig). + + + +Core search path options +------------------------ + +-rompath / -rp + + 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 MAME executable). + +-samplepath / -sp + + 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 MAME executable). + +-artpath / -artwork_directory + + 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 MAME executable). + +-ctrlrpath / -ctrlr_directory + + 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 MAME executable). + +-inipath + + Specifies a list of paths within which to find .INI files. Multiple + paths can be specified by separating them with semicolons. The default + is '.;ini' (that is, search in the current directory first, and then + in the directory "ini" in the same directory as the MAME executable). + +-fontpath + + 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 MAME executable). + + + +Core Output Directory Options +----------------------------- + +-cfg_directory + + Specifies a single directory where configuration files are stored. + Configuration files store user configurable settings that are read at + startup and written when MAME exits. The default is 'cfg' (that is, + a directory "cfg" in the same directory as the MAME executable). If + this directory does not exist, it will be automatically created. + +-nvram_directory + + Specifies a single directory where NVRAM files are stored. NVRAM files + store the contents of EEPROM and non-volatile RAM (NVRAM) for games + which used this type of hardware. This data is read at startup and + written when MAME exits. The default is 'nvram' (that is, a directory + "nvram" in the same directory as the MAME executable). If this + directory does not exist, it will be automatically created. + +-memcard_directory + + Specifies a single directory where memory card files are stored. + Memory card files store the contents of removable memory cards for + games which used this type of hardware. This data is read and written + under control of the user via the "Memory Card" menu in the user + interface. The default is 'memcard' (that is, a directory "memcard" + in the same directory as the MAME executable). If this directory does + not exist, it will be automatically created. + +-input_directory + + 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 MAME executable). If this directory + does not exist, it will be automatically created. + +-state_directory + + 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 MAME executable). If this directory + does not exist, it will be automatically created. + +-snapshot_directory + + 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 MAME executable). If this + directory does not exist, it will be automatically created. + +-diff_directory + + 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 game with a hard + disk image. The default is 'diff' (that is, a directory "diff" in the + same directory as the MAME executable). If this directory does not + exist, it will be automatically created. + +-comment_directory + + 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 game. The default is 'comments' (that + is, a directory "comments" in the same directory as the MAME + executable). If this directory does not exist, it will be + automatically created. + + + +Core Filename Options +--------------------- + +-cheat_file + + Specifies the name of the cheat database file. The default is + 'cheat.dat'. + + + +Core state/playback options +--------------------------- + +-state + + Immediately after starting the specified game, will cause the save + state in the specified to be loaded. + +-[no]autosave + + When enabled, automatically creates a save state file when exiting + MAME and automatically attempts to reload it when later starting MAME + with the same game. This only works for games that have explicitly + enabled save state support in their driver. The default is OFF + (-noautosave). + +-playback / -pb + + Specifies a file from which to play back a series of game inputs. This + feature does not work reliably for all games, but can be used to watch + a previously recorded game 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). + +-record / -rec + + Specifies a file to record all input from a game session. This can be + used to record a game session for later playback. This feature does + not work reliably for all games, but can be used to watch a previously + recorded game 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). + +-mngwrite + + Writes each video frame to the given in MNG format, + producing an animation of the game 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). + +-wavwrite + + Writes the final mixer output to the given in WAV format, + producing an audio recording of the game session. The default is + NULL (no recording). + + + +Core performance options +------------------------ + +-[no]autoframeskip / -[no]afs + + Automatically determines the frameskip level while you're playing the + game, adjusting it constantly in a frantic attempt to keep the game + running at full speed. Turning this on overrides the value you have + set for -frameskip below. The default is OFF (-noautoframeskip). + +-frameskip / -fs + + Specifies the frameskip value. This is the number of frames out of + every 12 to drop when running. For example, if you say -frameskip 2, + then MAME will display 10 out of every 12 frames. By skipping those + frames, you may be able to get full speed in a game that requires more + horsepower than your computer has. The default value is -frameskip 0, + which skips no frames. + +-seconds_to_run / -str + + This option can be used for benchmarking and automated testing. It tells + MAME 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 MAME performance. In addition, + upon exit, the -str option will write a screenshot called final.png + to the game's snapshot directory. + +-[no]throttle + + Configures the default thottling setting. When throttling is on, MAME + attempts to keep the game running at the game's intended speed. When + throttling is off, MAME runs the game as fast as it can. Note that the + fastest speed is more often than not limited by your graphics card, + especially for older games. The default is ON (-throttle). + +-[no]sleep + + Allows MAME to give time back to the system when running with -throttle. + This allows other programs to have some CPU time, assuming that the + game 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). + +-speed + + Changes the way MAME throttles gameplay such that the game runs at some + multiplier of the original speed. A of 1.0 means to run the + game at its normal speed. A of 0.5 means run at half speed, + and a of 2.0 means run at 2x speed. Note that changing this + value affects sound playback as well, which will scale in pitch + accordingly. The internal resolution of the fraction is two decimal + places, so a value of 1.002 is the same as 1.0. The default is 1.0. + +-[no]refreshspeed / -[no]rs + + Allows MAME to dynamically adjust the gameplay speed such that it does + not exceed the slowest refresh rate for any targeted monitors in your + system. Thus, if you have a 60Hz monitor and run a game that is + actually designed to run at 60.6Hz, MAME will dynamically change the + speed down to 99% in order to prevent sound hiccups or other + undesirable side effects of running at a slower refresh rate. The + default is OFF (-norefreshspeed). + + + +Core rotation options +--------------------- + +-[no]rotate + + Rotate the game to match its normal state (horizontal/vertical). This + ensures that both vertically and horizontally oriented games show up + correctly without the need to rotate your monitor. If you want to keep + the game displaying 'raw' on the screen the way it would have in the + arcade, turn this option OFF. The default is ON (-rotate). + +-[no]ror +-[no]rol + + Rotate the game 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). The + default for both of these options is OFF (-noror -norol). + +-[no]flipx +-[no]flipy + + Flip (mirror) the game screen either horizontally (-flipx) or + vertically (-flipy). The flips are applied after the -rotate and + -ror/-rol options are applied. The default for both of these options + is OFF (-noflipx -noflipy). + +-[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 game 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. + + + +Core artwork options +-------------------- + +-[no]artwork_crop / -[no]artcrop + + Enable cropping of artwork to the game screen area only. This works + best with -video gdi or -video d3d, and means that vertically oriented + games running full screen can display their artwork to the left and + right sides of the screen. This does not work with -video ddraw + because of the way the game screens are rendered and scaled after the + fact. This option can also be controlled via the Video Options menu in + the user interface. The default is OFF (-noartwork_crop). + +-[no]use_backdrops / -[no]backdrop + + Enables/disables the display of backdrops. The default is ON + (-use_backdrops). + +-[no]use_overlays / -[no]overlay + + Enables/disables the display of overlays. The default is ON + (-use_overlays). + +-[no]use_bezels / -[no]bezel + + Enables/disables the display of bezels. The default is ON + (-use_bezels). + + + +Core screen options +------------------- + +-brightness + + Controls the default brightness, or black level, of the game screens. + This option does not affect the artwork or other parts of the display. + Using the MAME UI, you can individually set the brightness for each + game screen; this option controls the initial value for all visible + game 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. + +-contrast + + Controls the contrast, or white level, of the game screens. This + option does not affect the artwork or other parts of the display. + Using the MAME UI, you can individually set the contrast for each + game screen; this option controls the initial value for all visible + game 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. + +-gamma + + Controls the gamma, which produces a potentially nonlinear black to + white ramp, for the game screens. This option does not affect the + artwork or other parts of the display. Using the MAME UI, you can + individually set the gamma for each game screen; this option controls + the initial value for all visible game 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. + +-pause_brightness + + This controls the brightness level when MAME is paused. The default + value is 0.65. + + + +Core vector options +------------------- + +-[no]antialias / -[no]aa + + Enables antialiased line rendering for vector games. The default is ON + (-antialias). + +-beam + + Sets the width of the vectors. This is a scaling factor against the + standard vector width. 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. + +-flicker + + 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. + + + +Core sound options +------------------ + +-[no]sound + + Enable or disable sound altogether. The default is ON (-sound). + +-samplerate / -sr + + 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. + +-[no]samples + + Use samples if available. The default is ON (-samples). + +-volume / -vol + + Sets the startup volume. It can later be changed with the user + interface (see Keys section). The volume is an attenuation in dB: + e.g., "-volume -12" will start with -12dB attenuation. The default + is 0. + + + +Core input options +------------------ + +-ctrlr + + 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). + +-[no]mouse + + Controls whether or not MAME makes use of mouse controllers. When + this is enabled, you will likely be unable to use your mouse for other + purposes until you exit or pause the game. The default is OFF + (-nomouse). + +-[no]joystick / -[no]joy + + Controls whether or not MAME makes use of joystick/gamepad controllers. + When this is enabled, MAME will ask DirectInput about which + controllers are connected. The default is OFF (-nojoystick). + +-[no]lightgun / -[no]gun + + Controls whether or not MAME 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). + +-[no]multikeyboard / -[no]multikey + + Determines whether MAME 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 MAME to report keypresses + on different keyboards independently. The default is OFF + (-nomultikeyboard). + +-[no]multimouse + + Determines whether MAME 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 MAME to report mouse + movement and button presses on different mice independently. The + default is OFF (-nomultimouse). + +-[no]steadykey / -[no]steady + + Some games require two or more buttons to be pressed at exactly the + same time to make special moves. Due to limitations in the 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) + +-[no]offscreen_reload / -[no]reload + + Controls whether or not MAME treats a second button input from a + lightgun as a reload signal. In this case, MAME 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 games 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). + +-joystick_map / -joymap + + Controls how joystick values map to digital joystick controls. MAME + accepts all joystick input from the system as analog data. For true + analog joysticks, this needs to be mapped down to the usual 4-way or + 8-way digital joystick values. To do this, MAME divides the analog + range into a 9x9 grid. It then takes the joystick axis position (for + X and Y axes only), maps it to this grid, and then looks up a + translation from a joystick map. This parameter allows you to specify + the map. The default is 'auto', which means that a standard 8-way, + 4-way, or 4-way diagonal map is selected automatically based on the + input port configuration of the current game. + + Maps are defined as a string of numbers and characters. Since the grid + is 9x9, there are a total of 81 characters necessary to define a + complete map. Below is an example map for an 8-way joystick: + + 777888999 Note that the numeric digits correspond to the keys + 777888999 on a numeric keypad. So '7' maps to up+left, '4' maps + 777888999 to left, '5' maps to neutral, etc. In addition to the + 444555666 numeric values, you can specify the character 's', + 444555666 which means "sticky". In this case, the value of the + 444555666 map is the same as it was the last time a non-sticky + 111222333 value was read. + 111222333 + 111222333 + + To specify the map for this parameter, you can specify a string of + rows separated by a '.' (which indicates the end of a row), like so: + + 777888999.777888999.777888999.444555666.444555666.444555666. + 111222333.111222333.111222333 + + However, this can be reduced using several shorthands supported by the + parameter. If information about a row is missing, then it is + assumed that any missing data in columns 5-9 are left/right symmetric + with data in columns 0-4; and any missing data in colums 0-4 is + assumed to be copies of the previous data. The same logic applies to + missing rows, except that up/down symmetry is assumed. + + By using these shorthands, the 81 character map can be simply + specified by this 11 character string: 7778...4445 + + Looking at the first row, 7778 is only 4 characters long. The 5th + entry can't use symmetry, so it is assumed to be equal to the previous + character '8'. The 6th character is left/right symmetric with the 4th + character, giving an '8'. The 7th character is left/right symmetric + with the 3rd character, giving a '9' (which is '7' with left/right + flipped). Eventually this gives the full 777888999 string of the row. + + The second and third rows are missing, so they are assumed to be + identical to the first row. The fourth row decodes similarly to the + first row, producing 444555666. The fifth row is missing so it is + assumed to be the same as the fourth. + + The remaining three rows are also missing, so they are assumed to be + the up/down mirrors of the first three rows, giving three final rows + of 111222333. + +-joystick_deadzone / -joy_deadzone / -jdz + + 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. + +-joystick_saturation / joy_saturation / -jsat + + 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. + + + +Core input automatic enable options +----------------------------------- + +-paddle_device / -paddle +-adstick_device / -adstick +-pedal_device / -pedal +-dial_device / -dial +-trackball_device / -trackball +-lightgun_device +-positional_device + + Each of these options controls autoenabling the mouse, joystick, or + lightgun depending on the presence of a particular class of analog + control for a particular game. For example, if you specify the option + -paddle mouse, then any game 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. + + + +Debugging options +----------------- + +-[no]log + + Creates a file called error.log which contains all of the internal + log messages generated by the MAME core and game drivers. The default + is OFF (-nolog). + +-[no]verbose / -[no]v + + Displays internal diagnostic information. This information is very + useful for debugging problems with your configuration. IMPORTANT: when + reporting bugs, please run with mame -verbose and include the + resulting information. The default is OFF (-noverbose). + +-[no]debug + + Activates the integrated debugger. This is available only if the + program is compiled with MAME_DEBUG defined. By default, the debugger + is entered by pressing the tilde (~) key during emulation. It is also + entered immediately at startup. The default is ON (-debug). + +-debugscript + + Specifies a file that contains a list of debugger commands to execute + immediately upon startup. The default is NULL (no commands). + + + +Core misc options +----------------- + +-bios + + Specifies the specific BIOS to use with the current game, for game + systems that make use of a BIOS. The -listxml output will list all of + the possible BIOS names for a game. The default is 'default'. + +-[no]cheat / -[no]c + + Enables the reading of the cheat database, if present, and the Cheat + menu in the user interface. The default is OFF (-nocheat). + +-[no]skip_gameinfo + + Forces MAME to skip displaying the game info screen. The default is + OFF (-noskip_gameinfo). diff --git a/docs/license.txt b/docs/license.txt new file mode 100644 index 00000000000..e7bd69d9069 --- /dev/null +++ b/docs/license.txt @@ -0,0 +1,32 @@ +Copyright (c) 1997-2007, Nicola Salmoria and the MAME team +All rights reserved. + +Redistribution and use of this code or any derivative works are permitted +provided that the following conditions are met: + +* Redistributions may not be sold, nor may they be used in a commercial +product or activity. + +* Redistributions that are modified from the original source must include the +complete source code, including the source code for all components used by a +binary built from the modified sources. However, as a special exception, the +source code distributed need not include anything that is normally distributed +(in either source or binary form) with the major components (compiler, kernel, +and so on) of the operating system on which the executable runs, unless that +component itself accompanies the executable. + +* Redistributions must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/mame.txt b/docs/mame.txt new file mode 100644 index 00000000000..6e575aab0db --- /dev/null +++ b/docs/mame.txt @@ -0,0 +1,81 @@ +MAME(tm), the Multiple Arcade Machine Emulator +Copyright (c) 1997-2007 by Nicola Salmoria and the MAME team +MAME is a trademark owned by Nicola Salmoria + + +---------- +I. Purpose +---------- +MAME is strictly a non-profit project. Its main purpose is to be a +reference to the inner workings of the emulated arcade machines. This is +done both for educational purposes and for preservation purposes, in +order to prevent many historical games from disappearing forever once the +hardware they run on stops working. Of course, in order to preserve the +games and demonstrate that the emulated behavior matches the original, +you must also be able to actually play the games. This is considered a +nice side effect, and is not MAME's primary focus. + +It is not our intention to infringe on any copyrights or patents on the +original games. All of MAME's source code is either our own or freely +available. To operate, the emulator requires images of the original ROMs, +CDs, or hard disks from the arcade machines, which must be provided by +the user. No portions of the original game code are included in the +executable. + + +-------- +II. Cost +-------- +MAME is free. Its source code is free. Selling either is not allowed. + + +---------------- +III. Image Files +---------------- +ROM, CD, and hard disk images are all copyrighted material. They cannot +be distributed without the explicit permission of the copyright owner. +They are not "abandonware", nor have any of the games supported by MAME +passed out of copyright. + +MAME is not intended to be used as a tool for mass copyright +infringement. Therefore, it is strongly against the authors' wishes to +sell, advertise, or link to resources that provide illegal copies of ROM, +CD, or hard disk images. + + +-------------------- +IV. Derivative Works +-------------------- +Derivative works are allowed under the MAME license. However, you are +discouraged from providing specific functionality that goes against the +philosophy of the MAME team. Specifically: + +* Do not add games which are more recent than 3 years old, or which are +still being sold new by the company that produced them. MAME is not +intended to be a platform that competes with arcade games that are still +being actively sold. + +* Do not provide a means of generating a list of games that specifically +identifies those games for which the user does not have image files. This +only encourages users to seek out sources for illegal ROM, CD, and hard +disk images in order to "complete" their collection. + +* Do not remove the startup screen that contains information about why +certain non-working games don't work. This only serves to generate a +bunch of useless email traffic to the developers asking why the games +don't work. + +Because the name MAME is trademarked, you must abide by the rules of the +trademark usage if you wish to use "MAME" as part of the name your +derivative work. In general, this means you must request permission, +which requires that you follow the guidelines above. + +The version number of any derivative work should reflect the version +number of the MAME release it was derived from. + + +------------------------------- +V. Official Contact Information +------------------------------- +For questions regarding the MAME license, trademark, or other usage, go +to http://www.mamedev.org/ diff --git a/docs/newvideo.txt b/docs/newvideo.txt new file mode 100644 index 00000000000..b5a8a573e6b --- /dev/null +++ b/docs/newvideo.txt @@ -0,0 +1,146 @@ +This article originally appeared in a slightly different form at +http://aarongiles.com. You should read this if you are used to how +MAME's video system worked prior to 0.107 and you want to understand +how you should configure MAME with the new rendering system in place. + + +The New Video Landscape + +Since its inception 9 years ago, MAME’s video system has defaulted to +a mode where it tries to change resolutions on you. And since the +first port of the core to Windows 5 years ago, it has defaulted to +using your graphics card to stretch the video to that resolution. + +I’m sure a lot of you out there have taken a lot of time to tweak the +current set of video options to make them work the way you like. But +every once in a while, you need to take a step back and re-evaluate +the situation. The current video system has been in place for 5 years +now without much substantial change. And with the recent rewrite, +you’re almost certainly going to want to rethink the way you have +things configured. + +At the highest level, there are really three different ways you can +configure the new system. Placing yourself into one of these three +categories will help you get the initial settings right. From there, +you can tweak with the settings to figure out what works best. + + +Category 1: Bells and whistles. People who fall into this category +would include anyone with a modern system and a decent video card +(decent in this context means at least 16MB of VRAM and built in the +last 5 years or so — we’re not talking cutting edge here). Any decent +video card will be able to render the simple MAME graphics at pretty +much any resolution without breaking a sweat. Configure your desktop +to the video mode you want (preferably something high like 1024×768 +or greater with a high refresh rate, unless you are running on a +fixed-mode LCD, in which case just match what your LCD panel is), +and tell MAME to leave the resolution alone. In this day and age, +there is little reason to switch resolutions at all, unless you +fall into Category 3, below. In this mode, you will have full access +to artwork options, and you’ll get your artwork scaled to full +resolution and with full alpha blending effects. Vector games will +look crisp, you can use decent fonts, and you can see a whole lot +more of the world when using the graphics/tilemap viewer. This mode +uses Direct3D, so you should configure yourself like this: + + -video d3d -noswitchres [-triplebuffer] [-nofilter] + +The -noswitchres option tells MAME to just run at the current +resolution. Although you can let MAME pick a resolution for you, it +doesn’t really make much sense in D3D mode, and in fact I may even +remove that feature altogether. To avoid tearing artifacts, I +recommend using the -triplebuffer option as well. Just make sure your +monitor’s refresh rate is higher than the game you are running. If +you dislike the blurry look of the graphics, you can specify the +-nofilter option to disable bilinear filtering, though that will +produce blocky artifacts. Alternatively, you can use the -prescale +option which is described at the end of this article. + + +Category 2: Like the old days. I really didn’t even want to support +this mode at all, but certain vocal MAMEdevs would have skinned me +alive otherwise. People who fall into this category include those who +have weak systems that worked fine with previous versions of MAME, +but who don’t run well with Direct3D rendering. (Note that just +because Space Invaders runs unthrottled at 2000fps with DirectDraw +and 1000fps with Direct3D doesn’t mean that Direct3D is going to be +a serious issue when playing at a regular 60fps, so if you’re unsure, +give the Direct3D route a try for a while.) In this mode, MAME will +draw the game screen and artwork at the game’s resolution, just like +it did in MAME 0.106 and earlier; however, some artwork options, +such as -artcrop, won’t work as you might expect, and some alpha +blending artwork modes (specifically overlays) will operate with a +performance penality. MAME will then use your video card to stretch +the video to the proper aspect ratio. + + -video ddraw -hwstretch [-switchres] [-triplebuffer] + +The -switchres is optional here. If your video card is really ancient +and struggles expanding the screen to fit your desktop resolution, +you might want to turn it on. Again, to avoid tearing artifacts, I +recommend using the -triplebuffer option as well, but make sure your +monitor’s refresh rate is higher than the game you are running +(-switchres will do that for you if you use it). If your video card +produces blurry pixels which you don’t like, try the -prescale option +described at the end of this article. + + +Category 3: Anal video mode types. These are the guys who have +generally built their own cabinets and set them up with a CRT display +where they have several dozen carefully hand-tweaked video modes that +approximate the original video modes the games ran at. They want MAME +to pick that hand-tweaked mode and use it, drawing one pixel on the +screen for each pixel in the original game. They don’t give a whit +about artwork or anything other than the raw pixels going to the +right place. Fortunately, you can still configure MAME for this case +as well: + + -video ddraw -nohwstretch -switchres [-triplebuffer] + +Obviously in this case, the -switchres is required. You also want to +disable hardware stretching, otherwise you won’t get that “perfect” +1:1 pixel mapping. Triple buffering may or may not help. + + +So, I recommend starting with these initial options and then tweaking +from there. One additional option you might want to try in +combination with the above is the -prescale option. -prescale takes +an integer parameter from 1 to 8, and specifies a magnification +amount by which the screen pixels are expanded before they are drawn +to the screen. Why is this useful? And how much of a performance +impact does it have? Well, that depends on the mode you are running +in. + +If you are running in Category 1 (-video d3d), then -prescale will +use your video card to scale the game graphics up before rendering +them to the screen. Depending on the video card, this is usually a +small performance hit, but not too significant. The benefit is that +each prescale factor reduces the blurriness of the pixels. +-prescale 1 is the default, which does no scaling. -prescale 2 will +double each pixel, -prescale 3 will triple each pixel, etc. For my +money, -prescale 2 is sufficient, but people with super high +resolution displays claim that larger -prescale factors work even +better. + +If you are running in Category 2 (-video ddraw -hwstretch), then +-prescale will cause MAME to compose the screen graphics at the +specified scale factor. This is unfortunately done in software, but +carries the benefit that artwork, fonts, and the graphics viewer can +take advantage of the additional resolution to produce nicer results. +The end effect is that you will get less blurry pixels, just like the +Category 1 case, plus higher quality artwork, fonts, and more visible +area in the graphics viewer. + +If you are running in Category 3 (-video ddraw -nohwstretch), then +-prescale will cause MAME to pick a video mode that is the prescale +factor times the raw screen resolution, and then MAME will, in +software, compose the screen graphics at the specified scale factor. +This has all the advantages of the Category 2 case, except that since +there wasn’t any pixel blurring to begin with, there is no additional +crispness that comes about as a result. + +Finally, you may be wondering about effects (and yes, scanlines are +an “effect”). Effects are no longer hard-coded into the system. +Rather, you can provide a PNG file in the artwork directory that will +be loaded and overlaid on top of screen bitmaps. See the description +of -effect in windows.txt for more details. diff --git a/docs/windows.txt b/docs/windows.txt new file mode 100644 index 00000000000..9b0097b1df8 --- /dev/null +++ b/docs/windows.txt @@ -0,0 +1,362 @@ +This file describes Windows-specific usage information about MAME. It is +intended to cover aspects of using and configuring the program that are +specific to running MAME from the command line on a Windows-based system. +For common options that apply to all systems, please see config.txt. + + + +Default Keys +------------ + +In addition to the keys described in config.txt, the following additional +keys are defined for Windows versions of MAME: + + +Alt+Enter Toggles between full-screen and windowed mode. + + + +Windows debugging options +------------------------- + +-[no]oslog + + Outputs the error.log data to the Windows 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). + + + +Windows performance options +--------------------------- + +-priority + + Sets the thread priority for the MAME threads. By default the priority + is left alone to guarantee proper cooperation with other applications. + The valid range is -15 to 1, with 1 being the highest priority. The + default is 0 (NORMAL priority). + +-[no]multithreading / -[no]mt + + Enables multithreading within MAME. At the moment, this causes the + window and all DirectDraw/Direct3D code to execute on a second thread, + which can improve performance on hyperthreaded and multicore systems. + The default is OFF (-nomultithreading). + + + +Windows video options +--------------------- + +-video + + Specifies which video subsystem to use for drawing. By specifying 'gdi' + here, you tell MAME to render video using standard Windows graphics + drawing calls. This is the slowest but most compatible option. + Specifying 'ddraw' instructs MAME to use DirectDraw for rendering. + This causes MAME to render everything at a lower resolution and then + upscale the results at the end. This produces high performance, + especially on older or low-power video cards, but has a noticeably + lower output quality. Specifying 'd3d' tells MAME to use Direct3D for + rendering. This produces the highest quality output and enables all + rendering options. It is recommended if you have a recent (2002+) + video card. The final option 'none' displays no windows and does no + drawing. This is primarily present for doing CPU benchmarks without + the overhead of the video system. The default is d3d. + +-numscreens + + Tells MAME how many output windows to create. For most games, a single + output window is all you need, but some games originally used multiple + screens. Each screen (up to 4) has its own independent settings for + physical monitor, aspect ratio, resolution, and view, which can be + set using the options below. The default is 1. + +-[no]window + + Run MAME in either a window or full screen. The default is OFF + (-nowindow). + +-[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 MAME. 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). + +-[no]keepaspect / -[no]ka + + Enables aspect ratio enforcement. When this option is on, the game's + proper aspect ratio (generally 4:3 or 3:4) is enforced, so you get the + game looking like it should. When running in a window with this option + on, you can only resize the window to the proper aspect ratio, unless + you are holding down the CONTROL key. By turning the option off, the + aspect ratio is allowed to float. In full screen mode, this means that + all games will stretch to the full screen size (even vertical games). + In window mode, it means that you can freely resize the window without + any constraints. The default is ON (-keepaspect). + +-prescale + + Controls the size of the screen images when they are passed off to the + graphics system for scaling. At the minimum setting of 1, the screen + is rendered at its original resolution before being scaled. At higher + settings, the screen is expanded by a factor of before being + scaled. With -video ddraw or -video d3d, this produces a less blurry + image at the expense of some speed. In -video ddraw mode, this also + increases the effective resolution of non-screen elements such as + artwork and fonts. The default is 1. + +-effect + + Specifies a single PNG file that is used as an overlay over any game + screens in the video display. This PNG file is assumed to live in the + root of one of the artpath directories. The pattern in the PNG file is + repeated both horizontally and vertically to cover the entire game + screen areas (but not any external artwork), and is rendered at + the target resolution of the game image. For -video gdi and -video d3d + modes, this means that one pixel in the PNG will map to one pixel on + your output display. For -video ddraw, this means that one pixel in the + PNG will map to one pixel in the prescaled game screen. If you wish to + use an effect that requires mapping n PNG pixels to each game screen + pixel with -video ddraw, you need to specify a -prescale factor of n as + well. The RGB values of each pixel in the PNG are multiplied against the + RGB values of the target screen. The default is 'none', meaning no + effect. + +-[no]waitvsync + + Waits for the refresh period on your computer's monitor to finish + before starting to draw video to your screen. If this option is off, + MAME will just draw to the screen at any old time, even in the middle + of a refresh cycle. This can cause "tearing" artifacts, where the top + portion of the screen is out of sync with the bottom portion. Tearing + is not noticeable on all games, and some people hate it more than + others. However, if you turn this option on, you will waste more of + your CPU cycles waiting for the proper time to draw, so you will see a + performance hit. You should only need to turn this on in windowed mode. + In full screen mode, it is only needed if -triplebuffer does not + remove the tearing, in which case you should use -notriplebuffer + -waitvsync. Note that this option does not work with -video gdi mode. + The default is OFF (-nowaitvsync). + +-[no]syncrefresh + + Enables speed throttling only to the refresh of your monitor. This + means that the game's actual refresh rate is ignored; however, the + sound code still attempts to keep up with the game's original refresh + rate, so you may encounter sound problems. This option is intended + mainly for those who have tweaked their video card's settings to + provide carefully matched refresh rate options. Note that this option + does not work with -video gdi mode.The default is OFF (-nosyncrefresh). + + + +DirectDraw-specific options +--------------------------- + +-[no]hwstretch / -[no]hws + + When enabled, MAME uses the hardware stretching abilities of your + video card to scale the game image and associated artwork to the + target resolution. Depending on the quality of your graphic card and + its drivers, this may be a fractional, antialiased scaling (nice) or + an integer, blocky scaling (not so nice), in which case you might want + to disable this option. In addition, if you have configured specific + arcade-like video modes for MAME and don't want MAME to perform any + non-integral scaling of the image, you should also disable this option. + The default is ON (-hwstretch). + + + +Direct3D-specific options +------------------------- + +-d3dversion + + MAME supports both Direct3D 9 and Direct3D 8 for maximum compatibility. + By default, it will automatically detect which one it can use and use + that version exclusively. You can override MAME's selection with this + option. It is primarily intended as a means for the MAME developers to + test compatibility with older hardware; for the most part, there is no + reason to alter this setting. The default is 9. + +-[no]filter / -[no]d3dfilter / -[no]flt + + Enable bilinear filtering on the game screen graphics. When disabled, + point filtering is applied, which is crisper but leads to scaling + artifacts. If you don't like the filtered look, you are probably better + off increasing the -prescale value rather than turning off filtering + altogether. The default is ON (-filter). + + + +Per-window options +------------------ + +-screen +-screen0 +-screen1 +-screen2 +-screen3 + + Specifies which physical monitor on your system you wish to have each + window use by default. In order to use multiple windows, you must have + increased the value of the -numscreens option. The name of each + display in your system can be determined by running MAME with the + -verbose option. The display names are typically in the format of: + \\.\DISPLAYn, where 'n' is a number from 1 to the number of connected + monitors. The default value for these options is 'auto', which means + that the first window is placed on the first display, the second + window on the second display, etc. + + The -screen0, -screen1, -screen2, -screen3 parameters apply to the + specific window. The -screen parameter applies to all windows. The + window-specific options override values from the all window option. + +-aspect / -screen_aspect +-aspect0 +-aspect1 +-aspect2 +-aspect3 + + Specifies the physical aspect ratio of the physical monitor for each + window. In order to use multiple windows, you must have increased the + value of the -numscreens option. The physical aspect ratio can be + determined by measuring the width and height of the visible screen + image and specifying them separated by a colon. The default value for + these options is 'auto', which means that MAME assumes the aspect + ratio is proportional to the number of pixels in the desktop video + mode for each monitor. + + The -aspect0, -aspect1, -aspect2, -aspect3 parameters apply to the + specific window. The -aspect parameter applies to all windows. The + window-specific options override values from the all window option. + +-resolution / -r +-resolution0 / -r0 +-resolution1 / -r1 +-resolution2 / -r2 +-resolution3 / -r3 + + Specifies an exact resolution to run in. In full screen mode, MAME + will try to use the specific resolution you request. The width and + height are required; the refresh rate is optional. If omitted or + set to 0, MAME will determine the mode auomatically. For example, + -resolution 640x480 will force 640x480 resolution, but MAME is free to + choose the refresh rate. Similarly, -resolution 0x0@60 will force a + 60Hz refresh rate, but allows MAME to choose the resolution. The + string "auto" is also supported, and is equivalent to 0x0@0. In window + mode, this resolution is used as a maximum size for the window. This + option requires the -switchres option as well in order to actually + enable resolution switching with -video ddraw or -video d3d. The + default value for these options is 'auto'. + + The -resolution0, -resolution1, -resolution2, -resolution3 parameters + apply to the specific window. The -resolution parameter applies to all + windows. The window-specific options override values from the all + window option. + +-view +-view0 +-view1 +-view2 +-view3 + + Specifies the initial view setting for each window. The + does not need to be a perfect match; rather, it will select the first + view whose name matches all the characters specified by . + For example, -view native will match the "Native (15:14)" view even + though it is not a perfect match. The value 'auto' is also supported, + and requests that MAME perform a default selection. The default value + for these options is 'auto'. + + The -view0, -view1, -view2, -view3 parameters apply to the + specific window. The -view parameter applies to all windows. The + window-specific options override values from the all window option. + + + +Full screen options +------------------- + +-[no]triplebuffer / -[no]tb + + Enables or disables "triple buffering". Normally, MAME just draws + directly to the screen, without any fancy buffering. But with this + option enabled, MAME creates three buffers to draw to, and cycles + between them in order. It attempts to keep things flowing such that one + buffer is currently displayed, the second buffer is waiting to be + displayed, and the third buffer is being drawn to. -triplebuffer will + override -waitvsync, if the buffer is sucessfully created. This option + does not work with -video gdi. The default is OFF (-notriplebuffer). + +-[no]switchres + + Enables resolution switching. This option is required for the + -resolution* options to switch resolutions in full screen mode. On + modern video cards, there is little reason to switch resolutions unless + you are trying to achieve the "exact" pixel resolutions of the original + games, which requires significant tweaking. This option is also useful + on LCD displays, since they run with a fixed resolution and switching + resolutions on them is just silly. This option does not work with + -video gdi. The default is OFF (-noswitchres). + +-full_screen_brightness / -fsb + + Controls the brightness, or black level, of the entire display. 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. Note that not all video cards have hardware to + support this option. This option does not work with -video gdi. The + default is 1.0. + +-full_screen_contrast / -fsc + + Controls the contrast, or white level, of the entire display. 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. Note that not all video cards have + hardware to support this option. This option does not work with + -video gdi. The default is 1.0. + +-full_screen_gamma / -fsg + + Controls the gamma, which produces a potentially nonlinear black to + white ramp, for the entire display. 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. Note + that not all video cards have hardware to support this option. This + option does not work with -video gdi. The default is 1.0. + + + +Windows sound options +--------------------- + +-audio_latency + + This controls the amount of latency built into the audio streaming. By + default MAME tries to keep the DirectSound audio buffer between 1/5 and + 2/5 full. On some systems, this is pushing it too close to the edge, + and you get poor sound sometimes. The latency parameter controls the + lower threshold. The default is 1 (meaning lower=1/5 and upper=2/5). + Set it to 2 (-audio_latency 2) to keep the sound buffer between 2/5 and + 3/5 full. If you crank it up to 4, you can definitely notice the lag. + + + +Input device options +-------------------- + +-[no]dual_lightgun / -[no]dual + + Controls whether or not MAME attempts to track two lightguns connected + at the same time. This option requires -lightgun. This option is a hack + for supporting older dual lightgun setups. If you have multiple + lightguns connected, you will probably just need to enable -mouse and + configure each lightgun independently. The default is OFF + (-nodual_lightgun).