Разработчик под ником sp00nznet выпустил релизную версию 0.1.0 проекта статической рекомпиляции пошаговой стратегии Civilization III: Conquests. Проект переводит оригинальный 32-битный исполняемый файл игры 2003 года от студии Firaxis Games в исходный код на языке C. Такой подход позволяет запускать стратегию на современных операционных системах Windows и Linux без использования сторонних эмуляторов или прослоек совместимости вроде Wine.
Основой для декомпиляции послужило издание Complete из сервиса Steam, изначально собранное с помощью Visual C++ 6.0 без встроенных систем DRM. В процессе обратной разработки автор каталогизировал 15929 функций и перевел их в 6.3 млн строк кода на языке C без единой ошибки трансляции. Для подтверждения точности работы алгоритмов была создана специальная утилита oracle.py, которая сверяет состояние виртуального мира в рекомпилированном коде с оригинальным машинным кодом на протяжении 19 игровых ходов.
Ключевой особенностью релиза стало появление нативной версии игры для систем Linux без какой-либо эмуляции. Поскольку данная платформа не поддерживает бинарные библиотеки Windows, автор проекта статически перекомпилировал графический модуль jgl.dll и звуковую библиотеку sound.dll. Все обращения к функциям Win32 API перехватываются легкой средой win32hle из набора утилит pcrecomp, которая передает вывод графики, воспроизведение роликов формата Bink и аудиопотоков напрямую в библиотеки SDL2 и ffmpeg.
Для современных мониторов разработчик внедрил собственный модуль вывода на базе Direct3D 11. Он поддерживает целочисленное масштабирование без потери четкости, полноэкранный режим без рамок и работу с повышенными разрешениями дисплея. Исходный код стратегии позволял считывать нестандартные разрешения через файл конфигурации conquests.ini, но теперь параметры отображения можно настраивать прямо во время работы приложения. При желании игроки могут запустить проект и в классическом графическом режиме со сменой видеорежима монитора.
Для исключения юридических претензий со стороны правообладателя Take-Two Interactive в репозитории проекта отсутствуют защищенные авторским правом файлы, оригинальные ресурсы и сгенерированный код. Для сборки требуется наличие установленной лицензионной копии игры в сервисе Steam, а сам создатель уже опубликовал готовые автоматические инсталляторы для Windows и Linux.
