SteonMod
RecompPlayable

DKC3 Recomp

Native recompilation of Donkey Kong Country 3 (SNES), built the DKC2Recomp way on snesrecomp.

Native recompilation of Donkey Kong Country 3 (SNES), built the DKC2Recomp way on snesrecomp See the README below for details.

DKC3Recomp

A native recompilation of *Donkey Kong Country 3: Dixie Kong's Double Trouble!* (SNES, USA, En/Fr) built the way DKC2Recomp was built: the game's code is statically recompiled to C by snesrecomp from a bank configuration derived from a public disassembly, the shared snesrecomp runtime executes anything the analysis cannot prove through its 65816 interpreter, and project-owned hosts present the game natively on macOS and Windows.

You must supply your own DKC3 ROM. The supported image is the headerless North American (En,Fr) release, 4 MiB, SHA-256 2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32b. No ROM data, generated code, or extracted assets are stored in this repository.

Status

Bring-up. See docs/BRINGUP.md for the dated record of what runs and what has been verified, and docs/WIDESCREEN_GUIDE.md for how the widened presentation works and how its defects are diagnosed and fixed. Levels present wide at 16:10, 16:9, and the selectable 21:9 ultrawide mode with DKC2Recomp's terrain reconstruction driven by DKC3's own level map, verified on Lakeside Limbo. The 21:9 option uses the nearest symmetric width that preserves the shared runtime's safe sprite coordinate range: 446x224, or approximately 20.91:9. Screens the map does not cover center the native frame between black margins. The placed-object spatial scan and final activation checks, the sprite renderer culls, and the static banana arcs are widened to the presented view by scripts/apply_dkc3_widescreen_overrides.py, verified on Lakeside Limbo. The scan includes adjacent 256-pixel cells so 21:9 objects, including objects in quick saves made by older builds, do not wait for a cell boundary to activate. Murky Mill's HDMA-windowed BG3 light cones are evaluated across the physical widescreen span instead of being clipped and repeated at the native edges, verified at the reported quick-save state in both 16:10 and 16:9. Floodlit Fish's underwater BG3 color-math composition now receives its subscreen tint across transparent side-margin pixels without clipping the reconstructed BG1 terrain at the native edges, verified at the reported quick-save state in 16:10, 16:9, and 21:9 with an unchanged 4:3 frame. KAOS's body layer, enabled partway down the frame by HDMA, now uses its complete object tilemap in the wide margins. This fixes the right-edge body cutoff and the repeated fragment at the left edge in the reported boss save. The streamed waterfall layer now decodes its authored columns into the wide margins, checked against the native tilemap every frame. Waterfalls keep their world positions after scrolling instead of disappearing at one edge and repeating at the other, verified at the reported save in all wide aspects. Bleak's snowball arena now preserves Mode 2's correct background/sprite order, so the snowman appears in front of the distant snowbank and behind foreground cover. Its bounded background maps fill 16:10, 16:9, and 21:9 using their hardware wrap, with the native center and gameplay unchanged by widening. Pothole Panic's cave now fills the wide view from its authored level map. Its shape-1 layout uses 32 metatile rows per column, twice the height of the previously supported horizontal layout.

A second layer that streams a strip of the level map, Riverside Race's reflection under the water line, is served in the margins from the terrain store at the row offset its rows prove every frame, while its static underwater backdrop wraps as a plane judged by row-level write tracking; and the first visible row of the margins now decodes like the rest instead of being blanked on tile boundaries. See docs/BRINGUP.md for the evidence.

Native macOS release

The v0.0.6 release fixes the Windows menu bar staying on screen in fullscreen, restores the requested window size under the menu bar, keeps the game DPI-aware when the launcher is skipped, and makes the Windows CMake configure work again; it carries the unchanged v0.0.4 Mac archive below. The Mac source, menus, and display-link pacing are retained; the Mac binary has not been rebuilt for these Windows-focused releases.

Download DKC3Recomp-v0.0.4-macOS-arm64.zip from Releases, extract it, and open DKC3Recomp.app. Select your own legally obtained North American (En,Fr) ROM in the launcher; the ROM stays at its original path and is never copied into the application bundle.

