Case study

MinecraftLCE: an early-stage Minecraft: Nintendo Switch Edition decompilation

Decompiles Minecraft: Nintendo Switch Edition v1.0.17, a Legacy Console Edition release, into C++ that is compared function by function with the original executable using a patched Clang 4.0.1 and the open-ead Switch decompilation tools. The README explains the choice of the Switch build for its matchable Clang toolchain and type information, with names ported from the symbol-bearing Wii U Edition. At the reviewed commit the function list marks about 11% of functions decompiled, most of them matching; the result cannot run the game.

Requirements & limits

  • README describes a work-in-progress decompilation of Minecraft: Nintendo Switch Edition v1.0.17 that cannot be used to play the game. At the reviewed commit data/mcswitch_functions.csv lists 57,972 functions: 6,279 matching, 224 non-matching and 51,469 not yet decompiled, the 11.217% that a workflow writes into the GitHub description. Matched functions are checked individually; there is no whole-executable rebuild.
  • Supply the main NSO executable from your own Minecraft: Nintendo Switch Edition v1.0.17 update; the Wii U Edition’s Minecraft.Client.rpx (Patch 35, v560) is recommended only for porting symbols. README says these executables will never be provided in the repository and no game assets are included.
  • Documented for Linux or WSL (with macOS also intended): Python 3.6+, Ninja, CMake 3.13+, ccache, llvm-objdump, libncurses5, a Rust toolchain and the listed Python modules. tools/setup.py converts the executable, downloads Clang 4.0.1 from the LLVM releases and applies the committed libc++ patches; submodules supply open-ead’s nx-decomp-tools, nnheaders and musl and the stb image library, and lib/ vendors libpng and zlib.
  • tools/check compares compiled functions with the original and tools/common/progress.py summarises the function list. CI lints, compiles the project without the game and publishes progress counted from the committed function list, so matching status is project-reported; this collection built or ran nothing.
  • No license file is present and GitHub detects none; Minecraft belongs to Microsoft and Mojang, and vendored libraries keep their own licenses. README says Microsoft-licensed Java Edition mappings cannot be used and notes that projects whose research was not clean-room have been taken down. The reviewed sources establish no AI or REA use.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  2. docs/BUILDING.md GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  3. docs/CONTRIBUTING.md GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  4. data/mcswitch_functions.csv GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  5. tools/setup.py GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  6. tools/config.toml GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  7. .gitmodules GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  8. .github/workflows/test-compile.yml GitHub · GRAnimated/MinecraftLCE · Revision 959e150
  9. .github/workflows/update-progress.yml GitHub · GRAnimated/MinecraftLCE · Revision 959e150

More in Games

All 231 entries in GamesGames case studies (189)