MediEvil II Recompiled
MediEvil II
OrigenPlayStation
TecnologíaRecompilación Estática (C/C++ nativo)
Disponible paraWindows, Linux, macOS
Ver proyecto oficialSobre el proyecto
MediEvil II es un videojuego de acci�n y aventura publicado por Sony Computer Entertainment para PlayStation, lanzado en 2000.
Información oficial del proyecto
MediEvil II Recompiled
Read more about it on the blog.
<!-- retcomm-readme-metrics --> <!-- /retcomm-readme-metrics -->A native recompilation of MediEvil II for Windows and Linux, built on psxrecomp and recomp-ui. Play with adaptive widescreen, sharper and steadier graphics, smoother motion, and shorter loading waits. The gameplay enhancements are on by default.
Download v0.2.4-alpha adds corrected mouse direction, smoother mouse input, capture through native transitions, five configurable mouse buttons and default right-stick camera. HD Texture Packs is temporarily hidden and disabled. See the controls guide for every default action. These are precompiled player builds: supply your USA disc (SCUS-94564) and play. OpenBIOS is included; no retail BIOS, compiler, Python or Generate step is needed.

Actual Windows v0.2.0-alpha capture at 21:9, using OpenGL and the default enhancements. The original game artwork and textures are retained. Screenshots below come from the same released build; the Museum checkpoint has the weapon and counter HUD groups visible so their placement can be compared.
Download and play
| Platform | Package | Start here |
|---|---|---|
| Windows x64 | ZIP | Extract the whole ZIP into a writable folder and run MediEvilIIRecomp.exe. |
| Linux x86-64 | AppImage | Make it executable, then run it. Requires glibc 2.39+, such as Ubuntu 24.04. |
- Select your MediEvil II USA disc in the launcher: a CUE with its BIN tracks, or a supported CHD. The disc remains required while playing.
- Choose your controller or configure keyboard controls, then press Play.
- The first run prepares the loading cache from your disc. Later runs reuse the verified decompressed assets.
On Linux, if FUSE is unavailable, run the AppImage with
--appimage-extract-and-run. SHA-256 checksum files are available beside the
packages on the release page. No disc images, decoded assets or saves are included.

The launcher includes local box art, disc selection, controls, memory cards, display settings and the Mods manager. Its artwork does not need an internet connection.
Features at a glance
These are the defaults for a fresh install. Existing saved preferences are retained.
| Feature | What it changes | Default |
|---|---|---|
| Adaptive View | Fits the world to the window, including ultrawide displays, while preserving proportions. | On; 4:3 minimum |
| HUD anchoring | Weapons and ammo follow the left edge; chalice and gold follow the right; health stays centered. | Included in Adaptive View |
| Extended terrain | Draws terrain at 3x the original distance and expands visibility for the wider view. | Included in Adaptive View |
| Terrain subdivision bypass | Keeps the original terrain faces instead of the game's distance-dependent triangle splitting. | Included in Adaptive View |
| Cutscene layout | Extends black bars across the view while keeping subtitles centered and unstretched. | Included in Adaptive View |
| Higher internal resolution | Renders sharper geometry at a whole multiple of the original resolution. | On at 4x; choose 1x through 32x in Mods |
| PGXP Precision | Retains subpixel geometry and perspective-correct textures to reduce wobble and warping. | On, including CPU precision propagation |
| World Texture Filtering | Stabilizes fine world texture detail during movement while keeping text and HUD sprites sharp. | On |
| Smooth Presentation | Draws intermediate camera and model poses without speeding up gameplay. | On; Display target |
| Resident Loading | Preloads supported files and reuses decompressed assets to reduce loading waits. | On |
| OpenBIOS fast boot | Uses the included OpenBIOS kernel and skips its startup shell. | On |
| Precompiled engine and level code | Runs the audited game and known level-module placements without player-side compilation. | Included |
| Bezel Artwork | Places a user-selected image in unused screen margins, when the view leaves any. | Off; optional decoration |
| Mouse and Keyboard | WASD, mouse camera, Space jump, combat shortcuts and camera direction options. Controls | Off; optional controls |
Adaptive widescreen, terrain and HUD
Resize the window and the world view follows it. Wider screens reveal more of the environment horizontally; characters and scenery keep their proportions. The minimum view is 4:3, with no fixed maximum aspect ratio.
The view enhancement also expands terrain visibility and draw distance to 3x, adjusts culling for the wider view, and bypasses the original terrain subdivision. Subdivision was the game's way of breaking surfaces into smaller triangles; the enhanced renderer combines the original faces with perspective correction instead. Expanded render buffers and 8 MB of emulated main RAM are enabled automatically for this path. These work together under Adaptive View, with no separate distance or subdivision controls to configure.
HUD icons and their numbers move together: weapon/ammo groups stay at the left, chalice/gold at the right, and health in the center. Their original size, proportions and fade timing are preserved. The following captures show the same Museum checkpoint at different window shapes; click an image for its original resolution.
4:3

