Author: Canek Peláez Valdés
Keywords: GSnes9x, Snes9X, GNOME, Emulator

# GSnes9x Documentation

Copyright (C) 1999 Canek Peláez Valdés

This program and the documentation are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING.

## Table of contents

1. Introduction
2. Use
   - Globale Preferences
     - Esound support
   - Adding ROMs
   - ROM Preferences
     - Cheat Codes
   - Removing a ROM
   - Playing a ROM
3. Feedback

## 1. Introduction

GSnes9x is a GNOME front-end for the Snes9X SNES emulator. It allows you to set and preserve the options for a particular ROM when playing it, and to set global options for new ROMs being included. It also keeps a Cheat Codes database for each ROM, where you can save as many codes as you want.

You need Snes9X (I use 1.21 for Linux) and a working GNOME environment for GSnes9x. It is also recommended to have a few ROMs :)

Remember; it is illegal in most countries to have a ROM if you don't own the original cartridge!

For information about the program and the latest version, you can go to the GSnes9x homepage:

http://abulafia.fciencias.unam.mx/~canek/gsnes9x/

For information about Snes9X, you can go to the Snes9X homepage:

http://www.snes9x.com

## 2. Use

Use GSnes9x is in theory very easy. So I hope you don't need to spent too much time with this manual.

### Global Preferences

When you run GSnes9x for the first time, maybe you want to take a look to the Global Preferences. You can open the Global Preferences dialog via the menu bar with File->Global Preferences, via the tool bar with the Global Preferences button, or by hitting Ctl-G.

The primary intention of the Global Preferences is to configure the interface with the system, and to pre-define the default preferences for ROMs to being included.

The Global Preferences do NOT override the individual preferences of each ROM. This is because it makes sense to have a default set of options for new ROMs to being included, but with the available number of options in Snes9X is necesary that this set can be modified individually by each ROM, without modifying all the other ROMs.

Almost every option is a check button that activate or deactivate a command line option of Snes9X. The most noticeable exceptions are the Snes9X command, the Snes9X server and the Snes9X server port entries in the System page, and the buttons of the Joymaps in the Joystic page.

The Snes9X command entry is special: if you don't fill the entry, the dialog won't be able to close. This is because GSnes9x needs some command to run Snes9X!

The others entries and the buttons are parameters to command line options of Snes9X. If those options are not selected, then the widgets are insensitives and you can't touch them. You can activate one of the options, fill the entry, and deactivate the option again: the parameter will be saved in case you want activate the option again in the future.

The Global Preferences are saved in the `$HOME/.gnome/gsnes9x.d/GSnes9x.conf` file, and since version 2.5 you can manually edit the file, but THAT IS STRONGLY DISCOURAGED.

### Esound Support

GSnes9x has Esound support, putting in stand by the daemon while Snes9X is executed. However, Esound works with authentication, and if you execute Esound with the root count, all the clients that wants to put in stand by the daemon will must be root.

If you execute Esound with a non-root count, then this count AND root can put in stand by the daemon.

Besides, if you use RedHat, make sure the optión "Use Sound Events" is active in the Control Center.

### Adding ROMs

When you finish the set up of your Global Preferences, you can start to add ROMs to the list of GSnes9x.

You can open the Add ROM dialog via the menu bar with File->Add ROM, via the tool bar with the Add ROM button, or by hitting Ctl-N.

