What is new?

In XBoard 4.20100118

In XBoard 4.20100206

In the git repository on this site

Home (with downloads)

The following features are new in XBoard 4.20100118:

Fixed thinking time per move

The clocks are now displayed counting down in fixed-time-per-move time controls. This mode of time control can still be selected through the command-line option -st (-searchTime), but in WinBoard it is now also possible to select it interactively from the Options -> Time-Control menu dialog. As soon as a player's turn comes up, his clock will be reset to the selected time per move, and start counting down. If he does not move before the clock reaches zero, a time loss can result.

Exploring variations

XBoard and WinBoard now allow you to explore variations on a given game, much like you can do on an Internet Chess Server in "examine" mode. You can do this in Edit Game mode, for the purpose of annotating the game with alternative variations, or in Analyze mode, where an engine evaluates the various branches.

It works like this: you can use the < and > buttons (or equivalently, the Left and Right arrow keys, or the Step -> Forward and Step -> Backward menu items), to step through a game or variation. When you are not at the end of the game, and start playing moves, XBoard stores the tail of the game in memory. (Older versions simply cut the game irreversibly, before appending your new move.) You can then continue the game along a new line of play, and the arrow keys will step you through that new line (the "current variation"),

When you have studied the variation to your satisfaction, you can then use the Step -> Revert menu to recall the previous variation, i.e. the one that XBoard stored last because you altered a move in it. This brings you back to the position where you played the alternative move, and puts back the original tail of the game, so that the arrow keys now step you through that. The later variation you now abandoned will be added as a comment (in PGN variation format, i.e. between parentheses) to the next move, so you will see the alternative to the played move displayed in the comment window as soon as you play that move. This can be repeated any number of times, so you can make variations on variations (leading to nested variation comments in the PGN).

Walking the PV of an engine

XBoard and WinBoard now allow you to see the position the engine thinks it will end up in (i.e. the positon at the end of the Principal Variation), by right-clicking the board. When you then move the mouse vertically, keeping the right button pressed, it will step through all the positions of the PV that ly between this end position and the current game position on which the engine is thinking or analyzing. This 'PV walk' will continue until you either release the right button, or the engine moves, after which the board display will revert to the current game position.

On right-clicking the board, you will always get to see the last PV the engine produced as thinking output. (Show Thinking must be on for this feature to work.) This can be a PV from before the engine made the move, but if the engine is pondering, it will in general be a PV from its ponder search. In Two-Machines mode, you will get to see the PV of the engine that is currently thinking.

Currently only in WinBoard, you can also call up a PV in the board display by right-clicking the Engine-Output window. In this case you will get to see the PV that you clicked on. So you can select from which engine you will see the PV, but also walk through PVs of lower depth than the most recent one. If the engine is in multi-PV mode, you can select one of the alternative variations. [edit] In the git version XBoard now also does this.

Also in this case, the selected PV will remain displayed as long as you keep the right mouse button down, even when the engine in the mean time produces new lines of thinking output. (But not if it actualy moves; then you revert to the game.) The line you selected will be highlighted in the Engine-Output window. Beware that PVs from before the engine moved might start with a different move than was actually played, which currently produces invalid output. ([edit] This has been solved now in the git version, which inserts retraction of the played move before the PV.)

This new feature interferes with the historic usage of the right mouse button, namely the summoning up of the (now deprecated) piece-drop menu in crazyhouse and bughouse. For people that still want the old behavior, an option -dropMenu true|false is provided. The default value of this option is false, but by setting it, the old behavior is restored, and the PV display on right-clicking the board disabled.

Where your pieces can move to

Experienced Chess players will not need it, or even dislike this option, but it might be useful to a beginner. And even an experienced Chess player might appreciate it when he plays a variant he is not so familiar with: XBoard and WinBoard can now indicate the possible locations a piece can move to. When you switch this option on, as soon as you 'pick up' a piece with the mouse, (i.e. left-click it, for as long as you keep the left mouse button down), XBoard will indicate all the squares that piece can move to with a fat dot. For captures, it will use another color (the -premoveHighlightColor, normally red) than for non-captures (where it uses the -highlightColor, normally yellow).

