Sobre o projeto

Open-BFME-2 é um projeto de código aberto que visa recriar o binário do motor de varejo (game.dat) de The Lord of the Rings: The Battle for Middle-earth II byte a byte a partir de código-fonte C++ reconstruído. É um projeto irmão do Open-BFME-1 e usa o mesmo toolchain MSVC 7.1 e fluxo de trabalho, com o código-fonte convertido do BFME 1 incluído como referência de submódulo. O projeto relata 16,16% de cobertura exata em bytes da seção .text de varejo, compreendendo 1.299.292 bytes de C++ e 9.037 bytes somente em ASM. A reconstrução apoiada em código-fonte representa 12,77% do código real, com contribuições adicionais de código-fonte de bibliotecas fornecidas e C++ escrito por gerador. Ferramentas como lib_probe.py ajudam a posicionar membros da biblioteca de suporte Visual C++ 7.1 vinculados estaticamente. Os arquivos DirectX fornecidos não são posicionados porque o BFME 2 vincula um SDK posterior aos arquivos do Summer 2003 mantidos para o BFME 1. Além da reconstrução exata, o roteiro inclui melhorias de modernização: suporte a 60/120 FPS, uma correção de memória, melhores logs de falhas, suporte a múltiplas CPUs, código-fonte do World Builder, mapas maiores e suporte a Rise of the Witch-king. O atraso fora do host já foi corrigido por patches da comunidade e é deliberadamente excluído. O repositório inclui um sistema de build que verifica cada função rastreada contra o binário de varejo. Um hook de verificação de bytes pré-commit está disponível, e funções individuais podem ser verificadas passando um arquivo ou nome para o script de build. O projeto incentiva contribuições assistidas por IA por meio de um fluxo de trabalho específico descrito em AGENTS.md, com cada função verificada commitada separadamente e enviada como pull request.