Build Capital Quest for CoCo 3 with maps and emulator tests

This commit is contained in:
Brian Holman committed 2026-11-09 18:44:56 -07:00
commit 9f7d6f4786
44 files changed
+6238

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
# Public VCC Plus MCP workflow
The project was connected using C Development → Assistant → Use Project
Makefile + Allow Disposable Playtests → Save Private Connection. Grants stayed
outside the checkout. `tools/vcc_mcp.py` is a normal STDIO JSON-RPC client for
`/Applications/VCC Plus.app/Contents/Helpers/vcc-mcp --grant FILE`; it does not
use a private bridge or debugger memory/register writes.
Live tools were discovered with `tools/list`, followed by `get_capabilities`.
Builds used advertised `disk` actions and `Test`/`Release` configurations.
`start_playtest` booted exact artifact disks on isolated 512 KB MC6809 workers.
Every simulated press used `playtest_input` physical-key plans with separate
release fields. `capture_playtest` supplied the actual 640×480 framebuffer.
PNG pixels were decoded at the game's 320×192 coordinates. Text was matched
against the font bytes in the corresponding linked build, so checks observed
what the guest drew, rather than trusting host quiz variables. Selected-state
pixels were also checked against each state's drawing mask.
VCC Plus protects the approved recipe and source revision. After changing
recipe/support inputs, export a fresh connection. Put captures and test logs
outside the watched project until a run finishes: adding files can advance
the project revision and end its test run. Every intended input needs a fresh
request ID; only identical retries reuse one.
## Limitations and reusable improvements
The public playtest key enum omits **period** and other punctuation. `St Paul`
and mixed-case answers were played in the guest; `St. Paul` was verified by
the shared C logic tests. A reusable improvement is to expose the remaining
physical CoCo punctuation keys (or a documented ASCII-to-key-chord input tool)
with the same field bounds and idempotency receipts.
The approved custom-Make build receipt did not advertise verified C/function
stop lists. A general pause followed by `get_debug_snapshot` returned
`verified_pause_required`. No memory was guessed or modified to work around
that refusal. Gameplay checks used framebuffer captures and ordinary inputs.
A reusable improvement is to expose the native workbench's verified C mapping
and shared globals in custom-Make artifact receipts, or document a public
manifest schema for ordinary, non-banked binaries.
These limits do not prevent building or playing the complete quiz. They limit
the automated punctuation and source-debug inspection coverage described in
TESTING.md. The user's original machine, disks and tape were preserved.