Авторы проекта Reverse-engineering 1998 Ultima Online demo server спустя десять лет разработки выпустили полный пересборщик серверной части легендарной MMORPG. Релиз доступен на GitHub и содержит около 5000 дизассемблированных функций, переведённых из MSVC x86 в portable C99. Каждую функцию проверяли построчно, сопоставляя исходный код с бинарником, чтобы обеспечить идеальное соответствие оригиналу. Демо-сервер UoDemo.exe от 1998 года был выпущен компанией Origin Systems Inc вместе с клиентом и содержит порт всей серверной кодовой базы. В нем отключены только отдельные функции, а игровая карта ограничена островом Ocllo, но основной механизм — боевка, торговля и чаты — работает как на живой сервере середины 1998 года. Код компилировался компилятором Microsoft Visual C++ 5.0 под управлением раннего диалекта C++.
Авторы использовали методологию, основанную на дизассемблировании с помощью radare2, а имена символов восстанавливали на основе экспериментального Linux-порта клиента. Классовая иерархия объектов, такая как CEntity, CResourceEntity и CPlayer, была определена точно по смещениям в виртуальных таблицах. Теперь код работает на 64-битных системах, при этом структура данных адаптирована так, чтобы pointer widening не ломал наследование, а встроение C struct корректно воспроизводит поведение C++. Стабильность повышена: исправлены переполнения, ошибки инициализации переменных и проблемы с геном мобов. Некоторые сломанные системы, например спавн и распад предметов, были восстановлены путем переключения вызовов.
Особого внимания заслуживает возвращение устаревшей ecology system, которую раньше вырезали из игры, но код которой сохранился. Теперь на экране можно наблюдать за волками, преследующими зайцев, или воронов, подбирающих предметы. Также добавлены новые навыки: медитация, скрытность и снятие ловушек. Поддержку получили все клиенты от версии 1.25.30 до 5.0.9.1, включая различные методы шифрования, которые пришлось также дизассемблировать. Поскольку в демо-сервере отсутствовала учетная система, её реализовали заново, предположительно так, как задумали оригинальные разработчики. Для манипуляции форматами данных написан полный набор утилит, позволяющий восстанавливать двери, знаки и ловушки на остальных территориях карты. Проект находится на ранней стадии, и авторы приветствуют любые отчеты об ошибках. Они также просят энтузиастов прислать файлы сохранений серверов circa 1997–2003 годов, включая dynamic0.mul и resbank.mul, чтобы точнее воссоздать контент мира Ultima Online.