Put picture of GTK build on home page
[xboard.git] / user_guide / UserGuide.html
1 <h2>XBoard user guide</h2>
2 <p>
3 Xboard consists of a main window, displaying a chess board and clocks,
4 as well as a number of auxiliary windows dedicated to holding additional,
5 not strictly necessary information.
6 Depending on what you are using it for 
7 (game viewer, playing on internet server, playing with engine(s)),
8 that information could be useful or irrelevant,
9 and you can open or close these windows accordingly.
10 The auxiliary windows are:
11 </p>
12 <ul>
13 <li><a href="#tag-A1">Game list</a>, giving the table of contents of the loaded PGN file</li>
14 <li><a href="#tag-A2">Comment window</a>, where you can view or edit comments (and variations) to the move</li>
15 <li><a href="#tag-A3">Tags window</a>, where you can see and edit the tags of the currently loaded game</li>
16 <li><a href="#tag-A4">Move list</a>, where the moves of the current game are shown as text</li>
17 <li><a href="#tag-A5">Engine output</a>, where you can see the variations an engine is dreaming up</li>
18 <li><a href="#tag-A6">Evaluation graph</a>, which shows you how the engine score evolves over the current game</li>
19 <li><a href="#tag-A7">ICS interaction console</a>, a terminal window where you communicate with an internet server</li>
20 </ul>
21 <p>
22 These auxiliary windows can be kept open all the time, and tiled so they are always in view,
23 without disturbing the operation of the main (chess-board) window.
24 In addition, there are a large number of dialog windows that grab the full attention of the user interface,
25 so that the block operation of anything else.
26 These are used for altering the settings of XBoard during the session.
27 </p>
28 <p>
29 Below we will first describe the operation of the main and auxiliary windows in detail.
30 After that the function of the various menu dialogs will be discussed.
31 </p>
32
33 <table cellpadding="20"><tr><td valign="top">
34 <h3>The main XBoard window</h3>
35 <p>
36 The main window contains several elements:
37 </p>
38 <ul>
39 <li>A title bar, actively used to display information</li>
40 <li>A menu bar, through which you can control XBoard</li>
41 <li>Two chess clocks, for white and black</li>
42 <li>An optional button bar, with which you an navigate through the current game</li>
43 <li>A single-line message field, where moves, variation, and sometimes texts are displayed</li>
44 <li>An area where the chess board (and sometimes other stuff) is drawn</li>
45 </ul>
46 <p>
47 The elements are mostly operated using the mouse, sometimes in combination with the keyboard.
48 Many keystrokes have been assigned a shortcut function, however, as an alternative to operating the menu bar with the mouse.
49 It is mainly non-printable keystrokes involving Alt and Ctrl key that act as shortcuts;
50 typing printable characters make an input box pop up where you can finish the typing while you see it,
51 to type stuff to XBoard (e.g. chess moves).
52 The menu bar is otherwise a quite normal menu bar, that you can operate both with left and right mouse button.
53 </p>
54 <p>
55 The message field above the board has no input function, 
56 and is only used to display simple error messages (such as "It is not your turn"),
57 or alerts ("draw pawn backwards to under-promote"),
58 the last move played,
59 or the latest 'principal variation' computed by an engine.
60 </p>
61 <p>
62 The button bar to the right of the message field
63 is used to step through the currently loaded game, move by move, or directly to beginning or end.
64 This can also be done through the menu (very clumsy!) or with the arrow keys on the keyboard (probably preferable).
65 </p>
66 </td><td valign ="top">
67 <img src="../whats_new/4.5.0/Spartan.png">
68 </td></tr></table>
69 <p>
70 The principal element of the main window is the chess board.
71 Its main function is of course to enter chess moves, but it has several other functions as well.
72 To move pieces, you use the left mouse button (button 1).
73 You can do this either by first clicking the piece you want to move,
74 and then the square you want to move it to ('click-click move'),
75 or by 'grabbing' the piece by pressing the mouse button,
76 drag it to its destination square, and release the mouse button there ('drag-drop moving').
77 Normally XBoard would show you the piece being dragged around 
78 (although this 'animate dragging' can be switched off).
79 The move you just made can be highlighted by drawing colored borders around the from- and to-square,
80 or by drawing an arrow between them.
81 </p>
82 <p>
83 With click-click moving the first click selects the piece, and such a selected piece will already be highlighted.
84 You also would get this effect after dragging around a piece, but releasing it on its original square;
85 this simply counts as a static click on the piece.
86 You still have the possibility to select another piece, by clicking it:
87 only a clicked empty square or opponent piece will be interpreted as a to-square.
88 You can also deselect the selected piece by clicking it, in which case the highlight on it will go off.
89 </p>
90 <table cellpadding="10"><tr><td valign="top">
91 <img src="../whats_new/4.7.0/Transpa.png">
92 </td><td valign="top">
93 <p>
94 Keeping the Shift key down while entering a move gives it a special meaning:
95 the move is in that case not added to the mainline of the game (possibly truncating it first),
96 but as a variation, so that you can Revert to the original game later.
97 In analysis mode only, keeping the Ctrl key down during a move does not play that move,
98 but excludes it from the analysis (if the engine supports such a feature),
99 or re-includes it if it was already excludedYou are alerted to this visually by the piece you dragged
100 remaining on its original square, dragging away a semi-transparant 'ghost' of it only.
101 </p>
102 </td></tr></table>
103 <p>
104 <b>Variation board -</b> A right-click (anywhere) on the chess board will normally be taken as a request to 'walk' the latest principal variation indicated by an engine.
105 This would normally be the one displayed in the message field.
106 By keeping the right mouse button (button 3) down, and moving the mouse vertically,
107 XBoard will start to step through the moves indicated by the engine,
108 so you see them played out on the chess board.
109 (This is sometimes called a 'variation board'.)
110 You can continue to step forward and backward through the engine line as long as you keep the button down.
111 </p>
112 <p>
113 The variation board is only useful when playing with engines.
114 When logged on to an Internet Chess server, 
115 there is an option to push observation of other games while you are playing 'to the background'.
116 That is, boards from those other games are not immediately displayed, overwriting your own position,
117 but XBoard will silently remember the most-recent such board.
118 You can then have a peek at it by right-clicking the board, for as long as you keep the mouse button down.
119 On release the board switches back to displaying your own game.
120 This can be useful in bughouse to see how your partner is doing.
121 </p>
122 <p>
123 When setting up a position ('Edit Position mode'), things work a bit differently, 
124 because you are not bound by any chess rules in that case.
125 In a click-click move any second click would be a to-square,
126 even if it captures a piece of your own.
127 You will also be able to move empty squares and even 'capture' pieces with them,
128 or drag pieces off the board to get rid of them.
129 Keeping the Ctrl key pressed during the move will not move the piece, but 'copy' it.
130 I.e. it will both move the piece to the indicated destination,
131 as well as leave one on the original square.
132 </p><p>
133 But the most important difference is the function of the right-click,
134 which now is used to put a new piece on the square you clicked.
135 Depending on the settings, this can either go through popping up a menu from which you select,
136 or by making a vertical sweep with the mouse, keeping button 3 down,
137 which will make the identity of the newly introduced piece cycle through all possible choices,
138 so that you can release the button when you see the one you want ('sweep selection').
139 This will always start by dropping a Pawn in the clicked square (as you typically need those most);
140 this will be a black Pawn unless you kept the Shift key pressed, (or use button 2),
141 in which case it starts with a white Pawn.
142 </p>
143 <table cellpadding="20"><tr><td valign="top">
144 <img src="../whats_new/4.5.0/seekgraph.png">
145 </td><td valign ="top">
146 <p>
147 The clocks are mainly meant as output fields, but in some situations they also accept mouse clicks.
148 What the clicks do varies.
149 They can be taken as a signal you want to claim the game because the opponent has flagged
150 (when his clock displays a negative number).
151 When you keep the Shift key pressed during the click, you can adjust the clocks by adding (right-click) or subtracting (left-click) a minute.
152 In situations where this could be meaningful, clicking the clock of the side that does not have the move will transfer the turn to him.
153 (Such turn passing is obviously illegal in chess, so you cannot do that while playing a game,
154 but in analysis or for setting up a position, it can be useful and is allowed.)
155 When setting up a position, clicking the clock of the side that already has the move
156 will clear the board.
157 Repeating such clicking cycles through a number of positions that could be useful starting points for setting up a position,
158 such as one with only a single piece of every type,
159 (which you then can duplicate through Ctrl-move),
160 and finally will bring the position back that you erased.
161 </p>
162 <p>
163 <b>Seek graph -</b> When logged in to an Internet Chess Server, the area where the board is normally drawn doubles as 'seek graph',
164 where you can see who is looking for what type of game.
165 This only applies when the board is not in use, i.e. when you are not playing, examining or observing a game.
166 In this 'idle' mode, left-clicking the board anywhere will request information from the ICS and draw the seek graph accordingly.
167 Left-clicking on a dot in the seek graph makes you challenge the corresponding player,
168 while left-clicking off-dots would erase the seek graph, and replace it by the normal board display.
169 Right-clicking the seek graph off-dots would refresh it (only needed on ICS that cannot do that automatically).
170 On a busy server dots can sometimes cluster so densely you no longer can reach those that hide behind others;
171 in this case right-clicking on a dot would 'push it to the back', so that dots behind it now get to the foreground.
172 When you hover over a dot the message window will show you the details of the corresponding seek ad,
173 and an exclamation point there will warn you there were dots hiding behind it.
174 </p>
175 <p>
176 The shape and color of the dots already gives you some information on the kind of game:
177 Red is rated, green is unrated, yellow is an ICS 'wild' game.
178 Squares correspond to computer opponents, dots to human players.
179 </p>
180 </td></tr></table>
181 <ul>
182 <li>Detour Under-promotion (<a href="#tags-B1">General Options</a>) determines if a promotion menu will pop up on promotion moves</li>
183 <li>-pieceMenu (command-line option) determines if a right-click invokes a menu in Edit Position mode</li>
184 <li>Drop Menu (<a href="#tags-B1">General Options</a>) determines if a right-click in bughouse invokes a drop menu</li>
185 <li>Animate Dragging (<a href="#tags-B1">General Options</a>) determines if you will see the piece being dragged</li>
186 <li>Seek Graph (<a href="#tags-B9">ICS Options</a>) determines if left-clicks can call up the seek graph</li>
187 <li>Highlight Last Move (<a href="#tags-B1">General Options</a>) controls if clicking squares highlights them</li>
188 <li>Highlight with Arrow (<a href="#tags-B1">General Options</a>) controls if an arrow is drawn between from- and to-square</li>
189 <li>One-click moving (<a href="#tags-B1">General Options</a>) can make a piece move by clicking only from- or to-square</li>
190 <li>Show Target Squares (<a href="#tags-B1">General Options</a>) marks square where the selected / dragged piece can move to</li>
191 <li>Hide Thinking from Human (<a href="#tags-B1">General Options</a>) determines if engine thinking is displayed in the message field</li>
192 <li>Play moves of clicked PV (<a href="#tags-B1">General Options</a>) control adding moves from the engine-output window to the game</li>
193 <li>-variations (command-line option) determines whether you can enter variations</li>
194 <li>-showButtonBar (command-line option) determines whether the navigation buttons are present</li>
195 </ul>
196
197 <h3><a name="tag-A2">Comment window</h3>
198 <table cellpadding="20"><tr><td valign="top">
199 <p>
200 The Comment window displays comments and variations from the PGN file belonging to the current move,
201 and will automatically update when you step through the game.
202 Left clicks in the Comment window are reserved for the normal editing functions (selecting, drag-drop editing).
203 The right button can be used to click on a PGN variation
204 (a sequence of alternative moves enclosed in parentheses) on the current move.
205 In this case XBoard will 'upgrade' this variation to become the main line of the curent game
206 (the original main line being shelved in its memory, so you can 'Revert' to it later).
207 You can then step through the variation to make it visible on the board.
208 </p>
209 <ul>
210 <li>Auto-dispay comment (<a href="#tags-B10">Load Options</a>) causes automatic pop up of this window whenever you encounter a commented move.</li>
211 </ul>
212 </td><td valign ="top">
213 <img src="Comment.png">
214 </td></tr></table>
215
216 <h3><a name="tag-A5">Engine output</h3>
217 <p>
218 As its name suggests, the engine-output window is only useful when an engine is involved.
219 (This can be an engine you connect to through an Internet Chess Server, however.)
220 Engines print how they think the game would continue if both sides play the moves the engine considers best,
221 the so called 'Principal Variation',
222 at ever increasing search depth.
223 These PV lines are diplayed in the engine-output window, preceded by the search depth at which they were found,
224 and the score assigned to them, (plus the less interesting time and number of positions searched).
225 </p>
226 <table cellpadding="20"><tr><td valign="top">
227 <p>
228 <img src="../whats_new/4.4.0/EngOutXB.png">
229 </p><p>
230 <img src="Columns.png">
231 </p><p>
232 <img src="../whats_new/4.7.0/ExcluHeader.png">
233 </p>
234 </td><td valign ="top">
235 <p>
236 Left clicks in the Engine Output window are reserved for the normal editing functions,
237 although in this case only selecting for the purpose of copying would be a useful action.
238 The right button can be used to click on a PV indicated by the engine.
239 In this case that PV will be played out on the chess board when you move the mouse vertically with the button still down
240 (i.e. use the main board as 'variation board').
241 The behavior in analysis mode is a bit different from that in other modes:
242 when you release the button, the position on the variation board becomes the new position to analyse,
243 and all moves leading up to it will be added to the game.
244 Because the variation walk will start in the position after the first PV move there,
245 a static click on a PV would just make you play the suggested engine move.
246 (As of XBoard 4.8, such automatic playing of PV moves happens only when you click the first move of the PV, or left of it.)
247 In other modes, walking a PV will start at the end of the PV, and never change the game.
248 When you release the button, you will simply jump back to the original game.
249 When an engine produces a move, XBoard would force you back to the real game anyway, even without releasing the button.
250 </p>
251 <p>
252 In XBoard 4.8 the columns with information in front of the PV can be opened and closed
253 by right-clicking the column headers.
254 (This does not affect lines that already have been printed,
255 and so becomes only fully effective in the next search.)
256 There are three new columns with information: selective search depth, tablebase hits and nodes/sec,
257 which normally start closed.
258 Not all engines give this information, although most UCI engines running under Polyglot 2.02 should
259 (if the Polyglot ShowTbHits option is switched on!).
260 </p>
261 <p>
262 <b>Multi-PV and move exclusion -</b>
263 Some engines support a multi-PV mode, where they don't only give continuations for the best move,
264 but also for second-best, or more.
265 In this case XBoard will print a header line above the PV's containing the words 'fewer' and 'more',
266 and when you right-click on those, the number of moves the engine calculates will be decreased or increased.
267 Excluded moves will also be listed in a header line, with a minus sign in front of them.
268 You can re-include them by right-clicking on them;
269 they stay in the list, however (the minus turning into a plus sign),
270 so that you can exclude them again by clicking.
271 The list always contains a number of 'meta-moves', such as 'best' and 'tail',
272 'best' standing for the first move of the current PV (which of course is always an included move).
273 'Tail' stands for 'all moves not explicitly listed', so they can be included as well as excluded from the search in a single click.
274 </p>
275 </td></tr></table>
276
277 <h3><a name="tag-A4">Move list</h3>
278 <table cellpadding="20"><tr><td valign="top">
279 <p>
280 The Move List contains the game in SAN notation, with or without score/depth information included as comments to the moves.
281 Left clicks in the Move List are reserved for the normal editing functions,
282 although in this case only selecting for the purpose of copying would be a useful action.
283 Right-clicking on a move (in WinBoard: left-double-clicking) will navigate you to the position after that move
284 (i.e. display that position on the board, and allow you to step through the game from there).
285 </p>
286 <ul>
287 <li>Scores in Move List (<a href="#tags-B1">General Options</a>) enables inclusion of engine score/depth</li>
288 </ul>
289 </td><td valign ="top">
290 <img src="../whats_new/4.6.0/History.png">
291 </td></tr></table>
292
293 <h3><a name="tag-A6">Evaluation graph</h3>
294 <table cellpadding="20"><tr><td valign="top">
295 <img src="../whats_new/4.6.0/Zoom.png">
296 </td><td valign ="top">
297 <p>
298 The evaluation graph displays how the engine score evolved over the game,
299 either as a histogram, or (when space gets too tight), as a drawn line.
300 If two engines are playing, each side has its own histogram / line,
301 distinguishable by their color.
302 Clicking in the graph navigates you to the position corrsponding to the point where you clicked.
303 </p>
304 <p>
305 In XBoard 4.8 and later the graph can be toggled to 'blunder mode' by right-clicking in it.
306 This will show how much score was given up on each move,
307 but is only meaningful if both sides were scored by the same engine (from analyzing the game).
308 The score range (-1, 1) can be magnified on the vertical axis,
309 and operating the mouse wheel inside the graph will adjust this 'zoom factor'.
310 </p>
311 <ul>
312 <li>Zoom factor (<a href="#tags-B1">General Options</a>) set magnifiation of the {-1, 1} score range</li>
313 <li>-evalThreshold (command-line option) minimum score to be considered different from 0</li>
314 </ul>
315 </td></tr></table>
316
317 <h3><a name="tag-A1">Game List</h3>
318 <p>
319 The Game List displays a table of contents of the urrently loaded PGN file as a listbox.
320 The lines in the listbox are composed of the PGN tags of the game,
321 in a user-configurable way.
322 Clicking on such a line would load the corresponding game, so you can navigate through it.
323 The currently loaded game will be highlighted in the list.
324 Using Up or Down arrow keys while the Game List window has focus will move the highlight to the previous / next game,
325 while typing &lt;Enter> will load the game.
326 </p>
327 <table cellpadding="20"><tr><td valign="top">
328 <p>
329 The Game List window includes a number of controls at the bottom,
330 to select a subset of the games for display in the window.
331 A 'Filter' field allows you to enter a text, where then only header lines containing that text will b displayed.
332 You can furthermore select on positions occurring in the game,
333 through the 'Find Position' button.
334 When you do that, only those games containing the position currently on the board
335 (or enough like it, according to the matching criterea you specified in the Load Game Options dialog,
336 reachable through the 'Thresholds' button)
337 will remain in the list, in that case.
338 'Find position' will always look through the entire PGN file (respecting the text-filter criteria),
339 but a similar 'Narrow' button would only consider the games already selected in a previous operation.
340 </p>
341 <ul>
342 <li>(<a href="#tags-B11">Game List Options</a>) selects the PGN tags included in the header</li>
343 <li>(<a href="#tags-B10">Load Options</a>) can set all kind of filter and position-search criteria</li>
344 <li>Save Selected Games in the File menu creates a new multi-game PGN file with all currently selected games</li>
345 <li>Save Games as Book in the File menu turns the selected games into a (Polyglot) opening book</li>
346 </ul>
347 </td><td valign ="top">
348 <img src="NewGameList.png">
349 </td></tr></table>
350
351 <h3><a name="tag-A3">Tags window</h3>
352 <p>
353 The Tags window is a text window that supports normal editing functions,
354 but otherise has no special functions.
355 It can be used to view or edit the PGN tags of the stored game.
356 To save any changes brought about by editing, you have to press a button at the bottom of the window.
357 </p>
358 <ul>
359 <li>Auto-display Tags (<a href="#tags-B10">Load Options</a>) cause automatic popup on loading a game</li>
360 </ul>
361
362 <table cellpadding="10"><tr><td>
363 <img src="../whats_new/4.6.0/EditBook.png">
364 </td><td>
365 <h3><a name="tag-A1">Edit book</h3>
366 <p>
367 The Edit Book window is a text window that supports normal editing functions, similar to the Tags window.
368 It displays moves available for the current position (displayed on the board) in the currently installed opening book.
369 To save any changes brought about by editing, you have to press a button at the bottom of the window.
370 </p>
371 <p>
372 As of XBoard 4.8, the tabulated book moves can be played by right-clicking them.
373 There also is a button 'add next move';
374 when you click that, the next move you perform on the board will be added to the book with weight 1,
375 without being actually made (so that you stay in the same position,
376 and get an opportunity to add more moves, and edit their weights).
377 </p>
378 <ul>
379 <li>Polyglot Book (<a href="#tags-B4">Common Engine Options</a>) determines which book file we edit</li>
380 </ul>
381 </td></tr></table>
382
383 <h3>Menus</h3>
384 <p>
385 Most menus speak for themselves.
386 Many of them are for bringing up menu dialogs, (discussed below), where the real action will take place.
387 The Forward, Backward etc. items in the Edit menu do the same as the buttons above the board;
388 you can step through a game in progress, but only for viewing past positions;
389 Backward will not retract any moves.
390 The Retract Move item in the Engine menu is for that.
391 The Book item in the Engine menu queries the engine for its own book moves,
392 and has nothing to do with XBoards own opening book.
393 </p>
394 <p>
395 Items that deserve explanation are Revert and Annotate in the Edit menu.
396 These items become enabled as soon as you have shelved the main line of the loaded game,
397 by 'upgrading' a variation to new main line.
398 This can be done by right-clicking an already present vaiation in the Comment window,
399 or by entering a move (not at the end of the game) while keeping the Shift key pressed.
400 With Revert you would abandon such an upgraded variation, and restore the old main line.
401 Annotate does the same, but adds the abandoned variation as a (PGN variation) comment to the preceding move.
402 So you typically would use Revert to revert from variations that were already in the game,
403 and Annotate for a variation that you entered yourself, move by move.
404 Of course you could use Revert in that case as well, if you don't think the abandoned variation is worth saving
405 (e.g. after receiving a very poor analysis score).
406 <h3>Mode menu</h3>
407 <p>
408 The Mode menu might require some more clarification than others.
409 It is used to determine what XBoard will be doing.
410 E.g. Machine White and Machine Black will set XBoard to let the user play against the (first) engine,
411 while Two Machines will make first and second engine play against each other.
412 In both cases XBoard will revert to idle mode after the game finishes.
413 Machine Match starts playing the two engines against each other for a number of games (aternating the colors).
414 This match will stop when you click the menu item again (after the game in progress finishes!),
415 or when the number of games set in the <a href="#tags-B12">Match Options</a> dialog is reached.
416 Edit Game will allow the user to enter moves for both sides;
417 if a (first) engine is loaded, it will still check the moves for legality, though,
418 (so you cannot use XBoard to edit the game of a variant the engine does not play!),
419 but it will not think about them.
420 Edit Position allows you to set up a position.
421 </p>
422 <p>
423 Analysis mode is similar to Edit Game mode in that the user plays both sides,
424 but now the engine is thinking, and you can follow its thoughts about the current position in the engine-output window.
425 Selecting Analyze mode again when it is already on toggles analysis by the second engine on or off.
426 With Analyze Game, you will make XBoard step through the currently loaded game automatically,
427 while the engine is analyzing every position in it.
428 The results of this analysis are then added to the moves as comments
429 (i.e. score / depth as comments, as well as the PV indicated by the engine in PGN variation format).
430 Normally analysis stops when the end of the game is reached.
431 When you load a game when analysis is already on, however, all remaining games in the PGN file are analyzed.
432 (And when auto-saving of games is on, the annotated games will all be saved in another file.)
433 </p>
434 <p>
435 ICS client is only available when you are already connected to an Internet Chess Server,
436 and allows you to continue interacting with it after you have been switching to another mode to do something locally.
437 (Such as loading a game from a file, in order to upload it to the ICS for examining,
438 or editing a game with comments in order to save it.)
439 </p>
440 <ul>
441 <li>'Auto-play speed' in the <a href="#tags-B10">Load Options</a> dialog sets the analysis time per move in Analyze Game</li>
442 </ul>
443
444 <table cellpadding="20"><tr><td valign="top">
445 <p>
446 <img src="../whats_new/4.5.2/GenOpt.png">
447 </p><p>
448 <img src="PromoPopup.png">
449 </p>
450 </td><td valign ="top">
451 <h3><a name="tags-B1">General Options</h3>
452 <p>
453 The General Options dialog contains mostly on/off options.
454 Most options speak for themselves, or have already been discussed in the section on the board window.
455 Animate dragging / moving control whether the pieces move to their destination
456 square in a continuous fashion, rather than instantly jumping there.
457 The latter is for click-click moves or moves from an external source (file, engine, ICS),
458 the other for drag-drop moving.
459 Blindfold suppresses display of all pieces, so the board will always look empty.
460 Auto-flag terminates the game when one of the players flags 
461 (or at least sends a request to that end to the ICS).
462 Auto Flip View will put the side you are playing at the bottom of the display,
463 when playing against engine or on ICS. 
464 (By default white is at the bottom,
465 but the Flip View men item or F2 key can change this manually).
466 Ponder Next Move will cause an engine to think also when its opponent's clock is running.
467 Periodic Updates is a feature only relevant for analysis with an engine,
468 and let the engine send a constant stream of updates on what it is doing,
469 rather than just new variations.
470 Absolute analysis score means that in analysis positive scores mean white has the advantage.
471 (Normally engines report scores from the point of view of the side to move.)
472 XBoard has the possibility to make pieces that move blink on and off a few times on their to-square (Flash Moves).
473 You can suppress popup of several popups (e.g. drop menu in favor of PV walking).
474 </p>
475 <p>
476 Test Legality will already make XBoard refuse entry of illegal moves;
477 when you switch it off, you can enter them, but an ICS or engine would still refuse them,
478 and XBoard would then take the move back.
479 Switching it off can be useful, though, when you use XBoard for a chess variant it does not know the rules of.
480 In that case the engine will be the final authority on what moves the user can enter.
481 Some other options won't work when legality testing is off:
482 XBoard won't be able to adjudicate checkmates and stalemates, 'Show Target Squares' where a picked-up piece can move to,
483 or use 'One-click Moving' (see below).
484 </p>
485 <p>
486 Two options affect how you enter moves.
487 One-Click Moving automatically moves pieces you click to the only square they can move to when this option is on.
488 As an alternative, it allows you to click empty squares, and if you have only a single piece that can move there,
489 XBoard will make that move.
490 Finally, clicking on an already selected piece (in practice usually double-clicking an unselected one) will force it to make the only capture it can do.
491 </p>
492 <table cellpadding="0"><tr><td valign="top">
493 <p>
494 Detour Under-Promotion is a novel way to handle pawn promotions:
495 Moving the pawn forward to its promotion square will automatically give you a queen,
496 but in the rare case you want something else, you can drag the pawn backwards first,
497 upon which it will start changing identity.
498 When it finaly becomes the piece you want, you then move it forward to the promotion square.
499 If the option is off, you will be prompted for a choice with a popup (shown left).
500 With One-click moving you will only get a promotion choice when clicking the pawn;
501 clicking the promotion square will always give you queen.
502 A command-line options -alwaysPromoteToQueen can force this anyway, in stead of the popup.
503 </p>
504 </td><td>
505 <img src="../whats_new/4.6.0/Detour.png">
506 </td></tr></table>
507 </td></tr></table>
508
509 <table cellpadding="20"><tr><td valign="top">
510 <img src="../whats_new/4.5.2/SaveOpt.png">
511 </td><td valign ="top">
512 <h3><a name="tags-B2">Save Options</h3>
513 <p>
514 XBoard allows you to save games or positions manually,
515 but in the Save Options dialog you can make arrangements for this to happen automatically at the end of any game.
516 If you specify a file for this, all games will be appended to the file.
517 (XBoard never over-writes game or position files, but always appends.)
518 If not, it will prompt you for a file name every time it saves,
519 proposing a name derived from the players.
520 It is recommended to always save as PGN.
521 Other thing you can set here are the text in the Event tag,
522 whether score & depth of engine moves will be saved as comment to the moves,
523 whether the score when the engine came out of book will be saved as a PGN tag,
524 and whether tourney games will get a Number tag with a sequence number.
525 </p>
526 </td></tr></table>
527
528 <table cellpadding="20"><tr><td valign="top">
529 <h3><a name="tags-B3">Adjudication options</h3>
530 <p>
531 XBoard can recognize checkmates and stalemates,
532 and end games when they occur without waiting for the engine to claim it.
533 It can thus also check if engines claim these events unjustly, and forfeit them for that.
534 Positions without mating potential can be recognized in the more common variants,
535 and be declared draw instantly.
536 Some material combinations that would only allow helpmates (such as KBKN) can also be adjudicated draw after a short delay,
537 under control of the 'Trivial Draws' option
538 </p>
539 <p>
540 You can also set the number of repeats and reversible moves after which a draw should be declared,
541 or cut short excessively long games by delaring draw.
542 Setting these values to 0 disables the corresponding adjudication.
543 You can let XBoard declare a win when both engines agree one is so much behind that further playing is pointless (Win / Loss Threshold).
544 For this to work, the engines must report the scores in the conventional way
545 (i.e. positive meaning they think themselves ahead, even when playing black).
546 Two options allow you to flip the black score of non-compliant engines.
547 </p>
548 </td><td valign ="top">
549 <img src="../whats_new/4.5.2/AdjuOpt.png">
550 </td></tr></table>
551
552 <table cellpadding="20"><tr><td valign="top">
553 <img src="../whats_new/4.5.2/ComOpt.png">
554 </td><td valign ="top">
555 <h3><a name="tags-B4">Common engine options</h3>
556 <p>
557 This dialog allows you to set some parameters valid for all engines,
558 such as their hash-table size, size of their tablebase buffer, the number of cores they can use,
559 and where you have installed the tablebases on your system.
560 Almost all UCI engines (run through the Polyglot adapter) need these parameters.
561 For native XBoard engines these settings often are ignored,
562 because they don't support the necessary commands to set them through the protocol.
563 'Polyglot directory' is where the Polyglot executable is to be found;
564 on Linux this can usually stay empty, becaue Polyglot is installed in a directory that is searched automatically 
565 when you issue a simple 'polyglot' command.
566 </p>
567 <p>
568 <b>Opening book -</b> The remaining options are for controlling the opening book used by XBoard.
569 This book can be used to play openings for the engines, without the engines being consulted.
570 (The moves selected by XBoard from the book will be forced to the engine,
571 and the engine will be started to think for itself only when XBoard gets out of book.)
572 You can specify any opening book in Polyglot format as book file,
573 but to make it possible for XBoard to use it, 'Use GUI Book' should also be checked.
574 This still does not mean XBoard will use the book for all engines;
575 to use it for a specific engine, the 'Has Own Book' option for that engine should be switched off.
576 By default it would be switched on after loading an engine,
577 except when this engine was installed with the explicit request to use the book.
578 In tournaments you can overrule this default, though, and make all participants start from the GUI book
579 unless they explicitly request to not use it
580 (which they almost never do, unless you edited the engine list by hand).
581 Finally you can set for how many (full) moves the book should at most be used,
582 and specify the book variation by a number from 0 to 100:
583 100 would mean totally random selection of all moves the book has for the current position,
584 while 0 would mean it only plays the best move(s) listed in the books.
585 The value 50 here would play the moves in proportion to the probabilities the book suggests.
586 </p>
587 </td></tr></table>
588
589 <h3><a name="tags-B5">Load engine</h3>
590 <table cellpadding="20"><tr><td valign="top">
591 <p>
592 To start using a different engine (or start using one when you so far were in game-viewer mode only)
593 you can select one with the aid of this dialog.
594 If the engine is already 'installed', i.e. present in the list maintained in XBoard's setting file,
595 you can simply select it from the drop-down list at the top of the dialog.
596 You then only have to select if you want to load it as first or second engine,
597 and can press OK.
598 (As of XBoard 4.7 the drop-down has been replaced by a listbox in which you just have to double-click the name,
599 and there are separate dialogs for the first and second engine.)
600 The rest of the dialog is then not used.
601 </p>
602 <p>
603 Only to load an engine never used before the rest of the dialog becomes relevant.
604 You can specify the engine command there, which can be done by browsing to the executable for that engine.
605 Some engines might need other stuff on their start command than just their name, however,
606 like '-xboard', or a specification of the hash size.
607 You must tick a box if the engine is UCI.
608 By default it will be assumed you want to remember this new engine in the engine list,
609 so that next time you can select it directly from the drop-down list.
610 If you don't want this, you can untick the 'Add to list' checkbox.
611 </p>
612 <p>
613 You can also specify a 'nickname', which is the name under which it will appear in the drop-down list,
614 if you are not satisfied with the name of the executable.
615 (Some engines have horribly cryptic names for their command,
616 and you might want to install versions of the same engine with different settings,
617 and use nicknames to keep them apart.)
618 Other checkboxes allow you to determine if this engine should request using XBoard's opening book,
619 if it is an obsolete engine using version 1 of the protocol
620 (which would otherwise take many seconds to load),
621 and if the engine should be installed to always play the currently active variant
622 (this is only usful for engines that do not play normal chess).
623 </p>
624 </td><td valign ="top">
625 <img src="../whats_new/4.6.0/LoadEng.png">
626 </td></tr></table>
627
628 <table cellpadding="20"><tr><td valign="top">
629 <img src="../whats_new/4.5.2/BoardOpt.png">
630 </td><td valign ="top">
631 <h3><a name="tags-B6">Board options</h3>
632 <p>
633 In the View menu there is the Board Options dialog to make you configure the look of the board.
634 There are two modes for rendering board squares: through an externally given (pixmap) image file, or evenly colored.
635 In the latter case you can select the colors with the 'color pickers' at the top of the dialog.
636 In XBoard colors are indicated by hexadedecimal numbers for their Red, Green and Blue value.
637 This cryptic notation is displayed in a text-edit, and if you understand the coding system, 
638 you could alter it to the color you want by typing a new code.
639 (Hint: the first two letters behind # are for red, the next two for green, and the last two for blue.)
640 Otherwise you can set the color experimentally, using the buttons behind the text edit
641 to make it a bit redder, greener, bluer or darker.
642 To see what you are doing the color is displayed behind the text edit.
643 This is also a button, though, and if you press it, it restores the color to the default.
644 You can set square color, piece color and highlight colors through this method.
645 </p>
646 <p>
647 To use image files for board squares, you must specify the pixmap files from which the light and dark squares are cut.
648 These files must contain an image at least as big as the square size,
649 The cutting algorithm is such that it tries to minimize the overlap between cut squares,
650 and that when you specify an image exactly the size of the entire board,
651 the squares tile to recover the complete image undamaged.
652 The width of the highlight lines can be hand-tuned with the 'Line Gap' option.
653 </p>
654 <p>
655 You can also specify external pieces, as bitmaps or pixmaps.
656 (XBoard 4.7 and later only support SVG or PNG images, set through the same 'piece-image directory'.)
657 A complete set of pieces of the current board size would have to be contained in the specified diretories.
658 The other options speak for themselves.
659 </p>
660 </td></tr></table>
661 <p>
662 <b>Themes -</b> As of XBoard 4.8 the entire combination of graphical settings can be saved as a 'theme':
663 just enter a name for the theme in the (otherwise empty) text edit for it, and press 'OK'.
664 This name will then be displayed in the listbox left in the dialog (together with the names of already existing themes),
665 where double-clicking it will recall the corresponding settings.
666 </p>
667
668 <h3><a name="tags-B7">Sound options</h3>
669 <table cellpadding="20"><tr><td valign="top">
670 <p>
671 XBoard cannot generate sounds by itself, but can invoke an external sound player to play a number of predefined sounds.
672 These sounds can be coupled to certain events, like your opponent making a move,
673 the game ending in a win, loss or draw, etc.
674 Many of the events can only ocur when you aue XBoard to connect to an Internet Chess Server,
675 such as someone challeging you for a game, others sending you a 'tell' message, a 'shout' being broadcasted on the server.
676 For each of the events there is a drop-down list from which you can select the sound you want to hear when it occurs.
677 Apart from the predefined sounds that come with XBoard,
678 you can supply your own sound files:
679 just select one in the text edit at the top,
680 and choose 'Above WAV File' from the drop-down list.
681 You can also select your preferred sound-player command, and the directory where the predefined sounds are stored.
682 </p>
683 <h3><a name="tags-B8">ICS Text Menu</h3>
684 <table cellpadding="10"><tr><td valign="top">
685 <img src="../whats_new/4.5.2/TextMenu.png">
686 </td><td valign ="top">
687 <p>
688 There is one dialog that is special, because the user can decide what is in it!
689 It displays a number of buttons, which represent a command text to be sent to the Internet Chess Server you are connected to.
690 Each button could thus represent a command you frequently use,
691 and now can send with a single click of the mouse!
692 </p>
693 <p>
694 The button texts, and commands to send are all specified through the multi-line option -icsMenu,
695 which is stored in the settings file (~/.xboardrc).
696 The easiest way to change it is probably editing this file (sorry about that...).
697 Buttons are described by "buttonText;command;" pairs, where the command can contain linefeeds
698 (i.e. be multiple ICS commands).
699 "$name" in the command will be replaced by currently selected text in the ICS console.
700 Commands ending with "$input" are placed in the ICS Input Box, rather than  directly sent to the ICS.
701 If they start with "$add", they will be appended to text already in the ICS Input Box, rather than replacing it.
702 </p>
703 </td></tr></table>
704 </td><td valign ="top">
705 <img src="../whats_new/4.5.2/SoundOpt.png">
706 </td></tr></table>
707
708
709 <table cellpadding="20"><tr><td valign="top">
710 <h3><a name="tags-B9">ICS options</h3>
711 <p>
712 This dialog can alter settings relevant for playing on an Internet Chess Server.
713 On the right you can specify colors to be given to various type of messages coming from the ICS.
714 They consist of a comma-separated triple for font color, background color and ???.
715 To activate this, the Colorize option has to be ticked.
716 </p>
717 <p>
718 You can also switch premoving (i.e. entering your move in advance, while the opponent is still thinking) on or off,
719 and specify premoves for the first move of the game.
720 An Alarm can be set to sound when the time left on your clock drops below a certain value.
721 (Use the Sound Options dialog to pick the sound!)
722 Auto-raise board pulls the board window to the foreground whenever there is activity,
723 while Quiet Play suppresses all messages coming from the ICS while you are involved in a game.
724 Get Move List is important for not missing the initial part of games you start observing when they are in progress,
725 but can be very disruptive if you observe more games at the same time.
726 </p>
727 </td><td valign ="top">
728 <img src="../whats_new/4.5.2/ICSOpt.png">
729 </td></tr></table>
730 <p>
731 The option Auto-Comment causes all text messages you receive from your opponent during game play
732 to be added as comments to the stored game, so they can be saved with the PGN.
733 Auto-Kibitz will cause the thinking output of an engine playing through XBoard on the ICS ('zippy mode')
734 to be sent through kibitz commands to opponent and observers.
735 At the same time it will cause such incoming kibitzed thinking output to be diverted to the engine-output window.
736 </p>
737 <p>
738 Seek graph controls if a left-click on the board while idle will bring up a graph of players seeking a game.
739 When this option is on, Auto-Refresh Seek Graph controls if it is automatically updated,
740 (works only on FICS and ICS, and consumes a lot of bandwidth),
741 or whether you have to right-click the graph (in an empty part) for that.
742 (This setting only takes effect after starting a new ICS session, as the ICS does not allow them to be changed 'on the fly'.)
743 The color of the dots in the seek graph codes for rated / unrated / wild,
744 while the shape (circle / square) encodes for human / computer.
745 </p>
746 <p>
747 The option Background Observe suppresses display of any boards of observed games while you are playing.
748 The latest such received board can then be peeked at by right-clicking on the board, however.
749 In combination with this, you can use the experimental option Dual Board to see such background-observed games
750 on a separate board all the time.
751 Such observed games are not recorded by XBoard though.
752 (I.e. you cannot save them on file afterwards, but you can of course always fetch them again from the ICS later, 
753 and save them then.)
754 </p>
755
756 <h3><a name="tags-B10">Load options</h3>
757 <p>
758 The Load Options dialog controls loading and slection of games from the game list.
759 After loading a game XBoard will normally auto-play it, by stepping through all positions from the beginning.
760 The stepping rate can be set here in seconds.
761 (This is one of the few numeric options where fractions can be specified.)
762 Specifying a negative number will suppress the auto-play, and leave the opening position in the display after game load.
763 Specifying 0 will instantly move to the final position, and leave that in the display.
764 You can select if the Tags window will automaticall pop up to show you the PGN tags of the game,
765 or whether the Comment window will pop up on display of any move that had a comment to it.
766 </p>
767 <table cellpadding="20"><tr><td valign="top">
768 <img src="LoadOpt.png">
769 </td><td valign ="top">
770 <p>
771 A text edit allows you to speify options XBoard that should take effect when XBoard is used as a game viewer
772 (i.e. with the -viewer option, as it is when invoked through clicking a PGN file).
773 By default this will be -ncp mode ('no chess program', i.e. without engine),
774 but you might prefer to start it with your favorite engine for analyzing games.
775 </p>
776 <p>
777 The other options are all for 'filtering' the game list, i.e. only display games that fit certain criteria.
778 You can specify Elo thresholds for only showing the games from a PGN file of players that are strong enough,
779 or restict the display to games played after a certain year.
780 This all works in combination with the 'Filter' field in the Game List itself, 
781 where you can select based on a text occurring in the header lines.
782 You can also select games based on occurrence of certain positions in them.
783 The position you search should in that case be set up on the board.
784 To decide when a position is considered a 'match', six different, and progressively more liberal criteria can be used:
785 </p>
786 <ul>
787 <li>The position must be exactly the same as the one on the board</li>
788 <li>Pieces on the board must occur in the position exactly as given, but there could be extra material</li>
789 <li>Only the Pawns must be exactly as on the board, but non-Pawn material could be anywhere</li>
790 <li>The position must have the same material as is on the board, but it doesn't matter where</li>
791 <li>The position must contain at least the material on the lower half of the board,
792     but can optionally have any subset of the material on the upper half in addition</li>
793 <li>As above, but the optional material must be the same for black and white</li>
794 </ul>
795 <p>
796 In addition you can tick whether the first three comparison methods should also accept mirror images
797 (where vertical flipping will be accompanied by color flipping).
798 For the last three methods you can require that the imposed conditions are satisfied not for a single position,
799 but for a given number of consecutive positions. 
800 Pressing the 'Find Position' button at the bottom of the Game List will apply the specified criteria.
801 Games loaded from a Game List filtered position will not auto-play,
802 but always load with the position search for as the currently displayed one.
803 </p>
804 </td></tr></table>
805
806 <h3><a name="tags-B12">Match options</h3>
807 <table cellpadding="20"><tr><td valign="top">
808 <p>
809 Here you can set the parameters for matches and tournaments.
810 For (old-style) two-player matches only the options in the bottom half of the dialog are relevant:
811 you can select the default number of match games 
812 (i.e. that used when you click the Machine Match item in the Mode menu),
813 the game or position file from which the games in the match will be started
814 (i.e. the games, presumably short opening lines, or position will be loaded first, 
815 and the engines will then start to play from there),
816 and which game or position from the file should be used.
817 By specifying -1 or -2 for the latter you can make XBoard automatically step through all positions in the file,
818 taking the next one every game (-1) or every two games (-2, so they are played with both colors).
819 You can specify that after a number of games / positions have been used,
820 XBoard 'should rewind' to the first in the file.
821 </p>
822 <p>
823 The pause between matches is important for engines that do not support 'ping',
824 which have the nasty habit of sometimes producing a move for the previous game when the next game has already started,
825 (because the opponent unexpectedly resigned),
826 without XBoard being able to detect that.
827 The only remedy is to wait long enough for such engines to finish their search and produce the move before the next game starts.
828 The file for saving the games can be set here, as well as from the Save Options dialog.
829 The other parameters, in the upper half of the dialog are only important for tourneys with more than two engines
830 (or at least, other than the two currently loaded engines),
831 see the page on XBoards <a href="../whats_new/4.6.0/TM.html">built-in tournament manager</a>.
832 </p>
833
834 <table cellpadding="20"><tr><td valign="top">
835 <img src="../whats_new/4.5.0/glopt.png">
836 </td><td valign ="top">
837 <h3><a name="tags-B11">Game-list options</h3>
838 <p>
839 With this dialog you can customize the lines in the game list.
840 The various PGN tags that are eligible for appearing there are displayed in a listbox.
841 You can select one of those by clicking it, and then move it up or down in the ranking with the buttons at the bottom.
842 Only tags above the 'hidden tags' item will be printed in the game list,
843 in the order they appear in the list box.
844 </p>
845 </td></tr></table>
846
847 </td><td valign ="top">
848 <img src="../whats_new/4.6.0/Tourney.png">
849 </td></tr></table>
850
851 <h3><a name="tag-A7">ICS Interaction / Chat window</h3>
852 <p>
853 When connected to an Internet Chess Server,
854 the communication with the latter can be done through the terminal from which XBoard was started.
855 The GTK build of XBoard also has a dedicated window for thism which can be opened from the View menu.
856 It shows the ICS output in an upper pane,
857 and at the bottom has a text entry where you can type commands to the ICS.
858 Right-clicking in the upper pane pops up the <a href="#tags-B8">ICS Text Menu</a>,
859 which then is aware of the word that you clicked, and can use it as the $name variable in the command you select from it.
860 For instance to 'challenge' or 'finger' a particular person who 'shouted' something in the window.
861 </p><p>
862 You can also open a chat with such a person, through an 'Open Chat' entry in the ICS Text Menu,
863 or by pressing one of the 'New Chat' at the top of the ICS Interaction window.
864 (In the latter case you would have to type the person't name, though.)
865 This spilts the output pane in two, the lower half now reserved for messages from that person
866 (the 'Chat Partner'), which can also be a broadcast channel (numbered, or 'shouts').
867 Everything you type in the line at the bottom would then not be sent to the ICS as a command,
868 but to the chat partner as a 'tell' message (without you having to type the tell or the person's name).
869 You can conduct up to 5 such chats simultaneously,
870 and switch between them with the Tab key,
871 or switch back to giving ICS commands through the Esc key (closing the lower pane).
872 Of course the chat switching can also be done using the buttons provided for it on the window,
873 which will carry the name of the Chat Partner as soon as a chat gets assigned to one.
874 </p>
875 <img src="../whats_new/4.8.0/NewICS.png">
876 <img src="../whats_new/4.8.0/NewChat.png">