The picture in one sentence
Find the game in the library → import its WHDLoad drawer into your existing games slave WHDLoad.hdf on quo → pack a new dated slave → ship to the card. Keep the minted Workbench master (guide / build_mister_image.sh) for RTG, Scalos, and colour icons; only refresh it when system software or RomIcons on C: change.
Source new titles from Games_HDF per-game hardfiles when you can — unpack the KillingGameShow/ drawer into the cumulative tree, not a lone boot ADF.
If you are doing it by hand
- 01 Sign in at amiga.eyesense.ai/library. Search the game title (spaces are fine: “Killing Game Show”).
- 02 First look for Games_HDF and a row whose name ends in .hdf (Ultimate Amiga / RetroPie tree inside a .img on Apps). Example: Killing Game Show.hdf — not KGS.ADF from the WinUAE folder.
- 03 If there is no HDF, look for Games_WHDLoad (or AGA / CD32 variants). Rows named Disk.1, Disk.2, … belong to that install; the .slave sits beside them inside the image.
- 04 On quo: unpack the card’s WHDLoad.hdf to a temp dir, then cp -a "$stage/WHDLoad/." build/WHDLoad-games-cumulative/ (see Cumulative games slave below).
- 05 For each new title: import_games_hdf_drawer.sh with the library Games_HDF file. pack_directory_hdf.sh → WHDLoad-YYYY-MM-DD.hdf. Ship with a new filename.
- 06 F12: primary master = A1200e-….hdf (Workbench mint). Primary slave = the new WHDLoad-….hdf. Launch slaves from that volume.
Live ADF → RawDIC in WinUAE is the second drive rig, not the default MiSTer path when Games_HDF already has the title. For floppy legibility on that rig, see the media index note.
Cumulative games slave (the recipe we ship)
You keep two hardfiles on the card. Primary master = Workbench mint from build_mister_image.sh (RTG, Scalos, NewIcons, C:WHDLoad — see the guide ledger). Primary slave = one non-bootable WHDLoad-YYYY-MM-DD.hdf that holds all game drawers. Adding a title never remints Workbench unless you change system software or RomIcons on the boot disk.
On quo (~/amiga-utils), with xdftool on PATH (pip install amitools):
- A Pull the current slave from the board: scp root@mister:/media/fat/games/Amiga/WHDLoad.hdf /tmp/WHDLoad-from-mister.hdf (or the dated name you last shipped).
- B Unpack into a staging directory, then copy the volume tree — Minimig HDFs unpack with the FFS files under WHDLoad/, not at the staging root:
stage=$(mktemp -d /tmp/whd-unpack.XXXXXX) work=build/WHDLoad-games-cumulative rm -rf "$work" && mkdir -p "$work" xdftool /tmp/WHDLoad-from-mister.hdf unpack "$stage" cp -a "$stage/WHDLoad/." "$work/" rm -rf "$stage"
- C For each new title: find a Games_HDF row in the library (or materialize by id on eyesense). Stage the per-game .hdf under build/mister-games/. Run scripts/import_games_hdf_drawer.sh — it unpacks the RetroPi hardfile and copies the folder that contains a *.slave into $work (pass the drawer name if the volume label has spaces, e.g. KillingGameShow, Turrican2, SecretOfMonkeyIsland).
- D Pack a new dated slave (never overwrite the name the core has mounted):
./scripts/pack_directory_hdf.sh "$work" build/mister/WHDLoad-$(date +%F)c.hdf WHDLoad
- E Ship: copy_to_mister.sh (or scp with SSHPASS) to /media/fat/games/Amiga/WHDLoad-….hdf. F12 → primary slave = that file; master stays A1200e-….hdf.
Do not pack the staging root if it only contains WHDLoad.blkdev metadata — always cp -a "$stage/WHDLoad/." "$work/" first.
Batch that shipped 12 October 2026
Slave WHDLoad-2026-10-12c.hdf on the card — verified on hardware. Drawers on the volume:
| Title | Folder / slave | Source |
|---|---|---|
| State of the Art demo | StateOfTheArt Install → stateoftheart.slave | Already on prior WHDLoad.hdf (NAS prebuilt) |
| Great Giana Sisters | GreatGianaSisters | Prior slave + RomIcons on drawer |
| Lemmings | LemmingsFiles | Prior slave |
| Killing Game Show | KillingGameShow | Library Games_HDF (id 16719) |
| Turrican II | Turrican2 | Library Turrican 2.hdf (id 17639) |
| Secret of Monkey Island | SecretOfMonkeyIsland | Library (id 14758) |
| Pinball Fantasies | PinballFntsies (RetroPi spelling) | Library ECS pack (id 16033) |
Helper script lives in amiga-utils as scripts/import_games_hdf_drawer.sh. Agents: skill whdload-mister in the PaperIQ monorepo mirrors this flow.
If an agent is helping you
We added an MCP connector on the same host as the library: a small OAuth API that ChatGPT, Claude, VS Code, or Cursor can call after you sign in once. It exposes three read-only tools:
| Tool | What it does |
|---|---|
| search_disks | Search title or folder name. Prefer hits under Games_HDF (.hdf). Use whdload_only: true for Games_WHDLoad* folder installs. |
| get_disk | One row by id, plus a download_url for staging. |
| get_index_status | How fresh the index is and how many disks were found per location. |
Setup for humans is on the connect page. Server URL:
https://amiga.eyesense.ai/library/mcp
In Cursor, add that URL under amiga-library in your MCP config (see the example in our monorepo’s .cursor/mcp.json.example), restart MCP, and approve OAuth in the browser. After that, ask the agent to “find Killing Game Show in the library” and expect a Games_HDF .hdf before it reaches for an ADF or WinUAE.
The agent should end with: get_disk → import drawer into WHDLoad-games-cumulative → pack_directory_hdf.sh → copy_to_mister.sh. Workbench colour icons stay on the build_mister_image.sh disk; see skill mister-image-builder when that needs a remint.
What is automated vs what stays on the couch
- Automated
Search
Remember which ISO held the RetroPie ADF tree.
Library rebuild walks W:\Amiga, ISO9660, then ext4 inside .img. MCP exposes the same SQLite index to agents.
- Automated
Extract
Pull one inner disk without mounting the whole image on your laptop.
Broker + cache on the eyesense host; /materialize?id= then copy from /cache/ to quo.
- Automated
Merge
Add drawers without losing Giana, Lemmings, or SOTA.
Unpack card slave → WHDLoad/ tree → import_games_hdf_drawer.sh per title → pack_directory_hdf.sh.
- Automated
Ship
Copy a new HDF or folder to the card.
copy_to_mister.sh over ssh, new filename only, existence check before write.
- By hand
OSD
Tell the core which HDF is master and slave.
F12 once per new games volume. No remote API into the menu.
- By hand
Play
Confirm on the television.
Still the honest test. AmiPilot on the board is future work; WinUAE proves installs first.
Earlier notes: Disks inside the images, A second drive, MiSTer, Workbench on a MiSTer (build_mister_image.sh), WHDLoad media index. Library MCP help: amiga.eyesense.ai/library/connect. Cursor agents: skill mister-image-builder (boot disk) and whdload-mister (this flow).