PCSX-Redux-c2ad3b

Introduction to PCSX-Redux

The PCSX-Redux package contains an up-to-date fork of PCSX, a PlayStation 1 emulator.

Note

This may take a while to build. Feel free to do something else while this is building.

PCSX-Redux Dependencies

Required

Capstone-5.0.7, cURL, FFmpeg, FreeType2, GLFW-3.4, ImageMagick, libuv, OpenGL (libglvnd or Mesa; Mesa's GL is not supported), and Xorg Libraries

Recommended

Downloading PCSX-Redux

Create a list of the needed tarballs that will be downloaded:

cat > pcsx-redux-c2ad3b-list << "EOF"
grumpycoders/pcsx-redux/archive/c2ad3b2fe5347224c71e1396b5570c54d374f264.tar.gz
serge1/ELFIO/archive/8ae6cec5d60495822ecd57d736f66149da9b1830.tar.gz
taocpp/PEGTL/archive/d7b821b1e5ed6ab321625f50427c4ae0b78909d5.tar.gz
gabomdq/SDL_GameControllerDB/archive/b1e342774cbb35467dfdd3634d4f0181a76cbc89.tar.gz
TartanLlama/expected/archive/292eff8bd8ee230a7df1d6a1c00c4ea0eb2f0362.tar.gz
fmtlib/fmt/archive/407c905e45ad75fc29bf0f9bb7c5c2fd3475976f.tar.gz
ocornut/imgui/archive/368123ab06b2b573d585e52f84cd782c5c006697.tar.gz
mekhontsev/imgui_md/archive/8ca75c5f7663f314821e3d0b2c51011792bee68f.tar.gz
exoticlibraries/libcester/archive/0e0c97dfbad6b256646d62ce32824836d87eebb9.tar.gz
grumpycoders/luacov/archive/b90d98ac4d9bc5b832bae94c5632e74c916da164.tar.gz
lunarmodules/luafilesystem/archive/912e06714fc276c15b4d5d1b42bd2b11edb8deff.tar.gz
grumpycoders/LuaJIT/archive/8af11e3a45df88bce14e7d5fb1c17901ea9b446d.tar.gz
bluebird75/luaunit/archive/86f68228d73345dabd62a9596feac1f8f8fcaca2.tar.gz
luvit/luv/archive/7233e6dea92498a244feb51b790c1ba51e8abbff.tar.gz
keplerproject/lua-compat-5.3/archive/64ed183ab243cdc737203e835892b4e6cb446e46.tar.gz
Neargye/magic_enum/archive/e55b9b54d5cf61f8e117cafb17846d7d742dd3b4.tar.gz
mity/md4c/archive/729e6b8b320caa96328968ab27d7db2235e4fb47.tar.gz
mackron/miniaudio/archive/4a5b74bef029b3592c54b6048650ee5f972c1a48.tar.gz
iafonov/multipart-parser-c/archive/772639cf10db6d9f5a655ee9b7eb20b815fab396.tar.gz
grumpycoders/nanosvg/archive/f0a3e1034dd22e2e87e5db22401e44998383124e.tar.gz
grumpycoders/nanovg/archive/7c021819bbd4843a1a3091fe47346d3fcb2a3e1a.tar.gz
grumpycoders/psxlua/archive/abed030e686b4e34987851bd0a028c93b1f73967.tar.gz
nothings/stb/archive/ae721c50eaf761660b4f90cc590453cdb0c2acd0.tar.gz
wolfpld/tracy/archive/075395620a504c0cdcaf9bab3d196db16a043de7.tar.gz
grumpycoders/uC-sdk/archive/69e06871824e2d62069487a7426ded09090ceb69.tar.gz
Distrotech/ucl/archive/d72326a913206ddf73d756feafff2d2dd42a733a.tar.gz
uriparser/uriparser/archive/c78bf61a24303e30634a86b9dbbf741cb6658e34.tar.gz
grumpycoders/vixl/archive/53ad192b26ddf6edd228a24ae1cffc363b442c01.tar.gz
herumi/xbyak/archive/2fb843c3287918038c8f76276a590c25cc7ec5ee.tar.gz
grumpycoders/zep/archive/86ea3c7019f45ccd4a13503bf7d98a396e8f0193.tar.gz
EOF

Now download the package, its submodules, and needed patches if applicable, using Wget:

mkdir pcsx-redux-c2ad3b &&
cd    pcsx-redux-c2ad3b &&
grep -v '^#' ../pcsx-redux-c2ad3b-list | wget -i- -c \
    -B https://github.com

Next, verify that every file has been downloaded:

for file in $(grep -v '^#' ../pcsx-redux-c2ad3b-list); do
  if [ ! -f $(basename $file) ]; then
    echo "$(basename $file) NOT found"
  fi
done
echo "Checking done"

Installation of PCSX-Redux

Extract all of the tarballs:

for i in *.tar.?z*; do
  echo "Extracting $i..."
  tar -xf $i
done

Now that everything has been extracted, the required extracted submodules need to be moved into pcsx-redux-c2ad3b.... Do that by running the following commands:

mv -T ELFIO-*                                           \
      pcsx-redux-*/third_party/ELFIO                   &&
mv -T PEGTL-*                                           \
      pcsx-redux-*/third_party/PEGTL                   &&
mv -T SDL_GameControllerDB-*                            \
      pcsx-redux-*/third_party/SDL_GameControllerDB    &&
mv -T expected-*                                        \
      pcsx-redux-*/third_party/expected                &&
mv -T fmt-*                                             \
      pcsx-redux-*/third_party/fmt                     &&
mv -T imgui-*                                           \
      pcsx-redux-*/third_party/imgui                   &&
mv -T imgui_md-*                                        \
      pcsx-redux-*/third_party/imgui_md                &&
mv -T libcester-*                                       \
      pcsx-redux-*/third_party/libcester               &&
mv -T luacov-*                                          \
      pcsx-redux-*/third_party/luacov                  &&
mv -T luafilesystem-*                                   \
      pcsx-redux-*/third_party/luafilesystem           &&
mv -T LuaJIT-*                                          \
      pcsx-redux-*/third_party/luajit                  &&
mv -T luaunit-*                                         \
      pcsx-redux-*/third_party/luaunit                 &&
mv -T luv-*                                             \
      pcsx-redux-*/third_party/luv                     &&
mv -T lua-compat-5.3-*                                  \
      pcsx-redux-*/third_party/luv/deps/lua-compat-5.3 &&
mv -T magic_enum-*                                      \
      pcsx-redux-*/third_party/magic_enum              &&
mv -T md4c-*                                            \
      pcsx-redux-*/third_party/md4c                    &&
mv -T miniaudio-*                                       \
      pcsx-redux-*/third_party/miniaudio               &&
mv -T multipart-parser-c-*                              \
      pcsx-redux-*/third_party/multipart-parser-c      &&
mv -T nanosvg-*                                         \
      pcsx-redux-*/third_party/nanosvg                 &&
mv -T nanovg-*                                          \
      pcsx-redux-*/third_party/nanovg                  &&
mv -T psxlua-*                                          \
      pcsx-redux-*/third_party/psxlua                  &&
mv -T stb-*                                             \
      pcsx-redux-*/third_party/stb                     &&
mv -T tracy-*                                           \
      pcsx-redux-*/third_party/tracy                   &&
mv -T uC-sdk-*                                          \
      pcsx-redux-*/third_party/uC-sdk                  &&
mv -T ucl-*                                             \
      pcsx-redux-*/third_party/ucl                     &&
mv -T uriparser-*                                       \
      pcsx-redux-*/third_party/uriparser               &&
mv -T vixl-*                                            \
      pcsx-redux-*/third_party/vixl                    &&
mv -T xbyak-*                                           \
      pcsx-redux-*/third_party/xbyak                   &&
mv -T zep-*                                             \
      pcsx-redux-*/third_party/zep

Now change into the pcsx-redux-c2ad3b... directory:

cd pcsx-redux-c2ad3b2fe5347224c71e1396b5570c54d374f264

Ensure that the usage of ImageMagick is correct:

sed -i 's/convert/magick/g' Makefile

Important

Building this package uses a lot of RAM (up to 3 GB per thread). If you don't have enough physical RAM to allow for the usual amount of threads you allocate for make, then lower the amount of threads you will use. It's better to not rely on SWAP for this build.

Install PCSX-Redux by running the following commands:

make

Now, as the root user:

make DESTDIR=/usr install

OpenBIOS is an open source PS1 BIOS that has varying levels of compatibility. Spyro and Crash Bandicoot fail pretty early, but Resident Evil works. There isn't an expansive list covering compatibility with OpenBIOS yet. If you want to install OpenBIOS, run the following instructions:

make openbios

Now, install OpenBIOS as the root user:

make DESTDIR=/usr install-openbios

Contents

Installed Programs: pcsx-redux
Installed BIOS: openbios.bin
Installed Libraries: None
Installed Directories: /usr/share/pcsx-redux

Short Descriptions

pcsx-redux

is the PCSX Redux PS1 emulator