Xmame(6)

NAME
xmame - THE Arcade game machine emulator for UNIX/X

SYNOPSIS
xmame[.x11|svga] [-options] gamename

EXAMPLES
Some examples for those who are in a hurry. If you don't have/want a frontend, you'll mostly use xmame (with a well defined xmamerc) in the following way: xmame ladybug Plays Ladybug with all options defined in xmamerc. If there is no xmamerc the game starts with the buildin defaults. xmame defender -frameskip 1 -cheat Starts defender using a frameskip of 1 and cheat is enabled. Useful for slower computers, if the game is running really slowly. And of course if you want (have?) to cheat. ;-)

LEGAL NOTICE
The main issue involves ROM images. ROM images are protected under the copyrights of their authors, and CANNOT be distributed in the same package as xmame. Download any ROM images at your own risk and responsibility. xmame should be distributed under terms of the license in doc/readme.mame XInputExtensions based Joystick support. Source code is entirely pure hack work. No sample code, no info at all was found (only library reference manual) and is copyrighted by me (Juan Antonio Marmnez). Use it under terms of GNU General Public License. PLEASE BE AWARE OF THE POSSIBLE LEGAL RAMIFICATIONS OF DOWNLOADING ROM IMAGES, BEFORE YOU ACTUALLY DO SO! YOU HAVE BEEN WARNED, AND WE TAKE NO RESPONSIBILITY FOR YOUR ACTIONS -- YOU ARE ON YOUR OWN! Also, the xmame authors ask that you DO NOT distribute any ROM images with either source code or binaries of the xmame emulator.

DESCRIPTION
xmame is the (M)ulti (A)rcade (M)achine (E)mulator for UNIX-(X). It emulates the hardware of realy many classic arcade game machines. Most games allow you to specify one or more options to control the behavior of xmame and the game of your choice. Below is a complete list of all the available options:

*** Digital sound related ***

-dsp-plugin, -dp string
    Select which plugin to use for digital sound

-list-dsp-plugins, -ldp
    List available sound-dsp plugins

-[no]timer, -[no]ti
    Use / don't use timer-based audio (normally it will be used automagically when necessary)

*** Sound mixer related ***

-sound-mixer-plugin, -smp string
    Select which plugin to use for the sound mixer

-list-mixer-plugins, -lmp
    List available sound mixer plugins

*** Video Related ***

-bpp, -b int
    Specify the colordepth the core should render, one of: auto(0), 8, 16

-arbheight, -ah int
    Scale video to exactly this height (0 = disable)

-heightscale, -hs int
    Set Y-Scale aspect ratio

-widthscale, -ws int
    Set X-Scale aspect ratio

-scale, -s arg
    Set X-Y Scale to the same aspect ratio. For vector games scale (and also width- and heightscale) may have value's like 1.5 and even 0.5. For scaling of regular games this will be rounded to an int

-effect, -ef int
    Video effect: 0 = none (default) 1 = scale2x (smooth scaling effect) 2 = scan2 (light scanlines) 3 = rgbstripe (3x2 rgb vertical stripes) 4 = rgbscan (2x3 rgb horizontal scanlines) 5 = scan3 (3x3 deluxe scanlines)

-[no]autodouble, -[no]adb
    Enable/disable automatic scale doubling for 1:2 pixel aspect ratio games

-[no]scanlines, -[no]sl
    Enable/disable displaying simulated scanlines

-[no]artwork, -[no]art
    Use additional game artwork (sets default for specific options below)

-[no]use_backdrops, -[no]backdrop
    Use backdrop artwork

-[no]use_overlays, -[no]overlay
    Use overlay artwork

-[no]use_bezels, -[no]bezel
    Use bezel artwork

-[no]artwork_crop, -[no]artcrop
    Crop artwork to game screen only.

-artwork_resolution, -artres int
    Artwork resolution (0 for auto)

-frameskipper, -fsr int
    Select which autoframeskip and throttle routines to use. Available choices are: 0 Dos frameskip code 1 Enhanced frameskip code by William A. Barath

-[no]throttle, -[no]th
    Enable/disable throttle

-frames_to_run, -ftr int
    Sets the number of frames to run within the game

-[no]sleepidle, -[no]si
    Enable/disable sleep during idle

-[no]autoframeskip, -[no]afs
    Enable/disable autoframeskip

-maxautoframeskip, -mafs int
    Set highest allowed frameskip for autoframeskip

-frameskip, -fs int
    Set frameskip when not using autoframeskip

-brightness, -brt float
    Set the brightness correction (0.5 - 2.0)

-pause_brightness, -pb float
    Additional pause brightness

-gamma, -gc float
    Set the gamma correction (0.5 - 2.0)

