DKC1Recomp v0.0.5 - Native Metal presentation pacing
Native macOS presentation release
- Separates the deterministic 60 Hz game loop from a native 120 Hz
CAMetalDisplayLinkpresenter. A three-slot host-only queue normally scans each completed game frame twice without advancing or catching up cartridge state. - Adds Sharp Bilinear as the default fullscreen sampler. It preserves flat pixel interiors while blending only near texel boundaries; Smooth (Linear) and Pixel Sharp (Nearest) remain persistent View-menu options.
- Adds
DKC1_SCANOUT_LOGandtools/analyze_scanout.pyto record actual drawable presentation time beside source-frame, camera, BG-scroll, and queue identity. - Pauses and flushes only the presentation queue while the app is hidden, minimized, or unfocused, then safely resumes.
DKC1_DISABLE_METAL_PRESENTER=1retains the SDL/Mach compatibility path. - Keeps the native 4:3, 16:10, and 16:9 modes, widescreen fixes, MSU-1 replacement music, stomp haptics, application icon, and native Game, Music, and View menus from v0.0.4.
The game ROM and music pack are not included. Select your own supported USA .sfc ROM and, optionally, your own compatible MSU-1 pack.
This arm64 build targets macOS 26, is ad-hoc signed, and has been locally signature-verified, but it is not Apple-notarized. If Gatekeeper blocks the first launch, Control-click the app and choose Open.
Validation included 224 Python tests with one unavailable local imported-state fixture skipped, three byte-identical 780-frame Slip-Slide Ride traversals, a packaged-app fallback smoke test, real fullscreen menu/scaling inspection, archive re-extraction, and deep strict signature verification. A clean unobscured scanout sample held approximately 8.333 ms physical intervals and 16.667 ms source transitions with no frame or queue loss. Some later samples still showed compositor-side presentation variance despite steady CPU cadence, so this release improves and instruments motion pacing without claiming a universal perfect-scanout guarantee or a newly completed 40-entrance widescreen matrix.