This feature is only active with the option -showMoveTargets true (stored in the settings file), but can then still be controlled with the option -highlightDragging, which also has an item in the Options menu, so you can quickly switch it on and off. Furthermore, legality testing must be on for XBoard to know how the piece moves.

In variants with mandatory capture (suicide, losers, giveaway) it works a bit different: if the piece you pick up has a capture it is still indicated in red, but as non-captures with this piece are then automatically illegal, the yellow dots are used to indicate captures by other pieces. This can be handy to quickly alert you when you overlooked a capture: when you pick up another piece than the one who must capture, you will not see the expected non-capture moves of that piece light up, but in stead see some yellow dots on enemy pieces appear.

One other peculiarity in variants is that XBoard implements some pieces occurring in variants as 'wildcard pieces', that are allowed to do any move even when legality testing is on. (To facilitate playing exotic variants without switching legality checking off completely.) For such a piece, a red dot on the starting square of the piece itself will appear. Drop moves (e.g in crazyhouse) will not be indicated.

Improved Muti-PV support

Normally an engine produces only a single PV for each move it plays. Some engines can operate in multi-PV mode, however, where they produce mutiple lines with an exact score. This is more a matter of the engine than the GUI, but the new XBoard and WinBoard have a tiny improvement to help interpretation of multi-PV engine output.

In stead of displaying the Thinking-Output lines in the Engine-Output window strictly in the order that they came in, XBoard now sorts lines of the same depth by score, so that the line of the highest score (the true PV) is always displayed on top. In practice this requires new lines to be inserted not at the top, (as always happened in earlier versions), but can be inserted somewhat lower down if their score was lower. Not a big deal, but it helps to get a more quiet display. The original order, which usually is of less importance, can aways be deduced from the time or number of nodes displayed with the line.

Evaluation Graph

XBoard now has a new auxilliary window (which WinBoard already had for years), for displaying the engine score(s) as a function of move number as a graph. Clicking a point on this graph will bring you to the corresponding position in this game. (I.e. it will display the position on the board like you moved there with the arrow keys.)

Like the other windows, the Evaluation Graph can be sized and moved with the mouse, and its size and psition can be determined by command-line options, which are saved in the settings file. By compiled-in default XBoard starts with this window open, but closing it once and saving the settings is enough to change that for future sessions.

Settings file

XBoard now can save its settings on a file, like WinBoard already does for years. The format in which the settings are stored is the same as that of the command line, except that all options are on separate lines. The settings can be saved on user command (from the Options menu), as well as automatically on exit, under control of an option -saveSettingsOnExit, which is itself saved in the file. Its value can be changed from the Option menu.

The contents of the default settings file (/etc/xboard/xboard.conf) is prefixed to the command line, so that the latter overrules the settings in the file. Furthermore, both the settings file and the command line can contain options that refer to other settings files: -settingsFile filename (or its shorthand -ini filename) and @filename both cause the contents of the mentioned file to be inserted in that place. In the case of -settingsFile the filename is also remembered as the place to save the settings, provided it exists. The option -saveSettingsFile filename is a way to specify where to save settings without any options being read, or without the need to already exist.

The standard install of XBoard uses a -saveSettingsFile and a -settingsFile option in the default settings file to divert loading and saving to a user-specific file ~/.xboardrc in the user's home directory. The system adminitrator can the use the default settings file /etc/xboard/xboard.conf to specify default settings for xboard that he wants to deviate from the compiled-in defaults. As the -settingsFile option that includes the user settings is at the end of the default settings file, the user settings will overrule the system-wide defaults.

The settings include the open/closed status of the auxiliary windows (Engine Output, Move History, Evaluation Graph), and their position and size. So XBoard will open in the same window configuration and layout as the previous time you left it, when you have Save Settings on Exit on.

