Case study

sm64ex: an enhanced Super Mario 64 PC port from the decompilation

Builds native Super Mario 64 executables from decompiled source, extending the sm64-port fork of the n64decomp reconstruction with renderer, input, camera, save-format and external-data options. Game assets are extracted from the user’s own ROM at build time. It is a non-matching enhanced port, not a byte-identical ROM reconstruction.

Requirements and limitations

  • The reviewed nightly branch (last pushed 2024-12-17) describes itself as a fork of sm64-port/sm64-port, which GitHub records as a fork of n64decomp/sm64, the separately catalogued ROM reconstruction. The Makefile builds PC targets only: it defines NON_MATCHING and AVOID_UB and forces COMPARE to 0, so a successful build is not a matching-ROM result.
  • Supply an original Super Mario 64 ROM named baserom.<version>.z64 for each version built (us by default, jp or eu); extract_assets.py compares its SHA-1 with the bundled reference before extracting assets. The sh (Shindou) option skips extraction and is labelled experimental in the Makefile and broken in the wiki option table; a 2020 known-issues page reports buggy EU text and missing EU audio.
  • The README defers building to the wiki, whose pages cover Linux (Python 3.6+, SDL2, GLEW, host GCC toolchain), Windows through MSYS2, FreeBSD, Raspberry Pi and an Emscripten/WebGL target; cross-compiling for Windows from Linux or WSL needs MXE, and OSX_BUILD enables macOS fixes. Renderers are OpenGL 2.1, OpenGL 1.3, Direct3D 11 and Direct3D 12, the DirectX ones only on Windows.
  • The Jenkinsfile builds us, eu and jp and rebuilds us after each enhancement patch, all with comparison disabled; this checks that builds succeed, not output identity or gameplay equivalence. Options such as disabled draw distance, analog camera, texture fixes and cheats intentionally change behavior, and the wiki notes the draw-distance option may affect gameplay. This collection did not build or run the port.
  • GitHub detects no repository license and the reviewed tree has no root license file; bundled tools carry their own licenses, and the src/pc notice reproduces an n64-fast3d-engine license that forbids binary redistribution. Original Nintendo content is not supplied, and the README forbids uploading copyrighted assets. The reviewed sources establish no REA or coding-agent involvement.

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.

Primary sources

  1. README.md GitHub · sm64pc/sm64ex · Revision d7ca2c0
  2. Makefile GitHub · sm64pc/sm64ex · Revision d7ca2c0
  3. extract_assets.py GitHub · sm64pc/sm64ex · Revision d7ca2c0
  4. Jenkinsfile GitHub · sm64pc/sm64ex · Revision d7ca2c0
  5. src/pc/README-n64-fast32-engine.md GitHub · sm64pc/sm64ex · Revision d7ca2c0
  6. https://github.com/sm64pc/sm64ex/wiki/Compiling-on-Linux/f2a7911133395886a2dce815f5cb5773e6c2ad8d
  7. https://github.com/sm64pc/sm64ex/wiki/Compiling-on-Windows/0e64ea14174606d83a7b75f20d14dce1b6e6e200
  8. https://github.com/sm64pc/sm64ex/wiki/Build-options/f9aff0b0db9cd4ec1c40ac7a2bc42af969edb42f
  9. https://github.com/sm64pc/sm64ex/wiki/Known-issues/94d262d19ea9e16990d955de28560df563dc5372
  10. README.md GitHub · sm64-port/sm64-port · Revision 2b17d08