Full Reverse‑Engineering of the 1998 Ultima Online Demo Server
Clone the GitHub repo, run the radare2 decompiler, and use the supplied tooling to rebuild a fully functional 1998 Ultima Online server with extended client support.
Clone the repository at https://github.com/draxinar/ouo and run the provided test scripts to validate the server against the original demo.
Summary
After a decade of work, the author has released a complete reverse‑engineering of the 1998 Ultima Online demo server, disassembling roughly 5,000 MSVC x86 functions and translating them into portable C99. The project uses radare2 for disassembly, compares instruction‑by‑instruction against the original binary, and reconstructs the full class hierarchy from CEntity to CPlayer, preserving virtual dispatch via vtable slots. The demo, dated 1998‑09‑02, was built with Visual C++ 5.0 and contains a stubbed map of Ocllo; the new build restores missing data, fixes stability and gameplay bugs, and re‑implements the account system for 64‑bit targets. Additional features such as Meditation, Stealth, and Remove Trap skills are added, and client support is extended from 1.25.30 up to 5.0.9.1, including all historical encryption mechanisms. The author provides tooling to manipulate server data formats, reconstruct world content, and a test environment at uo.serpent-isle.com, while requesting original dynamic0.mul or dynamic0.bkp files from the community.
Key changes
- Disassembled ~5,000 MSVC x86 functions and translated them into portable C99.
- Re‑implemented the account system and extended client support to 5.0.9.1, covering all encryption mechanisms.
- Fixed stability issues such as crashes, overflows, and uninitialized variables.
- Re‑wired the predator/prey/scavenger ecology system and added new skills: Meditation, Stealth, Remove Trap.
- Provided tooling to manipulate server data formats and reconstruct world content, including doors, signs, and spawn locations.
- Hosted a test environment at uo.serpent-isle.com for validating the rebuilt server against the original demo.