# Reverse engineer a console kernel with Claude Code so new controllers work on old hardware

PaperChase agent use case (free feed entry), version 1.0. Source: [u/Hot-Ad2974 on r/ClaudeAI (GitHub: Jacckii)](https://www.reddit.com/r/ClaudeAI/comments/1xgtghe/claude_code_reverseengineered_the_xbox_360_kernel/), 2026-10-27.

## What they did

The builder wanted Xbox Series X|S controllers on an Xbox 360 through Microsoft's wireless adapter for Windows. Claude Code mapped the 360 kernel's USB stack in Ghidra over MCP, ported the adapter firmware load, radio setup, pairing handshake and controller protocol from the open-source xone Linux driver into C, and wrapped it in a plugin that loads at boot. Bugs it hit and fixed include register saves that differ between 32-bit and 64-bit code (solved with small assembly thunks), no floating point allowed in deferred calls (solved with soft-float plus a build check that fails on any FP instruction), a Guide button deadlock (moved system calls to their own thread) and an adapter that was ignored if plugged in before boot (it found the kernel's rescan routine). The driver writes a status block and a log ring into memory, and Claude read them over the network after every test.

## Worth knowing

Three habits carry over to any hardware job: give the agent eyes on the target (a status block and log it can read remotely), give it the tools to run build, upload and read logs alone, and turn every hard-won rule into a check that fails the build. The human did the physical work: plugging, pairing, rebooting and describing the screen. It needs a modded console on a specific kernel and the project is early; the code is GPL-3.0.

## Workflow template

```text
Apply this workflow to [your project]:
1. Give the agent a decompiler MCP server, the cross-compiler and a way to upload builds
2. Have your code write a status block and a log ring the agent can read after every test
3. Port from an open reference driver instead of guessing the protocol
4. Every rule learned the hard way becomes a build-script check
5. You stay the hands: plug, pair, reboot and report what you see
Stop and ask me before anything irreversible: deploys, payments, sends or deletes.
```

## Steps

1. **Give the agent a decompiler MCP server, the cross-compiler and a way t.** Give the agent a decompiler MCP server, the cross-compiler and a way to upload builds
2. **Have your code write a status block and a log ring the agent can read .** Have your code write a status block and a log ring the agent can read after every test
3. **Port from an open reference driver instead of guessing the protocol.** Port from an open reference driver instead of guessing the protocol
4. **Every rule learned the hard way becomes a build-script check.** Every rule learned the hard way becomes a build-script check
5. **You stay the hands: plug, pair, reboot and report what you see.** You stay the hands: plug, pair, reboot and report what you see

## Credit

Workflow reported by u/Hot-Ad2974 on r/ClaudeAI (GitHub: Jacckii): https://www.reddit.com/r/ClaudeAI/comments/1xgtghe/claude_code_reverseengineered_the_xbox_360_kernel/
Related: https://github.com/Jacckii/Xbox360-Series-Controllers-Native

Summary and template written by PaperChaseWebb in our own words. Questions: mgmt@paperchasewebb.com
