ZSNES crash on startup with libao on Linux x86-64

Got a question? Read here first. Failure to read this forum beforehand may result in you getting chewed out by the forum regulars.

Moderators: ZSNES Mods, ZSNES Doc Team

ZSNES Developer
ZSNES Developer
Posts: 3902
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench

ZSNES crash on startup with libao on Linux x86-64

Post by Nach »

Distros seem to ship broken libao packages for 32 bit compatibility on x86-64.

However to fix them yourself is quite easy.

libao checks for its drivers in: /usr/lib/ao/plugins-2/
A 32 bit libao will check there, and not finding anything it can use, since they're all 64 bit, it will crash.

32 bit libao will install its 32 bit drivers in /usr/lib32/ao/plugins-2/ or some other location on your machine. I for example have them in /var/chroot/sid-ia32/usr/lib/ao/plugins-2/.
You should be able to find them by typing "locate ao/plugins-2" into a terminal.

Once you find them, you have to copy the drivers you're going to use into /usr/lib/ao/plugins-2/, or create a link to them there. Be careful to give the copies/links new names, so you don't overwrite the 64 bit ones.

Here's an example of how to create a symbolic link:

Code: Select all

ln -s /var/chroot/sid-ia32/usr/lib/ao/plugins-2/liboss.a /usr/lib/ao/plugins-2/liboss-32.a

And another:

Code: Select all

ln -s /usr/lib32/ao/plugins-2/libalsa09.so /usr/lib/ao/plugins-2/libalsa09-32.so

Notice I appended -32 to each example so it shouldn't conflict with the name of a 64 bit driver.

Once you link/copy all the drivers you need to /usr/lib/ao/plugins-2/, libao shouldn't crash when ZSNES starts up, and you'll be able to use ZSNES.

If in doubt, symlink all your 32 bit drivers to /usr/lib/ao/plugins-2/.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
Insane Coding
"Your thread will be crushed."
Posts: 1234
Joined: Wed Jul 28, 2004 1:49 am
Location: Not in Winnipeg

Re: ZSNES crash on startup with libao on Linux x86-64

Post by badinsults »

Nach wrote:

Code: Select all

ln -s /usr/lib32/ao/plugins-2/libalsa09.so /usr/lib/ao/plugins-2/libalsa09-32.so

If you are using Ubuntu, that is the symbolic link you need.
<pagefault> i'd break up with my wife if she said FF8 was awesome