-[no]norotate, -[no]nr
    Do not apply rotation

-[no]ror, -[no]rr
    Rotate screen clockwise

-[no]rol, -[no]rl
    Rotate screen counter-clockwise

-[no]autoror
    Automatically rotate screen clockwise for vertical games

-[no]autorol
    Automatically rotate screen counter-clockwise for vertical games

-[no]flipx, -[no]fx
    Flip screen left-right

-[no]flipy, -[no]fy
    Flip screen upside-down

*** Vector Games Related ***

-vectorres, -vres string
    Always scale vectorgames to XresxYres, keeping their aspect ratio. This overrides the scale options

-beam, -B float
    Set the beam size for vector games

-flicker, -f float
    Set the flicker for vector games

-intensity float
    Set intensity in vector games

-[no]antialias, -[no]aa
    Enable/disable antialiasing

-[no]translucency, -[no]t
    Enable/disable tranlucency

*** SDL Related ***

-[no]fullscreen
    Start fullscreen

-listmodes
    List all posible fullscreen modes

-modenumber int
    Try to use the fullscreen mode numbered 'n' (see the output of -listmodes)

-sdlmapkey, -sdlmk arg
    Set a specific key mapping, see xmamerc.dist

*** Sound Related ***

-[no]sound, -[no]snd
    Enable/disable sound (if available)

-[no]samples, -[no]sam
    Use/don't use samples (if available)

-fakesound, -fsnd
    Generate sound even when sound is disabled, this is needed for some games which won't run without sound

-samplefreq, -sf int
    Set the playback sample-frequency/rate

-bufsize, -bs float
    Number of frames of sound to buffer

-volume, -v int
    Set volume to <int> db, (-32 (soft) - 0(loud) )

-audiodevice, -ad string
    Use an alternative audiodevice

-mixerdevice, -md string
    Use an alternative mixerdevice

*** Input Related ***

-joytype, -jt int
    Select type of joystick support to use: 0 No joystick 1 i386 style joystick driver (if compiled in) 2 Fm Town Pad support (if compiled in) 3 X11 input extension joystick (if compiled in) 4 new i386 linux 1.x.x joystick driver(if compiled in) 5 NetBSD USB joystick driver (if compiled in) 6 PS2-Linux native pad (if compiled in) 7 SDL joystick driver

-[no]analogstick, -[no]as
    Use Joystick as analog for analog controls

-joydevname, -jdev string
    Joystick device prefix (defaults to /dev/joy)

-[no]mouse, -[no]m
    Enable/disable mouse (if supported)

-[no]ugcicoin
    Enable/disable UGCI(tm) Coin/Play support

-[no]usbpspad, -[no]pspad
    The Joystick(s) are USB PS Game Pads

-[no]rapidfire, -[no]rapidf
    Enable rapid-fire support for joysticks

-ctrlr string
    Preconfigure for specified controller

*** File I/O-related ***

-rompath, -rp string
    Search path for rom files

-samplepath, -sp string
    Search path for sample files

-inipath string
    Search path for ini files

-cfg_directory string
    Directory to save configurations

-nvram_directory string
    Directory to save nvram contents

-memcard_directory string
    Directory to save memory card contents

-input_directory string
    Directory to save input device logs

-hiscore_directory string
    Directory to save hiscores

-state_directory string
    Directory to save states

-artwork_directory string
    Directory for Artwork (Overlays etc.)

-snapshot_directory string
    Directory for screenshots (.png format)

-diff_directory string
    Directory for hard drive image difference files

-ctrlr_directory string
    Directory to save controller definitions

-cheat_file string
    Cheat filename

-hiscore_file string
    no help available

-history_file string
    no help available

-mameinfo_file string
    no help available

-record, -rec string
    Set a file to record keypresses into

-playback, -pb string
    Set a file to playback keypresses from

-stdout-file, -out filename
    Set a file to redirect stdout to

-stderr-file, -err filename
    Set a file to redirect stderr to

-log, -L filename
    Set a file to log debug info to

*** MAME Related ***

-defaultgame, -def string
    Set the default game started when no game is given on the commandline, only useful for in the configfiles

-language, -lang string
    Select the language for the menus and osd

-[no]fuzzycmp, -[no]fc
    Enable/disable use of fuzzy gamename matching when there is no exact match

-[no]cheat, -[no]c
    Enable/disable cheat subsystem

-[no]skip_disclaimer
    Skip displaying the disclaimer screen

-[no]skip_gameinfo
    Skip displaying the game info screen

-[no]crconly
    Use only CRC for all integrity checks

-bios string
    change system bios

*** Frontend Related ***

-list, -l
    List supported games matching gamename, or all, gamename may contain * and ? wildcards

