# flippage/gears-of-war-3-recomp architecture

> Architecture diagram of the GitHub repository flippage/gears-of-war-3-recomp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/flippage/gears-of-war-3-recomp
- Repository: https://github.com/flippage/gears-of-war-3-recomp

## Overview

This repository delivers an unofficial native PC recompilation of Gears of War 3, plus a Windows launcher for finding game files, installing updates/content, configuring settings, and starting the game. The principal player flow is to supply a game copy, let the launcher locate or extract it, then launch the native game; in-game options and rendering features form major runtime branches. Some runtime subsystems are documented in the README but their internal wiring was not sampled, so those relationships are documented at a high level rather than inferred between modules.

Main entry points: [`src/main.cpp`](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/main.cpp) (Native Game), [`launcher/pages_game.cpp`](https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/pages_game.cpp) (Play and Game Files), [`launcher/main.cpp`](https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/main.cpp) (Launcher UI), [`src/gow3_options_overlay.cpp`](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_overlay.cpp) (In-Game Options)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launcher["Launcher"]
  node_launcher_ui["Launcher UI<br/>[main.cpp]"]
  node_game_pages["Play and Game Files<br/>[pages_game.cpp]"]
  node_settings_pages["Settings Pages<br/>[pages_settings.cpp]"]
  node_release_update["Release Updates<br/>[update.cpp]"]
end

subgraph group_setup["Game Setup"]
  node_game_finder["Game and Package Finder<br/>[finder.cpp]"]
  node_disc_extract["Disc Extraction<br/>[xdvdfs.cpp]"]
  node_package_extract["Package Extraction<br/>[stfs.cpp]"]
  node_game_install["Game Installation<br/>[install.cpp]"]
  node_launch_choice["Build Selection"]
  node_launcher_state["Launcher State<br/>[state.cpp]"]
  node_settings_store["Settings Store<br/>[settings_store.cpp]"]
end

subgraph group_runtime["Game Runtime"]
  node_game_exe["Native Game<br/>[main.cpp]"]
  node_game_app["Game Application<br/>[gow3_app.h]"]
  node_rex_runtime["ReXGlue Runtime<br/>[rex_app.cpp]"]
  node_input_aim["Input and Mouse Aim<br/>[gow3_mouse_aim.cpp]"]
  node_language["Game Language<br/>[gow3_language.h]"]
  node_button_glyphs["Button Prompts"]
  node_game_patches["Community Patches"]
end

subgraph group_graphics["Rendering"]
  node_renderer["Game Renderer<br/>[gow3_renderer.cpp]"]
  node_widescreen["Widescreen and FOV"]
end

subgraph group_options["PC Options"]
  node_pc_options["In-Game Options"]
  node_options_catalog["Options Catalog"]
  node_options_actions["Option Actions"]
  node_options_model["Options Model"]
end

node_player(("Player"))

node_player -->|"opens"| node_launcher_ui
node_launcher_ui -->|"routes to"| node_game_pages
node_launcher_ui -->|"routes to"| node_settings_pages
node_launcher_ui -->|"starts"| node_release_update
node_game_pages -->|"searches with"| node_game_finder
node_game_pages -.->|"extracts with"| node_disc_extract
node_game_pages -.->|"installs packages with"| node_package_extract
node_game_pages -->|"installs through"| node_game_install
node_game_pages -->|"selects build via"| node_launch_choice
node_game_pages -->|"reads state"| node_launcher_state
node_settings_pages -->|"edits settings via"| node_settings_store
node_release_update -->|"uses installer"| node_game_install
node_player -->|"starts"| node_game_exe
node_game_exe -->|"enters"| node_game_app
node_game_app -.->|"runs on"| node_rex_runtime
node_game_exe -->|"renders through"| node_renderer
node_game_exe -->|"supports native mouse aim"| node_input_aim
node_game_exe -->|"supports language selection"| node_language
node_game_exe -->|"shows dynamic prompts"| node_button_glyphs
node_game_exe -->|"offers community patches"| node_game_patches
node_game_exe -->|"supports wide display"| node_widescreen
node_player -->|"opens"| node_pc_options
node_pc_options -->|"uses catalog"| node_options_catalog
node_pc_options -->|"uses actions"| node_options_actions
node_pc_options -->|"reads and updates"| node_options_model
node_settings_store -->|"builds model"| node_options_model
node_settings_pages -->|"uses catalog"| node_options_catalog