Not all options are saved in the settings file. Some options that are considered unlikely to need fixed values, are 'volatile'. This applies or instance to the engine names (-fcp, -scp) and accompanying info (-fd, -firstXBook, -fUCI), or the selected variant. These options will thus revert to the compiled-in or system-wide defaults in the next session. If you are not happy with these defaults, you can change them by adding another level of diversion, by redirecting the settings file for saving and reading options in your user settings file to yet another file (e.g. ~/xboard.ini or ./xboard.ini), and edit the required volatile options into your primary user settings file.

Editing a crazyhouse position

Previous versions of XBoard and WinBoard did not allow you to edit the holdings in Edit Positon mode, which made this mode useless for setting up crazyhouse or bughouse positions. (You could still paste a bughouse FEN containing the holdings in brackets between the board and side-to-move fields.) The new version does allow such editing. When you drag a piece into the holdings file, it automatically puts it on the square designated for it, and adapts the piece counts consistently. When you drag it out of the holdings, the piece counts are decreased, and if non-zero the other copies of the piece will stay in the holding while you take one to the board.

It is even possible to add pieces in the holdings using the piece menu. Setting an empty square on top of a stack of pieces, will delete all these pieces.

Thai chess

Makruk is a form of Chess played in Thailand, by about 2 million people, which makes it one of the World's major Chess variants. WinBoard / Xboard now supports Makruk: it knows how the pieces moves, that Pawns promote on the 6th rank, and how to set up the initial position (with Pawns on the 3rd rank). Just start XBoard with the option "-variant makruk", or select it from the "File -> New Variant" menu. The letters used in SAN and PGN are M for the Queen replacement (for the Thai name "Med"), which moves one step dagonal, as in Shatranj, and S for the Bishop replacement (which moves like the Silver General from Shogi).

The latest version of Fairy-Max (4.8o) supports Makruk as a pre-programmed variant. So it can be used as an engine to play this game against the computer.

New in XBoard 4.20100206:

Filtering the Game List

The XBoard Game-List window now includes a "Filter" field (like WinBoard has), where you can type any text string. The display of the Game List will then be limited to those lines containing the given string. So if you want to see only drawn games, like the screenshot example shown here, you can put "1/2-1/2" in the filter, an press the "Apply" button (or type <Enter>). Of course you have to make sure that the game result is actually amongst the items that are displayed in the Game List lines. (This can be controlled with the -gameListTags option.)

This feature is very convenient when you are dealing with large game lists. As the 'result comment' is one of the items you can select for display in the game list, it is for instance very easy to find time losses, false claims or illegal moves in your tournaments. Just filter on the phrases "on time", "False" or "Illegal", and only the games appear in the list that ended that way. You can also use it to easily pick out the games of your own engine from the PGN file of a large tournament like ChessWar.

Selecting the game to load from the list can now also be done in XBoard using the arrow keys (and <Home>, <End>), which have been given key bindings to the "prev" and "next" buttons in the Game List dialog.

Maintaining a healthy ICS connection

The -keepAlive option in WinBoard and XBoard now not only serves to prevent you from being automaticaly logged out by the ICS, (be careful not to abuse that!), but now is also checking if the ICS is still responding. If there is no message from the ICS at all in reaction to the 'date' command that WinBoard sends to 'ping' it by the time the next 'date' command is sent, WinBoard will conclude the connection has been broken without the proper notification by the system, and performs a fatal error exit. You can the use a script to have WinBoard automatically establish a new connection, and login again.

Game-List options dialog

XBoard now has a dialog in its Options menu to select the PGN tags that will be displayed in the Game List, similar to that of WinBoard. The tags can be selected and ordered in a user-friendy way, by selecting them with the mouse, and moving them auround with the up and down buttons.

The newly selected layout wil become effective the next time a new Game List is made. This can be because you open a new file with multiple games in it, or because you re-open the Game-List window.

Claiming a draw in ICS play