The published v0.0.4 bundle includes the Floodlit Fish tint fix, the river's second-layer reflection and backdrop in the margins, and the fix for the strip that flashed at the top of the margins; v0.0.3 carried 21:9 and the adjacent-cell placement activation fix.

This release is for Apple silicon running macOS 26 or newer. The app is ad-hoc signed rather than notarized, so if Gatekeeper blocks the first launch, Control-click the app in Finder, choose Open, and confirm once. The project is still in bring-up: the tested boot, launcher, save-state, and Lakeside Limbo paths work, but full-game compatibility is not yet claimed.

Building on Windows

The Windows x64 SDL build has passed all 23 project tests, a 4,801-frame headless run, and a packaged launcher/visible-game smoke check. Full-game completion and hardware/controller coverage are not claimed.

Requirements: Visual Studio 2022 with Desktop development with C++, CMake, and Python 3. Initialize the Git submodules before building. In PowerShell:

python scripts/generate_snesrecomp.py --analysis-backend python --rom 'C:\private\dkc3.sfc'
cmake -S . -B build-windows -G 'Visual Studio 17 2022' -A x64 `
  -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DSNESRECOMP_SDL_BACKEND=SDL2 `
  -DDKC3_ROM='C:\private\dkc3.sfc'
cmake --build build-windows --config Release --parallel 4
ctest --test-dir build-windows -C Release --output-on-failure

Run build-windows/Release/DKC3RecompSDL.exe. This is the shared SDL2/OpenGL host with 4:3, 16:10, 16:9, and 21:9 presentation, reconstruction upscaling, overlay, and audio rate control. Keep SDL2.dll and the assets directory beside the executable when moving it. Select your own ROM in the launcher. The separate DKC3Recomp.exe in the build directory is the legacy Win32 host; portable packages use the SDL executable renamed to DKC3Recomp.exe.

The game window now has native Game and View dropdown menus matching the Mac's game commands: Pause / Settings, Quick Save, Quick Load, fullscreen, nearest/bilinear scaling, and all four aspect ratios. Windows also exposes reconstruction scaling, all five dither/edge-reconstruction levels, level-edge policies, and screen models in View submenus. Selections apply live and are remembered beside the executable. Game > Pause / Settings > Settings opens the same detailed sliders and dropdowns as the Mac overlay, including reconstruction strength, softness, shading, audio, and volume; Controls and Assist Tools are adjacent tabs. These menus appear after launching the game, not on the pre-boot ROM picker. Ordinary Windows minimize/close commands replace the macOS-specific Hide and application-management commands. The Windows title bar, menu bar, and nested dropdowns use a dark theme. The product title is simply DKC3Recomp, without a pre-release label.

CMake fetches the pinned SDL 2.30.9 source when no SDL2 package is installed. The Python analysis backend avoids a Rust toolchain requirement. If cmake is not on PATH, use its full path from Visual Studio's bundled CMake tools. Private Windows smoke tests cover all four aspect modes with reconstruction, overlay, rewind, fast-forward, and quick-state save/load. ROM-free tests remain available with -DDKC3_BUILD_SNESRECOMP=OFF.

Building on macOS

Requirements: CMake, Ninja, SDL2 (brew install cmake ninja sdl2), Python 3, and Rust's cargo for the native analyzer (Python falls back when it is absent).

git clone --recurse-submodules https://github.com/elliotttate/DKC3Recomp.git
cd DKC3Recomp
python3 scripts/generate_snesrecomp.py --rom /private/path/dkc3.sfc
./build_macos.sh /private/path/dkc3.sfc

generate_snesrecomp.py verifies the ROM's hash, refreshes recomp/funcs.h, and emits the private recompiled units under generated/ (ignored by Git). build_macos.sh builds build/macos/DKC3Recomp.app and the headless runner, bundles SDL2, embeds the project icon, and ad-hoc signs the app. Open the app and select the ROM in its launcher.

