Skip to content

Releases

DKC2Recomp v0.0.8 - Co-op fixes - Windows + macOS

Choose a tag to compare

@elliotttate elliotttate released this 13 Sep 22:13

DKC2Recomp v0.0.8 - Co-op carrying and rope fixes

The Windows update restores nearby partner carrying and fixes independent
rope climbing, animations and movement across rope nets in simultaneous TEAM
mode. The latest published macOS arm64 v0.0.6 archive is included unchanged;
it does not contain the new simultaneous co-op or MSU-1 integration.

Windows changes

  • Walk up to the other Kong and press the team-up button (SNES A, keyboard X
    by default) to carry them. Either player can initiate pickup when close
    enough. Native carrying, jumping, dropping and throwing remain available,
    and a thrown partner regains independent movement after landing.
  • Player 2 grabs the rope they touch, without moving Player 1 or changing
    camera ownership. Each player can climb up and down with the proper
    animation, including when moving in opposite directions.
  • Single/double-rope junctions finish their transitions normally. Existing
    saves already stuck at a junction recover in place, and saves taken during
    unfinished transitions preserve the remaining animation.
  • Player 2 can turn and cross the entire rope net to either outer rope,
    instead of repeatedly turning in place. Horizontal-rope animation callbacks
    are also enabled for independent players.
  • Includes synthetic policy/emitter checks and private input-driven carrying
    and rope regressions. The Windows snapshot check now supports clean trees.

The previous CRT controls, Reconstruct options, Donkey/Kiddy character-pack
support, MSU-1 music and other co-op fixes remain included.

Downloads

  • Windows x64: extract DKC2Recomp-v0.0.8-Windows-x64.zip and run
    DKC2Recomp.exe. DKC2RecompSDL.exe is the alternate SDL host. Keep the
    bundled DLLs and assets beside the executables.
  • macOS arm64: DKC2Recomp-v0.0.6-macOS-arm64.zip retains its original
    filename, version and ad-hoc signature. It is copied byte-for-byte from the
    previous Mac release
    and has not been rebuilt or run on a Mac for this release.

Supply your own headerless USA v1.0 ROM (SHA-256
35421a9af9dd011b40b91f792192af9f99c93201d8d394026bdfb42cbf2d8633).
ROMs, saves, character art, music packs and personal settings are excluded.
Character-import and MSU-1 setup guides are included in the Windows download.

Validation and limits

The completed feature build passed all 86 configured tests. Private
replays cover Diddy/Dixie and Donkey/Kiddy carrying, independent movement,
animated rope climbing, save/load, jumping and reattachment, stuck-junction
recovery and full net traversal. Live Windows testing used Player 1 on the
keyboard and Player 2 on a gamepad; the reported rope behavior was confirmed
working before release preparation.

Full-game co-op, true horizontal-rope gameplay, unusual animal transitions
and non-Windows builds of these changes remain unverified. Replacement
characters retain original DKC2 collision boxes and some movement rules.

Carried Mac archive SHA-256:
20947ee9ee4bc64df13b2aeae68440288811f8e6b5b263bc8c4c8258352a6094.

Release artifact verification

Built from commit 3b386cb4a6b67472bc6693664ce61a11190e7b5d. The final clean-commit Release build passed 86/86 tests in 207.53 seconds. Fresh Windows ZIP extractions completed four 180-frame runs: each desktop host with CRT and with Reconstruct; SDL also loaded the reported rope-junction snapshot. Both packaged executable hashes match the build, and the archive excludes private files.

Windows archive SHA-256:
61f3b29a6624b4999dcd5ee6d439dac52528fe85352b95d62f127c9e6fd35eee.

DKC2Recomp v0.0.7 - Windows + macOS

Choose a tag to compare

@elliotttate elliotttate released this 13 Sep 19:50

DKC2Recomp v0.0.7 - Windows + macOS

The Windows build adds simultaneous two-player TEAM mode, complete CRT and
Reconstruct controls, optional Donkey/Kiddy characters, and MSU-1 replacement
music. The download also includes the latest published macOS arm64 v0.0.6
archive unchanged. The Mac binary predates the new co-op and MSU-1 integration.

