In the theory all this option should also be edit able from the GUI. This isn't always true, some GUI will not show text variables like Program, InitString and HashCommand.
If this is true the adapter would send a move in response to a stop command even if the engine doesn't think at the moment. Some gui could expect this and thereby stop playing yntil a move is received.
Valid options:
AlwaysSendMoveOnStop=false|true
Default=false
If this is true the adapter would use the analyze command for infinity analysis. If the engine don't support this set it to false which will result in that the adapter set the engine to use a long time control instead.
Valid options:
Analyze=false|true
Default=true
Add the command the engine need to enable its own book here. See also Bookon
Add the command the engine need to enable its own book here. See also Bookoff
Tells the engine that he plays against a computer. Some engines may alter some drawscore etc. when this is set.
Default=false
Add a delay in ms between commands to the gui. This could be tried if the engine have a slow reading of commands.
Default=0
If the engine have a command to discard moves from a search you can add this command here. Optional you can add a %s where you want the exclution list of moves to be, by default the list will be added to the end. The search are terminated with the exit command. The string could content escape characters (\n, \f \x1a etc.). You can useo Search instead of this feature to get the same result.
Ex.
Discard = discardmoves %s\nanalyze
Select the method the engine need to setup a position.
setbord - The new winboard method that use a fen-string.
edit - The old winboard method.
cb-edit - Chessbase's extending of edit, includes possibility to set castle and enpassant.
This is only in use when the start position of the game wasn't the standard start position. A protocol ver. II engine could overwrite this.
Default=setboard
In InitString, HashCommand and as an engine-command in [EXTRAS] options it is allowed to use escape characters for none printable characters.
The standard characters are:
\n New line \\ Backslash \t Horizontal tab \? Question mark \v Vertical tab \' Single quote \b Backspace \" Double quote \r Carriage return \ooo Octal number (any character) \f Formfeed \xhh Hex number (any character) \a Bell
Start a section in the .eng file with the line [EXTRAS]
Each key in this file should be on one of these format:
Gui-command=Engine-command|spin|Default value|Minimum-value|Maximum-value
Gui-command=Engine-command|check|default(true or false)|false value|true value
Gui-command=Engine-command|button
Gui-command=Engine-command|combo|Default value|var 1|var 2|...|var n
Gui-command=Engine-command|string|Default value
There are three standard commands that could be used here if your engine support them:
Clear Hash=reset|button
NalimovPath=TBpath|string|=.\TB\
NalimovCache=TBsize %iM|spin|2|1|32
Default hash size in MB.
Default=2
Command to give for setting the hash. The hash value is given as mega byte. For the hash value to not be added to the end of this string you can use %i to define where in the string the value should be added. The string could content escape characters (\n, \f \x1a etc.).
Default=none
Ex.
HashCommand=set hash
HashCommand=hash %iM
HashCommand=hashvalue %i
HashCommand=cm_parm tts=%i000000
Formula to calculate the value to put in the hashcommand. Only simple calculation work: +-*/(). Use HASH for the variable returned from the gui.
Default=none
If true the hashcommand given above should be put on the command line instead as a command after the startup.
Default=false
Some gui are able to show a help button. For this to show a help text you must make a help file in html format and have it in the same folder as the adapter. The name of the help file must be Wb2Uci.html. If you use Visible filter add 'Help' to the line for it to show up in the GUI.
If you need any additional command to set up the engine you could add it here. The string could content escape characters (\n, \f \x1a etc.).
Default=none
The time the engine need to initialize before it could move. Without endgame tables this could be 2 sec. With endgame tables you must probably add up to 30 sec. depending on the speed of your PC.
If the engine use the protocol version two method with feature done=0/1 the InitTime value is ignored. There will be a panic timeout on 60 sec. instead.
Default=2
If the engine treat the level command in the middle of a game as a start point for a new counting of moves set this to Progressive.
If the engine apply the time control to the hole game use Strict. You would see this if you use a time control like 1/20 + 1/15 + 1/game. If the engine is in heavy time pressure from move 31 to 35 or loos on time between this moves you need probably to set this to strict.
If the engine don't accept any level command in the middle of a game set this to Failsafe.
If this too fails the last option is to set it to 'none'. This will stop the adapter from sending any level command except the first level comand on game start. Be aware that an engine could only be used with timecontrols of the type 'game in minutes' or 'moves in minuts' where all timecontrols are equal, ex. 40/40 + 40/40 + 40/40 etc.
Valid options:
LevelExtend=Progressive|Strict|Failsafe|None
Default=None
Write a log file in the same directory as Wb2Uci.exe lives. Name of log file is Wb2Uci.log When you enable 'Logfile' all new log's are appended to the file so the file could be really big after some games. For easier work with the file you could delete it when you finish working with it.
Default=false
Format of log-file
<time in sec.msec> <Server or client end><send or receive> <text>
Ex.
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: The engine (server) has sent a move
Line 2: The move is sent to the GUI (client)
Line 3: A position/move receives from the GUI
Line 4: The GUI ask the engine to start the search
Line 5: The time is sent to the engine
Line 6: The move is sent to the engine.
Set the score sent by the engine when a checkmate is detected.
Default=32767
Set the ply when the pv-line should be sent to the gui. If the engine have a similar command by itself it is preferable to use that instead. This option is for speeding up the adapter since there could be a lot of noise on the first plies.
Default=0
The engine take care of the book.
Default=false
Let the engine ponder when the opponent have the move. Normal the GUI adjust this in other places than the setup-box. (Permanent brain, Think on opponents time etc.) Set this to false if the engine don't support ponder.
Default=true
Use this if you need to tune the priority the engine need. For analysis it's often useful to set this to low.
If the GUI adjust this himself the adapter will pass on this priority changes to the engine.
Valid options:
Priority=Normal|BelowNormal|Low
Default=Normal
Full path to the winboard compatible engine. If the engine need a parameter to go into xboard mode add this too here.
ex. Bringer.exe /winboard
Default=none
If the engine is using protocol 1 you can take away the question sent to the engine with setting 1 here. There are only few engines that need this, eg. crashes with unknown command.
If the engine is protocol version 2 some of the other setting are overwritten with the settings the engine send.
Default=2
If this option is true the engine is started up in idle mode. The priority option would not have any effect. This option is to force engines with threads to be running with lower priority when the GUI isn't able to reach the search thread.
Engine-Engine matches with ponder on would not give correct result when the engine is running in this mode.
This option is for engines that want show normal pv output in Fritz, all pv- lines are comming together after the engine has moved.
You should first check if the engine has an option on his own to alter the priority before you use this.
Default=false
If the engine have a command to search with a movelist you can add this command here. Optional you can add a %s where you want the exclution list of moves to be, by default the list will be added to the end. The search are terminated with the exit command. The string could content escape characters (\n, \f \x1a etc.).
Ex.
Search = searchmoves %s\nanalyze
Let the engine show the move it's thinking of under search. Note that not all engines support this. This option would stress the engine a bit maybe 1-2% longer searchtime but converted to elo it would be less than 1 point.
Valid options:
ShowThinkingMove=false|true
Default=false
Use move from last PV as hintmove when this is missing from the pv or as a hint command.
Default=false
Set up a running loop to slow the engine down. This is for downgrading the engine if it doesn't have any strength adjustement by its own. The engine are adjusted down 50-70 elo points for time it is slowed down by 2. Eg. 2 give about 50-70 elo points, 4 give 100-140 elo etc. The default value 1 means no slowdown, 2 = 1/2 of the normal speed, 3 = of 1/3 the normal speed etc. Use this with care so it don't hung your PC eg. try it one step at the time.
Default=1
Add the time in seconds the engine need for starting up before it can receive a command.
Default=1
For os's that do a cleanup when you terminate a program, you can let the adapter terminate the engine if stopping fails instead of leaving it running.
Default=false
If the engine don't have the command 'undo' this option could be set to false.
Valid options:
UseUndo=false|true
Default=true
This isn't really an option but a way to control which option that should be sent to the gui and displayed there. Separate each option with a ','. This option could be added either to [ENGINE] or [OPTIONS] section. For Engine specific command to be used you must add Extras to this string.
Ex. A normal engine could have the following set.
Visible=Hash,Ponder,OwnBook,ShowThinkingMove,Logfile,Extras
Default=<option visible>
The engine always have white as plus-score
Default=false
Odd Gunnar Malin, malin@online.no