WinBoard / XBoard 4.4.0 features ported from Winboard_x
To prevent games dragging on forever when neither of the engines want to settle for a draw, games can be aborted (adjudicated draw) after a ertain number of moves. Games can also be adjudiated win or loss when both engines agree that the score is above a certain value for one of them, for 3 moves in a row. To make this work, both engines should use the standard soreing convention (own point of view); engines that don't can be corrected through the use of the boolean options -first/secondScoreAbsolute.
It is also possible to adjudicate engine-engine games manually, through the Action menu, as draw or win for white or black.
Winboard_x allows you to make the board look anyway you want by using arbitrary bitmaps to cut the squares from. White and black squares are cut from independent files. The -lite/darkBackTextureFile options can specify these bitmaps files, while -lite/darkBackTextureMode options control how the orientation of the cut-out squares is randomized to suggest larger variety. On the right you see a board with a wood texture made this way.
The rather heavy black lines used by WinBoard for highlighting moves can interfere badly with the aesthetic effect of the textures; An option -overrideLineGap is therefore provided to overrule the default line width, and set it to very narrow or completely absent. This again makes it very difficult or impossible to see the square highlights, so an option -highLigtMovesWithArrow is supplied as an alternative highlight method.
If you are tired of the built-in bitmaps, you can use a chess font to define alternativ piece symbols. As true-type fonts are scalable, this in principle works for all board sizes with a single font. (Except that for very small size the result is not pretty, so Winboard_x does not allow it below size petite.) On the right you see pieces made by using the ChessMark font (obtained from enpassant.dk).
Winboard_x captures the scores and depth reported in engine thinking output, for inclusion in the PGN file under control by the option -pgnExtendedInfo). Obviously this requires the engine to send thinking output, even when a human playing it would prefer not to see it above the board. So the option -showThinking can no longer be used to suppress the output. For that reason a new option -hideThinkingFromHuman is provided, which allows you to suppress the displaying of the info, but not the sending.
With an option -outOfBookInfoInPGN you can control the inclusion of an 'Annotator' tag in the PGN, which will report the score at the first move where the engine was reporting a search depth. (Presumably this was where it got out of book.) This allows you to easily see whether the engine was unfairly treated by giving it a bad opening line.
Three Auxiliary Windows
The engine-output window is the most complex auxiliary window at all. It can consist of two panes (one for each engine), where it displays the thinking output of the engine. Above those the name of the engine is printed, and icons to indicate the color they play, and what they are doing: thinking, pondering or analyzing. It also prints the engine search speed, in nodes per second. When 'periodic updates' is enabled, it also displays the current move, end move count.
A second auxiliary window is the Evaluation Graph. This displays the engine scores as a histogram when space permits, and as a line graph otherwise. Two lines of user-configurable color do depict the score evolution of the two players. Clicking on a point in the graph fast-forwards the game to the corresponding position.
An auxiliary window is supplied to show the move history as free-format SAN. Double-clicking on a move would fast-forward the game to the position where it was played. An option -extraInfoInMoveHistory controls if score/depth info is displayed as comment behind the moves.
The three auxiliary windows can be independently sized and positioned. But if they touch each other, or the main window, thew will 'snap' together. If you then move the main window, the other windows will follow it, like the whole conglomerate forms a single window. This behavior is controlled by the option -stickyWindows.
The header line that appears in the game list for each game can now be composed by the user from the PGN tags. A new menu dialog allows him to pick the tags he likes, and sort them in any desired order. This order will be stored in the settings file as the option -gameListTags, where each tag is encoded by a single letter.
In Winboard_x the standard 'paste' command Ctrl-V can be used to paste both games and positions into the board, as it will be obvious whih of the two is currently on the clipboard.
In local mode WinBoard cannot count on an ICS to generate a starting position for him. An item 'New FRC Game' in the file menu now pops up a dialog, where the user can specify how he wants WinBoard to generate the opening position (a new randomly picked position or every game, or the same position for each game, picked randomly once or specified by the user by number.)
Below follows a table that lists the new features, the command-line option needed to control them, and if there is a menu provided that can switch the option while WinBoard is running (command-line options exert their effect only at startup).
|ENGINE-ENGINE ADJUDICATION OPTIONS|
|-adjudicateLossThreshold 0 (*)||adjudicates engine-engine game based on score||Options -> Engine...|
|-adjudicateDrawMoves 0 (*)||adjudicate draw when game lasts too long||Options -> Engine..|
|Engine indicates score for white, even when playing black|
|-||Adjudicate the game in progress as win to white, win to black, or draw||
Action -> Adjudicate to White
Action -> Adjudicate to Black
Action -> Adjudicate Draw
|TIME-CONTROL AND TIMING OPTIONS|
-delayBeforeQuit 0 (*)
-delayAfterQuit 0 (*)
|timing parameter specifying how to terminate the engine processes||-|
-liteBackTextureFile "" (*)
-darkBackTextureFile "" (*)
-liteBackTextureMode 1 (*)
-darkBackTextureMode 1 (*)
|Allows you to use any bitmap picture for displaying the board square||-|
|-renderPiecesWithFont "" (*)||specifies a true-type Chess font to be used for piece symbols||-|
|-fontPieceToCharTable "" (*)||specifies which font character to use for the various piece types||-|
|-overrideLineGap 1 (*)||controls the width of the black grid lines between squares||-|
-fontPieceBackColorWhite #0 (*)
-fontPieceForeColorWhite #0 (*)
-fontPieceBackColorBlack #0 (*)
-fontPieceForeColorBlack #0 (*)
|control piece colors in font-based rendering||-|
|-fontPieceSize 80 (*)||tunes the size of pieces in font-based rendering (% of square size)||-|
|-highlightMoveWithArrow false (*)||draws a big arrow to indicate the move last played||Options -> General...|
|-highlightArrowColor #FFFF80 (*)||controls the color of the highlight arrow||-|
|(UCI) ENGINE OPTIONS|
|-polyglotDir "" (*)||tells WinBoard where you installed Polyglot, for automatic invocation with UCI engines||Options -> UCI...|
|-polyglotBook "" (*)||tells WinBoard which opening book it should use, or should make Polyglot use.||Options -> UCI...|
|-usePolyglotBook false (*)||turns the use of the Polygot book on or off||Options -> UCI...|
|-defaultPathEGTB "c:\egtb" (*)||folder where to find end-game tables||Options -> UCI...|
|-defaultCacheSizeEGTB 4 (*)||specifies the cache size for UCI engines||Options -> UCI...|
|-defaultHashSize 64 (*)||specifies the size of the main hash table for UCI engines and WinBoard engines implementing the memory command||Options -> UCI...|
|tells WinBoard the corresponding engine should be run through Polyglot||-|
|tells WinBoard (or Polyglot) if the engine should use its own opening book||Options -> UCI...|
|-defaultFrcOpening -1||allows you to play from a specific opening shuffle, or make a new shuffle each game||File -> New FRC Game...|
|PGN FILE OPTIONS|
|-pgnExtendedInfo false (*)||save engine output (depth, score time) in PGN||Options->General...|
|-pgnEventHeader "Computer Chess Game" (*)||specify the event for the PGN event tag||-|
|-saveOutOfBookInfo true (*)||include an 'annotator' tag in the PGN file|
|-hideThinkingFromHuman false (*)||suppresses the engine thinking output in the display, without the need to switch it off (so it can still appear in the PGN file)||Options -> General...|
|USER-INTERFACE OPTIONS AND WINDOW CONTROL|
-moveHistoryUp true (*)
-moveHistoryX 0 (*)
-moveHistoryY 0 (*)
-moveHistoryW 0 (*)
-moveHistoryH 0 (*)
|controls opening, placement and size of a window containing the moves of the current game (new in 4.4 is that all X and Y coordinates of auxiliary windows are stored relative to the main window)||Mode -> Show Move History (x)|
-evalGraphUp true (*)
-evalGraphX 0 (*)
-evalGraphY 0 (*)
-evalGraphW 0 (*)
-evalGraphH 0 (*)
|controls opening, placement and size of a window containing a graph of the evaluation score of the engine(s) as a function of move number of the current game||Mode -> Show Evaluation Graph|
-engineOutputUp true (*)
-engineOutputX 0 (*)
-engineOutputY 0 (*)
-engineOutputW 0 (*)
-engineOutputH 0 (*)
|controls opening, placement and size of a window containing the thinking output of the engine(s)||Mode -> Show Engine Output (x)|
|-stickyWindows true (*)||make the various windows snap onto each other, and stick together||-|
|-showEvalInMoveHistory true (*)||depth/score info of the engine is included as comments in the move history window||Options -> General...|
-evalHistColorWhite #FFFFB0 (*)
-evalHistColorBlack #AD5D3D (*)
|determines the color of the eval-score comments in the move-history window||-|
|-autoDisplayComment true (*)||causes a window for displaying PGN comments to pop up automatically when such a comment is encountered||-|
|-autoDisplayTags true (*)||causes a window with PGN tags to be displayed as soon as a PGN file is loaded||-|
|-gameListTags "eprd" (*)||specifies the PGN tags that should be displayed in the game list||Options -> Game List...|
|allows you to specify an alternative name for saving the debug information||-|
|-defaultFrcPosition -1 (*)||specify the number of the starting position in shuffle Chess variants||File -> New Shuffle Game...|
|-||display only those lines in the game list that contain a given string||in Game-List window|
The value with which the option is listed is the default value. If it is false or true, it is a Boolean option, a number implies an integer option. A value starting with # indicates an RGB color indication in hexadecimal notation. Options the settings of which are saved into the winboard.ini file are marked with (*).