Einzelnen Beitrag anzeigen
  #5030  
Alt 31.08.2022, 15:41
fhub fhub ist offline
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.849
Abgegebene Danke: 563
Erhielt 6.873 Danke für 1.553 Beiträge
Aktivitäten Langlebigkeit
5/20 15/20
Heute Beiträge
0/3 sssss2849
AW: Mess Emulator für diverse Schachcomputer ist fertig!

Hi,

also das gab's auch schon lange nicht mehr: ein Monat lang keine einzige neue Engine!
(auch vom versprochenen MM III Prototyp war leider nichts mehr zu hören)

Trotzdem gibt's heute nochmal ein Update - neben ein paar kleinen internen Änderungen habe ich z.B. auch das 'Speed'-Menü erweitert, sodaß man jetzt die Emulationsgeschwindigkeit auch in mehreren Stufen einstellen kann.

Die größte Neuerung ist allerdings ein komplett neues Feature, das eigentlich schon lange auf meiner Wunschliste stand, und zwar die Mögichkeit, die CPU-Frequenz aller Engines beliebig einstellen zu können. Ich bekomme nämlich ständig Email-Anfragen, ob ich nicht für irgendeine Engine auch noch weitere Geschwindigkeiten 'einbauen' könnte - würde ich dem nachkommen, dann wäre da wohl kein Ende in Sicht.

Also habe ich über eine allgemeine Lösung nachgedacht, mit der man für alle Engines jede beliebige CPU-Frequenz einstellen kann.
Da das allerdings auch mit gewissen Risiken behaftet ist (dazu schreibe ich später mehr), und nur zum Experimentieren für unsere Experten hier gedacht ist, findet man dieses Feature nicht direkt im CB-Emu-Paket und es wird da auch nirgendwo direkt erwähnt oder beschrieben - das mache ich nur hier und jetzt!

Nötig dafür ist eine zusätzliche externe Datei 'MHz.ini', die sich im jeweiligen Verzeichnis (CB-Emu, MessExtra oder MessChess) befinden muß. Das ist eine reine Textdatei, die in der 1. Zeile einfach den gewünschten Frequenzwert (in MHz) als Dezimalzahl enthalten muß. Es sind auch 2 solche MHz-Werte (getrennt durch Leerzeichen) möglich, weil manche Geräte ja 2 verschiedene CPUs besitzen (z.B. Saitek Renaissance als Grundgerät und Analyst/Maestro/Sparc als Module mit eigener CPU).
Falls nun so eine Datei beim Laden einer Engine gefunden wird und der eingelesene MHz-Wert korrekt ist (erlaubt sind Werte bis 500), dann wird nach deren Start die CPU automatisch auf die gewünschte Frequenz eingestellt, was auch durch eine kurze Meldung "Modified CPU frequency!" angezeigt wird (ein Wert 0 in der Datei führt zu keiner Änderung der 'normalen', im Treiber definierten Frequenz).

Überprüfen kann man so eine geänderte Frequenz im Menü 'File > Show Tab Menu > Machine Information', hier findet man immer den jeweils aktuellen Wert. Außerdem sollte man evt. unter 'Options > Show FPS' auch mal nachschauen, ob der PC die Engine mit der gewünschten Frequenz auch tatsächlich emulieren kann (bei 100% ist alles ok, bei kleineren Werten schafft der PC die eingestellte Frequenz nicht mehr).

Im Anhang findet ihr so eine Datei 'MHz.ini', bei der allerdings in der 1. Zeile "0 0" steht, d.h. dabei erfolgen noch keinerlei Frequenzänderungen.
Diese Datei braucht man nun einfach ins Verzeichnis CB-Emu, MessExtra oder MessChess kopieren und die gewünschte(n) Frequenz(en) in der 1. Zeile editieren, dann startet JEDE Engine beim Aufruf in diesem Verzeichnis eben mit der eingestellten Frequenz. Das gilt solange, bis man entweder diese Datei wieder gelöscht hat, oder die Werte in der 1. Zeile wieder auf 0 zurückgesetzt hat.

Falls man eine bestimmte Engine öfter (oder ständig) mit einer höheren (und auch funktionierenden!) Frequenz benutzen will, dann läßt sich das sehr einfach mit einem Reset-State durchführen: die Engine mit geänderter Frequenz starten, evt. noch irgendwelche Einstellungen vornehmen (z.B. Level), und dann 'File > Save Reset State' ausführen. Dabei wird der aktuelle Zustand (mit Frequenz!) gespeichert, und bei jedem zukünftigen Start (dann auch OHNE Datei 'MHz.ini'!) wieder hergestellt.

