no intersection more awesome

Get PCSX2 Working On 64bit OpenSUSE/Linux

May 4th, 2014 | Posted by Jason "moofang" in Howto's | Linux

It’s surprisingly hard to get the Playstation 2 emulator PCSX2 working if you’re running a 64-bit linux system, even though they’re cross platform and release linux binaries/sources first hand. The primary roadblock seems to be that the thing assumes a 32bit environment, and will refuse to start if it doesn’t find some 32-bit libs. Anyway, I got this working twice, both times quite bumpily, and decided it was high time this got written into a post for archival.

Credits by the way to this video which put me on the right track.

First, we gotta get PCSX2. This can either be downloaded from the site linked above, or, on OpenSUSE, can be obtained in packaged form from Pacman’s Games repo (mirror for 13.1 here).

Then we gotta grab the 32-bit libs that are needed. If you installed it with dependencies off the Pacman repo this may be taken care of for you (I’m not 100% sure), but in any case what you need to do is to pull out the Yast software installation interface and do a search for ‘wx’. This should get you a list like the following:

Now make sure each of those installed items are installed as 32-bit versions. Basically, click each of them, then click the ‘Versions’ tab, and make sure the ‘i586′ version is selected. Else select it, and apply at the end. For other distros, the gist I guess is to make sure you have 32bit/i586 versions of libwx and wxWidgets packages installed.

That should net you the required 32-bit libs, and you can give the pcsx2 executable a whirl at this point and hope for the best. In my case, I had one more hurdle before PCSX2 would run – the thing seems to be looking for the libwx libs in the wrong path. Fortunately it’s possible to tell it manually where to load the libs from by setting the LD_LIBRARY_PATH environment variable. This can be set right before running PCSX2 like so:

LD_LIBRARY_PATH=/usr/lib/wx-2.8-stl/ pcsx2

/usr/lib/wx-2.8-stl‘ is where the 32-bit libwx .so’s are on my system. This may vary for different distros, but it shouldn’t be overly hard to locate. Setting LD_LIBRARY_PATH appropriately allowed me to actually launch the PCSX2 UI, where configuring plugins, BIOS, etc may then proceed.

Running on integrated Intel graphics (I’m on a Lenovo Yoga 11s, Haswell version), the GS plugin that let me run games quite performantly is GSdx, configured to use “OpenGL (Hardware)”. Note that in Linuxland, open source drivers for higher-grade graphic cards (think Nvidia, ATI) don’t tend to perform well for graphic-heavy applications, so you’ll want to either switch to the proprietary drivers for those cards (if they exist and can be obtained), or to fall back to using the integrated Intel graphics chip, which tends to have good open source drivers.

I also had trouble with sound initially, which I was able to get around by first disabling Pulseaudio. Then, using the Spu2-X SPU plugin, configured to

Module: PortAudio
PortAudio API: ALSA
Synchronization mode: TimeStretch
Latency: 50

I was able to get pretty good sound for my games. Note that with ALSA it’s possible to get into a funny situation where ALSA selects a non-working sound card as default sound card – causing you to have no sound since the SPU plugin appears to be hardwired to use ALSA’s default card. This can in turn be remedied using the solution documented in my previous blog post.

Edit: it looks like one does not actually need to disable Pulse. If you can’t get sound on Pulse, try making the updated ~/.asoundrc file documented in my previous blog post. Using that I am able to get PCSX2 on PortAudio to coexist with all my other sound applications.

Whew! And that should cover everything. At least, that’s everything I know :) Perhaps it might help someone struggling with it as I was, but for now, I’m just happy to be able to play Persona 4 on Linux ^^

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • Google Buzz
  • StumbleUpon
  • Add to favorites
  • RSS
Rate this post
An error occurred!

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

10 Responses

  • dai1313 says:

    Async Mix seems to work several thousand times better for me than TimeStretch, So you should try that one if you have not already.

    Oddly, sound emulation seems to be weirdly difficult to get right on quite a few different systems.

    I didn’t have any problems installing PCSX2 on Arch, it grabbed all the necessary 32 bit packages and is happily using PulseAudio without issue.

    Been playing Ar Tonelico. I’m stuck, lol.

    • dai1313 says:

      I have a PS2 but the CD drive failed, poor thing…

      • Jason "moofang" says:

        We had a PS2 at home, but I unfortunately lived out that era studying overseas. Next thing I knew my brothers had traded it in to afford an Xbox. So I basically “missed the boat”, lol.

        Is Ar Tonelico any good? Not that I have much time to play but :P

        • dai1313 says:

          Wow. Traded a ps2 for an xbox. I have no words.

          Ar Tonelico is a shit game. I enjoy it, but I don’t like it. Does that make sense? There are much better games to play in your limited amount of free time.

          But the soundtrack is worth checking out. Some of these songs are seriously cool.

          Also, I have changed the text on my window decorations to Hymnnos, because why not.

          • Jason "moofang" says:

            I am clueless about the naming of the various generations of xboxes, but they traded it to buy the “next generation” xbox – the PS3 contemporary, so it was an upgrade. They had some reasons they didn’t want to get a PS3 which I can’t remember clearly.

            And that window decoration screenshot…. wow

          • dai1313 says:

            Oh, they traded it for the Xbox 360? That makes a lot more sense, actually.

            See, the ps3 was very expensive upon release and it did not get a large install base until later on in it’s life.

            The ps3 had a cell processor that was expensive to manufacture so it drove the price up a lot. The advantage of having a cell processor was that if programmed correctly it would be several times more powerful than the competition (cell processor was liked for it’s applications in building computing clusters)- unfortunately the cell processor proved to be difficult to write for (like trying to solve a difficult puzzle) and development tools took a long time to reach maturity.

            This problems seem to be the biggest factors that pushed the ps4 in the direction of off the self parts and quicker development time as it’s focus.

            One interesting thing, did you know that the early ps3′s could run linux as a separate boot option?

          • Jason "moofang" says:

            Well I knew you could run linux and then you couldn’t and then you could again and then you couldn’t. Don’t know what the eventual state ended up being, but yeah, I heard a few things :)

        • dai1313 says:

          What makes Ar Tonelico cool to me is the artistic design, I think. It really strikes me for some reason. And they clearly put a lot of effort into the design of the world, there is a lot of uniqueness in that respect.

          It’s like totally not a unique game though. It’s a very JRPG style JRPG. Very predictable story wise as well.

  • Tórus says:

    That just proves Fedora’s superiority, because I installed it from the repo and it just ran flawless in my 64bit OpenBox(the goddess of the graphical interfaces) :D

    • Jason "moofang" says:

      Ah, well no wonder there wasn’t much material on this when I googled :) I suppose it’s a happy thing that OpenSUSE is the only one with this issue. Packaging problems happen, even though the Pacman guys usually seem to provide quality stuff. You would prob still run into similar troubles if you had grabbed the binary off the pcsx2 site rather than over the repos tho :)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>