diff --git a/README.md b/README.md
index 89df2d1..63bdf5c 100644
--- a/README.md
+++ b/README.md
@@ -254,6 +254,26 @@ and **EXTERNAL** (`/mnt`) may be empty.
##
Start a game from a home screen forwarder
+### Make a tile in the WebUI
+
+The WebUI's **Game Forwarder** page makes home screen tiles that each open one game in
+RetroArch. Choose a system, then one of its games from your library, the name the home screen
+shows, the core (the game's own is chosen for you) and a picture: its box art, 3D box, logo,
+cartridge or disc, screenshot, title screen or fan art, filling the square or fitted in it, with
+the system's icon in the bottom right corner if you like. A picture the game has no file for
+yet is greyed out; **Download Media** can find it. Choose **Create tile**, then close
+RetroArch: the tile appears on the home screen. A new name or picture, and a tile you delete,
+reach the home screen the same way, once RetroArch closes.
+
+A tile is a small title of its own, `PPSA99170` to `PPSA99269` in `/data/homebrew`, which
+[ShadowMountPlus](https://github.com/drakmor/ShadowMountPlus) 1.7 or later installs. The page
+needs it loaded with its API on (the default), and says so when it does not answer.
+ShadowMountPlus installs and removes nothing while a game runs, and RetroArch counts as one:
+that is why changes wait for RetroArch to close. Delete tiles from the page, which also removes
+their folder. A tile opens a game in the content folder or on a USB or extended storage drive.
+
+### Make a forwarder by hand
+
A forwarder is a small app with its own home screen tile that launches `PPSA99169` with
launch arguments. The title then starts that game in RetroArch with the core given, instead of
opening the picker or a frontend.
diff --git a/evidence/game-forwarder-webui/capture.json b/evidence/game-forwarder-webui/capture.json
new file mode 100644
index 0000000..598365e
--- /dev/null
+++ b/evidence/game-forwarder-webui/capture.json
@@ -0,0 +1,47 @@
+{
+ "step": "game-forwarder-webui",
+ "recorded": "2026-10-18T11:44:54Z",
+ "console_run": "",
+ "revision": "8a31a1f (routes, build 9adce7a0) and 2512f39 (page, build 57fc257a)",
+ "command": "the WebUI at http://:6769: its /api/forwarders routes from the PC, then the Game Forwarder page in a browser; RetroArch and the tiles started and closed through the control payload",
+ "raw_capture": "klog/game-forwarder-webui/record.txt",
+ "raw_lines": 35,
+ "raw_bytes": 3143,
+ "lines": [
+ "==> the WebUI at http://:6769: its /api/forwarders routes from the PC (step 2), then the Game Forwarder page in a browser (step 4); RetroArch and the tiles started and closed through the control payload",
+ "Console: the owner's base PS5, firmware 13.40, ShadowMountPlus 1.7-beta5fix1, 2026-10-18. Builds 9adce7a0 (8a31a1f, the routes) and 57fc257a (2512f39, the page). Game names are masked.",
+ "-- the routes (8a31a1f)",
+ "GET /api/forwarders: shadowmount answers, version 1.7-beta5fix1; PPSA99170 installed (the spike's tile)",
+ "POST /api/forwarders (a SNES game, core snes9x): 201 {'id': 'PPSA99171'}",
+ "PPSA99171: eboot.bin, forward.txt, launch.elf 110832 bytes, sce_module/libc.prx, sce_sys/icon0.png, sce_sys/param.json",
+ "param.json: PPSA99171 99171 UP9000-PPSA99171_00-FORWARDER0099171",
+ "manual.lst: /data/homebrew/PPSA99170, /data/homebrew/PPSA99171",
+ "RetroArch closed -> ShadowMountPlus: NOTIFY: installed game PPSA99171",
+ "tile PPSA99171: launch payload 110832 bytes, 110832 sent to 127.0.0.1:9021 (errno 0)",
+ "launch PPSA99171: 5 argument(s) from forward.txt",
+ "forwarder: /app0/content/snes/ with /app0/cores/snes9x_libretro.so, closing after it",
+ "PPSA99171 renamed and given a new icon: state updating; PPSA99170 deleted: {\"state\":\"pending\"}, manual list empty",
+ "RetroArch closed -> daemon: forwarder PPSA99170: removed",
+ "RetroArch closed -> daemon: forwarder PPSA99171: installed again with its new name or icon",
+ "/user/appmeta/PPSA99171 titleName: Forwarder renamed; icon0.png the new one (first pixel 20 60 d0)",
+ "/user/appmeta/PPSA99170 and /data/homebrew/PPSA99170: 550 No such file or directory",
+ "-- the page (2512f39)",
+ "page: 33 systems in the picker, each with its icon",
+ "page: a SNES game, picture 3D box (fitted): Tile created. It appears on the home screen once RetroArch closes. (PPSA99170)",
+ "page: a second waiting tile, made by a repeated test click (PPSA99172): Tile removed.",
+ "page: Sega - Mega Drive - Genesis, a game, picture logo (fitted), system icon in the corner, core genesis_plus_gx prefilled: Saving... then Tile created (PPSA99172 again)",
+ "page: PPSA99171 (installed) deleted: The tile leaves the home screen once RetroArch closes.",
+ "API: PPSA99170 waiting, PPSA99171 removing, PPSA99172 waiting; manual.lst /data/homebrew/PPSA99170, /data/homebrew/PPSA99172",
+ "RetroArch closed -> ShadowMountPlus: NOTIFY: installed game PPSA99170; NOTIFY: installed game PPSA99172",
+ "RetroArch closed -> daemon: forwarder PPSA99170: launch.elf brought up to this build",
+ "RetroArch closed -> daemon: forwarder PPSA99171: removed",
+ "ShadowMountPlus: [API] uninstall requested: title=PPSA99171",
+ "/user/appmeta/PPSA99171, /user/app/PPSA99171 and /data/homebrew/PPSA99171: 550 No such file or directory",
+ "/user/appmeta/PPSA99170 icon0.png: 408809 bytes, 512x512, the tile's own: True",
+ "/user/appmeta/PPSA99172 icon0.png: 71761 bytes, 512x512, the tile's own: True",
+ "tile PPSA99172: launch payload 110832 bytes, 110832 sent to 127.0.0.1:9021 (errno 0)",
+ "launch PPSA99172: 5 argument(s) from forward.txt",
+ "forwarder: /app0/content/genesis/ with /app0/cores/genesis_plus_gx_libretro.so, closing after it",
+ "Left on the console: PPSA99170 and PPSA99172 on the home screen, made by the page."
+ ]
+}
diff --git a/evidence/game-forwarder-webui/expectation.json b/evidence/game-forwarder-webui/expectation.json
new file mode 100644
index 0000000..2535b38
--- /dev/null
+++ b/evidence/game-forwarder-webui/expectation.json
@@ -0,0 +1,22 @@
+{
+ "step": "game-forwarder-webui",
+ "note": "Game Forwarder on the console: tiles made, renamed, given a picture and deleted through the WebUI; ShadowMountPlus installs and uninstalls them once RetroArch closes, the WebUI's daemon finishes what waited; a tile opens its game in RetroArch with its core and closes after it; the home screen shows the picture the page drew, the system's icon in its corner.",
+ "must_contain": [
+ "shadowmount answers, version 1.7-beta5fix1",
+ "NOTIFY: installed game PPSA99171",
+ "launch PPSA99171: 5 argument(s) from forward.txt",
+ "forwarder: /app0/content/snes/ with /app0/cores/snes9x_libretro.so, closing after it",
+ "daemon: forwarder PPSA99170: removed",
+ "forwarder PPSA99171: installed again with its new name or icon",
+ "titleName: Forwarder renamed",
+ "33 systems in the picker, each with its icon",
+ "Tile created. It appears on the home screen once RetroArch closes.",
+ "The tile leaves the home screen once RetroArch closes.",
+ "daemon: forwarder PPSA99171: removed",
+ "[API] uninstall requested: title=PPSA99171",
+ "icon0.png: 71761 bytes, 512x512, the tile's own: True",
+ "forwarder: /app0/content/genesis/ with /app0/cores/genesis_plus_gx_libretro.so, closing after it"
+ ],
+ "must_not_contain": [],
+ "human_check": "The owner opens a tile on the home screen while RetroArch is open: the console asks to close RetroArch first, then the game starts. Not checked here: the control payload cannot press the home screen."
+}