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 running 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.23 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
For information about the program and the latest version, you can go to the
For information about Snes9X, you can go to the Snes9X homepage:
It is a front-end. I don't touch the Snes9x code. The only thing the program
does is to keep a set of options (like '-noaudio' or '-buffersize 100') for
each ROM, and call the Snes9X program with those options. Also, the program
shows a list of the ROMs and a nice screen shot of the game.
The screen shot is provided by you :) (I recommend The GIMP for that.) The
format required is any of the formats Imlib supports, and its scaled to fit
in the window.
The program keeps a Cheat Codes database for each ROM, allowing you to save
as many codes as you want. You can select up to 10 codes of each type (Game
Genie, Action Replay or Gold Finger) for playing the ROM, and the last codes
selected are saved with the ROM options. The Cheat Codes database can be
reached through the 'ROM Preferences', in the 'Cheat Codes' page.
GSnes9x has i18n support, but few translators. If you handle a language
different from english, spanish and norwegian, and want/can take care of the
.po file, please let me know.
Snes9X is not Esound compliant, and GSnes9x is a GNOME program, so is
expected to run in a system with esd activated.
GSnes9x handles that by putting esd in standby before execute Snes9X, and
resume it when Snes9X ends. You need to activate the 'Esound support' option
in the 'Global Preferences'.
Also, if you run a RedHat box (or Mandrake, or any of the family) make sure
the 'Use sound events' option is activate in the 'Control Center'.
One more thing: esd works through authentication, so if you run esd with the
root account, GSnes9x can't put it in standby if is executed with a non-root
The 'Global Preferences' and the 'ROM Preferences' are saved in configurarion
files in the $HOME/.gnome/gsnes9x.d directory. In earlier versions of
GSnes9x, this files use a format very cryptic. Since version 2.5, the program
has a new format for the configuration files. The program no longer handles
the format for the earlier versions.
The new format is a LOT more readable than the old one, and a little more
flexible when parsing it. You can even edit the configuration files by hand,
BUT THAT IS STRONGLY DISCOURAGED.
See the 'INSTALL' file.
Gianluca Parmiggiani <email@example.com> has contributed with RPMs of the
1.2 and 2.2 versions for the i86 architectures, compiled with
optimizations. The RPMs for the 2.2 (and posible further) version are in
Thank you Gianluca!
Besides, I stolen his specs and make RPMs and SRPMs for further versions. The
RPMs are for the i386 architecture, and I put in
All the RPMs are compiled or at least proved in a RedHat 6.0 system. My
Since version 2.1, the spec file is generated automatically from the
configure script. If you want to make your own RPMs, put the tarball in
/usr/src/redhat/SOURCES and the generated spec in /usr/src/redhat/SPECS, and
in that directory type:
rpm -ba gsne9x.spec
That works at least in my RedHat 6.1 box; I suppose it works in earlier
versions of RedHat or other disttributions if you have your gnome environment
working (in particular, it works with Mandrake 6.1, with /usr/src/RPM instead
If you want the RPM with the standard file hierarchy of RedHat (the FSSTND),
and then use the generated spec.
It is a graphical front-end. It is supposed to be intuitive, if not, please
For completeness, I make a "manual" for GSnes9x. You can see it with the
GNOME Help System, or whatever browser you use. Also, it's available through
the Help menu.
GSnes9x uses the following environment variables, if they are present:
Directory where the ROMs are. If not found, will try $SNES96_ROM_DIR (the
environment variable that uses Snes9x). If both fails, GSnes9x uses $HOME.
Directory where the screen shots of the ROMs are. If not found, GSnes9x will
try $SNES96_ROM_DIR, and if both fails it uses $HOME.
Directory for the snapshots of a game. If not found, GSnes9x will try
$SNES96_SNAPSHOT_DIR (the one tha uses Snes9x), and if both fails GSnes9x
In fact, the variables are used only to set the default directory where the
browsing of roms/images/snapshots begins.
A word about the 'Global Preferences': when you add a ROM to the list, it's
saved whith default options. The 'Global Preferences' are those options.
Each ROM have their own options, and these are NOT overriding by the global
Thanks to Gary Henderson for let me use his README.TXT inside my code. Thank
Thanks too for Gianluca Parmiggiani for the firsts RPMs of GSnes9x. Thanks
And finally thanks to Atle Strand for make the norwegian translation.
- Fix bugs as they appear.
- Keep the program working with further versions of Snes9X.
And that's all. I think the program has reached the functionality I expect
when I begin, and more thanks to the generous feedback from the users. So I
don't think to put more stuff or functionality in the code. At least if the
users don't ask for.
So, if no major bugs are found, or if nobody ask me for a super-ultra-cool
feature that I like, I'm go to leave the code as is now, and only keeping
working with further versions of GNOME and Snes9X, and adding po files for
other languages (if someone send me some :).
Of course, feedback is welcome now and ever.
Canek Pel�ez <firstname.lastname@example.org>