Monday, August 12, 2013

BY CROM! Let us compile PPSSPP for Ubuntu!

This how to is outdated. MaiAT3PlusDecoder is no longer needed as an audio decoder is now rolled into FFMPEG. I do believe the rest of the how to should still work though.

PPSSPP is a Sony Playstation Portable (or PSP for short) Emulator. There is no version of PPSSPP in the Software Center under Ubuntu 13.04, so we need to compile it form source. Luckily it's pretty easy to compile. I use the below command to download the source and compile.

In addition, on MY nVidia setup I had to issue the following command to link the proper libGL.so and clear up the error "No rule to make target `/usr/lib/x86_64-linux-gnu/libGL.so', needed by `PPSSPPSDL'.  Stop." Only use this command IF you are getting the before mentioned error while compiling.
sudo rm /usr/lib/x86_64-linux-gnu/libGL.so && sudo ln -s /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so 
With that out of the way continue on to compile PPSSSPP
git clone git://github.com/hrydgard/ppsspp.git && cd ppsspp && git submodule update -i && ./b.sh && cd build && strip PPSSPPSDL && mkdir ~/Desktop/PPSSPP && cp -a PPSSPPSDL assets ~/Desktop/PPSSPP
After it's finished compiling you can go to your Desktop folder and there should be a directory called PPSSPP. Protip: there is no installation for PPSSPP, just change to the directory and either double click on PPSSPPSDL from your file manager or execute PPSSPPSDL from the terminal.

There will be not background music or voice in certain PSP games on Ubuntu unless you have the mystical audio decoder library. You can find one that MIGHT work here. To install it use the below command after decompressing it. Or place it in the same directory as the PPSSPPSDL binary.
sudo mv ../output/libat3plusdecoder.so ~/Desktop/PPSSPP
If the downloaded decoder library doesn't work you can easily compile your own. To do so download the source and issue the following command.

The source for the audio decoder library can be found here. After the source finishes downloading you will want to decompress the archive and cd into the 'MaiAT3PlusDecoder' directory (do this while in the terminal). Run the following command to compile and install the library.
cd src && make && sudo mv ../output/libat3plusdecoder.so ~/Desktop/PPSSPP




9 comments:

  1. I get this when I try to compile and install MaiAT3PlusDecoder.
    g++ -O2 -c "-I../include" -fno-exceptions -fno-rtti -o ../output/MaiFile.o base/MaiFile.cc
    base/MaiFile.cc: In member function ‘Mai_Status MaiFile::setFileLen(Mai_I64)’:
    base/MaiFile.cc:345:17: error: ‘__NR_ftruncate64’ was not declared in this scope
    make: *** [../output/MaiFile.o] Error 1

    any help? I am on linux mint 13

    ReplyDelete
  2. The Audio decoder I don't know a lot about. But from what it looks like with version 1.2 of the decoder I get the exact same error when trying to compile. Maybe it'll be fixed in the next version...

    In the meantime you can download the PPSSPP pre-built binary from

    http://jeremywininger.blogspot.com/2013/08/ppsspp-daily-precompiled-binaries-for.html

    I try to update it every couple of days. It *should* have the audio decoder in the archive with the emulator. It's built on 64-bit Ubuntu 13.04.

    Or you can try an older pre-built version of the decoder from here

    http://jeremywininger.blogspot.com/2013/08/libat3plusdecoderso-for-ppsspp-on-64bit.html

    Good luck and (hopefully) happy emulation.

    ReplyDelete
  3. Nevermind I got it from here https://github.com/emulibraries/maiatrac3plus
    But I still don't get any sound.

    ReplyDelete
    Replies
    1. Yup, that's the source I used for the decoder on my site. AFAIK is still works fine with PPSSPP 0.9.1.

      Delete
  4. I got it to work, after I make the file I go into usr and right click on lib folder to open it as open as administrator and then I copy the file into it and then I get sound!

    ReplyDelete
  5. And I have tried your builds and I couldn't get them to run for some reason.

    ReplyDelete
    Replies
    1. Btw thanks for the help and if you write a guide to making it in Qt let me know. And thanks again for your help.

      Delete
  6. This how to is out of date. The at3plus audio decoder is now rolled into the FFMPEG included in the git repository's source code.

    ReplyDelete
  7. hi, I'm new to linux and I still get this problem:



    Building for native host.
    ~/ppsspp/build ~/ppsspp
    [ 0%] [ 1%] Built target vjson
    Generating something_that_never_exists
    [ 6%] [ 6%] Built target Common
    Built target stb_vorbis
    -- Found Git: /usr/bin/git (found version "1.8.3.2")
    CMake Warning at /home/shan109/ppsspp/git-version.cmake:40 (message):
    UPDATE: /home/shan109/ppsspp/git-version.cpp


    [ 7%] [ 7%] Built target rg_etc1
    [ 11%] [ 12%] Built target GitVersion
    Built target png16
    Built target glew
    [ 13%] [ 13%] Built target kirk
    Built target snappy
    [ 29%] Built target libzip
    [ 29%] Built target xbrz
    [ 30%] Built target xxhash
    [ 38%] Built target GPU
    [ 58%] Built target native
    [ 95%] Built target Core
    make[2]: *** No rule to make target `/usr/lib/x86_64-linux-gnu/libGL.so', needed by `PPSSPPSDL'. Stop.
    make[1]: *** [CMakeFiles/PPSSPPSDL.dir/all] Error 2
    make: *** [all] Error 2


    seems like this didn't work:
    sudo rm /usr/lib/x86_64-linux-gnu/libGL.so && sudo ln -s /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so

    BTW, I'm building it on a a laptop with nvdia geforce 525M and UBUNTU 13.10


    ReplyDelete