You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: make the runbook resume-ready after the standalone session
- ManualTests.md resume checklist: current batch-B guest state (64 ROM systems, all standalone emulators + BIOS/keys), BUG-14/15 committed but not redeployed, remaining work narrowed to the full 33-scenario pass, the two live re-verifications and the unexercised manual items; item 9 now states the tree is clean through d181805.
- docs/gui-test-harness.md: harness file table gains vm-systems2.json/seed-batch2.py/fix-arrays.py/launch-one.py, the coverage map and the resume paragraph record the standalone session outcome.
- docs/manual-tests.md: the Linux/macOS launch pipeline item now records the verified CHD->ISO conversions (byte-identical to chdman, temp ISO cleaned up, Xbox boots), the DOSBox temp conf, and the no-config-injection confirmation across the new emulator launches.
Copy file name to clipboardExpand all lines: docs/gui-test-harness.md
+21-6Lines changed: 21 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,6 +113,9 @@ tar -czf D:\payload\payload-annot.tar.gz -C D:\payload\linux-x64-annot .
113
113
|`atspi_nav.py`| AT-SPI navigation library (deployed to `/home/vm/vision/`); `Nav` class + `Entry`; also a CLI (`tree`, `ready`, `dump`, `selftest`) |~23 KB |
114
114
|`fixture.py`| Seeds/clears the guest unified DB and files (deployed to `/home/vm/vision/`); commands `seed`, `arcade`, `empty`, `clean-state`, `dump`|~8 KB |
115
115
|`ask_vision.py`| One-shot OpenRouter vision call: `python ask_vision.py <png> "<prompt>" [--model M] [--max-tokens N] [--temperature T]`; reads `OPENROUTER_API_KEY`; prints the model text plus a `--- usage ---` JSON line |~3 KB |
116
+
|`vm-systems.json` + `seed-batch.py`| First emulator-matrix fixture (36 Easy-Mode systems, manifest emulator configs); `seed-batch.py <names...>` keeps the base systems + the requested batch |~30 KB |
117
+
|`vm-systems2.json` + `seed-batch2.py`| Standalone/CD fixture (25 manifest systems: PS1/PS2/PS3/DC/Saturn/WiiU/3DS/PSP/Xbox/DOS/Model 3/...); same batch semantics, adds `fix-arrays.py` to normalize scalar format strings the strict deserializer skips |~20 KB |
118
+
|`launch-one.py`| App-driven single-system launch (`launch-one.py <System> "<Game>" [wait]`): maximize, open system, letter bar, AT-SPI card right-click (coordinates fallback), DOSBox picker handling, window/process evidence, screenshot, cleanup — run one system per fresh app start |~4 KB |
116
119
117
120
The scripts resolve their own locations from `$PSScriptRoot`, so the checkout can live anywhere.
118
121
Only the guest-side paths (§4) and the VM IP/credentials need adapting. `shots\` and `reports\` are
Copy file name to clipboardExpand all lines: docs/manual-tests.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,7 +119,7 @@ Common flow for **each** emulator:
119
119
-[ ] Add a real ROM + point the launcher at a real emulator install; launch with "Show settings before launch" **off** → the emulator's own config file is rewritten with SimpleLauncher's settings and the game boots.
120
120
-[ ] Launch with "Show settings before launch" **on** → the injection dialog appears; "Run" launches, "Cancel" does not launch.
121
121
-[ ] Wrong/missing emulator path → the game still attempts launch without crashing; check the Debug log for injection errors.
122
-
-[X]**Linux/macOS (Avalonia)** — the handlers are not registered and the "Inject emulator config" menu is hidden: launching any game writes no Windows-style config and opens no injection dialog (LB-08); check that no files appear under `~/Documents` or next to the emulator binary. (Verified 2026-09-26: launched real PSP/PPSSPP and Dreamcast/Redream games; no injection dialog, no Windows-style config next to the emulator binaries.)
122
+
-[X]**Linux/macOS (Avalonia)** — the handlers are not registered and the "Inject emulator config" menu is hidden: launching any game writes no Windows-style config and opens no injection dialog (LB-08); check that no files appear under `~/Documents` or next to the emulator binary. (Verified 2026-09-26: launched real PSP/PPSSPP and Dreamcast/Redream games; no injection dialog, no Windows-style config next to the emulator binaries. Re-confirmed 2026-09-27 across DuckStation/PCSX2/RPCS3/Redream/Ymir/Azahar/Cemu/xemu/PPSSPP/DOSBox/Supermodel launches — the app only passes the ROM path/parameters; every emulator's config was the one prepared by hand for its Linux data dir.)
@@ -180,7 +180,7 @@ Shared flow per emulator (sample 3–4 in depth, then spot-check the rest):
180
180
-[ ]**ISO mount** (`MountIsoFiles`) — PS3 ISO with `EBOOT.BIN` launches and the drive is dismounted after exit; ISO without EBOOT.BIN → error box + dismount; PowerShell execution-policy restricted → `UnabletomountIsOfile` box; 30 s timeout kill.
181
181
-[ ]**XISO mount** (`MountXisoDrive`, `MountXisoFiles`) — original-Xbox XISO launches via Dokan; virtual drive letter (picked Z→D) is released after exit; missing `tools\SimpleXisoDrive\*.exe` → mount-error box; no free drive letter → error box; wrong XISO layout → timeout + error, no leaked process.
182
182
-[ ]**External tools** (`ExternalToolLauncherService`) — run each tool from the UI: Create Batch Files (PS3/ScummVM/Windows/Xbox 360 XBLA), Batch Convert ISO→XISO, →CHD, →Compressed, →RVZ, Rom Validator, Find Rom Cover, Retro Game Cover Downloader — launches with correct folder/args; missing tool → "not found" box; UAC cancel (error 1223) → "canceled" box; corrupt exe → PE check rejects it.
183
-
-[ ]**Linux/macOS launch pipeline (Avalonia)** — ZIP/7Z/RAR for ScummVM/RPCS3/XBLA extract to `%TEMP%/SimpleLauncher/ZipLaunch/<guid>` (upper-case ROM/EXE names found, Windows-authored `DIR\FILE.BIN` entries land in a real subfolder) and the temp folder is deleted after exit; a `.chd` for a non-DOSBox system is converted with CHDSharp and every temp file (including multi-track bins) is cleaned up (LB-19); a DOSBox `.iso`/`.chd` is `imgmount`ed directly or converted, with the temp conf deleted after exit; a mount service path on Linux logs a single Information-level "not supported on this platform" (no Warning, no bug report — LB-14); the `7zz` fallback extracts a broken 7z from a Debug build without a manual `chmod +x` (LB-15).
183
+
- [ ] **Linux/macOS launch pipeline (Avalonia)** — ZIP/7Z/RAR for ScummVM/RPCS3/XBLA extract to `%TEMP%/SimpleLauncher/ZipLaunch/<guid>` (upper-case ROM/EXE names found, Windows-authored `DIR\FILE.BIN` entries land in a real subfolder) and the temp folder is deleted after exit; a `.chd` for a non-DOSBox system is converted with CHDSharp and every temp file (including multi-track bins) is cleaned up (LB-19); a DOSBox `.iso`/`.chd` is `imgmount`ed directly or converted, with the temp conf deleted after exit; a mount service path on Linux logs a single Information-level "not supported on this platform" (no Warning, no bug report — LB-14); the `7zz` fallback extracts a broken 7z from a Debug build without a manual `chmod +x` (LB-15). (Partially verified 2026-09-27 on Linux Mint 22.3: PS3 and Xbox `.chd` ROMs were converted to temp ISOs in `/tmp/SimpleLauncher/<guid>.iso` and handed to RPCS3/xemu, and the temp ISO was gone after the app exit; the app's conversion of the PS3 CHD is **byte-identical to `chdman extractdvd`** (`cmp`), and the Xbox ISO booted in xemu; a DOSBox game extracted from its zip produced a temp `_simplelauncher_dosbox.conf` and booted. The ZIP-mount paths, multi-track bins, LB-14 logging and LB-15 `7zz` case were not exercised here.)
0 commit comments