:: Chess Academy Protocol: Engine-GUI Dialog :: 
 
 
Chess Academy logo .

Chess Academy Protocol (CAP), Engine-GUI Dialog
This document is dated on Nov 1, 2000 and refreshed on Mai 11, 2006

The following common requirements should be taken into consideration for further development of WinBoard compatible (or others) engines which may be compatible also with Chess Academy 6.0 program.

1. Introduction
Chess Academy supports numerous WinBoard-compatible engines.  There are about 70 WinBoard-compatible engines available on today from which more than 55 engines are supported, for example, by Chess Academy 6 Office program. An appropriate configuration files (*.C2W) are included for registration purposes in distribution packages of Chess Academy. 

They were created according to the following common protocol:

2. Common Protocol Description 
There are four lines included obligatory:

EnginePath=
a) full path, for example
EnginePath=c:\engines\engineX
b) relatively cha.exe file, 
for example: EnginePath=engines\engineX

EngineName=
Origin engine's name 
for example: EngineName=EngineXY

EngineSwitch=
Executable file with all needable options like hash settings or setting 
up xboard mode, for example:
EngineSwitch=engineX.exe -xb -hash32

EngineVersion=
Number of current version, 
for example: EngineVersion=10.03.AB

Other parameters may/may not be defined in c2w file. 

There are:

EngineInitPos=
0 - if an engine cannot enter non-initial position;
1 - if an engine can enter initial position:
using "edit" command;
fen 8/k/8/8/K/8/8/8 whomove castl ep - -
using another command; a position will be entered as FEN-line,
usually "setboard" command is used, in such case the following additional 
line is needable: EngineCmdSB=

For example:
EngineCmdSB=setboard
(if an engine requires input of FEN line not as single line, but separately by 
elements and separated with <Enter>, must be entered \n

For example, for ColChess there is: EngineCmdSB=fen\n
because this program requires 

fen
8/k/8/8/K/8/8/8
whomove
castl ep


instead of commonly used
fen 8/k/8/8/K/8/8/8 whomove castl ep - -


EngineMoveNow=
0 - if an engine cannot stop computing after clicking on "?" and display 
the best move (currently calculated as the best move)
1 - if an engine supports the command "?";
(Note: for CILIAN also the option "-mvnw" in EngineSwitch line is needable)

EngineCmdST=
SearchTime command may be entered (if the time control "Seconds per move" 
is supported), usually abbreviated as "st", for example:
EngineCmdST=st

EngineCmdSD=
SearchDepth command may be entered (if supported). Usually abbreviated 
as "sd", for example: EngineCmdSD=sd

EngineTypeOfCmdLevel=
A number may be entered, calculated as the total sum of the following numbers:
0 - engine supports base-inc time control only (like Amyan), the command "level" 
can be presented as "level 0 time 0" only 
1 - engine supports the standard output of command "level"; time settings without seconds
2 - the same as 1, but time settings with seconds
4 - 'time" command is used (conforms to standards, the time control is considered 
and defined by the command "level"). There is not the command 
like TimePerMove (this option is used to process the following controls: EqualTime and Hourglass).
For example, for 2 and 4: EngineTypeOfCmdLevel=6

EngineCmdHint=
The Hint command is used (if supported by an engine) to display hint output like "Hint: move". 
Basically there is "hint" 
EngineCmdHint=hint

EngineCmdDraw=
The Draw command is used (if supported by an engine) to accept or decline draw; 
an output like "I decline" or "I accept" is preferable. Basically there is "draw", 
for example: EngineCmdHint=draw

EngineTypeOfCmdHash=
Hash can be entered here, there are different possibilities:

EngineTypeOfCmdHash=11
for Crafty, Bionic
hash size can be entered like
hash 32M
The following line is required:
EngineCmdHash=
Key word must be entered here (hash), for example:
EngineTypeOfCmdHash=11
EngineCmdHash=hash

EngineTypeOfCmdHash=12
for Exchess, Lambchop, LDB, GLC, Nejmet
hash size can be entered like
hash 32
(no M letter), the following line is reqiured:
EngineCmdHash=
Key word must be entered here (hash), 
for example:
EngineTypeOfCmdHash=12
EngineCmdHash=hash

