Hallo zusammen,
ich habe mir Houdini 3 mal mit dem HEX-Editor angesehen und festgestellt, daß die Passage, in der die Figurenwerte und die pawnstorm-Werte etc. verändert werden können, im neuen Houdini 3 absolut identisch zu Houdini 2.0c ist (auch die Werte an sich sind gleich). Allerdings akzeptiert das HoudiConfig-Tool natürlich die neue Houdini 3 .exe-Datei (noch) nicht. Aber mit einem HEX-Editor kann man dennoch Settings eingeben. Ich poste hier deshalb noch mal meine Anleitung, die ich seinerzeit hier für Houdini 2 geschrieben hatte im Anschluß. Wer ein schon bekanntes Setting einfach nur in Houdini 3 einpflanzen möchte, kann das sehr einfach mit einem HEX-Editor tun (Houdini 3 exe-Datei vorher duplizieren, falls was schiefgeht!!!)
Man sucht nun einfach nur die TEXT/ASCII-Sequenz (nicht die HEX-Sequenz!!!): 5D717974702A2020202020202020202020202020202020202020202020201E2328161C1E20 und ersetzt diese mit einem Setting (Text-Stelle suchen und ersetzen bieten die meisten Hex-Editoren als ein Kommando an).
Ein paar bekannte Settings hier:
Houdini 2.0Baracuda => 5F758274733021212220222020201E1E1E1E20202020202222202222221E1E2328161C1E20
Houdini 2.0T3 => 5D717974702A2020202020202020202020202020202020202020202020201E23281628323C
Houdini 2.0Z => 5A7179746E2A2020202020202020202020202020202020202020202020201E22281628323C
Houdini 2.0S => 5A71797469372020202020202020202020202020202020202020202020201E23281628323C
Houdini 2.0g => 5F717974702A202020202020202020202020202020202020202020202020202428161E2024
Houdini 2.0c Kayra2 => 5F7C8689982C2020202020202020202020202020202020202020202020201E242A182A333A
Hier nun im folgenden noch mal meine ausführliche Anleitung, um eigene Settings zu erstellen:
Wie einige evt. schon mitbekommen haben, ist es möglich in Houdini 1.5a per HEX-Editor einige Parameter zu verändern. Dies funktioniert auch mit Houdini 2.0b (Pro oder nicht Pro-Version ist egal) und Houdini 3 wie ich festgestellt habe. Denn glücklicherweise hat sich an der inneren Struktur von Houdini in dem für uns hier relevanten Teil nichts geändert. Lediglich die Werte einiger Parameter wurden in der neuen Version von R.Houdart verändert.
Die im Netz kursierende Anleitung für Houdini 1.5a ist m.E. recht irreführend bzw. verwirrend, ich werde daher kurz eine eigene Anleitung verfassen, die sich jedoch auch der 1.5a-Anleitung bedient.
Zunächst muß man natürlich Houdini 3 Besitzer sein und auf seinem Rechner die Installation durchführen. Hat man das getan, so kann man glücklicherweise beliebig viele Kopien von Houdini 3 erstellen und auf diesem Rechner parallel laufen lassen. Deshalb kann man nun eine Kopie des .exe-Files erstellen und irgendwie anders nennen (z.B: Houdini 3 x64 xp.exe). In dieser können wir nun guten Gewissens rumpfuschen, da das Original nicht verändert wird. Dazu benötigen wir nun einen HEX-Editor, von denen es diverse als Freeware im Netz gibt.
In diesen laden wir nun das .exe-File ein und suchen nach dem Text-String (nicht HEX-String!!!):
5D717974702A2020202020202020202020202020202020202020202020201E2328161C1E20
Dieser Textstring enthält nun merkwürdigerweiser Hexadezimalwerte als ASCII-Codes, will sagen das erste Paar "5D" bedeutet wirklich 5D in Hexadezimalzahlen, also 5*16+13 (D ist die Zahl 13 (A=10, B=11, C=12, D=13, E=14, F=15)), und nicht die Hexadezimalwerte, die der Hex-Editor anzeigt. Im Folgenden manipulieren wir daher mit dem Hex-Editor immer den ASCII-Bereich und geben dort die Hexadezimalzahlen als Text ein. Das macht man sonst natürlich nicht so, aber in Houdini ist das seltsamerweise so gemacht worden. Wer verstanden hat, was an dieser Zahlenrepräsentation so ungewöhnlich ist, sieht auch ein, was mir dabei klar wurde: Im Prinzip braucht man gar keinen Hex-Editor, sondern der Windows-Text-Editor geht auch (!), allerdings ist die Darstellung dort sehr viel unübersichtlicher, sodaß ich zum Hex-Editor dringend raten würde...
Das genannte Beispiel 5D ist übrigens der Figurenwert für den Bauern, also ist dieser im Original-Houdini = 93. Möchte man nun den Figurenwert des Bauern auf 100 setzen, also den klassischen Wert, muß man das Zahlenpaar 5D auf 64 ändern (6*16+4). Eigentlich einfach, oder?
Leider wird das für die anderen Figurenwerte komplizierter, weil Houdini hier einen Offset verwendet, den man im Geist immer dazu addieren muß.
Hier nun zunächst mal die Parameterbeschreibung aus der originalen Houdini 1.5a-Anleitung, angepasst an die Werte, die Houdini 3 verwendet:
Die ersten 6 Zahlenpaare sind in Centipawns, die anderen in 1/32-Einheiten, letzteres erkläre ich später...
Meaning of the entries:
entry # default value description
Material values:
01 0x5D pawn value
02 0x71 knight value plus 200
03 0x79 bishop value plus 200
04 0x74 rook_value plus 375
05 0x70 queen_value plus 850
06 0x2A bishop pair value
Eval weights (in steps of 1/32):
07 0x20 static weight pawn
08 0x20 static weight knight
09 0x20 static weight bishop
10 0x20 static weight rook
11 0x20 static weight queen
12 0x20 static weight king
13 0x20 pawn island
14 0x20 pawn hole
15 0x20 pawn doubled on closed file
16 0x20 pawn doubled on semiopen file
17 0x20 pawn doubled & isolated on closed file
18 0x20 pawn doubled & isolated on semiopen file
19 0x20 pawn isolated on closed file
20 0x20 pawn isolated on semiopen file
21 0x20 pawn backward on closed file
22 0x20 pawn backward on semiopen file
23 0x20 candidate passed pawn
24 0x20 passed pawn base value
25 0x20 passed pawn protected
26 0x20 passed pawn outside
27 0x20 passed pawn connected
28 0x20 pawn: king distance
29 0x20 passed pawn: friendly king distance
30 0x20 passed pawn: opposing king distance
31 0x1E pawn shield outer file
32 0x23 pawn shield inner file
33 0x28 pawn shield middle file
34 0x16 pawn shield diagonal
35 0x1C pawn storm outer file
36 0x1E pawn storm inner file
37 0x20 pawn storm middle file
Am Beispiel des Springer-Figurenwertes erläutere ich nun die Vorgehensweise bei den anderen Figurenwerten (wegen des Offset-Wertes.): Der Springer hat einen Offsetwert von 200 (s.Aufstellung oben). Der Hex-Wert ist im Default-Houdini=71, also 7*16+1=113. Dazu addiert man nun im Geiste die 200 und erhält 313 als realen Figurenwert für den Springer. Will man einen anderen Wert eingeben, zieht man den Offset einfach ab und erstellt dann den Hex-Wert. Beispielsweise möchte man den Springerwert auf 300 setzen. Ergo zieht man 200 ab. Bleiben 100. Das in Hex-Zahlen umgerechnet ist 64 (6*16+4). Also müßte man in diesem Fall das ASCII-Zeichenpaar für den Springer von 71 auf 64 ändern... Analog geht man für die anderen Figurenwerte vor. Der Wert für das Läuferpaar hat keinen Offset und steht im Original auf 2A, also 2*16+10=42 centipawns. Möchte man diesen Wert auf 45 anheben (der klassische Wert aus der IvanHoe-Engine, aus der Houdini ja hervorging), so müßte man den Wert von 2A auf 2D ändern...
Soviel zu den Figurenwerten, nun noch zu den anderen Parametern:
Diese sind - wie oben schon in der tabellarischen Auflistung angegeben - in 1/32 Einheiten skaliert. Das bedeutet ein dezimaler Wert von 32 wäre genau 1 bzw. 100% wenn man so will. Daher auch die vielen 20er Werte in der Auflistung (Hexadezimal 20 = 2*16=32). Möchte man nun einen Wert auf 120% erhöhen, also 1.2 statt 1, so geht das leider nicht, weil man in 1/32 Schritten dort nicht genau hinkommt. Man muß sich also dem gewünschten Wert einfach maximal annähern. Eine 20% Erhöhung würde also eine Erhöhung von 32 auf 38.4 bedeuten, was nicht möglich ist. Hier würde man nun je nach Geschmack auf- bzw. abrunden. Wir runden hier nun ab auf 38. Diesen Wert muß man nun nur noch in Hex-Zahlen umrechnen, was 26 ergibt. Das trägt man statt des alten Wertes einfach ein - fertig.
Nun muß man sein fertiges Werk nur noch speichern, dorthin kopieren, wo die GUI der Wahl die Engine-exe-Files zu abzulegen pflegt und in der GUI die Engine erstellen/anmelden.
Fertig ist der Houdini mit selbstdefinierter Personality. Nur Mut, es ist einfacher, als man denkt, wenn man es erst mal verstanden hat.
Grüße an alle - Stefan