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 Claude Code for Go-to-Market Operations: Context Engineering Patterns
A developer shares practical patterns for using Claude Code beyond coding, specifically for running go-to-market operations including scraping, enrichment, databases, email infrastructure, and multi-platform content. Key techniques include CLAUDE.md files, session scoping, CLI tools over MCP servers, and subagents for heavy lifting.

Using Claude Code/Codex with OpenClaw for structured Steam Deck game optimization
A Reddit user shares a workflow using Claude Code/Codex as optimization copilots and OpenClaw as an orchestration layer to transform Steam Deck game tuning from random tweaking into a repeatable, structured process.

Persistent AI Memory via Obsidian MCP: 16 Tools for Claude Cowork
A custom MCP server bridges Claude Cowork with Obsidian for persistent memory across sessions, using 16 tools and Dataview queries.

Recursive AI Agent System Builds and Improves Its Own Website
A developer built a website using Claude Code that generates its own newsletter content, then uses that content to identify gaps and create an improvement backlog. The system runs on a weekly pipeline deployed on Vercel.