Difference between revisions of "Configuring MythGame Emulation"

From MythTV Official Wiki
Jump to: navigation, search
(More Emulators...)
(Clean up lots of the text, removing unnecessary/verbose/old notes. Tried to create a more consistent layout.)
Line 1: Line 1:
= Information =
+
= Introduction =
  
You will need v0.19 of MythGame to follow these instructions. The version included in MythTV 0.18 is not covered in this document, since the configuration interface has changed dramatically. Also, here is only explained how to setup MythGame after it was installed, this is not a tutorial how to compile and install it.  Think of this as an addendum to the official docs at www.mythtv.org.
+
These instructions are specific to MythGame v0.19. The version included in MythTV 0.18 is not covered because the configuration interface has changed dramatically. This document covers configuration of MythGame after it is installed; compilation and installation are not covered.
  
I was confused, so some other might be too, by the term "player" in MythGame setup. This term describes an emulator (xmame for example) that is run to play games, and not the person who is playing the games.
+
Note that the term ''player'' refers to the emulator software (ie, xmame) and not the human playing the games.
  
= General-Setup =
+
= ROM Layout =
  
Firstly, we need to create folders where we can store the roms and the emulator binaries. Any of the third level (snes, gba, etc) directories are optional if you do not intend to use that specific emulator.
+
MyhtTV categorizes your ROMs by system type (NES, SNES, etc). It also requires a path to provide to each emulator. Thus it's desirable to store your ROMs in separate directories based on the system. An example directory structure is given below. Your structure may differ but separation by system type is key.
  
You will need to create the following directory structure:
+
  /usr/emulators/nes/roms
(This Directory Structure is only an example, yours can be different!)
 
 
 
 
 
  /usr/emulators/snes/bin
 
 
  /usr/emulators/snes/roms
 
  /usr/emulators/snes/roms
/usr/emulators/gba/bin
 
 
  /usr/emulators/gba/roms
 
  /usr/emulators/gba/roms
/usr/emulators/n64/bin
 
 
  /usr/emulators/n64/roms
 
  /usr/emulators/n64/roms
/usr/emulators/amiga/bin
 
 
  /usr/emulators/amiga/roms
 
  /usr/emulators/amiga/roms
 
  /usr/emulators/amiga/chip  (For the Kickstart Image)
 
  /usr/emulators/amiga/chip  (For the Kickstart Image)
  /usr/emulators/atari
+
  /usr/emulators/atari_lynx/roms
/usr/emulators/atari/lynx
 
/usr/emulators/atari/lynx/bin
 
/usr/emulators/atari/lynx/roms
 
/usr/emulators/megadrive/bin
 
 
  /usr/emulators/megadrive/roms
 
  /usr/emulators/megadrive/roms
/usr/emulators/xmame/bin
 
 
  /usr/emulators/xmame/roms
 
  /usr/emulators/xmame/roms
  
= Loading romdb =
+
= ROM Descriptions =
If you want your ROMS to be automatically described by MythGame you'll want to load the romdb table which does seem to be done by default. You can find an SQL load script in the v0.19 source packages in the gziped tar file: romdb-20051116-02.tgz.  Or you can grab the same (or similar) files from here: http://www.phaze.org/romdb/. Untar and load like so:
+
 
 +
