Об этом проекте

Open-BFME-2 — это проект с открытым исходным кодом, целью которого является побайтовое воссоздание розничного бинарного файла движка (game.dat) игры The Lord of the Rings: The Battle for Middle-earth II из реконструированного исходного кода на C++. Это родственный проект Open-BFME-1, использующий тот же набор инструментов MSVC 7.1 и рабочий процесс, при этом преобразованный исходный код BFME 1 включён в качестве ссылки на подмодуль. Проект сообщает о 16,16% точного побайтового покрытия розничной секции .text, что составляет 1 299 292 байта C++ и 9 037 байт только на ассемблере. Реконструкция на основе исходного кода составляет 12,77% реального кода, с дополнительным вкладом от исходного кода встроенных библиотек и C++, написанного генератором. Такие инструменты, как lib_probe.py, помогают размещать статически слинкованные члены библиотеки поддержки Visual C++ 7.1. Встроенные архивы DirectX не размещаются, поскольку BFME 2 компонуется с более поздним SDK, чем архивы Summer 2003, сохранённые для BFME 1. Помимо точной реконструкции, дорожная карта включает улучшения модернизации: поддержку 60/120 FPS, исправление памяти, улучшенные журналы сбоев, поддержку нескольких процессоров, исходный код World Builder, более крупные карты и поддержку Rise of the Witch-king. Задержка вне хоста уже исправлена сообществом патчами и намеренно исключена. Репозиторий включает систему сборки, которая проверяет каждую отслеживаемую функцию на соответствие розничному бинарному файлу. Доступен хук побайтовой проверки перед коммитом, а отдельные функции можно проверить, передав файл или имя в скрипт сборки. Проект поощряет вклад с помощью ИИ через специальный рабочий процесс, описанный в AGENTS.md, при этом каждая проверенная функция коммитится отдельно и отправляется в виде pull request.