10-year project translates ~5,000 MSVC x86 functions from UoDemo.exe into portable C99, releasing a near-complete 1998 UO server replica.
Key Takeaways
UoDemo.exe (1998-09-02) bundled the actual UO production server code for Ocllo island; most server emulators used parts of it but none fully reversed it until now.
Each function was hand-translated to C99 with instruction-by-instruction verification via radare2; C++ symbols from an experimental Linux UO client 1.25.37 port aided naming.
Class hierarchy (CEntity -> CItem -> CMobile -> CPlayer) and vtable layout were the critical early unlock; 64-bit builds use deliberate struct padding to preserve inheritance offsets.
The retired ecology system (predator/prey/scavenger) was found intact but unwired; the project re-enables wolf/rabbit chasing and crow scavenging behavior.
LLMs accelerated the final phase after years of stalled progress; support extended from client 1.25.33 to all clients up to 5.0.9.1, covering five distinct encryption schemes.