Open-source project
RSDKModding/RSDKv5-Decompilation avatar
RSDKModding/RSDKv5-Decompilation

RSDKv5-Decompilation: the Retro Engine v5 source, with a mod loader

A complete decompilation of Retro Engine (v5)

571 stars241 forksC++NOASSERTION

At a glance

What is it?
This repository holds a complete decompilation of the Retro Engine v5 and v5Ultimate, rebuilt as C++ with CMake and extended with a built-in mod loader, a shader compiler and extra Windows backends. It states plainly in its own README that it is not to be used to pirate games, and it asks you to support the engine's actual owners instead.
Who is it for?
The repository fits a modder or engine researcher who wants to read and extend the Retro Engine as source, and who can satisfy the README's dependency list and CMake build on their own machine. It is the wrong starting point for someone who wants to play a retail game, since the project carries no game content of its own and its licence is a custom one with a LICENSE.md you have to read, and the wrong choice if you cannot supply the engine's own assets.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Engine source rather than a game

The repository describes itself as a complete decompilation of Retro Engine v5 and v5Ultimate, and the README states the same thing in slightly different words. The primary language is C++ and the default branch is master.

A decompilation is a reconstruction of source code from a shipped binary, so what this repository contains is the engine, not a game. The layout confirms it. There are two parallel trees, RSDKv5/ and RSDKv5U/, with matching RSDKv5.sln, RSDKv5U.sln and Xcode project directories, plus a Game directory, a platforms directory, a filters directory, a dependencies directory and a props directory. The Game directory is where a game built on the engine would keep its own content.

The engine itself is not the work of this project's authors, and the README says so in its first heading. Retro Engine is currently owned by Evening Star, and the project urges you to follow and support their projects if you enjoyed this one.

The second heading of the README is the other thing a reader needs to see before anything else. It says not to use this decompilation project as a means to pirate Sonic Mania Plus or any other RSDKv5(U) games, that the project does not condone using it for piracy in any form, and that it was made with love and care for the source material and for purely educational purposes.

That is the project's own statement of its purpose, and it is worth taking seriously for a practical reason. The engine is the reusable part, the mod loader is what makes it useful without any game data, and the licence file at the repository root is the thing that decides what you may do with the result.

The added tweaks are a mod loader and a shader compiler

The Additional Tweaks section lists what this project adds on top of the decompiled engine, and there are three entries.

The first is a built-in mod loader and API allowing to easily create and play mods with features such as save file redirection and XML asset loading, and the README notes this is supported by all sub-versions of v5U. Save file redirection is the part that matters most in practice, because it means a mod can keep its own data rather than writing into the game's own save file, which is what makes several mods coexist instead of overwriting each other. XML asset loading is what lets a mod ship its own art without recompiling the engine.

The second is a built-in shader compiler for backends and platforms that support it. The third is various other backends added for Windows aside from the usual DirectX 9 backends, which in practice means the engine is not tied to a single graphics API on that platform.

There is one more piece of context in the README that affects how you use the repository. If you are here for Sonic Mania, you have the option of building RSDKv5 alongside Mania in the Sonic Mania Decompilation repo, which is a separate project that pairs this engine with the game rather than containing it.

The Special Thanks section credits st×tic for leading ModAPI development, porting to other platforms and general decompilation work, which tells you that the mod API is community-developed rather than part of the original engine.

Two commands and a set of build flags

The build is CMake, and the README explains that it supports many different compilers and platforms, with a note for Windows users to enable the option that adds CMake to the system PATH during installation.

Compiling is described as simple as typing two commands in the root repository directory:

code
cmake -B build
cmake --build build --config release

The result lands somewhere in the build/ directory, and the exact location depends on the system.

The flags are what make this more than a generic CMake project, and they are all passed as -D[flag-name]=[value] arguments on the cmake -B build command. There are six of them:

