XMAME(6)

NAME
xmame - Arcade game machine emulator for UNIX/X

SYNOPSIS
xmame game [options...]

DESCRIPTION
xmame is an arcade game machine emulator for UNIX/X11. It will emulate the hardware, video, sound, and other services, of many classic arcade game machines. NOTE: This man page is well out of date, see README.unix for more uptodate info, and -help for more uptodate cmd-line options. Volunteers wanted to fix this.

Most games allow you to specify one or more options to control the behavior of xmame and that particular game. Many of these options can be preceded with ``no'', which acts to disable the option in question. Here are the most common ones:

-help
    Displays a help screen, summarizing the command line options.

-joy
    Allows you to use the joystick driver to control the game. (Specific to Linux.)

-mouse
    Activates mouse. When this option is used, moving the mouse in a particular direction (within the xmame window changes the direction you're moving in (i.e. acts as if you've pressed the corresponding arrow key).

-trak
    Enables the use of a trackball (i.e. the mouse). Used for certain games where a trackball is more appropriate as the controller (e.g. Missile Command, Centipede).

-pad
    Enables the use of the Linux FM-TOWNS Game Pad driver, so that you may use your game pad to control the game. (Specific to Linux.)

-swapjoyaxis
    Swaps the X and Y axes of your joystick.

-joyfilter value
    Activates the joystick ``noise filter'', and sets it to value. Default value is 5.

-x11joyname name
    Sets the name of the X-based (e.g. XInput) joystick device to name.

-paddevname name
    Sets the name of the FM-TOWNS game pad device to name. The default is /dev/pad00.

-mapkey xcode, mamecode
    Sets up a keyboard mapping that maps X character code xcode to xmame character code mamecode.

-cheat
    Enables ``cheat mode''. In cheat mode, pressing the TAB key and selecting the ``Cheat'' menu will allow you to enable or disable certain ``cheats'' in games (e.g. invincibility, infinite weapons, etc.).

-heightscale scale
    Sets the height scale (Y axis) to scale x. For example, a value of 2 will make the screen twice as high as it normally is.

-widthscale scale
    Sets the width scale (X axis) to scale x. For example, a value of 2 will make the screen twice as long as it normally is.

-scale scale
    Sets both height (Y) and width (X-axis) to scale x. The same as setting both -heightscale and -widthscale to the same value.

-frameskip nframes
    Skips nframes frames between video refreshes. Useful for making slowish games run faster on slow video hardware or CPU's.

-mitshm
    Activates MIT shared memory X server extension support. The default XFree86 servers support this, so you should probably use it. If enabled, will provide a significant speed advantage. This is the default behavior.

-xsync
    Enables the XFlush/Xsync screen refresh method.

-privatecmap
    Uses a private colormap entry for the xmame window. Makes colors look more realistic (especially on 8-bit X servers) with the disadvantage that moving the mouse cursor between windows causes your screen to change colors in a dramatic way.

-videomode mode
    Selects the SVGAlib video mode mode. Only applicable to the Linux/SVGALIB version of xmame

-forcetruecolor
    This option will cause xmame to attempt to use PseudoColor X visuals.

-ror
    Rotates the xmame display 90 degrees right.

-rol
    Rotates the xmame display 90 degrees left.

-flipx
    Flips the xmame display about the X-axis.

-flipy
    Flips the xmame display about the Y-axis.

-usedsp
    Selects /dev/dsp as the sound device. (Linux only.)

-useaudio
    Selects /dev/audio as the sound device. (Linux only.)

