# Documentation

GameFrame is an agentic framework for reverse engineering games. Its playbook of skills and agents runs inside your coding agent. Its toolkit of tested tools checks every result against the original.

These pages cover reverse engineering games, apart from the
step-by-step skills (in `.claude/skills/`, listed in the [README](https://tanepiper.github.io/game-frame/overview.md#skills)). Start with the kind
of game you have, then how to observe it, then the reference pages as you need them.

The website is built from these files where they are (see [site/README.md](https://github.com/tanepiper/game-frame/blob/main/site/README.md)):
the order of this page and of each folder's `README.md` is the order of the site's menu.

## Game preservation

- [Game preservation](https://tanepiper.github.io/game-frame/preservation/index.md): why older games disappear, what GameFrame
  does to keep them playable, the law, AI, and the work it builds on.

## Kinds of games

- [A taxonomy of games](https://tanepiper.github.io/game-frame/games/index.md): who drives, the axes, the families, the
  connections between them.

## Platforms

- [Home computers and the PC](https://tanepiper.github.io/game-frame/computers/index.md): the CPU families, the 8-bit and 16-bit
  home computers, the PC eras and the Mac, with the tools and timing for each.
- [Console games](https://tanepiper.github.io/game-frame/consoles/index.md): the home consoles by generation, the tools, the routes
  to a port, and matching decompilation.
- [Handhelds](https://tanepiper.github.io/game-frame/handhelds/index.md): from the Game & Watch and the Game Boy family to the
  Switch, the Steam Deck and phone games, with saves, clocks, links and LCD behaviour.
- [Arcade](https://tanepiper.github.io/game-frame/arcade/index.md): the arcade boards, with MAME's source as the reference for each board's
  clocks, encryption and refresh rate.

## Technology of the era

- [Hardware of the era](https://tanepiper.github.io/game-frame/hardware/index.md): CPUs and floating point, 2D graphics, 3D
  accelerators, sound, memory, storage, input and networks.
- [Software engines and middleware](https://tanepiper.github.io/game-frame/engines/index.md): recognising an engine, the id and
  Build engines, Unreal, other licensed engines, studio engines, middleware.

## Crates

- [Crates](https://tanepiper.github.io/game-frame/crates/index.md): clean Rust implementations of chips and runtimes old games
  need, such as the OPL2 FM chip, a WMA decoder, the MSVC maths functions and Turbo Pascal's
  `Real`.

## Observing the original

- [Observing the original](https://tanepiper.github.io/game-frame/observe/index.md): running the original, inputs, the interface,
  an object model of the game.

## Agent teams

- [Agent teams](https://tanepiper.github.io/game-frame/teams/index.md): how the agents work together, the hand-off, where the data
  lives, and seven teams with diagrams.

## Working on a project

- [Working on a project](https://tanepiper.github.io/game-frame/working/index.md): how agents work well on this, and how to write
  findings.

## Reference

- [Game patterns](https://tanepiper.github.io/game-frame/game-patterns.md): the parts most games are built from, as they appear in
  machine code.
- [DOS games](https://tanepiper.github.io/game-frame/dos.md): 16-bit programs, Borland debug symbols, the DOS emulators.
- [Calling conventions and floating point](https://tanepiper.github.io/game-frame/abi.md): the details a bit-exact port must copy.
- [What a project can ship](https://tanepiper.github.io/game-frame/outputs.md): documents, a website, programs, releases.
- [Setup](https://tanepiper.github.io/game-frame/setup.md): the toolchain.
- [Legal](https://tanepiper.github.io/game-frame/legal.md): working within the law and with respect for the original.

## Case studies

- [Case studies](https://tanepiper.github.io/game-frame/case-studies/index.md): three reimplementations and the tooling they built.
