Make PS2 games with one prompt A new open-source project, PS2-Forge, enables developers and AI agents to create PlayStation 2 games using a single C file and a minimal engine. The toolchain compiles genuine MIPS R5900 executables that run on real PS2 hardware or the Play! emulator, with a built-in testing and preview system. The project aims to simplify PS2 homebrew development and make it accessible to AI agents. Build PlayStation 2 games in one C file. Tiny, readable C. One header, ~20 core functions, 2D and 3D . The entire engine fits on a single page AGENTS.md /Ijtihed/ps2-forge/blob/main/AGENTS.md , so an AI agent or you can write, build, and run a real PS2 game from one read. Builds with the open ps2dev toolchain; runs in the Play emulator no BIOS needed and on real PS2 hardware . a 60fps 3D cellular automaton, running on a PlayStation 2 Cyclic CA | Reaction-diffusion | Physarum slime mold | Multi-neighborhood CA | Gray-Scott coral | 3D cellular automaton | Six of the sixteen systems in the showcase app emergent-systems-ps2 , all real PS2 output. include "engine.h" typedef struct { int x, y; } Game; static void init void s, Ctx c { Game g=s; g- x=160; g- y=120; } static void update void s, Ctx c { Game g=s; if ctx is held c,BTN LEFT g- x--; } static void render void s, Ctx c { Game g=s; e rect c, g- x,g- y, 12,12, 255,90,90 ; } int main void { static Game g; Scene sc = { .state=&g, .init=init, .update=update, .render=render }; app run config default , &sc ; / engine owns the loop, GS, pad, timing / } 3D is three calls: e3d begin c, yaw, pitch ; for ... e3d voxel x,y,z, r,g,b ; e3d end c ; 1. Toolchain one time, no sudo : tools/bootstrap.sh downloads the prebuilt ps2dev toolchain Export the PS2DEV / PS2SDK / GSKIT + PATH lines it prints. 2. Make your game: cp -r examples/template mygame cd mygame edit game.c optional: rename the output .elf via EE BIN in the Makefile 3. Build, run, test: php make - game.elf a genuine MIPS R5900 / Emotion Engine executable make run boot it in the Play emulator make test build - boot headless - prints "RENDER: PASS|FAIL" + exit code 4. Play it for real: copy game.elf to a USB stick / memory card and launch it on a PlayStation 2 via FMCB or wLaunchELF. Examples: examples/template /Ijtihed/ps2-forge/blob/main/examples/template 2D , 3D , /Ijtihed/ps2-forge/blob/main/examples/spin3d examples/spin3d Game of Life, the /Ijtihed/ps2-forge/blob/main/examples/life examples/life e image draw grid pattern , a ported JS game . /Ijtihed/ps2-forge/blob/main/examples/jsport examples/jsport Don't want to think about make ? Use the bundled forge CLI: ./forge doctor check your toolchain is ready ./forge new mygame scaffold a new game in ./mygame ./forge build compile the game in this folder - .elf ./forge run build + boot it in the emulator ./forge test build + boot headless + print RENDER: PASS/FAIL ./forge play spin3d build + run a bundled example ./forge gui open a web dashboard to browse + preview games forge gui serves a local dashboard http://localhost:8090 http://localhost:8090 that lists every example and, on click, builds it, boots it headless, and shows the actual rendered PS2 frame plus a PASS/FAIL verdict. The fastest way to see what the engine does. The headless preview/test needs Play , Xvfb , and a Python with mss + Pillow ; on a remote box, tunnel the port: ssh -L 8090:localhost:8090