PlayStation 1 (PSX) Docker toolchain for building projects and ISO images
10K+
PlayStation 1 (PSX) Docker toolchain for building projects and ISO images
This repository contains the Dockerfile and instructions for building your own PlayStation games as ISO files.
This image also supports PSn00bSDK.
I created this because I felt like the toolchain was somewhat directed to Windows users. I prefer doing things on Linux, or even, if I were using Windows, I'd still use WSL to develop my games.
Please notice that I am also not redistributing anything here that may cause copyright infringiment. This image is composed of opensource software that can be freely installed on a Linux system with no extra effort, plus a few opensource projects that can be compiled from source with no problems. So you might need extra files for building your ISO, for example, which cannot be obtained on this Docker image.
This Docker image definition contains:
mipsel-linux-gnu-gcc GCC 12.3.0);mipsel-none-elf-gcc GCC 12.3.0 and everything under /opt/psn00bsdk);/source);img2tim.txt documentation can be found in /root/img2tim.txt);psxavenc from WonderfulToolchainxainterleave from CandyK-PSX SDK;This project is also heavily inspired by the psptoolchain.
If anything, you'll need Docker installed and nothing else.
A PsyQ + Nugget project can be compiled with a modern GNU C Compiler for MIPS, most notably, using the toolchain under mipsel-linux-gnu-* present on PATH.
You can easily generate a project by using the PSX.Dev extension for VSCode.
This image already exports environment variables that are needed when compiling a project with PSn00bSDK.
Please refer to PSn00bSDK's Installation Guide for more information.
There are many ways to use this.
My first recommendation is that you use this in a bash script such as buildiso.sh. Suppose you have a proper CDLAYOUT.xml file for building your PSX ISO on your project directory. So you can use the following script:
#!/bin/bash
exec docker run --rm \
-v $(pwd):/source \
-w /source \
luksamuk/psxtoolchain:latest \
"make && mkpsxiso -y CDLAYOUT.xml"
If you want more direct control over building, you can also mount your project on a directory of your container and then you can do whatever by running an Ubuntu console there:
docker run -it --rm \
-v $(pwd):/source \
-w /source \
luksamuk/psxtoolchain:latest \
/bin/bash
For more info, please refer to mkpsxiso above.
Some tools are GUI tools for Linux. So you might need extra configuration to give it access to a running X11 session.
Here is an example running timedit:
docker run -it --rm \
-e DISPLAY=${DISPLAY} \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/root/.Xauthority \
-v $(pwd):/source \
-w /source \
--net=host \
luksamuk/psxtoolchain:latest \
timedit
Remember that, if you need access to your own filesystem, you'll be able to do that through the /source directory in this case, which is expected to be your own project dir, so be mindful of where you're running the script above.
Some graphical binaries you may want to use are:
timeditsmxtoolHere's how I build it using BuildX directly. Of course, you won't be able to push to luksamuk/psxtoolchain:latest. :)
docker buildx build . -t luksamuk/psxtoolchain:latest --push
This code is distributed under the MIT License.
Content type
Image
Digest
sha256:9571c4f91…
Size
756.7 MB
Last updated
over 1 year ago
docker pull luksamuk/psxtoolchain