Welcome! This repository is a collection of PlayStation Portable (PSP) homebrew projects, each based on step-by-step tutorials. Every project demonstrates a different aspect of PSP development using C, SDL2, and related libraries. All code is cross-platform and can be built for both PSP and Linux.
These projects are designed for both PSP and Linux. You can build and run them on your PC (for development/testing) or on a real/emulated PSP.
-
For PSP builds:
-
For Linux builds:
- Standard C development tools (gcc, make, cmake, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, etc.).
- On Fedora/Nobara:
sudo dnf install gcc make cmake SDL2-devel SDL2_image-devel SDL2_mixer-devel SDL2_ttf-devel
- On Ubuntu/Debian:
sudo apt install build-essential cmake libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
-
For macOS builds:
- Install Homebrew if you don't have it:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Then install dependencies:
brew install cmake sdl2 sdl2_image sdl2_mixer sdl2_ttf
- Install Homebrew if you don't have it:
-
For Windows builds:
- Use MSYS2 for a Unix-like environment and package management.
- After installing MSYS2, open the MSYS2 MinGW terminal and run:
pacman -Syu pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-SDL2_mixer mingw-w64-x86_64-SDL2_ttf
- Alternatively, you can use WSL to run a Linux environment on Windows and follow the Linux instructions above.
Project | Description |
---|---|
hello_world_psp | Minimal Hello World for PSP using C and PSPSDK. |
drawing_square_psp | Draws a red rectangle on a white background using SDL2. |
drawing_input_psp | Demonstrates reading controller input and drawing shapes. |
drawing_sprite_psp | Loads and displays a sprite image with SDL2_image. |
audio_psp | Plays a WAV/OGG/MP3 file using native PSP audio or SDL2_mixer. |
cube_3d_psp | Renders a spinning 3D cube using PSP GU. |
opengl_triangle_psp | Draws a triangle using OpenGL-style API on PSP. |
sdl_square_psp | SDL2 example: draws a green square, handles input. |
sdl_image_psp | Loads and displays PNG images using SDL2_image. |
sdl_mixer_psp | Plays background music with SDL2_mixer, shows pause/resume. |
sdl_ttf_psp | Renders TrueType fonts with SDL2_ttf. |
texture_mapping_psp | Demonstrates texture mapping on PSP GU. |
Below are step-by-step instructions for building and running the projects on each platform. Replace <project_folder>
with the folder of the project you want to build.
- Open a terminal and navigate to the project folder:
cd psp_projects/<project_folder>
- Create and enter the build directory:
mkdir -p build
cd build
- Run CMake with the PSP toolchain:
psp-cmake ..
# Or, if psp-cmake is not in your PATH:
cmake .. -DCMAKE_TOOLCHAIN_FILE=~/pspdev/psp/share/pspdev.cmake
- Build the project:
make or cmake --build .
- The resulting
EBOOT.PBP
can be run in PPSSPP or on a real PSP.
Welcome! This repository is a collection of PlayStation Portable (PSP) homebrew projects, each based on step-by-step tutorials. Every project demonstrates a different aspect of PSP development using C, SDL2, and related libraries. All code is cross-platform and can be built for both PSP and Linux.
General Build Steps:
mkdir build
cd build
psp-cmake .. # For PSP
make
See each project’s README for Linux build instructions and asset requirements.
- If EBOOT.PBP is not created or you get CMake errors about
create_pbp_file
, make sure you are using thepsp-cmake
script from your toolchain’sbin
directory. - For font/image/audio projects, required assets (fonts, images, music) must be in the build directory or as described in each project’s README.
- See each project’s README for more details and screenshots.
- PSPSDK
- SDL2
- PPSSPP
- PSPDev Tutorials
- PSP Eight Sprites Tutorial
- All open-source contributors and the PSP homebrew community!