Windows changes

  • P1 keyboard and P2 gamepad can play together in TEAM mode. Fixes cover
    attacks, barrel ownership, damage/revival, Rambi mounting, death handoff,
    widescreen movement and banana collection while the other Kong is mounted.
  • Game/View/Input dropdowns and the Escape pause menu support live settings
    and input selection. GDI now supports the ImGui overlay; native OpenGL
    supports all five Reconstruct modes and three tuning sliders.
  • CRT TV includes Living room, Studio monitor, Soft and Custom presets,
    four mask choices, scanlines, sharpness, mask strength, glow, halation and
    curvature. WGL and SDL share the rendering passes.
  • Escape > Characters selects Donkey/Kiddy from a private Project Kongs pack.
    Both slots retain independent attack/throw state in co-op. The importer and
    setup instructions are included; character art is supplied separately.
  • Escape > Settings > Audio selects an external MSU-1 PCM folder with live
    enable/disable and music volume. Original sound effects remain, missing
    tracks fall back to SNES music, and save/rewind restarts the restored song.
  • Preserves v0.0.6 source changes, including SDL audio rate control, Mac
    display pacing, the Retina pause-menu fix and save unlock tools.

Downloads

  • Windows x64: extract the complete DKC2Recomp-v0.0.7-Windows-x64.zip
    and run DKC2Recomp.exe. DKC2RecompSDL.exe is the alternate SDL host.
    Keep the bundled DLLs and assets beside the executables. Windows 10/11
    supplies the Universal C Runtime used by the app-local MSVC libraries.
  • macOS arm64: DKC2Recomp-v0.0.6-macOS-arm64.zip is copied byte-for-byte
    from v0.0.6.
    It retains its original filename, embedded version and ad-hoc signature.
    It has not been rebuilt or run on a Mac for this release.

Supply your own headerless USA v1.0 ROM (SHA-256
35421a9af9dd011b40b91f792192af9f99c93201d8d394026bdfb42cbf2d8633).
ROMs, saves, character art, music packs and personal settings are excluded.
See the included docs/PROJECT_KONGS.md and docs/MSU1_AUDIO.md for setup.

Validation and limits

The feature milestone passed 80/80 configured tests. GPU comparisons covered
40 flat-display settings and 13 CRT variations. Private tests verified the
102-track restoration pack headers, changed music with identical gameplay and
video hashes, preserved sound effects, and exact missing-track fallback.
Donkey/Kiddy co-op barrel replays checked origins, direction and recovery.
Live checks confirmed Escape, music switching and Kiddy on Rambi alongside
Donkey.

The final v0.0.7 Release build passed 84/84 CTest checks in 194.47 seconds,
including both packaging layouts and the merged audio/pacing tests. A fresh
Windows ZIP extraction completed four 180-frame runs: each desktop host with
CRT and with Reconstruct. The SDL runs loaded the private mounted scene and
selected MSU-1 track 6. Executable hashes matched the build, private files were
absent from the archive, and the clean first launch displayed the ROM picker.

Full-game co-op, all replacement poses, every music transition, physical
rumble feel and non-Windows builds of the new source remain unverified.
Replacement characters retain original DKC2 collision boxes and some movement
rules; this is not a complete DKC1/DKC3 mechanics transplant.

Carried Mac archive SHA-256:
20947ee9ee4bc64df13b2aeae68440288811f8e6b5b263bc8c4c8258352a6094.
Its original executable digest and embedded version were checked against the
published v0.0.6 metadata; the original release assets remain in place.

DKC2Recomp v0.0.6 - macOS

Choose a tag to compare

@elliotttate elliotttate released this 13 Sep 03:10

You must supply your own Donkey Kong Country 2 ROM (USA v1.0, 4 MiB,
SHA-256 35421a9a...). No ROM data is included or distributed here.

What's new in 0.0.6

  • CRT television display. Pause menu > Settings > Display switches the
    flat panel presentation to a tube simulation: each source line is drawn as
    an electron beam whose width follows its brightness, normalised so the
    picture keeps its light, with a fine aperture-grille phosphor mask, glow and
    halation, a gently curved tube face, and a dither. Three presets (Living
    room, Studio monitor, Soft) and six sliders; the tube fades to the flat image
    in small windows. DKC2_DISPLAY=crt and the DKC2_CRT_* variables select
    it for a run. The old "Screen model" combo is now "Phosphor colors"; its
    values and config key are unchanged.
  • Optional Donkey Kong and Kiddy Kong. Pause menu > Characters lets either
    playable slot use Donkey Kong or Kiddy Kong, remembered between runs, with
    mounted animal poses, character-specific barrel throws (Donkey overhead,
    Kiddy underhand), Down + Y hand slap / body slam, paired tag handoffs on
    Select, synchronised team pickup and throws, and no inherited helicopter
    glide. Original DKC2 movement, collision, abilities and audio remain
    authoritative. The sprite and animation data come from a private
    character pack you build yourself
    from your own Project Kongs checkout
    with scripts/import_project_kongs.py (see docs/PROJECT_KONGS.md), then
    load with Load character pack.... No game art is included in this
    archive or the source tree; without a pack the original pair is used.
  • Pause menu on Retina displays is now centred from ImGui's logical
    display size instead of the physical drawable, and its title bar can be
    dragged without snapping back.