Wie ihr seht ist diese neue Option doch nicht so ganz einfach anzuwenden und auch eher nur für Experten gedacht, weswegen ich sie auch nicht direkt in die 3 GUIs integriert habe - ich will ja nicht in Zukunft unzählige weitere Emails bekommen mit Fragen wie "Warum funktioniert nun diese oder jene Engine plötzlich nicht mehr?"
Außerdem ist im letzten Satz ja auch schon enthalten, daß es natürlich mit so einem Feature auch viele Probleme geben kann (und auch tatsächlich gibt!), womit ich nun zum Abschluß noch eben solche Probleme auflisten werde.

Eine Reihe von Schachcomputern funktionieren bei höheren (bzw. zu hohen) Frequenzen einfach nicht mehr korrekt - das kann an unterschiedlchen Baugruppen (Uhr, LCDs/LEDs, Sensoren usw.) liegen oder einfach daran, daß bei diesen Frequenzen die Kommunikation zwischen Programm und Hardware zeitlich nicht mehr passt. Daran kann ich allgemein (d.h. passend für JEDE Engine) leider auch nichts ändern, dazu müßte man das eben wieder für jede Engine selbst im jeweiligen Treiber anpassen, was bei 300-400 Engines natürlich unmöglich ist. Man muß daher einfach selbst testen, ob bzw. wie weit man die Emulation einer bestimmten Engine übertakten kann.

Hier nun eine Liste von möglichen Problemem, geordnet vom besten zum schlechtesten Fall:
1) alles funktioniert korrekt, auch die interne Uhr der Engine läuft mit 'normaler' Geschwindigkeit: da braucht man natürlich gar nichts weiter zu tun.
2) im Prinzip funktioniert die Engine, aber ihre interne Uhr läuft bei höherer Frequenz auch schneller: das ist der Fall, wenn der Takt der Uhr direkt vom CPU-Takt abgeleitet wird. Das entspricht dann etwa der Situation, die auch bei Erhöhung der Emulationsgeschwindigkeit ('Maximum Speed') auftritt - lösen kann man dieses Problem durch Einstellen eines höheren Levels mit entsprechend längerer Bedenkzeit.
3) bei einigen Engines funktioniert bei höheren Frequenzen die LCD-Anzeige nicht mehr richtig (zeigt nur Müll an!) - das betrifft vor allem Geräte mit Punktmatrix-Anzeige (einige Mephistos und Novags). Solange allerdings die Enginezüge (auch noch) über die Brett-LEDs angezeigt werden, könnte man theoretisch mit ihnen noch spielen - zur Not einfach in MessChess, weil dabei ja WinBoard die Züge übernimmt (ein Problem könnte aber die Level-Einstellung sein, falls das Plugin dafür das LCD-Display benötigt).
4) im schlechtesten Fall funktionieren aber auch die Brett-LEDs, Brettsensoren oder die Tasten nicht mehr bei oder ab einer bestimmten Frequenz - in diesem Fall kann man dann natürlich gar nichts mehr machen.

Fazit: man muß eben ein wenig Herumexperimentieren, vorausgesetzt man will dieses neue Feature überhaupt ausprobieren - falls nicht, dann braucht man diese neue Datei 'MHz.ini' einfach nur ignorieren.
Für spezielle Fragen dazu stehe ich natürlich gerne hier im Forum zur Verfügung ...

PS1: Vielleicht noch 2 kleine Beispiele dazu ...
1) MM IV mit 50 MHz (statt 5): einfach "50" oder "50 0" in der 1.Zeile eingeben.
2) Saitek Analyst mit 20 MHz (statt 8): "0 20" in der 1.Zeile
Die erste 0 steht für die CPU des Hauptgerätes (Renaissance-Brett), und dessen 10 MHz werden dadurch nicht geändert, die 20 gelten dann eben für das Analyst-Modul.
PS2: Noch etwas: natürlich können auch Zahlen mit Nachkommastellen wie z.B. 12.75 als Frequenzwerte eingegeben werden.

Grüße,
Franz

Geändert von fhub (28.10.2022 um 19:33 Uhr)
Mit Zitat antworten
Folgende 18 Benutzer sagen Danke zu fhub für den nützlichen Beitrag:
Agep (01.09.2022), Chessguru (31.08.2022), chessman68 (01.09.2022), dsommerfeld (01.09.2022), ferribaci (31.08.2022), germangonzo (31.08.2022), Hartmut (03.09.2022), kamoj (01.09.2022), Mapi (31.08.2022), Mark 1 (31.08.2022), marste (31.08.2022), Michael (01.09.2022), MichaelN (01.09.2022), mickihamster (01.09.2022), Mychess (16.09.2023), Mythbuster (31.08.2022), Robert (02.09.2022), Stranger (31.08.2022)