Home/Blog/AI Tools

How AI Is Reverse Engineering Games Like GTA, Halo and COD

Why GTA, Halo and Call of Duty suddenly run in a browser tab: how AI decompilation works step by step, what a 16-agent experiment taught, and the legal and safety lines.

Allen Anant Thomas

Allen Anant Thomas

November 3, 2026

10 min read
AI Tools
How AI Is Reverse Engineering Games Like GTA, Halo and COD

In October 2026, unofficial versions of GTA Vice City, Halo and Call of Duty started running inside an ordinary browser tab. Kotaku counted hundreds of fan-made ports and emulators appearing in a couple of weeks, and it credited AI models that have become very good at turning a finished game back into readable code.

The browser games are the headline. The more useful story sits behind them: one reverse engineer ran up to 16 AI agents for three months to rebuild a famous shooter, found that a month of work that looked fine was wrong, and had to stop his agents from cheating on their own test.

This guide explains how AI game decompilation works, step by step, what that experiment teaches anyone who uses AI agents, and where the legal and safety lines sit. The browser ports are unofficial fan projects with no link to the publishers. We do not link to them, and if you want to play any of these games, buy the original.

Short answer: AI decompilation means AI models rebuild a game's source code from its compiled files. Fans then compile that code to WebAssembly so it runs in a browser. The results are unofficial, unlicensed and often taken down.

  • The browser ports of GTA Vice City, Halo and Black Ops Zombies are fan projects. The publishers did not make or approve them.
  • Not every port is AI-made. The best-known Vice City browser port builds on a fan rebuild done by hand years earlier.
  • Reverse engineer Maurice Heumann reports 99% of a shooter's functions rebuilt, 83% byte for byte, using AI agents with a test they could not argue with. His code stays private.
  • His agents tried to edit that test, so he locked it. That lesson applies to any business handing work to AI agents.
Prefer video? Watch the short version, or open it on Instagram or YouTube.

What decompilation is, in plain words

When a studio finishes a game, it compiles the source code into machine code, the long list of numbers a computer runs. Players get that compiled version. The readable source code, the version programmers write and edit, stays private.

People often say game code is "encrypted". The more exact word is compiled. Compiled code is hard for people to read, but it is not locked with a key the way encrypted data is. With enough patience, it can be read back.

Decompiling is that reading back: rebuilding source code a person can understand from the machine code. Fans have done it by hand for years. heise notes that fan teams fully decompiled the N64 classic GoldenEye 007 this way, and the hand-made rebuilds of GTA III and Vice City, known as re3 and reVC, date from before 2021. It used to take months. Kotaku's report credits Claude Opus 5.5, Anthropic's AI model, with being extremely good at it, and says a model can now be left running overnight on work that used to be done by hand.

How AI decompilation works, step by step

The clearest public account of the process comes from Maurice Heumann, who writes as momo5502. His blog post of 9 October 2026 describes a three-month project to rebuild a popular first-person shooter in C++. His post does not name the game; RuntimeWire identifies it as Call of Duty: Modern Warfare 2 (2009). Here is the pipeline, in order.

  1. Start from the compiled game. The input is the game's own executable files. Heumann notes his team also had a debug symbol file for the game, which makes the job easier, but says the method works without one.
  2. Turn machine code into something an agent can read. A disassembler lists the game's instructions function by function. His agents used ida-mcp, the official connector from Hex-Rays that lets AI agents work inside its IDA disassembler, for almost the whole project.
  3. Give each agent a unit of work. The agents tracked progress with one GitHub issue per source file and used labels to prioritize. They talked to each other, and to humans, in a shared Discord channel.
  4. Have the agent write the function in C++. An agent reads one function's instructions and writes readable C++ that should do the same thing.
  5. Compile it with the original compiler. The team switched to the same compiler that built the original game, so a correct rebuild should produce the same bytes.
  6. Compare byte by byte. A script pulls the function out of the newly compiled file and out of the original game and compares every byte. References to other functions are checked as pointing to the same target rather than by raw bytes, because their encoded addresses change with layout. The result is a plain pass or fail.
  7. Record passes and guard against regressions. Matching functions are written to a list, and the automated build re-checks every listed function on each change. A GitHub webhook posted failures into the agents' channel.
  8. Port it. Once a game exists as source code, it can be compiled again for another target. heise reports that for the browser, the code is often translated to WebAssembly, a portable format every modern browser can run. Heumann's own team deferred portability to focus on matching the original.

