Porting Doom to PS3 Using Claude AI Without Programming Experience

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 (
usleep→sysGetCurrentTime)
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
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
👀 See Also

Using Codex CLI to automate OpenClaw installation on macOS
A developer used Codex CLI's plan mode to install OpenClaw on a Mac mini, configure the gateway, set GPT-5.4 as the primary agent, and handle dependencies without manual terminal commands.

Building a Pigeon Deterrent Water Turret With Claude AI — Zero Code Written
A developer built an automated water turret to deter pigeons using Claude AI for schematics, code, and component selection — without writing a single line of code.

Developer Considers Switching from DeepSeek to Grok for Finance AI Agent
A developer building a finance AI web app in FastAPI/Python reports DeepSeek V3.2 Reasoning has 70s TTFT and ~25 t/s output speed, making streaming feel terrible. They're considering Grok 4.1 Fast Reasoning with ~15s TTFT and ~75 t/s output.

OpenClaw Agent Voice Call Demo with Streaming TTS and Barge-in
A developer demonstrated their OpenClaw agent making phone calls via Telegram, featuring streaming text-to-speech that responds sentence-by-sentence and supports barge-in for natural conversations.