# PC HUD and secret portal follow-up — 2026-10-22

## Minimap counters

Keep always-visible Star, coin, health, and life counters beside the minimap,
placed along one side. Use the original in-game icons/sprites for each counter;
do not draw substitute pixel-art icons. Show health and lives as separate
counters. Scale the icons with the minimap size setting, and keep the existing
minimap position and opacity controls usable when laying out the HUD. The
current overlay now uses original game art for all four counters. Selected
English/Yoshi coin, damage, scaling and map-off checks pass; see
`native-minimap-original-art-2026-10-22.txt` for exact scope and remaining coverage.

Sprite source audit: the original HUD uses `OAM::POWER_STAR`, `OAM::COIN`, and
the character-specific `OAM::LIFE_ICONS[]` templates. Its health display is
drawn by `dMeter_c::RenderHealthMeter` from the original meter sprite/palette
tables. `dMeter_c::InitResources` loads the language-specific OBJ graphics and
palette files into main/sub OBJ memory (the default-language HUD graphics
include file `0x269`; the shared minimap resource is `0x229`). The PC overlay
now decodes private copies of those resources and reuses the original templates
without writing live OBJ memory. Runtime checksums confirm the live sprite
banks, palettes and OAM remain unchanged while preparing the overlay.

## Level 1 flower secret portal

The player reports that the secret portal interaction triggered by standing in
the flowers in level 1 does not work. Reproduce the original trigger with a
normal isolated save, trace its condition and interaction, and verify the
original destination/scene transition. Do not award progress or force a scene
change in the test. This interaction remains unresolved.

## Chain Chomp audio

The player reports missing Chain Chomp voice and bounce cues. Trace the original
actor's sound events and connect the matching original cues, then verify them
with audio enabled. Automated gameplay runs should keep device output muted;
listening quality still requires a separate manual playtest.

## Cannon aiming crosshair (reported2026-10-23)

Selected acceptance VERIFIED 2026-10-24. The original OAM artwork was absent
from native Stage OBJ memory; private original-art decode and the original
camera aiming gate now compose the centered gold sight. DS/720p/4K map-off,
turn/pitch, clearing on fire, three rides and original course re-entry passed
with muted output and isolated saves unchanged. Build and four selected
CTests passed. See native-cannon-sight-verified-2026-10-24.txt for exact hashes,
runtime evidence and pixel comparisons. Other renderers/languages, physical
controller and physical window aspect combinations remain unverified. Full
port is unfinished; no stable-install promotion.


## 2026-10-25: Secret Slide timer added

Secret Slide timer HUD — 2026-10-25

Status: VERIFIED for the original start/stop timer triggers, PC HUD time display, and timed Star spawn. Secret Slide floor type15 starts the original Timer at tick6520; floor type16 stops it at tick7750. The key event was clear, so the native dMeter timer path was eligible, but its OAM timer never appeared in the PC capture, even when the minimap was disabled. Added an output-resolution PC HUD stopwatch beside the map counters. It reads the same original Timer and is shown only in level29 after its original start flag, while the key event is clear. The rendered display follows mm:ss.cc. Surface16 stopped the clock and spawned the original timed Star actor178/param66.

Build SHA256 8D116FC5707A23B0C7DF19FCAF34F4075C748910CC22882492F06237A1E9D5ED. Eight focused CTests pass, including HUD formatting/visibility; process exit0, audio errors0, muted output0. Seed saves match runtime saves byte for byte. Runtime evidence and hashes: work/native-muted-audio-walk-slide-timer-hud-final-r1-20261025-20261021/timer-hud-acceptance.json. Screenshots frame-7400.bmp (00:14.83 during the slide) and frame-7800.bmp (00:20.66 stopped timer and timed Star).

Follow-up source inspection: `src/actors/Player.cpp` floor type16 stops the timer, checks the 20-second threshold, and spawns the timed Star (actor 0xb2, parameter 0x42); it does not create a separate finish-line actor. The course model is `data/stage/high_slider/high_slider_all.bmd`, and the verified end-room screenshot shows the timed Star but no distinct stripe. The original game finishes through the floor trigger and timed Star. A separate visible finish marker remains a custom PC visual request, not a missing stock actor; no placeholder was added. Eight focused CTests pass on this build. Next slide-specific check is Yoshi's box contact/reward. Full course/actor coverage, F installation and public build promotion remain open.