To claim a draw that will only become claimable after your move, different ICS have different mechanisms. On FICS you have to write "draw MOVE" on the same line. ICC does not understand this, but will count a draw offer made through a plain "draw" command before your move count as a draw claim after that move when this move creates a third repetition or a 50-move draw.

The ICC mechanism did not need special support, but WinBoard and XBoard now also support the FICS mechanism. You will have to trigger it the same way as doing things on ICC: first offer the draw, then do the move. XBoard will check now for any move (by user or engine) if it will create a claimable draw. And if it does, while the user or engine have just offered a draw, it will first send the move to the ICS 'FICS fashion', and after that it sends the plain move (to accomodate ICS that do not understand this). This should provide a secure way to claim the draw.

In connection with this patch, the adjudications were made to work in any non-ICS game, not only in Two Machines mode. (For ICS play the ICS of course decides.)

Answering seek ads on an ICS

WinBoard and XBoard now support a seek graph. This graph can appear in place of the board when you are logged on to an ICS, and not playing or observing a game. When you click the board in this situation, a 'sought' command will be sent to the ICS to fetch the list of seek ads (without you seeing it). This list will then be represented as a 2-dimensional graph, with time-control on the horizontal axis, and opponent rating on the vertical.

Clicking one of the dots will send a 'play' command to the ICS to challenge that opponent (which will usually start the game immediately). You can also click a dot to interrogate it, i.e. see the details of the corresponding seek ad displayed in the message field above the board.

Which click will do what is not yet fully decided; the current trial version (in the 'seekgraph' branch of the repository here) can do everything with only the left mouse button, the down-click for showing the ad details, the up-click (if it is still on the dot) to start the game. The right button can make life a bit easier, though; the press here also shows the ad text, but the release is always ignored, so that you don't have to worry where to do the up-click in case you don't want to make the challenge after reading the ad.

To activate this functionality, you will have to use the option "-seekGraph true" (shorthand "-sg"). The automatic refreshing of the graph currently is supported only for FICS and ICC (and compatible servers), and must be swiched on with the option "-autoRefresh true". Both these options are persistent, i.e. saved to the settings file, but their default setting is "false", so you have to enable them at least once.

Not yet officially released, but in the hgm.nubati.net git repository:

One-click moving

When the option "-oneClickMove" is set to "true", clicking a square to or from which only a single legal move is possible causes that move to be made immediately. I.e. you can click your own piece to make it move, or you can click an empty squareto move there, or an enemy piece to capture it. This works when playing on ICS or against an engine. Currently left-click is used, but it is still under study if it would be better (e.g. less accident prone) to use another type of click for this. (E.g. double clicking, or right-clicking.)

Another type of'smart move' enabled by this option is an only-capture: when a piece has only a single captur move, a double left-click on that piece makes the capture.

Observing an ICS game while playing

It is now possible to observe a game 'in the background', while playing on an ICS. When the (persistent) option "-backgroundObserve true" is used, XBoard / WinBoard will not let incoming boards from observed games disturb the display of a game you are currently playing. It will merely store the board in memory for safe keeping, and will display a summary line in the message field above the board, listing the remaining times of white and black player, their strength, and which side is to move. Pressing the right mouse button will summon up the last such received board on the display, in stead of the position in your own game, until you release that button again.

This way you can have a quick peek at the game you are observing, which might be useful when playing bughouse on an ICS that does not allow guest logins to follow the game of your partner on another instance of XBoard.

Promotion popup

In a special branch of the git repository ('promopopup') there is a version of XBoard patched to use graphics to display the promotion choice, so that it more easily adapts to variants with different pieces. You just click on the image of the piece you want. This applies also to the piece menu in Edit Position mode. In that case, it selects both on right up-click and left down-click.

Recalling old input lines in ICS play

