Merge branch 'www' of git.sv.gnu.org:/srv/git/xboard into www
[xboard.git] / whats_new / 4.7.0 / index.html
1 <!--#include virtual="/server/html5-header.html" -->
2 <title>XBoard - GNU Project - Free Software Foundation - NEWS</title>
3 <!--#include virtual="/server/banner.html" -->
4 <!--#set var="article_name" value="/server/standards/boilerplate" -->
5 <!--#include virtual="/server/gnun/initial-translations-list.html" -->
6
7 <h2>What is new in WinBoard / XBoard 4.7.0?</h2>
8 <table cellpadding="20"><tbody><tr valign="top"><td>
9
10 <h3>Interactive Analysis</h3>
11 <ul><li>
12 <a href="#tag-A1">Excluding analysis moves</a>
13 </li><li>
14 <a href="#tag-A3">Keeping track of what was excluded</a>
15 </li><li>
16 <a href="#tag-A2">Assigning analysis scores by hand</a>
17 </li><li>
18 <a href="#tag-A6">Analyzing with two engines</a>
19 </li><li>
20 <a href="#tag-A7">Annotating an entire muti-game file</a>
21 </li><li>
22 <a href="#tag-A13">Analysing by Monte-Carlo play</a>
23 </li></ul>
24
25 <h3>Other New Functionality</h3>
26 <ul><li>
27 <a href="#tag-A4">Displaying player logos in XBoard</a>
28 </li><li>
29 <a href="#tag-A5">Chat boxes for XBoard</a>
30 </li><li>
31 <a href="#tag-B9">Narrowing down a position search</a>
32 </li><li>
33 <a href="#tag-B8">Copying pieces when editing a position</a>
34 </li><li>
35 <a href="#tag-A8">Starting WinBoard through drag & drop</a>
36 </li><li>
37 <a href="#tag-A9">Recalling configured engines and ICS</a>
38 </li><li>
39 <a href="#tag-A12">Creating an opening book</a>
40 </li><li>
41 <a href="#tag-A14">Pausing a game</a>
42 </li></ul>
43
44 </td><td>
45
46 <h3>Interface Improvements</h3>
47 <ul><li>
48 <a href="#tag-B1">Scrolling listboxes (XB)</a>
49 </li><li>
50 <a href="#tag-B2">Tabbing through dialogs (XB)</a>
51 </li><li>
52 <a href="#tag-B6">List boxes for engine selection</a>
53 </li><li>
54 <a href="#tag-B7">Grouping engines</a>
55 </li><li>
56 <a href="#tag-B4">A separate board for observing ICS games (XB)</a>
57 </li><li>
58 <a href="#tag-B3">Handling graphics with the dialog creator (XB)</a>
59 </li><li>
60 <a href="#tag-B5">A rejuvenated file browser (XB)</a>
61 </li><li>
62 <a href="#tag-A15">External piece bitmaps (WB)</a>
63 </li><li>
64 <a href="#tag-A10">Border around the board (WB)</a>
65 </li><li>
66 <a href="#tag-A11">Saving settings as themes (WB)</a>
67 </li><li>
68 <a href="#tag-C0">Smoother graphics and a resizable board (XB)</a>
69 </li><li>
70 <a href="#tag-C1">An experimental port to the GTK widget set (XB)</a>
71 </li></ul>
72
73 </td><td>
74
75 <img src="../4.5.0/winboardF.png">
76   <p>
77     <a href="../4.7.0/index.html">Follow-up</a>
78   </p>
79   <p>
80     <a href="../4.6.2/index.html">Preceding (bugfix) release (4.6.2)</a>
81   </p>
82   <p>
83     <a href="../4.6.0/index.html">Preceding release (4.6.0)</a>
84   </p>
85   <p>
86     <a href="http://hgm.nubati.net/news.html">Experimental and future stuff</a>
87   </p>
88 </td></tr></tbody></table>
89
90 <table cellpadding="20"><tr><td valign="top">
91 <h3><a name="tag-A1">Excluding moves from an analysis</a></h3>
92 <p>
93 Some engines allow the user to restrict the moves searched in the root position to a subset of all legal moves.
94 XBoard now provides an interface for the user to indicate which moves should be excluded.
95 The method used is to enter the move starting with a double-click on the piece.
96 So either double-click from-square, and then click to-square,
97 or grab the piece with a double-click,
98 and then drag it to the to-square before you release for the second time.
99 In the latter case there will be an visual cue to remind you that you are not really making the move,
100 namely that the piece you start dragging will also remain on the from-square.
101 </p>
102 <p>
103 The first time you make a move that way in analysis mode, 
104 it will be excluded from the analysis of the current position.
105 A new command had to be added to WB protocol to make this possible,
106 and that command ("exclude MOVE") will be sent to the engine.
107 The move will be highlighted in premove highlight colors (normally red).
108 When you enter an excluded move in the double-click way again,
109 its exclusion is cancelled (through sending "include MOVE" to the engine),
110 and the move will remain highlighted in the normal highlight color (yellow).
111 </p>
112 <p>
113
114 You can currently also exclude all moves but the best at once by
115 double-click dragging a piece (vertically) off board.
116 This is not likely to stay;
117 the final version of this feature will probaly provide another method for this.
118 </p>
119 </td><td valign="top">
120 <img src="exclude.png">
121 </td></tr></table>
122
123 <h3><a name="tag-A3">The 'exclude' header in the engine-output window</a></h3>
124 During analysis there now is an extra header line in the engine Output window,
125 which lists the moves that have been included from analysis, with a '-' sign in front of them.
126 By right-clicking these moves, they get re-included, and the '-' changes into a '+'.
127 They do stay listed, (as long as you remain in the position), so you can easily
128 toggle their exclusion state this way.
129 </p>
130 <table cellpadding="20"><tr><td valign="top">
131 <img src="ExcluHeader.png">
132 </td><td valign="top">
133 <p>
134 The exclude header always also contains the items 'none', and 'best',
135 which you can right-click to completely reset the exclusion list,
136 or exclude the current best move (i.e. the first move of the latest reported PV), respectively.
137 Finally, a pseudo-move 'tail', representing all moves not listed explicitly in the header,
138 is always shown as well.
139 It excludes or includes all these remaining moves.
140 a special case is when clicking it would result in no moves being included at all;
141 in that case the current best move will remain included.
142 <p>
143
144 </p>
145 </td></tr></table>
146
147 <h3><a name="tag-A2">Defining the score of a given position by hand</a></h3>
148 <p>
149 A new WB protocol command "setscore SCORE DEPTH" has been defined,
150 which can be used to set the score an engine should use for a given position by hand.
151 Currently XBoard does not use this yet,
152 but the intention is to allow the user to use the Adjudicate items in the Action menu
153 to define the current position as a win, loss or draw.
154 </p>
155
156 <h3><a name="tag-A4">Displaying logos for the playing engines</a></h3>
157 <p>
158 Like WinBoard, XBoard now also has the possibility to display player logos next to the clocks.
159 To enable this feature, an option -logoSize was added to XBoard.
160 This specifies the width (in pixels) of the logo pixmaps.
161 (The height is always assumed to be half the width.)
162 When the value of this option differs from the default 0, and is not more than 1/4 of the board width,
163 XBoard creates space for the logos, by displaying the clocks as two lines.
164 Commonly used logo sizes are 100 x 50 or 130 x 65.
165 </p>
166 <table cellpadding="20"><tr><td valign="top">
167 <p>
168 Like in WinBoard, a new boolean option -autoLogo causes XBoard to automatically look for logos corresponding
169 to the playing engine, human player, or the ICS to which you are connected.
170 Unlike WinBoard, you can specify a directory where XBoard looks for the logos, with the new -logoDir option.
171 All these options are persistent.
172 The name of the logo files must be the 'tidy name' of the engine (also used as mnemonic in the Load Engine dialog),
173 or the domain name of the ICS, or user name of the human, suffixed by .xpm,
174 for XBoard to recognize them under -autoLogo.
175 The logos can also be specified explicitly (overruling the -autoLogo choice),
176 with the volatile options -firstLogo, -secondLogo.
177 </p>
178 </td><td valign="top">
179 <img src="Logos.png">
180 </td></tr></table>
181
182 <h3><a name="tag-A5">Conducting chats in separate windows</a></h3>
183 <p>
184 XBoard now has chat facilities a bit similar to WinBoard's chat boxes.
185 Only difference is that there is only a single window to contain all chats (upto 5),
186 which cannot be 'unstacked' to see the chats side by side.
187 You can only see the 'foreground chat',
188 with the person (or channel) that is written in the chat-partner field at the upper left.
189 The other chats are only represented by buttons in the top row.
190 If there are messages in those chats you have not seen yet, the corresponding button turns orange.
191 </p>
192 <table cellpadding="20"><tr><td valign="top">
193 <img src="ChatBox.png">
194 </td><td valign="top">
195 <p>
196 Clicking a button moves the handle (or channel) it mentioned to the chat-partner field,
197 so that the corresponding chat becomes foreground, and rearranges the buttons.
198 You can then type to that person or channel (or shout, or whisper) without having to prefix the messages with 'tell ...', 'shout' or whatever.
199 XBoard will do this for you, depending on what is in the chat-partner field.
200 At any time you can change the content of that field (terminated by &lt;Enter>!),
201 to change with who you are chatting.
202 This is also the way to create new, simultaneous chats:
203 initially all buttons are blank; just select one 
204 (so the chat-partner field gets cleared, and the old partner moves to one of the buttons),
205 type a new handle there, and you can chat to that person.
206 </p>
207 </td></tr></table>
208
209 <table cellpadding="20" valign="top"><tr><td>
210 <h3><a name="tag-B1">Listboxes in XBoard dialogs</a></h3>
211 <p>
212 There were two XBoard dialogs that used listboxes:
213 the game-list window, and the game-list options dialog.
214 The first of those was more complex, because it could grow very big,
215 and was thus mounted inside a 'viewport', enabling the user to scroll through it.
216 </p><p>
217 The code for viewport + listbox has now been incorporated into the generic popup,
218 by creation of a new option type 'ListBox'.
219 As a result, these windows can now be generated by this dialog creator too,
220 meaning that they can also draw on all features this creator already supported.
221 But, even more importantly, it makes it trivial for other dialogs to use listboxes as well.
222 The code has been a bit augmented as well:
223 a callback has been added to allow vertical scrolling of such generically generated listboxes with the mouse wheel.
224 This scrolling can also be activated from the code,
225 which is now used in the game list to always keep the selected item in view.
226 </p>
227 </td><td>
228 <img src="NewerGameList.png">
229 </td></tr></table>
230
231 <h3><a name="tag-B9">Selecting games on multiple characteristics</a></h3>
232 <p>
233 There are three ways to select a subset from the game list:
234 you can filter on a substring of the header lines (e.g. a player name),
235 set thresholds for Elo and date in the Load Game dialog,
236 or select on a position occurring in the game.
237 All three methods can be used simultaneously.
238 But sometimes you might want to select based on two positions.
239 This can now be done with the new 'narrow' button in the game list:
240 unlike 'find position', which starts a search with a clean slate
241 (taking text and Elo/date filters into account),
242 this only selects from games that were already selected in the list.
243 This way you can select for position after position,
244 e.g. games that started with 1.e4 (using 'exact match'),
245 where white castled Q-side (in 'subset mode' with only Kc1 and Rd1 on the board),
246 black castled K-side (again subset mode, with Kg8, Rf8 on an otherwise bare board),
247 and ended in a Rook ending (in 'material range' mode with KRKR on the lower board half,
248 and all Pawns on the upper board half).
249 After using 'narrow' three times (after the initial 'fiind position',
250 you are left with only the games that satisfied all these conditions.
251 </p>
252
253 <h3><a name="tag-B2">Jumping from text-edit to text-edit</a></h3>
254 <p>
255 Another improvement of the dialogs generated by the generic dialog creator
256 is that text-edits now interpret a &lt;Tab> character typed by the user as the command to transfer focus
257 to the next text-edit of the dialog.
258 This allows you to avoid the annoying switching between keyboard and mouse when completing the info of a large dialog,
259 like Match Options.
260 </p>
261
262 <h3><a name="tag-B3">The Engine Output and Eval Graph redone by generic popup</a></h3>
263 <p>
264 The program code for the XBoard user interface has been extensively rewritten,
265 so that all dialogs, including the main board, are now managed by a completely general
266 'generic popup' routine, whih is entirely table driven.
267 Many of the specific improvements listed here are a consequence of this,
268 and the ease with which listboxes and graphical elements can be added to dialogs
269 will no doubt enable many future improvements.
270 In addition it should make it much easier to port XBoard to other platforms.
271 </p>
272
273 <table cellpadding="20"><tr><td valign="top">
274 <h3><a name="tag-B6">Using listboxes for engine selection</a></h3>
275 <img src="MatchList.png">
276 </td><td valign="top">
277 <img src="LoadList.png">
278 </td></tr></table>
279 <p>
280 The comboboxes for selecting engines in the Load Engine and Match Options dialogs have been replaced by listboxes.
281 This allows faster selection of the engines, because you don't have to open the comboboxes first.
282 The latter was especially annoying when you needed to select a number of consecutive items from a long list for a tourney:
283 you would have to reposition to where you were for each engine you added.
284 Now you simply double-click the engines, without the mouse pointer having to move elsewhere in between.
285 There are now also separate dialogs for loading first and second engine,
286 so the combobox to choose this could be removed,
287 as you already make the choice by selecting the appropriate dialog from the menu, without extra mouse click.
288 </p>
289
290 <table cellpadding="20"><tr><td valign="top">
291 <img src="MatchGroup.png">
292 </td><td valign="top">
293 <h3><a name="tag-B7">Structuring the engine list</a></h3>
294 <p>
295 Grouping of engines is now also possible in XBoard.
296 The fact that the engines are presented in listboxes makes this extra handy.
297 Just double-click a group to see it open, with its name displayed as header,
298 and click on that header to close it again, and go back to the 'root' list.
299 As with WinBoard, the engines in a group are dlimited by lines
300 "# GROUP NAME" and "# end" in the engine list.
301 </p>
302 </td></tr></table>
303
304 <table cellpadding="20"><tr><td valign="top">
305 <h3><a name="tag-B4">Observing another ICS game in a second window</a></h3>
306 <p>
307 The main window is rather complex, not so much because of its layout and the type of widgets it contains,
308 but because the widgets have all kinds of activity on clicking.
309 In particular there are the pull-down menus of the menu bar, 
310 and various pop-up context menus on clicking the board (piece menu, drop menu).
311 The generic dialog creator already contained code to generate menus, though, for ComboBox options,
312 and the control elements for those are nothing but a one-menu menu bar, with a text-string written in front of it.
313 This code was easy to re-use to do the main menu bar, as well as for creating pop-up menus.
314 A new level of organization makes it possible to 'box' the menu buttons (or other controls) into a menu bar
315 (which is also used for the button bar).
316 </p><p>
317 The fact that the board can now be handled by XBoard's generic popup made it easy to add a second board window.
318 So with the ICS options 'Background Observe' and 'Dual Board' both on,
319 a game you are observing next to the game you are playing will now be displayed in a separate window,
320 rather than side-by-side with your own game in a single, double-width window.
321 The new window also contains its own clock and message field.
322 (But no menus or button bar, and it will also not react to any clicking on it.)
323 </p>
324 </td><td valign="top">
325 <img src="DualPopup.png">
326 </td></tr></table>
327
328 <table cellpadding="20"><tr><td valign="top">
329 <img src="NewBrowser.png">
330 </td><td valign="top">
331 <h3><a name="tag-B5">The file browser rewritten</a></h3>
332 <p>
333 XBoard so far relied on a file browser borrowed from GhostView, 
334 which was of a bit peculiar design,
335 while the adaptations made in it to interface it to XBoard had made it a bit flaky.
336 The file browser therefore has been completely rewritten,
337 using XBoard's generic dialog generator, and its newly supported list boxes.
338 The new design has two (scrollable) list-boxes, one for the folders and the other for the files in the current directory.
339 It also has a combobox to select the type of file we are browsing for.
340 By this we can filter on the usual extensions for the various file types,
341 such as .pgn for games, and .fen for positions.
342 </p><p>
343 Double-clicking on entries in the folder list enables you to navigate through the file system.
344 Double-clicking on an entry in the file list will select the file.
345 Depending on if you were browsing for actually accessing it
346 (e.g from the Load Game menu)
347 or just to get the name
348 (as with the Browse buttons of another dialog),
349 this will open the file, or put the name in the text-edit you were browsing for.
350 </p><p>
351 Of course you can still type the filename by hand
352 (if you need a non-existing file, for saving on).
353 In that case the the browser can still be helpful,
354 because it prepends the path name of the currently selected folder to the filename you type.
355 When browsing for a path, that is the only thing it will copy to the text-edit.
356 </p>
357 </td></tr></table>
358
359 <h3><a name="tag-B8">Copying pieces when editing a position</a></h3>
360 <p>
361 In Edit Position mode it has always been possible to move pieces from any square to any other square.
362 New is that you can now also do this while keeping the Ctrl key pressed.
363 This then moves the piece withot removing it from the original square,
364 i.e. it becomes a 'copy' rather than a 'move' operation.
365 This can be helpful for setting up a Pawn chain.
366 </p>
367
368 <table cellpadding="20"><tr><td valign="top">
369 <h3><a name="tag-A6">Analysis with two engines at once</a></h3>
370 <p>
371 In Analysis mode, XBoard can now run two engines at once.
372 Like when playing engines against each other, the Engine-Output window will then be split into two panes,
373 and the output of the second engine will appear in the lower pane.
374 Both engines will analyze the same position,
375 following the game as the user browses through it by means of the stepping buttons,
376 or by entering moves.
377 They will also exclude the same moves from the analysis, so only the upper pane
378 will have a move-exclusion header line.
379 Each pane will have its own Multi-PV header line, however,
380 (if the corresponding engine supports multi-PV),
381 so that you can independently set the number of PVs coughed up by each engine.
382 </p>
383 <p>
384 Normally analysis will start with only a single active engine, the first.
385 Clicking the "Analysis Mode" menu item when already analyzing,
386 this will toggle the second engine on and off.
387 Of course the second engine will be switched off as soon as you leave analysis mode, just like the first.
388 </p>
389 </td><td valign="top">
390 <img src="DuoAnalysis.png">
391 </td></tr></table>
392
393 <h3><a name="tag-A7">Batch analysis of a PGN file</a></h3>
394 <p>
395 The Analyze Game menu item has acquired some new functionality.
396 Used when a game is already loaded, it will start to auto-play the game,
397 starting at the current position,
398 and annotate it with scores and engine variations, like always.
399 When reaching the end of the game, auto-play will stop,
400 but the game stays loaded for you to add more comments,
401 and save it by hand to a file of your choice.
402 </p><p>
403 But when you load a new game from a multi-game file 
404 (by selecting it from the Game List)
405 while Analyze Game mode is already switched on,
406 (or when the "Step through opening lines / positions" in the Tournament dialog has been selected),
407 auto-play will no longer stop at the end of a game!
408 In stead, it will automatically load the next game from the file,
409 (forcing a save of the just annotated one, if you have set auto-save mode properly),
410 and start auto-playing / analysing / annotating that.
411 This will continue untill all games in the file have been treated,
412 or you switch XBoard out of Analyze File mode by hand.
413 </p>
414
415 <h3><a name="tag-A8">Starting WinBoard by dropping files on it</a></h3>
416 <table cellpadding="20"><tr><td valign="top">
417 <img src="DragDrop.jpg">
418 </td><td valign="top">
419 <p>
420 In Windows and on Mac the OS will issue a command to start an application with that document.
421 Up to now, WinBoard would always assume such a file was a game file, however, leading to error messages if it wasn't.
422 This because the OS is not smart enough to know which command-line arguments to use to tell WinBoard what kind of file it is.
423 Using the WinBoard installer would make the proper associations in the systems registry to load the files with WinBoard
424 in the proper way, so that you can even just double click them.
425 But for 'portable versions', it would be difficult to make such associations
426 using the standard system menus "Open with" and "Always open this type of file with this application",
427 because you could not specify a detailed command line for the "open" operation.
428 </p>
429 </td></tr></table>
430 <p>
431 This has now been solved by making WinBoard pay attention to the filename extension.
432 When requested to perform an unspecified action on a file,
433 WinBoard (and XBoard, but this is in general less useful) will examine the extension.
434 Then for .fen or .epd it opens it as position file in viewer mode, and .trn as tourney file, to play the tourney.
435 A .ini or .xop file, specifying settings as a list of command-line options they contain,
436 will start WinBoard as if these options were typed on the command line (i.e. treat it as an indirection @file).
437 This means you can now start WinBoard in any pre-configured mode, by simply dragging an .xop file on top of it
438 (or double-clicking it once you made the association, as if they were shortcuts!).
439 Files with unrecognized extensions are still treated as game files, opening WinBoard in viewer mode
440 (if their name does not correspond to that of an installed ICS, see below).
441 </p>
442
443 <h3><a name="tag-A9">Start installed engines or ICS from the command line</a></h3>
444 <p>
445 WinBoard has a startup dialog where the user can select the engine or ICS he wants to use from a drop-down menu.
446 Through this menu he can select a command line that does not only specify the engine (or ICS),
447 but also all options that have to go with it.
448 (Like whether the ICS should use timeseal or timestamp, or the engine is for a variant or should use the GUI book, etc.)
449 In XBoard there was no such convenience, and you had not only to specify the engine (through the -fcp option) or ICS (through -icshost),
450 but also type all options it needed, (e.g. -icshelper timeseal), and even that it should run in ICS mode in the first place (-ics).
451 </p><p>
452 A few new options now have been added to cure this.
453 With -fe ENGINE or -se ENGINE you can now recall an 'engine profile' as was defined earlier through the Load Engine dialog,
454 accessing the engine by its nickname (i.e. the possibly shortened name under which it appears
455 in the list of engines from which you can select in the Load Engine or Tournament/Match Options dialog).
456 This then not only defines the corresponding -fcp or -scp argument, but also all option settings that were defined with it.
457 (Like whether the engine was UCI, needed to use book, plays only a certain variant,
458 or whatever you added by hand through editing the -firstChessProgramNames option in the ~/.xboardrc user settings file.)
459 A similar option -is ICSNAME works for selecting an ICS from the -icsNames option,
460 which can only be manipulated by editing the user settings file,
461 but is preconfigured to contain the the nicknames 'fics' and 'icc' for freechess.org and chessclub.com,
462 which likely is all you will ever need.
463 So "xboard -is fics" can now be used to connect to FICS with timeseal.
464 </p><p>
465 This can even abbreviated further:
466 When XBoard encounters an argument not preceded by an option name,
467 it normally assumes it is a game file, imagining the -lgf option for it.
468 But an exception is now made for names that correspond to the (nick)name of an ICS.
469 This would imply the -is option.
470 So you can connectto FICS by simply typing "xboard fics".
471 </p>
472
473 <h3><a name="tag-A15">Pieces from external bitmap files</a></h3>
474 <table cellpadding="20"><tr><td valign="top">
475 <p>
476 WinBoard supports user-supplied pieces through piece fonts, which are scalable to any board size.
477 In addition it is now possible to load bitmaps from an external file.
478 Because bitmaps are not scalable, this needs a separate set for each square size.
479 Like the built-in piece bitmaps, it furthermore needs three bitmaps per piece type:
480 outline (o) for the white pieces, solid (s) for the black pieces, and a mask (w) to indicate the interior.
481 A difference with the built-ins is that the solid and outline bitmaps can be in full color.
482 By specifying the folder containing the complete set of bitmaps with the -pieceImageDirectory option,
483 WinBoard can be made to use them.
484 Piece bitmaps in this format are available in the Alex Guerrero's WinBoard-Zeta distribution.
485 Missing bitmaps will automatically be replaced by built-ins.
486 </p>
487 <h3><a name="tag-A10">Border around the board</a></h3>
488 <p>
489 The option -useBorder true|false can be used to switch a half-square-wide border around the board,
490 filled in from an external bitmap specified with the -border option.
491 Specifying a non-existing file will produce a border in the -whitePieceColor.
492 When a border is specified, the board coordinates will be drawn in that region.
493 </p>
494 </td><td valign="top">
495 <img src="Border.png">
496 <br>
497 <i>Using WinBoard Zeta's Maya pieces and Wood_2 border</i>
498 </td></tr></table>
499
500 <table cellpadding="20"><tr><td valign="top">
501 <img src="Themes.png">
502 </td><td valign="top">
503 <h3><a name="tag-A11">Themes</a></h3>
504 <p>
505 WinBoard now allows combinations of graphics settings to be stored and recalled as 'themes'.
506 A new menu dialog View -> Themes is added to control the settings for board and pieces
507 that are new, or could not be controlled by the View->Board dialog.
508 It also contains a 'Theme name' field, and by typing a name there,
509 the current graphics settings will be added as a theme with that name in the theme list,
510 displayed in the listbox on the left.
511 The settings can then be recalled at any time by double-clicking the theme name in that listbox.
512 </p><p>
513 The themes are stored as the -themeNames option in the settings file.
514 This is a multi-line option similar to the list of engines or ICS,
515 one line per theme, starting with the theme name,
516 and containing all option settings for that theme.
517 Only relevant options are included with the theme;
518 e.g. when the theme uses board textures, there is no need to store square colors.
519 </p>
520 </td></tr></table>
521
522 <h3><a name="tag-A12">Creating an opening book from a PGN file</a></h3>
523 <p>
524 It is now possible to 'compile' an opening book (in Polyglot format) from one or more game files.
525 A new menu item File -> Create Opening Book will add the positions (upto the given -bookDepth) of all games in the file
526 to a memory buffer.
527 After all games have been added, the buffer is saved as a Polyglot book of the name specified for GUI book.
528 The buffer is not cleared afterwards,
529 so this process could be repeated a number of times,
530 to accumulate the positions from several game files.
531 The importance of this feature is that it also works in any of the variants;
532 for Chess there already existed other oftware that could do this.
533 </p>
534
535 <h3><a name="tag-A13">Analyzing a position by playing many fast games</a></h3>
536 <p>
537 Another way to create or refine a book is by 'Monte-Carlo' game play.
538 With the option -mcBookMode the book-probing algorithm is altered:
539 probing is not done from a book file, but from the memory buffer that is used to create a book.
540 Games that are played are added to this memory buffer as soon as they finish.
541 Probing is done in a way to promote diversity,
542 although moves that on average produce better results are chosen much more frequently than moves with a poor performance record.
543 When the moves are played in the ratio they deserve, a book miss is reported, so that the choice is left to the engine.
544 This can then also provide moves that were so far not in the book.
545 By playing matches with randomizing engines,
546 or tourneys with many different, approximately equally strong engines in this mode,
547 a book can be built from scratch.
548 Of course these match and tourneys could use an arbitrary starting position.
549 After having collected enough games, a Polyglot book can be made from the resulting PGN file.
550 </p>
551
552 <h3><a name="tag-A14">Pausing a game</a></h3>
553 <p>
554 The Pause (P) button in the button bar, as well as 'Pause' menu item,
555 now also function when the engine is thinking.
556 The pause / resume commands defined in WB protocol will be used to suspend all activity of the engine
557 (be it thinking or pondering),
558 for engines that support those commands.
559 If the currently thinking engine doesn't support them,
560 the effect of pressing Pause will only commence once the engine moves.
561 The pondering engine will be suspended with the aid of easy / hard commands if it does not support pause / resume.
562 </p>
563
564 <h3><a name="tag-C0">Resizable board with anti-aliased pieces</a></h3>
565 <table cellpadding="20"><tr><td valign="top">
566 <img src="Transpa.png">
567 </td><td valign="top">
568 <p>
569 The graphics code of XBoard now has been re-written to us the Cairo graphics library.
570 Apart from being a huge cosmetic improvement, this change will affect the user in several ways.
571 For one, pixmaps (.xpm) and bitmaps (.bm) are no longer supported as formats for user-supplied piece images.
572 As a consequence the options -bitmapDirectory and -pixmapDirectory have been abolished.
573 The new XBoard supports two image formats: *.png and *.svg.
574 The user can specify a piece set of either format through the new option -pieceImageDirectory (short form: -pid).
575 The naming convention of the piece images has also been changed,
576 and the image files must now have names like WhiteBishop.png or BlackKnight.svg.
577 </p>
578 </td></tr></table>
579 <p>
580 The SVG images are scalable, and this has opened the possibility to allow continuous resizing of the board window.
581 The Cairo library provides good anti-aliasing, and even PNG graphics can be resized to a certain degree before it starts to look ugly.
582 Note that the new XBoard no longer contains built-in piece images in its binary,
583 but relies on a default set of external piece images (stored with its data files) even when you don't specify a -pieceImageDirectory.
584 </p><p>
585 The Cairo library also supports transparency, and the background of the supplied piece images has to be fully transparent.
586 XBoard also uses trasparency when dragging pieces for entering moves to exclude from analysis;
587 in this case the 'ghost' of the piece that you are dragging will be redered semi-transparently.
588 </p>
589
590 <h3><a name="tag-C1">An experimental GTK port of XBoard</a></h3>
591 <p>
592 The new source code can optionally be built using the GTK widget set in stead of the (by now very obsolete) Athena widget set.
593 A simple switch option during configure can be used to request this.
594 The only difference should be that the dialogs <a href="http://hgm.nubati.net/gtk/index.html">look prettier</a>.
595 Note that the GTK build is still in an experimental stage,
596 and could contain many bugs and imperfections, including some things that are simply not implemented yet (such as key bindings).
597 This holds even for GTK builds made from versions for which the Xaw build is declared stable.
598 </p>
599
600 <h3><a name="tag-B0">Fixed bugs</a></h3>
601 <p>
602 Some bugs were encountered and reported during the refactoring process,
603 and they were corrected on the spot.
604 In due time the fixes will find their way into the 4.6.x branch.
605 We can mention:
606
607 <ul>
608   <li>
609     When, during install of a new engine, XBoard split the path name into directory + engine command,
610     it forgot to prefix the latter with './', so it would refuse to execute.
611   </li><li>
612     When replacing an engine while not at the end of a game,
613     the engine would be positioned at the end of the game, rather than on the current position.
614   </li><li>
615     Crazyhouse was played like Loop Chess when legality testing is off.
616   </li><li>
617     Attempting to load a non-existing engine makes XBoard switch to -ncp mode,
618     but this did require a bit of patience, as XBoard would still wait out the feature time-out of the engine load procedure.
619   </li><li>
620     Dragging the main window when the option -stickWindows was on could make xboard's clocks stop.
621   </li><li>
622     A work-around was implmented for the FICS bug that it does not understand proper SAN notation for moves like Bxc6 and bxc6.
623     This bug was interfering with XBoard 'Upload to Examine' function, which uploads in SAN.
624   </li><li>
625     The validity of tourney participants is now checked before you can OK the Tournament / Match Options dialog,
626     as they could have been invalidated by hand editing, which led to very pathologic effects during the tourney.
627   </li>
628 </ul>
629
630 Some bugs disovered through scrutinous testing to insure the refactored code was still working as the original one,
631 but not yet solved:
632
633 <ul>
634   <li>
635     Marking target squares and the highlight arrow interfere with animate dragging,
636     when the dragged piece oveshoots its target square so that it partly covers a marking dot
637     or arrow of a previous move. These are then not erased when the piece is released.
638   </li><li>
639     Iconizing the board still seems to sometimes stop the clocks.
640   </li>
641 </ul>
642
643 </p>
644
645 </div><!-- for id="content", starts in the include above -->
646 <!--#include virtual="/server/footer.html" -->
647 <div id="footer">
648
649 <p>Please send general FSF &amp; GNU inquiries to
650 <a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.
651 There are also <a href="/contact/">other ways to contact</a>
652 the FSF.<br />
653 Please send broken links and other corrections or suggestions to
654 <a href="mailto:bug-xboard@gnu.org">&lt;bug-xboard@gnu.org&gt;</a>.</p>
655
656 <p>Please see the <a
657 href="/server/standards/README.translations.html">Translations
658 README</a> for information on coordinating and submitting translations
659 of this article.</p>
660
661 <p>Copyright &copy; 2009, 2010, 2011, 2012 Free Software Foundation, Inc.</p>
662
663 <p>This page is licensed under a <a rel="license"
664 href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative
665 Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
666
667 <p>Updated:
668 <!-- timestamp start -->
669 $Date: 2013/02/21 06:27:14 $
670 <!-- timestamp end -->
671 </p>
672 </div>
673 </div>
674 </body>
675 </html>