The WinBoard adapter

  Previous topic Next topic  

The program comes with a winboard adapter that allows the use of winboard or UCI compatible Chess engines. The following pages give more information about the use and configuration of the winboard adapter.

 

To use the adapter Select Extra -> Options on the Chess engine tab click the Engine button, there should be an entry "Winboard adapter" in the dropdown list. This selects the plug-in module. You may get an error message asking to edit the engine profile, responding yes brings up the plug-in profile selection dialog. Select crafy or gnuchess, you must edit the profile for the location of crafty or gnuchess.

In this release the profile is stored in a simple text file, each engine profile start with a line [name] where name is CRAFTY, GNUCHESS, etc. The file is located in the windows directory and called:

 

ENGINEEXT.INI

 

Make sure to save the settings!

 

Of course you first have to install the various winboard engines. It is recommended to install each engine in its own directory below the engines directory in the installation directory e.g.

 

C:\Program Files\Lokasoft\ChessPartner\Engines\Crafty

C:\Program Files\Lokasoft\ChessPartner\Engines\GNUCHESS

etc.

 

 

 

The ENGINEEXT.INI file contains a number of sections.

There is one section for each engine. A section starts with the engine name in between square brackets e.g.

[Crafty]

 

Below this line there are a number of parameters that can be set, the most important are the first four:

 

Console=?

 

If console is set to 1 all commands that are send to the engine are displayed in a console window. Set this to 0 to hide the console window.

 

Logfile="engineext.log"

 

If a filename is given all commands are also saved in this file, useful for debugging. If left blank no logging is done.

 

EngineDir=""

 

EngineDir specifies the directory where the engine is to be runned from. If left blank the directory of the chess engine is used.

 

EnginePath="eninges\crafty\wcrafty.exe"

 

EnginePath is the command line used to start the engine, is may be an absolute or  relative path. In case of a relative path the installation directory is used as base.

 

Furthermore there are some parameters to control what kind of commands are send to the engines. In most cases it is not necessary to change any of these. A command string can contain \n which is the same as enter typed from the command line. In this way it is possible to send multiple commands to the engine.

 

Options=n

 

The Options keyword controls various aspects of the adapter. The following options are defined:

1 – Invert score

2 – Send time/otime before engine is instructed to compute a move.

 

Options=2        - Sends time/otime

Options=3        - Same + score invert.

 

EditMode=?

 

Editmode 0= use editstring, followed by the pieces e.g. GNUCHESS,

1=use setboard + fen e.g crafy mode

 

 

InputMoveDelay=30

 

This specifies the time in milliseconds to wait after a move has been received from engine but before passing it on to the GUI, is intended to receive possible end of game conditions like checkmate, resign etc.

Default is 30

 

 

OutputMoveDelay=0

 

This is the minimum time to wait, before sending another move.  Default is 0

 

ExitString="quit\n"

 

This string is send to exit the engine.

 

EditEndString=".\n"

 

String sent to end the edit board mode.

 

SwapColorString="c\n"

 

This string is send in edit board mode to swap the colors.

 

EditString="edit\n#\n"

 

This string is send to start the edit board mode. Is only used when the edit mode is 0.

 

ForceString="force\n"

 

The command is send to the engine to set the engine to play neither color ("force mode").  Stop clocks. The engine should check that moves received in force mode are legal and made in the proper turn, but should not think, ponder, or make moves of its own.

 

UndoMoveString="undo\n"

 

If you have Rebel Tiger take bake moves, it sends this string for each move to takeback. Before sending this string it firsts sends the ForceString.

 

ColorStringw="white\n"

 

Command send to have the engine play the white moves

 

ColorStringb="black\n"

 

Command send to have the engine play the black moves.

 

ComputeString="go\n"

 

Command send to start the engine thinking it's best move.

 

MoveNowString="?\n"

 

This command is send to the engine to force it to play a move right now.

 

NewGameString="new\nrandom\nponder on\n"

 

This string is send when a new game is started. You may want to modify this string to set some additional options. You make sure the engine is ready to start a new game.

 

InitString="xboard\nnew\nbeep\nhard\npost\nponder on\n"

 

This string is send when the engine is first loaded. You may want to add some additional options; important is that the engine is working in a winboard compatible mode.

 

NameRev="Crafty v15.14"

 

This string is displayed in the engine properties page and also show when you play the engine on the Internet. Fill the name and version of the engine.

 

PonderOn="hard\n"

 

This string is send to enable pondering, if this string is specified you must also have a PonderOff key.

 

PonderOff="easy\n"

 

This string is send to disable pondering, if this string is specified you must also have a PonderOn key.

 

SetAnalyseMode="analyze\n"

 

This string is send to set the engine in analyze mode, if this string is specified you must also have a ExitAnalyseMode key. If the engine does not support the analyze mode leave these keys blank.

 

ExitAnalyseMode="exit\n"

 

This string is send to leave the analyze mode, if this string is specified you must also have a SetAnalyseMode key.

 

 

Then there are a number of level strings, these are used to map the Rebel Tiger levels to the level commands understand by the engine.

 

Rebel Tiger has 7 kinds of levels, each kind of level has some parameters with it. For each kind of level you can define a string with parameter replacement that is send to the engine.

 

The following parameters can be inserted:

 

 

%1 = First search depth in ply's

%2 = Second search depth in ply's

%3 = First time check in seconds

%4 = Number of moves until first time check

%5 = Second time check or time increment in seconds

%6 = Number of moves for 2nd time check

%7 = First time check in minutes (Same as %3 but then converted to minutes)

%8 = First time check remainder seconds (Use in combination with %7)

%9 = Second time check in minutes (Same as %5 but then converted to minutes)

%10 = Second time check remainder seconds (Use in combination with %9)

 

Level0=level 1 9999 0\nsd %1\n

 

The Level0 string is send when a fixed search depth level is selected. The %1 parameter is the requested search depth in plies.

 

Level1=sd 29\nlevel %4 %7 0\n

 

This string is send when a tournament level is selected. The %3 and %4 parameters are for the first time check, the %5 and %6 for the second time check.

 

Level2=sd 29\nst %3\n

 

String is send when a fixed time per move is selected; the %3 or %7 and %8 parameters contain the selected time.

 

Level3=level 1 9999 0\nsd %1\n

 

This string is send when a search for checkmate level is selected. The %1 parameter is the selected depth.

 

Level4=sd 29\nlevel 1 %7 %3\n

 

This is send when a level with a average time per move is selected. The %3 or %7 and %8 parameters contain the selected time.

 

Level5=sd 29\nlevel 0 %7 %5\n

 

Level with a time increment after each move is made ("fisher clock") The %3 or %7 is the base time, the %5 parameter the time increment.

 

Level6=level 1 9999 0\nsd 29\n

 

This string is send if the infinite time level is selected.

 

Known problems.

 

For a number of features Rebel Tiger relies on functions in the chess engine, e.g. the opening book display and some others. These functions are not present in other chess engines so these functions are disabled.

 

Testing has mainly been done using crafty.

 

On occasions the chess engine does not exit.

 

Not all levels are interpreted correctly.

 

 

DISCLAIMER

THE WINBOARD ADAPTER IS UNSUPPORTED SOFTWARE. WE HAVE INCLUDED IT IN THE HOPE SOMEONE FINDS IT USEFULL. AS IT’S OPERATION RELIES ON SOFTWARE

OUTSITE OUR CONTROL WE CANNOT MAKE ANY WARRANTY OF ITS PROPER FUNCTIONING.