Center resting barrels and anchor every firing pose to the HUD edge. Add native framebuffer regression checks for all nine poses and update game assets, binaries and launcher integrity hash.
35 lines
2.1 KiB
Markdown
35 lines
2.1 KiB
Markdown
# Hell presentation asset contract
|
||
|
||
Imported offline from the pinned Freedoom 0.13.0 archive using
|
||
`tools/generators/import_freedoom.py`. Runtime remains MASM32.
|
||
|
||
All packs: 20-byte `ANM1` header (five little-endian DWORDs: magic, width, height,
|
||
frame count, payload bytes), then row-major BGRA frames. Nearest-neighbour only.
|
||
|
||
| Pack | Frame size | Layout / alpha / origin |
|
||
|---|---|---|
|
||
| `hud.bin` | 320×32 | One `STBAR` frame, rendered 2× at (0,416) |
|
||
| `digits.bin` | 16×16 | Ten digits and percent, right-aligned; transparent |
|
||
| `faces.bin` | 24×32 | Five health bands × four expressions, then dead; bottom-centred |
|
||
| `impacts.bin` | 32×32 | Four `PUFF` frames, shared sprite origin; transparent |
|
||
| `painting.bin` | 512×256 | One opaque, power-of-two wall texture; full-frame UVs |
|
||
| `pistol.bin`, `shotgun.bin` | 320×160 | Resting barrel centred at x=160; every frame bottom-anchored |
|
||
|
||
Weapon art retains the shared animation scale from a 192×160 fit. The wider
|
||
transparent canvas preserves the shotgun's leftward pump movement; horizontal
|
||
translation is shared across each weapon's frames. Each frame's opaque bottom
|
||
is registered at y=160, keeping wrists attached to the status bar during recoil.
|
||
Rendered at (80,176), size 480×240: resting barrel x=320, hands end at HUD y=416.
|
||
`python tools/tests/check_hell_weapons.py` checks all asset anchors;
|
||
`python tools/tests/check_hell_fps.py` also compares all nine weapon poses against
|
||
the real ASM framebuffer and writes `build/scratch/hell-weapon-native.png`.
|
||
|
||
Painting composes Freedoom sky, lava, masonry and monsters with an authored gilt
|
||
border. Its preview uses intended landscape aspect. Engine maps the texture onto
|
||
a 6×2-world-unit wall panel; it is not a camera-facing sprite. Power-of-two
|
||
dimensions are required by `DrawCityVertical3D`'s masked texture coordinates.
|
||
No generated AI image or proprietary Doom artwork is used.
|
||
|
||
HUD glyphs and portrait retain original pixel-art palette. Frame padding avoids
|
||
per-expression scaling jitter. See `assets/hell/manifest.json` for source lumps
|
||
and `assets/hell/COPYING.txt` / `CREDITS.txt` for licence and attribution.
|