<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
 <TITLE>Installing and using MythTV: MythGame.</TITLE>
 <LINK HREF="mythtv-HOWTO-17.html" REL=next>
 <LINK HREF="mythtv-HOWTO-15.html" REL=previous>
 <LINK HREF="mythtv-HOWTO.html#toc16" REL=contents>
</HEAD>
<BODY>
<A HREF="mythtv-HOWTO-17.html">Next</A>
<A HREF="mythtv-HOWTO-15.html">Previous</A>
<A HREF="mythtv-HOWTO.html#toc16">Contents</A>
<HR>
<H2><A NAME="s16">16.</A> <A HREF="mythtv-HOWTO.html#toc16">MythGame.</A></H2>

<P>MythGame can used as a frontend to start any emulator that your host OS
runs. This is an example of how to set up xmame on Linux.
<A HREF="http://www.mameworld.net/">http://www.mameworld.net/</A> is
an excellent resource for all things mame.</P>
<P>Installation overview:
<OL>
<LI>Setup directory structure</LI>
<LI>Download and install xmame</LI>
<LI>Download and place extra files (artwork/catver.ini/etc..)</LI>
<LI>Download and install MythGame plugin</LI>
<LI>Setup xmame in MythGame</LI>
<LI>Hints</LI>
</OL>
</P>
<H2><A NAME="ss16.1">16.1</A> <A HREF="mythtv-HOWTO.html#toc16.1">Setup Directory Structure</A>
</H2>

<P>To keep things organized, create the following directories for <B>xmame</B> to use
in <CODE>/usr/local/share/xmame</CODE>: hiscore, roms, and snaps.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ mkdir -p /usr/local/share/xmame/{highscore,roms,snaps}
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss16.2">16.2</A> <A HREF="mythtv-HOWTO.html#toc16.2">Download and Install xmame</A>
</H2>

<P><B>NOTE</B>:  There may be pre-packaged versions of <B>xmame</B>
available for your distribution.  Check 
<A HREF="http://x.mame.net/download.html">http://x.mame.net/download.html</A> for the latest version.</P>
<P>Download the source to <B>xmame</B> from 
<A HREF="http://x.mame.net/download/xmame-0.103.tar.bz2">http://x.mame.net/download/xmame-0.103.tar.bz2</A></P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ wget http://x.mame.net/download/xmame-0.103.tar.bz2
$ tar -xjf xmame-0.103.tar.bz2
$ cd xmame-0.103
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Edit the Makefile with your favorite editor.  Adjust the options as required for your system.
<BLOCKQUOTE><CODE>
<PRE>
$ joe Makefile
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Then make and install xmame
<BLOCKQUOTE><CODE>
<PRE>
$ make
$ su
(enter password)
# make install
# exit
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>After <B>mame</B> has been installed, we need to create some defaults.
<BLOCKQUOTE><CODE>
<PRE>
$ mkdir ~/.xmame
$ cp docs/xmamerc.dist ~/.xmame/xmamerc
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Because some ROMS work better with different display toolkits, or possibly
even older versions of xmame, it's convenient to keep all of your
<B>xmame</B> binaries and to rename them to include the version number. 
MythGame allows you to match individual roms to preferred binaries.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ su
(enter password)
# mv /usr/local/bin/xmame.x11 /usr/local/bin/xmame-0.103.x11
# exit
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P><B>NOTE</B>: Depending on how you compiled <B>xmame</B>, you may have
<B>xmame.X11</B>, <B>xmame.SDL</B> or <B>xmame.xgl</B> based on what
display toolkit you used. Also, you may need to remove and recreate
<CODE>xmamerc</CODE> after upgrading since some of the default options may have
changed.</P>
<P>Edit <CODE>~/.xmame/xmamerc</CODE> to include your paths.
<BLOCKQUOTE><CODE>
<PRE>
### Fileio Related ###
rompath                         /usr/local/share/xmame/roms
snapshot_directory              /usr/local/share/xmame/snaps
cheat_file                      /usr/local/share/xmame/cheat.dat
hiscore_file                    /usr/local/share/xmame/hiscore.dat
hiscore_directory               /usr/local/share/xmame/hiscore
history_file                    /usr/local/share/xmame/history.dat
mameinfo_file                   /usr/local/share/xmame/mameinfo.dat
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Confirm that <B>xmame</B> works before running it inside MythTV. Place
your ROM in the <CODE>/usr/local/share/xmame/roms</CODE> directory you created
earlier.</P>
<P><B>NOTE</B>: There are three public domain ROM sets available at
<A HREF="http://www.mame.net/downmisc.html">http://www.mame.net/downmisc.html</A></P>
<P>Launch <B>xmame</B> with your game of choice.  In this example, we are using Gauntlet.
<BLOCKQUOTE><CODE>
<PRE>
$ xmame gauntlet
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Some basic <B>mame</B> keyboard commands:
<BLOCKQUOTE><CODE>
<PRE>
5 = Insert coin
1 = Player 1 start
arrow keys = movement
left control = button 1
left alt = button 2
SPACE = button 3
ESC = exit
TAB - menu
~ to adjust Volume
     &lt; and >
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss16.3">16.3</A> <A HREF="mythtv-HOWTO.html#toc16.3">Download extra files</A>
</H2>

