Case study

Castlevania 64: Recompiled — a beta static-recompilation port

Uses N64Recomp to statically recompile the US 1.0 Nintendo 64 release of Castlevania into a native PC port rendered with RT64. Game-specific C patches build against headers from a separate Castlevania 64 decompilation. A beta release tagged at the reviewed commit reports a working build with known issues, while the README there still describes an unfinished project.

Requirements and limitations

  • The AppStream metadata describes Castlevania 64: Recompiled as an N64: Recompiled static recompilation into a native port using RT64 for rendering. The v0.5.0 beta release, tagged at the reviewed commit, calls itself a working build and lists known issues: Banjo Recomp assets still to be replaced, texture scrolls that do not animate above 30 FPS, and glitches in some looping animations. At the same commit the README still says the WIP recomp does not build, and BUILDING.md only says WIP.
  • The metadata says the original game is required. The launcher accepts a single entry, the US 1.0 release (game ID cv64.us.1.0) identified by a fixed ROM hash, and cv64.toml configures the NTSC 1.0 recompilation from a decompressed ELF plus an overlay list. CI copies that ELF and a decompressed ROM from a private repository through secrets; neither is in the public tree.
  • The CMake project needs CMake 3.20+, C++20 and the N64Recomp and RSPRecomp tools; the workflow pins an N64Recomp commit and builds Linux x64 and ARM64 AppImages, an x64 Flatpak, Windows and macOS targets. Patches compile as MIPS code with clang and ld.lld against headers from the k64ret/cv64 decompilation submodule, with symbol dumps from CV64Syms and submodules for N64ModernRuntime, RecompFrontend and RT64. Several sources and functions still carry Banjo names.
  • GitHub check runs recorded for the reviewed commit report successful builds on those platforms. That shows the private inputs compile, not gameplay fidelity; no matching, test or performance results are documented. This collection did not download the release binaries or rerun any build.
  • COPYING is GPLv3 and the metadata declares GPL-3.0+; the original ROM and the dependencies keep their own terms. This is a static recompilation, not recovered authored source or a complete decompilation. The reviewed sources establish no REA or coding-agent involvement, and no runtime reproduction is claimed.

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. flatpak/io.github.cv64recomp.cv64recomp.metainfo.xml GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  2. README.md GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  3. BUILDING.md GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  4. cv64.toml GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  5. patches.toml GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  6. src/main/main.cpp GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  7. CMakeLists.txt GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  8. patches/Makefile GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  9. .gitmodules GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  10. .github/workflows/validate.yml GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  11. COPYING GitHub · RevoSucks/CV64Recomp · Revision 141b35d
  12. https://github.com/RevoSucks/CV64Recomp/releases/tag/v0.5.0