[mythtv] mythgame docs: xmame setup

hary wilke harywilke at yahoo.com
Wed Jun 15 22:48:55 UTC 2005

I posted this on the user list and got some feedback, now i'm posting  
the edited version here. I'm not sure what the procedure is for  
submitting docs, but mythgame is sorely lacking in official  
documentation (It's a blank page). I tried to keep it formated like  
the rest of the official docs. let me know what you think. I might  
tackle the other emulator setups next. all are much easier than xmame  
it seems.


############### Mythgame: hary's setup notes ##########

Mythgame Setup:

This is a how to for setting up xmame as part of mythgames on linux  
using the CVS version of MythTV.

1. setup directory structure
2. download and install xmame
3. download and place files (artwork/catver.ini/etc..)
4. download and install mythgame plugin
5. setup mythgame from inside mythfrontend
hints: No joystick solution

1. Setup Directory Structure
To keep things organized, create the following directories for xmame  
to use in /usr/local/share/xmame: hiscore, roms, and snaps.

$ cd /usr/local/share
$ mkdir xmame
$ cd xmame
$ mkdir hiscore roms snaps

2. Download and Install xmame
Head over to http://x.mame.net and download the source for xmame.
Move it to where you install from, for me /usr/local/src and unzip it.

$ mv xmame-0.97.tar.gz2 /usr/local/src/xmame-0.97.tar.gz2
$ tar -jxvf xmame-0.97.tar.gz2
$ cd xmame-0.97.tar.gz2

Edit the Makefile with your favorite editor.

$ pico Makefile

The Makefile is well commented, i just checked to make sure it was  
setup for my CPU/OS/Display combination. It is just a matter of  
uncommenting the options you want and commenting out the options you  
don't. Read the docs if you want to compile in joystick support. (I  
don't have one so i skipped this)

Then make and install xmame

$ make
$ su
(enter password)
# make install
# exit

A little post xmame install setup. First we create a folder to hold  
the "xmamerc" file that xmame uses to hold all if its default  
options. Then we create a symbolic link for the xmame binary to allow  
for easy updates, rollbacks or different display toolkits for xmame.

$ mkdir ~/.xmame
$ cp docs/xmamerc.dist ~/.xmame/xmamerc

Because some ROMS work better with different display toolkits, or  
possibly even older versions of xmame, it's convenient to keep all of  
your mame binaries and to rename them to include the version number,  
then make a symbolic link to "xmame". If you want to test a different  
version of xmame at some point you only need to switch this link.

$ su
(enter password)
# mv /usr/local/bin/xmame.x11 /usr/local/bin/xmame-0.97.x11
# ln -s /usr/local/bin/xmame-0.97.x11 /usr/local/bin/xmame
# exit

Note: Depending on how you compiled xmame, you may have xmame.X11,  
xmame.SDL or xmame.xgl based on what display toolkit you used. Also,  
you may need to remove and recreate xmamerc after upgrading xmame  
since some of the default options may have changed.

Now it is time to test xmame before we attempt to get it running  
inside MythTV
place your ROM in the roms directory you created earlier

Note: There are plenty of online places to purchase legit ROMs for  
use with MAME. There are also places that will take your old  
cartridges and transfer the ROMs to CDs for you. There are also 3  
public domain ROM sets available at http://www.mame.net/downmisc.html

Launch xmame with your classic game of choice, gauntlet for me!

$ xmame gauntlet

after OK'ing the ownership screen, the info screen and the caveats  
screen. you can start playing.

Some basic mame keyboard commands:
5 = insert coin
1 = player 1 start
arrow keys = movement
left control = button 1
left alt = button 2
spacebar = button 3
esc = exit

TAB will bring up a menu that will show you the keyboard settings/ 
game info/etc.
~ will bring up volume adjustment, < and > for more or less noise.
"OK" can also be entered as <left><right>.

3. Download and Place Extra Files (catver.ini/history.dat/artwork/etc..)

- catver.ini
Get it at http://www.catver.com or http://www.mameworld.net/catlist.
catver.ini is a catalog of catagories and versions of popular mame  
ROMs. It's incredibly usefull for keeping large libraries of ROMs  
Place it in /usr/local/share/xmame

- screenshots aka. "snaps"
Get them from http://www.classicgaming.com/mame32qa/
Screenshots are displayed when you are browsing your ROMS in  
mythgame, very nice for finding the right syle of game for your mood.
Unzip and place them in /usr/local/share/xmame/snaps

- history.dat
Get it at http://www.arcade-history.com/history_database.php
Fills in a bit of background about each ROM. Nice if you are looking  
for that kind of stuff.
Place it in /usr/local/share/xmame

- hiscore.dat
Get it at http://www.mameworld.net/highscore/
You need this to allow mame to keep track of who is the biggest and  
Place it in /usr/local/share/xmame

- cheats
Get it at http://cheat.retrogames.com/
You'll need this to cheat, ya dirty rascal!
Plop it in /usr/local/share/xmame

4. Download and Install Mythgame.
mythgame is part of the mythplugins package so use the information in  
the myth docs on "Downloading and Compiling" to grab mythplugins from  
the CVS.
Substitute "mythplugins" for "mythtv" in the download instructions.

After mythplugins have been downloaded to your src directory, lets  
move into "mythplugins".
$ cd mythplugins

Compile and install mythgame.

$ ./compile --disable-all --enable-mythgame
$ qmake mythplugins.pro
$ make
$ su
(enter password)
# make install
# exit

Note: Using "./compile" will compile all the default plugins  
including mythgame. Try "./compile --help" for help.

5. Setup mythgame From Inside Mythfrontend
launch mythfrontend and navigate to Utilities/Setup>Setup>Media  
Settings>Game Settings>General Settings

on page one you can setup the display order of your games, on page 2  
and 3 you need to enter the paths to files and directories that xmame  

MIME binary location:     /usr/local/bin/xmame           (path to  
xmame binary)
MIME ROM location:        /usr/local/share/roms          (where you  
store all your roms)
catver.ini file:          /usr/local/share/catver.ini    (Category  
and Version information for your ROMs)
MAME screenshots path:    /usr/local/share/snaps         (screenshots  
of ROMs in play)
MAME hiscores path:       /usr/local/share/hiscore       (directory  
for mame to create hiscore.hi files)
MAME hiscores file:       /usr/local/share/hiscore.dat   (file that  
tells mame how to store hiscores)
MAME flyers path:         /usr/local/share/flyers        (not used  
with mythgame)
MAME cabinets path:       /usr/local/share/cabinets      (not used  
with mythgame)
MAME history path:        /usr/local/share/history.dat   (a little  
history about each game)
MAME cheat files path:    /usr/local/share/cheats        (you rascal!)
MAME image downloader                                    (no longer  

And about the setup options:
Automatically download images - no longer used
Show disclaimer - show warning about illegal ROMs before starting  
each ROM.
Show game info - show info about the game, ie:year, maker, CPU,  
sound, screen resolution before staring game

Note: I suggest checking out http://www.mameworld.net/ It is a great  
resource for all things mame.

No joystick causing failure to launch solution:
i don't have a joystick and mythgame expects a joystick by default.  
xmame will fail to launch because mythgame sends the option "-joytype  
4" to xmame by default. To fix this you need to do a little bit of  
voodoo on your mythconverge database. You will need to set "joytype"  
to 0 by editing the mamesettings table in your mythconverge database.  
I used phpMyAdmin cause i'm a SQL newb!

########## end hary's setup notes #########

More information about the mythtv-dev mailing list