Scaffold and build OpenOrbis PS4 homebrew projects with CMake — on Windows or Linux/WSL.
OrbisForge generates self-contained CMake projects for the OpenOrbis PS4
Toolchain, producing eboot.bin
executables, .prx user libraries, .sprx signed system libraries, and (optionally) full
signed/encrypted .pkg installers — through a single add_orbis_target() CMake function.
A Windows GUI wizard and a cross-platform CLI both scaffold the same project layout.
The GUI wizard is Windows-only, built on UIFramework (skinned WinForms). The CLI (
orbisforge) runs natively on Windows, Linux, and WSL, published self-contained so no .NET install is required to use it.
- All three artifact types — EXE (
eboot.bin), PRX, and SPRX, via oneadd_orbis_target()call.TYPEselects the right CRT object (crt1.ovscrtlib.o), the rightcreate-fselfpackaging mode (--ebootvs--lib), and a sensible default-ptype. - Optional full
.pkginstaller —add_orbis_package()stageseboot.binand a generatedparam.sfointo a directory tree matching the final package layout, then drivescreate-gp4+PkgTool.Core pkg_buildto produce a real signed/encrypted.pkg. - Cross-platform builds — generated projects carry their own
cmake/core (toolchain file + target helpers), abuild.batthat shells into WSL, and abuild.shfor native Linux/WSL. - Automatic sanity check — every packaged target runs
readoelfover its own output as a post-build step, catching malformed builds before you ever copy them to hardware. - Optional FTP deploy —
deploy.bat/deploy.sh(curl-based, no extra dependency) upload the built artifact straight to your PS4's homebrew FTP server. Off by default; opt in via--deploy-hostor the GUI checkbox. No credentials baked in by design — most PS4 FTP servers run anonymous. - GUI wizard (Windows) — pick a name, type, output folder, optional
.pkgpackaging, and optional FTP deploy target; detects your WSL distro and the OpenOrbis toolchain automatically, and surfaces the latest available OpenOrbis release as a reference point. Light/dark mode toggle, remembered across launches. - VS Code integration — generated projects include a build task (Ctrl+Shift+B) and IntelliSense configuration for the toolchain's unusual target triple.
- CLI scaffolder (Windows + Linux + WSL) —
orbisforge new, plusorbisforge build/orbisforge deployso you never have to leave the CLI for the rest of the workflow either. - CI on every push — generates and builds one project of every type (including the full
.pkgpath) on real GitHub-hosted Linux, plus a Windows job that builds the GUI.
- The OpenOrbis PS4 Toolchain installed,
with
OO_PS4_TOOLCHAINset (in WSL, if building from Windows). - clang, lld, and CMake ≥ 3.20 available wherever the actual build runs (WSL/Linux).
- Windows GUI: .NET Framework 4.8 (ships with Windows 10/11).
- CLI: nothing — the published binaries are self-contained.
Prebuilt, self-contained binaries are attached to each release — no .NET install needed. Or build from source (see below).
orbisforge new --name my_plugin --type sprx --output E:\Projects\PS4
orbisforge new --name my_game --type exe --pkg
orbisforge build E:\Projects\PS4\my_plugin
orbisforge deploy E:\Projects\PS4\my_plugin
Run orbisforge --help for the full option list. build/deploy just invoke the generated
project's own build.bat/build.sh/deploy.bat/deploy.sh for you — double-clicking those
files directly works exactly the same.
git clone --recurse-submodules https://github.com/xeghosted/OrbisForge.git
cd OrbisForge
dotnet build OrbisForge.slnx
--recurse-submodules is required — the GUI depends on
UIFramework, pulled in as a git submodule at
external/UIFramework. If you already cloned without it: git submodule update --init.
To publish self-contained CLI binaries:
dotnet publish src/OrbisForge.Cli -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -o publish/win-x64
dotnet publish src/OrbisForge.Cli -c Release -r linux-x64 --self-contained -p:PublishSingleFile=true -o publish/linux-x64
dotnet test tests/OrbisForge.Core.Tests
Unit tests cover OrbisForge.Core's scaffolding logic directly (file sets per target type,
template content, sanitization, warnings) — fast, no toolchain required. CI's generate-and-build
matrix is the complementary end-to-end layer: it proves the output actually compiles against
the real OpenOrbis toolchain.
src/OrbisForge.Core— scaffolding logic (multi-targetednet8.0/netstandard2.0)tests/OrbisForge.Core.Tests— xUnit tests for Coresrc/OrbisForge.Cli— cross-platform console scaffoldersrc/OrbisForge.Gui— Windows wizard (WinForms + UIFramework)external/UIFramework— git submodule
MIT — see LICENSE.