code
- `RETRO_REVISION`: What revision to compile for. Takes an integer, defaults to `3` (RSDKv5U).
- `RETRO_DISABLE_PLUS`: Whether or not to disable the Plus DLC. Takes a boolean (on/off): build with `on` when compiling for distribution. Defaults to `off`.
- `RETRO_MOD_LOADER`: Enables or disables the mod loader. Takes a boolean, defaults to `on`.
- `RETRO_MOD_LOADER_VER`: Manually sets the mod loader version. Takes an integer, defaults to the current latest version.
- `RETRO_DISABLE_LOG`: Disables the log. Not recommended unless it impacts performance. Takes a boolean, defaults to `off`.
- `RETRO_SUBSYSTEM`: *Only change this if you know what you're doing.* Changes the subsystem that RSDKv5 will be built for. Defaults to the most standard subsystem for the platform.

Three of those are worth pausing on. RETRO_REVISION decides which engine revision you are building, and the default of 3 is the v5Ultimate one, so a build aimed at the original v5 needs that changed. RETRO_DISABLE_PLUS exists because the Plus DLC is separate content, and the README says to build with it on when compiling for distribution. And RETRO_SUBSYSTEM comes with the warning that you should only change it if you know what you are doing, which is the phrasing of a flag whose failure mode is a mysterious crash rather than a build error.

Windows needs Visual Studio and vcpkg, and the submodules matter

The first dependency instruction is a warning about how not to get the code. Do not download the source code ZIP archive from GitHub, as they do not include the submodules required to build the decompilation. Clone the repository recursively instead, which the README gives as:

code
`git clone --recursive https://github.com/RSDKModding/RSDKv5-Decompilation`

If the repository has already been cloned, the equivalent is a git submodule update --init inside it.

On Windows the dependency handling is Visual Studio Community, with the Desktop development with C++ package installed, plus vcpkg, where the README says you only need to follow the set up step. The package install itself is one command:

