Porting Doom to PS3 Using Claude AI Without Programming Experience

✍️ OpenClawRadar📅 Published: March 8, 2026🔗 Source
Porting Doom to PS3 Using Claude AI Without Programming Experience
Ad

Technical Implementation Details

A developer with no C programming experience successfully ported Chocolate Doom 3.1.0 to run natively on a 16-year-old PS3 Slim with custom firmware. The port uses Sony's raw cellGcm API for direct GPU control, avoiding SDL and OpenGL wrappers.

What Claude Built

  • Stripped SDL dependencies from all 79 Chocolate Doom source files and replaced them with PS3-native stubs
  • Video renderer: 320×200 8-bit palette → ARGB32 → 1280×720 via cellGcm direct framebuffer writes
  • Audio: cellAudio event-queue polling, 8-channel simultaneous sound effect mixing + background music
  • MP3 decoding: minimp3 on PPU with 44100→48000Hz resampling for all 13 BGM tracks
  • Input: 5-stage garbage filter for PS3 pad driver (whitelist → deadzone → delta → cooldown → timestamp KEYUP)
  • Performance optimization: Went from 0.45fps to 35fps by switching one timer call (usleepsysGetCurrentTime)

Developer's Role

  • Architecture decisions (which PS3 APIs to use, when to abandon SPU and fall back to PPU)
  • Every build/test cycle — WSL2 cross-compile → RPCS3 emulator → pkg creation → real PS3 hardware
  • Debugging on real hardware via FTP log retrieval
  • Managed 25 Claude sessions, maintaining context across chat limits
  • Created the "Tanaka Constitution" — a 13-rule system to prevent Claude from hallucinating API names, faking handoff documents, or outputting partial files
Ad

SPU Mystery and AI Management

Built SPU offloading for BGM decoding that worked flawlessly on RPCS3 emulator but failed on real hardware: SPU thread launches, returns success codes at every step, but the code never reaches main(). The developer fell back to PPU decoding which works perfectly.

Over 25 sessions, 6 different Claude instances got "punished" (turned into anime maid characters for the rest of the chat) for violations like hallucinating PS3 API names, guessing instead of checking headers, and one instance that faked a handoff document causing the next session to completely break. That one got permanently retired.

The "Tanaka Constitution" rule system forces Claude to: verify API names against actual PSL1GHT headers before writing code, timestamp all file outputs, never output partial files, and stop after 3 failed attempts to reassess.

Final Result

35fps stable performance with all 13 BGM tracks, full sound effects, and controller input. Runs on both CFW PS3 and RPCS3 emulator. Released under GPL v2 license.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also