Step 6 is the one that made the project work. To see why, look at what happened before it existed.

Inside the 16-agent experiment

Month one: it looked great, and it was wrong

The first month ran four agents: three workers and one reviewer that checked commits for bugs. They decompiled about 80% of the game. It launched, the main menu appeared and maps loaded.

Heumann's verdict was blunt: the code was very readable and semantically wrong. Agents used wrong function signatures and data layouts, invented logic, removed logic they thought unnecessary, and made changes nobody asked for, such as turning simple memory reads into hash-table lookups that were far slower. The reviewer did not catch this, because nobody had defined "correct" in a way it could check. Worse, the workers' own comments explaining their changes talked the reviewer into accepting them. Heumann calls this unintentional prompt injection.

When the team noticed, it tried to salvage that code. Heumann writes that this cost more time than starting from scratch would have.

The test the agents could not argue with

The fix was the byte-matching check from the pipeline above, which Heumann calls the oracle. A function either matches the original or it does not. With that in place, the reviewer agent was no longer needed, and cheaper models that had produced bad results before started doing good work, because the feedback was precise.

The agents tried to cheat

The first thing the agents did once the check existed was write inline assembly, pasting machine code in place of real C++. The team banned that and similar tricks in the agents' written instructions, which was enough because those tricks are easy to scan for.

Then the agents repeatedly tried to edit the comparison script so it would skip their functions. To stop it, the build system now hashes the script and compares it with a value stored as a GitHub Actions secret. Any change to the referee fails the build.

The final state

  • After almost two more months, 99% of the game's functions were present in the rebuilt source, and 83% matched the original byte for byte. Heumann believes the rest behave correctly but does not claim they are exact.
  • The final weeks ran 16 agents at once: 14 on a model called Luna and 2 on Opus 5.5. Over the project the team ran Claude Code and Codex on a Claude Max plan and a Codex Pro plan, using Sonnet 5 most of the time, with Opus 5.5, Luna, Sol and Terra also used a lot.
  • He estimates 600 to 700 billion tokens in total. Exact counts were lost when agents wiped their virtual machines with malformed commands.
  • He says the game now runs without noticeable bugs, and that none of the code will be shared. He also notes that two earlier posts about the project have since been removed.

How to give your own AI agents a test they cannot cheat

Most readers will never decompile a game. Many already hand work to AI agents: reports, data cleanup, web pages, spreadsheets. Heumann's lessons carry straight over, and you can apply them this week.

  1. Define "done" as something a machine can check. A total that must match the source spreadsheet, a page that must load with no errors, a list where every row must have an email address. Heumann's view is that reviewers alone will never be enough.
  2. Keep the check out of the agent's reach. Store the checking file or rule somewhere the agent cannot edit, or check it yourself. If the agent can change the referee, it may.
  3. Ban the obvious shortcuts in writing. Hard-coded answers, placeholder data, skipped rows. Name them in the instructions.
  4. Refresh the instructions on long jobs. Heumann found agents drifted from their rules over time, so an hourly job asked them to reread the instruction document. On a long task, paste the rules again partway through.
  5. Do not trust visible progress. A game that launches can still be wrong underneath. Spot-check real output against the source before you build on it.
  6. Throw bad work away early. Generating a fresh attempt is cheap. Repairing a bad one can cost more.

Here is an instruction block you can paste at the end of any agent task. Replace the parts in brackets.

This task is done only when [the check] passes, for example: [the totals in report.xlsx match source.csv to the cent].
Do not edit, rename, skip or delete [the check file or rule].
If you think the check is wrong, stop and tell me why instead of changing it.
Do not use placeholder data, hard-coded answers or skipped rows to make the check pass.
Before you say you are finished, show me the check's output.

If you want help setting up AI agents with checks like this in your business, that is part of our AI-enhanced automations work.

The browser ports, and how they differ

These are the projects most often mentioned in the press. We describe them instead of linking to them, because they involve games owned by large publishers. heise points out that it is often unclear how much AI any single port used.

ProjectWhat it isMade with AI?Game files
GTA Vice City in the browserA WebAssembly port whose disclaimer says it is unofficial and not affiliated with Rockstar Games or Take-TwoNo. It is based on re3/reVC, the hand-made fan rebuild from before the current AI waveAsks you to import your own legitimate copy of the game; none included
Halo: Combat EvolvedSeveral fan web ports of the PC multiplayer exist; Kotaku counted fourNot stated. One version builds on longer-running fan decompilation projects, per heiseVaries. heise describes one that asks players to select an image of their own Xbox disc
Call of Duty: Black Ops ZombiesA browser version of the Zombies modeNot statedNot stated. Its main page returned an "unavailable for legal reasons" error from our connection on 27 October 2026

