RetroNative

Bringing classic games to modern platforms through native recompilation.

RetroNative's projects translate a console game's machine code ahead of time into a program that runs natively on today's computers. No emulator in the loop, and no game files in the box: you bring your own copy.

A laptop playing an original 8-bit side-scrolling platformer.
Original illustration — not gameplay footage

Mission

Why RetroNative

Classic games were written for consoles that are no longer made. RetroNative works on ports that carry those games over to the computers people use today, as native programs, while respecting the people who made them and the players who own them.

PowerPC · big-endian

  1. lwz r11, 0x1c(r31)
  2. addi r3, r11, 16
  3. rlwinm r4, r3, 2, 0, 29
  4. stw r4, 0x20(r31)
  5. bl update_frame

arm64 · native

  1. ldr w11, [x19, #0x1c]
  2. rev w11, w11
  3. add w3, w11, #16
  4. lsl w4, w3, #2
  5. rev w4, w4
  6. str w4, [x19, #0x20]
  7. bl update_frame
Illustrative instructions, not taken from any game: the same work, recompiled once, before the game ever runs.
  • Native, not emulated

    A game's code is translated once, ahead of time, and built by a modern compiler for the machine you own. No emulator interprets it while you play.

  • Your own copy

    Projects ship no game code, assets or executables, and never link to game files. Each one works from a copy the player owns.

  • Credit the foundations

    Recompilation stands on open-source tools and earlier ports. Each project names what it builds on and keeps its licenses.

How it works

Recompiled, not emulated

  1. Start from your disc

    The player extracts their own copy of the game. Its executable is analysed: where every function starts and ends, and how its jumps branch.

  2. Recompile ahead of time

    The console's machine code is translated into C++, once, before anything runs. A modern compiler turns that C++ into native code for the target CPU.

  3. Run natively

    A runtime stands in for the console: its kernel, graphics, audio and controllers, mapped onto the host platform's own APIs.

Projects

Projects

Every project is a separate port with its own status. Nothing here is a release or a download.

Unofficial fan project

ReCarbon is an unofficial fan project. It is not affiliated with, endorsed by or sponsored by Electronic Arts Inc. or the Need for Speed brand. Need for Speed and Carbon are trademarks of Electronic Arts Inc. and are used here only to describe the game. No game files are included or distributed: you need your own legally obtained copy of the Xbox 360 disc.

Unofficial fan project

reFrozen is an unofficial fan project. It is not affiliated with, endorsed by or sponsored by Blizzard Entertainment, Inc. Warcraft and The Frozen Throne are trademarks of Blizzard Entertainment, Inc. and are used here only to describe the game. DotA Allstars is a community map by its respective authors. No game files are included or distributed: you need your own legally obtained copy of Warcraft III: Reign of Chaos and The Frozen Throne.

All projects

Contributors

Contributors

GitHub

On GitHub

RetroNative's organization on GitHub is where its projects live. Repositories are listed there as they become public.

Visit github.com/retronative (external site)