<P>The following files allow you to add extra functionality.  Place them
into <CODE>/usr/local/share/xmame</CODE></P>
<P>- <CODE>catver.ini</CODE> is a catalog of categories and versions of popular mame ROMs.</P>
<P>Useful for keeping large libraries of ROMs organized.</P>
<P>It may be downloaded from 
<A HREF="http://www.catver.com">http://www.catver.com</A> or 
<A HREF="http://www.mameworld.net/catlist">http://www.mameworld.net/catlist</A></P>
<P>- Screenshots aka "snaps"</P>
<P>These may be downloaded from 
<A HREF="http://www.classicgaming.com/mame32qa/">http://www.classicgaming.com/mame32qa/</A></P>
<P>Screenshots are displayed when you are browsing your ROMS in <B>mythgame</B>.
Unzip and place them in <CODE>/usr/local/share/xmame/snaps</CODE></P>
<P>- <CODE>history.dat</CODE></P>
<P>Download from 
<A HREF="http://www.arcade-history.com/">http://www.arcade-history.com/</A>
This file fills in a bit of background about each ROM.</P>
<P>- <CODE>hiscore.dat</CODE></P>
<P>Download from 
<A HREF="http://www.mameworld.net/highscore/">http://www.mameworld.net/highscore/</A></P>
<P>- Cheats</P>
<P>Download from 
<A HREF="http://cheat.retrogames.com/">http://cheat.retrogames.com/</A></P>

<H2><A NAME="ss16.4">16.4</A> <A HREF="mythtv-HOWTO.html#toc16.4">Download and Install MythGame.</A>
</H2>

<P><B>MythGame</B> is part of the mythplugins package.  See the instructions
in the 
<A HREF="mythtv-HOWTO-5.html#DownloadAndCompile">Downloading and Compiling</A>
section to obtain mythplugins.</P>
<P>Switch to the mythplugins directory:
<BLOCKQUOTE><CODE>
<PRE>
$ cd ~/mythplugins-0.21
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Compile and install mythgame:
<BLOCKQUOTE><CODE>
<PRE>
$ ./configure --disable-all --enable-mythgame
$ qmake mythplugins.pro
$ make
$ su
(enter password)
# make install
# exit
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss16.5">16.5</A> <A HREF="mythtv-HOWTO.html#toc16.5">Setup xmame in MythGame</A>
</H2>

<P>Start <B>mythfrontend</B> and navigate to Utilities/Setup > Setup > Media
Settings > Game Settings > Game Players. Select <CODE>(New Game Player)</CODE>.</P>
<P>To set up a new player for xmame enter the following:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
Player Name:    xmame-0.103.x11                  (Name by which you want your emulator or game called)
Type:           xmame                           (This is used for display purposes only and does not affect the function of your system)
Command:        xmame-0.103.x11 -vidmod 1 -fullscreen     (Path and name of binary + any optional parameters)
Rom Path:       /usr/local/share/xmame/roms     (This tells MythGame what directories to scan for roms to be used with this emulator)
ScreenShots:    /usr/local/share/xmame/snaps    (This tells MythGame what directories to scan for snapshots to be used with these roms)
Working Directory:                              (Directory to change to before launching game or emulator. Blank in our case ignores this setting)
File Extensions:                                (List of all file extension to be used for this emulator. Blank menas any file under the Rom Path)
[] Allow games to span multiple roms/disks      (will treat game.1.rom game.2.rom game.3.rom as one game)
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss16.6">16.6</A> <A HREF="mythtv-HOWTO.html#toc16.6">Hints:</A>
</H2>

<P>
<UL>
<LI>Rom name before options: %s can be used as a standin for rom names on the command line.</LI>
<LI>Multiple disk/rom games: %d1 %d2 etc can be used as standins for multiple disc games on the command line.</LI>
<LI>Associating a rom with an emulator: Browse to the desired rom and press 'M' to enter the settings page for that rom.</LI>
<LI>Assign a Game Favorite Status: Browse to the desired game and press "/".</LI>
</UL>
</P>

<HR>
<A HREF="mythtv-HOWTO-17.html">Next</A>
<A HREF="mythtv-HOWTO-15.html">Previous</A>
<A HREF="mythtv-HOWTO.html#toc16">Contents</A>
</BODY>
</HTML>