You must fill the four entries, or the dialog won't let you add the ROM. Due to the fact that every ROM has a configuration file with his name, the character '/' can't be in the name of the ROM (I know I know, I'd like too Ranma 1/2).

If you try to add a ROM with the same name of an already existing ROM, the program will notify you with a error dialog.

In the earlier stages of development of GSnes9x, the Company field has some sense, but none of the public releases do something with that field. So, in fact, the field is useless, but you need to put something. You can put there the company of the game, or you can put whatever you want.

If you'd not put a valid ROM file in the ROM File entry, nothing bad will happen, but obviously Snes9X will fail when it tries to run the ROM.

The Browse... button for this entry will try to use the environment variable `$GSNE9X_ROM_DIR` for the initial directory for browsing. If not set, then it tries the environment variable `$SNES96_ROM_DIR`. If both fails, then it uses `$HOME`.

If you'd not put a valid image in the Image File entry, the program will warning you about that and will be load the default image (the ugly image that appears when you run GSnes9x for the first time). If the program can't load the default image, then a black pixmap will be used.

The Browse... button for this entry will try to use the environment variable `$GSNE9X_IMAGE_DIR` for the initial directory for browsing. If not set, then it tries the environment variable `$SNES96_ROM_DIR`. If both fails, then it uses `$HOME`.

Every ROM has a configuration file, named as the ROM in the `$HOME/.gnome/gsnes9x.d/` directory.

### ROM Preferences

After you add a ROM, you can modify their particular preferences.

The ROM Preferences dialog needs a selected ROM. In GSnes9x, the selection of a ROM it's not marked by the list: it's marked by the picture. A ROM is selected if and only if the picture of the ROM is visible.

You can select a ROM by clicking his name in the list of ROMs, or navigating the list with the cursor keys and then hitting the space bar. Also, clicking a ROM with the right button of the mouse will select the ROM and a pop menu will appear. With the menu you can select Playing the ROM, Removing the ROM, or open the ROM Preferences dialog.

The pop menu also appear if you click with any button in the image of the ROM (a ROM must be selected.)

You can also open the ROM Preferences dialog via the menu bar with File->Rom Preferences, via the tool bar by the ROM Preferences button or by hitting Ctl-R. Remember: the dialog will be open if and only if a ROM is selected (and this happen if and only if their picture is visible).

The ROM Preferences are a superset of the Global Preferences (except the System page), so anything said in the Global Preferences section is valid here. The ROM Preferencs only adds tree pages: the ROM Info page, the ROM image format page and the Cheat Codes page (which deserves special atention).

The ROM Info page contains the information used by GSnes9x for catalog and presentation of the ROM. As said in the Adding ROMs section, the Company field is in practice useless, so you can put there whatever you want. The four fields must contain something: if not, you can't apply the changes made to the ROM.

The ROM image format page contains several options for the format of the ROM. You can select any combination, including things like have the Header and No header options activated at the same time. However, Snes9X only use the first selected, and GSnes9x use always the same order for the command line options, so you better make a logical selection.

If you select the Load snapshot file option, you must specify a file for the snapshot: otherwise, the dialog will not let you apply the changes.

All the check buttons in the Global Preferences and in the ROM Preferences have tooltips with help about the option. The help is extracted from the original `README.TXT` of Snes9X (Thanks to Gary Henderson for let me include his text in my program.)

### Cheat Codes

One of the cool thing of GSnes9x is the Cheat Codes database. With Snes9X you can play a ROM with up to ten Cheat Codes of each type (Game Genie, Action Replay and Gold Finger) activated.

But with GSnes9x you can keep saved as many codes as you want, and set those ten codes with only a few clicks of the mouse! (You can get a LOT of Cheat Codes in CheatZilla).

The Cheat Codes page from the ROM Preferences dialog lets you access the Cheat Codes database through the Change button, or clean the ROM from Cheat Codes with the Clean button.

The check buttons of each type of code lets you to decide not to use codes, without cleaning the ROM from codes.

The database for codes is really simple: it allows you to enter a code with a name and a short description, and to remove codes. From the database, you can set up to ten codes for the ROM.

The Game Genie codes are stored in the `$HOME/.gnome/gsnes9x.d/<rom-name>.gg` file, the Action Replay codes in the `$HOME/.gnome/gsnes9x.d/<rom-name>.ar` file, and the Gold finger codes in the `$HOME/.gnome/gsnes9x.d/<rom-name>.gf` file.

PLEASE, DON'T TOUCH THOSE FILES. While with the configuration files worth make a syntax, the codes files are only the code, the name and the description. So let the program handle those files.

To set up codes for a ROM, you must select at least 1 code, and at most 10.

### Removing a ROM

You can remove a ROM from the database by selecting the ROM, and then via the menu bar with File->Remove ROM, or via the tool bar with the Remove ROM button, or hitting Ctl-D or the Del hey. Also, as explained in the ROM Preferences section, you can use the pop up menu.

When you remove a ROM, all the files related to him will be deleted, including the files with cheat codes (no, it doesn't remove the ROM file and the image :)

### Playing a ROM

After you add the 245 234 ROMs in your colection to the database, maybe finally you want to play.

You can play a ROM by right-clicking it and then choose the Play ROM option from the pop up menu, or selecting it and then via the menu bar with the Play ROM option, or via the tool bar with the Play ROM button, or by hitting Ctl-P or the Enter key.

The actual command line is printed in the terminal, so you can see how really is called Snes9X.

The only way that GSnes9x will fail to run Snes9X is:

1. Snes9X is not instaled or in the `PATH`.
2. The Snes9X command is erroneous.
3. The Snapshot file doesn't exists (here Snes9X will drop by itself).
4. The command line has an invalid option.

   This can happen because GSnes9x lets you use any command for Snes9x, and then you can use the SVGA port, for example, and the SVGA port don't support all the options of the X11 port (for example the -sc option). Remember: the front end is primarily designed for the X11 port.

### Feedback

I think GSnes9x has reached a very mature point, and I believe that the functionality of the program so far is very good. So I hope the future coding is centered in keep the program working with further releases of Snes9X and GNOME, and fixing those bugs that we ever missed.

But GSnes9x is not finished yet: it needs translators. It will be very cool that the tooltips were translated to as many languages as possible (the central part of the program are the preferences).

And, of course, if you the users really want a feature that currently is not available, write to me. Maybe is added (the Cheat Codes database wasn't my idea :)

So, if you have anything to say about the program, please let me know.

Canek Peláez Valdés
canek@abulafia.fciencias.unam.mx