The PCSX-Redux package contains an up-to-date fork of PCSX, a PlayStation 1 emulator.
This may take a while to build. Feel free to do something else while this is building.
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
MIPSel Binutils-2.46 & GCC-15.2.0 and Zip (for OpenBIOS)
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"
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
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