XBoard now allows the use op the and arrow keys to call up and walk through previously given input lines, (WinBoard already had this.) so you can reset them (possibly after correcting the typo that made the ICS not understand them in the first place. For this you must use the ICS input box, like with any other form of local line editing; what you type directly in the X-terminal console window will not be remembered, and the arrows will not work there.

Making it easier to start a chat

The user interface for the chat windows of WinBoard has been improved. Next to dedicating a Chat Box to a single handle, channel or whispers, it is now also possible to dedicate it to shouts. (Just type 'shouts' in the chat-partner field.) In addition, it is now possible to open a Chat Box pre-intialized for talking to a given handle from the ICS context menu: right-clicking a player name in the ICS text field of the console will pop up the ICS context menu. You will now find an item "Open Chat Box (name)" in this menu. Selecting that will pop up a fresh Chat Box, (provided that you have not yet reached your maximum quota of chat boxes, which has been increased to 5), with the name that you clicked already in the Chat Partner field, so that you can immediately start typing your first message to that person. (And receive his answers in that Chat Box, as usual.)

The Chat Boxes now aso contain buttons to directly navigate to other Chat Windows, making a stacked set of Chat Windows behave like it was a single tabbed window. The buttons turn grey if there was activity in the corresponding box (if it is not the top-most). A new command-line option -chatBoxes can be used to already have some boxes opened at startup. E.g. -chatBoxes "shouts;50" would open Chat Boxes for handling shouts and channel-50 traffic.

The ICS text menu now already appears on the down-click of the right mouse button, so that the release of the same click can already be used to select an item from the menu. The menu now also pops up in such a way that the upper-right item is already under the mouse pointer as soon as it appears. As the menu is user-configurable through the -icsMenu option, the user could put a default action there. This action will then be triggered by a simple (stationary) right-click in the ICS text field. In the default setting, the "Open Chat Box (name)" item is in this position, so a right-click on a handle will open a Chat Box to that handle. But all other actions can also still be selected, by moving the pointer there before you up-click.

Yet another improvement is that the Chat Boxes now recognize URLs, and open a browser to display the corresponding web page when you click one.

Uploading a game to an ICS

It is now possible to let XBoard and WinBoard upload a game to the ICS for examining. When you are logged on to an ICS, there is an item "Upload to Examine" available in the "Action" menu. Selecting this will start an examined game on the ICS, and send all moves of the game currently in XBoard. This could be a game you just played or observed, but it could also be a game loaded from a game file, or pasted into XBoard from the clipboard. If there is no current game in XBoard, an new examined game will be started in the opening position

You can only use this command at times you are not doing anything else on the ICS (like playing or observing). When the currently loaded game is a variant, XBoard tries to figure out the wild number to start an examined game in that variant. This is experimental, and might not always work, especially in variants that not every ICS supports (e.g. Shatranj, Xiangqi, Shogi or Makruk). Castling rights in FRC might still be problematic.

Playing through variations from PGN

PGN files can contain (nested) variations between parentheses. WinBoard and XBoard have always treated such variations like comments, adding them to the move after which they occurred, and displaying them in the comment popup. In WinBoard as well as XBoard it is now possible to right-click such a variation in the comment popup, in Edit Game or Analyze mode, on which the current variation will be shelved, and the clicked variation will take over its place. (See Exploring Variations above.)

The user can then play through the variation on the board in the way he would normally play through the main line of the game. When he is done, he can use Revert in the Step menu to resume the main line. The user can now choose if, on Revert to a previous variation, the abandoned variation will be saved as a comment to the previous one, or not. To save it, he should use the new 'Annotate' item in the Step menu, in stead of Revert. Using the latter will revert without saving the abandoned variation.

Displaying two boards at once

This is a _very_ experimental patch (more a hack really). When the option -backgroundObserve is in force, so that you can observe an ICS game while playing one, using the (persistent) option -dualBoard true, the board of the observed game is displayed right of the board of your own game, in the same window. This way you can keep it in view all the time, rather than having to press a mouse button for it.

This works in both WinBoard and XBoard, although in the latter it messes up positioning of the clocks for your own game. (No clocks are displayed for the partner game yet.) When the observed game has a different board format than the one you are playing, the result is undefined. Many other things, such as highlighting, and refreshing the window when it is uncovered, do not work correctly yet.