[ Update, 2013-10: This post post is not up to date anymore. On newer Debians (since 7.0/wheezy) and Ubuntus (at least since 12.04, Precise Pangolin), you should be able to install zsnes out of the box: sudo apt-get install zsnes:i386. For details see the MultiArch documentation for Debian and Ubuntu. ]
Before I had bought my current hardware, I was working on a 32-bit-based system, and I really appreciated ZSNES as an SNES emulator. But unfortunately, my new hardware was an AMD64 system, and there is currently no ZSNES package for 64-bit Ubuntu or Debian 😦 So I decided to google a bit about the issue, but it took me until now (a year later) to get ZSNES finally working on my machine. The problem is, if you build ZSNES on a 64-bit machine, all the application does is segfault at start, and if you try to compile for 32-bit systems, you get errors about missing 32-bit libs (in particular, configure does not find a suitable libsdl). Instead, if you just take the binary which was compiled on a 32-bit system, and install ia32-libs everything seems to work—at least I was able to play a few levels of Super Mario World succesfully 🙂
So here was my idea: take the 32-bit package from the Ubuntu repository, and just change the Architecture control field, and by this fool dpkg 😛 And as it turned out, this idea worked great. You can get the Debian package here if you want, it should work for Ubuntu Karmic and Lucid, as well as for Debian testing (but I only tested it on Lucid, so there is no warranty here—but I’m happy to hear if it works :)):
- SHA1: 716bbd37267b477ef02961a7727212619309b83f
- MD5: 452ea5230ad17df1dee649ab4cc6c8c0
For the curious people reading here, here is what I actually did:
- wget http://archive.ubuntu.com/ubuntu/pool/universe/z/zsnes/zsnes_1.510-2.2ubuntu3_i386.deb
- ar x zsnes_1.510-2.2ubuntu3_i386.deb
- tar xzf data.tar.gz
- Edited usr/share/applications/zsnes.desktop and added -ad sdl to the Exec: field, otherwise it would just segfault on the first run:
Exec=zsnes -ad sdl
- Edited usr/share/doc/zsnes/changelog.Debian.gz and added a new changelog entry for the version
- tar xzf control.tar.gz
- Edited the control file, changed the Version: and Architecture: field to amd64, added the ia32-libs dependency, and set myself as maintainer:
Package: zsnes Version: 1.510-2.2ubuntu3~ppa1 Architecture: amd64 Maintainer: Roland Hieber <email@example.com> Installed-Size: 4160 Depends: ia32-libs, libao2 (>= 0.8.8), libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libgl1-mesa-glx | libgl1, libpng12-0 (>= 1.2.13-4), libsdl1.2debian (>= 1.2.10-1), libstdc++6 (>= 4.1.1), zlib1g (>= 1:126.96.36.199) [...]
- Changed the md5sums file for the right values for usr/share/applications/zsnes.desktop and usr/share/doc/zsnes/changelog.Debian.gz (I used the md5sum command and copy-pasted it)
- tar czf control.tar.gz control md5sums postrm postinst
- tar czf data.tar.gz usr/
- ar r zsnes_1.510-2.2ubuntu3~ppa1_amd64.deb debian-binary control.tar.gz data.tar.gz
I’m afraid that I can’t put the package to PPA, Launchpad only accepts source packages for uploads, and builds the binary packages itself, both for i386 and AMD64. This approach can not be used here, since we needed the i386 binary for AMD64.
Thinking of the phrase “never change a running system” I am usually not very keen on updating my Ubuntu system to a new distribution. However, not every new software version is available from the backports, so finally, I saw myself forced to upgrade to Karmic Koala.
I instantly regretted it. Of course, I appreciate all the new software, but as in every upgrade I ever made (and I probably should know by now -.-), there are a few things that were annoying me or are still doing it:
- kaffeine-1.0~pre is not even as useful as 0.8.7 from jaunty: While staying in touch with the main KDE (4) line, the developers seemed to completely remove the Playback -> Video menu, so it is not possible anymore to toggle deinterlacing, or any other video filter, which is very annoying for DVB-T. I filed a bug report on that. Futhermore, my DVB-T channels were lost, so I had to rescan them.
- The notifications displayed by notify-osd somehow have wandered from the upper right edge towards the middle right. This seems to be fixed now, as pointed out in the bug report, but somehow this fix never got onto my system, though the changelog of notify-osd says so… Additionally, the notifications for received messages in Pidgin do not hide anymore if I actually read the messages, they persist until their default timeout has elapsed. And they even show up now when my IM status is on “Do not Disturb” – this was not the case (just as I expected it) in jaunty.
- Icons in GTK menus are now hidden by default, which seemed very unfamiliar to me, since I always used them as an orientation guide, especcially in the Firefox search plugin menu. You can show them again in the System -> Preferences -> Appearance applet on the Interface tab by selecting “Show icons in menus”.
- GDM is no longer custumizable through themes. It just doesn’t support it, as it seems to be a complete rewrite. IMHO just another Unmature Software Thing.
Edit: I just found out that it is also not able to start GDM in Xnest, as I usually did for testing:
$ gdmflexiserver --xnest ** (gdmflexiserver:5916): WARNING **: Not yet implemented
- And finally, my customized GNOME window theme (based on Clearlooks) was broken 😦 I am very confident that the color of selected text was not the same color in the title bar, but now both seem to be the same color. This is really bad, as for the title bar, I used to have a darker shade of orange than for selected text. OK, changing to another theme may be simple, but until now, I haven’t found anything I like best.