Tap, click, or press a key on the canvas to start browser audio.
# Handmade Hero Day 025

This example is a Flywheel version of the engine/platform state around Handmade Hero Day 025. It is not a line-by-line port; it is a parity check that the current Flywheel API can support the same kind of game loop and platform services.

It demonstrates:

- CPU pixel-buffer drawing with the classic weird gradient.
- Direct pixel writes for a Handmade-style software rendering path.
- Persistent game state stored in `Game_Memory`.
- Normalized controller input from keyboard or gamepad.
- Continuous generated audio through `Audio_Ring_Buffer`.
- Input recording and looped playback.
- Linux game-code hot reload.
- A small alpha-blended HUD showing bindings and replay status.

## Run

```sh
just run example=handmade_hero_day_025 platform=linux_wayland
just run example=handmade_hero_day_025 platform=linux_x11
```

For hot reload:

```sh
just run-hot-watch example=handmade_hero_day_025 platform=linux_wayland
```

## Controls

- Move: `WASD`, arrow keys, or left stick.
- Pitch tone: right stick Y.
- Jump test: `X` or gamepad West.
- Record input: `F5`.
- Start or stop looped playback: `F6`.
- Reset replay session: `F8`.

The replay snapshot covers Flywheel-managed `Game_Memory`; it does not capture platform state such as the audio device or loaded shared-library handles. Hot reload keeps the existing game memory alive, so code changes can be tested against the current running state.