10-year project translating ~5,000 MSVC x86 functions from UoDemo.exe into portable C99, with instruction-by-instruction verification via radare2.
Key Takeaways
UoDemo.exe (1998-09-02) bundled the actual production UO server code; only the map was trimmed to Ocllo island and a few features stubbed.
Class hierarchy CEntity->CResourceEntity->CItem->CContainer->CMobile->CPlayer was the critical early unlock; vtable slot mapping enabled bulk translation.
The retired ecology system (predator/prey/scavenger) was still in the binary but uncalled; re-wiring it restores wolves chasing rabbits and crows eating items.
LLMs accelerated the final push after years of stalled progress; each translated function is diff-flagged against the original binary for traceability.
The author reconstructed missing world data (doors, spawns, traps, teleporters) and added multi-client support from 1.25.30 through 5.0.9.1 across five encryption schemes.
Hacker News Comment Review
Multiple commenters credit the UO emulator scene as their entry point into network programming and PHP/web dev, reflecting how influential the shard ecosystem was.
The @skerit thread confirms LLMs are broadly useful for MFC/C++ decompilation projects, not just this one, corroborating the author’s claim.
The UO private-server scene is still active; UO Outlands reportedly runs 2,500+ concurrent players, giving the test server at uo.serpent-isle.com a real reference community.
Notable Comments
@MacNCheese23: EverQuest Classic dev notes shared file-naming patterns (packet_handler, entitylist) and flags the writeup lacks tooling process detail.
@kev009: Argues UO’s emergent economics and building mechanics were never matched by later 3D MMOs.