Posts Tagged ‘entertainments’

Install xmame from source on Debian Linux 7.0 (Wheezy) to play for better MAME (Arcade Games Emulation)

Thursday, May 30th, 2013

xmame logo install xmame on latest stable debian

Whether you're keen on playing old school arcade games. And you just updated or installed latest stable Debian 7 Wheezy. You will find out current installable Mame (Arcade Emulator) package cannot play many of the hot Games, even though game rom files are okay and you might have played those games in some previous versions of Debian with now obsolete but apparently better working emu  xmame.

As playing Captain Command, Xain'D Sleena, Cadillac & Dinosaurs and Punisher Classic Arcades is one of my great entertainments when I have some free time. I took the time to find out if xmame is still installable either by deb package or from source.

Unfortunately xmame for latest Debian releases is not available from unofficial repositories, so I proceeded with installing it from source. Thanksfully source install was successful. Hence, below is explained how to install xmame from source on Debian Wheezy and Debian testing/unstable.
First before compiling install a bunch of development packages necessary for proper compilation:

# apt-get install --yes zlib1g-dev
# apt-get install --yes libexpat1-dev
# apt-get install --yes libghc-x11-dev
# apt-get install --yes x11proto-video-dev
# apt-get install --yes libxv-dev

Download xmame 0.103 source archive (xmame-0.103.tar.bz2)

Tar archive doesn't have configure script so to compile it just run make ;

# cd /usr/local/src
# tar -jxvvf xmame-0.103.tar.bz2
# su hipo
cd xmame-0.103
$ make
...
....
$ exit
# make install
.....


In case some header .h file is still missing and compile fails, as it happened to me on few occasions. You can install and use apt-file;

One important note is xmame's build will take very long on my machine with 2Gb of Memory and Dual Core 1.8 Ghz it took about 1,.30 or 2 hours. 

# apt-get –yes install apt-file
# apt-file update

To find from which package the the missing .h file can be installed

# apt-file search Header-Name.h

Then just install package which will provide needed header.

Next step is to create xmame config file:
# mkdir /usr/local/share/xmame/
xmame-0.103$ cp -rpf ./src/unix/doc/xmamerc.dist /usr/local/share/xmame/xmamerc

In xmamerc set proper location for Mame ROM files:

# vim /usr/local/share/xmame/xmamerc
Find line;

rompath                 /usr/local/share/xmame/roms

and change it to whether Rom files are located. In my case they're in /disk/Games/Mames/roms, so change rompath to;
 

rompath                 /disk/Games/Mames/roms

There are some other configurations which you might want to tune. A well configured xmamerc that works fine for me is here

Finally link xmame.x11 to /usr/bin/xmame

# ln -sf /usr/local/bin/xmame.x11 /usr/bin/xmame

After having properly configured XMamE'S roms Directory to launch a game, for example punisher.zip or captcomm.zip:

$ xmame punisher
....
 $ xmame captcom
....

captain_commando_arcade-game-logo running on xmame Linux

P.S. !

If you're running this old piece of software on newer Debian Linux like Debian 12 you should use a special wrapper as the x11 default video-mode  1 (might not work, could be crashing with Segmentation fault). To make xmame still work with roms, in xmamerc config use video-mode 2 setting and a small shell script like the one below to make XMAME work fullscreen.

#!/bin/bash

# Check if a ROM was provided
if [ -z “$1” ]; then
    echo "Usage: $0 <romfile.zip>"
    exit 1
fi

ROM="$1"

# DP1 monitor scaling factor to fill 2560×1440 (adjust if needed)
SCALE="1.78×1.78"

# Scale DP1 output
xrandr –output DP1 –scale $SCALE
# Hide panels
gsettings set org.mate.panel.general autohide true

sleep 1;
# Launch XMAME X11 in the background
aoss xmame.x11 -fullscreen "$ROM" &

# Wait a moment for the window to appear
sleep 0.5
# Restore panels
gsettings set org.mate.panel.general autohide false
# Focus the XMAME window (requires wmctrl)
wmctrl -a "XMAME"

# Wait for XMAME to exit
wait $!

# Reset DP1 scaling after exiting
xrandr –output DP1 –scale 1×1

 

I've build xmame from source on Debian but I suppose same guide should be working okay on Ubuntu, Mint and rest of Debian distributions. I'll be happy to get feedback if someone succeeded running xmame on other distro. If you do please drop me a comment with distro name and specifics or problems faced.