-sound
    Activates sound (requires a soundcard supported by your kernel's sound drivers, and the sound drivers to be compiled into your kernel).

-fm Activates use of your sound cards FM synthesizer for sound output.

-samplefreq freq
    Sets the game sounds sample frequency to freq.

-timerfreq freq
    Sets the timer-based audio's frequency (if enabled) to freq.

-mamedir dir
    Uses dir as the directory that contains the arcade ROM files, instead of the default.

-spooldir dir
    Uses dir as the directory to store high score files in, instead of the default.

-showconfig
    Displays the running parameters in a style suitable for insertion into an xmamerc file.

-list
    Lists all of the games supported by this version of xmame

-listfull
    Lists all of the games supported by this version of xmame , with full descriptions.

-listroms
    Lists the names of the ROM files that a particular game uses.

-listsamples
    Shows the names of the audio sample files used by a particular game.

-log
    Logs debugging information.

game
    The name of the you wish to play. (Required.)

KEYBOARD COMMANDS
While playing a game, there are certain keyboard commands available for you to use.
<1> (the number ``one'') Start a 1-player game.
<2> (the number ``two'') Start a 2-player game.
<3> (the number ``three'') ``Insert'' a ``quarter'' into the game.
<TAB>
    Enter configuration menu. Using this, you can configure the game, the keyboard commands, and even the ``DIP switches'' that you would normally find on the game's motherboard.
<P> Pauses the game. Press <P> again to resume.
<F3>
    Resets the game. Basically akin to pressing the RESET switch on your PC.
<F4>
    Shows the game's graphics. Use cursor keys (arrows) to change and/or set the colors.
<F8>
    Changes the frameskip value on the fly. (e.g. the ``-frameskip'' option)
<F9>
    Changes the volume of the sound. Possible values are 0%, 25%, 50%, 75%, and 100% of full volume.
<F10>
    Toggles speed throttling.
<F11>
    Toggles fps counter. (Displays a count of the # of frames per second being displayed.)
<F12>
    Saves a snapshot of the current game screen. Useful to send to your friends to boast about the new high score you got.
<ESC>
    Exits the emulator.

LEGAL NOTICE
Before you download any games ROM images from the Internet, or make your own ROM images (if you happen to be lucky enough to own one of these games), please be aware of the fact that these games are COPYRIGHTED by their respective companies. Therefore, if you download these files off of the Internet, you are in violation of copyright, and can get into some serious trouble. PLEASE BE AWARE OF THE POSSIBLE LEGAL RAMIFICATIONS OF DOWNLOADING ROM IMAGES, BEFORE YOU ACTUALLY DO SO!!! YOU HAVE BEEN WARNED, AND I 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 their xmame emulator.

INSTALLING GAMES
If you own an actual arcade machine of the game you wish to play, or own the motherboard to one, you can ``burn'' your own ROM images from the ROM chips on that board. How to do this is beyond the scope of this manual page; read the instructions for your ROM burner and/or consult people on the Internet. Probably the easiest way to get usable game ROM images is off of the Internet. An excellent site to get these is at: http://www.xs4all.nl/~delite/arcade_mame.html PLEASE BE AWARE OF THE POSSIBLE LEGAL RAMIFICATIONS OF DOWNLOADING ROM IMAGES, BEFORE YOU ACTUALLY DO SO!!! YOU HAVE BEEN WARNED, AND I TAKE NO RESPONSIBILITY FOR YOUR ACTIONS -- YOU ARE ON YOUR OWN!!! (see the LEGAL NOTICE section for more details.) The game ROM images come in ZIP files. Download the ZIP files for the games you want, and move them to the /usr/local/games/lib/mame directory. For each game, unzip it into its own directory (i.e. if you want to install PacMan, get ``pacman.zip,'' make a directory called ``pacman'' (under the /usr/local/games/lib/mame hierarchy), and unzip the pacman.zip file INSIDE that directory. Some games require the game ROM files to be in an unusually-named directory. For example, Dig Dug uses the directory name ``digdugnm.'' Read the file /usr/local/games/lib/mame/readme.txt to find out the names of the directories for particular games.

PLAYING GAMES
Okay, so you've got your games installed. Now what? Well, the simplest way to run a game is to simply type: xmame <game name> (e.g. `` xmame pacman'') Some games may run rather slowly on your hardware. if this is the case, the ``-frameskip'' option will be of help. Usually ``-frameskip 1'' is sufficient. In this case, put the argument AFTER the game name. Ex: xmame pacman -frameskip 1 Type `` xmame -help'' to see other possible command-line options. First you will be shown two screens: one with a copyright message, and one showing credits for wrote the driver for that particular game. Press any key to go to the next screen. The game will then go through a ``hardware self-test'' (remember, this program is emulating actual video game HARDWARE, and, just like your computer, video game hardware goes through a self-test when you first turn the power on!). After the self-test, you are actually in the video game. It will run through its display sequence (where it asks you to feed it quarters, displays the high score list, shows a sample game, whatnot). At this point, if you were in a real arcade, you would feed it quarters and push the appropriate ``start'' button for 1- or 2-player games. Since this program emulates video game hardware, you will, in a sense, have to do this as well. (no, don't go grabbing quarters and shoving them in your PC's floppy drive slot. :) ) To ``drop'' a ``quarter'' into your ``machine,'' press the <3> key (that's the number ``three''). Do this once for every quarter you want to insert -- for example, to play a 2-player game typically requires 2 quarters, so press the <3> button twice. Now, press the <1> (number ``one'') to start a 1-player game, and <2> (number ``two'') for a 2-player game. Now, you will be playing the game! Use the keyboard to play -- the arrow keys typically move you around, and the <ctrl> key acts as a ``fire'' or ``special action'' type button (i.e. in Mario Bros., <ctrl> causes the Mario character to JUMP). Some games use slightly different keys, and some 2-player games use a second set of keys for the 2nd player. For example, the Defender game has MANY controls for shields, warp speed, whatnot; while the Mario Bros. game uses a second set of keys to control the Luigi player (2nd player). If you want to find out what keys a particular game uses, look at the /usr/local/games/lib/mame/readme.txt file. HAVE FUN!!!

ENVIRONMENT

HOME
    The user's home directory. (normally set by the login process.)

MAMEDIR
    The directory where the arcade game ROM images can be found. Each game's ROMs must be kept in a directory named after the game (e.g. all Pacman roms go in MAMEDIR/pacman).

DISPLAY
    X server to display in.

FILES
/usr/local/games/lib/mame
    Directory containing arcade game ROM files (the ROMs for each game live in a subdirectory with the same name as the game, e.g. ``/usr/local/games/lib/mame/pacman''.
/usr/local/games/lib/mame/readme.txt
    File containing list of supported games, keyboard commands for each game, and bugs and other incompatibilities with certain games.
/usr/local/games/lib/mame/xmamerc
    System-wide configuration file for xmame
${HOME}/xmame/xmamerc
    Per-user configuration file for xmame (overrides system configuration if exists).
${HOME}/xmame/<game>.cnf
    Per-user configuration file of a particular game.

EXAMPLES
The following is an example of a typical usage of the xmame command:

    %
xmame pacman plays Pacman with all default options
    %
xmame dkong -frameskip 1 plays Donkey Kong using frameskip of 1. Useful for slower computers, if the game is running really slowly.
    %
xmame superpac -scale 2 plays Super PacMan with a double-sized screen (note that this slows the game down).
    %
xmame superpac -heightscale 2 -widthscale 2 Same as above, but using separate -heightscale and -widthscale arguments.

SEE ALSO
X(1)

STANDARDS
Usage is similar to that of the DOS version of xmame except that DOS-specific video options (e.g. -vesa, etc.) do not apply in this case, obviously.

DIAGNOSTICS
xmame will print a message and exit with a non-zero return status if some sort of error occurred. The error messages should be fairly self-explanatory.

HISTORY
In the beginning of 1997, an Italian programmer, Nicola Salmoria, started programming emulators, which were first seen on The Repository, a site dedicated to new emulator projects. The first emulator seen from him emulated Rally X, and later, many more standalone emulators surfaced. Nicola Salmoria even wrote several multi game emulators (ex. Multi PacMan, which ran all of the PacMan clones). Unfortunately, nobody really paid much attention to his efforts, since Sparcade (another arcade game emulator, presumably for the Sun SPARC architecture) had just come out, and it had many cool, fully-functional games emulated on it, unlike Nicola's efforts. Time passed, and Nicola started work on his Multi Arcade Machine Emulator (MAME), which provided an architecture for combining many different game emulators into one executable program. Today, MAME has become THE de-facto arcade emulator standard around, and is being ported to many different architectures, including the Macintosh, Amiga, UNIX/X11, and even Acorn machines. A very loyal, hard-core fan base has also developed for this emulator.

AUTHOR
The original author of xmame is Nicola Salmoria <MC6489@mclink.it>. The current version is maintained by Mirko Buffoni <mix@lim.dsi.unimi.it>, who also serves as the coordinator for the MAME project. Drivers for game hardware have been written and contributed by many people, too many to list in this man page. The UNIX/X11 port of MAME is maintained by Juan Antonio Marinez <jantonio@dit.upm.es>. This manual page was written by Donald Burr <dburr@POBoxes.com>.

BUGS
Some game hardware isn't completely emulated, especially sound. Probably other bugs, too. See the readme.txt file for more bugs.