Document VPX emulator status and recovery plan
This commit is contained in:
@@ -1,5 +1,82 @@
|
||||
# Artifact Index
|
||||
|
||||
## Process Emulator Source Artifacts
|
||||
|
||||
These are clean-room source files. Their generated capsule, run logs, copied
|
||||
Mesa runtime, framebuffers, audio, and traced packs live under
|
||||
`emulation/work/` and are intentionally excluded from Git.
|
||||
|
||||
| Path | Notes |
|
||||
| --- | --- |
|
||||
| `spike3-emu` | Unified `prepare`, `run`, `debug`, `trace`, `shell`, `pack`, and safe legacy-clean entry point. |
|
||||
| `emulation/process/spike3_emu.py` | Read-only process capsule builder/runner, Docker/native/qemu-user selection, display/audio sidecars, trace packer, and GDB helper generator. |
|
||||
| `emulation/process/config.default.json` | Versioned software-only runtime defaults. |
|
||||
| `emulation/process/Dockerfile` | Host-architecture runtime with ARM64 Mesa libraries, tracing/debug tools, Xvfb, x11vnc, and noVNC. |
|
||||
| `emulation/process/test_spike3_emu.py` | Launcher, isolation, preload-order, framebuffer-loop, trace, and debugger unit tests. |
|
||||
| `emulation/stubs/spike3machine_client.c` | AArch64 preload bridge from target SPI/I2C/GPIO calls to the versioned machine broker. |
|
||||
| `emulation/stubs/spike3emu_display_contract.h` | Shared DMA-BUF attribute and software-decoder contract helpers for the display shim tests. |
|
||||
| `emulation/tests/spike3emu_display_contract_test.c` | Host/AArch64 contract tests for DMA-BUF attribute parsing and the V4L2-to-software decoder alias. |
|
||||
| `emulation/tests/mesa_fbo_smoke.c` | Standalone surfaceless Mesa GLES test requiring a complete texture-backed FBO, nonzero readback, and no GL error; source compilation is verified, ARM64 runtime execution remains pending. |
|
||||
| `analysis/spike-machine-emulator/` | Versioned broker, persistent EEPROM/amplifier models, SPI/GPIO/UART/nodebus cabinet model, replay/fault support, client, and tests. |
|
||||
| `analysis/spike-machine-emulator/profiles/pokemon-pro.json` | Configurable provisional Pokémon switch/output mapping. |
|
||||
| `emulation/vpx-plugin/` | Pinned ARM64 macOS VPX ControllerPlugin source, package builder, configuration, and table-side VBS adapter. |
|
||||
|
||||
Generated capsule manifests record hashes for `/games/pokemon_pro/game`, both
|
||||
Radium `image.bin` files, Godot `main.pck`, the menu/display executables, the
|
||||
extracted loader, both generated preload DSOs, and the copied Mesa overlay.
|
||||
|
||||
## VPX Geometry Recreation Artifacts
|
||||
|
||||
These are generated private-use development artifacts. The assembled table now
|
||||
embeds a registered overhead photograph and five private decal assets. It does
|
||||
not embed game audio, scoring code, or target machine code. The manual,
|
||||
photographs, extracted graphics, and assembled table must remain within the
|
||||
authorized private-use distribution boundary.
|
||||
|
||||
| SHA-256 | Path | Notes |
|
||||
| --- | --- | --- |
|
||||
| `49f132dea4b957d2bd9b2640a69fdc49f4e6f69e3efe473cc0ad1352a4e18fc8` | `emulation/vpx/PokemonPro_Greybox.vpx` | 2,392,064-byte VPX 10.8.1 table; 323 game items, 56 contacts, 13 drivers, 113 logical lamp locations, six trough balls, one captive ball, registered overhead texture, and five private decals. |
|
||||
| `3dbeb3afbe3b848ec41b072cc736c2034d597e178bbf677a9821114c4d115610` | `emulation/vpx/layout.json` | Versioned 952x2115 manifest with 45 switches, 11 sensors, 13 drivers, 113 lamps expanded to 150 exact channels, physics provenance, ball inventory, and mechanism mappings. |
|
||||
| `13f5a89e6487e306e0621d5f4a2914c03324a168a97882fc9f893ee5835c41a3` | `emulation/vpx/PokemonPro_Greybox.vbs` | Standalone/SPIKE3/QA control, plugin bridge, switch/lamp/driver behavior, traps, drains, and deterministic launcher/mechanism tests. Current native stop point: unsupported `Service1Key` through `Service4Key` identifiers. |
|
||||
| `5881967247f52b1016b4552401c666cb331f1870aaba8328877f043796d1823a` | `emulation/vpx/tools/generate_layout.py` | Deterministic hardware, geometry, physics, asset-registration, and CPU-SPI route manifest generator. |
|
||||
| `74e978ecdb3b40182ac79adf8c6f93538fa071c316e7a3426c389b1b5b4cb6ca` | `emulation/vpx/tools/generate_table.py` | Rounded collision paths, layered VPX source, balls/mechanisms, private texture/decal registration, controller integration, QA, and overlays. |
|
||||
| `a195a95b8ddf7a914b87f12dff2d137f543f515a6424900e176a8c2e4a51c076` | `emulation/VPX_EMULATOR_STATUS.md` | Current implementation inventory, reproduced native stop points, ordered recovery plan, and acceptance checklist for branch `vpx-emulator`. |
|
||||
| `e13eb92e99a806ea86625de8cc426876929625190f763bfe93cd2e821efd3f88` | `emulation/vpx/tools/verify_collision_topology.py` | Static assertions for continuous collision/visual rail inventory and runtime/editor flags. |
|
||||
| `829c929b4ed51d2d7544cfae1aeb0b8571b50e1d71de299bcfdc0535844372e1` | `emulation/vpx/qa/collision-topology.json` | Per-path polygon area, winding, vertex, and self-intersection report. |
|
||||
| `e3ed8627e92c9175791c6aad0a2868df7dd66ac53602663431c6cd0c7a98a52a` | `emulation/vpx/qa/collision-validation.json` | Passing 13-collision/13-visual topology summary with zero legacy segments and intersections. |
|
||||
| `526e2a4e5695496e6662fe44ddc8406b700a551b142a6da95bd74bb8adc8e00f` | `emulation/vpx/qa-mechanisms.sh` | Live VPX assertions for both outlanes, center drain, Town VUK, Poke Ball hold, and shooter serve. |
|
||||
| `32b0c8fa4f5330cd9051d456c7209575bbd764f460c9e655d48ffcc89b23ddc1` | `emulation/vpx/qa-plunger.sh` | Full-pull VPX assertion requiring the served ball to clear the shooter mouth into the main playfield. |
|
||||
| `d66b99d4029b08906549e44b2c0f7ab26153313d2eea1d168e824e4fe75a705e` | `emulation/vpx/layer-map.json` | Stable 16-layer VPX construction/collision/visual/electrical/QA editor map. |
|
||||
| `254eb1167d1355003fe28fa1becc1209ff7fb1f53544cf696295b546c5c49e0e` | `emulation/vpx/assets/models/star_post.obj` | Blender-authored normalized ten-lobed post mesh. |
|
||||
| `0c2adad60a3c0b3491f371630013106d18c3327dd2173b2bf238e23705e1c25e` | `emulation/vpx/assets/models/stepped_metal_post.obj` | Blender-authored normalized stepped guide-post mesh. |
|
||||
| `d58c3f812fa0ba98461abf0220692a72ba3dfaec52b0fcaee0ca3d02ef70bc84` | `emulation/vpx/assets/models/pop_bumper_cap.obj` | Blender-authored normalized pop-bumper cap mesh. |
|
||||
| `976a2c72f13a654541e8d558b69c2dd6974e33a3f787b5926d98067e34d89f8d` | `emulation/vpx/assets/cad-reference/Star_Post_PL-00172-OT.SLDPRT` | Unmodified Pinball Makers private-development star-post reference. |
|
||||
| `bb313ef15bf3bcf25f6faa1e3d6a40e0a8d683b828b32572aaaf9752e1697326` | `emulation/vpx/assets/cad-reference/Post_Faceted_1_inch_C-11561-20.SLDPRT` | Unmodified Pinball Makers private-development faceted-post reference. |
|
||||
| `cb78b416be8f3c946313517766ecd3077dd05fdecea8f6ec162f9c9b0d4d3413` | `emulation/vpx/assets/cad-reference/WPC_Pop_Bumper_Assy_B-9414.zip` | Unmodified Pinball Makers WPC pop-bumper CAD assembly reference. |
|
||||
| `50a1906b5c609cd3a84970b6a6e9b0be839b4d0a588d8b27361936ab6537d6bb` | `emulation/vpx/reference/Pokemon_Pro_web.pdf` | Preserved 10,227,248-byte service manual. |
|
||||
| `09477fe9bd50cfeba34bbff2eac5c272fc79eed6a6ed07fc40da636c5fde977b` | `emulation/vpx/reference/pokemon_playfield_pro.png` | Preserved 451x998 target-root playfield locator. |
|
||||
| `b2804f794eb119712420ad575479fb8febcc39df0e505f9942c162614819819c` | `emulation/vpx/reference/photos/pokemon-pro-overhead.png` | Preserved user-supplied overhead machine photograph. |
|
||||
| `6ba469672627125d13798d1e80d460f85a5ce4ab9d4798c9947715ebbe1cfe70` | `emulation/vpx/reference/photos/pokemon-pro-lower-detail.png` | Preserved user-supplied lower-playfield detail photograph. |
|
||||
| `1a1af7fa16dde9c84deb2fbc19de44b9c860cd5ef4dc3a65d48a3cbfdbb214a3` | `emulation/vpx/reference/photos/pokemon-pro-player-view.png` | Preserved user-supplied player-view photograph. |
|
||||
| `acb797ec6c2a03079c1a427e0350de0dfabb0c33688eb45e60b52824c04317eb` | `emulation/vpx/reference/photos/pokemon-pro-overhead-registered.png` | Reproducible 451x998 overhead-photo crop for locator comparison. |
|
||||
| `5383b79d5a955b91059ca5d67806d719d89655ec293e4bd0cc84b8a5adede03f` | `emulation/vpx/qa/layout-overlay.png` | Actual buffered collision polygons, centerlines, ramps, mechanisms, and hardware over the locator. |
|
||||
| `595faa3cc12de55ad10ef3324593140473a3eb3e4778471797845c39a31ae243` | `emulation/vpx/qa/photo-geometry-overlay.png` | The same buffered collision review over the registered overhead photograph. |
|
||||
| `8084af0ed94f87c20487f0ba02a182015365a3c51c00d0358d679e4e5267d62f` | `emulation/vpx/qa/vpx-playfield-capture.png` | Inspected live desktop render of continuous rounded visual rails and initialized mechanisms. |
|
||||
| `3351926b55d81ea7c77e3df016aa05167dbf786e3a1985537770a1d95da309b7` | `emulation/vpx/qa/vpx-cabinet-capture.png` | Inspected live fullscreen render rotated into physical portrait orientation. |
|
||||
| `6b1a65cbbf9569fd720075f60ee3687b99fdf439313fc85bb887231afd44dfbe` | `emulation/vpx/qa/mechanism-runtime.log` | Passing continuous-collision evidence for both outlanes, three drains, both kickers, and shooter service. |
|
||||
| `06cf7cd0b2a61579ec7bce7637565d1bccd9dcd803a18e0053cce94859005f3b` | `emulation/vpx/qa/plunger-runtime.log` | Passing continuous-shooter-rail main-playfield-entry evidence. |
|
||||
|
||||
Key source hashes for the 2026-07-11 process/VPX milestone:
|
||||
|
||||
| SHA-256 | Path |
|
||||
| --- | --- |
|
||||
| `502868bdf619ef66a2af612f1d70ac5c7d8811e8999a8b55039c10aff7d56f40` | `emulation/process/spike3_emu.py` |
|
||||
| `31ca5928aefb1d17ec4153a35ec01f87cb84bf5e8e3059b82efd37bd1ae7f2ea` | `analysis/spike-machine-emulator/service.py` |
|
||||
| `a6065c0b13beca83fb9c1a64702ba163b5e1664cdfb3bb64985a4b6b326cf91e` | `analysis/spike-machine-emulator/machine.py` |
|
||||
| `57be1144bafd4dfe3ba852e36ba015487b548df1229dcb2869884abd67bf6101` | `emulation/dashboard/server.py` |
|
||||
| `1da09b43b43e920f8f95183281cf3c3291f7d013a0da8e6ac60cc0f776b6dbee` | `emulation/vpx-plugin/Spike3Controller.cpp` |
|
||||
| `5c8bb043378669334b587d0e443b7a6ded5530c886d87f9bd1e30fb7fe7cb12c` | `emulation/tests/mesa_fbo_smoke.c` |
|
||||
|
||||
## Main Game Artifacts
|
||||
|
||||
| SHA-256 | Path |
|
||||
|
||||
Reference in New Issue
Block a user