Gen4Recomp: Pokémon Diamond, Pearl, and Platinum Ported to Native PC with Zero Emulation

Developer sohamb117 has released nativeplat (gen4recomp): compiling Pokémon Diamond, Pearl, and Platinum from decompiled C to WebAssembly and back to native C via wasm2c—bringing 4x 3D upscaling, dynamic battle layouts, save editors, and LAN Union Rooms natively to PC.

Gen4Recomp: Pokémon Diamond, Pearl, and Platinum Ported to Native PC with Zero Emulation

Following the triumphant native PC recompilations of Generation 1 (Pokémon Red & Blue) and Generation 2 (Pokémon Crystal), the holy grail of modern handheld preservation has officially arrived: Generation 4 has made the leap to native personal computers.

Developer sohamb117 has unveiled nativeplat (gen4recomp)—a native desktop ecosystem that runs Pokémon Diamond, Pokémon Pearl, and Pokémon Platinum as pure, standalone PC executables. Make no mistake: this is not an emulator packaged inside an Electron wrapper, nor is it a melonDS fork. Built from the ground up using the reverse-engineered C source code from the pret decompilation projects, nativeplat compiles the entire game logic through WebAssembly and back into native host C via wasm2c. The result is an uncompromising, lag-free PC release loaded with Gen1Recomp-style deluxe enhancements: 4x 3D upscaling, dynamic widescreen battle transitions, integrated save editors, full Pal Park GBA cartridge bridging, and even real-time wireless LAN Union Rooms.


The Architecture: From Decompilation to wasm2c and Native C

For over a decade, playing Nintendo DS Pokémon games on desktop hardware required emulators like DeSmuME or melonDS. While these emulators are engineering triumphs, they must simulate the dual ARM946E-S and ARM7TDMI processors at runtime, interpreting machine code and virtualizing hardware registers on every video frame.

nativeplat completely circumvents dynamic emulation through an ingenious multi-stage compilation pipeline:

PIPELINE // NATIVEPLAT WASM2C RECOMPILATION TOPOLOGY

[STAGE 1: DECOMPILATION]
pret C Source (pokediamond / pokepearl / pokeplatinum)
       │
       ▼  (wasi-sdk 34 / Clang)
[STAGE 2: WASM INTERMEDIATE]
game.wasm (wasm32-wasip1 compilation unit)
       │
       ▼  (wabt wasm2c + custom postprocessor)
[STAGE 3: HOST C CODEGEN]
Host C Sources + Custom Linking Interface (np_core.h)
       │
       ▼  (Native Compiler: Clang / Zig 0.17)
[STAGE 4: STANDALONE RUNTIME]
nativeplat (.app / .exe) + SDL3 Presentation + Metal/DirectX/Vulkan Hardware Core

By compiling the verified C decompilations into WebAssembly modules and then using WebAssembly’s wasm2c translator to emit clean, ANSI C source code tailored to the host architecture, nativeplat creates an airtight, deterministic binary that interfaces directly with host OS APIs. Video rasterization, touch input, audio rendering, and memory mapping run directly through a lightweight native C runtime with zero translation layers.


Feature Parity: The Deluxe Modern Player Suite

Much like Gen1Recomp redefined how players experience Kanto, nativeplat doesn't just port Sinnoh—it enhances every single facet of the player experience:

Giratina awaiting the player in the Distortion World on the Nintendo DS dual screens
Encountering Giratina in the Distortion World: Nativeplat delivers native 60 FPS performance, custom camera tilts, and instant save state rewinds.

1. Dynamic Widescreen & In-Battle Layout Shifts

Nintendo DS games were designed for two vertically stacked 256×192 screens. nativeplat supports every imaginable display configuration: vertical stacking, side-by-side, hybrid (one large master screen with a smaller PIP auxiliary screen), single screen with hotkey toggling, and 90-degree monitor rotation.

Even more impressive is its Dynamic Battle Layout: when the player enters combat (NP_STAT_IN_BATTLE), the app automatically transitions from a vertical overworld orientation into an expanded widescreen combat layout, positioning the glorious 4x upscaled 3D battlefield front-and-center while docking the touch command screen neatly to the side.

2. Free Field Camera Zoom & 3D Perspective Tilt

Sinnoh's towns and routes were constructed using 3D tilemaps viewed from a fixed isometric angle. nativeplat unlocks the camera matrices: players can freely adjust survey zoom from 50% to 200% using - and =, or tilt the 3D perspective up to +30 degrees using hotkeys 3 and 4 to look out across Mount Coronet and the sea routes from fresh viewpoints.