Release builds enable interprocedural optimization when CMake's compiler and linker check succeeds, allowing optimization across the generated game code and runtime. Set -DDKC3_ENABLE_IPO=OFF when configuring to disable it; unsupported toolchains retain ordinary Release optimization. The project's runtime adaptations live as literal hunks under cmake/runtime-patches/; scripts/apply_dkc3_runtime_patches.py applies them to build-directory copies of the pinned snesrecomp sources at configure time and fails closed when an anchor moves (-DDKC3_RUNTIME_PATCH_DIR points a scratch build at another hunk directory, for example with tools/diagnostics/ added). They keep the scalar PPU's widescreen merge and composite off per-pixel branch chains, give the shared bus a direct path for plain cartridge ROM reads, stop the interpreter prefetching poll bytes it never consults, let the interpreter hand a compiled routine it reaches by jump to the compiled code whenever it owns the return frame that routine will pop (SNESRECOMP_LLE_JUMP_BOUNCE=0 restores the call-only behavior), re-interpret a compiled jump-table dispatch whose static table misses the live index instead of skipping the handler, and compile out audio reference diagnostics that a zero-valued trace define had left running on every sample. Tier-2 coverage journals are now opt in (SNESRECOMP_TIER2_CAPTURE=1), as is the stack-balance auditor (SNESRECOMP_STACKBAL_AUDIT=1). Measurements and validation limits are recorded in docs/BRINGUP.md.

On macOS a visible game window presents through a Metal layer driven by CAMetalDisplayLink on its own thread (runner/macos_metal_presenter.m): the emulation thread hands each frame to a mailbox and never enters the window system, which removes the WindowServer round trip inside the legacy OpenGL swap from the frame loop. The display link's callbacks also supply the pacing ticks, so frames stay locked to the refresh as before. The OpenGL path remains for the settings overlay, for hidden test windows and their drawable captures, and when DKC3_METAL_PRESENTER=0 is set.

The bank configurations carry exit-width contracts (exit_mx_at) and function splits that let the recompiler compile routines whose exits it cannot derive; they are tables in tools/ingest_dkc3_disasm.py (EXIT_MX_AT, FUNC_SPLITS) with the disassembly structure that justifies each, so a re-ingest reproduces them.

The SDL host gives the active player's game controller a short haptic pulse when a descending jump both defeats an enemy and rebounds upward. The trigger observes the enemy's actual defeated-sprite transition, so ordinary jumps, damage, swimming, and enemies defeated by unrelated causes do not activate it. The rumble request runs off the frame-critical thread. The pause menu's Settings tab shows the detected controller and rumble capability, provides a test pulse, enables or disables the feedback, and remembers that choice; setting DKC3_HAPTICS=0 when launching the app also disables it.

On macOS, optional MSU-1 replacement music can be enabled from Music > Choose MSU-1 Music Pack…. Choose PCM Folder for an extracted pack or .msu1 Archive for an archive, select it, then restart the app. The host accepts track-N.pcm, dkc3_msu-N.pcm, and dkc3_msu1-N.pcm naming, mixes the 44.1 kHz music with the game's original sound effects, and preserves the selected pack for later launches. Music > Disable Replacement Music restores the stock soundtrack after a restart. For development runs, DKC3_MSU1_PACK=/path/to/pack selects a pack, DKC3_MSU1_DISABLE=1 suppresses a saved selection, and DKC3_MSU1_GAIN=0.0..4.0 adjusts replacement-music gain. Quick loads and rewind keep the current music choice: older saves cannot bring the original soundtrack back underneath a replacement pack. Disabling replacement music also restores native sequencing when loading an MSU-era save.