Downloads

  • macOS arm64: open DKC2Recomp.app. The app is ad-hoc signed but not
    notarized; Control-click it and choose Open if Gatekeeper blocks the
    first launch.
  • Windows: no Windows build was refreshed for this release. The most recent
    Windows archive is on
    v0.0.5-r2
    and predates the features above.

Validation

macOS: built from commit c9ce402 (the tree of 6982010 plus the
version bump). The configured macOS suite passed 57 of 57 CTest checks
immediately before packaging, including the hidden CRT smoke run, the CRT
model, the overlay layout, the Project Kongs importer, and the Project Kongs
runtime checks, plus deep strict code-signature verification. The uploaded
ZIP was extracted fresh into a clean directory: the signature and version
survived, the extracted executable was byte-identical to the packaged build,
and it completed a hidden 180-frame run at 16:9 with the CRT display on.

Executable SHA-256:
068370009adcccec5feceeb7a904f97c3667527380202ef66d503055d2f5be53

DKC2Recomp v0.0.5 Refresh 2 - macOS + Windows

Choose a tag to compare

@elliotttate elliotttate released this 03 Sep 19:36

You must supply your own Donkey Kong Country 2 ROM (USA v1.0, 4 MiB,
SHA-256 35421a9a...). No ROM data is included or distributed here.

Full-game validation

The full game has been tested from start to finish and is working well across
all levels.

Refresh 2

  • The Windows x64 app has been rebuilt from the current SDL2/OpenGL runtime and
    now includes the portable audio improvements shipped in the refreshed Mac
    build: a 1024-frame device buffer, queue priming, and dynamic audio rate
    control.
  • The Apple-silicon Mac app includes display-linked frame pacing. On the tested
    ProMotion MacBook Pro, every one of 1,259 measured gameplay frames was shown
    for exactly one refresh; the previous free-running clock dropped or doubled
    a frame about twice per second.
  • Both platforms include the 16:10 presentation mode and the experimental
    Reconstruct upscaler with dither decoding.
  • The save unlock tool can clear every level, open the Lost World, and set
    Kremkoins or quick-save Banana Coins.

Downloads

  • Windows x64: extract the complete ZIP and run DKC2Recomp.exe. Keep
    SDL2.dll and the assets directory beside it.
  • macOS arm64: open DKC2Recomp.app. The app is ad-hoc signed but not
    notarized; Control-click it and choose Open if Gatekeeper blocks the
    first launch.

Validation

Windows: 60 application/runtime tests passed together, including the ROM,
SDL2/OpenGL, CRT, audio-rate, pacing, diagnostics, widescreen, and two-cycle
attract-mode checks. The packaging test also passed under its required dirty
fixture. The uploaded ZIP was extracted fresh and its packaged executable
completed a hidden 180-frame run at 16:10 with Reconstruct and dither decoding,
then exited cleanly.

macOS: the included archive is byte-identical to the refreshed, tested Mac
artifact built from commit 63ed6e4. That build passed 53 of 53 CTest checks,
including hidden app smoke runs, deep strict code-signature verification, and
the display-linked gameplay cadence measurement described above.

DKC2Recomp v0.0.5 - macOS + Windows

Choose a tag to compare

@elliotttate elliotttate released this 03 Sep 17:26

You must supply your own Donkey Kong Country 2 ROM (USA v1.0, 4 MiB,
SHA-256 35421a9a…). No ROM data is included or distributed here.

Full-game validation

The full game has been tested from start to finish and is working well across
all levels.

Native builds are included for:

  • Windows x64 β€” extract the complete ZIP and run DKC2Recomp.exe. This
    uses the full SDL2/OpenGL display path, including 16:10 and the experimental
    Reconstruct upscaler with dither decoding.
  • macOS arm64 β€” macOS 26, ad-hoc signed, and not notarized. Control-click
    the app and choose Open if Gatekeeper blocks the first launch.

What changed since v0.0.4

Game logic

  • Enemies whose behaviour script switches on touch damage no longer freeze at
    that point. The sprite sub-state dispatcher indexes a 16-slot table with two
    null slots after its first six handlers and a repeat of them for that flag;
    the recompiler had cut the table to six, so such objects took an
    out-of-bounds path and their scripts never stepped again. Seen as Screech's
    Sprint's Kloak hanging idle instead of throwing its TNT barrel; every enemy
    that uses the flag is affected.

