32bit multilib snaps and pcsx2

Since two years, every once in a while, I have been trying to snap pcsx2, because it’s probably the most complex 32bit software to build that I know and I think it would make a great test case. Plus since I’m doing it to learn new things and for fun it would be nice to have a snap of pcsx2 because it needs a lot of i386 libraries and so I thought It would be a pertinent time to discuss it here given that it was one of the proposed solutions to have pcsx2 in 19.10.

Two years ago I created a snap using the 16.04 base and I compiled it using a 32bit lxd container:

it worked ok with some issues, the main one was that the snap hadn’t access to the 32bit version of the nvidia drivers but worked well with mesa drivers.

there’s a recent pcsx2-tabetai package on the store (not mine) but it doesn’t seem to work.

Building it on a 32bit system is easier, and I think that’s how it’s done for the deb, but cross compilation is also possible as it’s done on Arch Linux for instance. Cross compilation is probably the most future proof approach also.


The closest source of inspiration was the snapcraft.yaml for wine

I’ve tried it to port my snap to core18 and after getting stuck for weeks I’ve found this recipe for Nix and copied the configuration and it finally found the correct library path for gtk.

I have made two attempts but both approaches weren’t completely successful. Both compile and the program starts but doesn’t work, so I thought that sharing it here would be helpful to someone.

Attempt 1: Cross compilation
I guess there’s an open bug for this and multilib is not too supported yet in snapcraft I would imagine.

Attempt 2: 32 bit lxd container
libOpenGL.so.0 => not found
libpulsecommon-11.1.so => not found
libsystemd.so.0 => not found
it launches but I guess these libs missing were fixed in some way by the desktop-launchers

1 Like