502a8713a588bd9aed452ae1653150a54cd97ffe
[xboard.git] / whats_new / 4.8.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.8.0?</h2>
8 <table cellpadding="20"><tr valign="top"><td>
9
10 <a href="#tag-A"><h4>New features in this release</h4></a>
11 <ul><li>
12 <a href="#tag-A5">Resuming saved unfinished games</a>
13 </li><li>
14 <a href="#tag-A6">Setting up positions more easily</a>
15 </li><li>
16 <a href="#tag-A7">Bitbase adjudication</a>
17 </li><li>
18 <a href="#tag-A8">Showing tablebase hits</a>
19 </li><li>
20 <a href="#tag-A9">A new ICS window</a>
21 </li><li>
22 <a href="#tag-A10">Recalling board themes (XB)</a>
23 </li><li>
24 <a href="#tag-A11">Playing moves by clicking them</a>
25 </li><li>
26 <a href="#tag-A12">Fonts in the XBoard GTK build</a>
27 </li><li>
28 <a href="#tag-A13">Using the mousewheel (XB)</a>
29 </li><li>
30 <a href="#tag-A15">Displaying a blunder graph</a>
31 </li><li>
32 <a href="#tag-A14">Slicing up a PGN database</a>
33 </li><li>
34 <a href="#tag-A16">Auto-install of engines</a>
35 </li></ul>
36
37 </td><td>
38
39 <a href="#tag-B"><h4>New variant support</h4></a>
40 <ul><li>
41 <a href="#tag-B1">ASEAN Chess</a>
42 </li><li>
43 <a href="#tag-B2">Chu Shogi</a>
44 </li><li>
45 <a href="#tag-B3">Mighty Lion</a>
46 </li><li>
47 <a href="#tag-A2">Highlighting squares on engine command</a>
48 </li><li>
49 <a href="#tag-A3">Let the engine finish a user move</a>
50 </li><li>
51 <a href="#tag-A4">Non-standard variant names</a>
52 </li><li>
53 <a href="#tag-B4">Fischer castling in any variant</a>
54 </li><li>
55 <a href="#tag-B5">Knowing the moves of unknown pieces</a>
56
57 </li></ul>
58
59 </td><td>
60
61 <img src="../4.5.0/winboardF.png">
62   <p>
63     <a href="../4.8.0/index.html">Follow-up</a>
64   </p>
65   <p>
66     <a href="../4.7.0/index.html">Preceding release (4.7.0)</a>
67   </p>
68   <p>
69     <a href="http://hgm.nubati.net/news.html">Experimental and future stuff</a>
70   </p>
71 </td></tr></table>
72
73 <table cellpadding="20"><tr><td valign="top">
74 <img src="XboardOSX2.png">
75 </td><td valign="top">
76 <h2>A stable GTK build and an OS X version</h2>
77 <p>
78 With XBoard 4.8.0 the GTK build can be considered as stable as the Xaw build.
79 In some areas it might not be perfect yet in all areas,
80 but in other areas, such as the ICS Interaction window,
81 it is already developed beyond the Xaw version,
82 and the GTK build is in general superior to the obsolete Xaw interface.
83 </p><p>
84 The GTK build can also be interfaced with OS X through the GtkOsx library.
85 So OS X is now amongst the officially supported platforms,
86 and a special configure option is available to build XBoard as OS X App.
87 </p>
88 </td></tr></table>
89
90 <a name="tag-A"><h2>The following features are new in XBoard 4.8.0:</h2></a>
91
92 <h3><a name="tag-A5">Saving the clock settings with the game</a></h3>
93 <p>
94 When a (local, i.e. non-ICS) game still in progress is interrupted and saved,
95 e.g. because you use the 'Abort' menu item, or close XBoard,
96 it now saves the clock settings of white and black in the result comment.
97 When you load an unfinished game with such saved times in it,
98 it automatically restores the clocks to the values that were saved.
99 This makes it easier to resume such a game.
100 </p>
101
102 <table cellpadding="20"><tr><td valign="top">
103 <h3><a name="tag-A6">Setting up positions</a></h3>
104 <p>
105 In Edit Position mode the board can be cleared by clicking on the clock, or through a piece-menu item.
106 Upto now this irreversibly destroyed whatever position existed before.
107 This has now been changed:
108 by repeatedly issuing the clear command, the position can be made to cycle through the states
109 old position, empty board, 'piece palette', initial position, old position, etc.
110 This makes it possible to recover from an accidental clear command.
111 </p><p>
112 The 'piece palette' position has each back-rank piece occurring exactly once,
113 removing all duplicates from the initial position.
114 So for orthodox Chess only the pieces on a1-e1 and a8-e8 stay.
115 The idea is that this is a much more convenient starting point for setting up arbitrary poitions than an empty board:
116 the pieces that were left can be used as a kind of tool bar from wich you can draw the pieces you need,
117 to put them in the desired place.
118 Pieces that you don't need can be dragged off board to get rid of them,
119 pieces you only need once can be simply moved to the desired location,
120 and pieces you need twice can be duplicated by moving them with the Ctrl key pressed.
121 Pawns, finally, can be created by static right- or middle-clicks on the squares were you want them
122 (pressing Shift to swap the colors for those who do not have a middle mouse button, as usual).
123 The 'piece pallette' thus is an especially convenient starting point for setting up positions with an intermediate number of pieces,
124 where you would have to 'create' too many pieces when starting from an empty board,
125 and remove too many when starting from the initial position.
126 </p>
127 <p>
128 Clicking an already selected piece a second time in Edit Position mode used to make it disappear.
129 This was more an annoyance than a feature, as it often happened by accident,
130 and it then required multiple mouse clicks to get the piece back.
131 There are plenty of other ways to remove a piece, like drawing it off board,
132 or moving an empty square on top of it.
133 So the second click on a piece is now used as a signal to promote or demote it,
134 which is very useful in Shogi-like variants, where all pieces can promote,
135 but the promoted versions are usually not present in the 'palette',
136 as the latter is derived from the opening position.
137 </p>
138 </td><td valign="top">
139 <img src="PiecePalette.png">
140 </td></tr></table>
141
142 <h3><a name="tag-A7">Quickly finishing dead-drawn games</a></h3>
143 <p>
144 In the late end-game (with 5 or fewer men on the board) of orthodox Chess
145 there are nowadays tables available that show whether the game can be won against best defense (bitbases),
146 and sometimes even how (tablebases).
147 Engines that use tablebases can play instantly in such won or lost positions,
148 as they can just play the best move indicated in the tablebase without any further search.
149 When they get into a position that is a theoretical draw, however, they might still think as long as always.
150 The tablebase does not make any distinction between draws that are 'nearly won' and those that are 'nearly lost',
151 so that just playing one of the moves listed as draw will quickly blunder away
152 any chances the engine might have had to win against imperfect defense.
153 E.g. in a KBPPKB draw with unlike Bishops, the tablebase would not tell the engine that sacrificing BPP on the first 3 moves is not a good idea.
154 So it is important to give the engine some time to select the reasonable drawing move and reject pointless sacrifices,
155 in order to keep a fallible opponent under pressure.
156 <p></p>
157 Very deep searches are hardly helpful, however, as the tablebase already guarantees us there is nothing to find.
158 Just not blundering away material, and striving for good mobility, centralization and advancing of passers,
159 while hoping for an opponent blunder
160 (which the tablebase will then of course immediately recognize as a win)
161 is usually sufficient.
162 It is especially very annoying when two engines, both using tablebases,
163 so that you know they can never blunder away the draw,
164 don't want to agree to the inevitable draw (because of their contempt setting),
165 but go on for 50 moves (or several times 50 moves, when they can drag it out with Pawn moves)
166 in a futile attempt to swindle their opponent
167 <p></p>
168 XBoard now has an option to avoid this,
169 without corrupting test results for engines that do not use tablebases
170 by awarding them wins they would never be able to find themselves,
171 (just because XBoard's tablebase says they are wins),
172 or awarding them draws that they would not be able to hold on their own.
173 This new option <b>-first/secondDrawDepth N</b> can be installed with engines that use tablebases,
174 to limit their search depth to the given N, and thus speed up their play to near instancy (e.g. with N=3).
175 This should not hurt them, as their use of tablebases guarantees they will never lose the draw,
176 and never miss a win after an opponent blunder.
177 When two such engines, both installed with the option, reach a drawn position,
178 the game will end almost instantly, by playing as many moves as needed to reach a 50-move or repetion draw.
179 If only one of the engines uses tablebases and is installed with the option,
180 that engine would play instantly the drawing move that is best according to its 'intuition',
181 but the other engine would be forced to prove its worth,
182 by showing it can find the moves to secure the draw.
183 And when the latter engine is in a won position, the option would be ineffective,
184 but the tablebase user should be able to instantly play the best defense anyway,
185 letting its opponent show he is able to win against that.
186 <p></p>
187 To allow the option to work, XBoard can now interface to Scorpio bitbases.
188 To this end it must know the path to the bitbase files,
189 defined as "scorpio:PATHNAME" as (comma-separated) element in the -egtFormats option.
190 In WinBoard this option can be set through the "Nalimov path" textedit in the Common Engine Options dialog
191 (and will be distingushed from a true Nalimov path by the "scorpio:" prefix).
192 When the list of -egtFormats includes a "scorpio" specification,
193 the DrawDepth options will cause them to be probed when there are 5 or fewer orthodox Chess men on an 8x8 board,
194 and an 'sd N' command will be sent to the corresponding engine just before it receives a move,
195 in order to retrict its search depth.
196 </p>
197
198 <h3><a name="tag-A8">Showing or hiding engine output</a></h3>
199 <p>
200 XBoard used to preceed the PVs printed by the engines always with 4 colums:
201 search depth, score, time and number of nodes searched.
202 The protocol specs have now been extended to allow engines to also send selective depth, speed (knps) and tablebase hits,
203 and for engines that send those, there can now be 7 columns of numeric data before the PV in the Engine Output window.
204 (And because the latest Polyglot implements this protocol extension, this will include all UCI engines!)
205 </p>
206 <table cellpadding="20"><tr><td valign="top">
207 <img src="TBhits.png">
208 </td><td valign="top">
209 <p>
210 It can be annoying to have so many columns eating away space for the PV, however.
211 Especially with data you might not want to see, or the engine might not even print.
212 So and option -memoHeaders has been added with which you can print headers above the columns.
213 Right-clicking these headers can then show or hide the corresponding column.
214 Only the depth and PV will always be displayed.
215 </p>
216 </td></tr></table>
217
218 <h3><a name="tag-A9">Combining ICS output, Input Box and Chat Window in the GTK version</a></h3>
219 <p>
220 XBoard always printed the communication with the ICS in the terminal from which it was launched.
221 This x-terminal allowed colorization of the ICS messages by kind,
222 something that was not possible in the Athena widgets of XBoard's own dialogs.
223 In GTK it is possible to color text line by line in a text edit, though.
224 So XBoard now also displays this text in a dialog of its own.
225 Once this feature is fully developed, the x-terminal will be abandoned.
226 </p>
227 <p>
228 The solution that has been chosen combines the ICS Input Box,
229 the Chat Window and the new ICS Output widget into a single window.
230 Normally this will contain a large output pane to display the (colorized) ICS output,
231 with an input field (the old ICS Input Box) below it.
232 Anything you type there will then be sent to the ICS.
233 There is a row of buttons at the top of the window, however,
234 which you can use to open a Chat.
235 Pressing them divides the window into two panes,
236 the ICS output going to the upper one, while the lower one will be dedicated to one particular chat.
237 The Chat Partner can then be entered above the chat pane (a player name, channel number or message type),
238 after which all messages from that source will be diverted to that pane.
239 The Input field at the bottom of the window will be sent as a message to the designated Chat partner
240 (prefixed with the appropriate tell, xtell or shout command).
241 To give ICS commands again, you will have to hide the Chat pane by pressing the Hide button above it.
242 </p>
243 <p>
244 You can assign five dedicated chat windows this way,
245 navigating between them with the buttons at the top of the window.
246 If there is activity in one of the windows that is not currently displayed,
247 the corresponding button will turn orange.
248 </p>
249 <p>
250 This new ICS Interaction window can be controlled from the keyboard:
251 Typing &lt;Tab> in the input text entry will navigate between busy chats
252 (opening the chat pane if necessary)
253 starting with those that have been active since you last saw them.
254 Typing &lt;Esc> wil hide the chat pane, so you can start entering ICS commands.
255 If the chat pane was already closed, it will transfer focus to the board window,
256 so you can exercise menu functions by typing accelerator keystrokes.
257 Typing printable characters when the board has focus will automatically
258 transfer that focus to the input field of the ICS window again,
259 making it pop up if necessary.
260 (The latter can be controlled by the option -autoBox true|false.)
261 Typing Ctrl-N will navigate to an idle chat (or chat nr 5 if there is none),
262 giving focus to the 'Chat partner' entry so you can assign it.
263 Typing Ctrl-O will similarly navigate to an idle chat,
264 automatically assigning it to the origin of the latest message you received in the ICS pane,
265 allowing you to easily answer it.
266 </p>
267 <p>
268 The ICS pane has a context menu similar to WinBoard's:
269 when you right-click a word in it, the ICS Text Menu dialog pops up under your mouse,
270 and you can select commands from it that would automatically incorporate the clicked word.
271 Such as challenching a person, opening a chat for a person, channel or shouts.
272 Note that the ICS Text Menu is user-configurable through the -icsMenu option
273 in your ~/.xboardrc file.
274 </p>
275 <p>
276 The general handling of chats has also been improved a bit:
277 broadcasts by a person will also appear in a private chat you have open for that person,
278 clearly marked as broadcasts.
279 That will not suppress the appearance of the broadcast in the chat
280 you have open for that channel, or the ICS pane.
281 </p>
282
283 <table cellpadding="20"><tr><td valign="top">
284 <img src="NewChat.png">
285 </td><td valign="top">
286 <img src="NewICS.png">
287 </td></tr></table>
288
289 <h3><a name="tag-A10">Storing board settings, and recalling them with a mouse click</a></h3>
290 <p>
291 The View->Board dialog of XBoard allowed the user to interactively set piece and square colors,
292 define board textures or alternative piece images, and other graphical board roperties.
293 But if many settings had to be changed in order to, say,
294 change from a theme suitable for Chess to one for Xiangqi,
295 the user had to do that for each of them separately.
296 In WinBoard an entire set of properties defining the board look could be saved as 'theme'.
297 XBoard now also has that feature.
298 The themes are saved in the settings file as a persistent multi-line option -themeNames,
299 and will be displayed in a listbox that has been added to the View->Board dialog.
300 The user just has to click a theme name there to recall all settings defining that theme.
301 New themes can be created by defining a name for it in a textedit under this listbox,
302 and OK-ing the dialog when such a name has been entered saves the currently specified board look as this theme,
303 so that it can be recalled from the listbox later.
304 </p>
305
306 <img src="ThemesXB.png">
307
308 <h3><a name="tag-A11">Playing moves by clicking them in a text window</a></h3>
309 <p>
310 XBoard already supported the possibility to play moves from the Engine Output window
311 in analysis mode, by right-clicking on the PV they were part of.
312 This was integrated with the possibility to walk through the PV
313 by moving the mouse with the right button kept down,
314 using the main board as a 'variation board'.
315 This way you could even play a number of moves of the PV.
316 The PV-walk in analysis mode started at the position after the first move of it,
317 so that a static click would play that move.
318 If you would move to another position along the PV before releasing the button,
319 then all moves upto that position would be played,
320 and analysis would continue there.
321 </p>
322 <p>
323 This could be a bit confusing for people that often wanted to walk through alternate PVs.
324 (To walk the latest PV you can right-click the board, which never plays a move.)
325 They would have to make sure to return to the start of the PV before releasing the button,
326 in order not to play unwanted moves.
327 Therefore the 'auto-extend' option could be used to disable this feature.
328 This control over when to add moves as a result of PV clicking has now been improved:
329 In WinBoard the auto-extend option can be set interactively from the General Options dialog.
330 Furthermore, playing of move(s) is only ever done when you clicked the first move of the PV
331 (or the data left of it).
332 When you click the remainder of the PV,
333 you can walk it without having to worry whether this will alter the position.
334 </p>
335 <p>
336 The Edit Book window now has a similar feature:
337 right-clicking a move from the displayed list of book moves there
338 will now also cause the move to be performed.
339 It now also has the reverse feature:
340 with a button in this window you can tell XBoard that
341 the next move you are going to play on the board should not really be played,
342 but added to the book (with a default weight of 1).
343 </p>
344
345 <table cellpadding="20"><tr><td valign="top">
346 <h3><a name="tag-A12">Fonts in the GTK build</a></h3>
347 <p>
348 So far the font options were ignored in XBoard's GTK build.
349 Now their number is even expanded:
350 next to the existing -clockFont, -messageFont and -coordFont there are now
351 -icsFont, -tagsFont, -commentFont, -moveHistoryFont and -gameListFont.
352 Font specifications are not compatible between Xaw and GTK;
353 for the latter they have to be described by names like "Sans Normal 10"
354 or "Monospace Bold 8".
355 To let XBoard pick a font size it considers suitable for the board size,
356 use %d in stead of a hard number (like "Sans Italic %d").
357 </p>
358 <p>
359 The icsFont is used in the ICS pane of the ICS console, and should be a mono-spaced font.
360 The moveHistory font is used in the text memos of both Move History and Engine Output dialog,
361 to give you the opportunity to use a figurine font in those
362 for displaying the moves that are printed there.
363 The gameListFont is used in the listbox of the Game List;
364 when you often use large PGN files you might want to have an extra small font there.
365 The messageFont currently only affects the row of widgets directly above the board:
366 the message field where the latest PV is displayed,
367 and the buttons of the button bar to navigate through the game.
368 It must be used to prevent these from dominating the width of the board window
369 at small square sizes.
370 The tagsFont and commentFont similarly affect the text memos in the
371 Edit Tags and Edit Comment dialogs, and are mainly supplied because WinBoard has those too.
372 </p>
373 </td><td valign="top">
374 <img src="FontGTK.png">
375 </td></tr></table>
376
377 <h3><a name="tag-A13">Using the mousewheel to step through the game</a></h3>
378 <p>
379 WinBoard already had this, but in XBoard you can now also use the mousewheel
380 to step through the current game,
381 when the mouse pointer is above the board, irrespective of whether it has focus.
382 (This according to GTK custom; in WinBoard it would work when the board had focus,
383 irrespective of where the mouse was pointing.)
384 </p>
385
386 <table cellpadding="20"><tr><td valign="top">
387 <img src="Blunder.png">
388 </td><td valign="top">
389 <h3><a name="tag-A15">Enhanced funcionality of the Evaluation Graph</a></h3>
390 <p>
391 A new mode of displaying engine analysis of an entire game has been added,
392 the so called blunder graph.
393 In this mode the Evaluation Graph does not display the evaluations itself,
394 but the difference in evaluation on subsequent moves.
395 (This only makes sense when the evaluations come from the same engine,
396 such as after the use of Analyze Game.)
397 This way poor moves, which cause a jump in evaluation, stick out more visibly.
398 </p>
399 </td></tr></table>
400 <p>
401 To toggle between normal evaluation display and blunder graph,
402 you can right-click anywhere in the Eval Graph window.
403 (Left-clicking still brings you to the move you click.)
404 The mouse wheel can now be used on the Eval Graph to zoom the [-1, 1] score range,
405 which formerly would allow only non-interactive control through the -evalZoom
406 command-line option.
407 </p>
408
409 <h3><a name="tag-A14">Selecting from a PGN database</a></h3>
410 <p>
411 There is a new item in the File menu: Save Selected Games.k
412 This will cause all games currently selected for display in the Game List
413 (through applying a text filter, or using the Find Position button)
414 to be appended to a file.
415 The number of pieces in the final position has been added as a search criterion.
416 The 'Save Games as Book' function will now also only take the games
417 selected for display into account.
418 This should offer you more control over what you include in the book.
419 </p>
420
421 <h3><a name="tag-A15">Automatically adding new engines to XBoard's engine list</a></h3>
422 <p>
423 To efficiently use engine, e.g. being able to select them from the Load Engine dialog's listbox,
424 or as tournament participant, the engine had to be first installed in XBoard's engine list.
425 Just installing the engine package on your machine was not enough.
426 This has now been changed, with the aid of a new Linux standard for 'AI plugins'.
427 Engines compliant with this standard will install a tiny file to announce their presence
428 in a system's standard plugin directory for the communication protocol they understand.
429 GUIs that support that protocol can then hunt for new arrivals there,
430 and the file will contain the essential info needed to run the engine.
431 (E.g. the command needed to launch it for use with that protocol.)
432 </p>
433 <p>
434 XBoard now has a persistent string option -autoInstall, which activates this feature when set to a non-empty string.
435 Any time XBoard is launched it will then examine the contents of the plugin directories for XBoard and UCI protocol,
436 and if it finds any engines there newer than the the persistent settings file
437 (meaning this user sees them for the first time)
438 it will add the required command to its engine list.
439 In the future the standard will be further developed so the plugin files will also contain information
440 on what variants the engine plays,
441 so that the user can filter these automatic installs by the value set for the -autoInstall option.
442 E.g. -autoInstall "shogi,xiangqi" would only automatically install new engines that play Shogi or Xiangqi,
443 and ignore engines that play only Chess.
444 </p>
445 <p>
446 XBoard also supports a new standard for engine logos:
447 engine packages can install a png image derived from their name (e.g. fairymax.png)
448 of their logo in a standard plugin-logos system directory.
449 XBoard's -autoLogo option now also searches for engine logos in those standard places,
450 after having tried the configured -logoDir and the directory specified for the engine
451 (with -fd or -sd options; it searches for a file named logo.pgn there).
452 For user logos it will also try ~/.logo.png.
453 </p>
454
455 <a name="tag-B"><h2>New variants and general variant support</h2></a>
456
457 <h3><a name="tag-B1">ASEAN Chess: a new Chess variant</a></h3>
458 <p>
459 ASEAN Chess is a synthesis of Makruk and other South-East Asean Chess variants.
460 It is very similar to Makruk, the main difference being that the count rules are simpler
461 (but WinBoard did not implement these anyway),
462 and that promotion is only on last rank.
463 This is now added as a new supported variant to XBoard.
464 </p>
465
466 <h3><a name="tag-B2">Chu Shogi</a></h3>
467
468 <p>
469 Chu shogi is an ancient form of Japanese Chess on a 12x12 board, which was already documented in the year 1250.
470 It has been the dominant form of Chess in Japan for many centuries, and is still quite popular,
471 although it has been overtaken in popularity by the 9x9 game with piece drops in recent times.
472 As there are no piece drops in Chu Shogi, it has a much more Chess-like feel than the modern game.
473 </p>
474 <table cellpadding="20"><tr><td valign="top">
475 <p>
476 Like other large Shogi variants, Chu Shogi is characterized by a very large number of piece types.
477 Not only are there 46 pieces (12 of them Pawns) of 21 different types in the initial setup,
478 but almost all pieces promote on reaching the last 4 ranks, often to pieces that move differently from all initially present pieces.
479 (And even if they move the same, they are formally still different piece types, as they cannot promote a second time.)
480 To implement a game with so many piece types in XBoard was a challenge,
481 as upto now XBoard supported only 22 piece types (11 'basic' types, asn 11 promoted types).
482 This has now been extended to 44, Chu shogi considering all 22 existing types as 'basic',
483 and adding 22 new 'promoted' types.
484 (Not all of those are needed in Chu shogi, though, so they don't have all been assigned new piece graphics.)
485 A Chess-like representation was chosen, to make it possible to use the existing piece symbols.
486 (The Japanese of course play this game with kanji pieces,
487 which are also available for XBoard in SVG format.)
488 </p>
489 <p>
490 Another issue was the Lion piece, which has a special two-step move,
491 not uniquely characterized by a from- and to-square, but also needing an intermediate square,
492 where it can capture a second piece in an en-passant-like fashion.
493 This required quite some enhancements in XBoard;
494 more about that below.
495 Although XBoard is aware of all the piece moves,
496 it does not implement the more subtle details of the Chu Shogi rules,
497 and has to on the engine (e.g. <a href="HaChu.html">HaChu</a>)
498 for more accurate judging move legality and highlighting target squares.
499 So it is advisable to play this game with legality testing off.
500 </p>
501 </td><td valign="top">
502 <img src="XChu.png">
503 </td></tr></table>
504
505 <table cellpadding="20"><tr><td valign="top">
506 <img src="Mighty.png">
507 </td><td valign="top">
508 <h3><a name="tag-B3">Mighty-Lion and Elven Chess</a></h3>
509
510 <p>
511 To make the Chu-Shogi Lion a bit more accessible to Chess players,
512 a newly designed variant 'Mighty-Lion Chess' was added to XBoard.
513 This uses the Lion as the only unorthodox piece added to the FIDE game,
514 so that it is possible to enjoy an introduction to this piece without having to learn about the plethora of new pieces in Chu Shogi.
515 In this variant the Knights on the Queen side are simply replaced by Lions.
516 </p>
517 <p>
518 The simplest way to view the Lion is as a piece that moves as a King, but then twice per turn,
519 freely changing direction between steps.
520 And if such a two-step path would be blocked, it can jump to the final square directly.
521 This way it has 24 unblockable moves.
522 It can capture something in each of its steps, so upto two pieces per turn:
523 one in the conventional way, but the other by passing through it, leaving the square empty.
524 It could, however, also elect to make only a single step.
525 XBoard highlights the squares from which a continuation step would be possible in cyan, when you pick up the Lion.
526 (It is essential that the option 'Show Target Squares' is on in this game.)
527 If you put down the Lion on such a cyan square, XBoard will not consider that the final destination,
528 but remembers it as a square the Lion should pass through,
529 and highlights the squares you can reach with the second step.
530 Clicking on one of those (which might include the clicked cyan square) then finishes the move.
531 </p>
532 <p>
533 Like in Chu Shogi there are rules against trading the Lions
534 (to prevent you would quickly be left with a game of normal Chess).
535 Basically they forbid two Lions to be captured in consecutive half-moves:
536 a Lion cannot capture a Lion if recapture is possible,
537 and when a non-Lion captures a Lion the opponent Lion is invulnerable ('iron') on the next half-move.
538 That makes trading the Lions away a very uncommon occurence.
539 </p>
540 <p>
541 For those that want even more excitement:
542 the same Lion piece also features in the newly added Elven Chess,
543 next to three other new pieces on a 10x10 board.
544 </p>
545 </td></tr></table>
546
547 <h3><a name="tag-A2">Colored board markers applied by the engine</a></h3>
548 With the option 'Show Target Squares', XBoard can be made to mark board squares where the 'lifted' piece can move to
549 by fat yellow (non-captures) or red (captures) dots.
550 This obviously can only work when XBoard knows the rules for moving the pieces,
551 i.e. when legality checking is switched on.
552 When the latter is switched off, XBoard cannot know how the pieces move
553 (as the only reason to switch it off would be that pieces do not move as XBoard thinks they should,
554 to prevent move being rejected as illegal),
555 and this feature does not work.
556 </p>
557 <p>
558 There now is the possibility to restore this functionality with the help of an engine.
559 Engines of course always will have to be fully aware of the rules of the game they play
560 (or they would play illegal moves themselves).
561 So they also know where a lifted piece can move to.
562 Problem is that upto now they would not know which piece is lifted,
563 as XBoard only sends them the move after the piece has been put down again.
564 To remedy this, an extension of the communication protocol has been defined.
565 </p>
566 <p>
567 Engines that want to make use of this new feature can inform the GUI of this by sending a new 'feature heighlight=1' at startup.
568 The GUI will then inform them any time the user grabs a piece for dragging (or selects it by a static click),
569 by sending it a 'lift' command with the square coordinates.
570 The engine can reply to this command with a 'highlight' command, which specifies which board squares have to be marked
571 with colored dots, of eight different colors.
572 When the engine does this, the GUI can use the markers to decide if the move the user makes when he puts the piece down is legal,
573 without first sending it to the engine and wait if it is rejected or not:
574 any move that does not land on a marked square will be considered illegal.
575 But the color of the square the piece lands on will be used to trigger special GUI actions.
576 E.g. moving to a purple square will make the GUI assume the move is a promotion,
577 and invoke the promotion popup (or trigger sweep promotion),
578 even when it would otherwise not think so.
579 This way engines can more flexibly implement variants the GUI knows nothing about,
580 by modifing the GUI behavior through the color markers.
581 </p>
582
583 <h3><a name="tag-A3">Let an engine click squares on behalf of the user</a></h3>
584 <p>
585 Another feature helpful in implementing strange variants is the 'click' command an engine can send to the GUI.
586 This command will contain square coordinates, and the GUI should react to it as if the user would have clicked on the mentioned square.
587 The engine can use this in response to the 'lift' command to implement one-click moving,
588 even when the GUI has no idea what the rules for moving pieces are, and thus cannot know it.
589 </p>
590
591 <table cellpadding="20"><tr><td valign="top">
592 <h3><a name="tag-A4">Engine-defined variant names</a></h3>
593 <p>
594 Although XBoard knows many different Chess variants, there are far more it doesn't know.
595 It still can play many of these, by using the board-size overrules in the New Variant dialog,
596 providing a start position fitting for this new board size,
597 telling it which pieces participate, and how they are indicated in move and position notation,
598 and switching legality checking off, so it doesn't complain if we use pieces in ways they were not intended.
599 This requires a lot of massaging by the user, though.
600 </p>
601 </td><td valign="top">
602 <img src="Defined.png">
603 </td></tr></table>
604 <p>
605 The engine can now be made to do most of this.
606 For one, the engine is allowed to use arbitrary names for variants, in the variants feature it sends as startup.
607 Even names that XBoard doesn't recognize will now appear in the New Variant dialog,
608 so the user can select them.
609 If the engine is set to play such an 'engine-defined' variant,
610 it should (in reply to the 'variant' command) tell the GUI the specifics of this variant.
611 The 'setup' command that has been added to the communication protocol will provide this information.
612 The engine can use it to define board format and holdings size, participating pieces, initial position,
613 and the 'parent variant'.
614 The latter must be a variant that is known to XBoard,
615 and it will switch to that (but using the redefined board and setup) for playing the game.
616 In an engine-engine game only the first engine will be listened to,
617 and the initial position will be loaded into the second engine (to allow for shuffle games with random initial position).
618 </p>
619 <p>
620 This means that almost everything the user had to configure to play a non-standard variant now can be done automatically by the engine.
621 The only thing the user still has to do is control whether legality checking is on or off.
622 (Some variants, although non-standard, use only pieces that XBoard knows, and those can be played with legality checking on.)
623 </p>
624
625 <h3><a name="tag-B4">Fischer castling outside Chess960</a></h3>
626 <p>
627 Upto now the ability to castle with Rooks not in a corner, or Kings not on the central files
628 was a unique ability of FRC and (on 10x8 board) CRC.
629 This made it impossible to combine this kind of castling with rules that were unique to other variants,
630 such as for example gating of pieces onto the board, as in Seirawan Chess.
631 XBoard now has an option -fischerCastling, which can be used with any variant, to allow Fischer castling there.
632 This complements the already existing option -shuffleOpenings, which could be used to play any variant in a shuffle version.
633 The shuffling respects the castling rules, though.
634 So variants without Fischer castling would leave King and Rooks in place.
635 But when Fischer castling is allowed, either natively or by use of the new option,
636 the only restriction is that the King will remain between the Rooks.
637 This makes it possible to configure XBoard for Seirawan960.
638 In XBoard the -fischerCastlings setting can be controlled from the New Shuffle dialog.
639 </p>
640 <p>
641 Another new feature is in the reading of FENs.
642 Back-rank pieces can now be enclosed in &lt;>, to indicate that they should not be placed as the FEN specifies,
643 but that they should be shuffled first.
644 It will be deduced from the specified placement (before shuffling) and castling rights whether Fischer castling should be assumed.
645 Another symbol in such "meta-FENs" is the question mark.
646 If it is used together with a specified holdings,
647 it indicates a piece should be selected at random from the holdings,
648 and then placed at the location of the question mark.
649 This van be used to specify the starting position of Seirawan2880,
650 where one of the three Queen, Elephant or Hawk will be on the board initially,
651 and then shuffled with the other pieces in 960 possible ways.
652 </p>
653
654 <h3><a name="tag-B5">Letting the engine configure the GUI's move generator</a></h3>
655 <p>
656 XBoard protocol has been extended with a command to tell the GUI how pieces move.
657 This allows XBoard to become fully aware of the rules of games it never heard of,
658 even when these involve pieces that are not amongst the 22 standard piece types it has built-in support for.
659 Formerly variants involving such pieces could only be played with legality testing off,
660 which would also disable the 'show target squares' option to show the user where the piece he grabs can move to.
661 And imagining wrong moves for a piece would also generate lousy move notation (SAN),
662 with missing or spurious disambiguation,
663 and cause inaccurate mate detection.
664 When the engine sends 'piece' commands at the start of a game to (re)define the piece moves,
665 all that functionality is restored.
666 Legality testing will still have to be switched off (or the piece definitions would be ignored),
667 but even then 'show target squares' would work, and XBoard would test move legality,
668 the GUI acting as a proxy for the engine.
669 No sense in sending a move to the engine of which the engine told you in advance that it will reject it,
670 so that the GUI would only have to take it back, after all.
671 </p>
672
673 <h3><a name="tag-C">Fixed bugs</a></h3>
674 <ul>
675   <li>
676         Fix crash on using some Browse buttons in dialogs of the GTK build.
677   </li>
678   <li>
679         Fix buffer overflow in PGN parser, when all lines end in comments.
680   </li>
681   <li>
682         Fix crash on specifying non-existent board texture.
683   </li>
684   <li>
685         Prevent crash on double-click in XB Game List Tags dialog.
686   </li>
687   <li>
688         Fix the 'auto-display comment' control in the General Options dialog of WinBoard, which was ignored.
689   </li>
690   <li>
691         Fix adjusting clocks by clicking them, in Xaw build.
692   </li>
693   <li>
694         Fix zooming of Evaluation Graph XB with mousewheel, which was not working at all.
695   </li>
696   <li>
697         Fix sticky-windows feature WB for Windows 8, where it did not work at all.
698   </li>
699   <li>
700         WinBoard's seek graph is now sized to also cover any board rim.
701   </li>
702   <li>
703         Key bindings XB for non-menu items are no longer ignored.
704   </li>
705   <li>
706         Set castling rights correctly after loading of game file from command line.
707   </li>
708   <li>
709         Allow castling and e.p. moves to be edited into opening book (and prevent their disappearance from it).
710   </li>
711   <li>
712         The sorting of engine output was made more robust against engines that send thinking output on fail lows.
713   </li>
714   <li>
715         Fix node-count display, which was clipped to 32 bits.
716   </li>
717   <li>
718         Suppress board-size oscillations in GTK build.
719   </li>
720   <li>
721         Fixed detection of screen size in GTK.
722         (This is a mixed blessing, as now it picks the largest possible window size,
723         and in GTK interactive down-sizing is not possible.)
724   </li>
725   <li>
726         Fix mode highlighting after refusal of Two Machines mode because 2nd engine did not support variant.
727   </li>
728   <li>
729         Blow up textures that are too small.
730   </li>
731   <li>
732         Display of the variant tag in the Game List now works.
733   </li>
734   <li>
735         Reset move entry (clearing target-square markers) on 'clear board' in Edit Position mode.
736   </li>
737   <li>
738         The Game List is automatically updated when you alter the tag selection for the game lines.
739   </li>
740   <li>
741         Ignore invalid color specs in stead of treating them as black (important because Cairo does not understand old xpm color names).
742   </li>
743   <li>
744         Prevent XB and WB from becoming unresponsive during lengthy tasks such as book building.
745   </li>
746   <li>
747         Fix slowdown of WB during loading of huge PGN files due to Game-List window update.
748   </li>
749   <li>
750         Limit width of menu bar for small board sizes in GTK build.
751   </li>
752   <li>
753         Improve the code to kill rogue engines in XB.
754   </li>
755   <li>
756         Drawing of pieces outside the board (in maximaized windows), which left lots of debris, is now suppressed.
757   </li>
758   <li>
759         Make WB window sizing handle multiple screens.
760   </li>
761   <li>
762         Indicate current variant in New Variant dialog of the GTK build (by printing it in boldface onthe button).
763   </li>
764   <li>
765         50-move counter is no longer reset on Chess960 castlings.
766   </li>
767   <li>
768         Fix legality testing of A-side castling in FRC (which was allowed with Rook on a- and blocker on b-file).
769   </li>
770   <li>
771         Fixed piece ID of Falcon in Falcon Chess, which was written as '.' and could not be selected on promotion.
772   </li>
773   <li>
774         Fix cross-edge e.p. captures in Cylinder Chess (which was not recognized as e.p.).
775   </li>
776   <li>
777         Fix animation of Seirawan Chess castling + gating at Rook square, which made Rook disappear.
778   </li>
779   <li>
780         Fix adjudication of stalemates in variant Giveaway.
781   </li>
782 </ul>
783
784
785 </div><!-- for id="content", starts in the include above -->
786 <!--#include virtual="/server/footer.html" -->
787 <div id="footer">
788
789 <p>Please send general FSF &amp; GNU inquiries to
790 <a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.
791 There are also <a href="/contact/">other ways to contact</a>
792 the FSF.<br />
793 Please send broken links and other corrections or suggestions to
794 <a href="mailto:bug-xboard@gnu.org">&lt;bug-xboard@gnu.org&gt;</a>.</p>
795
796 <p>Please see the <a
797 href="/server/standards/README.translations.html">Translations
798 README</a> for information on coordinating and submitting translations
799 of this article.</p>
800
801 <p>Copyright &copy; 2009, 2010, 2011, 2012, 2013, 2014, Free Software Foundation, Inc.</p>
802
803 <p>This page is licensed under a <a rel="license"
804 href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative
805 Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
806
807 <p>Updated:
808 <!-- timestamp start -->
809 $Date: 2014/11/03 03:27:15 $
810 <!-- timestamp end -->
811 </p>
812 </div>
813 </div>
814 </body>
815 </html>
816