MAME runs just fine on a default installation of X, most games
won't run at their native resolution or in vertical sync.
X, by default, only enables a couple of popular resolutions.
To enable the lower resolutions used by MAME, you need to
add the necessary modelines to your xorg.conf
or XF86Config file (this file
is located in your /etc folder).
The modelines are listed here.
Simply cut and paste them into the monitor section of your
configuration file. A copy of my xorg.conf file can be downloaded
from here. It's based
on the configuration file distributed with Nvidia's graphic
driver for Linux, (though modified to work with the fonts
on an LFS/BLFS
Once you have added the modelines to your
X11 configuration file, you'll need to restart X (for those
new to Linux just reboot your computer). Then download and
If you're looking for pixel perfect modes,
you'll need to modify your AdvanceMAME configuration file.
Change display_resize mixed to
display_resize integer and display_resizeeffect
auto to display_resizeeffect
none. This simply disables all forms of non-integer
stretching. That's it. Game on.
AdvanceMAME will almost always choose the
correct mode, however, it does need some help at times, particularly
with resolutions enabled by default on all X servers, resolutions
like 320x240. Through the configuration menu in a game you
can override any resolution chosen by AdvanceMAME. Simply
press the Tab key during game play, and select video from
the menu. At the top of the menu you'll see which mode AdvanceMAME
is using, and if you select mode and press Enter, you'll see
a list of supported modes. Typically the best alternate modes
are listed at the top. You're looking for a resolution that
has a perfect integer multiple, like 2.00 to 3.00, or 3.00
to 1.00, for example. Integer multiples are lossless. Naturally,
this means that fractions are bad (though sometimes unavoidable
due to modeline rounding error). You may very well find multiple
modes with perfect integer ratios. Lower resolution modes
have larger scanlines. Once you've found a resolution you
prefer, select it by pressing Enter, press Esc and then select
Save for this game size/freq
from the menu. You should now change the mode for a game running
at 320x240. Change the mode to 640x480. The 320x240 mode supplied
by X doesn't run at 60Hz, which is what you want.
If a game isn't centered (and most won't
be), you'll need to center it using your monitor controls.
For your convenience, a list of games that work well are listed
below. If you center these games (or any other game with the
same resolution), you'll be up and running in no time.
720 Degrees 512x384
Cruis'n World 512x400
Cisco heat 256x216
Double Dragon 3 320x232
Pipi & Bibis 320x240
Don't, by the way, mistake X for GNOME or
KDE, as neither are needed to run AdvanceMAME, X-MAME, or
AdvanceMENU, and you'll get much better game performance without
them. If you only want to run an X session, add a new user
to your system (for example, mame) and modify the user's X
startup script, ~/.xinitrc. Use
xterm -g 80x40+0+0 &
Then simply login as that user and startx.
You can launch AdvanceMAME or AdvanceMENU from the xterminal.