À propos du projet
Open-BFME-2 est un projet open source visant à recréer le binaire du moteur commercial (game.dat) du Seigneur des Anneaux : La Bataille pour la Terre du Milieu II, octet par octet, à partir d'un code source C++ reconstruit. C'est un projet frère d'Open-BFME-1 et il utilise la même chaîne d'outils MSVC 7.1 et le même flux de travail, avec le code source converti de BFME 1 inclus comme référence de sous-module.
Le projet rapporte une couverture exacte de 16,16 % des octets de la section .text commerciale, comprenant 1 299 292 octets C++ et 9 037 octets en assembleur uniquement. La reconstruction adossée au code source représente 12,77 % du code réel, avec des contributions supplémentaires provenant du code source de bibliothèques fournies et de code C++ écrit par générateur. Des outils tels que lib_probe.py aident à placer les membres de la bibliothèque de support Visual C++ 7.1 liés statiquement. Les archives DirectX fournies ne se placent pas car BFME 2 est lié à un SDK plus récent que les archives Summer 2003 conservées pour BFME 1.
Au-delà de la reconstruction exacte, la feuille de route inclut des améliorations de modernisation : prise en charge du 60/120 FPS, une correction de mémoire, de meilleurs journaux de crash, la prise en charge multi-CPU, le code source de World Builder, des cartes plus grandes et la prise en charge de L'Avènement du Roi-Sorcier. Le délai hors hôte est déjà corrigé par des correctifs communautaires et est délibérément exclu.
Le dépôt comprend un système de compilation qui vérifie chaque fonction suivie par rapport au binaire commercial. Un crochet de vérification des octets avant commit est disponible, et des fonctions individuelles peuvent être vérifiées en passant un fichier ou un nom au script de compilation. Le projet encourage les contributions assistées par l'IA via un flux de travail spécifique décrit dans AGENTS.md, chaque fonction vérifiée étant commitée séparément et soumise sous forme de pull request.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.