xmame man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

Xmame(6)		      System Games Manual		      Xmame(6)

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

SYNOPSIS
     xmame[.x11|svga|xgl|sdl] [-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 pack
     age as xmame. Download any ROM images at your own risk and responsibil
     ity.

     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 refer
     ence 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 emu
     lates the hardware of realy many classic arcade game machines.
     XMAME/XMESS DOCUMENTATIONJuan Antonio Martinez  and Hans de Goede	and
     Rene' Herrmann (4 doc/sgml)
      and Lawrence Gold (minor editing) v2.1.7, 4 July 2001xmame/xmess docu
     mentation with an installation guide, the FAQ (frequently asked ques
     tions), hints, tips and tricks, the changes on the code and many
     more!Introduction and Links

     The most recent copy of this guide, the xmame-sources and many more can
     be found on the xmame project homepage at

     The official M.A.M.E home is at

     The very best ROM site on this planet is at

     grustibus, the very good frontend (if you gnome)

     gnomame, another great gnome-based frontend

     tkmame, the Tcl/TK frontend that works in Linux/Unix and MS Windows

     MAME Action Replay Page for those who want to have a  look at other moni
     tors at

     and of course don't forget our project homepage at

     If you think you can help with the todo list or you can make a  contribu
     tion that you feel is interesting, please send mail to the xmame/xmess
     coordinator.  See	for contact information.

     Optimise mouse warping.

     Remove osd[lowbar]input[lowbar]init[lowbar]post, add display ready flag.

     Updating of fps is off (dirty marking problem) with vector games.

     Update porting.txt.

     Convert all remaining sound drivers to plugins.

     Rewrite display/input code to be more modular, oo-ish, and usable as a
     separate library.

     Split -[lsqb  ]no[rsqb  ]scanline option into emulated and real scanline
     options.

     Add an option to specify which resolution to use, add clipping and pan
     ning if it doesn't fit and use it anyway.

     Use Pentium TSC for uclock where available.

     Network:

     Fix since the dos team broke it, find out if the dosnet team is still
     alive.

     Add mouse/joystick support to network play

     Try converting network support to tcp, currently we have no error correc
     tion.

     Make network code more robust, version check, input settings check, etc.

     Check x11-joystick. Rumor has it it's broken, but then again there's only
     one bug-report, so it seems no one is using it.

     fm soundhack for linux-i386.

     Make which messages are emitted and when configurable (log-type's and
     log-level), make fileio emit messages about which files it tries to open,
     to help debug rom-loading problems, and walk through all messages xmame
     emits giving them all a standard format like:

     OSD:	 Info:	  bla
     X11-window: Warning: bla
     Svgalib:	 Error:	  bla

     Add scancode 128-255 for non-PC keys like F13 -- F24, more keypad keys,
     etc., update all display targets to use this.

     Also see the text todo file, kept around to quickly enter stuff while
     hacking: Compiling, Setting Up and Starting Xmame/Xmess

     Note: This section is not a Unix tutorial. You need to know some basic
     Unix commands to compile and install xmame/xmess.

     GNU make is MANDATORY in ALL Systems, even if you use a different	com
     piler.

     On all platforms zlib is now needed since the core uses it. If you don't
     have zlib, a stripped version is included with xmame. See:	 and

     You are encouraged to use a GNU development environment: gcc, gmake, gnu-
     ar. Lots of problems are found due to the very permissive syntax in gcc,
     so if you use a strictly ANSI C compiler, you'll get lots of warnings,
     and if the version of xmame/xmess is not fully debugged, compilation
     errors.

     Xmame compilation breaks when using egcs-1.1.x or gcc-2.95, use -fno-
     strict-aliasing to fix it. gcc-2.95.1 does work with -fstrict-aliasing,
     and gives a nice speed increase.

     Xmame compilation also breaks when using Red Hat 7's latest (as of 16
     January 2001) update for gcc. If you experience problems, please either
     downgrade your compiler to the one included on the Red Hat 7 CD-ROM, or
     try replacing "gcc" in the Makefile with "kgcc", which will invoke
     egcs-1.1.2. (But please see above about the -fstrict-aliasing flag.)

     See  for platform specific compiling information.

     See  for special display methods information.

     Download the xmame/xmess source files archive.

     Move the xmame/xmess source files archive to a suitable work directory.
     When you extract the archive, sub directories will be created under the
     work directory.

     Rename the source files archive so its extension is .gz, so that gzip
     doesn't complain. For example, change xmame-0.34b1.1.tgz to
     xmame-0.34b1.1.tar.gz

     Use gzip -d to uncompress the archive. For example, type:

     gzip -d xmame-0.34b1.1.tar.gz

     Extract the files with tar. For example, type:

     tar xvf xmame-0.34b1.1.tar

     After extracting the archive, change to the subdirectory created by  the
     extraction process. For example, after extracting the xmame-0.34b1.1.tar
     archive, a directory named xmame-0.34b1.1 is created. Change to it. This
     directory is the top of the source tree.

     Copy makefile.unix to Makefile, the distributed Makefile is used for
     development and is not a good starting point!

     Edit the Makefile and change the settings according to your system. The
     default makefile.unix is preconfigured to run under X11/Linux. Be careful
     editing this file.

     If you intend to compile in X11 joystick support, type the following to
     see the available Xdevice list:

     make xlistdev; ./xlistdev

     Choose the desired device and re-edit Makefile, setting the option
     X11[lowbar]JOYNAME to the correct device.

     Compile xmame/xmess by typing:

     make

     If the compile fails, report the problem to the author.

     *** YOU MAY NEED TO BE root TO PERFORM THIS STEP *** To install
     xmame/xmess, type:

     make install

     If you want you can now build xmame/xmess for another target/display
     method, otherwise skip to the next step.

     If you want to also build for another target repeat repeat the "make" and
     "make install" steps adding "TARGET=[lt	]target[gt    ]" to the make
     command for example:

     make TARGET=mess
     make install

     If you want to also build for another display method repeat the "make"
     and "make install" steps adding "DISPLAY[lowbar]METHOD=[lt	   ]method[gt
     ]" to the make command for example:

     make DISPLAY_METHOD=svgalib
     make install

     You can also combine the 2 above for example:

     make TARGET=mess DISPLAY_METHOD=svgalib
     make install

     In your home directory, create a subdirectory called .xmame.

     From the top of the source tree, copy the file doc/xmamerc.dist to the
     [dollar][lcub  ]HOME[rcub	]/.xmame/ directory. (For xmess do this for
     xmessrc)

     If desired, copy xmamerc.dist to the global xmamerc location as [quot
     ]xmamerc[quot  ] (for xmess, copy xmamerc.dist to xmessrc). The global
     xmamerc location is defined in the Makefile.

     Edit [dollar][lcub	 ]HOME[rcub  ]/.xmame/xmamerc to match your prefer
     ences.  (For xmess, edit [dollar][lcub  ]HOME[rcub	 ]/.xmess/xmessrc)

     Be sure that the DISPLAY and PATH environment variables are  set cor
     rectly.

     Make sure your ROM images are installed.

     Start the X-Window System. (Unless you compiled for a different display
     method in which case you skip this step.)

     Start xmame/xmess. For example:

     /usr/games/xmame.x11 dkong

     Read

     Read (the recent parts of) . They might contain some hints about recent
     changes which aren't fully documented yet.

     Check  for operating system-specific notes. You may need to do something
     special for your operating system.

     Check  for display subsystem-specific notes. You may need to do something
     special for your display system.

     If you get an error about gz[lowbar]open and a bunch of other functions
     not found during linking, read:  and .

     Be sure that the rompath in your xmamerc/xmessrc is correct; see .

     Check xmamerc/xmessrc: Is it configured correctly?

     Are you getting messages that you are missing files? Maybe you are miss
     ing PROMs; see  and

     Is the program in your PATH?

     The svgalib/xf86[lowbar]dga build of xmame/xmess requires setuid root.
     Are your permissions correct?

     Try asking the friendly folks at the newsgroup alt.game.mame to see if
     anyone else has experienced the same problem as you.

     Try mailing to the xmame mailinglist, see	for more information.

     If all else fails, send email to the current maintainer of the
     xmame/xmess project. See  for contact information.

     Linux i386

     Linux i386 is the platform I (Hans) use, so xmame should compile without
     any hassles on Linux i386. (Note: The same is true for Lawrence Gold.)

     Some bugs have been found and worked around when using gcc27x, please use
     egcs if available. If more gcc bugs popup, egcs will be  made mandatory,
     but I hope that won't be necessary.

     It has been reported that some SoundBlaster AWE32 and VIA-82cxxx
     (onboard) cards do not  correctly manage get[lowbar]freespace(). If so,
     you'll get some audio[lowbar]ioctl() calls failed messages in console,
     and if everything goes right a message that xmame/xmess is falling back
     to timer based audio. If  this doesn't happen and sound isn't right, try
     forcing timer-based  audio by starting xmame/xmess with -timer.

     SB64/128PCI cards (Ensoniq 137x-based cards) also do not correctly manage
     get[lowbar]freespace(). Unfortunately, this doesn't result in failed
     ioctl's; instead, they just ignore the calls. Xmame tries to autodetect
     this and to fall back to timer-based audio. If this doesn't happen and
     sound isn't right, try forcing timer based audio by starting xmame/xmess
     with -timer.

     Some have reported success using ALSA with OSS emulation (see ). If you
     experience the above problems, this would certainly be worth a try.

     Also, I've tested sound using the PC-Speaker driver module. It works!!
     But it needs -timer. Again, it should do this  automagically, but you
     know what to do if it doesn't.

     Distribution-Specific Comments:

     S.u.S.E. Linux: Besides the gcc compiler and libc libraries, which are
     both from the [quot  ]d[quot  ] series, other packages  need to be
     installed or the build will fail. If compiling for svgalib, the svgalib
     package from series [quot	]d[quot	 ] installed. If compiling for the X-
     Window System, you must have xdevel package from series [quot  ]x[quot  ]
     installed. These packages can be installed using the [quot	 ]yast[quot  ]
     utility included in the S.u.S.E. distribution.

     Red Hat Linux is the operating system used by the author. xmame/xmess
     should build correctly under Red Hat Linux. :-) Linux PowerPC

     Linux PowerPC should work from now on. Here's an email from Andreas Varga
     , the Linux/PowerPC maintainer, describing the necessary steps:

     Required changes to compile xmame 0.34b3.1 on Linux/PowerPC with SVGALIB

     Makefile:

     enable CFLAGS for linux/ppc

     enable DISPLAY[lowbar]METHOD = svgalib

     enable ARCH = linux

     remove -lvgagl from LIBS.svgalib in src/unix/unix.mak (only -lvga is
     required)

     Required changes to compile xmame 0.34b3.1 on Linux/PowerPC with X11

     Makefile:

     enable CFLAGS for linux/ppc

     enable DISPLAY[lowbar]METHOD = x11

     enable ARCH = linux

     Another thing... sound is not working, because sound drivers support is
     currently under development in Linux/PPC kernels...there is an old driver
     that is a hacked Soundblaster driver, and newer 2.1.1xx kernels have a
     sound drivers based on Amiga DMA sound drivers... Once this issues are
     settled there should be a full OSS-compatible driver... sound should work
     then...

     I can't speak about Joystick support...

     The original Linux/PPC target changes in the Makefile were done by me,
     but there are some other changes required to get it to compile... Start
     ing from October I will have some more time to work on this, and I'll
     keep you updated...

     Cheers, AndreasIRIX

     Use the generic unix arch for those machines that have no	sound support
     installed (xmame/xmess uses the dmedia package or the newer AL package on
     IRIX systems).

     Silicon Graphics provides several native compilers. xmame/xmess has  been
     compiled and tested with the normal cc. There were some problems with
     this when using -n32 for new style 32bit code. It does work when using
     -o32 for oldstyle 32 bit code. It should now also work with -n32 which is
     much faster.

     The use of DCC is not recommended (anymore) since it's a C++  compiler
     and thus won't even compile xmame/xmess out of the box due to uncasted
     mallocs.  Changing all these mallocs would be crazy, esp. since they are
     not only in the osd part, but also in the core which is not under our
     control. Besides that, mame is normal C, so please compile it with a nor
     mal C compiler.

     Some problems have been reported using the GNU linker. It's recommended
     that you use the native one.HPUX

     Use the generic unix arch. In HP-UX, gcc and gnu-make are MANDA
     TORY.ULTRIX

     Use the generic unix arch.

     Notes received from Danny

     VERY IMPORTANT!!!

     The xmame/xmess CPU emulators access memory through pointers which are
     sometimes cast to illegal addresses - as far as the MIPS CPU is con
     cerned.  The Ultrix operating system is aware of that and fixes this
     [quot  ]unaligned data access[quot	 ].

     Depending on your system setup, lots of warnings are generated for cer
     tain games. Fortunately these messages can be disabled by	executing the
     command [quot  ]uac p 0[quot  ] in the same shell where xmame/xmess  will
     be running.

     UPDATE: The new -DALIGN[lowbar]INTS switch in the makefile fixes these
     unaligned accesses in the source which is probably a lot faster than hot
     fixing them in the kernel segfault handler.

     Use gnu make.

     Compile with the `c89' compiler. Though `gcc' has no problems  with com
     piling and optimizing xmame/xmess, the resulting `c89'  executable is
     faster on an empty machine (read: xmame can use all  cpu [amp   ] memory
     without competing with other high priority	 processes), so you can set
     `frameskip' to 1.

     When compiling with `c89 -O2' don't forget to also use `-Olimit  1000'.
     If 1000 is not enough, the compiler will tell you to  increase it.SunOS
     [amp   ] Solaris

     There are 2 relevant architecture options available in the makefile:

	 ARCH = generic : use this for old SunOs running on Sparcs,
			  but a Sparc running Solaris will usually
			  handle this option too.
	 ARCH = solaris : this is the one you should use for Sparcs
			  running Solaris.

     Currently sound is not supported under sunos. The solaris arch does sup
     port audio.

     If you are using Sun's OpenWindows implementation of X11, then make sure
     that the X11INC and X11LIB variables in the X11 Options section of the
     makefile are set properly. (There are already entries for the standard
     OpenWin directory there that you can uncomment.)

     Of course, if you are compiling for X11 then you need to set these vari
     ables properly, no matter what implementation of X11 you are using!  :)

     If you are using Sun's SunPro cc compiler, then the following optimisa
     tion flags have been reported to be good:

	 OPTFLAGS    = -fast -xO4 -native

     Finally, there has been a case of the xmame compilation processes break
     ing over the [quot	 ]ar[quot  ] program. Most Solaris installations will
     include a set of utilities that conform to the XPG4 standard, usually in
     the [quot	]/usr/xpg4/bin[quot  ] directory. The XPG4 version of [quot
     ]ar[quot  ] should be avoided like the plague.  Ensure that the [quot
     ]/usr/ccs/bin[quot	 ] appears in your path before the [quot
     ]/usr/xpg4/bin[quot  ] directory and everything should go smoothly.

     PLEASE NOTE : There is currently not much support for SunOS/Solaris. If
     you have any trouble, try to fix it yourself. If you succeed, send a mes
     sage to the mailing list detailing what you did. If you don't succeed,
     send a message anyway and someone [lowbar]may[lowbar] be able to help
     you. Either way, this is the only way that problems with xmame on
     SunOS/Solaris will get fixed.Openstep

     You must use the OpenStep gnumake, not make. You must also use the
     NeXT/Apple cc rather than gcc. Also use only the optimisation options as
     recommended for OpenStep in the makefile, others will cause the resulting
     executable to crash.  The OpenStep assembler on i386 architectures is
     incompatible with the mame assembler CPU cores and thus you must use the
     C versions (Use i386-noasm instead of i386 when compiling for i386).

     The supplied complier is based on gcc 2.7.2.1 which will not compile
     src/profiler.c without crashing. To get around this you must turn off +
     optimisation when this crash occurs, re-make to compile this file only,
     then stop the make, re-enable optimisation, and continue.

     On an OpenStep keyboard the functions keys do not all operate as
     expected.	Using the command key in conjuction with a number key gener
     ates the equivalent function key within xmame, with 0, - and = + repre
     senting F10, F11 and F12 resepectively. Also note that the ALT + keys
     cannot be mapped. As most games tend to use this as the default fire but
     ton it is exteremly useful to remap this globally the first time you run
     xmame.Xmame Frequently Asked Questions

     Mame is an arcade machine emulator. Started in 1997 by Nicola  Salmoria,
     mame started out as a series of emulators for  individual games. This
     series of emulators was combined into a  simgle multi-game emulator. This
     is the current form of mame; no longer a one-man show, there are over 100
     contributors to the project.

     Mame was created by Nicola Salmoria.

     Also see

     Mess is just like mame---a virtual machine emulator, only it doesn't emu
     late arcade machines but rather computers and consoles.

     Also see

     Xmame/xmess are the Unix/X11 ports of the mame and mess projects. It
     makes mame/mess available on *ix machines using the X11R6 X-Window System
     (and SVGAlib/ggi/XF86-DGA/OpenGL/SDL too).

     Mame was orginally ported by Allard Van Der Bas, Dick the Ridder, Juan
     Antonio Martinez, and Hans de Goede.

     Xmame/xmess is currently maintained by Lawrence Gold.

     None significant.

     Xmame/xmess is based on the mame/mess source code. Due to technical rea
     sons beyond the scope of this document, the mame/mess source may not com
     pile under Unix. That's why the xmame/xmess project exists. Each time
     mame/mess is updated, the code is tested  (and patched if needed) under
     Unix. This way xmame/xmess releases are always the same as their mame
     counterparts.

     There are no plans for the independent development of xmame/xmess.

     Xmame runs on both little-endian and big-endian CPUs, using aligned inte
     ger access if needed and is compatible with 64 bit CPUs. The current list
     of supported CPUs in the makefile is:

     i386 + gnu-asm

     i386 no asm

     alpha

     ia64 (merced)

     m68k

     generic risc (PowerPC, Sparc, HPPA, IBM)

     generic risc, lsb-first (RISC (Ultrix machines))

     mips (generic risc + SGI compiler bug workarounds)

     Adding support for another cpu (if necessary) should be trivial.

     The following Unix platforms are specifically supported:

     Linux

     FreeBSD

     NetBSD

     Solaris (SunOS)

     OpenStep (noasm only on i386)

     IRIX with sound using the dmedia package or the new al package (sound
     currently broken)

     AIX (sound currently broken)

     generic unix, no sound

     The generic unix entry should work for any reasonable standard Unix vari
     ant, but lacks sound since there is no single Unix sound standard.

     On all platforms, zlib is now needed since the core uses it. Ff you don't
     have zlib, use the included one by uncommenting the appropriate line in
     Makefile.

     The following display methods are supported. X11 is the only one which
     works on all platforms, except for OpenStep which only works with Open
     step bitmaps:

     X11 (X-Window System)

     svgalib

     GGI (Generic Graphics Interface)

     OpenGL using X11 for input

     glide using X11 for input (3DFX)

     glide using svgalib for input (3DFX)

     OpenStep bitmaps

     SDL (Simple Direct Medialayer)

     The following is a list of arch/os/display combinations, with maintain
     ers, for arch/os/display combinations which are actively supported.
     Please mail the maintainer of the arch/os/display combination for compi
     lation and other arch/os/display specific problems. Mail Lawrence	for
     generic (e.g., X11) problems.

     i386/linux/x11 (+DGA) -[gt	   ] Lawrence

     i386/linux/svgalib -[gt	] Lawrence

     i386/linux/xgl -[gt    ] Sven Goethel

     i386/linux/xfx -[gt    ] Lawrence

     i386/linux/svgafx -[gt    ] Lawrence

     i386/linux/ggi -[gt    ] Christian

     alpha/linux/x11 -[gt    ] Christian

     alpha/digital unix/x11 * -[gt    ] Leandro

     powerpc/linux/x11 -[gt    ] Andreas

     powerpc/linux/svgalib -[gt	   ] Andreas

     i386/freebsd/x11 -[gt    ] Jacob A. Hart

     i386/netbsd/x11 -[gt    ] Dave

     alpha/netbsd/x11 -[gt    ] Christian

     Sparc/Solaris/x11 -[gt    ] Mathis

     i386/Unixware7/x11 * -[gt	  ] Richard

     i386/openstep -[gt	   ] Pete French

     Sparc/SunOs -[gt	 ] Saga

     mips/irix/x11 -[gt	   ] Dingus Family

     * These are supported using the generic unix entry of the makefile, and
     thus lack sound.

     We are always looking for people willing to test and answer questions
     about xmame on a new arch/os/display. This takes very little work and
     could help other people tremendously. If you're interested, mail Lawrence
     .

     Xmame/xmess should run on 8bpp Pseudo Color displays and on 16, 24 and
     32bpp True Color displays. If your X-Server does not support any  of
     these display types, xmame/xmess will not run.

     You can verify your X-Server support by starting your X-Server  and run
     ning the xdpyinfo program. See the xdpyinfo manual page  for more infor
     mation.

     A normal xmame/xmess invocation looks like:

	 xmame pacman -sound -nojoy -frameskip 2 -heightscale 3 [bsol  ]
	     -widthscale 2

     Most of the time, you will want to use the same configuration for	each
     game. xmame/xmess will read this file for default values for the  parame
     ters that you can set. This way the only parameters you  need to express
     on the command line are the ones you want to  override.

     Another reason for xmamerc/xmessrc is keyboard remapping. Some Unix  key
     boards are very different than their PC counterparts. To  compensate for
     the changes, xmame/xmess allows you to remap keys that  are not available
     on Unix keyboards to keys that are available.

     The syntax is quite simple:

	[quot  ]keyword value[quot  ]

     See  for most keywords. Allmost all commandline options can be used as
     keywords (without the -), use value 0 or 1 for commandline options which
     have a negating (-no[lsqb	]option[rsqb  ]) counterpart. As usual lines
     begining with [quot  ][num	  ][quot  ] are comments.

     You can also generate a configfile with all the current settings to use
     as a template by typing:

	xmame -showconfig [gt	 ] [tilde ]/.xmame/xmamerc

     Roms/Samples

     Xmame/xmess uses a [quot  ]:[quot	] seperated rompath to find out which
     dirs to search for roms/samples.

     The default rompath is XMAMEROOT as defined in Makefile during compile.

     This is overwritten by any rompath in xmamerc/xmessrc, which can be over
     written again with the -rompath commandline option.

     Xmame/xmess searches every dir in this path for roms/samples in the fol
     lowing way:

	 [lt	]dir[gt	   ]/gamename.zip	      (containing filename.ext)
	 [lt	]dir[gt	   ]/gamename/filename.ext
	 [lt	]dir[gt	   ]/gamename/filename.ext.gz (containing filename.ext)
	 [lt	]dir[gt	   ]/gamename/filename.zip    (containing filename.ext)

     So let's say that we are searching for rom0001.1, which is part of pac
     man.  Then xmame/xmess would search every dir in your rompath for

	 [lt	]dir[gt	   ]/pacman.zip		      (containing rom0001.1)
	 [lt	]dir[gt	   ]/pacman/rom0001.1
	 [lt	]dir[gt	   ]/pacman/rom0001.1.gz      (containing rom0001.1)
	 [lt	]dir[gt	   ]/pacman/rom0001.zip	      (containing rom0001.1)

     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.Read/write Diskette Images

     This section only applies to xmess emulations which support read/write
     diskette images and thus try to open the image read/write.

     Xmess first searches for read/write images with the name specified on the
     commandline:

	 [lt	]path[gt    ]/image.ext

     where path is the path specified with the image on the commandline. This
     way, absolute and relative filenames can be used directly on the command
     line for an image which is not in the rompath.

     Then xmess searches every dir in the rompath for roms/samples in the fol
     lowing way:

	 [lt	]dir[gt	   ]/image.ext

     Note that (g)zipped images are not supported for r/w images.Rom Car
     tridges/Read Only Diskette Images

     Xmess begins by searching for cartdriges/disks from the current dir in
     the following way:

	 [lt	]path[gt    ]/image.ext
	 [lt	]path[gt    ]/image.ext.gz	      (containing image.ext)
	 [lt	]path[gt    ]/image.zip		      (containing image.ext)

     where path is the path specified with the image on the commandline. This
     way, absolute and relative filenames can be used directly on the command
     line for an image which is not in the rompath.

     Then xmess searches every dir in the rompath for carts/images in the fol
     lowing way:

	 [lt	]dir[gt	   ]/image.ext
	 [lt	]dir[gt	   ]/image.ext.gz	      (containing image.ext)
	 [lt	]dir[gt	   ]/image.zip		      (containing image.ext)

     Finally, xmess searches the rompath as desribed above using the system
     type for gamename.

     So let's say we want to play mario.nes on the nes emulation of xmess. We
     would then type: [quot  ]xmess nes mario.nes[quot	]. Xmess then begins
     by searching the current dir for

	 mario.nes
	 mario.nes.gz			(containing mario.nes)
	 mario.zip			(containing mario.nes)

     After that, xmess searches each dir in your rompath for

	 [lt	]dir[gt	   ]/mario.nes
	 [lt	]dir[gt	   ]/mario.nes.gz	      (containing mario.nes)
	 [lt	]dir[gt	   ]/mario.zip		      (containing mario.nes)

     And finally, xmess searches each dir in your rompath for

	 [lt	]dir[gt	   ]/nes.zip		      (containing mario.nes)
	 [lt	]dir[gt	   ]/nes/mario.nes
	 [lt	]dir[gt	   ]/nes/mario.nes.gz	      (containing mario.nes)
	 [lt	]dir[gt	   ]/nes/mario.zip	      (containing mario.nes)

     Since xmess first searches for cartridges/disks from the current dir you
     can also specify cartridges/disks not in your rompath. For example:

	 [quot	]xmess nes ../mario.nes[quot  ]

     Xmess then searches for

	 ../mario.nes
	 ../mario.nes.gz		(containing mario.nes)
	 ../mario.zip			(containing mario.nes)

     and will also search the rompath as described above with ../mario.nes as
     the image name but this is not that useful.Artwork

     Xmame/xmess searches every dir in the rompath for artwork in the follow
     ing way:

	 [lt	]dir[gt	   ]/artwork.png
	 [lt	]dir[gt	   ]/artwork.png.gz	      (containing artwork.png)
	 [lt	]dir[gt	   ]/artwork.zip	      (containing artwork.png)

     Then xmame/xmess searches the rompath as in roms/samples.

     So let's say we want to play foo which uses bar.png. Xmame/xmess then
     begins searching each dir in your rompath for

	 [lt	]dir[gt	   ]/bar.png
	 [lt	]dir[gt	   ]/bar.png.gz		      (containing bar.png)
	 [lt	]dir[gt	   ]/bar.zip		      (containing bar.png)

     And then xmame/xmess searches each dir in your rompath for

	 [lt	]dir[gt	   ]/foo.zip		      (containing bar.png)
	 [lt	]dir[gt	   ]/foo/bar.png
	 [lt	]dir[gt	   ]/foo/bar.png.gz	      (containing bar.png)
	 [lt	]dir[gt	   ]/foo/bar.zip	      (containing bar.png)

     Xmame configuration

     Xmame looks for the following configuration files and parses each one
     found.  Files parsed later can overwrite options in previously parsed
     files:

	 XMAMEROOT/xmamerc
	 XMAMEROOT/xmame-DISPLAY_METHODrc
	 [dollar][lcub	]HOME[rcub  ]/.xmame/xmamerc
	 [dollar][lcub	]HOME[rcub  ]/.xmame/xmame-DISPLAY_METHODrc
	 [dollar][lcub	]HOME[rcub  ]/.xmame/rc/[lt    ]gamename[gt    ]rc

     XMAMEROOT is defined during compile time, see Makefile.

     DISPLAY[lowbar]METHOD is the DISPLAY[lowbar]METHOD for which xmame was
     compiled, this can be one of: x11, svgalib, ggi, xgl, xfx, svgafx, open
     step, SDL.

     For xmess of course replace xmame by xmess. ;)Game configuration

     Game configuration files are kept on a per-user base in:

	 [dollar][lcub	]HOME[rcub  ]/.xmame/cfg/[lt	]game[gt    ].cfg resp
	 [dollar][lcub	]HOME[rcub  ]/.xmess/cfg/[lt	]game[gt    ].cfg

     Game state

     Game state files are kept on a per-user base in:

	 [dollar][lcub	]HOME[rcub  ]/.xmame/sta/[lt	]game[gt    ].sta resp
	 [dollar][lcub	]HOME[rcub  ]/.xmess/sta/[lt	]game[gt    ].sta

     NVram

     NVram files are kept on a per-user base in:

	 [dollar][lcub	]HOME[rcub  ]/.xmame/nvram/[lt	  ]game[gt    ].nv resp
	 [dollar][lcub	]HOME[rcub  ]/.xmess/nvram/[lt	  ]game[gt    ].nv

     Mem cards

     Mem cards files are kept on a per-user base in:

	 [dollar][lcub	]HOME[rcub  ]/.xmame/mem/[lt	]filename[gt	].mem resp
	 [dollar][lcub	]HOME[rcub  ]/.xmess/mem/[lt	]filename[gt	].mem

     Where [lt	  ]filename[gt	  ] is given by the game-driver. Screenshots

     Screenshots, which can be made by pressing F12, are saved as png files in
     the directory from where xmame is started (cwd).

     This can be overidden by the screenshotdir entry in xmamerc/xmessrc,
     which can again be overidden by the -screenshotdir cmdline-option.

     They are saved as:

	 [lt	]screenshotdir[gt    ]/[lt    ]game[gt	  ]xxxx.png
	 Where xxxx is a number.

     Highscores

     Highscores are stored in XMAMEROOT as defined in Makefile when building.
     This can be overidden by the spooldir entry in xmamerc/xmessrc, which can
     again be overidden by the -spooldir cmdline-option.

     So only give a

	 drwxrwsr-x root games [lt    ]spooldir[gt    ]

     permission and setgid xmame/xmess to [quot	 ]games[quot  ] to get it to
     work.  Note this doesn't work with suid root versions (svgalib [amp   ]
     XF86-DGA), suggestions welcome.

     For now use [dollar][lcub	]HOME[rcub  ]/.xmame or [dollar] [lcub
     ]HOME[rcub	 ]/.xmess as the spooldir in xmamerc/xmessrc for  suid root
     versions.

     Note: For highscores to work, xmame must also be able to find his
     core.dat.hiscore.dat

     If you want to use highscores mame needs to load hiscore.dat to get high
     score info.

     The default is XMAMEROOT/hiscore.dat . XMAMEROOT is set during compile-
     time; see the Makefile. This can be overridden by the hiscorefile entry
     in xmamerc if present, which can again be overridden by the cmdline-
     option -hiscorefile.

     hiscore.dat is available from the mame homepage: cheat.dat

     If you want to use cheats mame needs to load cheat.dat to get cheat info.

     The default is XMAMEROOT/cheat.dat . XMAMEROOT is set during compile-
     time; see the Makefile. This can be overridden by the cheatfile entry in
     xmamerc if present, which can again be overridden by the cmdline-option
     -cheatfile.

     cheat.dat is available from the mame homepage: history.dat

     If you want to display some nice background info on games, mame needs to
     load history.dat.

     The default is XMAMEROOT/history.dat . XMAMEROOT is set during compile-
     time, see the Makefile. This can be overridden by the historyfile entry
     in xmamerc if present, which can again be overridden by the cmdline-
     option -historyfile.

     history.dat is available from the mame homepage: Input logs

     Input logs are saved/read under the name specified after the -record /
     -playback option; this name is relative to the current path.Xmame/xmess
     still can't find files/store highscores

     Type [quot	 ]xmame/xmess -showconfig [verbar] more[quot  ] and check that
     the rompath and spooldir shown are correct and readable/writable. Other
     wise recheck xmamerc/xmessrc.  Remember that xmess also searches the cur
     rent dir.

     To start xmame, type

	 xmame [lsqb  ]options[rsqb  ] [lt    ]gamename[gt    ] [lsqb  ]more options[rsqb  ]

     For xmess, type

	 xmess [lsqb  ]options[rsqb  ] [lt    ]systemname[gt	] [lsqb	 ]more options[rsqb  ] [bsol  ]
	 [lt	]disk/romimage(s)[gt	] [lsqb	 ]more options[rsqb  ]

     All options are optional. ;)

     Xmame/xmess supports most dos command line options (see readme.mame /
     readme.mess) as well as a few of its own: Type xmame -help [verbar]  more
     for a complete list.

     With xmess, some systems don't require a disk/romimage, but most do.

     To see a list of available parameters, type:

	 /usr/games/xmame -help | more

     Xmame/xmess supports most of the command line parameters as the DOS  ver
     sion as well a some of its own.

     See the file readme.mame / readme.mess for more information about the
     command line parameters.

     Xmame/xmess uses the same key-bindings as the DOS version of mame: The
     following keys work in all emulators:

	 `  or [tilde ]	     Enter On screen display to change volume, brightness etc.
	 Tab	      Enter configuration menu. Press Tab or Esc to get back to
		      the emulation.
	 P	      Pause
	 F3	      Reset
	 F4	      Show the game graphics. Use cursor keys to change set/color,
		      F4 or Esc to return to the emulation.
	 F8	      Reduce frame skip
	 F9	      Increase frameskip
	 F10	      Toggle speed throttling
	 F10 + shift  Toggle idle sleeping
	 F11	      Toggle speed display
	 F11 + shift  Toggle profiler display
	 F12	      Save a screen snapshot
	 ESC	      Exit emulator

     Xmame has 2 different auto frameskipping algorithms. These can be
     selected with the -frameskipper option and with key combos:

	 Key combo:		Gives you the:
	 left-ctrl + insert	standard dos frameskipper
	 left-ctrl + home	William Barath's frameskipper

     Xmame's display scaling can be controlled on the fly with the following
     key combos:

	 Key combo:		Result:
	 left-shift + insert	Increase widthscale
	 left-shift + delete	Decrease widthscale
	 left-shift + home	Increase heightscale
	 left-shift + end	Decrease heightscale
	 left-shift + pageup	Increase scale
	 left-shift + pagedown	Decrease scale

     Under X11, xmame can switch to and from different modes during runtime:

	 Key combo:		Warps you to:
	 left-alt + insert	Normal window
	 left-alt + home	DGA fullscreen mode

     Under SDL, xmame can switch to and from different modes during runtime:

	 Key combo:		Result:
	 left-alt + enter	Toggles between windowed and
				fullscreen modes.

     Under X11 in a window, you can also grab the mouse. To be able to play
     with the mouse, press left-alt + page-down to grab the mouse, and press
     it again to release it.

     First check that sound is working in other applications.

     Check that sound is supported for the game that has no sound; not all
     games have sound.

     For xmame, take a look at gamelist.mame: Is the sound for the game emu
     lated?

     For xmess take a look at readme.mess: Is the sound for the system emu
     lated?

     Check the operating system support chart in the earlier part of  this
     file: Does xmame/xmess support sound on your system?

     With the -bufsize commandline option or the bufsize configfile keyword,
     you can specify the number of frames of audio to buffer. The default is 2
     frames.

     This value should be ok for everyone, but if you still have problems,
     read on.

     If the buffersize is to small, this causes the buffer to get empty
     between frames which in turn causes clicks/pauses in the sound. If this
     is the case, increasing the -bufsize value to, for example, 2.5 should
     help.

     If, however, you make the buffersize too large, then so much audio
     becomes buffered, that the sound could become lagged. E.g., you would
     hear the coin drop sound 0.5 seconds after pressing the insert coin key.
     In this case, lower the bufsize to, for example, 1.5.

     Please let me know if you need to change this setting, since I'm planning
     on removing it in a future release.

     Do you have the right roms or did you get checksum failures?

     Xmame version 0.34 and higher require PROM files that were not included
     in ROM images released before version 0.34. See the question on PROMs
     below for more information.

     For xmame, check the file gamelist.mame to see if the game is playable.
     Just because a game is included doesn't mean it is working yet.

     For xmess, take a look at readme.mess. Maybe the system isn't emulated
     all that well yet.

     Some games require sound support. If you don't have sound	support under
     your Unix installation or sound isn't supported by xmame/xmess for you,
     try the -fakesound command line parameter.

     PROMs contain game-specific information that used to be built in  to mame
     in versions prior to 0.34. This information has been  extracted and is
     now included with new versions of ROM files for  games that require this
     information.

     If you want to use your current ROM files, you can obtain just the PROM
     images in one large file at:

     Xmame/xmess is a compiled C program that is emulating hardware.  Software
     emulation of hardware always incurs a speed penalty. Here	are some
     things you can do:

     Try using the -frameskip command line parameter.

     Try pressing F8 while running xmame/xmess to alter the frame rate.

     Try disabling the throttle with the -nothrottle command line  parameter
     or by pressing F10 while running xmame/xmess.

     While running xmame/xmess, press F11 to check the speed of xmame/xmess.
     If you never get a display of 100[percnt], you need a faster computer.

     You can also try recompiling xmame/xmess with more optimal settings. The
     following suggestions may not work or may not be appropriate on some
     machines and in some installations.  However, in cases where they do
     work, there can be a noticeable increase in overall performance of
     xmame/xmess.

     These [quot  ]enhancements[quot  ] simply require editing the Makefile
     that is distributed with xmame, and then recompiling the source.  If you
     are compiling the source for the second time you will need to do:

	 make clean
	 make
	 make install

     after editing the Makefile to set your new settings.SPEEDUP [num	] 1 -
     Inline compiling

     Try enabling inline compiling by commenting and uncommenting the follow
     ing lines:

	 [num	] IL	= '-DINLINE=static inline'
	 IL	= -DINLINE=static

     SPEEDUP [num   ] 2 - Direct Graphics Access

     For a big boost, try enabling DGA by uncommenting the following line:

	 DGA = 1

     Then start xmame as root, and press left-alt + home to switch to dga
     mode; that should be a lot faster, and doesn't need/use xsync. ;)

     To get back to a window without exiting, press left-alt + insert.

     The benefit of DGA is that it is Direct Graphics Access and therefore
     writes directly to the framebuffer (think DirectX versus GDI under MS
     Windows). So it should be a tad faster, unless you've got a really really
     well accelerated X-server, which could be just as fast. Try pressing F11
     to see the actual framerate, although it might be hardly noticable (visu
     ally, at least), it should give you some speed increase.

     Besides that, it automatically switches to the right mode and removes any
     window manager stuff, but that can be done without DGA too. (I might add
     such a feature later, since it allows easy fullscreen without running as
     root.)

     Adding a 320x240 mode will most definitely get you a very nice fullscreen
     display at scale = 1. ;)

     Don't forget that you still need to set up the Modes line of the	[quot
     ]Display[quot  ] subsection of the [quot  ]Screen[quot  ] section in your
     X11 config file if you want the games to fill the screen in DGA mode.
     Xmame will pick the best mode it can find, so if you have a line like

	 Modes	[quot  ]1024x768[quot  ] [quot	]800x600[quot  ] [quot	]640x480[quot  ] [quot	]320x240[quot  ] [quot	]256x224[quot  ]

     then any game which fits into a 320x240 screen can be displayed in that
     resolution, and so on. Don't forget your X11 config file might have a
     number of different [quot	]Screen[quot  ] sections in it, and you will
     need to add Modes to the one that is actually active with your Xserver is
     running. And of course it's not always that easy, since you also need to
     tell X which monitor settings are required for these resolution modes.
     This is done through Modeline entries in the [quot	 ]Monitor[quot	] sec
     tion of your X config file.

     You can check out the /contrib/tools/modelines file for a set of crazy
     modes made especially for xmame in DGA mode. They should work on any rea
     sonable multisync monitor, but don't use them on an old fixed-frequency
     monitor. (And if you can't resist trying, I won't pay for a new
     one!)SPEEDUP [num	 ] 3 - NASM

     You can also try installing nasm and compiling the asm core, that helps a
     bit too.  of this?

     Not much. Xmame is a single-threaded port of a single-threaded DOS app.
     Some degree of speedup will hopefully be found on an SMP machine since
     xmame is more likely to get to hog its one CPU for longer. But of course
     the same applies to any CPU-intensive program. And all the things one
     would normally do to any application to give it more CPU time (higher
     priority, kill or renice unecessary process, etc.) will work with xmame.

     Now you may at this point be thinking, "Surely you could have one thread
     doing emulation and another thead doing graphics to get a speedup." Yes,
     but there are some serious issues to consider. The first is synchronisa
     tion between the threads, which needs to be pretty tight. If not done
     smoothly. the overhead will blow most of the benefit away. Also, it needs
     to be implemented with a portable threads interface ... which basically
     means POSIX threads. In a nutshell, it's a lot of effort for probably not
     much gain. But of course if you are feeling particulary energetic and in
     the mood to code, then patches can always be submitted to the xmame devel
     mailing list ... :) x86 system?

     Xmame/xmess uses autocalibrating, but you could try to use specific pro
     grams to calibrate it (jscal that comes with joystick  module works
     fine....).

     You need to edit XF86Config to enable the XInput section. See the	manual
     page for XF86Config.

     Easy. If you want to read the manual page for XF86Config, type: man
     XF86Config

     Xmame/xmess versions newer than 0.35 use zlib for some compression rou
     tines.  Unfortunately, a lot of Linux distributions have an old version
     of zlib installed as /usr/X11R6/lib/libz.a, and the new version installed
     as /usr/lib/libz.a.  If this is the case, it's harmless to remove
     /usr/X11R6/lib/libz.a. If you're not sure whether this is the case, just
     move /usr/X11R6/lib/libz.a to another location.

     Removing or just moving /usr/X11R6/lib/libz.a should fix this problem.

     Also see:

     Xmame/xmess versions newer than 0.35 use zlib for some compression rou
     tines.

     Zlib is standard on most Unix versions. For those who don't ship with
     zlib or ship with a version that is too old, xmame/xmess now comes with a
     stripped-down version of zlib. Uncomment the appropriate line in the
     Makefile to use this.  Help!

     Are you running a recent version of KDE, such as 2.1.1? It appears that
     there's a bug with KDE's window manager that prevents some X11 apps from
     popping up their main window. You can either run the SDL version of
     xmame, or try the following workaround, which several people have
     reported as being successful:

     xmame.x11 -rid `xwininfo -root | grep xwininfo: | awk '[lcub  ]print [dollar]4[rcub  ]'`

     Update: I have been told that as of KDE 2.2b1, this problem has been
     fixed.

     The xmame/xmess Home Page always has the most up-to-date version. The
     address is

     See  of this document.

     Please check the offical mame and mess readme files to see if that
     answers your question:

     If that doesn't help, then ask your question on the mailing list or send
     it to the xmame/xmess maintainer, see   for contact information.Display
     Subsystem-Specific Comments and Notes

     The latest version of this driver can be obtained at .Requirements

     To run FXmame, you must have:

     A 3Dfx card

     Glide 2x

     The xmame distribution Compiling and Installing

     FXmame comes in two flavours---xfx and svgafx. The xfx version is
     designed to run under X11. It uses an X window for input. The svgafx ver
     sion runs from the console, and uses svgalib for input. Both use the 3Dfx
     hardware for rendering.

     To install FXmame, follow the general instructions for installing xmame.
     To specify the glide driver, do the following to the Makefile:

     Select either [quot  ]xfx[quot  ] or [quot	 ]svgafx[quot  ] as your dis
     play method

     Configure the glide variables to correspond to your glide setup

     The FXmame executables are called [quot  ]xmame.xfx[quot  ] and [quot
     ]xmame.svgafx[quot	 ]Running

     FXmame runs with the same parameters and uses the same keyboard commands
     that xmame.x11 does.

     A few extra keyboard commands have been added in the glide driver:

     RIGHTCTRL-A -- toggle antialiasing in vector games

     RIGHTCTRL-B -- toggle bilinear filtering

     The glide driver also adds several command-line options:

	 -fxgama [lt	]value[gt    ] 3Dfx gamma correction value

     Note that in order to display the game options or the fps display in vec
     tor games, I have to overlay the game bitmap over the vector display.
     This is because I circumvent the bitmap entirely in vector games. Drawing
     the bitmap is a big cpu hog, so you'll notice that the game slows down
     when you turn on the fps display (I know, not ideal when you want to find
     out the frame rate...).Common Questions (FAQ)

     Q: When I run FXmame, it just dumps core.

     A: Make sure you are running FXmame as root. Root privileges are required
     to access the 3Dfx hardware

     Q: When I run xmame.xfx, it just hangs at the initial game screen.

     A: Are you running KDE? For some reason, I can't get keyboard input under
     KDE. If you have this problem, switch window managers or use xmame.svgafx
     instead.Present Limitations/Bugs

     Antialiasing isn't working quite as well as it should

     Input problems under KDE Future Work

     Optimize the drawing code to update only the changed portions of the game
     bitmap.  License

     The FXmame code is Copyright 1998 by Mike Oliphant. It may be used and
     distributed under the terms of the MAME license.Version History

     v0.5 -- December 11th, 1998 ---------------------------

     implemented long copies in screen update

     added dirty handling. this greatly increases the speed of games that sup
     port the dirty update strategy (although most of them are older games
     that already ran at full speed on modern hardware)

     merged source with xmame b8.1

     v0.4 -- October 30th, 1998 --------------------------

     improved alpha handling in vector games - now bitmapped overlays do not
     dim the screen o added svgalib support (xmame.svgafx) o fixed a tiling
     bug that gave artifacts on texture tile boundaries

     v0.3 -- October 29th, 1998 --------------------------

     got rid of extra lines in vector games o added bitmap overlay in vector
     games to show options/fps o added antialiasing in vector games

     v0.2 -- October 28th, 1998 --------------------------

     added screenshots o added 3Dfx gamma adjustment o added direct accelera
     tion of vector games (still buggy)

     v0.1 -- October 27th, 1998 --------------------------

     first public release Author

     Mike Oliphant

     The latest version of this driver can be obtained at: Requirements

     To run GLmame you must have:

     An OpenGL implementation

     libjpeg

     hardware 3D acceleration (if you want any kind of framerate)

     the xmame distribution Compiling and Installing

     Follow the general instructions for installing xmame. To specify the
     OpenGL driver, do the following in the Makefile:

     Select [quot  ]xgl[quot  ] as your display method.

     For runtime printed debug info, add "-DGLDEBUG" to the "GLCFLAGS[quot  ]
     variable.

     GLU version 1.2 is recommended (e.g., from SGI). If you use Mesa's GLU,
     you may have to add "-DGLU[lowbar]VERSION[lowbar]1[lowbar]2" to the
     "GLCFLAGS".

     The GLmame executable is called [quot  ]xmame.xgl[quot  ].Running

     xmame.xgl runs with the same parameters and uses the same keyboard com
     mands that xmame.x11 does.

     The program starts up in cabinet mode. While this is pretty, and cool,
     you'll probably want to actually play in fullscreen mode.

     A few extra keyboard commands have been added in the OpenGL driver:

     RIGHT[lowbar]ALT-A -- toggle antialias filtering (vector)

     RIGHT[lowbar]ALT-B -- toggle bilinear filtering (raster)

     RIGHT[lowbar]ALT-C -- toggle cabinet/fullscreen display (both)

     RIGHT[lowbar]ALT-F -- toggle between fullscreen (max window size) and
     startup window size (both)

     RIGHT[lowbar]ALT-O -- toggle draw-bitmap (both; nonsense for raster
     games, speedup for vector games)

     RIGHT[lowbar]ALT-T -- toggle phosphor trails (vector)

     RIGHT[lowbar]ALT-PLUS[lowbar]PAD -- incr. beam size (vector)

     RIGHT[lowbar]ALT-MINUS[lowbar]PAD -- decr. beam size (vector)

     The OpenGL driver also adds several command-line options:

	 -[lsqb	 ]no[rsqb  ]fullscreen	       Start in fullscreen mode
				 (default: disabled)

	 -[lsqb	 ]no[rsqb  ]gldblbuffer	       Disable/enable double buffering
				 (default: enabled)

	 -gltexture_size [lt	]int[gt	   ]   Force the max width and height of one
				 texture segment (default: autosize)

	 -[lsqb	 ]no[rsqb  ]glforceblitmode /  Force blitter for true color modes 15/32bpp
	 -[lsqb	 ]no[rsqb  ]glblit	       (default: enabled)

	 -[lsqb	 ]no[rsqb  ]glext78 /	       Force the usage of GL extension number 78,
	 -[lsqb	 ]no[rsqb  ]glext	       if available (palletted texture)
				 (default: enabled)

	 -[lsqb	 ]no[rsqb  ]glbilinear /       Disable/enable bilinear filtering
	 -[lsqb	 ]no[rsqb  ]glbilin	       (default: enabled)

	 -[lsqb	 ]no[rsqb  ]gldrawbitmap /     Disable/enable drawing the bitmap; e.g.,
	 -[lsqb	 ]no[rsqb  ]glbitmap	       disable within vector games for a speedup
				 (default: enabled)

	 -[lsqb	 ]no[rsqb  ]glcolormod	       Disable/enable color modulation (intensity,
	 -[lsqb	 ]no[rsqb  ]glcmod	       gamma)
				 (default: enabled)

	 -glbeam [lt	]float[gt    ]	       Set the beam size for vector games
				 (default: 1.0)

	 -[lsqb	 ]no[rsqb  ]glalphablending /  Disable/enable alpha blending if available
	 -[lsqb	 ]no[rsqb  ]glalpha	       (default: enabled)

	 -[lsqb	 ]no[rsqb  ]glantialias /      Disable/enable antialiasing
	 -[lsqb	 ]no[rsqb  ]glaa	       (default: enabled)

	 -gllibname /		 Choose the dynamically loaded OpenGL
	 -gllib [lt    ]string[gt    ]	       library
				 (default: libGL.so)

	 -glulibname /		 Choose the dynamically loaded GLU library
	 -glulib [lt	]string[gt    ]	       (default: libGLU.so)

	 -[lsqb	 ]no[rsqb  ]cabview	       Don't start/start in cabinet view mode
				 (default: don't start in this mode)

	 -cabinet [lt	 ]cabname[gt	]      Specify which cabinet model to use
				 (default: glmamejau)

	-glres [lt    ]string[gt    ]	       Always scale games to [lt    ]Xres[gt	]x[lt	 ]Yres[gt    ],
				 keeping their aspect ratio.
				 This overrides the scale options.
				 Use this e.g. for the Vodoo1 gfx cards
				 with: [quot  ]-glres 640x480[quot  ]

     Three cabinet models are provided. The default, [quot  ]glmamejau[quot
     ], is designed to look like a standard arcade cabinet, like [quot
     ]glmame[quot  ].  The last one, [quot  ]trans[quot	 ], is a box with a
     transparent game screen.

     Note that in order to display the game options or the fps display in vec
     tor games, the game's bitmap is overlaid above the vector display. Draw
     ing the bitmap is a big cpu hog for some low-end hardware accelerated
     OpenGL implementations, so you'll notice that the game slows down when
     the bitmap is overlaid.

     Because bitmap overlaying is the default, you can toggle it on and off by
     pressing the [quot	 ]RIGHT[lowbar]ALT-O[quot  ] key, or turn it off at
     startup by using the command line option [quot  ]-noglbitmap[quot	].

     A problem with vector games and the cabinet mode is that some vector
     points do not reside within the screen coordinates, so you may see some
     vectors outside of the cabinet's mame display.

     *** IMPORTANT! ***

     If you have trouble with GLmame, or it is slow, read the [quot  ]Common
     Questions[quot  ] section. Most of the questions people email me are
     answered here.Cabinet Models

     Cabinet model information is stored in the [quot  ]cab[quot  ] subdirec
     tory of the directory you specified with the ROMPATH variable in the
     Makefile. Path information specified in xmamerc or with the 'rompath'
     shell environment variable is currently not used. Each cabinet model has
     it's own subdirectory. GLmame will first try to load either the user-
     specified cabinet model (using the -cabinet command-line option), or a
     model corresponding to the current game name. Failing that, it will use
     the generic [quot	]glmame[quot  ] model.

     A cabinet model directory must contain a geometry file [lt	   ]model
     name[gt	].cab, and any .jpg files used for textures on the model. The
     format of the .cab file will be familiar if you have ever programmed
     using OpenGL -- it looks much like an OpenGL display list. The format is
     as follows:

	 cabv1.1

     This header must be the first 7 characters of the file.

	 [num	][lt	]text[gt    ]

     Comment lines begin with '[num   ]'

	 begin [lt    ]type[gt	  ]

     Begins a geometry object, where type is one of (points, polygon, quads,
     quad[lowbar]strip, screen). Each [quot  ]begin[quot  ] must be paired
     with an [quot  ]end[quot  ] statement. A [quot  ]polygon[quot  ] is spec
     ified using one vertex per, well...  vertex. [quot	 ]quads[quot  ] are
     four-sided polygons, each specified by four vertices in order around the
     polygon. A [quot  ]quad[lowbar]strip[quot	] is a series of four-sided
     polygons, each of which shares an edge with the polygons before and after
     it in the strip. A [quot  ]screen[quot  ] is a quad that defines the
     actual area in 3D space where the game will be displayed. only one of
     these should be defined.  For more info, look at any description of
     OpenGL geometry.

	 end

     Ends the geometry object begun with [quot	]begin[quot  ].

	 pointsize [lt	  ]s[gt	   ]

     Changes the current pointsize to the corresponding size value (specified
     as a floating point number between 0.0 and, e.g., 20.0). Note: You cannot
     use this statement between begin and end!

	 color4 [lt    ]r[gt	] [lt	 ]g[gt	  ] [lt	   ]b[gt    ]

     Changes the current color to the corresponding rgb value (specified as
     floating point numbers between 0 and 1).

	 color4 [lt    ]r[gt	] [lt	 ]g[gt	  ] [lt	   ]b[gt    ] [lt    ]a[gt    ]

     Changes the current color to the corresponding rgba value (specified as
     floating point numbers between 0 and 1).

	 shading [lt	]type[gt    ]

     Sets the shading type. available types are [quot  ]smooth[quot  ] (which
     blends colors from one vertex to the next) or [quot  ]flat[quot  ] (which
     doesn't).

	 vertex [lt    ]x[gt	] [lt	 ]y[gt	  ] [lt	   ]z[gt    ]

     Specifies a vertex for the current geometry object as a point in 3-space.

	 numtex [lt    ]num[gt	  ]

     Specifies the number of different textures to be loaded. This declaration
     must precede any [quot  ]loadtex[quot  ] call.

	 loadtex [lt	]num[gt	   ] [lt    ]width[gt	 ] [lt	  ]height[gt	] [lt	 ]filename[gt	 ]

     Loads texture number [lt	 ]num[gt    ] from .jpg file [lt    ]file
     name[gt	]. The .jpg file *must* be [lt	  ]width[gt    ] by [lt
     ]height[gt	   ] pixels, and both [lt    ]width[gt	  ] and [lt
     ]height[gt	   ] must be powers of two (and must conform to the hardware
     requirements of any 3D card you want the cabinet to work with -- 256x256
     for 3Dfx).

	 texcoord [lt	 ]xcoord[gt    ] [lt	]ycoord[gt    ]

     Sets the texture coordinate of the next vertex. This specifies where in
     2D texture space the vertex lies.

	 enable texture

     Enables texture mapping (using the currently-selected texture).

	 disable texture

     Turns off texture mapping.

	 settex [lt    ]num[gt	  ]

     Select texture [lt	   ]num[gt    ] for doing texturing. The texture must
     previously have been loaded using [quot  ]loadtex[quot  ].

	 camerapan [lt	  ]num[gt    ]

     Starts the camera pan definition that will be followed by [lt    ]num[gt
     ] camera transistions. After the last transision definition, the pan
     sequence must be ended with an [quot  ]end[quot  ] statement.

	 goto [lt    ]lx[gt    ] [lt	]ly[gt	  ] [lt	   ]lz[gt    ] [lt    ]px[gt	] [lt	 ]py[gt	   ] [lt    ]pz[gt    ] [lt    ]nx[gt	 ] [lt	  ]ny[gt    ] [lt    ]nz[gt    ]

     Relocates and reorients the camera. The arguments are the same as are
     used by the OpenGL command [quot  ]gluLookAt()[quot  ]. The camera is
     positioned at point [lt	]lx,ly,lz[gt	], pointing along vector [lt
     ]px,py,pz[gt    ], with [quot  ]up[quot  ] normal (the direction that is
     [quot  ]up[quot  ] for the camera) [lt    ]nx,ny,nz[gt    ].

	 moveto [lt    ]lx[gt	 ] [lt	  ]ly[gt    ] [lt    ]lz[gt    ] [lt	]px[gt	  ] [lt	   ]py[gt    ] [lt    ]pz[gt	] [lt	 ]nx[gt	   ] [lt    ]ny[gt    ] [lt    ]nz[gt	 ] [lt	  ]frames[gt	]

     Moves the camera to a new location (specified as in [quot	]goto[quot
     ]).  The transition occurs over [lt    ]frames[gt	  ] frames.

     All commands must be on separate lines. Use the (somewhat) commented
     glmamejau cabinet as an example to work from.Common Questions (FAQ)

     Q: I am only getting a few frames-per-second. This sucks! What gives?

     A1: You're probably running Mesa in software mode. You should read the
     [quot  ]README.3Dfx[quot  ] file in the Mesa distro. Specifically, you
     need to [quot  ]setenv MESA[lowbar]GLX[lowbar]FX fullscreen[quot  ].

     A2: You don't have a 3D graphics card. Go buy one (see below)!

     Q: When I run xmame.xgl, it just dumps core. That's not as much fun as 3D
     Pacman, now is it?

     A1: If you are using a 3Dfx card, make sure you are running xmame.xgl as
     root. Root privileges are required to access the 3Dfx hardware.

     A2: If you're using Mesa and haven't upgraded to v3.0, do so.

     Q: When I run xmame.xgl, it just hangs at the initial game screen.

     A: Are you running KDE? For some reason, I can't get keyboard input under
     KDE. If you have this problem, switch window managers.

     Q: Which graphics cards are usable with xmame.xgl?

     A: We have the following experiences (date 20010713):

     Vodoo3 + DRI OpenGL driver (XFree86 4.0.2), with command line options
     [quot  ]-noglaa[quot  ] and 16bpp X11 server color depth.

     Vodoo1 + Mesa 3.4 + Glide, with command line options "-glres 640x480" !

     GeForce + NVIDIA OpenGL driver + XFree86 4.0.2 with default command line
     options and 16/24bpp X11 server color depth.

     NVIDIA TNT2 + NVIDIA OpenGL driver + XFree86 4.0.2 with command line
     options [quot  ]-bpp 16[quot  ] and 16bpp (may be 24bpp also ???) X11
     server color depth (OpenGL colortable mapping is buggy).

     NVIDIA TNT + NVIDIA OpenGL driver + XFree86 4.0.2 with command line
     options [quot  ]-bpp 16[quot  ] and 16bpp (may be 24bpp also ???) X11
     server color depth (OpenGL colortable mapping is buggy).

     Matrox MGA 400 + DRI OpenGL driver (XFree86 4.0.2) with command line
     options [quot  ]-bpp 16[quot  ], [quot  ]-noglaa[quot  ] (???) and 16bpp
     (may be 24bpp also ???) X11 server color depth (OpenGL colortable mapping
     is buggy).

     ATI R128 + DRI OpenGL driver (XFree86 4.1.0) with command line options
     "-noglext78 -noglaa" or "-bpp 16 -noglaa", where the latter options is a
     bit slower (about 5 fps).

     LinuxPPC - Powerbook-Firewire + ATI R128: see above !

     All of the above drivers work with the option [quot  ]-bpp 16[quot	 ]
     and/or [quot  ]-noglext78[quot  ], the latter of which is very slow, of
     course! So it looks like an OpenGL implementation bug is causing these
     driver/hardware combinations to only work with these command line
     options. The bug may lie within these OpenGL functions:

     glColorTableEXT

     glColorSubTableEXT

     Currently fast and funny driver/hardware combinations are:

     NVIDIA GeForce + NVIDIA OpenGL driver + XFree86 4.0.2; I have tested the
     GeForce256 (AGP) hardware.

     Vodoo + DRI OpenGL driver (XFree86 4.0.2); I have tested the Vodoo3 hard
     ware.

     Q: When I run xmame.xgl, everything is messed up.

     A: Read the above experiences ... and try

     switching your X server's bpp value, e.g. switch from 32bpp or 24bpp to
     16bpp;

     the command line option [quot  ]-bpp 16[quot  ];

     the command line option [quot  ]-noglaa[quot  ];

     the command line option [quot  ]-noglext[quot  ].	Present Limita
     tions/Bugs

     No clipping of vector games (most noticeable in cabinet mode).

     No preservation of game aspect ratio in cabinet mode.  Future Work

     Fixing existing bugs .. are there any ? Or are there some unknown fea
     tures only ;-) ?

     Optimize the drawing code to update only the changed portions of the game
     bitmap. Optimizing the dirty code ..  License

     The GLmame code is based upon Mike Oliphant's GLmame code version 0.6.

     The GLMame code is Copyright 1998 by Mike Oliphant. It may be used and
     distributed under the terms of the MAME license.

     Since GLmame version 0.7, the code has been changed and improved heavily
     by Sven Goethel --- no license change, of course!Version History

     v0.83 -- March 29th, 2001 ---------------------------

     Changed the code heavily to improve compatibility and speed. The new code
     is a re-merge of the GLMame32 code, which is a branch of Mike Oliphant's
     GLmame code version 0.6.

     For a detailed list, please consult the file changes.opengl within the
     distribution's documentation directory! You can also view the current
     changes.opengl here:

     v0.6 -- December 14th, 1998 ---------------------------

     added support for systems that do not support paletted textures (SGI and
     solaris OpenGL implementations, for example)

     merged source with xmame b8.1

     v0.5 -- October 30th, 1998 --------------------------

     fixed a bug with texturing being left on in bad places

     added 3Dfx gamma adjustment

     v0.4 -- October 21st, 1998 --------------------------

     updated to work with xmame v0.34b5.2

     v0.3 -- October 12th, 1998 --------------------------

     fixed verticle screen centering in fullscreen mode

     moved cabinet and camera panning information into a user-editable config
     uration file

     added 'trans' cabinet model o added double buffer, view type, and cabinet
     selection command-line options

     v0.2 -- October 6th, 1998 -------------------------

     adding missing 'cab' directory

     v0.1 -- October 5th, 1998 -------------------------

     first public release Authors

     Since GLmame version 0.7: Sven Goethel

     Till GLmame version 0.6: Mike Oliphant  Contact Information and Credits

     There is an official xmame/xmess mailing list. All operations related to
     this list are performed via email to  with a proper keyword in the body.

     Some of the currently recognized commands are:

	 subscribe	- subscribe to the list
	 unsubscribe	- unsubscribe from the list
	 who		- see everyone who is on the list
	 info		- view the introductory information for this list
	 help		- list all recognized commands

     Xmame Mailing List

     The xmame mailing list is intended to be a technical forum for xmame
     developers, that is,

     To exchange ideas for producing a better xmame.

     To share patches and bug notifications.

     To study new design strategies.

     To expose problems and learn know-how.

     The Xmame mailing list is not a forum about playing games (but everyone
     on the list plays...); so please

     Don't use the list to ask about ROMs.

     Don't ask about non-UNIX ports of MAME, just about MAME and xmame.

     Don't ask about implementing a game. Just search the docs and contribute
     yourself (you'll enjoy twice: programming and playing...).

     Don't show your last high score in xxx game (we are interested in pro
     gramming, and then playing, in this order).

     Copyright notice: NEVER, I repeat NEVER send ROM images to the  list.
     (But you can tell us where to retrieve them... ;-) )

     At this moment, the xmame list is unmoderated; that is, everyone sub
     scribed will receive everything sent to the list. We foresee no need to
     change this policy.

     If you want to send a personal mail to the xmame/xmess coordinator, send
     to the address below. Everyone who contributes to xmame/xmess should sub
     scribe to the xmame/xmess mailing list.

     Mailing list:

     Xmame/xmess coordinator:

     That's all. Enjoy xmame!

     Lots and lots and lots of thanks to everyone for their 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

     (Addendum: I'd like to send a big thanks to Hans for his fantastic work
     as longtime xmame/xmess maintainer, and also to those on the mailing list
     who have been most helpful during my transition to official maintainer.
     --Lawrence Gold)

     Fathers of the mame-creature (main version)

     Nicola Salmoria

     Allard van der Bas

     Mirko (Mix) Buffoni (General Mantainer)

     Fathers of mess

     Brad Oliver

     Richard Bannister

     Ben Bruscella (current coordinator)

     Original UNIX/X11 port

     Allard van der Bas

     Dick the Ridder

     Juan Antonio Martinez

     Semi-retired Unix maintainer extraordinaire

     Hans de Goede

     Alpha specific issues

     Christian Groessler

     Sun specific issues

     Keith Hargrove

     Mathis Rosenhau

     Irix specific issues

     Tristram Scott

     GGI maintainance

     Gabriele Boccone (original port)

     Christian Groessler (current maintainer)

     OpenGL code [amp	] maintainance

     Mike Oliphant (original creator)

     Sven Goethel (from GLmame 0.7 to the present)

     Network code

     Eric Totel

     Perl scripts for automation of some porting issues

     Bill Adams

     Xmame RPMs

     Jeremy Hansen

     Mailing list maintainer

     Chris McCraw

     Bits and pieces

     Christian Groessler

     Torsten Paul

     Jack Patton

     David Black

     AIX Sound code

     Chris Sharpp

     IRIX Sound code

     German readme

     Robert Hamberger

     Documentation (SGML, HTML, MAN)

     Rene Herrmann Legal Issues and Copyrights Concerning MAME/MESS

     Please read the MAME/MESS readme-files first!

     Xmame/xmess should be distributed under terms of the license in

     And if you are interested in mess, take a look in

     The main issue involves ROM images. ROM images are protected under the
     copyrights of their authors, and CANNOT be distributed in the same pack
     age as xmame/xmess. Download any ROM images at your own risk and respon
     sibility.

     XInputExtensions-based Joystick support. Source code is entirely pure
     hack work. No sample code, no info at all was found (only library	refer
     ence manual) and is copyrighted by me (Juan Antonio Martinez). Use it
     under terms of GNU General Public License.	 ChangeLogs

     These are the changelogs of the offical MAME and MESS release, the core
     of xmame/xmess.

     And now here is the HISTORY of the xmame project (of course that's why
     you are here :;-)) ... Ren

     The OpenGL display driver changelog:  or

BSD				22. March 2001				   BSD
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net