code
- `[vcpkg root]/vcpkg.exe install libtheora libogg glew glfw3 sdl2 --triplet=x64-windows-static` (If you're compiling a 32-bit build, replace `x64-windows-static` with `x86-windows-static`.)

The library list is the interesting part of that line. libtheora and libogg are the codec libraries for the Ogg Theora video format the engine plays, glew is the OpenGL extension loader, glfw3 is the windowing library, and sdl2 is the alternative input and audio layer. These are the same dependencies a native build of the engine needs, which tells you that the decompilation targets the engine's real platform support rather than a reduced one.

The cmake command then has to be given the vcpkg toolchain file and the matching triplet, and the README repeats the instruction to replace the placeholder path with the real one.

Linux, Switch and Android each get their own list

The Linux section is the shortest dependency list in the README, because the packages are all in the distribution repositories. Four package managers are named:

code
- `(dkp-)pacman -Syuu switch-dev switch-libogg switch-libtheora switch-sdl2 switch-glad`

And then the invitation that makes this repository unusually open: your favorite package manager here, make a pull request, and update the Mania repository as well. The Linux dependency list is a contribution opportunity, which tells you the supported platforms are the ones people actually build on.

For the Nintendo Switch, the instructions are to set up devKitPro and then install the toolchain and the libraries through its package manager:

code
- `(dkp-)pacman -Syuu switch-dev switch-libogg switch-libtheora switch-sdl2 switch-glad`

with the cmake command then pointed at /opt/devkitpro/cmake/Switch.cmake as the toolchain file.

Android is handled differently, by pointing at a dependencies/android/README.md rather than inlining the steps.

One instruction appears twice and is easy to skim past. On Linux and on Switch alike, the README says to make sure to install the GL shaders, linking to the FAQ entry about why videos and filters do not work while using OpenGL. That is a runtime asset requirement rather than a build step, and it is the kind of thing that produces a successful compile followed by a black screen.

Only four platforms are official, and the rest are community forks

The Other Platforms section is explicit about the boundary. Currently, the only officially supported platforms are the ones listed above, which are Windows, Linux, Switch and Android.

Everything else in that section is a fork by someone else, and the README adds the caveat that many of these ports are still a work in progress and some may be out of date. The list is long enough to be a map of the scene: WebASM by heyjoeway, New 3DS by SaturnSH2x2, Wii U by Radfordhound, Wii U by Clownacy in the Sonic Mania decompilation, Wii by Mefiresu, Vita by SonicMastr, and a general optimization fork by smb123w64gb.

Two things follow. First, a fork is not covered by whatever the maintainers of this repository decide, so a port may lag behind the main tree or behave differently. Second, the fork list is the best available indication of where the community's effort actually is, and for the WebASM and New 3DS entries in particular those are platforms the upstream project does not target at all.

The FAQ lives in its own file at the repository root, and the Special Thanks section at the end of the README credits the people behind the ModAPI, the ports and the decompilation work generally.

A custom licence and a release line that tracks the engine's own

The repository listing records the licence as one GitHub cannot classify, with a LICENSE.md file at the repository root, so the terms are set by that file rather than by a standard identifier. For a decompilation of someone else's engine, the licence file is the document that decides what you may publish, so reading it is not optional. The README's own instruction not to use the project for piracy is a statement of intent from the contributors rather than a substitute for the licence text.

The releases are named after both sides of the pairing, which is a useful clue about how the project is versioned. They are v1.1.1 with the tag name RSDKv5 + U 1.1.1 from 2025-11-01, v1.1.0 named RSDKv5 + U 1.1.0: The SHC2024 Update from 2024-09-08, and v1.0.0 named RSDKv5 + U 1.0.0 from 2022-08-15. The naming follows the upstream engine's own releases, with the Plus update in 2024 being visible in the tag name, so the project's version numbers tell you which engine revision and which content update they correspond to.

The last push to the repository was on 2026-10-03, and the repository is not archived. The top-level entries show a working development setup rather than a code dump: a .gitmodules file for the dependencies, a CMakeLists.txt, an android directory with its own dependency documentation, a dependencies directory, a filters directory, a props directory, clang-format-commands.txt with a .clang-format file, and both solutions and Xcode projects for the two engine trees.

Editorial conclusion

The repository fits a modder or engine researcher who wants to read and extend the Retro Engine as source, and who can satisfy the README's dependency list and CMake build on their own machine. It is the wrong starting point for someone who wants to play a retail game, since the project carries no game content of its own and its licence is a custom one with a LICENSE.md you have to read, and the wrong choice if you cannot supply the engine's own assets. Verify first which revision you are targeting, because RETRO_REVISION defaults to 3 for v5Ultimate and the flags change what the build contains, and read the FAQ linked from the repository before you expect shaders or video filters to work.

Frequently asked questions

What is RSDKv5-Decompilation?

It is a complete decompilation of Retro Engine v5 and v5Ultimate, written in C++ and built with CMake. It contains the engine rather than a game, and it adds a built-in mod loader and API, a shader compiler and extra Windows backends on top of the reconstructed source.

Can I use RSDKv5-Decompilation to play Sonic Mania Plus?

The README explicitly says not to use the decompilation project as a means to pirate Sonic Mania Plus or any other RSDKv5(U) games, that the project does not condone using it for piracy in any form, and that it was created for purely educational purposes. The licence terms are in the LICENSE.md file at the repository root.

How do I build RSDKv5-Decompilation?

Clone the repository recursively with git clone --recursive, because the GitHub ZIP archive does not include the required submodules, then run cmake -B build and cmake --build build --config release in the repository root. The result lands in the build directory.

What are the CMake build flags for RSDKv5-Decompilation?

They are passed as -D[flag-name]=[value] on the cmake -B build command. RETRO_REVISION selects the engine revision and defaults to 3 for v5Ultimate, RETRO_DISABLE_PLUS disables the Plus DLC and should be on for distribution builds, RETRO_MOD_LOADER enables the mod loader and defaults to on, RETRO_MOD_LOADER_VER pins the mod loader version, RETRO_DISABLE_LOG turns off the log, and RETRO_SUBSYSTEM changes the subsystem the engine is built for.

Which platforms does RSDKv5-Decompilation officially support?

Only Windows, Linux, Nintendo Switch and Android, with the dependency instructions given for each. Other platforms exist as community forks, including WebASM, New 3DS, Wii U, Wii and Vita, and the README notes that many of those ports are work in progress or out of date.

Official sources

  1. Issues
  2. README
  3. Releases
  4. RSDKModding/RSDKv5-Decompilation on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/rsdkmodding-rsdkv5-decompilation.svg)](https://hysenlabs.com/projects/rsdkmodding-rsdkv5-decompilation)

Was this useful?