MythGame allows you to provide titles, descriptions, screenshots, release year, and other information for your ROMs. This information can be automatically detected by matching CRC values. For automatic detection the ''romdb'' must be populated. This appears to be done by default; however, you can find an SQL load script in the v0.19 source packages as ''romdb-20051116-02.tgz''.  Or you can grab the a similar file from [http://www.phaze.org/romdb/]. Untar and load:
  
 
  tar -xzvf romdb-20051116-02.tgz
 
  tar -xzvf romdb-20051116-02.tgz
 
  mysql -D mythconverg -u mythtv -p < romdb-2005-1101-01.sql
 
  mysql -D mythconverg -u mythtv -p < romdb-2005-1101-01.sql
  
After you do this, MythGame will have a big list of ROMs with their associated CRCs and titles, genres and years. When MythGame is cataloguing your ROMs it will look them up in this table and categorize and describe them for you.
+
If running the above reports errors it's likely because the SQL file includes commands to create ''romdb'' table and your system already has the ''romdb'' tabe. Try removing the following lines from .sql file and re-running the above mysql command:
 +
CREATE TABLE romdb (
 +
...
 +
) TYPE=MyISAM;
 +
 
 +
 
 +
== MythGame 0.19.0-Specific Note ==
  
Note that, at least on my system, MythGame v0.19.0 was failing to load from the romdb table (this was not a problem with running romdb-20051116-01.sql, it was a problem with MythGame fetching from the romdb table after it was successfully loaded). You can either wait for the next release or edit MythGame's gamehandler.cpp and rebuild. The fix is to delete the trailing space in the SELECT statement in InitMetaData(). From this:
+
On at least one reported system MythGame v0.19.0 was failing to load from the ''romdb'' table because of a code error in MythGame's gamehandler.cpp. The fix is to delete the trailing space in the SELECT statement in InitMetaData(). Change this:
  
 
  QString thequery = QString("SELECT crc, category, year, country, name, "
 
  QString thequery = QString("SELECT crc, category, year, country, name, "
Line 52: Line 47:
 
                             "binfile FROM romdb WHERE platform = \"%1\";")
 
                             "binfile FROM romdb WHERE platform = \"%1\";")
 
                             .arg(GameType);
 
                             .arg(GameType);
 +
 +
= Screenshots =
 +
 +
TODO: need information on how to associate screenshots with games.
 +
 +
== Generated Screenshots ==
 +
 +
A new [http://svn.mythtv.org/trac/ticket/1810 | ticket] provides a patch for MythGame that allows you to generate screenshots for the ROMS automaticaly within MythGame.
 +
 +
It uses the program '''scrot''' to generate screenshots of your X display.
  
  
If you are having trouble running the romdb-20051116-01.sql file, one way around this problem (if you're using 0.19) is to edit the romdb-20051116-01.sql file and remove the lines between
 
CREATE TABLE romdb (
 
...and...
 
) TYPE=MyISAM;
 
Then load the file again.
 
  
 
= Emulators =
 
= Emulators =
 +
 +
Each emulator (called ''player'' within MythTV) must be setup individually. Setup consists of specifying a name, the type of hardware being emulated, the binary to execute, and the location of the roms.
 +
 +
If the path to the emulator binary is in your PATH there's no need to specify it in the setup. To determine which path a program is installed run ''which <program>''.
 +
 +
Most emulators are included with OS distributions. Consult your package manager (rpm, dselect, emerge, synaptic, etc) before installing from source (unless you have a specific reason to do so).
 +
  
 
== Nintendo: SNES==
 
== Nintendo: SNES==
  
=== Using ZSNES===
+
=== ZSNES===
  
Emulator used: '''ZSNES''' ''(1.42)''
+
Homepage: http://www.zsnes.com/
  
ZNES requires a mouse for configuration in the GUI, keyboard support is not fully implemented.
+
Version: '''1.42'''
(But the Configuration had only to be done once!)
 
  
Most distributions include ZSNES in their package selection - Consult your package manager (rpm, dselect, emerge). If your distribution does not include it, you can  download ZSNES source from [http://www.zsnes.com/]. The newest Version is: '''1.42'''
+
ZNES requires a mouse for configuration in the GUI, keyboard support is not fully implemented. Fortunately the configuration only has to be done once.
  
Put the binary in the ''/usr/emulators/snes/bin'' Folder. Start ZSNES to create the config file. I recommend setting the options ''2x Super SAI Engine'' under video, so that the picture looks smoother. After configuring ZSNES and exiting you have to copy the configuration from your configuration directory (by default ~/.zsnes) to the mythtv user directory (probably ~mythtv/.zsnes).
+
Start ZSNES to create the config file. I recommend setting the option ''2x Super SAI Engine'' under Configuration > Video so the picture looks smoother. After configuring ZSNES and exiting you must copy the configuration (by default ~/.zsnes) to the mythtv user directory (probably ~mythtv/.zsnes).
  
Now you have to add a game starter to Mythtv:
+
Add a new ''player'' in MythGame's setup:
  
 
  Player Name: SNES  
 
  Player Name: SNES  
  Typ: SNES  
+
  Type: SNES  
  Command: /usr/emulators/snes/bin/zsnes  
+
  Command: zsnes  
 
  Rom Path: /usr/emulators/snes/roms
 
  Rom Path: /usr/emulators/snes/roms
  
=== Using SNES9x===
+
=== SNES9x ===
 +
 
 +
Homepage: http://www.snes9x.com/
  
There is also an emulator called SNES9x for Linux available. The quality of this emulator is near to ZSNES, if not better. It has no frontend on Linux, but frontends just get in the way on MythTV boxes anyway. Everything can be configured through the command line, and most options work for all games, so once you have it set up you only need to modify command line options when you change hardware, like joysticks.
+
Version: '''1.43'''
  
Most distributions include SNES9x in their package selection - Consult your package manager (rpm, dselect, emerge). If your distribution does not include it, you can download SNES9x source from [http://www.snes9x.com/]. The newest Version is: '''1.43'''
+
An alternate SNES emulator is called SNES9x. The quality of this emulator is near to ZSNES, if not better. It has no frontend on Linux but frontends just get in the way on MythTV. Everything can be configured through the command line, and most options work for all games, so once you have it set up you only need to modify command line options when you change hardware, like joysticks.
  
==== Binary Location ====
+
To view the configuration options run ''snes9x -h''.
It doesn't matter where the binary is located. Usually your distribution's package manager will add it to your PATH or inform you of it's location after the install. For example, Gentoo puts all game binaries in:
 
  <code>/usr/games/bin</code>
 
  
If the SNES9x binary is already in your PATH, run the following on the command line to determine the SNES9x binary's location:
+
On many linux distributions to utilize full screen mode in SNES9x you need to add the SUID bit to your SNES9x binary. This is a security risk, but it makes games much more enjoyable. To add the SUID bit, do this:
  <code>which snes9x</code>
 
Remember the output from the above command. You'll need it in the next section.
 
  
==== SNES9x Configuration ====
+
   <code>chmod 4750 `which snes9x`</code>
There are no configuration files to worry about with SNES9x. All configuration is specified on the command line. Use the following command, replacing /path/to/snes9x with the actual path to your SNES9x binary from the step above, to view all possible command line options:
 
   <code>/path/to/snes9x -h</code>
 
  
However, on many distributions, in order to utilize full screen mode in SNES9x you need to add the SUID bit to your SNES9x binary. This is a security risk, but it makes games much more enjoyable. To add the SUID bit, do this:
 
  <code>chmod 4750 /path/to/snes9x</code>
 
 
Please adjust group and world permissions as necessary to suit your distribution.
 
Please adjust group and world permissions as necessary to suit your distribution.
  
 +
Add a new ''player'' in MythGame's setup:
  
==== MythTV Configuration ====
+
  Player Name: SNES  
Now you have to add a game starter to MythTV:
+
  Type: SNES9X  
 
+
  Command: snes9x -stereo -r 6 -tr -fs
  Player Name: SNES
 
  Typ: SNES9X  
 
  Command: /path/to/snes9x -stereo -r 6 -tr -fs
 
 
  Rom Path: /usr/emulators/snes/roms
 
  Rom Path: /usr/emulators/snes/roms
  
Line 116: Line 114:
 
==== Joysticks ====
 
==== Joysticks ====
 
If you are interested in using SNES9x with a joystick, please read about the <code>-joydev</code> and <code>-joymap</code> command line options. In addition, if you have the luxury of building snes9x from source, [http://reboot.animeirc.de/contributions/snes9x.patch Reboot's joyaxisX patch] is an excellent and necessary addition to the program.
 
If you are interested in using SNES9x with a joystick, please read about the <code>-joydev</code> and <code>-joymap</code> command line options. In addition, if you have the luxury of building snes9x from source, [http://reboot.animeirc.de/contributions/snes9x.patch Reboot's joyaxisX patch] is an excellent and necessary addition to the program.
 +
  
 
== Nintendo: NES ==
 
== Nintendo: NES ==
  
Emulator used: '''fce-ultra''' ''( 0.98.13)''
+
=== fce-ultra ===
  
Download and compile [http://fceultra.sourceforge.net/ FCE Ultra] version [http://prdownloads.sourceforge.net/fceultra/fceu-0.98.13-pre.src.tar.bz2?download 0.98.13]
+
Homepage: http://fceultra.sourceforge.net/
  
Put the binary in the ''/usr/emulators/nes/bin'' Folder.
+
Version: '''0.98.13'''
  
Start fceu with fceu -inputcfg gamepad1 %romname% to configure your joystick. In XWindows, the executable may be fceu-sdl instead of fceu.
+
Start fceu with ''fceu -inputcfg gamepad1 %romname%'' to configure your joystick. In XWindows, the executable may be fceu-sdl instead of fceu.
  
Now you have to add a game starter to Mythtv:
+
Add a new ''player'' in MythGame's setup:
  
 
  Player Name: NES  
 
  Player Name: NES  
  Typ: NES  
+
  Type: NES  
  Command: /usr/emulators/nes/bin/fceu --fs 1 --joy1 1 --xres 1024 --yres 768
+
  Command: fceu --fs 1 --joy1 1 --xres 1024 --yres 768
 
  Rom Path: /usr/emulators/nes/roms
 
  Rom Path: /usr/emulators/nes/roms
  
 
== Nintendo: Game Boy Advance & Game Boy ==
 
== Nintendo: Game Boy Advance & Game Boy ==
  
Emulator used: '''Visual Boy Advance''' ''(1.80 SDL)''
+
=== Visual Boy Advance ===
  
You need to get the CVS-Source if you want to run the newest Version. You also can use a older binary from the homepage, but I prefer to use the newest.
+
Homepage: http://vba.ngemu.com/
  
You can do a CVS-Checkout with the following command:  
+
Version: '''1.80 SDL'''
'''"cvs -z3 -d:pserver:anonymous@vba.cvs.sourceforge.net:/cvsroot/vba co -P VisualBoyAdvance"'''
 
  
Then we need to got into the VisualBoyAdvace directory and run : '''./configure'''
+
The latest cvs version is recommended though older binaries do work. To get the latest cvs version run  
 +
'''cvs -z3 -d:pserver:anonymous@vba.cvs.sourceforge.net:/cvsroot/vba co -P VisualBoyAdvance'''
  
After that we do : '''make'''
+
Then we need to got into the VisualBoyAdvace directory and run: '''./configure'''
  
And then after compilation has completed we can copy the '''VisualBoyAdvance''' binary from the src dir to our binary directory.
+
After that we do: '''make'''
  
You then need to edit the VisualBoyAdvance.cfg to edit your Joystick settings. If you want to change it, you can get a program called: SLD-Test from the GameBoyAdvance homepage to get the correct settings for your joystick!
+
And then after compilation has completed we can copy the '''VisualBoyAdvance''' binary from the source dir to our binary directory (ie /usr/local/bin/).
  
Now you need to add a game starter to Mythtv:
+
You then need to edit the VisualBoyAdvance.cfg to edit your Joystick settings. If you want to change it, you can get a program called ''SLD-Test'' from the GameBoyAdvance homepage to get the correct settings for your joystick!
 +
 
 +
Add a new ''player'' in MythGame's setup:
  
 
  Player Name: GBA
 
  Player Name: GBA
  Typ: OTHER  
+
  Type: OTHER  
  Command: /usr/emulators/gba/bin/VisualBoyAdvance -F -4
+
  Command: VisualBoyAdvance -F -4
 
  Rom Path: /usr/emulators/gba/roms
 
  Rom Path: /usr/emulators/gba/roms
 +
 
(The Parameters -F to gives full screen and -4 gives a bigger picture)
 
(The Parameters -F to gives full screen and -4 gives a bigger picture)
 +
  
 
== Nintendo: N64 ==
 
== Nintendo: N64 ==
  
Emulator used: '''Mupen 64''' (0.5))
+
=== Mupen 64 ===
  
You need to get the Source Version from the Message board (The Patchset needed in the 0.4 Version is now included in Mupen 0.5). (You can't use the Binary Version, Because there is no nogui Version in it!)
+
Homepage: http://mupen64.emulation64.com/
  
Download Mupen Source: '''wget http://mupen64.emulation64.com/files/0.5/mupen64_src-0.5.tar.bz2'''
+
Version: '''0.5'''
  
Extract the Mupen64 source.
+
You must compile Mupen from source because the binary versions do not include the ''nogui'' version.
 +
 
 +
Download Mupen source by running '''wget http://mupen64.emulation64.com/files/0.5/mupen64_src-0.5.tar.bz2'''. Then extract the source.  
  
 
Configure Mupen with '''./configure'''
 
Configure Mupen with '''./configure'''
  
You will require the following dependencies in order to compile Mupen64:
+
'''libSDL-devel''' is required to compile Mupen. See http://www.libsdl.org/.
- '''libSDL-devel''' available from http://www.libsdl.org/
 
  
 
Mupen64 0.5 comes with a bug which results in the nogui version not compiling. To fix this, edit main/main.c and insert the following at the beginning of the file:
 
Mupen64 0.5 comes with a bug which results in the nogui version not compiling. To fix this, edit main/main.c and insert the following at the beginning of the file:
Line 181: Line 185:
 
Compile the Mupen nogui Version with: '''make mupen64_nogui'''
 
Compile the Mupen nogui Version with: '''make mupen64_nogui'''
  
Now you need the MUPEN Plugins. You can also compile them or get them withing the binary Distribution of the Mupen Webpage (I use the second way!)
+
Now you need the MUPEN Plugins. You can also compile them or get them within the binary distribution of the Mupen Webpage (the latter is much easier and recommended).
 +
 
 +
Create a config file to use with Mupen. An example file follows:
  
Then you can Create a config File to use with mupen64. (Here's my Config File for Example!)
 
 
'''mupen64.conf'''
 
'''mupen64.conf'''
 
  [Default]
 
  [Default]
Line 194: Line 199:
 
  No Ask = true
 
  No Ask = true
  
And the Game Starter for Mythtv:
+
Add a new ''player'' in MythGame's setup:
  
 
  Player Name: N64
 
  Player Name: N64
  Typ: N64
+
  Type: N64
  Command: /usr/emulators/n64/bin/mupen64_nogui
+
  Command: mupen64_nogui
 
  Rom Path: /usr/emulators/n64/roms
 
  Rom Path: /usr/emulators/n64/roms
 +
  
 
== Commodore: Amiga ==
 
== Commodore: Amiga ==
  
Emulator used: '''E-UAE''' (0.8.29))
+
=== E-UAE ===
  
The used Emulator is [http://www.rcdrummond.net/uae/index.html E-UAE 0.8.29] which is a backport to linux from WinUAE.
+
Homepage: http://www.rcdrummond.net/uae/index.html
  
There are also two other Amiga Emulators for Linux aviable. These were: X-Fellow [http://sourceforge.net/projects/xfellow] and the Origanal UAE (0.8.23) [http://sourceforge.net/projects/uaedev/]. And also XMESS could be used (without Sound).
+
Version: 0.8.29
  
 +
This emulators is a backport to linux from WinUAE.
  
Now add a player to MythGame. (The Command Line is a little bit complex, because we want to add multiple Disk Drives on multiple Disk games.)
+
Add a new ''player'' in MythGame's setup:
  
 
  Player Name: Amiga
 
  Player Name: Amiga
  Typ: AMIGA  
+
  Type: AMIGA  
 
  Command: /usr/emulators/amiga/bin/uae -s floppy0=%d1 -s floppy1=%d2 -s floppy2=%d3  
 
  Command: /usr/emulators/amiga/bin/uae -s floppy0=%d1 -s floppy1=%d2 -s floppy2=%d3  
 
  -s floppy3=%d4 -s  floppy_speed=800 -s kickstart_rom_file=/usr/emulators/amiga/chip/KICK31.ROM
 
  -s floppy3=%d4 -s  floppy_speed=800 -s kickstart_rom_file=/usr/emulators/amiga/chip/KICK31.ROM
 
  -s gfx_fullscreen_amiga=true -s use_gui=false
 
  -s gfx_fullscreen_amiga=true -s use_gui=false
 
 
  Rom Path: /usr/emulators/amiga/roms
 
  Rom Path: /usr/emulators/amiga/roms
 
  Span Disks: yes
 
  Span Disks: yes
(The Command has to be added as one line, it is only split in three, so that it fits on the screen!)
+
 
 +
(Note: the command is a single line; it is split here so it fits on the screen.)
 +
 
 +
=== X-Fellow ===
 +
 
 +
Homepage: http://sourceforge.net/projects/xfellow
 +
 
 +
Additional details needed.
 +
 
 +
=== Origanal UAE ===
 +
 
 +
Homepage: http://sourceforge.net/projects/uaedev/
 +
 
 +
Version: '''0.8.23'''
 +
 
 +
Additional details needed.
 +
 
  
 
== Atari: Lynx ==
 
== Atari: Lynx ==
  
Emulator used: '''Handy SDL''' (0.82 R1)
+
=== Handy SDL ===
 +
 
 +
Homepage: http://sdlemu.ngemu.com/sdlemu/handysdl.php
  
The used Emulator can be downloaded from [http://sdlemu.ngemu.com/sdlemu/handysdl.php].
+
Version: '''0.82 R1'''
  
You also need a Bios Image from the Atari Lynx. Copy this into the Emulator Directory. (Info: You are only allowed to use a BIOS dump of your own Lynx machine!)
+
You also need a BIOS image from the Atari Lynx. Copy this into the directory with the emulator's binary. (Info: You are only allowed to use a BIOS dump of your own Lynx machine!)
  
 
  Player Name: Atari Lynx
 
  Player Name: Atari Lynx
  Typ: OTHER  
+
  Type: OTHER  
  Command: /usr/emulators/atari/lynx/bin/sdyhandy %s -fullscreen -scale 4 -sound -joystick
+
  Command: sdyhandy %s -fullscreen -scale 4 -sound -joystick
 
  Rom Path: /usr/emulators/atari/lynx/roms
 
  Rom Path: /usr/emulators/atari/lynx/roms
 +
  
 
== XMAME ==
 
== XMAME ==
  
Emulator used: '''XMAME (0.106)'''
+
Homepage: http://x.mame.net/download.html
  
The emulator can be downloaded from [http://x.mame.net/download.html]. 
+
Version: '''0.106'''
  
Not sure what others are finding, but I found that fullscreen xmame was the easiest with the SDL version of xmame. I got both fullscreen and sound working with the following player command:
+
You might have to play around with your xmarerc (or in the case of the SDL version, xmame-SDLrc). See the xmame docs. Run xmame with --showconfig to see your current configuration.
  
xmame.SDL -dp sdl -fullscreen %s
+
Remember to place the .zip files for your ROMS into your roms directory. Do not unzip them, MythGame will have a peek inside them. If you have snapshots in a snap directory, and they are zipped, you'll have to unzip them for MythGame to show them.
  
You might have to play around with your xmarerc (or in the case of the SDL version, xmame-SDLrc. See the xmame docs. Run xmame with --showconfig to see your current configuration.
+
Player Name: XMAME
 +
Type: MAME
 +
Command: xmame -fullscreen -vidmod 1 %s
 +
Rom Path: /usr/emulators/xmame/roms
  
To get mame metadata (genre, year, game titles), see [[#Loading romdb|loading romdb]] above.
+
Others have reported the following command to enable fullscreen and sound:
  
Remember to place the .zip files for your ROMS into your roms directory. Do not unzip them, MythGame will have a peek inside them.
+
Command: xmame.SDL -dp sdl -fullscreen %s
I also had to change the general settings Display orders to just gamename (but another person did not).
 
  
If you have snapshots in a snap directory, and they are zipped, you'll have to unzip them for MythGame to show them.
 
  
Player Name: XMAME
+
== Sega: MegaDrive/Genesis ==
Type: MAME
 
Command: /usr/emulators/xmame/bin/xmame -fullscreen -vidmod 1 %s
 
Rom Path: /usr/emulators/xmame/roms
 
  
== Sega: MegaDrive/Genesis ==
+
=== DGENS/SDL ===
  
Emulator used: '''DGEN/SDL''' (1.23)
+
Homepage: http://pknet.com/~joe/dgen-sdl.html
  
The used Emulator can be downloaded from [http://pknet.com/~joe/dgen-sdl.html].
+
Version: '''1.23'''
  
You cannot download a Binary on this Page, only Source. The compile of the Source Code failed on my system, so I used the Binary which came with the Debian Repository (get it via: apt-get install dgen)
+
Note: compiling of the source from the above website has failed on at least one system. Using your distribution's packaged version is highly recommended.
  
 
  Player Name: MegaDrive
 
  Player Name: MegaDrive
  Typ: OTHER  
+
  Type: OTHER  
  Command: /usr/emulators/megadrive/bin/dgen -f -G 800x600 -j
+
  Command: dgen -f -G 800x600 -j
 
  Rom Path: /usr/emulators/megadrive/roms
 
  Rom Path: /usr/emulators/megadrive/roms
  
== ePSXe ==
+
== PSX ==
[http://www.epsxe.com/ epsxe] reportedly the best PSX emulator out there...
+
 
 +
=== ePSXe ===
  
Install for linux is straightfoward when one follows the get howto [http://terror.snm-hgkz.ch/gaming/linux/epsxe_howto/ here]
+
Homepage: http://www.epsxe.com/
 +
 
 +
Version: ?
 +
 
 +
Install for linux is straightfoward when one follows [http://terror.snm-hgkz.ch/gaming/linux/epsxe_howto/ this howto].
 +
 
 +
To make this work with MythGame a few changes have to be made:
  
To make this work with mythgame a few changes have to be made:
 
 
The script suggested at step 10 needs a slight modification:
 
The script suggested at step 10 needs a slight modification:
  
Line 283: Line 312:
 
to this -- ./epsxe -nogui -loadiso $1
 
to this -- ./epsxe -nogui -loadiso $1
  
This will allow you to run iso/bin files from within mythgame, however, it won't do for loading cds'.
+
This will allow you to run iso/bin files from within MythGame, however, it won't work for loading cds.
  
 
In addition, to get nice fullscreen, I found it better to set the resolution to your screens resolution worked better than choosing fullscreen.
 
In addition, to get nice fullscreen, I found it better to set the resolution to your screens resolution worked better than choosing fullscreen.
  
 
Finally, do look into using the [http://download.ammoq.com/ joypad] plugin.  This is especially true if you will be using a joystick.
 
Finally, do look into using the [http://download.ammoq.com/ joypad] plugin.  This is especially true if you will be using a joystick.
 
Within Mythgame:
 
  
 
  Player Name: ePSXe
 
  Player Name: ePSXe
Line 298: Line 325:
 
== More Emulators... ==
 
== More Emulators... ==
  
Here is a List of what might be possible to be Emulated, maybe someone describes how to include them in Myth:
+
Following are alternate emulators. Additional instructions are encouraged so if you get one of these working please update this document.
  
 
PSX:
 
PSX:
Line 313: Line 340:
 
* [http://mednafen.com/ Mednafen] Atari Lynx, GameBoy, GameBoy Color, GameBoy Advance, NES, PC Engine(TurboGrafx 16), and SuperGrafx
 
* [http://mednafen.com/ Mednafen] Atari Lynx, GameBoy, GameBoy Color, GameBoy Advance, NES, PC Engine(TurboGrafx 16), and SuperGrafx
 
* [http://x.mame.net/] Xmess (Many Sytems...)
 
* [http://x.mame.net/] Xmess (Many Sytems...)
 
= Screenshots =
 
 
There now is a new Ticket: http://svn.mythtv.org/trac/ticket/1810. In this there is a patch for MythGame included wich allows you to Generate Screenshots for the Roms automaticaly within MythGame.
 
 
It uses the program scrot to generate screenshots of your X display.
 
  
 
[[Category:MythGame]]
 
[[Category:MythGame]]

Revision as of 06:34, 15 June 2006

Introduction

These instructions are specific to MythGame v0.19. The version included in MythTV 0.18 is not covered because the configuration interface has changed dramatically. This document covers configuration of MythGame after it is installed; compilation and installation are not covered.

Note that the term player refers to the emulator software (ie, xmame) and not the human playing the games.

ROM Layout

MyhtTV categorizes your ROMs by system type (NES, SNES, etc). It also requires a path to provide to each emulator. Thus it's desirable to store your ROMs in separate directories based on the system. An example directory structure is given below. Your structure may differ but separation by system type is key.

/usr/emulators/nes/roms
/usr/emulators/snes/roms
/usr/emulators/gba/roms
/usr/emulators/n64/roms
/usr/emulators/amiga/roms
/usr/emulators/amiga/chip   (For the Kickstart Image)
/usr/emulators/atari_lynx/roms
/usr/emulators/megadrive/roms
/usr/emulators/xmame/roms

ROM Descriptions

MythGame allows you to provide titles, descriptions, screenshots, release year, and other information for your ROMs. This information can be automatically detected by matching CRC values. For automatic detection the romdb must be populated. This appears to be done by default; however, you can find an SQL load script in the v0.19 source packages as romdb-20051116-02.tgz. Or you can grab the a similar file from [1]. Untar and load:

tar -xzvf romdb-20051116-02.tgz
mysql -D mythconverg -u mythtv -p < romdb-2005-1101-01.sql

If running the above reports errors it's likely because the SQL file includes commands to create romdb table and your system already has the romdb tabe. Try removing the following lines from .sql file and re-running the above mysql command: CREATE TABLE romdb ( ... ) TYPE=MyISAM;


MythGame 0.19.0-Specific Note

On at least one reported system MythGame v0.19.0 was failing to load from the romdb table because of a code error in MythGame's gamehandler.cpp. The fix is to delete the trailing space in the SELECT statement in InitMetaData(). Change this:

QString thequery = QString("SELECT crc, category, year, country, name, "
                           "description, publisher, platform, version, "
                           "binfile FROM romdb WHERE platform = \"%1\"; ")
                           .arg(GameType);

To this:

QString thequery = QString("SELECT crc, category, year, country, name, "
                           "description, publisher, platform, version, "
                           "binfile FROM romdb WHERE platform = \"%1\";")
                           .arg(GameType);

Screenshots

TODO: need information on how to associate screenshots with games.

Generated Screenshots

A new | ticket provides a patch for MythGame that allows you to generate screenshots for the ROMS automaticaly within MythGame.

It uses the program scrot to generate screenshots of your X display.


Emulators

Each emulator (called player within MythTV) must be setup individually. Setup consists of specifying a name, the type of hardware being emulated, the binary to execute, and the location of the roms.

If the path to the emulator binary is in your PATH there's no need to specify it in the setup. To determine which path a program is installed run which <program>.

Most emulators are included with OS distributions. Consult your package manager (rpm, dselect, emerge, synaptic, etc) before installing from source (unless you have a specific reason to do so).


Nintendo: SNES

ZSNES

Homepage: http://www.zsnes.com/

Version: 1.42

ZNES requires a mouse for configuration in the GUI, keyboard support is not fully implemented. Fortunately the configuration only has to be done once.

Start ZSNES to create the config file. I recommend setting the option 2x Super SAI Engine under Configuration > Video so the picture looks smoother. After configuring ZSNES and exiting you must copy the configuration (by default ~/.zsnes) to the mythtv user directory (probably ~mythtv/.zsnes).

Add a new player in MythGame's setup:

Player Name: SNES 
Type: SNES 
Command: zsnes 
Rom Path: /usr/emulators/snes/roms

SNES9x

Homepage: http://www.snes9x.com/

Version: 1.43

An alternate SNES emulator is called SNES9x. The quality of this emulator is near to ZSNES, if not better. It has no frontend on Linux but frontends just get in the way on MythTV. Everything can be configured through the command line, and most options work for all games, so once you have it set up you only need to modify command line options when you change hardware, like joysticks.

To view the configuration options run snes9x -h.

On many linux distributions to utilize full screen mode in SNES9x you need to add the SUID bit to your SNES9x binary. This is a security risk, but it makes games much more enjoyable. To add the SUID bit, do this:

 chmod 4750 `which snes9x`

Please adjust group and world permissions as necessary to suit your distribution.

Add a new player in MythGame's setup:

Player Name: SNES 
Type: SNES9X 
Command: snes9x -stereo -r 6 -tr -fs
Rom Path: /usr/emulators/snes/roms


Joysticks

If you are interested in using SNES9x with a joystick, please read about the -joydev and -joymap command line options. In addition, if you have the luxury of building snes9x from source, Reboot's joyaxisX patch is an excellent and necessary addition to the program.


Nintendo: NES

fce-ultra

Homepage: http://fceultra.sourceforge.net/

Version: 0.98.13

Start fceu with fceu -inputcfg gamepad1 %romname% to configure your joystick. In XWindows, the executable may be fceu-sdl instead of fceu.

Add a new player in MythGame's setup:

Player Name: NES 
Type: NES 
Command: fceu --fs 1 --joy1 1 --xres 1024 --yres 768
Rom Path: /usr/emulators/nes/roms

Nintendo: Game Boy Advance & Game Boy

Visual Boy Advance

Homepage: http://vba.ngemu.com/

Version: 1.80 SDL

The latest cvs version is recommended though older binaries do work. To get the latest cvs version run cvs -z3 -d:pserver:anonymous@vba.cvs.sourceforge.net:/cvsroot/vba co -P VisualBoyAdvance

Then we need to got into the VisualBoyAdvace directory and run: ./configure

After that we do: make

And then after compilation has completed we can copy the VisualBoyAdvance binary from the source dir to our binary directory (ie /usr/local/bin/).

You then need to edit the VisualBoyAdvance.cfg to edit your Joystick settings. If you want to change it, you can get a program called SLD-Test from the GameBoyAdvance homepage to get the correct settings for your joystick!

Add a new player in MythGame's setup:

Player Name: GBA
Type: OTHER 
Command: VisualBoyAdvance -F -4
Rom Path: /usr/emulators/gba/roms

(The Parameters -F to gives full screen and -4 gives a bigger picture)


Nintendo: N64

Mupen 64

Homepage: http://mupen64.emulation64.com/

Version: 0.5

You must compile Mupen from source because the binary versions do not include the nogui version.

Download Mupen source by running wget http://mupen64.emulation64.com/files/0.5/mupen64_src-0.5.tar.bz2. Then extract the source.

Configure Mupen with ./configure

libSDL-devel is required to compile Mupen. See http://www.libsdl.org/.

Mupen64 0.5 comes with a bug which results in the nogui version not compiling. To fix this, edit main/main.c and insert the following at the beginning of the file:

#include <dirent.h>
#include <sys/stat.h>

Compile the Mupen nogui Version with: make mupen64_nogui

Now you need the MUPEN Plugins. You can also compile them or get them within the binary distribution of the Mupen Webpage (the latter is much easier and recommended).

Create a config file to use with Mupen. An example file follows:

mupen64.conf

[Default]
Gfx Plugin = /usr/emulators/n64/bin/plugins/Glide64.so
Audio Plugin = /usr/emulators/n64/bin/plugins/jttl_audio.so
Input Plugin = /usr/emulators/n64/bin/plugins/blight_input.so
RSP Plugin = /usr/emulators/n64/bin/mupen64_hle_rsp_azimer.so
Fullscreen = true
Emulation Mode = 2
No Ask = true

Add a new player in MythGame's setup:

Player Name: N64
Type: N64
Command: mupen64_nogui
Rom Path: /usr/emulators/n64/roms


Commodore: Amiga

E-UAE

Homepage: http://www.rcdrummond.net/uae/index.html

Version: 0.8.29

This emulators is a backport to linux from WinUAE.

Add a new player in MythGame's setup:

Player Name: Amiga
Type: AMIGA 
Command: /usr/emulators/amiga/bin/uae -s floppy0=%d1 -s floppy1=%d2 -s floppy2=%d3 
-s floppy3=%d4 -s  floppy_speed=800 -s kickstart_rom_file=/usr/emulators/amiga/chip/KICK31.ROM
-s gfx_fullscreen_amiga=true -s use_gui=false
Rom Path: /usr/emulators/amiga/roms
Span Disks: yes

(Note: the command is a single line; it is split here so it fits on the screen.)

X-Fellow

Homepage: http://sourceforge.net/projects/xfellow

Additional details needed.

Origanal UAE

Homepage: http://sourceforge.net/projects/uaedev/

Version: 0.8.23

Additional details needed.


Atari: Lynx

Handy SDL

Homepage: http://sdlemu.ngemu.com/sdlemu/handysdl.php

Version: 0.82 R1

You also need a BIOS image from the Atari Lynx. Copy this into the directory with the emulator's binary. (Info: You are only allowed to use a BIOS dump of your own Lynx machine!)

Player Name: Atari Lynx
Type: OTHER 
Command: sdyhandy %s -fullscreen -scale 4 -sound -joystick
Rom Path: /usr/emulators/atari/lynx/roms


XMAME

Homepage: http://x.mame.net/download.html

Version: 0.106

You might have to play around with your xmarerc (or in the case of the SDL version, xmame-SDLrc). See the xmame docs. Run xmame with --showconfig to see your current configuration.

Remember to place the .zip files for your ROMS into your roms directory. Do not unzip them, MythGame will have a peek inside them. If you have snapshots in a snap directory, and they are zipped, you'll have to unzip them for MythGame to show them.

Player Name: XMAME
Type: MAME 
Command: xmame -fullscreen -vidmod 1 %s
Rom Path: /usr/emulators/xmame/roms

Others have reported the following command to enable fullscreen and sound:

Command: xmame.SDL -dp sdl -fullscreen %s


Sega: MegaDrive/Genesis

DGENS/SDL

Homepage: http://pknet.com/~joe/dgen-sdl.html

Version: 1.23

Note: compiling of the source from the above website has failed on at least one system. Using your distribution's packaged version is highly recommended.

Player Name: MegaDrive
Type: OTHER 
Command: dgen -f -G 800x600 -j
Rom Path: /usr/emulators/megadrive/roms

PSX

ePSXe

Homepage: http://www.epsxe.com/

Version: ?

Install for linux is straightfoward when one follows this howto.

To make this work with MythGame a few changes have to be made:

The script suggested at step 10 needs a slight modification:

change this line -- ./epsxe to this -- ./epsxe -nogui -loadiso $1

This will allow you to run iso/bin files from within MythGame, however, it won't work for loading cds.

In addition, to get nice fullscreen, I found it better to set the resolution to your screens resolution worked better than choosing fullscreen.

Finally, do look into using the joypad plugin. This is especially true if you will be using a joystick.

Player Name: ePSXe
Type: OTHER 
Command: /usr/local/bin/start_epsxe
Rom Path: /usr/emulators/ps1/roms

More Emulators...

Following are alternate emulators. Additional instructions are encouraged so if you get one of these working please update this document.

PSX:

GameBoy:

DreamCast

Multiple Systems

  • Xe Game Boy, MegaDrive, Super Famicom, PC-FX, Playstation, GameGear, ...
  • Mednafen Atari Lynx, GameBoy, GameBoy Color, GameBoy Advance, NES, PC Engine(TurboGrafx 16), and SuperGrafx
  • [2] Xmess (Many Sytems...)