Laboratoire · moteurs d'échecs classiques
Faire rejouer les vieux Fritz
Les Fritz d'autrefois — de la 5.32 (1997) à la 9 (2005) — sont enfermés dans le logiciel ChessBase qui les a vus naître. Un petit pont les libère : il les fait passer pour des moteurs UCI ordinaires, afin qu'on puisse enfin les faire jouer et les calibrer dans les interfaces modernes.
Ce qu'on cherche à faire
Un moteur d'échecs moderne est un programme autonome qui dialogue en texte, selon un langage universel appelé UCI : l'interface lui envoie une position, il répond son coup. C'est ce langage que parlent toutes les interfaces pour moteurs d'échecs d'aujourd'hui, et c'est lui qui permet de faire s'affronter des moteurs de toutes origines.
Les vieux Fritz, eux, ne fonctionnent pas ainsi. Ce ne sont pas des programmes autonomes mais des modules internes : seul le logiciel ChessBase d'origine sait les charger et les faire parler. Impossible, tel quel, de les brancher sur une interface moderne — ils restent muets.
L'idée du pont — qu'on appellera eng2uci — est de se glisser à la
place de ChessBase. Le programme charge le vieux moteur, lui parle exactement
comme le faisait le logiciel d'époque, récupère le coup qu'il a choisi, puis le retraduit
en UCI. Vu de l'extérieur, le vieux Fritz devient un moteur UCI comme les autres, qu'on
peut piloter depuis n'importe quelle interface.
Résultats : les cinq Fritz
Chaque version a ses particularités, mais toutes tournent désormais comme des moteurs UCI natifs — coups légaux, promotions, roques, gestion du temps. Voici l'état des lieux.
| Version | Année | État | À savoir |
|---|---|---|---|
| Fritz 5.32 | 1997 | Opérationnel | Le doyen. Format interne un peu différent des suivants, mais entièrement pris en charge. |
| Fritz 6 | 1999 | Opérationnel | La première version mise au point, celle qui a servi de référence à tout le reste. |
| Fritz 7 | 2001 | Opérationnel | Validée en partie complète (promotions, prises, pilotage au temps). |
| Fritz 8 | 2003 | Opérationnel | Fonctionne sur la même base que la 7. |
| Fritz 9 | 2005 | Opérationnel | La plus exigeante : elle réclame un composant système (MSVCR71.dll)
et vérifie la présence du CD d'origine — les deux sont gérés par le pont. |
Télécharger le pont
eng2uci.py
Le pont complet, en un seul fichier. Gère les cinq versions de Fritz.
py -3-32 --version doit
répondre sans erreur.
Le dossier à préparer
Pour chaque moteur, un dossier contenant :
eng2uci.py— le pont (téléchargé ci-dessus) ;Chess32.dll— le petit relais que le moteur réclame ;- le fichier du moteur, par exemple
Fritz 6.eng; - pour Fritz 9 uniquement :
MSVCR71.dll(le composant système mentionné plus haut).
Utilisation dans Banksia
Banksia est l'interface recommandée : elle pilote le pont sans configuration exotique.
- Dans Banksia, ouvrir Engines puis Add (ajouter un moteur).
- Au champ Fichier du moteur (l'exécutable), indiquer le chemin du
Python 32 bits, typiquement :
C:\Users\...\Python313-32\python.exe
- Au champ Dossier de travail (working folder), indiquer le dossier
préparé (celui qui contient
eng2uci.py, le.engetChess32.dll). - Au champ Ligne de commandes (arguments), passer le pont suivi du nom
du fichier moteur, entre guillemets s'il contient une espace :
eng2uci.py "Fritz 6.eng"(adapter le nom du fichier selon la version voulue.)
- Choisir le protocole UCI, puis valider. Banksia interroge le moteur : il doit répondre son nom (« Fritz 6 ») et son auteur.
- Régler la taille de hash dans les options du moteur si souhaité, puis créer un tournoi, choisir la cadence et lancer.
uci
isready
position startpos
go depth 8
bestmove.
Utilisation dans Arena
Arena fonctionne aussi, avec la même logique. Comme Arena préfère pointer vers un
lanceur unique, le plus simple est de créer à côté du moteur un petit
fichier lancer.bat d'une ligne :
- Menu Engines → Install New Engine.
- Sélectionner le fichier
lancer.batqu'on vient de créer (ou directement lepython.exe32 bits, en renseignant ensuite les paramètres). - Quand Arena demande le type de moteur, choisir UCI.
- Dans les propriétés du moteur, vérifier que le dossier de travail
pointe bien sur le dossier du moteur (celui qui contient le
.engetChess32.dll) — c'est là que le pont ira chercher ses fichiers. - Le moteur apparaît alors dans la liste d'Arena, prêt à jouer ou à analyser comme n'importe quel moteur UCI.
lancer.bat évite bien des soucis de chemins : Arena n'a qu'à
l'appeler, et c'est lui qui se charge d'invoquer le bon Python avec le bon moteur. Un
.bat par version de Fritz, et toute la collection est prête.
Cinq moteurs qui semblaient perdus dans leur logiciel d'origine rejouent aujourd'hui dans les interfaces modernes. La leçon de ce chantier tient en une phrase : un moteur ne se juge qu'en partie réelle — c'est là, et nulle part ailleurs, que la vérité apparaît.
chess.lumn.eu · laboratoire de calibration