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

2.1 KiB
Raw Blame History

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.