I used these instructions on a 64-bit Ubuntu 12.04 machine and a 32-bit Ubuntu 13.10 machine. There are two sets of instructions here. One is for compiling the Unix version of Snes9x and the other is for install the GTK3 version. Theses instructions worked perfectly on 12.04 but on 13.10 the GTK3 version segfaults. I don't know if the issue is with 13.10 or perhaps an incompatibility with my laptop's hardware and Snes9x GTK.
The currently maintained codebase of Snes9x is hosted up on github so we will need to install git. We'll get all the tools required to build the source code while we are at it.
sudo apt-get install git build-essentialNow we can check out the codebase.
git clone https://github.com/snes9xgit/snes9x.git
cd snes9x
The Unix version does not contain any sort of interface save for the running game itself. It supports a number of command-line switches. Unfortunately it does not seem to provide any way of running in fullscreen mode.
First we need the dependent libraries.
sudo apt-get install zlib1g-dev libpng12-dev xorg-devNow we can compile.
cd unixNow we have an executable binary named snes9x. You can go ahead and execute it passing in a SNES rom as the first argument or with no arguments for a list of acceptable options.
autoconf
./configure --enable-netplay
make
sudo cp snes9x /usr/bin/
sudo chown root:root /usr/bin/snes9x
To create an entry in our desktop menu create the following file and save it as /usr/share/applications/snes9x.desktop
[Desktop Entry]Finally, find an icon you want to use and save it as /usr/share/pixmaps/snes9x.png You can get a good icon to use here.
Version=1.0
Name=Snes9x
Comment=A portable, freeware Super Nintendo Entertainment System (SNES) emulator.
GenericName=Snes9x
Keywords=Games
Exec=snes9x
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/usr/share/pixmaps/snes9x.png
Categories=Game
StartupWMClass=Snes9x
StartupNotify=true
sudo wget http://maxolasersquad.com/snes9x.png -O /usr/share/pixmaps/snes9x.png
Part 2 - Building the GTK3 version of Snes9x
The GTK3 version includes a nice GTK interface with all sorts of configurable options, including fullscreen.
First we need to get the dependent libraries.
sudo apt-get install intltool autoconf automake libglib2.0-dev gawk libgtk-3-dev libxml2-dev libxv-dev libsdl1.2-dev libpulse-dev libportaudio-devAs of Ubuntu 15.10, instead of libportaudio-dev you need to install portaudio19-dev.
If you want a GTK2 build then install libgtk2.0-dev and you can leave out libgtk-3-dev.
Now we can generate the install scripts and compile.
cd gtkYou can leave out --with-gtk3 if you want a gtk2 build instead.
./autogen.sh
./configure --with-gtk3
make
sudo cp snes9x-gtk /usr/bin/
sudo chown root:root /usr/bin/snes9x-gtk
Now we have an executable binary named snes9x-gtk.
To create an entry in our desktop menu create the following file and save it as /usr/share/applications/snes9x.desktop
[Desktop Entry]Finally, find an icon you want to use and save it as /usr/share/pixmaps/snes9x.png You can get a good icon to use here.
Version=1.0
Name=Snes9x GTK
Comment=A portable, freeware Super Nintendo Entertainment System (SNES) emulator.
GenericName=Snes9x GTK
Keywords=Games
Exec=snes9x-gtk
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/usr/share/pixmaps/snes9x.png
Categories=Game
StartupWMClass=Snes9x
StartupNotify=true
sudo wget http://maxolasersquad.com/snes9x.png -O /usr/share/pixmaps/snes9x.png
For building newer versions of snes9x-gtk (1.56 and up) you need to install meson and sdl2.0 libraries
ReplyDelete``sudo apt install meson ninja libsdl2-dev``
Build instructions:
cd to snes9x/gtk
run: ``$ meson builddir``. It then will check for required libraries
cd into builddir and run ``ninja``. And then will compile
Cheers, and happy retrogaming!
Thank you Diego. I was stucked at the snes9x-gtk build!
ReplyDeletehey theres no more ./autogen.sh, how do we install this thing now?
ReplyDeleteRead the first coment
Deletesudo apt install meson libsdl2-dev
cd to snes9x/gtk
meson builddir
cd builddir
ninja
sudo cp snes9x-gtk /usr/bin
sudo chown root:root /usr/bin/snes9x-gtk
libpng12 is no longer in debian stable. you can work around this by downloading the source code and compiling it yourself. it should build fine with build-essentials installed.
ReplyDeletehttp://www.libpng.org/pub/png/libpng.html
on ubuntu impish you need to install gtkmm-3.0-dev as well
ReplyDeletebefore you run meson builddir be sure to run git submodule update --init !
my comment above from 2 years ago about libpng12 still stands. the source code compiles quickly and easily.
also if you want to play zipped/compressed roms, you need to install the minizip dev packages
ReplyDelete