-listfull, -lf
    Like -list, with full description

-listgames, -lg
    Like -list, with manufacturer and year

-listdetails, -ld
    Like -list, with detailed info

-listgamelist, -lgl
    Like -list, with specialy formatted extra info for generating gamelist.mame

-listsourcefile, -lsf
    Like -list, with driver sourcefile

-listcolors, -lcol
    Like -list, with the number of colors used

-listromsize, -lrs
    Like -list, with the year and size of the roms used

-listpalettesize, -lps
    Like -list, with the year and palette size of the roms used

-listroms, -lr
    Like -list, but lists used ROMs

-listcrc, -lcrc
    Like -list, but lists used ROMs with CRC-32s

-listsha1, -lsha1
    Like -list, but lists used ROMs with SHA-1s

-listmd5, -lmd5
    Like -list, but lists used ROMs with MD5s

-listsamples, -ls
    Like -list, but lists used audio samples

-listsamdir, -lsd
    Like -list, but lists dir where samples are taken from

-verifyroms, -vr
    Verify ROMs for games matching gamename, or all, gamename may contain * and ? wildcards

-verifyromsets, -vrs
    Like -verifyroms, but less verbose

-verifysamples, -vs
    Like -verifyroms but verify audio samples instead

-verifysamplesets, -vss
    Like -verifysamples, but less verbose

-[no]clones, -[no]cl
    Show / don't show bootlegs/clones in the above list commands

-listclones, -lcl
    Like -list, but lists the clones of the specified game

-listinfo, -li
    List all available info on drivers

-listxml, -lx
    List all available info on drivers in XML format

-listcpu, -lc
    List cpu usage statics per year

*** Internal verification list commands (only for developers) ***

-listdupcrc, -ldc
    Like -list, but lists ROMs with identical crc

-listwrongorientation, -lwo
    Like -list, but lists any games which use the orientation flags wrongly

-listwrongmerge, -lwm
    Like -list, but lists any games which use the clone_of field wrongly

-listwrongfps, -lwf
    Like -list, but lists any games which use the FPS field wrongly

-sortname, -srtn
    Sort roms by name

-sortdriver, -srtd
    Sort roms by driver name

*** Rom Identification Related ***

-ident, -id
    Identify unknown romdump, or unknown romdumps in dir/zip

-isknown, -ik
    Check if romdump or romdumps in dir/zip are known

*** General Options ***

-[no]loadconfig, -[no]lcf
    Load (don't load) configfiles

-showconfig, -sc
    Display running parameters in rc style

-manhelp, -mh
    Print commandline help in man format, useful for manpage creation

-version, -V
    Display version

-help,?
    Show this help

*** Arguments ***

game
    the name of the game you wish to play. You better choose one. :-)
Note: There are really many options. You can set the default options and / or options per game in xmames config files see the RCFILES section below.

INSTALLING GAMES
Most game ROM images come in ZIP files. Download the ZIP files for the games you want, and move them to a directory of your choice (i.e. it is a good idea to put them all in one dir). Note: There is no need to unzip the games in a separate directory, because xmame has zip file support through zlib. xmame uses a ":" seperated rompath to find out which dirs to search for roms/samples. The default rompath is XMAMEROOT as defined in the Makefile during the compilation (normaly /usr/local/share/xmame). If you put all the zipped-ROM-Files in this dir everything will work automagicly. The rompath will be overwritten by any rompath in xmamerc. Which can be overwritten again with the -rompath commandline option. xmame searches every dir in this path for roms (and samples) in the following way:
<dir>/gamename.zip | (containing filename.ext)
<dir>/gamename/filename.ext
<dir>/gamename/filename.ext.gz | (containing filename.ext)
<dir>/gamename/filename.zip | (containing filename.ext)
Note: If your neogeo games can't find neogeo.rom put it in a dir called neogeo somewhere in your rompath, or put it in neogeo.zip somewhere in your rompath.

PLAYING GAMES
After running xmame i.e. xmame ladybug you will see two screens. The first with a copyright message (PLEASE READ THIS!). If you type (ok) this screen will only come up again after the cfg-file of the game (romname.cfg) will be deleted. Another screen shows information about the game. Hit any key to continue. Note: If you want to see this information screen again, you could press <TAB> and select <Game Information> or hit <ESC> and restart. ;-) The game will then go through a `hardware self-test' (remember, xmame is emulating game HARDWARE). After the self-test, you are `in' the video game. Feed the hungry machine with some coins (key <5> for one coin) then start (key <1>) it. For more coins and player read the next section (KEYBOARD COMMANDS). HAVE A LOT OF FUN!