EngineTypeOfCmdHash=14
for TCB
hash size can be entered like
special
size bytes
x

EngineTypeOfCmdHash=15
for Gromit
hash size can be entered like
special
hash Mbytes
x

EngineTypeOfCmdHash=16
for ColChess
hash size can be entered like
hash
size

where hash size can be calculated 
as 2^n entries (ColChess)

The following line is required:
EngineCmdHash=
Key word must be entered here (hash\n), 
for example:
EngineTypeOfCmdHash=16
EngineCmdHash=hash\n

EngineTypeOfCmdHash=32
for Fortress
hash size can be entered like
brain size
where size = 2^(N-1) * 32768 bytes
The following line is required
EngineCmdHash=
Key word must be entered here (brain), 
for example:
EngineTypeOfCmdHash=32
EngineCmdHash=brain

EngineTypeOfCmdHash=33
for SSECHESS
hash size can be entered like
hash n
allocates a hash table with 2^n entries
10 = 16K 11 = 32K 12 = 64K
15 = 512K 16 = 1024K 17 = 2M 18 = 4M
19 = 8M 20 = 16M 21 = 32M
The following line is required
EngineCmdHash=
Key word must be entered here (hash), 
for example:
EngineTypeOfCmdHash=33
EngineCmdHash=hash

EngineTypeOfCmdHash=40
for NewRival
hash size can be entered as 
number in command line (kB)

EngineTypeOfCmdHash=41
for Phalanx, ANT
hash size can be entered in command line 
(kB) with option -t
for example:
ant.exe -t1000

EngineTypeOfCmdHash=42
for Arasan
hash size can be entered in command line 
(kB) with option -H
for example:
arasan.exe -H 1000

EngineTypeOfCmdHash=43
for Olithink
hash size can be entered in command line 
(MB) with option -H
for example:
olithink.exe -H 32

EngineTypeOfCmdHash=44
for Tristram
hash size can be entered in command line 
(MB) with option hash=
for example:
tristram.exe hash=32m

EngineTypeOfCmdHash=441
for SnailChess
hash size can be entered in command line 
(MB) with option hash=
but 2 appropriates to 1MB, for example:
snail.exe hash=16

EngineTypeOfCmdHash=45
for Cilian
hash size can be entered in command line 
(MB) with option -hashN
where hash size is calculated as 2^N*48

EngineTypeOfCmdHash=46
for Amy
hash size can be entered in command line 
with option -ht
for example: amy.exe -ht 10m

EngineTypeOfCmdHash=47
for Knightx
hash size can be entered in command line 
with option -hN
where
N size
16 0.75MB
17 1.5MB
18 3MB
19 6MB
20 12MB
21 24MB
22 48MB
23 96MB
24 192MB

EngineTypeOfCmdHash=48
for GnuChess
hash size can be entered in command line 
(in KB) with option -T
for example:
gnuchess.exe -T 1000

EngineTypeOfCmdHash=331
for Freyr
hash size can be entered in command line 
(KB) with option -hashsize N
where hash size appropriates to 2^N entries

EngineTypeOfCmdHash=101
for Anmon, Comet, Gandalf, ZChess
101 - hash size can be entered as an 
appropriate line in ini-file (MB)

(EngineTypeOfCmdHash=103 
for Goliath
because the program has limitation - 2-384)

EngineTypeOfCmdHash=102
for Yace
102 - hash size can be entered as an 
appropriate line in ini-file (KB)

The following lines are required:

EngineIniFile=
Name of ini file
EngineHashKeyInIniFile=
Key word for hash in ini-file is required, 
for example:
for Comet:
EngineIniFile=comet.ics
EngineHashKeyInIniFile=MAX_HASH

EngineTypeOfCmdHash=104
for Dragon
hash size can be entered as an appropriate 
line in ini-file according to: 
hash size=2^n entries

Note: Dragon has no key word and 
hash size can be entered as the 
second line in ini-file. 
Therefore:
EngineIniFile=dragon.ini
EngineHashKeyInIniFile=\n


******************************************************************
This document is copyrighted, free to use and to distribute in unchanged form.
You are welcome to discuss it in any accepted form and to suggest some improvements. 

Copyright Notice: © by W.Braslawski Chess Academy Software.