Stages that now present in widescreen

  • Arctic Abyss, Castle Crush, Toxic Tower, and the K. Rool Duel arena. Their
    scroll handlers were not classified, so they fell back to a bounded 4:3
    screen with black bars.
  • Level-name cards are presented as bounded screens between black margins.

Level-wall presentation

  • Continued walls now show what the level map places beside them instead of a
    copy of the wall's edge column, which repeated features such as a mine's
    panel of red lamps once per margin column.
  • The glide slides the frame at a hold the level map reveals, not only at the
    map's first page: where the player is pinned at the authored world's edge
    with nothing beyond it (Screech's Sprint's start), the frame slides so the
    void never shows, and the bias moves at most one pixel per frame so a hold
    that comes and goes never jolts the picture.
  • A wall standing on a floor that continues past it is continued; a walled
    void run beside a held wall is continued; the proving row of a wall must be
    two metatiles thick.

Fixes in specific stages

  • Toxic Tower: the backdrop no longer shows through the castle wall in
    flickering patches (plane cells are judged by character transparency, and a
    band whose rows hold a strip that stops short of the wrap repeats the ring),
    and a one-frame flash of repeated ring columns while riding Rattly is gone
    (the terrain phase follows the frame's dominant scroll when nothing is at
    the camera phase).
  • Red-Hot Ride and Hot-Head Hop: foreground rocks and far spikes are presented
    as static plane bands; steam columns no longer appear over solid rock beside
    the view.
  • Bramble Blast, Bramble Scramble, Slime Climb, Barrel Bayou's intro, Haunted
    Hall's Kackle, Parrot Chute Panic's lower half, the ship hold's water
    surface, the vertical ship's mast, and the Gangplank Galleon rigging each
    received a margin fix; objects no longer vanish from a margin while still on
    screen, and sprites are no longer cut at the right edge near a level's left
    wall.

Experimental

  • A Reconstruct upscaler for high-density displays, off by default.

Diagnostics

  • The headless runner can replay the desktop app's rewind and fast-forward,
    reload a savestate at chosen frames, print the prefill's metatile fill map
    with ids, dump every scanline band's scrolls and policies, and print an
    object's record each frame; the trace reports the window and colour math
    registers and a chained-continuation count.

Validation

macOS: 50 of 50 CTest checks including the hidden app smoke runs, a
44-state Quick Save corpus at 16:9 and 16:10 with every native center
pixel-exact and no failures, and deep strict signature verification of the
packaged app.

Windows: all 58 test cases passed under their required preconditions (57
application/runtime tests together, plus the packaging test with its expected
dirty-tree fixture). The uploaded ZIP was then extracted fresh and its packaged
executable completed a hidden 180-frame SDL2/OpenGL run at 16:10 with
Reconstruct and dither decoding before exiting cleanly.

macOS build refreshed on 2026-09-03

The Mac archive on this release was rebuilt from commit 63ed6e4. The Windows
archive is the original v0.0.5 build and does not include these changes.

Frame pacing

  • The Mac app now paces each frame on the display's own refresh instead of a
    free-running clock. The window's display link delivers refresh ticks at a
    requested 60 Hz, so a ProMotion panel ticks at 60 rather than 120, and each
    frame is presented right after its tick, on the same refresh phase every
    time. Measured during scrolling gameplay on a ProMotion MacBook Pro, the
    earlier clock dropped or doubled a frame about twice a second while the FPS
    counter read 60; the display lock shows every frame for exactly one
    refresh. DKC2_DISPLAY_LOCK=0 keeps the old clock.
  • Audio keeps step with the display through dynamic rate control within half
    a percent of unity, and the audio device buffer is 32 ms instead of 64.
  • DKC2_PACING_LOG=<file> records the cadence and
    scripts/analyze_pacing_log.py summarises it.

Save tool

  • scripts/dkc2_unlock_levels.py marks every level of a save file as
    cleared, can open the Lost World (--lost-world marks Klubba's kiosks as
    paid and the five Lost World levels as beaten, which opens Krocodile Kore),
    sets Kremkoins (--kremkoins), and sets Banana Coins in a quick save
    (--banana-coins; the game does not store them in the file). It backs each
    file up beside itself and can repair a file the game shows as empty.

Validation of the refreshed Mac build: 53 of 53 CTest checks including
the hidden app smoke runs; the display-locked cadence was measured on a
loaded gameplay state with every frame shown for one refresh; the packaged
app passes deep strict signature verification and its extracted executable
hashes identically to the built one.

DKC2Recomp v0.0.4 (Alpha) - macOS

Pre-release

Choose a tag to compare

@elliotttate elliotttate released this 01 Sep 23:45

