|
| 1 | +# PR_26139_001 Asteroids DVG Manifest Geometry |
| 2 | + |
| 3 | +## Summary |
| 4 | +- Retrieved original Asteroids DVG object drawing instructions from public source/disassembly references. |
| 5 | +- Converted the relative DVG vector instructions into absolute Object Vector Studio V2 `objects[].shapes[]` geometry. |
| 6 | +- Updated only `games/Asteroids/game.manifest.json` target object `shapes[]` data for bullet, ship, asteroids, and UFOs. |
| 7 | +- Left runtime code, object IDs, tags, states, styles, object origins, schemas, and fallback behavior unchanged. |
| 8 | + |
| 9 | +## Public Source References |
| 10 | +- Computer Archeology Asteroids Vector ROM listing: `https://www.computerarcheology.com/Arcade/Asteroids/VectorROM.html` |
| 11 | +- Computer Archeology Asteroids DVG notes: `https://www.computerarcheology.com/Arcade/Asteroids/DVG.html` |
| 12 | +- 6502bench Asteroids disassembly: `https://www.6502disassembly.com/va-asteroids/Asteroids.html` |
| 13 | +- Historical Atari source mirror: `https://github.com/historicalsource/asteroids` |
| 14 | +- Historical source file used for vector object instructions: `https://raw.githubusercontent.com/historicalsource/asteroids/main/A35127.XX` |
| 15 | +- Historical source file used for bullet/size runtime confirmation: `https://raw.githubusercontent.com/historicalsource/asteroids/main/A35131.1A` |
| 16 | + |
| 17 | +## Conversion Notes |
| 18 | +- Converted `VCTR x,y,brightness` instructions by accumulating each relative vector delta into absolute Object Vector Studio V2 point coordinates. |
| 19 | +- Preserved DVG beam-off moves as geometry breaks. The saucer body is therefore one polyline plus one separate line shape. |
| 20 | +- Preserved existing ship flame flicker state behavior by keeping the existing flame line shape slots and updating their coordinates to the DVG flame vectors. |
| 21 | +- Represented the original torpedo `VGDOT` bullet draw as a small square polygon centered on the existing bullet origin because Object Vector Studio V2 manifest geometry is shape-based. |
| 22 | +- The original source provides reusable rock patterns plus runtime size scaling. Current manifest runtime uses size-specific object IDs, so `ROCK1` was converted once and applied at full, half, and quarter scale to large, medium, and small asteroid objects. |
| 23 | + |
| 24 | +## Objects Updated |
| 25 | +- `object.asteroids.bullet` |
| 26 | +- `object.asteroids.ship` |
| 27 | +- `object.asteroids.large-asteroid` |
| 28 | +- `object.asteroids.medium-asteroid` |
| 29 | +- `object.asteroids.small-asteroid` |
| 30 | +- `object.asteroids.large-ufo` |
| 31 | +- `object.asteroids.small-ufo` |
| 32 | + |
| 33 | +## Scope Guard |
| 34 | +- PASS: script comparison against `HEAD` confirmed `games/Asteroids/game.manifest.json` changes are limited to the seven target `objects[].shapes[]` arrays. |
| 35 | +- PASS: no runtime code changes were made for this task. |
| 36 | + |
| 37 | +## Validation |
| 38 | +- PASS: targeted Asteroids node validation: |
| 39 | + - `tests/games/AsteroidsValidation.test.mjs` |
| 40 | + - `tests/games/AsteroidsAssetReferenceAdoption.test.mjs` |
| 41 | + - `tests/games/AsteroidsPlatformDemo.test.mjs` |
| 42 | + - `tests/games/AsteroidsPresentation.test.mjs` |
| 43 | + - `tests/games/AsteroidsVectorTransforms.test.mjs` |
| 44 | +- PASS: targeted Workspace Manager V2/Asteroids Playwright validation: |
| 45 | + - `npx playwright test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --workers=1 --reporter=list -g "loads Object Vector Studio V2 runtime assets into Asteroids gameplay rendering"` |
| 46 | +- PASS: targeted Workspace Manager V2 Small UFO shape-list validation: |
| 47 | + - `npx playwright test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --workers=1 --reporter=list -g "uses header lifecycle controls and launches tools from fixed Workspace Manager V2 tiles"` |
| 48 | +- FAIL: full Workspace Manager V2 gate: |
| 49 | + - `npm run test:workspace-v2` |
| 50 | + - Result after fixing the Small UFO two-shape expectation: 54 passed, 2 failed. |
| 51 | + - Remaining failures are outside this DVG geometry delta: |
| 52 | + - `validates optional Text to Speech V2 schema contract through Workspace Manager V2 schema` expects Asteroids to include `text2speech-V2`. |
| 53 | + - `tracks Object Vector Studio V2 dirty state through persisted edits and save outcomes` expects invalid object-vector session data to block manifest save. |
| 54 | +- PASS: `git diff --check` |
| 55 | +- Playwright impacted: Yes. This changes manifest geometry consumed by Asteroids runtime rendering and validates the Workspace Manager V2 launch/runtime object rendering path. |
| 56 | + |
| 57 | +## Manual Validation |
| 58 | +- Open `/games/Asteroids/index.html`. |
| 59 | +- Expected: ship, bullet, asteroid, and UFO objects render from Object Vector Studio V2 manifest geometry. |
| 60 | +- Fire bullets at several ship angles. Expected: bullets keep manifest-authored shape/style while runtime rotation still follows the shot angle. |
0 commit comments