Bump version to 4.0
[uci2wb.git] / README.txt
index 10f4adb..3a09133 100644 (file)
@@ -16,12 +16,16 @@ and just passes on the moves and position FENs as it receives them from engine o
 As this can be done without any knowledge of the game rules, or even of the board size, \r
 such a dumb adapter can in principle be used for any variant. To use it for UCI protocol\r
 (both the Chess or Xiangqi dialects), use it without the -s flag (or with a -c flag).\r
+  As of version 2.0 UCI2WB also supports the UCCI protocol for Xiangqi, for which it was\r
+made slightly less dumb: in UCCI mode it keeps track of the board position on a (Xiangqi)\r
+board, so it can recognize capture moves, and send only the moves after it (with an\r
+appropriate FEN to start them from).\r
   The general syntax of the UCI2WB command is:\r
 \r
-UCI2WB [debug] [-var VARIANTLIST] [-s|-c] ENGINE.exe [ENGINEFOLDER]\r
+UCI2WB [debug] [-var VARIANTLIST] [-s|-c|-x] ENGINE.exe [ENGINEFOLDER]\r
 \r
 Presence of the 'debug' argument causes UCI2WB to report everything it receives from the engine,\r
-as well as the 'position' and 'go' comamnds sent to it, as debug output (prefixed with '#')\r
+as well as the 'position' and 'go' commands sent to it, as debug output (prefixed with '#')\r
 to the GUI. This has the same effect as switching the option 'UCI2WB debug output' on,\r
 except that it forces the option to be on from the very beginning, so that the engine\r
 startup will also be reported.\r
@@ -46,8 +50,74 @@ H.G.Muller
 \r
 Change log:\r
 \r
+8/12/2018 4.0\r
+Complete redesign of the internal logic, to make interruption of thinking\r
+actually work. The engine thread is made responsible for parsing the GUI\r
+commands that require the engine to be idle. These commands are passed to\r
+it from the GUI thread through an internal command queue. The engine thread\r
+can peek in this queue when a search terminates and it enters the idle or\r
+pondering state. It only goes reading the ponder output after all queued\r
+commands are processed. This way the GUI thread is sensitive to input all\r
+the time, and can instantly handle all commands by either processing those\r
+that can be done during search, and queueing the others. In the latter case\r
+it can abort an ongoing search to divert the attention of the engine thread\r
+back to the command queue.\r
+ Other changes are:\r
+Added option to force the engine to ponder if force mode (for OTB tournaments).\r
+Produce a compliant error message for unknown commands.\r
+Fix time increment in ponder-on games (which was subtracted rather than added).\r
+Fix periodic updates, to include move and correct move counts.\r
+Set UCCI newgame option after initial isready handshake rather than before it.\r
+Suppress spurious sending of 'uxinewgame' in UCCI mode.\r
+Suppress 'setup' command in the standard variants 'suicide' and 'losers'.\r
+Add support for robbobases and Scorpio bitbases as EGT flavors.\r
+Support extended UCI info-string-variant command that can set board size.\r
+Assume engines with UCI_Chess960 option but no UCI_Variants play only Chess and\r
+Chess960, and not xiangqi or shogi.\r
+\r
+24/12/2016 3.0\r
+Implement UCI_AnalyseMode option\r
+Support egtpath command for Nalimov, Gaviota and Syzygy\r
+Allow ?, quit, force and result commands to terminate thinking\r
+Stop search during setoption commands, or buffer those until engine is done thinking\r
+Explicitly report when engine dies, through GUI popup (tellusererror)\r
+Make sure reporting of mated-in-0 score causes resign, even without PV\r
+Fix eclipsing of -var option with engines that have UCI_Chess960 option\r
+Fix empty default of string options\r
+\r
+8/11/2016 2.3\r
+Implement handling of 'UCI_Variant' option for variant announcement and selection\r
+Pass 'info string variant' line as 'setup' command to allow engine-defined variants\r
+Set 'UCI_Opponent' option in accordance with CECP 'name' and 'computer' commands\r
+Fix option setting during analysis (MultiPV!)\r
+\r
+22/11/2016 2.2\r
+Use USI gameover command to relay game result\r
+Handle USI win claims\r
+Correct wtime/btime for byoyomi\r
+\r
+7/11/2016 2.1\r
+Make Linux version SIGTERM-proof\r
+Recognize forward Pawn pushes as irreversible in UCCI\r
+Block input from GUI during thinking\r
+Use uxinewgame\r
+Implement support for pre-standard UCI Chess960 engines ('Arena960 dialect')\r
+Fix hash-size setting in UCCI\r
+Combine name and version when engine gives them in separate 'id' commands\r
+Fake time and node count for engines that do not report it\r
+Add interactive options for byoyomi work-around\r
+\r
+28/10/2014 2.0\r
+Implement UCCI support\r
+\r
+4/12/2012 1.10\r
+Implement pause / resume commands\r
+\r
+9/5/2012\r
+Fix bug in converting shogi moves, introduced in v1.8\r
+\r
 19/4/2012 1.9\r
-Remove S-Chess move translation, to parallel change in UCUI S-Chess 'standard'\r
+Remove S-Chess move translation, to parallel change in UCI S-Chess 'standard'\r
 Implement WB exclude feature\r
 \r
 17/4/2012 1.8\r