***************************************************************************************************
Wb2Uci 
Návod k použití
10. 2. 2002 Odd Gunnar Malin
14. 2. 2002 Emil Vlasák 
www.vlasak.zde.cz
***************************************************************************************************
0. Úvodem

Převod WinBoardového motoru do standardu UCI by měl být záležitostí několika hodin, 
proto se konvertor WB2UCI zdál na první pohled tak trochu luxusem. 
Snad pokud jde o starší program nebo líného autora... 

Kupodivu má velmi příjemné vedlejší důsledky.
 
Jdou jím totiž spustit WB motory ve Fritzovi a podle prvních poznatků běží mnohem lépe.
Je totiž vyšachován ze hry starý ChessBasovský konvertor WB2CB, 
který je nyní částečně zabudován do Fritze a částečně přesunut sem. 
Už aby byl taky update na CB8!

Konvertor taky mimochodem nahradí ten nepěkný InBetween pro spouštění Kinga.
Umožňuje totiž vyslat WBoardovému motoru inicializační řetěz, 
kam se dá i ta magická sekce opk=... 
Ostatně jde o téhož autora - Odd Gunar Malin. 

******************************************************************************************************

1. Stručný návod

1.1 WB motor musí být samozřejmě funkční s nastavenými parametry
v souborech *.INI, RES, CUI. Zde jsou údaje o hash tabulkách, knihovnách,
samoučení. Nedoporučuje se ale používat příponu INIT.

1.2 Samotný konvertor jsou dva soubory Wb2Uci.EXE  a Wb2Uci.ENG.
Ten druhý je textový. 
K větší přehlednosti přispívá to, že se nepřejmenovávají,
ale jak jsou nakopírují do adresáře zkonfigurovaného WB motoru.

1.3 Souhra těchto souborů je výborně vymyšlena.
UCI "obal" je buď EXE soubor (třeba při volání z Fritze) nebo
textový ENG při volání ze Shreddera Classic. 
Vlastní konvertor je samozřejmě EXE a v každém případě z ENG bere
parametry, které se tam ručně nastaví.

1.4 Příklad ENG souboru pro program Crafty

[ENGINE]
Name=Crafty 18.13
Author=Robert Hyatt
Filename=Wb2Uci.exe

[OPTIONS]
Program=c:\Programfiler\engines\Crafty\wcrafty.exe
InitString=
HashCommand=hash %iM
Hash=4
HashOnCommandline=false
InitTime=2
Edit=setboard
UseSAN=false
Ponder=false
Logfile=true
Priority=Normal
Protocol=2

1.5 Rychlý komentář

Sekce [ENGINE] 

Zpětný odkaz Filename=Wb2Uci.exe při volání z Fritze nemá smysl.
Ale pokud je UCI motor volán ze Shreddera jako soubor ENG, pak odkáže na stejnojmenná EXE.
Proto se samozřejmě nemění.

Sekce [OPTIONS]

Samozřejmě Program=c:\Programfiler\engines\Crafty\wcrafty.exe
ukazuje na WB motor včetně úplné cesty. Měly by fungovat i mezery.
Zbytek nechte pro začátek na standardních uvedených hodnotách.


1.6 Volání z Fritze
Potřebujete update z 22. ledna 2002 a vyšší.
Zřídíte nový motor z menu
Motor /Vytvořit UCI motor /Procházet
a najedete na Wb2Uci.exe ve správném adresáři u WB motoru.
Fritz vytvoří ve svém adresáři Engines datový soubor XZY.UCI.
Motor je pak možno nahodit (nejrychleji přes F3) a případně nastavit parametry.

*************************************************************************************************

2. Podrobnosti

Program=

Některé programy musí být spuštěny s parametrem, aby fungovaly jako WB motor
Zadejte i tento aprametr, například 
Bringer.exe /winboard

InitString=

Některé WB motory mohou vyžadovat speciální inicializační řetěz.
Konvertor jim ho vyšle při zahájení seance.

Samozřejmě jde hlavně o Kinga, kde tento parametr může nahradit celý komplikovaný InBetween. 
Pokud vám to doma chodí, následující řetězec okopírujte z InBetween.ini.
Opk= se samozřejmě stále musí vydolovávat spouštěním ChessMastera.
?Nevím, jestli je správné první zpětné lomítko?
 
InitString=/xboard := xboard\npost\nnew\ncm_parm tts=33554432\ncm_parm opk=1234\n

HashCommand=
Hash=

HashCommand= je symbolický příkaz k nastavení hash tabulek. Poslední M jsou Megabyty.
%i je hodnota dalšího parametru Hash=

Příklad
HashCommand= hash %iM
Hash=4
vyšle do WB motoru příkaz hash 4M

HashOnCommandline=

Je-li pravdivý (true), pak výše uvedená hodnota pro hash je poslána
ne jako příkaz, ale přímo při startu jako parametr

Příklad
Program=chop.exe
HashCommand=-hash %i
Hash=4
HashOnCommandline=true

Spustí WB motor takto: chop.exe -hash 4

InitTime=

Čas potřebný k inicializaci, než WB motor je schopen hrát.
Bez Tablebasí asi tak 2 sek.
S Tablebasemi přidejte tak 30 sek podle typu počítače.
V protokolu verze 2 je ignorováno a po 60 sekundách bez reakce je
motor odpojen.. 

Edit=

Výběr metody jak motor nastavuje pozici.

setbord - Nová metoda  přes FEN.
edit    -  Stará metoda.
cb-edit - Rozšířená metoda Chessbase umožňující nastavit rošády a braní mimochodem.
Protokol ver. II - může být přepsáno.


UseSAN=

Nastavit true pokud motor používá SAN notaci, to je (Nf3 místo g1f3). 
Protokol ver. II - může být přepsáno.

Ponder=

Tzv ponderování je nový výraz pro Permanet Brain, tedy přemýšlení na čas soupeře.

Logfile=

Zda se má psát log soubor Wb2Uci.log do téže složky, kde je  Wb2Uci.exe. 
Formát log-filu
<time in sec.msec> <Server nebo Client><směr přenosu> <text>

Příklad.
4.487: S> move e2e4
4.497: C< bestmove e2e4
6.850: C> position startpos moves e2e4 e7e5
6.850: C> go wtime 56415
6.850: S< time 5641
6.850: S< e7e5

Line 1: Motor (server) poslal tah
Line 2: Tah je poslán do GUI (klienta)
Line 3: Tah obržen z GUI
Line 4: GUI žádá motor počítat
Line 5: Čas je poslán motoru
Line 6: Tah je poslán motoru.


Priority=

Priorita motoru.
Pro analýzu Low, další možnosti
Normal, BelowNormal a Low.

Protocol=

Starý protokol 1 už používá jen málo motorů.
Ve standardní verzi 2 jsou některá nastavení přepsána motorem.

