# GameFrame

An agentic framework for reverse engineering games.

Understand a game from the copy you own, and rebuild it exactly. Its playbook of skills and agents runs inside your coding agent. Its toolkit of tested tools, around Ghidra, Unicorn and REA, checks every result against the original.

- **[Game preservation](https://tanepiper.github.io/game-frame/preservation/index.md)**: Many older games no longer run on current computers. Some are still on sale but have not been updated in years. This method works from the copy you bought, and records how the game works as it goes.
- **[A taxonomy of games](https://tanepiper.github.io/game-frame/games/index.md)**: Who drives, the game or the player? Ten families of games, each with its rule set, reference games and projects to learn from, and the systems they share.
- **[Observe the original](https://tanepiper.github.io/game-frame/observe/index.md)**: Run the game where you can watch, drive and capture it. Every kind of input, every screen, and an object model with entry points for tests and agents.
- **[Skills for each step](https://tanepiper.github.io/game-frame/skills/re-start.md)**: Inventory, observe, decompile, trace, decode formats, emulate, reimplement, verify, land. Each skill is a complete guide an agent can follow alone.
- **[Measured against the original](https://tanepiper.github.io/game-frame/skills/re-emulate.md)**: Original functions run under emulation for ground truth, and the reimplementation must match their results bit for bit.
- **[Case studies](https://tanepiper.github.io/game-frame/case-studies/index.md)**: Un-Banished, Tyrian 2000 and Frontier Elite II, and the tooling each built to capture its game.
- **[Within the law](https://tanepiper.github.io/game-frame/legal.md)**: You need your own copy of the game. GameFrame ships no game files. Each project writes new code from documented behaviour.

## The method

Each step has a skill. The steps run in order. When a check fails, you go back to the trace step.

![The method as a loop. Inventory, observe, decompile, trace, format, emulate, reimplement, verify and land, each with its skill. When a check fails, the work goes back to the trace.](https://github.com/tanepiper/game-frame/blob/main/docs/assets/method-loop.svg)

Agents can also read this site as plain text. [llms.txt](https://tanepiper.github.io/game-frame/llms.txt) lists every
page with a short description, and [llms-full.txt](https://tanepiper.github.io/game-frame/llms-full.txt) holds all
of them in one file. Each page has a Markdown copy at the same address with `.md` at the end,
such as [/games/interaction.md](https://tanepiper.github.io/game-frame/games/interaction.md).
