Einzelnen Beitrag anzeigen
  #4880  
Alt 08.01.2022, 13:53
fhub fhub ist offline
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.879
Abgegebene Danke: 578
Erhielt 7.001 Danke für 1.581 Beiträge
Aktivitäten Langlebigkeit
8/20 15/20
Heute Beiträge
0/3 sssss2879
AW: Mess Emulator für diverse Schachcomputer ist fertig!

Hi,

Robert hat mich via PM wegen eines Problems mit 'Reset State' in MessChess gefragt, und zwar wurden beim Mephisto Berlin die in diesem State-File gespeicherten Einstellungen durch das Plugin wieder zurückgesetzt.
Da meine Antwort an ihn evt. auch für andere hier interessant sein könnten, gebe ich diese Erklärungen zum Zusammenwirken von 'Reset State' und Plugin hier nochmals wieder:
Zitieren:
Die Plugins und dieses 'Reset State' sind ja konkurrierende Systeme: die Plugins gab's ja schon lange vorher, und die waren eben dazu da, neben der Kommunikation mit einer GUI auch irgendwelche Einstellungen (vor allem den Level) vorzunehmen und die Engine beim Start in einen definierten Zustand zu bringen (entweder mit Funktionen wie 'NewGame', 'Start' usw., oder auch 'Löschen' wie beim Berlin).
Um das auch beim Selberspielen in CB-Emu oder MessExtra zu ermöglichen, habe ich eben dieses 'Reset State' eingebaut - und zuletzt auch für MessChess aktiviert (obwohl dafür eigentlich gar nicht vorgesehen), weil es da prinzipiell ja auch funktioniert.

So ein 'Reset State' wird unmittelbar nach dem Laden einer Engine ausgeführt und stellt exakt den Zustand beim letzten Speichern ('Save Reset State') wieder her. In MessChess kommt aber danach noch das Plugin zum Zug, und da können natürlich bestimmte Befehle diese (durch 'Reset State' geladenen) Einstellungen wieder ändern.
Will man das nicht haben, dann muß man solche Befehle im Plugin entweder ändern, löschen oder einfach auskommentieren (mit '--' am Anfang der Zeile) - das sind immer Befehle der Form 'send_input(...)' in der Funktion 'interface.setup_machine()'.

Prinzipiell sind solche Einstellungs-Befehle im Plugin eigentlich komplett überflüssig, wenn man eben mit 'Reset State' arbeitet (man könnte sogar die Leveleinstellung mit 'interface.setlevel()' weglassen), wenn man all diese gewünschten Einstellungen einmal vor einem 'Save Reset State' gemacht hat, denn diese werden eben dann bei jedem Engine-Neustart (Soft- oder Hard-Reset) wieder hergestellt.

Was dieser 'Löschen'-Befehl im Berlin nun tatsächlich alles löscht, das muß man sich im Handbuch anschauen (oder ausprobieren), aber wenn er die Einstellungen des 'Reset State' auch zurücksetzt, dann muß man eben diesen Befehl im Plugin entfernen (am besten diese 5 Zeilen mit 'send_input(...)' auskommentieren).
(ein nochmaliges Laden eines 'Reset State' im Plugin funktioniert übrigens nicht, weil MAME so einen Ladebefehl innerhalb eines Plugins nicht akzeptiert)
Grüße,
Franz

Geändert von fhub (08.01.2022 um 21:56 Uhr)
Mit Zitat antworten
Folgende 3 Benutzer sagen Danke zu fhub für den nützlichen Beitrag:
Mapi (08.01.2022), Mark 1 (08.01.2022), Robert (10.01.2022)