# whitemsf/angry-birds-arm64 architecture

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

- Interactive diagram: https://gitdiagram.com/whitemsf/angry-birds-arm64
- Repository: https://github.com/whitemsf/angry-birds-arm64

## Overview

This repository reconstructs Angry Birds 1.4.2 as an ARM64 Android game runtime, preserving its original Lua gameplay and locally supplied assets while replacing the original ARMv7 native services. The principal flow is launching the game on Android, loading game logic and data, running gameplay through physics and native-facing systems, and presenting the result. The Windows Builder Preview is a separate user-facing route from a verified local APK to an ARM64 APK. The runtime source is largely unsampled, so capability nodes use the documented Stage24 entry-point path; edges are limited to relationships stated in the README or shown by excerpts.

Main entry points: [`stage24_live_surface.cpp`](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp) (Stage24 Runtime), [`tools/windows_builder.py`](https://github.com/whitemsf/angry-birds-arm64/blob/main/tools/windows_builder.py) (Windows Builder), [`build.py`](https://github.com/whitemsf/angry-birds-arm64/blob/main/build.py) (Build Orchestrator), [`src/runtime/presentation/presentation_geometry.cpp`](https://github.com/whitemsf/angry-birds-arm64/blob/main/src/runtime/presentation/presentation_geometry.cpp) (Presentation Geometry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Android Runtime"]
  node_runtime_entry["Stage24 Runtime"]
  node_lua_logic["Original Lua Logic"]
  node_game_data[("Local Game Data")]
end

subgraph group_gameplay["Gameplay Systems"]
  node_input["Input"]
  node_physics["Physics Bridge"]
  node_progression["Progression"]
  node_menus["Menus"]
end

subgraph group_presentation["Presentation"]
  node_rendering["Rendering"]
  node_geometry["Presentation Geometry"]
end

subgraph group_services["Native Services"]
  node_audio["Audio"]
  node_persistence[("Persistence")]
  node_lifecycle["Android Lifecycle"]
end

subgraph group_builder["Windows Builder"]
  node_windows_builder["Windows Builder<br/>[windows_builder.py]"]
  node_builder_core["APK Validation"]
  node_build_orchestrator["Build Orchestrator<br/>[build.py]"]
end

node_player(("Game Player"))
node_android{{"Android Device"}}
node_apk_user(("APK Provider"))
node_arm64_apk["ARM64 APK"]

node_player -->|"launches"| node_android
node_android -->|"runs"| node_runtime_entry
node_runtime_entry -->|"runs"| node_lua_logic
node_lua_logic -->|"uses"| node_game_data
node_runtime_entry -->|"reconstructs"| node_input
node_runtime_entry -->|"reconstructs"| node_physics
node_runtime_entry -->|"reconstructs"| node_progression
node_runtime_entry -->|"reconstructs"| node_menus
node_runtime_entry -->|"reconstructs"| node_rendering
node_rendering -->|"resolves geometry"| node_geometry
node_runtime_entry -->|"reconstructs"| node_audio
node_runtime_entry -->|"reconstructs"| node_persistence
node_runtime_entry -->|"reconstructs"| node_lifecycle
node_apk_user -->|"supplies APK"| node_windows_builder
node_windows_builder -->|"validates APK"| node_builder_core
node_windows_builder -->|"invokes build"| node_build_orchestrator
node_build_orchestrator -->|"produces package"| node_arm64_apk

click node_runtime_entry "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_lua_logic "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_input "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_physics "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_progression "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_menus "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_rendering "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_geometry "https://github.com/whitemsf/angry-birds-arm64/blob/main/src/runtime/presentation/presentation_geometry.cpp"
click node_audio "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_persistence "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_lifecycle "https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp"
click node_windows_builder "https://github.com/whitemsf/angry-birds-arm64/blob/main/tools/windows_builder.py"
click node_builder_core "https://github.com/whitemsf/angry-birds-arm64/blob/main/tools/windows_builder_core.py"
click node_build_orchestrator "https://github.com/whitemsf/angry-birds-arm64/blob/main/build.py"

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_runtime_entry,node_lua_logic,node_game_data toneBlue
class node_input,node_physics,node_progression,node_menus toneAmber
class node_rendering,node_geometry toneMint
class node_audio,node_persistence,node_lifecycle toneRose
class node_windows_builder,node_builder_core,node_build_orchestrator,node_player,node_android,node_apk_user,node_arm64_apk toneIndigo
```

## Components

### Android Runtime

- [Stage24 Runtime](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- [Original Lua Logic](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- **Local Game Data**

### Gameplay Systems

- [Input](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- [Physics Bridge](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- [Progression](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- [Menus](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`

### Presentation

- [Rendering](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- [Presentation Geometry](https://github.com/whitemsf/angry-birds-arm64/blob/main/src/runtime/presentation/presentation_geometry.cpp): `src/runtime/presentation/presentation_geometry.cpp`

### Native Services

- [Audio](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- [Persistence](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`
- [Android Lifecycle](https://github.com/whitemsf/angry-birds-arm64/blob/main/stage24_live_surface.cpp): `stage24_live_surface.cpp`

### Windows Builder

- [Windows Builder](https://github.com/whitemsf/angry-birds-arm64/blob/main/tools/windows_builder.py): `tools/windows_builder.py`
- [APK Validation](https://github.com/whitemsf/angry-birds-arm64/blob/main/tools/windows_builder_core.py): `tools/windows_builder_core.py`
- [Build Orchestrator](https://github.com/whitemsf/angry-birds-arm64/blob/main/build.py): `build.py`

### Other components

- **Game Player**
- **Android Device**
- **APK Provider**
- **ARM64 APK**

## Connections

- Game Player → Android Device: launches (evidence: `README.md`)
- Android Device → Stage24 Runtime: runs (evidence: `README.md`)
- Stage24 Runtime → Original Lua Logic: runs (evidence: `README.md`)
- Original Lua Logic → Local Game Data: uses (evidence: `README.md`)
- Stage24 Runtime → Input: reconstructs (evidence: `README.md`)
- Stage24 Runtime → Physics Bridge: reconstructs (evidence: `README.md`)
- Stage24 Runtime → Progression: reconstructs (evidence: `README.md`)
- Stage24 Runtime → Menus: reconstructs (evidence: `README.md`)
- Stage24 Runtime → Rendering: reconstructs (evidence: `README.md`)
- Rendering → Presentation Geometry: resolves geometry (evidence: `src/runtime/presentation/presentation_geometry.cpp`)
- Stage24 Runtime → Audio: reconstructs (evidence: `README.md`)
- Stage24 Runtime → Persistence: reconstructs (evidence: `README.md`)
- Stage24 Runtime → Android Lifecycle: reconstructs (evidence: `README.md`)
- APK Provider → Windows Builder: supplies APK (evidence: `README.md`)
- Windows Builder → APK Validation: validates APK (evidence: `tools/windows_builder.py`)
- Windows Builder → Build Orchestrator: invokes build (evidence: `tools/windows_builder.py`)
- Build Orchestrator → ARM64 APK: produces package (evidence: `README.md`)
