GAME NOTES
HALO ESCAPES THE XBOX! How it was made to run on Ipad and browsers in 2026!
Two developers, two opposite tricks: Halo CE decompiled to WebAssembly for the browser, and recompiled to ARM for the iPad.
WATCH ON YOUTUBE ↗ FROM THE EPISODE
The video script.
Halo: Combat Evolved came out in two thousand one, on the original Xbox. Now it's running in a browser tab, with online multiplayer. And on an iPad, in real online matches against PC players. Two developers, two opposite tricks, released on the same day. Let's crack them both open.
First, the browser. Mitch Hynes posted a link, and behind it is the whole Xbox game: the campaign, split-screen co-op, and all thirteen multiplayer maps, online, from an invite link. Microsoft never released Halo's source code. But one early debug build survives with its symbol file, a map that names every function. So fans decompiled it, turning machine code back into C that compiles to the same bytes.
Hundreds of the decompilation's commits are co-signed by Claude, the AI. By the project's own strict count, about ninety percent of the code now matches exactly. And once a game is C again, it compiles for almost anything. In about six hours, one developer ported it to Linux, Android and Windows.
Then Mitch pointed Emscripten at it, a compiler that turns C into WebAssembly. The whole Halo engine is one two point eight megabyte file. It draws with OpenGL, which the browser runs as WebGL two. Fun detail: the picture comes out upside down, so the page flips it back with one line of CSS.
The Xbox had sixty-four megabytes of memory. The browser build reserves two and a quarter gigabytes, so the game finds everything at the addresses it expects. And it never downloads the game up front. When the engine reads part of a level, the browser fetches just those bytes from Cloudflare.
Now, multiplayer. The original Halo never had online play on the Xbox, just System Link: at most four consoles, so sixteen players meant four-way split screen on four TVs. And it ran in lockstep. Thirty times a second, the host collected everyone's input, sent it all to every Xbox, and each one simulated the whole match. Over the internet, every step you took would land a round trip late.
So the decomp team wrote a new netcode, and made it the default. Your Spartan moves the instant you touch the stick. The host is the referee: damage, deaths, pickups and score are its call. When you fire, your game reports the hit, and the host checks where the target was when you saw it. Their rule: what the shooter saw hit, hits.
Every input packet also repeats your last three button presses, so a jump only gets lost if four packets in a row vanish. Anyone in your sights updates more often, and through a sniper scope, every tick. And the player cap jumped from sixteen to a hundred twenty-eight.
Now the plumbing, and it's all Cloudflare. Host a game, and a Cloudflare Worker opens a room: a Durable Object, one tiny server that exists just for your match. After a quick human check, you get an invite link. When a friend opens it, the room passes connection details between your two browsers.
Then it steps aside. Each guest opens WebRTC data channels, the tech behind video calls, straight to the host. Two per guest: a reliable one for things that must arrive, like hits, and an unreliable one for movement, where a late packet is worthless. And each browser gets a fake IP address, so Halo thinks it's at a LAN party.
No port forwarding either. Your browser asks Cloudflare how it looks from outside your router, then punches a path straight through. When a direct path is blocked, Cloudflare's TURN servers relay the traffic, still encrypted. The host keeps one connection per guest, a star. Mitch even says Cloudflare's SFU, built for fanning traffic out, would fit better.
Now the iPad. Kahris's HaloPad puts you in real matches with PC players, on servers people still run. Because it isn't the Xbox game. It's Halo: Custom Edition for PC, the original Windows program, built for Intel chips. There's no download: you bring your own copy and a Mac.
iPads can't run Intel code, and iOS won't let apps compile code while they run, the JIT trick that makes emulators fast. So on your Mac, an open-source static recompiler translates all five hundred eighty-three thousand of Halo's instructions into native Arm code, ahead of time. Then HaloPad lies to the game: you're on a Windows XP PC with a Radeon ninety-seven hundred. Halo believes it.
Around it sits a tiny Windows, made for this one game. Direct 3D nine becomes Metal, with all eight hundred four shaders translated and tested. Winsock maps to the iPad's own sockets, so the netcode is untouched: same handshake, same server list. GameSpy died in twenty fourteen, but a Bungie patch moved Halo PC to a fan-written server list, and the community kept the servers running. To those servers, an iPad is just another PC.
So, two resurrections. One rebuilt the source and rewired multiplayer for the web. The other translated the original program and faked the Windows around it, old netcode and all. AI agents helped on both. Neither is official, and so far, Microsoft hasn't said a word. A game from two thousand one, and people are still finding new ways back into Blood Gulch.