KEYBOARD COMMANDS
While playing a game, there are certain keyboard commands available for you to use.
KEY | Action
<1> (the number `one') | Start a 1-player game.
<2> (the number `two') | Start a 2-player game.
<3> (the number `three') | Start a 3-player game.
<4> (the number `four') | Start a 4-player game.
<5> (the number `five') | Insert coin (slot 1).
<6> (the number `six') | Insert coin (slot 2).
<7> (the number `seven') | Insert coin (slot 3).
<8> (the number `eight') | Insert coin (slot 4).
<Tab> | Toggles the configuration menu.
<~> (Tilde) | Toggles the `On Screen Display'.
 | Use the up and down arrow keys to select
 | the parameter (global volume, mixing level,
 | gamma correction etc.), left and right to
 | modify.
<P> | Pauses the game.
<Shift+P> | While paused, walk to the next frame.
<F3> | Resets the game (start with
 | `hardware self-test').
<F4> | Shows the game graphics. Use cursor keys
 | to change set/color, F4 or Esc to return to
 | the emulation.
<F9> | Changes frame skip on the fly.
<F10> | Toggles speed throttling.
<F11> | Toggles speed display.
<Shift+F11> | Toggles profiler display.
<F12> | Saves a screen snapshot. The default
 | target directory is SNAP. You must create
 | this directory yourself; the program will
 | not create it if it doesn't exist.
<ESC> | Exits the emulator.
<L-CTRL> | is mostly used as a button.
<L-ALT>) | is also mostly used as a button.
<arrows> | will emulate the joystick, pad or
 | trakball. If you have a joystick (pad,
 | trakball ), you can use it with the
 | Input-Related options: -joytype, -jt
 | and/or -[no]analogstick, -[no]as
For a complete list of the usefull keys in xmame start a game, press the <tab> button, select <Input (general)> or <Input (this game)> and you see a complete list of the related keys.

RCFILES
You can put the most commandline options in an (r)essource (c)onfiguration (rc) file. To generate a `clean' xmamerc you type in your ${HOME}/.xmame directory: xmame -sc > xmamerc Now you have a good base to build your specific rc-file. Here is a piece from this file to tell you how the syntax works. ### X11-window Related ### cursor 1 mitshm 1 xsync 1 privatecmap 0 xil 1 mtxil 0 run-in-root-window 0 root_window_id 0 geometry 640x480 ### XFree86 DGA Related ### ### Video Mode Selection Related ### keepaspect 1 displayaspectratio 1.330000 The number `0' is equal to `no' or `false' and `1' means `yes' or `true'. Some parameters like `geometry' needs a string `800x600' and some others like `displayaspectratio' use a number `1.330000'.

ENVIRONMENT
The following environment variables are used:
ENV | USE
HOME | The user's home directory. (normally set by the login process.)
DISPLAY | X server to display in.

FILES
The config files are parsed in the following order:
PATH | CONFIG FILE
/usr/local/share/xmame/xmamerc | global configuration
${HOME}/.xmame/xmamerc | user configuration
/usr/local/share/xmame/xmame-x11rc | global per display
 | method
${HOME}/.xmame/xmame-x11rc | user per display
 | method
/usr/local/share/xmame/rc/<game>rc | global per game
${HOME}/.xmame/rc/<game>rc | user per game

BUGS
There might be some bugs. Take a look in the doc-dir for more info, because the xmame-project is always in progress. :-)

CREDITS
Lots and lots and lots of thank to everyone for there great help on the xmame project. I would like to thank the following people and of course anyone I've forgotten. Thank you all, Hans 1. Fathers of the mame-creature (main version) Nicola Salmoria Allard van der Bas Mirko (Mix) Buffoni (General Mantainer) 2. Fathers of mess Brad Oliver Richard Bannister Ben Bruscella (current coordinator) 3. Original UNIX/X11 port Allard van der Bas Dick the Ridder Juan Antonio Marmnez 4. Unix maintainer Hans de Goede 5. Alpha specific issues Christian Groessler 6. Sun specific issues Keith Hargrove Mathis Rosenhau 7. Irix specific issues Tristram Scott 8. GGI maintainance Gabriele Boccone (original port) Christian Groessler (current maintainer) 9. OpenGL code & maintainance Mike Oliphant 10. Network code Eric Totel 11. Perl scripts for automation of some porting issues Bill Adams 12. Xmame rpms Jeremy Hansen 13. Mailing list maintainer Chris McCraw 14. Bits and pieces Christian Groessler Torsten Paul 15. AIX Sound code Chris Sharpp 16. IRIX Sound code entropy@zippy.bernstein.com 17. German readme Robert Hamberger 18. Documentation (SGML, HTML, MAN ...) Rene Herrmann And now you've come to the end of this man(ual). Have a lot of fun Rene'