3. 4x 3D Geometry Upscaling

While 2D character and monster sprites are rendered with pixel-perfect integer clarity, the underlying 3D world geometry, buildings, and battle arenas can be rendered at up to 4x native resolution, eliminating the jagged polygon seams of original DS hardware while preserving the tactile 16-bit sprite aesthetic.

Official Pokemon Platinum box art featuring Giratina Origin Forme
Pokémon Platinum Version: Fully playable alongside Diamond and Pearl with verified feature parity and zero emulation overhead.

4. Comprehensive Built-In Save Editor

Players no longer need external tools like PKHeX to tweak their adventures. Built directly into nativeplat is a full-featured, 6-tab graphical save editor:

  • Trainer Tab: Edit name, Secret ID, gender, and export high-resolution PNG Trainer Cards and Pokédex Diplomas.
  • Inventory & Money: Add Pokéballs, Berries, TMs, and adjust currency with instant undo (C) and redo (V).
  • Mystery Gift / Wonder Cards: Inject classic distribution events directly into your cartridge, unlocking the Member Card (Darkrai), Oak's Letter (Shaymin), and Secret Key (Rotom Appliance forms).
  • Standalone Mode: Launch the editor on any raw .sav or DeSmuME .dsv file directly from the terminal (nativeplat --editor --save backup.sav).

5. Full Pal Park & Dual-Slot GBA Integration

One of Generation 4's most celebrated features was its interaction with the Game Boy Advance cartridge slot. In nativeplat's settings, players can mount a legally dumped GBA ROM (such as pokeemerald.gba) and its matching .sav file. This immediately activates authentic Dual-Slot wild encounter rates throughout Sinnoh and unlocks the "MIGRATE FROM EMERALD" option on the title screen for full Pal Park monster transfers!

6. Real-Time LAN & Online Relay Union Rooms

Multiplayer in native decompilations is often an afterthought, but nativeplat includes full local wireless emulation over standard IP networks. By running two instances of the app on your local network, both players can walk into the Pokémon Center Union Room, talk to each other, trade Pokémon, draw on the community canvas, and battle in real time. For long-distance play, an integrated Relay client lets friends connect across the internet simply by sharing an IP and a 4-digit room PIN.


Quality of Life: Built for Modern Desktops

Every corner of nativeplat has been designed with modern ergonomics in mind:

NATIVEPLAT // SHORTCUT & HOTKEY REFERENCE

[HOTKEY]        [ACTION]
F1 / F2         Instant Quick-Save • Instant Quick-Load (from in-engine state)
F5 / F7         Take Snapshot • Load Snapshot
F6 (Hold)       Real-Time Rewind (scrub backwards through previous seconds)
1               Cycle Speed: 1x • 2x • 4x • 8x • Uncapped
F (Hold) / G    Turbo Fast-Forward (Hold / Toggle)
- / =           Field Camera Zoom In / Zoom Out (50% to 200%)
3 / 4 / 0       Camera Perspective Tilt (+30° / -30° / Reset)
F10 / Cmd+,     Open Integrated Options & Rebinding Menu
F12             Capture Clean Dual-Screen PNG Screenshot

In addition to speed controls, nativeplat incorporates an authentic Delta Skin engine: players can drag and drop .deltaskin bundles onto the window to frame the dual DS screens in beautifully illustrated handheld bezels in both landscape and portrait orientations.


Getting Started

In accordance with preservation standards, nativeplat does not ship with copyrighted ROM data or proprietary Nintendo BIOS files. Players provide their own legally acquired US Nintendo DS cartridge dumps:

  • Pokémon Diamond (USA): SHA-1 a46233d8b79a69ea87aa295a0efad5237d02841e
  • Pokémon Pearl (USA): SHA-1 99083bf15ec7c6b81b4ba241ee10abd9e80999ac
  • Pokémon Platinum (USA, Rev 1): SHA-1 0862ec35b24de5c7e2dcb88c9eea0873110d755c

Simply drop your .nds file onto the application window; the SHA-1 checksum is verified instantly, the cartridge filesystem is mounted, and the title card lights up with "Ready".

With pre-built binaries available for macOS (Apple Silicon and Intel Universal) and active cross-compilation toolchains in place for Windows x64 and iOS, nativeplat stands as one of the most comprehensive and technologically dazzling fan projects in Pokémon history.

Sinnoh has never looked, sounded, or played better. Grab your running shoes, fire up your compiler, and prepare to conquer Mount Coronet like never before.