Case study
MediEvil decompilation: an early checksum-gated PlayStation project
Decompiles the US PlayStation release of MediEvil toward C source that rebuilds its main executable, game executable and 26 overlays. splat splits the user's own disc files, and the default build compares all 28 outputs with SHA-1 checksums. README describes the project as a work in progress and publishes no progress figure.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Requires files from the user's own US MediEvil disc in disk/; the splat configuration expects SCUS_942.27 with a fixed SHA-1, and make extract splits the executables and overlays from those files. The repository supplies no game files.
- Prerequisites: The build expects a Linux-style host: GNU make, mipsel-linux-gnu binutils, Python 3 with the listed packages such as spimdisasm and rabbitizer, and the splat, m2c, maspsx and asm-differ submodules. C files go through a bundled PlayStation GCC 2.8.1 cc1 binary and maspsx. README points contributors to wiki pages for setup, the rebase workflow and the decompilation process.
- Scope: README describes a work-in-progress decompilation of the US PlayStation MediEvil 1, with MediEvil 2 left for later. The Makefile targets SCUS_942.27, MEDIEVIL.EXE and 26 overlay binaries. In the reviewed tree most functions are still included as split assembly through INCLUDE_ASM rather than written in C, README's progress section is a placeholder, and the pinned commit dates from 2026-02-23.
- Testing evidence: make all builds every binary and runs sha1sum against config/medievil.check.sha; CI runs extraction and that check using disc files from an access-restricted repository. A passing check shows that the assembled outputs match those checksums.
- License: The repository declares MIT; original game content, the bundled compiler binaries and the PSY-Q headers and data in the tree retain their own terms. The project is separate from the MediEvil Recomp static recompilation.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- Makefile GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- config/medievil.check.sha GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- config/splat.main.yaml GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- .gitmodules GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- tools/requirements-python.txt GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- .github/workflows/ci.yaml GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- src/game/800.c GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
- LICENSE GitHub · MediEvilDecompilation/medievil-decomp · Revision 6afe6fe
More in Games
- Metroid Prime: the PrimeDecomp matching GameCube decompilation · Case study
- MinecraftLCE: an early-stage Minecraft: Nintendo Switch Edition decompilation · Case study
- Ocarina of Time: decompilation with MD5-checked ROM builds for 16 versions · Case study
- Paper Mario: matching Nintendo 64 decompilation for four releases · Case study
- Paper Mario: The Thousand-Year Door: an early matching GameCube decompilation · Case study
- Perfect Dark: matching Nintendo 64 decompilation · Case study