Generated 2026-09-19 16:06 UTC at commit `076727d-dirty`. Regenerate with `python tools/make_dashboard.py` after a regression/sweep cycle.
| contract | last result | legs | evidence |
|---|---|---|---|
| dixie-jungle-widescreen (`dixie-jungle-widescreen.json`) | NOT RUN in latest cycle | - | - |
| dixie-jungle (`dixie-jungle.json`) | NOT RUN in latest cycle | - | - |
| dixie-map-refresh (`dixie-map-refresh.json`) | NOT RUN in latest cycle | - | - |
| dixie-stomp (`dixie-stomp.json`) | NOT RUN in latest cycle | - | - |
| jungle-death-transition (`jungle-death-transition.json`) | NOT RUN in latest cycle | - | - |
| jungle-entry (`jungle-entry.json`) | NOT RUN in latest cycle | - | - |
No sweep report; run `python tools/level_sweep.py`.
| id | status | summary | repro |
|---|---|---|---|
| jungle-retrodiction-ratchet | open | The stock jungle-entry closure contract's zero retrodiction budget no longer holds: the 16:9 Jungle Hijinxs entry route reports 1,765 proven-wrong margin serves (frames 7409-7599, world x 47-542, whole BG1 columns; 754 same-tile attribute-only, 684 different art, 198 invisible tile-0 pairs, 127 blank-served). The signature matches the margin-decode-attribute-mismatch entry that was closed on 2026-08-16, so something between that fix and v0.0.14 reopened it and the contract was not re-run (the dashboard listed it as not run). | `python tools/run_regression.py contracts/jungle-entry.json --exe <stock headless> --rom <clean ROM>; analyze <session>/retrodict-events.jsonl with tools/analyze_retrodiction.py` |
| no-contact-damage | fixed | Contact 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-flap | open | WIDE<->CENTERED presentation flap during level entry (frames 7304-7331 of the jungle route). | `recipes/route_jungle.dks with DKC1_WS_TRACE` |
| wide-world-key-unwrap | open | Wide world key camX=$FFF0 (-16) unwrap artifact near level start. | `recipes/route_jungle.dks with DKC1_WS_TRACE` |
| margin-decode-attribute-mismatch | fixed | Stream 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-loss | open | At 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-pillarbox | open | Standing 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-contamination | fixed | Leaving 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-corruption | fixed | Wide 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-gap | fixed | The 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-corruption | fixed | Jungle 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-corruption | fixed | Ropey 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-pillarbox | fixed | Underwater 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-gap | fixed | Croctopus 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-source | fixed | At 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-gap | fixed | At 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-flicker | fixed | Slip-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-gap | fixed | At 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-microstutter | open | The 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-boundary | open | Aquatic 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-flash | open | Croctopus 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-seam | open | Two 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` |
| hd-opposite-facing-stale-materials | fixed | The private HD Nano motion preview updated canonical DK rasters only; left-facing walking/turning retained old restoration art, and left-facing running could fall back to original pixels. | `recipes/hd-actions.dks from build/hd-slice/entry.state; compare private motion and reviewed packs at relative frame 326.` |
| hd-animation-draft-quality-and-coverage | open | The 700 DK candidates have broad pose and continuity defects. The complete 53-group contact-sheet review does not establish full-game runtime coverage or landmark acceptance. | `Private build/hd-slice/reimagined/all-animations/review boards; see the per-group register in docs/HD_ANIMATION_REVIEW.md.` |
| hd-bounce-and-left-idle-materials | fixed | Within the supported Jungle slice, enemy-bounce spin had no HD keys in either direction; chest-beating used stale right-facing drafts and missing left-facing keys, causing original-sprite fallback during idle. | `recipes/hd-bounce-right.dks, hd-bounce-left.dks, hd-idle-cycle-right.dks and hd-idle-cycle-left.dks from the private immutable HD root.` |
| hd-material-cache-exhaustion | fixed | The private HD scene cache stopped loading materials after 4096 identities, causing installed walking poses and background chunks to fall back to original pixels. | `recipes/hd-cache-pressure.dks and the preserved tester-state warm replay; old/new divergence starts at eligible HD frame 637 in the wide route.` |
| hd-environment-nano-coverage | open | Connected Nano scenery covers Jungle and the tested Jungle Bonus 1 cave; broader sprite/composite and other-room coverage remain incomplete. | `recipes/hd-barrel-right.dks and recipes/hd-barrel-left.dks with scene-pack-nano-environment-v7` |
| framegen-held-poses-and-half-period-budget | fixed | Opt-in Windows frame generation left held character poses unchanged at 60 Hz; synchronous midpoint scheduling also skipped 120 Hz images when pose rendering exceeded half a game period. Fixed within the verified Jungle scope. | `tools/verify_framegen.py; exact and fresh-entry schedules in docs/FRAMEGEN_REVIEW.md` |
| framegen-120hz-double-speed-after-click | fixed | On a 120 Hz display with frame generation enabled, the game ran at double speed after the first click in the game window. The click armed provenance tracking permanently, which bypasses interpolation, yet real frames kept the half-divisor sync interval meant for a real+midpoint pair, so each emulated frame occupied one refresh. | `v0.0.16 DKC1Recomp.exe, 120 Hz display, DKC1_FRAMEGEN=1 or F10, then one left click in the game area; DKC1_PACING_LOG shows submit_interval_ms 8.33 and interp_valid 0 from the click onward.` |
| framegen-background-scroll-quantization | fixed | Whole-pixel BG scroll caused uneven parallax steps in optional Windows frame generation. Fractional per-layer sampling fixes the measured Jungle running paths; other layouts are not certified. | `docs/BACKGROUND_PACING_REVIEW.md; cleared-run.dks from the preserved user root, with independent fresh-entry replay` |
| win32-running-pacing-outliers | open | Additional Windows running samples contain occasional 33-50 ms real-submission gaps despite clean median and p99 pacing; overrun re-anchoring adds a long wait after late work. | `docs/BACKGROUND_PACING_REVIEW.md; fresh-running-timing-60 frame 421 and cleared-timing-0-60-3 frames 322/455` |
| framegen-terrain-object-registration | fixed | Terrain camera filtering made fixed KONG letters drift against the ground and softened fine hatch texture. Corrected within the tested Jungle sequence. | `Cleared Jungle exact and independent fresh-entry roots, 570-frame left/right route; source 120 to 135 measures the relative drift.` |
| ios-single-thumb-run-jump-roll | fixed | A thumb that began on Y could not also press B by rolling across the touch diamond; the preceding adapter update handled separate fingers only. | `Press Y with one thumb, roll toward B without lifting, roll back to Y, then repeat.` |
| ios-simultaneous-run-jump-touch | fixed | The original UIKit game buttons used transient highlight state for input; the player needs reliable Y+B chords and a double-tap Y hold toggle. | `Keep Y pressed and press/release B repeatedly. Double-tap Y, lift the finger, jump with B, then double-tap Y again.` |
| ios-landscape-stretched-native-image | fixed | The first iOS landscape overlay stretched a 256x224 framebuffer to the phone aspect, distorting the game. | `Load the iOS game and enter landscape; distortion appeared on the first displayed landscape frame.` |
| ios27-scene-lifecycle-launch | fixed | The initial UIKit device build traps before the first game frame on iOS 27 because it creates an application window without adopting scene lifecycle. | `Launch the initial signed arm64 build on iPhone 16 Pro Max running iOS 27.0 (24A5408d). The iOS 26.5 simulator does not enforce the requirement.` |
| dixie-stomp-haptics | fixed | Dixie enemy stomps produce no feedback because the host compares her rebound to stock DK's value; the Windows host also lacks visible rumble controls. | `contracts/dixie-stomp.json: fresh boot, falling at frame 7749, stomp at 7750. Equivalent immutable Jungle-state route reaches the stomp at relative frame 149.` |
| dixie-map-sprite-corruption | fixed | The optional Dixie variant shows conspicuous garbage sprite clusters on Kongo Jungle and Jungle entrance maps, including after death. Fresh controller-only boot reproduces it; Jungle gameplay is clean in the inspected movement branches. | `Dixie headless, native mode, first 5750 frames of recipes/dixie-jungle-startup.dks from the verified clean ROM; tracked Jungle-map OAM cluster begins at frame 5728, with earlier corruption on the preceding map.` |
| sdl-startup-route-oam-port-timing | fixed | Input-only SDL startup routes skipped the per-frame drawing/HDMA/VBlank step, leaving PPU OAM uploads misaligned and visibly corrupting both stock and Dixie sprites at first interactive presentation. | `DKC1_STARTUP_SCRIPT=recipes/dixie-jungle-startup.dks, native mode, clean boot; Dixie first interactive frame 7602.` |
| dixie-windows-relaunch-integration | fixed | Dixie menu restarts lost the selected ROM path and the SDL variant could return to the debugger filename; the regular Windows build lacked a matching SDL variant target. | `Toggle Mods > Dixie Kong Country in both Windows hosts with a clean ROM path containing spaces; also start SDL with a persisted choice and cached ROM.` |
| aquatic-fine-scroll-bottom-row-gap | open | Ordinary 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-gaps | open | The 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` |
| ingame-sram-not-persisted | fixed | Candy in-game saves existed only in process SRAM: desktop hosts never loaded or wrote a battery file, so progress disappeared on restart while save states worked. | `docs/INGAME_SAVES.md; tools/verify_ingame_saves.py with the private pre-Candy entry fixture and fixed 478-frame save input` |
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.