DKC1Recomp regression dashboard

Generated 2026-09-06 21:08 UTC at commit `ee6d662-dirty`. Regenerate with `python tools/make_dashboard.py` after a regression/sweep cycle.

Contracts

contractlast resultlegsevidence
jungle-death-transition (`jungle-death-transition.json`)NOT RUN in latest cycle--
jungle-entry (`jungle-entry.json`)NOT RUN in latest cycle--

Route sweep

No sweep report; run `python tools/level_sweep.py`.

Known issues

idstatussummaryrepro
no-contact-damagefixedContact damage never lands: DK overlaps the first Gnawty for 3800+ frames unharmed in BOTH native and wide modes, and identically under forced LLE (not a dispatch/widescreen defect).`recipes/route_death.dks`
entry-wide-centered-flapopenWIDE<->CENTERED presentation flap during level entry (frames 7304-7331 of the jungle route).`recipes/route_jungle.dks with DKC1_WS_TRACE`
wide-world-key-unwrapopenWide world key camX=$FFF0 (-16) unwrap artifact near level start.`recipes/route_jungle.dks with DKC1_WS_TRACE`
margin-decode-attribute-mismatchfixedStream retrodiction proves 1690 served-margin entries on the jungle entry route disagree with the game's own later stream, overwhelmingly in the ATTRIBUTE byte (palette/priority/flip: xor 0x1c00/0x5c00/0x4c00 clusters; whole 29-row columns as they scroll into view). The ROM level-map decoder's attribute derivation does not match streamed truth for some metatiles - margins can show wrong-palette art.`SNESRECOMP_WS_RETRODICT=out.jsonl + recipes/route_jungle.dks; analyze with tools/analyze_retrodiction.py`
entry-oam-xhigh-lossopenAt level entry (~frame 7488) an OAM sprite drops its X high bit: (317,158) -> (69,158) with the low byte continuous - right-margin art teleporting to the left. Caught by level_sweep's wrap detector; likely tied to the entry-time presentation-bias window (see entry-wide-centered-flap / wide-world-key-unwrap).`recipes/route_death.dks or route_jungle.dks via tools/level_sweep.py (oam_wrap.first_suspect)`
standstill-pillarboxopenStanding still at level start pillarboxes for 4000+ frames (layout never selected, source bank 0) until the camera moves; seen on route_death.dks stand-still segment.`recipes/route_death.dks via tools/level_sweep.py`
post-bonus-bg1-transition-contaminationfixedLeaving a bonus room could seed BG1 widescreen margins from a transitional VRAM ring, producing repeated vertical strips on both outer edges while the native center and cartridge state remained valid.`build/bonus-safe-control-repros-20260816/capture-f00000464-20260816-075932-p28476`
wide-vertical-row-staging-corruptionfixedWide simultaneous horizontal/vertical motion could expose black or mixed-color rectangular blocks in BG1 because the stock vertical row builder refreshed only 36 entries before publishing a full 64-entry ring row.`build/visible-flight-recorder-20260816/capture-f00004159-20260816-083801-p60144`
wide-seven-tile-stream-guard-gapfixedThe host renderer sampled seven complete margin tiles at arbitrary sub-tile scroll phases, but the cartridge initializer and moving-row sweep prepared only six. The uninitialized seventh physical BG1 ring column could later rotate into the native center as one 8-pixel vertical strip of stale terrain.`build/visible-rowfix-flight-20260816/capture-f00005014-20260816-084158-p69336`
jungle-bonus1-widened-initializer-corruptionfixedJungle Hijinxs Bonus 1 lost its purple floor and showed checkerboard cave columns because a shared fixed-layout initializer was incorrectly treated as a rolling-terrain widescreen capability and wrote widened columns into the native VRAM ring.`build/visible-margin7-flight-20260816/capture-f00158989-20260816-094934-p70536`
ropey-rampage-widened-initializer-corruptionfixedRopey Rampage could start with terrain sliced into displaced horizontal and vertical bands because the shared widened cartridge initializer generated invalid native-ring data for this layout.`build/visible-bonusguard-flight-20260816/capture-f00009082-20260816-101211-p61340`
underwater-split-map-metatile-bank-pillarboxfixedUnderwater level $0061/$80BF stayed entirely 4:3 because the host decoded both level-map cells and metatile definitions from the map bank. This scene publishes map bank $E9 in $D5 and metatile-definition bank $D0 in $D6, so the one-bank decode failed calibration and correctly fell back to pillarbox.`build/current-level-live/level0061-entrance80BF-20260816-120545.state (external evidence; not committed)`
croctopus-authored-right-boundary-gapfixedCroctopus Chase level $0061/$00BF widened correctly, but its lower-right rock wall stopped at the native edge and exposed BG2 water in the right margin. The ROM map itself switches from a fully populated wall metatile at world X $0620-$063F to wholly transparent metatiles at X $0640 because those cells were never visible on stock hardware.`build/current-underwater-rightgap-20260816/level0061-rightgap.state (external evidence; not committed)`
croctopus-nearest-right-wall-sourcefixedAt Croctopus Chase level $0061/$00C0 near camera X $007F, BG1's first offscreen right metatile was a complete wall but the following unused metatile was empty. The continuation rule skipped the nearer complete block and tested only the native-edge block, leaving alternating water and rock fragments in the outermost right margin.`build/repros/underwater-right-20260816-1823/underwater-right.state (external evidence; not committed)`
croctopus-authored-left-boundary-gapfixedAt world X $0241 in Croctopus Chase level $0061/$00BF, BG1's rock wall stopped 11 pixels inside the left widescreen margin and exposed BG2 water. The ROM map has a fully populated wall metatile at the stock left edge (metatile X $12) but a wholly transparent offscreen metatile at X $10.`build/current-underwater-leftgap-20260816/level0061-leftgap.state (external evidence; not committed)`
slip-slide-ride-moving-margin-calibration-flickerfixedSlip-Slide Ride mode $0009, level $0051, entrance $006D could replace most of both widescreen margins with adjacent ROM tile columns while the camera moved. Independent floor-division first exposed 1-3 pixel camera smoothing; a later uphill/downhill repro showed that rounding an exact four-pixel half-tile tie away from zero still selected an adjacent column.`build/repros/ice-cave-flicker-20260830/exact-user.state plus traverse-right.inputs for the original traversal; build/repros/ice-cave-flicker-20260830/vertical-left-right/exact-user-new.state plus left-right.inputs for the four-pixel uphill/downhill tie`
partial-native-edge-shadow-capture-gapfixedAt nonzero fine X scroll, the 256-pixel native viewport touches a 33rd BG1 tile, but the generic live shadow sweep retained only 32 complete columns. The renderer's chunk beginning at screen X=254 therefore missed once per scanline and used the transparent fallback across the native/right-margin handoff, producing moving vertical bands in Croctopus Chase and compounding the reported cave-side flicker.`build/repros/underwater-side-flicker-20260830-live/exact-underwater-live.state at absolute frame 312762; baseline-stress reports terrain_margin_miss on all 12 motion actions`
macos-promotion-motion-microstutteropenThe fixed 60 Hz game loop is steady, but physical ProMotion scanout can still shift an otherwise complete source frame by one or more 120 Hz intervals. The old window-bound callback no longer advances emulation, so the remaining hitch is isolated to host presentation rather than cartridge timing.`build/repros/macos-metal-pacing-20260830/final-short-visible*/scanout.jsonl with the immutable Slip-Slide Ride state and vertical-left-right/left-right.inputs`
aquatic-shadow-native-boundaryopenAquatic BG1 shadow chunks overwrite native-edge pixels; an opt-in pixel-boundary/live-scroll candidate removes the measured defect. Wall adjacency remains experimental and whole-game promotion is pending.`build/reviews/aquatic-widescreen-20260906/inputs/exact-underwater-live.state; controller-only fresh entry from the preserved map root`
aquatic-upward-cache-flashopenCroctopus Chase briefly blacks both margins when upward scrolling leaves the host cache window. The opt-in scroll-rebase candidate now rebuilds the calibrated frame, including the HDMA native guard row; whole-game promotion remains pending.`recipes/croctopus-cache-crossing.json from the immutable map root documented in docs/WIDESCREEN_WATER_FLASH.md; exact turn frames 314683 and 314804`
coral-capers-populated-wall-seamopenTwo supplied Coral Capers states expose opposite faces of a mismatched authored wall junction. Source-verified, default-off margin corrections are available for local playtesting.`build/repros/water-seam-20260906/inputs/quicksave.state; frame 34978, mode 3, level $0061, entrance $00BF, camera 943/10113; right-face follow-up: build/repros/water-right-seam-20260906/inputs/quicksave.state, frame 78551, camera 671/10048`
aquatic-fine-scroll-bottom-row-gapopenOrdinary fine-Y=7 scrolling can expose a short strip of BG2 on the last scanline because the native edge tile guard row was captured only during a cache rebase. The local opt-in correction is validated; whole-game promotion remains pending.`recipes/coral-bottom-row-guard.json from active Coral root 1eb7355de0dbc3ff8250d526611e0154fe446e590c1c1e43786a57a99e2be316; first miss at relative frame 85, absolute 110691, camera 592/10000`
coral-western-alcove-margin-gapsopenThe western Coral Capers alcove and higher shaft expose right-margin gaps in unused map cells. Separate source-verified local corrections are available; full promotion remains pending.`build/repros/water-new-junction-20260906/inputs/quicksave.state; frame 541651, mode 3, level $0061, entrance $00BF, camera 127/9797; higher shaft: build/repros/water-upper-alcove-20260906/inputs/quicksave.state, frame 553153, camera 16/9380`

Issue lifecycle: edit `docs/KNOWN_ISSUES.json` (set status `fixed` with the fixing commit) and regenerate. A fixed issue regressing shows up here as its contract/sweep line failing.