⚠️ This is an alpha / pre-release

Donkey Kong Country 2 is not finished. This build is published as an early
alpha so the current state is testable. Expect missing, wrong, or unstable
behaviour outside the tested paths, and treat the widescreen path as
experimental.

You must supply your own Donkey Kong Country 2 ROM (USA v1.0, 4 MiB,
SHA-256 35421a9a…). No ROM data is included or distributed here.

This release is the native macOS build (arm64, macOS 26, ad-hoc signed, not
notarized: Control-click the app and choose Open if Gatekeeper blocks the
first launch).

What changed since v0.0.3

Level-wall presentation

  • The inward view bias at level walls froze the picture for the camera's
    first 43 pixels away from a wall, then scrolled at catch-up speed while
    every sprite, HUD included, slid across it. The new default, Glide,
    keeps the wide frame inside the level so nothing past a wall is ever shown,
    but releases the inward view one pixel per eight pixels of camera travel:
    the background scrolls at seven eighths of the camera speed for 344 pixels
    and is then centered and locked.
  • The pause menu's Settings page gains a Level edge choice, remembered in
    launcher.cfg: Glide (default), Reflect terrain past the wall (view locked
    to the game's camera, the nearest authored columns mirrored into the
    unauthored strip), Black past the wall, and Shift view inward at the wall
    (the previous behaviour). DKC2_WIDESCREEN_EDGE=reflect|bars|shift|glide
    overrides it for one run.

Structural widescreen rules instead of per-scene fixes

  • Widescreen policy is now derived from live PPU geometry each frame: bounded
    backgrounds repeat their rendered scanline, a 64-column allocation whose
    extension page is another enabled layer's map counts as bounded, a bounded
    backdrop in a 64-column allocation continues each line at the period its
    own pixels prove, rolling terrain layers are classified per HDMA scanline
    band read from the cartridge's own tables, and a second physical terrain
    layer reads the owner's world-keyed store through an alias view. This
    removes the Mudhole, Topsail, Mainbrace, Krow's Nest, Parrot Chute,
    ship-hold, split-scroll role-swap, west-reflection, and east-mask special
    cases while reproducing their accepted output.
  • A new corpus tool replays every preserved Quick Save at 4:3, 16:9, and
    16:10 and checks the native center, visible margins, old-boundary seams,
    raw VRAM fallbacks, and runtime failures; the headless widescreen trace
    reports the presentation bias, visible margins, and HDMA band count.

Validation

49 of 49 CTest checks including the hidden macOS app smoke runs, a 15-state
Quick Save corpus at 16:9 and 16:10 with every native center pixel-exact and
no failures, held-Right motion profiles from the wall states under every
policy, and deep strict signature verification of the packaged app.

DKC2Recomp v0.0.3 (Alpha)

Pre-release

Choose a tag to compare

@elliotttate elliotttate released this 31 Aug 13:17

This is the first native Apple-silicon Mac release from this fork. DKC2Recomp
is still an alpha project, so keep normal in-game saves and important save
states backed up.

Highlights:

  • Native macOS .app with a Dock icon and AppKit Game/View menus.
  • 4:3, Mac-oriented 16:10, and 16:9 presentation modes.
  • Pixel Sharp and Smooth fullscreen scaling.
  • Escape returns fullscreen play to a window before opening the pause menu.
  • Native Quick Save/Quick Load commands for Slot 1.
  • Exact-rate 60.098811862 Hz Mac frame pacing.
  • Widescreen terrain, rigging, rain, water, cabin-wall, and stationary-HDMA
    fixes for the tested Pirate Panic, Topsail Trouble, Rattle Battle, Mainbrace
    Mayhem, and Ship Hold/Lockjaw scenes.

This archive contains no ROM, SRAM, or save state. On first launch, select your
own legally obtained North American v1.0 ROM. The supported clean ROM is
verified by the app.

The app is arm64, targets macOS 26, and is ad-hoc signed but not notarized. If
Gatekeeper quarantines it, Control-click the app in Finder, choose Open, and
confirm once.

Validation:

  • 48/48 configured macOS tests passed.
  • The extracted release archive passes strict deep signature verification.
  • Executable SHA-256:
    ab49b7cf524a19b9c15e0be7ccc4c81a620d1c84b972dfedd34472c6f6067b4e
  • ZIP SHA-256:
    9e232b389deb288f806acbda87e15646bb519ba3dd5699c3df59bbcf35a031c7

Known scope: this release includes exact-state and visible acceptance for the
reported scenes, but the full fresh-entry cross-layout matrix is not yet a
whole-game widescreen guarantee.