There are several, but you're correct that ZSNES requires x86 assembly and thus isn't one of them. For Raspbian 9 Stretch in particular, many of the various Snes9x forks have not been maintained. For example the popular PiSNES requires that you refrain from enabling the full OpenGL driver.
Stretch also removed /opt/vc/lib/lib{EGL,GLESv2}.so
to avoid conflicting with their Mesa counterparts, so for some binaries you need to rebuild from source while explicitly linking libbrcm{EGL,GLESv2}.so
. If you must use an existing binary that references the old names, you can create symlinks reminiscent of Jessie like so:
cd /opt/vc/lib
sudo ln -s libbrcmEGL.so libEGL.so
sudo ln -s libbrcmGLESv2.so libGLESv2.so
(Caveat that this may interfere with other graphical applications.)
In fact, the above isn't even sufficient for the PiSNES release binary which assumes the two libs in the wrong location. For that you'll have to redirect snes9x
's library search like so:
LD_LIBRARY_PATH=/opt/vc/lib ./snes9x <path to ROM>
On other old emulators you can troubleshoot this with the ldd
command, but sometimes it's easier to build from source! Jason_25 posted a great summary of what's working (and what isn't) in this thread on the Pi gaming forums.
As for how to install libjpeg8, I answered your other question.