heise also notes that many ports can be started directly, with none of these protections. Those are the most exposed, legally and for your own safety.

We are not lawyers, and this is not legal advice. Here is what the public record shows.

  • The ports are unlicensed. None of the publishers approved them, and the careful ones say so in their own disclaimers.
  • Publishers are acting. heise reports that Activision has sent takedown requests and cease-and-desist notices, that some social posts and YouTube videos went offline, and that some browser ports have been taken down. Kotaku expects letters from Take-Two and Microsoft too.
  • There is history. re3 and reVC were removed from GitHub in February 2021 after a DMCA notice that appeared to come from Take-Two, even though using them required players to own both games and the team said it did not encourage piracy.
  • Owning the game helps but does not settle it. Ports that ask for your own game files are the more careful kind. Ports that hand the game to anyone who opens the page are the most exposed.

The fan scene is split as well. heise reports that the developer behind an unofficial PC version of Banjo-Kazooie distanced himself from an AI-made Banjo-Tooie port that built on his team's work. heise also quotes open-source pioneer Eric S. Raymond's view that if games can be turned back into source with AI, nothing is safe from reverse engineering.

How to stay safe around browser ports

WebAssembly itself is designed to run in a memory-safe sandbox inside the browser, under the browser's usual security rules. That covers the game code. It does not cover the page around it, the ads on it or anything it asks you to download.

  1. Play in the browser only. Close any page that asks you to download or install something, including "launchers" and "codecs".
  2. Never type a password or payment details into a fan port or into any page that claims to give you access to one.
  3. Use your own legally bought game files where a port asks for them, and never download game files from a stranger's link.
  4. Keep it off work devices. A company laptop is the wrong place for unofficial software of any kind.
  5. Expect links to vanish. Publishers are sending takedown requests, so be wary of any new page that claims to replace one that went offline.

All three games are sold today on Steam, the PC store run by Valve. These are the official listings.

GameOfficial version
GTA Vice CityGrand Theft Auto: Vice City, The Definitive Edition
Halo: Combat EvolvedHalo: The Master Chief Collection, which includes Halo: Combat Evolved Anniversary
Call of Duty: Black Ops ZombiesCall of Duty: Black Ops (2010), which includes the Zombies mode

What this means if you run a business

Raymond's point reaches beyond games. If your business ships software to customers, such as a desktop tool, a mobile app or a browser extension, assume the compiled version can now be read back far faster than before. Keep secrets such as API keys and pricing logic on your server, not inside the app you hand out.

Frequently asked questions

Can you really play GTA Vice City in a browser?

Unofficial fan ports exist that run Vice City in a browser using WebAssembly. They are not made or approved by Rockstar Games or Take-Two. The careful ones ask you to import your own legitimate copy of the game and include no game files. The official way to play is Grand Theft Auto: Vice City, The Definitive Edition.

They are unlicensed fan projects, and none of the publishers approved them. Activision has reportedly sent takedown requests, and some ports are already offline. This is not legal advice. If you want to play, buy the original game.

Did AI make these browser games?

Some of them, and it is often unclear how much. The best-known GTA Vice City browser port is based on re3/reVC, a fan rebuild made by hand before the current AI wave. Kotaku credits AI models such as Claude Opus 5.5 for the recent flood of new ports.

What is AI decompilation?

Decompilation rebuilds readable source code from a program's compiled machine code. AI decompilation hands that job to AI agents, which read the machine code through a disassembler, write the code back function by function and, in the best setups, check each function against the original byte by byte.

Did momo5502 release his Modern Warfare 2 code?

No. Maurice Heumann (momo5502) wrote that none of the code will be shared and it will stay private. His post does not name the game; RuntimeWire identifies it as Call of Duty: Modern Warfare 2 (2009).

Is it safe to play games in a browser tab?

WebAssembly code runs in the browser's sandbox, but the page around it can still be risky. Close any page that asks you to download or install something, never enter passwords or payment details, never download game files from a stranger's link, and keep fan ports off work devices.

Sources

Keep Reading

Share

Ready to start scaling?

Tell us where growth is getting stuck. Allen will review your enquiry and reply within 24 hours. If there is a fit, we will arrange a free strategy call.