32:9

Both captures use the enhanced renderer. This compares aspect ratios, not original PlayStation graphics against enhanced graphics. Dan's idle animation can differ between captures.
Sharper geometry and stable textures
The Internal Resolution mod defaults to 4x with fresh settings. Choose 1x through 32x in Mods. These are fixed native-resolution multipliers; saved choices are retained, and GPU texture and memory limits may clamp larger selections. Geometry becomes sharper while retaining the game's original texture artwork.
PGXP Precision keeps extra precision as vertices move through the game's math, then uses it for steadier geometry and perspective-correct texture mapping. CPU propagation is enabled too, so supported vertex calculations retain that precision. PGXP remains part of this release; the game has not been rewritten entirely in floating-point math.
World Texture Filtering complements PGXP by stabilizing fine texture patterns when they shrink on screen. Its OpenGL path uses palette-aware filtering for identified 3D surfaces, while text, HUD elements and other 2D sprites retain sharp sampling. It is one default-on behavior with an on/off switch in Mods. The shared renderer also fixes the Museum doorway's camera-dependent diagonal texture breaks. These changes have been checked during movement and camera settling, rather than only in still images.
Cutscenes and movies
In-engine cutscene bars span the whole adaptive view, including during interpolated drawing and the Museum intro's flashes. Subtitles retain their original proportions and centered placement; widening the bars does not stretch the lettering. Prerecorded movies keep their authored proportions, and the movie/background flicker fix is included.

