e9f23992ee049a289ae376b777fe02409f18d38d
[uci2wb.git] / README.txt
1                          UCI2WB relelease notes\r
2 \r
3 UCI2WB is an adapter for running USI (Shogi) engines under WinBoard.\r
4 Install USI2WB in WinBoard as if it was the engine, with one or two arguments\r
5 on its command line, to indicate the name of the real engine executable,\r
6 and (optionally) its working directory. \r
7 \r
8 E.g. when you have placed USI2WB.exe in a sub-folder 'Adapters' inside the WinBoard folder,\r
9 you could include the following line in winboard.ini amongst the firstChessPrograms:\r
10 \r
11 "UCI2WB -s USI_ENGINE.exe ENGINE_FOLDER" /fd="./Adapters" /variant=shogi\r
12 \r
13 UCI2WB was developed with gcc under Cygwin. It can also be used as a (dumb) UCI2WB adapter. \r
14 "Dumb" here means that the adapter does not know anything about the game state, \r
15 and just passes on the moves and position FENs as it receives them from engine or GUI. \r
16 As this can be done without any knowledge of the game rules, or even of the board size, \r
17 such a dumb adapter can in principle be used for any variant. To use it for UCI protocol\r
18 (both the Chess or Xiangqi dialects), use it without the -s flag (or with a -c flag).\r
19   As of version 2.0 UCI2WB also supports the UCCI protocol for Xiangqi, for which it was\r
20 made slightly less dumb: in UCCI mode it keeps track of the board position on a (Xiangqi)\r
21 board, so it can recognize capture moves, and send only the moves after it (with an\r
22 appropriate FEN to start them from).\r
23   The general syntax of the UCI2WB command is:\r
24 \r
25 UCI2WB [debug] [-var VARIANTLIST] [-s|-c|-x] ENGINE.exe [ENGINEFOLDER]\r
26 \r
27 Presence of the 'debug' argument causes UCI2WB to report everything it receives from the engine,\r
28 as well as the 'position' and 'go' commands sent to it, as debug output (prefixed with '#')\r
29 to the GUI. This has the same effect as switching the option 'UCI2WB debug output' on,\r
30 except that it forces the option to be on from the very beginning, so that the engine\r
31 startup will also be reported.\r
32   The '-var' option overrules the list of variants UCI2WB says it supports with the given list,\r
33 like 'feature variants="VARIANTLIST"'.\r
34 \r
35 \r
36 This package includes the source code. To compile on Windows under Cygwin, use the commands\r
37 \r
38 windres --use-temp-file -O coff UCI2WB.rc -o rosetta.o\r
39 gcc -O2 -s -mno-cygwin UCI2WB.c rosetta.o -o UCI2WB.exe\r
40 \r
41 To compile under Linux, use\r
42 \r
43 gcc -O2 -s UCI2WB.c -lpthread -o UCI2WB\r
44 \r
45 Have fun,\r
46 H.G.Muller\r
47 \r
48 \r
49 \r
50 \r
51 Change log:\r
52 \r
53 22/12/2016 3.0\r
54 Implement UCI_AnalyseMode option\r
55 Allow ?, quit, force and result commands to terminate thinking\r
56 Stop search during setoption commands, or buffer those until engine is done thinking\r
57 Explicitly report when engine dies, through GUI popup (tellusererror)\r
58 Make sure reporting of mated-in-0 score causes resign, even without PV\r
59 Fix eclipsing of -var option with engines that have UCI_Chess960 option\r
60 \r
61 8/11/2016 2.3\r
62 Implement handling of 'UCI_Variant' option for variant announcement and selection\r
63 Pass 'info string variant' line as 'setup' command to allow engine-defined variants\r
64 Set 'UCI_Opponent' option in accordance with CECP 'name' and 'computer' commands\r
65 Fix option setting during analysis (MultiPV!)\r
66 \r
67 22/11/2016 2.2\r
68 Use USI gameover command to relay game result\r
69 Handle USI win claims\r
70 Correct wtime/btime for byoyomi\r
71 \r
72 7/11/2016 2.1\r
73 Make Linux version SIGTERM-proof\r
74 Recognize forward Pawn pushes as irreversible in UCCI\r
75 Block input from GUI during thinking\r
76 Use uxinewgame\r
77 Implement support for pre-standard UCI Chess960 engines ('Arena960 dialect')\r
78 Fix hash-size setting in UCCI\r
79 Combine name and version when engine gives them in separate 'id' commands\r
80 Fake time and node count for engines that do not report it\r
81 Add interactive options for byoyomi work-around\r
82 \r
83 28/10/2014 2.0\r
84 Implement UCCI support\r
85 \r
86 4/12/2012 1.10\r
87 Implement pause / resume commands\r
88 \r
89 9/5/2012\r
90 Fix bug in converting shogi moves, introduced in v1.8\r
91 \r
92 19/4/2012 1.9\r
93 Remove S-Chess move translation, to parallel change in UCI S-Chess 'standard'\r
94 Implement WB exclude feature\r
95 \r
96 17/4/2012 1.8\r
97 Wait for uciok before processing GUI commands for setting options\r
98 Implement move translations required for variant seirawan\r
99 Make supported-variants string configurable from command line.\r
100 \r
101 15/4/2012 v1.7\r
102 Take 30ms safety margin in translating st command to movetime\r
103 \r
104 14/1/2011 v1.6\r
105 Replaced all polling by blocking synchronization (through pipes).\r
106 Implemented ping (using isready/readyok)\r
107 Made sending of debug info to GUI subject to option feature / command-line argument.\r
108 Fixed myname feature to handle names containing spaces.\r
109 \r
110 14/10/2010\r
111 Port v1.5 to Linux\r
112 \r
113 26/9/2010 v1.5\r
114 Add mini-Shogi ("variant 5x5+5_shogi") in USI mode; make coordinate translation board-size dependent.\r
115 Translate FEN in setboard to SFEN (does not fully work for holdings yet).\r
116 \r
117 23/9/2010 v1.4\r
118 Translate USI engine PV to standard coordinates (no provision for deferred promotion yet).\r
119 \r
120 ??/?/2010 v1.3\r
121 Add work-around for non-compliant USI engines that do not understand winc, binc, movestogo.\r
122 Send btime before wtime, to avoid crashing USI engines with flakey (Shogidogoro) USI support.\r
123 \r
124 1/8/2010 v1.2\r
125 Suppress mate claim on mate-in-1 score in Xiangqi (cyclone dialect),\r
126 as some engines use this score when they reach repeats they would win if continued.\r
127 \r
128 31/7/2010 v1.1\r
129 Add WB remove command\r
130 \r
131 30/7/2010 v1.0\r
132 Allow spaces in option names.\r
133 Refactor StopPonder into separate subroutine.\r
134 Refactor LoadPos into separate subroutine.\r
135 Send stop-ponder commands on exit and force.\r
136 Added icon.\r
137 \r
138 29/7/2010 v0.9\r
139 Fixed analysis, which was broken after refacoring (newline after 'go infinite')\r
140 \r
141 27/7/2010 v0.8\r
142 Refactored sendng of go command into separate routine\r
143 Send times with 'go ponder'.\r
144 Measure time spend on own move, and correct time left for it (2% safety margin).\r
145 Do adjust time left for new session or move time.\r
146 \r
147 26/7/2010 v0.7\r
148 Fix bug w.r.t. side to move on setboard.\r
149 Print version number with -v option.\r
150 \r
151 25/7/2010 v0.6\r
152 Undo implemented.\r
153 Analyze mode implemented. Seems to work for Glaurung 2.2 and Cyclone 2.1.1.\r
154 Periodic updates still use fictitious total move count of 100.\r
155 \r
156 18/7/2010 v0.5\r
157 Switching between USI and UCI is now done at run time nased on a -s flag argument\r
158 Recognize WB variant command\r
159 In Xiangqi the position keyword is omitted, and a FEN is sent even for the start pos\r
160 Recognize 'null' as best move\r
161 Recognize scores without cp\r
162 Corrrect thinking time to centi-sec\r
163 \r
164 17/7/2010 v0.4:\r
165 Introduced  compiler switch that enables some macros for everything that is different\r
166 in USI compared to UCI.\r
167 Fixed pondering.\r
168 Fixed setboard (for UCI).\r
169 Added result claims on checkmate / stalemate (for engines that say 'bestmove (none)').\r
170 \r
171 16/7/2010 v0.3:\r
172 This is the first version for which the basics seem to work.\r
173 It could play a game of Blunder against itself, ending in resign.\r
174 Options of all types should work now.\r
175 Only classical time control tested.\r
176 Pondering not tested. (Blunder does not give a ponder move?)\r
177 Setboard not tested. (Probably does not work due to FEN format discrepancy.)\r
178 No analyze mode yet.\r
179 No SMP yet.\r