Hi,
nachdem bzgl. der Frequenzdateien für einzelne Engines keine Wünsche mehr eingegangen sind, bin ich bei meiner derzeitigen Implementierung geblieben.
Es hat nur etwas länger gedauert, weil ich in MessExtra/MessChess auch noch in den Treibern vom ChessMaster (und DM) etwas geändert habe: das sind nämlich noch ältere Versionen (die aktuellen von 'hap' laufen in meiner Version nicht mehr), und da gab es Probleme mit den LEDs - die wurden nach Eingabe des eigenen Zugs nicht gelöscht bzw. korrekt geändert, und beim DM hat auch das "C" während des Rechenvorgangs nicht geblinkt. Da mußte ich ziemlich tricksen, damit das jetzt funktioniert.
Außerdem habe ich auch das Plugin 'chessmst.lua' korrigiert, weil da die Level-Eingaben nicht gepasst haben (ist jetzt 0-7 statt 1-8).
Nun aber zur wichtigeren Neuerung:
Es gibt jetzt ein neues Unterverzeichnis 'mhz', in dem man für jede einzelne Engine eine eigene Frequenzdatei anlegen kann, und zwar mit den jeweiligen Enginenamen und '.mhz' als Erweiterung (also z.B. 'feagv10.mhz' oder 'mm4.mhz' usw.). Derzeit befindet sich darin nur eine Datei 'default.mhz', die keinerlei Bedeutung hat, sondern nur also Vorlage dient (zum Umbenennen oder Kopieren auf den gewünschten Engine-Namen).
Prinzipiell gilt für diese Dateien im Verzeichnis 'mhz' das gleiche wie für die allgemeine Datei 'MHz.ini', d.h. sie muß nur 1 oder 2 Zahlen für die gewünschte Frequenz in Mhz enthalten (normalerweise reicht eine Zahl, nur ganz wenige Engines haben 2 CPUs - dazu später mehr).
So eine *.mhz-Datei hat nun Priorität vor der 'allgemeinen' Datei 'MHz.ini' - der genauere zeitliche Ablauf ist folgendermaßen (erklärt an der Engine 'amsterd'):
Beim Start der Engine 'amsterd' wird zuerst die Datei 'MHz.ini' geladen (falls vorhanden) und daraus die gewünschte Frequenz gelesen. Dann wird im Unterverzeichnis 'mhz' nach einer Datei 'amsterd.mhz' gesucht. Falls so eine Datei existiert, wird die bisherige Frequenz (aus der MHz.ini) wieder zurückgesetzt und der neue Wert aus 'amsterd.mhz' verwendet (auch wenn er 0 ist, dann erfolgt eben keine Frequenzänderung!).
Auf jeden Fall wird eine erfolgte Frequenzänderung (egal aus welcher Datei) immer beim Start der Engine durch die Meldung "Modified CPU frequency!" angezeigt.
Übrigens erfolgt so eine MHz-Einstellung immer erst NACH dem Laden eines evt. vorhandenen 'Reset State' - nur für Frequenzänderungen ist jetzt jedenfalls kein 'Reset State' mehr nötig.
Ein Hinweis noch (obwohl das eigentlich klar sein sollte
):
Diese Frequenzdateien (MHz.ini oder *.mhz) werden nur im 'eigenen' Verzeichnis (CB-Emu, MessExtra oder MessChess) gesucht, d.h. dort wo die Engine auch tatsächlich geladen wird!
Wichtig ist das, wenn man z.B. CB-Emu.exe startet und hier dann eine Engine auswählt, die aber durch (internen) Aufruf von MessExtra oder MessChess ausgeführt wird - in diesem Fall sind auch nur Frequenzdateien in eben diesem Verzeichnis relevant!
In CB-Emu erkennt man das in der Engineliste an [<>] (für MessExtra) oder [WB] (für MessChess) am Ende des Enginenamens.
Noch kurz zu 1 oder 2 Frequenzwerten:
Für fast alle Engine genügt 1 Wert, nur die folgenden haben 2 CPUs:
feagv5 (in MessExtra), mrisc und mrisc2, ssystem3, savant und savant2, sowie alle analyst/maestro/sparc-Module.
Beim feagv5 rechnen beide CPUs am Programm, d.h. sie sollten auch beide gleich getaktet sein (also nur 1 Frequenzwert!).
Beim savant/savant2 ist anscheinend nur die 1.CPU für das Programm zuständig, also sollte dabei der 2.Wert auf 0 bleiben ("x 0").
Bei allen anderen arbeitet die 2.CPU das Schachprogramm ab, sodaß hier der Eintrag "0 x" lauten sollte (außer man will auch den Wert der 1.CPU ändern).
So, damit bin ich auch schon am Ende - im CB-Emu-Paket gibt's keinerlei Hinweise auf diese neue Möglichkeit, die Frequenzen 'extern' (durch eine Datei) zu ändern, da ich eigentlich gar nicht möchte, daß ein 'normaler' Benutzer von CB-Emu davon etwas mitbekommt - das ist nämlich viel zu kompliziert und würde nur zu unendlich vielen Fragen führen.
Die neue Version ist schon online ...
Grüße,
Franz