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