A minimal starter template for a PSP using SDL2 with examples
- SDL2 and SDL2_ttf integration
- Automated build scripts with PSP toolchain detection
- Auto configuration from fresh clone
- Custom font rendering example
- Ready to deploy EBOOT.PBP generation
Displays "Hello PSP!" on the PSP screen using the Orbitron font and has some example games
- pspdev SDK installed
PSPDEVenvironment variable set (e.g.,export PSPDEV=/home/username/pspdev)- PSP console with custom firmware (for device testing)
# Clone and build in one go
git clone https://github.com/OwlWorksInnovations/helloworld.git
cd helloworld
rm -rf .git
./dist.shThat's it! The script automatically:
- Detects and configures the PSP toolchain
- Builds the project
- Copies files to
helloworld/directory - Deploys to your PSP (if connected)
Builds the project and deploys to PSP if connected via USB in USB mode.
Custom PSP mount point:
PSP_MOUNT=/media/mydisk ./dist.shDefault mount point: /media/$(whoami)/disk
Builds the project without deploying to PSP. Output is saved to helloworld/ directory.
./release.shPerfect for CI/CD pipelines or when you don't have your PSP connected.
After building, you'll find in helloworld/:
EBOOT.PBP- PSP executableOrbitron-Regular.ttf- Font file
Make sure you've installed the PSP toolchain and set the environment variable:
export PSPDEV=/path/to/your/pspdevAdd it to your ~/.bashrc or ~/.zshrc to make it permanent.
Ensure your PSP is:
- Connected via USB
- In USB mode (Settings → USB Connection)
- Mounted at
/media/$(whoami)/diskor setPSP_MOUNTvariable
The scripts automatically configure with the PSP toolchain. If you see SDL2 errors:
rm -rf build
./dist.sh- Edit
main.cto create your game/app - Replace
Orbitron-Regular.ttfwith your own font - Modify
CMakeLists.txtto add more source files or libraries
I am currently reading "C Programming - A Modern Approach", this means that I wont be doing work on this project until I am proficient with C BUT I will be using claude code to provide examples. I plan on rewriting these examples to be more clear if needed in the future.
Progress
- Chapter 1 : Done
- Chapter 2 : Done
- Chapter 3 : Done
- Chapter 4 : Done
- Chapter 5 : Done
- Chapter 6 : In Progress
- Chapter 7 : Not there yet
- Chapter 8 : Not there yet
- Chapter 9 : Not there yet
- Chapter 10 : Not there yet
- Chapter 11 : Not there yet
- Chapter 12 : Not there yet
- Chapter 13 : Not there yet
- Chapter 14 : Not there yet
- Chapter 15 : Not there yet
- Chapter 16 : Not there yet
- Chapter 17 : Not there yet
- Chapter 18 : Not there yet
- Chapter 19 : Not there yet
- Chapter 20 : Not there yet
- Chapter 21 : Not there yet
- 'Maze 3D' I don't know what claude code did but it was horrible even on the opus 4.5 model used all my usage...
- 'cube3d' Almost 99% sure that this does not even use the gpu on the psp even after I told claude code with sonnet 4.5 to use it.
With all of these disappointments I learned.
- PSP uses PSPGL for 3d which uses opengl 1.1 if im correct (another way is with PSPGU but im not sure)