For macOS audio isolation checks, the headless runner accepts an explicit DKC3_MSU1_PACK too (it never reads the app's saved pack preference). Combine it with DKC3_MSU1_GAIN=0, DKC3_SAVESTATE_INPUT, and DKC3_AUDIO_PCM to capture only the remaining stock sound effects; omit the gain override to capture the full replacement mix.

Headless validation

build-headless/dkc3_snesrecomp_headless /private/path/dkc3.sfc 600

runs the game for 600 frames with no window and prints frame, WRAM, VRAM, CGRAM, and OAM hashes with video and audio activity counts. The switches in runner/headless_main.c write frames as PPM (DKC3_FRAME_PPM, DKC3_FRAME_PPM_PREFIX with START/END/STEP), raw audio (DKC3_AUDIO_PCM), and memory dumps, restore an SRAM image or a quick save (DKC3_SRAM_INPUT, DKC3_SAVESTATE_INPUT), and replay scripted input (SNESRECOMP_INPUT_PLAY). DKC3_PPU_LEGACY=1 selects the independent scalar renderer for pixel-oracle comparisons. CMake applies the checked Mode 2 priority adaptation, with the other runtime hunks, to build copies of the pinned sources; the submodule stays unchanged.

Regenerating the bank configuration

The cfg files under recomp/ were derived from the H4v0c21 DKC3 disassembly by tools/ingest_dkc3_disasm.py, which needs a checkout of that project with its assembled dkc3.sym beside the bank sources:

python3 tools/ingest_dkc3_disasm.py --disasm /path/to/DKC3-Disassembly --output recomp

The output holds only names, addresses, bounded ranges, data regions, and finite dispatch contracts. The disassembly itself is GPL-3 and is not redistributed here; see THIRD_PARTY_NOTICES.md.

Tests

cmake -S . -B build-headless -G Ninja -DDKC3_ROM=/private/path/dkc3.sfc
cmake --build build-headless
ctest --test-dir build-headless --output-on-failure

The unit tests cover the host modules carried over from DKC2Recomp, the ingester, and the pacing-log tool. With DKC3_ROM set, the suite also boots the game headlessly and, on macOS, runs the app hidden.

Lineage

The host code, build scripts, and working rules come from DKC2Recomp; the game adapter and the ingester are new. Widescreen, save tools, and the diagnostics that DKC2Recomp accumulated are not carried over until DKC3 has its own evidence for them.

From the project's repository, fetched . Images load from GitHub.

Releases

Feed
  1. v0.0.6 DKC3Recomp v0.0.6 - Windows fullscreen menu bar fix Latest 3.2k
    Release notes

    This release fixes the Windows menu bar staying on screen in fullscreen and
    two smaller Windows host problems. The latest existing Mac build is included
    unchanged.

    Downloads

    • Windows: DKC3Recomp-v0.0.6-windows-x64.zip. Extract the entire folder

      and run DKC3Recomp.exe. Keep the bundled SDL2.dll and assets beside it.
      This build is unsigned.

    • macOS: DKC3Recomp-v0.0.4-macOS-arm64.zip. This is the exact archive

      from the previous releases, not a new Mac build. It requires Apple silicon
      and macOS 26 or newer, and retains its existing ad-hoc signature.

    Supply your own headerless North American (En,Fr) DKC3 ROM (4 MiB), SHA-256
    2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32b.
    No ROM, save files, generated C, or gameplay captures are included.

    Windows fixes

    • The Game/View menu bar no longer stays drawn across the top of the display

      in fullscreen. It is detached when the borderless fullscreen window appears
      and reattached before the windowed frame is restored, so the fullscreen
      image covers the whole display. This applies to View > Toggle Full Screen,
      Escape, and a saved fullscreen preference that starts the game fullscreen.

    • Installing the menu bar had trimmed its height from the requested window

      size; the first window is again exactly the chosen window scale.

    • With "skip launcher" enabled the game started without the launcher's DPI

      settings and was bitmap-scaled by Windows; the game now sets the same
      DPI awareness itself.

    • The Windows CMake configure failed after the 2026-09-10 runtime adaptation

      work because its manifest used backslash paths; it now uses POSIX paths.

    Host-only changes. No cartridge, widescreen, dispatch or Mac code changed.

    Verification and scope

    • All 28 Windows project tests pass, including private-ROM boot and the

      four aspect-ratio smoke checks; windows_menu now also asserts the
      retained client size, menu detach/restore, command routing while detached
      and the fullscreen label.

    • Live check with the private ROM in an isolated directory on a 3456x2170

      display: windowed 960x720 with the bar; the menu item and the saved
      fullscreen preference both produced a borderless window with no menu and a
      client area equal to the monitor; the menu item and Escape restored the bar
      and the 960x720 window.

    • The Mac archive was checked against the previous release's SHA-256:

      5b8966c44d6973f8244939c49c23a2d25fc0085bc7513ae87e3ab6259f986601.
      It was not rebuilt or rerun on this Windows machine.

    Full-game traversal, broad hardware/controller coverage and cross-machine
    frame-pacing benchmarks remain unverified. See docs/BRINGUP.md for the
    specific checks.

  2. v0.0.5 DKC3Recomp v0.0.5 - Windows and macOS 1.3k
    Release notes

    DKC3Recomp v0.0.5 - Windows and macOS

    This release adds a native Windows x64 build with the shared Mac/PC settings
    and dark Windows menus. The latest existing Mac build is included unchanged.

    Downloads

    • Windows: DKC3Recomp-v0.0.5-windows-x64.zip. Extract the entire folder

      and run DKC3Recomp.exe. Keep the bundled SDL2.dll and assets beside it.
      This build is unsigned.

    • macOS: DKC3Recomp-v0.0.4-macOS-arm64.zip. This is the exact archive

      from the previous release, not a new Mac build. It requires Apple silicon
      and macOS 26 or newer, and retains its existing ad-hoc signature.

    Supply your own headerless North American (En,Fr) DKC3 ROM (4 MiB), SHA-256
    2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32b.
    No ROM, save files, generated C, or gameplay captures are included.

    Windows improvements

    • Dark title bars in both the launcher and game, plus dark Game/View menus

      and nested dropdowns. The product title is now simply DKC3Recomp.

    • Native Pause / Settings, quick save/load, fullscreen, About and Quit commands.
    • Live 4:3, 16:10, 16:9 and 21:9 selection; nearest, bilinear and reconstruction

      scaling; all five reconstruction modes including dither decoding; level-edge
      policies and Raw/CRT/Composite/Trinitron screen models.

    • Shared detailed settings for reconstruction strength, softness and shading,

      audio, controls and Assist Tools. Open Game > Pause / Settings > Settings.

    • Settings and native menu checkmarks stay synchronized and persist locally.
    • Closing the game also works while its settings overlay is open.

    The Mac source, menus, display-link pacing and platform-specific build paths
    remain in the repository. Windows additions are platform-guarded; portable
    presentation and audio-rate control remain shared. The carried-forward Mac
    archive retains its original embedded version and UI labels.

    Verification and scope

    • All 23 Windows project tests pass, including private-ROM boot and checks at

      all four aspect ratios with reconstruction, overlay, rewind, fast-forward
      and save/load. The separate ROM-free configuration passes all 17 tests.

    • Packaged Windows launcher, game, dark menus, nested aspect selection,

      detailed settings and clean window-close were verified locally.

    • The Mac archive was checked against the previous release's SHA-256:

      5b8966c44d6973f8244939c49c23a2d25fc0085bc7513ae87e3ab6259f986601.
      It was not rebuilt or rerun on this Windows machine.

    Full-game traversal, broad hardware/controller coverage and cross-machine
    frame-pacing benchmarks remain unverified. See docs/BRINGUP.md for the
    specific checks and known runtime diagnostics.

  3. v0.0.4 DKC3Recomp v0.0.4 (Alpha) - macOS Pre-release 16
    Release notes

    Alpha / pre-release

    DKC3Recomp is still in bring-up. This build fixes the widened presentation
    of Riverside Race's water and the strip that flashed at the top of the
    margins, and carries the Floodlit Fish tint fix; it is not a claim of
    full-game compatibility.

    You must supply your own headerless North American (En,Fr) DKC3 ROM. The
    supported 4 MiB image has SHA-256
    2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32b.
    No ROM, save data, generated C, screenshots, music, or extracted game assets
    are included in the download.

    What's new in v0.0.4
    • Riverside Race's water keeps its reflection into the margins: the second

      layer's rows that stream a strip of the level map are served from the
      terrain store at the row offset they prove every frame, and its static
      underwater backdrop wraps as a plane judged per map row rather than per
      VRAM page.

    • The first visible row of the margins decodes like the rest; a rule

      carried over from DKC2Recomp blanked it on tile boundaries, which showed
      as a strip flashing at the top of the margins as the camera drifted.

    • Floodlit Fish's underwater tint reaches the margins; the fill that

      supplies it runs only where the native subscreen row is fully covered.

    • Headless diagnostics: per-frame PPU window, color-math, and HDMA table

      state, the second-layer verifier's trace, and the prefill's phase and
      row pairing per frame.

    • Includes v0.0.3's 21:9 mode and placement activation fixes.
    macOS build
    • Apple silicon (arm64), macOS 26 or newer.
    • Ad-hoc signed and not notarized. If Gatekeeper blocks the first launch,

      Control-click DKC3Recomp.app, choose Open, and confirm once.

    • Includes its SDL2 runtime and original project icon.
    • Open the app and select the supported ROM in the launcher; the ROM remains

      outside the application bundle.

    Validation
    • Built from commit 5afdacb with the pinned submodules.
    • All CTest checks passed, including the private-ROM headless boot and the

      hidden macOS app, 16:10, and quick-state smoke tests.

    • Riverside Race: at the reported save and 128 pixels on, the reflection

      continues into both margins; the native window is unchanged and the
      Lakeside Limbo corpus keeps every native and margin cell matching its
      decode on every frame.

    • The 4:3 replay of the Lakeside Limbo run is bit-for-bit unchanged.
    • The extracted release ZIP passed strict code-signature verification and a

      hidden app run.

    • ZIP SHA-256: 5b8966c44d6973f8244939c49c23a2d25fc0085bc7513ae87e3ab6259f986601.

    Whole-game traversal, crowded-screen OAM behavior at the maximum width, Intel
    Macs, notarization, and the carried-over Windows host remain unverified.
    Floodlit Fish was not re-checked after the fill's gate.

  4. v0.0.3 DKC3Recomp v0.0.3 (Alpha) - macOS Pre-release 6
    Release notes

    Alpha / pre-release

    DKC3Recomp is still in bring-up. This build adds 21:9 presentation and fixes
    the reported late enemy activation in ultrawide; it is not a claim of
    full-game compatibility.

    You must supply your own headerless North American (En,Fr) DKC3 ROM. The
    supported 4 MiB image has SHA-256
    2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32b.
    No ROM, save data, generated C, screenshots, music, or extracted game assets
    are included in the download.

    What's new in v0.0.3
    • Added a selectable 21:9 mode at 446x224 (approximately 20.91:9), alongside

      4:3, 16:10, and 16:9.

    • Widescreen placement scans now include the adjacent 256-pixel spatial cells,

      preventing enemies and collectibles in those cells from waiting for the
      camera to cross a native-screen boundary before activating.

    • The culling fix works with existing quick saves; it does not rebuild or reset

      their preserved object state.

    • Includes v0.0.2's Murky Mill widescreen light-cone fix.
    macOS build
    • Apple silicon (arm64), macOS 26 or newer.
    • Ad-hoc signed and not notarized. If Gatekeeper blocks the first launch,

      Control-click DKC3Recomp.app, choose Open, and confirm once.

    • Includes its SDL2 runtime and original project icon.
    • Open the app and select the supported ROM in the launcher; the ROM remains

      outside the application bundle.

    Validation
    • Built from commit bc2856e with the pinned submodules.
    • All 20 CTest checks passed, including the private-ROM headless boot, hidden

      macOS app, 16:10, 21:9, and quick-state smoke tests.

    • On the supplied 21:9 quick save, the reported Sneek and nearby K token now

      activate before the old placement-cell boundary; the Sneek is rendered by
      replay frame 7.

    • The exact 4:3 replay remains bit-for-bit unchanged. With cull widening

      disabled, all four aspect modes reproduce their pre-change frame and machine
      state hashes.

    • The extracted release ZIP passed strict code-signature verification, a

      180-frame hidden app run with overlay, rewind, and fast-forward, and a
      separate 21:9 hidden-app run.

    • ZIP SHA-256: 8518359417c2c4a622e3460966d69e6ac648201429bcb794f7fe7bb841d4a93b.

    Whole-game traversal, crowded-screen OAM behavior at the maximum width, Intel
    Macs, notarization, and the carried-over Windows host remain unverified.

  5. v0.0.2 DKC3Recomp v0.0.2 (Alpha) - macOS Pre-release 6
    Release notes

    Alpha / pre-release

    DKC3Recomp is still in bring-up. This build fixes the reported Murky Mill
    widescreen light-cone clipping; it is not a claim of full-game compatibility.

    You must supply your own headerless North American (En,Fr) DKC3 ROM. The
    supported 4 MiB image has SHA-256
    2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32b.
    No ROM, save data, generated C, screenshots, music, or extracted game assets
    are included in the download.

    What's new in v0.0.2
    • Murky Mill's HDMA-windowed BG3 light cones now continue through the 16:10

      and 16:9 margins instead of clipping at a native edge and repeating on the
      opposite side.

    • Windowed 32-column backgrounds are rendered over the physical widescreen

      span so the SNES PPU window is evaluated at the correct screen position.

    • Ordinary bounded backgrounds retain their authentic 256-pixel repeat, and

      the native 4:3 presentation is unchanged.

    macOS build
    • Apple silicon (arm64), macOS 26 or newer.
    • Ad-hoc signed and not notarized. If Gatekeeper blocks the first launch,

      Control-click DKC3Recomp.app, choose Open, and confirm once.

    • Includes its SDL2 runtime and original project icon.
    • Open the app and select the supported ROM in the launcher; the ROM remains

      outside the application bundle.

    Validation
    • Built from commit 9f6e50b with the pinned submodules.
    • 19 of 19 CTest checks passed, including the private-ROM headless boot and the

      hidden macOS app, 16:10, and quick-save smoke tests.

    • At the reported quick-save state, the 16:9 native center and the complete

      4:3 frame are pixel-identical with the fix toggled off and on.

    • The extracted release ZIP passed an additional 180-frame hidden-app run with

      overlay, rewind, and fast-forward enabled.

    • Deep strict code-signature verification passed before and after archiving.
    • ZIP SHA-256: 60088991f9e2e438145d6402bce1807a16fa3d990e510cd84e6023ef6a630af8.

    Traversal through the whole stage and other windowed-effect variants, Intel
    Macs, notarization, and the carried-over Windows host remain unverified.

  6. v0.0.1 DKC3Recomp v0.0.1 (Alpha) - macOS Pre-release 6
    Release notes

    Alpha / pre-release

    DKC3Recomp is still in bring-up. This build makes the current native macOS
    foundation available for testing; it is not a claim of full-game compatibility.

    You must supply your own headerless North American (En,Fr) DKC3 ROM. The
    supported 4 MiB image has SHA-256
    2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32b.
    No ROM, save data, generated C, screenshots, music, or extracted game assets
    are included in the download.

    macOS build
    • Apple silicon (arm64), macOS 26 or newer.
    • Ad-hoc signed and not notarized. If Gatekeeper blocks the first launch,

      Control-click DKC3Recomp.app, choose Open, and confirm once.

    • Includes its SDL2 runtime and a new original macOS app icon.
    • Open the app and select the supported ROM in the launcher; the ROM remains

      outside the application bundle.

    Included in this alpha
    • Native boot through the Rare logo, title, Northern Kremisphere map, and

      Lakeside Limbo attract path.

    • Experimental 16:10 and 16:9 presentation, with native centering when a scene

      has not passed its widescreen evidence gate.

    • Widened Lakeside Limbo terrain, placed-object activation, sprite culls, and

      static banana arcs.

    • Configurable input, launcher and in-game overlay, rewind, fast-forward, and

      quick save/load support.

    Validation
    • Built from commit b65360d with the pinned submodules.
    • 19 of 19 CTest checks passed, including the private-ROM headless boot and the

      hidden macOS app, 16:10, and quick-save smoke tests.

    • The extracted release ZIP passed an additional 180-frame hidden-app run with

      overlay, rewind, and fast-forward enabled.

    • Deep strict code-signature verification passed before and after archiving.
    • ZIP SHA-256: 9ea6d3e939f2d67aad04d05596ef510a7350da84fa1addd9304477e38b231112.

    Full-game completion, Intel Macs, notarization, and the carried-over Windows
    host remain unverified.

Works for me

Did it work on your PC? A quick report tells other players which versions are safe to try.

Sign in to add a report

Discussion

No posts yet. Ask a question, share your setup or post a clip.

Sign in to post