Original-art minimap HUD, 2026-10-22

Implemented Star, coin, health and life rows beside the minimap. Each icon is decoded from original game OBJ resources and OAM templates, not substitute artwork. Life art follows Player::mCharacter; health uses the original nine health templates and palette thresholds, driven by the active player's original health value. Icon size follows minimap size; counters remain visible when the map is off. Existing position settings still place the HUD alongside the map.

Resource bridge: hal/minimap_hud_art.cpp reads private copies of original overlay data and dMeter_c's language-specific graphics/palettes. It resolves overlay1_image's exported DS-address pointer variables correctly. It does not run dMeter's live VRAM initializer. A before/after checksum verifies both OBJ banks, palettes and OAM remain unchanged during loading. All four life and nine health sprites decode successfully for English. No matched src/, shared include/ or ROM asset changes. Only data is decoded; ARM game instructions are not executed.

Final EXE E5C2E670F309DD066F95C6772497111B5B00CE05A295E06F3BF8BF0E3DFA1503. Native game build and four focused CTests pass: smoke_minimap_hud, smoke_gpu, smoke_video, smoke_stage_graph. Decoder tests cover 2D tile stride, palette banks, transparency, flips, sprite priority, truncation and atomic failure; overlay checks cover four values, health/character selection, map-off visibility, scale and clipping.

Final-build muted runtime evidence:
- native-muted-audio-walk-originalHUD-coins-20261021,3900ticks: original castle stair route collects two coins; HUD0->2, Wait/control restored.
- native-muted-audio-walk-originalHUD-health-contact-20261021,6500ticks: normal original-course entry and walking to original Goombas. Hurt states and health8->7->6->5->4->3 observed; original meter fill/palette and numeric health change, lives remain4; final Wait/control restored. No forced health, hit, player placement, reward or actor spawn.
- native-options-style-castle-originalHUD-large-final-muted-20261021,2400ticks: minimap500 at top-left with larger icons/counters to its right.
- native-options-style-castle-originalHUD-mapoff-software-final-muted-20261021,2400ticks: map-off HUD verified with D3D11 fallback because that isolated folder lacked Mesa. Do not claim this case is software coverage.
- native-options-style-castle-originalHUD-mapoff-software-runtime-muted-20261021,2400ticks: actual llvmpipe OpenGL CPU renderer, no D3D fallback, map hidden and all four counters visible.
All five exit0, isolated seed saves unchanged, mixer errors0/device nonzero samples0. English/Yoshi selected paths are verified; other characters are decoded but not newly tested in play, other languages/VS/courses remain unverified. Health0..2 artwork decodes but was not exercised by this damage run. Physical controller/listening acceptance remains pending. Screenshots/CSV/PCM/logs stay private under work/. Full port remains incomplete.

Installed F: checkpoint: F:\AI Games\Mario 64 DS\native-checkpoints\native-checkpoint-2026-10-22-original-hud. Play Latest Test With Sound.cmd points there. Installer verified all staged files, original ROM and previous preview hashes, and copied preview saves/settings without changing originals. Includes the canonical Mesa runtime and its licenses. Local manifest: work/playtest-original-hud-20261022/F-install-verification.json.

Final actual-F startup accepted:2400ticks exit0, original title/FileA/castle, frame2300 shows all four original-art counters. F EXE hash E5C2E670 matches canonical; F ROM used, isolated seed unchanged, sprite memory unchanged, mixererrors0/device nonzero0. Case native-options-style-castle-originalHUD-F-final-muted-20261021/acceptance.json. All runtime handles terminal. Rendering integration is complete for the stated selected scope. Luna Medium recommended for routine character/regression checks or ROM-free kit refresh; pause at the user-requested model-switch boundary. Full port remains incomplete.

## 2026-10-22: Output-resolution HUD overlay
The counter overlay now has a transparent buffer matching the selected internal
render target rather than being enlarged from 256x192. Numeric glyphs use a
5x7 bitmap and original counter icons use premultiplied-alpha smooth sampling;
icon source detail remains DS-sized. The DS minimap and other game-authored 2D
elements remain unchanged. D3D11 and llvmpipe paths accept full-target HUD layers
with revision-cached uploads. `smoke_minimap_hud`, `smoke_gpu`, `smoke_video`,
and `smoke_video_window` pass. Muted RTX 5070 gameplay replays render at
1280x720 and 3840x2160, with route/counters (Star 1, coin 2, health 8, lives 4)
present. The 4K target is captured at 3840x2160; settings preserve that internal
resolution. Device audio output contains zero nonzero samples and mixer errors
are zero. Screenshots/logs/audio and isolated saves remain local under
work/native-muted-audio-walk-fullres-hud-{1280x720,3840x2160}-20261021. These
tests do not verify a physical 4K monitor/window or all renderer/character/menu
combinations. The feature is experimental; full port remains incomplete.