In-engine Museum intro at 16:9. Circular fade coverage and other special transition effects still need broader playtesting; this release does not claim that every fade is corrected at every aspect ratio.
Smooth Presentation and frame-rate targets
The default Display setting follows the current monitor's refresh rate. 60, 120, 144, 240 and 360 are also available in Mods under Smooth Presentation. The OpenGL renderer interpolates camera/model transforms and draws additional poses between the game's normal frames. Gameplay, input, timers and audio keep their original timing.
A selected rate is a target, not a measured FPS or a guarantee that every refresh contains a new rendered frame. In the measured Museum tests with all visual defaults enabled, game timing stayed near its original 59.94 Hz VBlank cadence and native drawing near 30 Hz. The renderer produced additional intermediate draws, but did not sustain the highest presentation targets. That testing used a Ryzen 7 9800X3D and RTX 3080 Ti at 5x internal resolution; performance varies with hardware, scene and window size. The renderer skips terrain outside the view to reduce redraw cost without reducing the extended distance or visual defaults.
Resident Loading
Resident Loading removes supported file-read and decompression waits using data prepared from your own disc. On first use it verifies and decodes the archive's 66 PP20-compressed containers; it also preloads the archive and 24 level files, which are already uncompressed. Later runs reuse the verified cache. The resident data uses about 44.5 MiB of host memory.
The game still owns asset allocation, relocation, initialization and GPU/audio uploads. Movies and streamed audio keep their normal timing. Authored fades and cutscenes remain, so this minimizes loading rather than eliminating every transition. In one controlled New Game comparison, the measured loading window before the Museum intro fell from 8.30 seconds to 1.38 seconds. That is one observed transition, not a full-game or repeated benchmark.
Changed or unsupported assets fall back to the original loader. You can also turn Resident Loading off in Mods. It is the game's single loading enhancement; the generic CD Speed and Fast Loading packages are not needed or included.
OpenBIOS and ready-to-play packages
The packages bundle OpenBIOS and skip its startup shell. The original BIOS kernel interfaces remain in use; Resident Loading replaces guarded game asset services without enabling BIOS-call HLE. No retail BIOS dump is required.
The executable includes the audited native engine and known relocated level code: the release profile covers 24 images and 74,378 compiled variants. Unrecognized placements retain a runtime fallback. This removes the need to compile game code at first launch; it does not claim every possible level placement has been validated. The disc and first-run asset preparation are still required.
Alpha status and saves
This is v0.2.4-alpha, with Museum/intro testing and sampled level checks, not a completed full-game playthrough. HUD placement and moving scenes have been checked at 4:3, 16:9, 21:9 and 32:9. Later-level special HUDs, circular fades and other transitions need further coverage. Linux package testing so far is under WSL; native Linux and Steam Deck hardware remain unqualified. Smooth Presentation and the stable world filtering path use OpenGL, the default renderer.
On Windows, settings and saves live beside the executable, so keep the extracted
folder writable and preserve those files when upgrading. On Linux, they live
under $XDG_DATA_HOME/MediEvilIIRecomp, or ~/.local/share/MediEvilIIRecomp by
default; MEDIEVIL_II_RECOMP_DATA_DIR overrides it. AppImage upgrades preserve
settings, memory cards and installed mods. The loading cache lives separately
in the system user cache directory.
For a bug report, include the release version, level/location, aspect ratio, renderer and steps to reproduce it. A short video is especially useful for motion or flicker issues. Do not attach disc images or extracted game assets.
Playtest diagnostics
Playtest Diagnostics is off by default in public releases (on in playtest builds); enable it in the Mods menu before
reproducing a problem you want to report. While it is on, it records the
controller state the game reads on every frame, plus a small checksum of game
memory for replay verification. Timing and gameplay evidence remain useful
even when a recording diverges. It
adds a short input line (P1/P2 buttons, a frame counter and REC) in the
corner of the screen; turn off Input Display in the Mods menu to hide it
without stopping the recording. The recording runs on a background thread and
never waits for the disk; if it cannot keep up or the disk is unavailable it
stops recording rather than slowing the game.
After reproducing a problem, quit the game normally and send the newest session folder:
| Where | Session folders |
|---|---|
| Windows | saves\diagnostics\session-<number> beside MediEvilIIRecomp.exe |
| Linux | saves/diagnostics/session-<number> under ~/.local/share/MediEvilIIRecomp (or $XDG_DATA_HOME/MediEvilIIRecomp, or MEDIEVIL_II_RECOMP_DATA_DIR) |
diagnostics-location.txt, next to the game, names the folder being written.
Zip that whole folder. It holds inputs.csv, telemetry.csv, your settings and mod choices,
and a copy of your memory cards as they were when the game started; it never
contains the disc, BIOS or decoded game assets. Loading a save state starts a
new session folder. Rewinding does too, but a rewound segment cannot be
replayed. Diagnostics are not recorded during netplay.
To verify a recording (developers): python tools/replay_medievil2_diagnostics.py <session-folder> --exe MediEvilIIRecomp.exe --disc "MediEvil II (USA).cue" --output <new-folder> replays it in a private hidden copy and stops with
first divergence at sequence N if the game state or inputs differ. The replay
needs the same build as the recording. Turning Input Recording off in the
Mods menu disables recording entirely.
New medievil2-input-v2 recordings also capture whether each pad is plugged in,
independently of its analog mode. Old v1 recordings require their original
build for verification; they do not contain that presence information.
Press L3 + R3, or F4 with Mouse and Keyboard enabled, just after a problem to mark an incident. See the next-playtest guide for focused checks and the included analysis tool.
Development and evidence
Implementation details, measurements and reproducible checks:
- Enhancement validation: renderer, PGXP, terrain, HUD, interpolation and performance evidence.
- Playtest burndown: reported regressions, status and evidence.
- Mouse and keyboard controls: bindings and camera options.
- Resident Loading validation: cache coverage, decoder comparisons, loading measurements and fallback behavior.
- Release builds: the framework release command
(
psxrecomp/tools/package_title_release.ps1 --channel public|playtest) and what it checks; this repo keeps onlypackaging/release.toml. - Release notes and included PRs.
A development build requires the supported disc, recursive submodules, Python
and a native C/C++ toolchain. Follow the release-build instructions for the
precompiled player profile. Generated game C, extracted modules and owned disc
images are local inputs and are never committed. The submodule gitlinks and
project-manifest.toml record the framework pins; package
RELEASE_MANIFEST.json records the source revision, pins and payload hashes.
Symbols are maintained in symbols.toml; python3 tools/sync_symbols.py
updates psx_symbols.h. See psxrecomp/docs/SYMBOLS.md in a recursive checkout.
RetComM Launcher
The release packages run standalone with their built-in recomp-ui launcher. RetComM Launcher is also available for managing recomp installations, updates and source builds in one place. See its downloads and feature guide.
<!-- /retcomm-readme-launcher -->Game and credits
| Players | 1 |
| Supported release | USA, SCUS-94564 |
| Original publisher | Sony |
| Original release year | 2000 |
You must supply your own original game. Disc images and player data are not redistributed. OpenBIOS is included with its license notice. See third-party notices for source and dependency licenses; these do not relicense the game's artwork, names or trademarks.
The launcher uses the USA front cover from libretro-thumbnails. See box art attribution. The app icon uses the framework's RetComM controller mark. Gameplay screenshots show the original game artwork rendered by this port.
About this project
These ports are developed by a hobbyist (a DevSecOps engineer, not a game programmer) with substantial AI assistance. Validation includes boot checks, comparison against emulator behavior, deterministic replay checks and recorded findings. Bug reports are welcome; the alpha status and tested scope are stated above so players can distinguish verified improvements from remaining work.
<!-- retcomm-readme-raid --><p align="center"> <sub><b>R.A.I.D. - Retro AI Development</b> ? a Discord for AI-assisted retro reverse-engineering, decomp & recomp</sub> </p> <p align="center"> <a href="https://discord.gg/Ad9BwSzctP"><img src=".github/raid-discord.png" alt="Join the Retro AI Development (R.A.I.D.) Discord" width="200"></a> </p> <!-- /retcomm-readme-raid -->
