KAZIK/docs/HELL_ASSET_PIPELINE.md
Игорь Федосеев ef5ebff353 fix: align hell weapons with crosshair and HUD
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.
2026-11-01 22:41:36 +03:00

35 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.