This is an ongoing decompilation project of Ultima V: Warriors of Destiny.
Inspired by u4-decompiled, I started this project as a personal challenge to better understand the original game and its codebase.
-
Create a functionally equivalent version of the original game that can run on modern platforms.
-
Match as much of the original code (v1.16 for MS-DOS) as possible.
Since the original linker (an unknown version of PLINK86) has not been found, perfect binary matching is currently impossible. Instead, the project focuses on assembly-level semantic matching.
When necessary, disassemblies from other platforms such as FM-TOWNS are also used as references.
ULTIMA.EXE: approximately 55% matched*.OVL: approximately 50% matched
The game can boot and is partially playable using the original data files. However, many major and minor bugs still remain, and the game is not yet completable from start to finish.
Open u5win/u5win.slnx with Visual Studio 2026 and build the solution.
Run make on a machine with DJGPP installed.
Depending on the environment, you may need to adjust the CROSS_CC_PREFIX value in the Makefile.
Run src\build.bat on a machine or virtual machine with Microsoft C 5.1 installed.
The compiler installation path is C:\MSC51.
Note: executable linking is currently not possible. This target is used only for disassembly matching.