click node_launcher_ui "https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/main.cpp"
click node_game_pages "https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/pages_game.cpp"
click node_settings_pages "https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/pages_settings.cpp"
click node_release_update "https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/update.cpp"
click node_game_finder "https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/finder.cpp"
click node_disc_extract "https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/xdvdfs.cpp"
click node_package_extract "https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/stfs.cpp"
click node_game_install "https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/install.cpp"
click node_launch_choice "https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/launch_decision.cpp"
click node_launcher_state "https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/state.cpp"
click node_settings_store "https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/settings_store.cpp"
click node_game_exe "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/main.cpp"
click node_game_app "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_app.h"
click node_rex_runtime "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/sdk/rex_app.cpp"
click node_input_aim "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_mouse_aim.cpp"
click node_language "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_language.h"
click node_button_glyphs "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_button_glyphs.cpp"
click node_game_patches "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_game_patches.cpp"
click node_renderer "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_renderer.cpp"
click node_widescreen "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_widescreen.cpp"
click node_pc_options "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_overlay.cpp"
click node_options_catalog "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_catalog.cpp"
click node_options_actions "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_actions.cpp"
click node_options_model "https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_model.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_launcher_ui,node_game_pages,node_settings_pages,node_release_update toneBlue
class node_game_finder,node_disc_extract,node_package_extract,node_game_install,node_launch_choice,node_launcher_state,node_settings_store toneAmber
class node_game_exe,node_game_app,node_rex_runtime,node_input_aim,node_language,node_button_glyphs,node_game_patches toneMint
class node_renderer,node_widescreen toneRose
class node_pc_options,node_options_catalog,node_options_actions,node_options_model,node_player toneIndigo
```

## Components

### Launcher

- [Launcher UI](https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/main.cpp): `launcher/main.cpp`
- [Play and Game Files](https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/pages_game.cpp): `launcher/pages_game.cpp`
- [Settings Pages](https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/pages_settings.cpp): `launcher/pages_settings.cpp`
- [Release Updates](https://github.com/flippage/gears-of-war-3-recomp/blob/master/launcher/update.cpp): `launcher/update.cpp`

### Game Setup

- [Game and Package Finder](https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/finder.cpp): `setup/finder.cpp`
- [Disc Extraction](https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/xdvdfs.cpp): `setup/xdvdfs.cpp`
- [Package Extraction](https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/stfs.cpp): `setup/stfs.cpp`
- [Game Installation](https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/install.cpp): `setup/install.cpp`
- [Build Selection](https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/launch_decision.cpp): `setup/launch_decision.cpp`
- [Launcher State](https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/state.cpp): `setup/state.cpp`
- [Settings Store](https://github.com/flippage/gears-of-war-3-recomp/blob/master/setup/settings_store.cpp): `setup/settings_store.cpp`

### Game Runtime

- [Native Game](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/main.cpp): `src/main.cpp`
- [Game Application](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_app.h): `src/gow3_app.h`
- [ReXGlue Runtime](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/sdk/rex_app.cpp): `src/sdk/rex_app.cpp`
- [Input and Mouse Aim](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_mouse_aim.cpp): `src/gow3_mouse_aim.cpp`
- [Game Language](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_language.h): `src/gow3_language.h`
- [Button Prompts](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_button_glyphs.cpp): `src/gow3_button_glyphs.cpp`
- [Community Patches](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_game_patches.cpp): `src/gow3_game_patches.cpp`

### Rendering

- [Game Renderer](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_renderer.cpp): `src/gow3_renderer.cpp`
- [Widescreen and FOV](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_widescreen.cpp): `src/gow3_widescreen.cpp`

### PC Options

- [In-Game Options](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_overlay.cpp): `src/gow3_options_overlay.cpp`
- [Options Catalog](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_catalog.cpp): `src/gow3_options_catalog.cpp`
- [Option Actions](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_actions.cpp): `src/gow3_options_actions.cpp`
- [Options Model](https://github.com/flippage/gears-of-war-3-recomp/blob/master/src/gow3_options_model.cpp): `src/gow3_options_model.cpp`

### Other components

- **Player**

## Connections

- Player → Launcher UI: opens (evidence: `launcher/main.cpp`)
- Launcher UI → Play and Game Files: routes to (evidence: `launcher/main.cpp`)
- Launcher UI → Settings Pages: routes to (evidence: `launcher/main.cpp`)
- Launcher UI → Release Updates: starts (evidence: `launcher/main.cpp`)
- Play and Game Files → Game and Package Finder: searches with (evidence: `launcher/pages_game.cpp`)
- Play and Game Files → Disc Extraction: extracts with
- Play and Game Files → Package Extraction: installs packages with
- Play and Game Files → Game Installation: installs through (evidence: `launcher/pages_game.cpp`)
- Play and Game Files → Build Selection: selects build via (evidence: `launcher/pages_game.cpp`)
- Play and Game Files → Launcher State: reads state (evidence: `launcher/pages_game.cpp`)
- Settings Pages → Settings Store: edits settings via (evidence: `launcher/pages_settings.cpp`)
- Release Updates → Game Installation: uses installer (evidence: `launcher/update.cpp`)
- Player → Native Game: starts (evidence: `README.md`)
- Native Game → Game Application: enters (evidence: `src/main.cpp`)
- Game Application → ReXGlue Runtime: runs on
- Native Game → Game Renderer: renders through (evidence: `README.md`)
- Native Game → Input and Mouse Aim: supports native mouse aim (evidence: `README.md`)
- Native Game → Game Language: supports language selection (evidence: `README.md`)
- Native Game → Button Prompts: shows dynamic prompts (evidence: `README.md`)
- Native Game → Community Patches: offers community patches (evidence: `README.md`)
- Native Game → Widescreen and FOV: supports wide display (evidence: `README.md`)
- Player → In-Game Options: opens (evidence: `README.md`)
- In-Game Options → Options Catalog: uses catalog (evidence: `src/gow3_options_overlay.cpp`)
- In-Game Options → Option Actions: uses actions (evidence: `src/gow3_options_overlay.cpp`)
- In-Game Options → Options Model: reads and updates (evidence: `src/gow3_options_overlay.cpp`)
- Settings Store → Options Model: builds model
- Settings Pages → Options Catalog: uses catalog (evidence: `launcher/pages_settings.cpp`)
