Adjusted alternative joining method to obey keepLineBreaksICS
[xboard.git] / readme_HGM.txt
1 Winboard_F.4.3.12 release notes\r
2 \r
3 This WinBoard (beta-)version is derived from Allessandro Scotti's Winboard_x, and supports the following new options, mainly in the area of adjudication of engine-engine games, improved Crazyhouse support, and allowing variants with non-conventional pieces and or board sizes. (All option are shown here with their default values):\r
4 \r
5 /variant=normal \r
6 This (already existing) option has been expanded with several new variants, involving non-conventional pieces and deviating board sizes. The board size is automatically adapted to the selected variant, unless explicitly overruled (see below). The new variants are (with default board size, files x ranks, in parentheses): \r
7 \r
8 variant name    Game           board     description\r
9 knightmate    Knightmate        (8x8)  Variant where the King moves as a Knight, and vice versa \r
10 capablanca    Capablanca Chess (10x8)  Variant featuring Archbishop and Chancellor as new pieces \r
11 gothic        Gothic Chess     (10x8)  Same as Capablanca, with a more interesting opening position \r
12 courier       Courier Chess    (12x8)  a Medieval form that combines elements of Shatranj and modern Chess \r
13 shogi         Shogi             (9x9)  Japanese Chess \r
14 xiangqi       Xiangqi          (9x10)  Chinese Chess \r
15 fairy         Fairy Chess       (8x8)  Variant were you can use all pieces of other variants together \r
16  \r
17 The variant can be set from the newly added "File -> New Variant..." sub-menu. \r
18 Extra board files are indicated by the letters i, j, k, l, ... For boards with more than 9 ranks, the counting starts at zero! More than 10 ranks is not tested and unlikely to work in the area of PGN saving / reading. Non-FIDE pieces will be referred to in FENs and PGN by letters that depend on the variant, and might collide with piece designators in other variants. E.g. in Xiangqi 'C' is a Cannon, in Capablanca Chess it is a Chancellor. Pieces that do not belong in a variant cannot be addressed in FEN and PGN either, for as long as that variant is selected, unless the letter assignment is overruled with the aid of the /pieceToCharTable option. The variant is not saved in the winboard.ini file; on start-up we always get variant "normal" unless we use the command-line option, or have added the option to the winboard.ini file manually (in which case it will disappear when this file is overwritten by WinBoard saving its options). \r
19 WinBoard_F knows the movement of all pieces occurring in Capablanca Chess (of which FIDE Chess is a subset), Shatranj, Courier, Xiangqi and 9x9 Shogi, so that these games can be played with legality testing enabled. \r
20 \r
21 /pieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk" \r
22 Each piece that WinBoard knows (in its legality test) has a letter associated with it, by which it will be referred to in FEN or PGN. The default assignment can be overruled with this option. The value has to be a string of even length, with at least 12 characters. The first half of the string designates the white pieces, the second half the black. \r
23 The last letter for each color will be assigned to the King. (This is the piece that moves as an orthodox King; note that Nightmate and Xiangqi have a different royal piece.) All letters before it will be assigned to the other pieces in the order: \r
24 \r
25 P Pawn                 (move often depends on variant) \r
26 N Knight               (move subtly different in Xiangqi (where it is written as H) or Shogi) \r
27 B Bishop \r
28 R Rook \r
29 Q Queen                (Lance L in Shogi) \r
30 F Ferz/General         (The Shatranj 'Queen' and Xiangqi 'Adviser', used for Silver General S in Shogi.) \r
31 W Wazir/GrandVizer     (Gold General G in Shogi, in Xiangqi it is royal and denoted by K) \r
32 E Alfil/Elephant       (Moves subtly different in Xiangqi vs Shatranj/Courier) \r
33 M Commoner/Man\r
34 O Cannon/Pao \r
35 U Unicorn              (representation of Royal Knight in Knightmate, used as promoted Pawn in Shogi) \r
36 H Nightrider           (Promoted Knight in Shogi and CrazyHouse) \r
37 A Archbishop/Cardinal  (Promoted Bishop in Shogi and CrazyHouse) \r
38 C Chancellor/Marshall  (Promoted Rook   in Shogi and CrazyHouse) \r
39 G Grasshopper          (Promoted Queen in Crazyhouse, promoted Lance in Shogi) \r
40 S                      (Promoted Silver in Shogi) \r
41 K King \r
42  \r
43 Pieces that are not mentioned (because the argument has less than 34 characters) will remain disabled. Mentioned pieces can be disabled by assigning them a '.' (period). They are then not recognized in FEN or PGN input. Non-FIDE pieces that are not assigned a letter will also not appear on the promotion menu. It is not advisable to disable a piece that is present in the opening position of the selected variant, though. \r
44 Promoted pieces that need to be distinguished from original pieces of the same type (because of demotion on capture and transfer to the holdings) will be indicated by the letter for the unpromoted piece with a '+' in front of it (Shogi), or by the letter of the promoted piece with a '~' after it (Crazyhouse, Bughouse, in general everything with holdings that is not Shogi). To achieve this, they should be assigned the characters '+' or '~', respectively.\r
45 All the new pieces have a native bitmap representation in the board sizes 'bulky' and 'middling'. For all window sizes that do not support such fairy bitmaps, promoted NBRQ are represented as a 2-sizes-smaller normal piece symbol, so that Crazyhouse can be played at any size. People disliking the fairy representations might even prefer this. \r
46 There is an enhanced 'Edit Position' menu popup (right-clicking on the squares after selecting this mode in the main menu), featuring some common non-FIDE pieces, and 'promote' and 'demote' options to make those not directly in the menu. The promotion popup shows ArchBishop and Chancellor in Capablanca and Gothic, (or in fact in any game where this piece is not disabled or a promoted version of a normal piece), and leaves only the options YES / NO in Shogi. In Xiangqi there are no promotions.\r
47 \r
48 /fontPieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk" \r
49 This option is similar to /pieceToCharTable, but sets the font character that is used to display the piece on the screen (when font-based rendering is in use), rather than in the FEN or PGN. The default setting should work with George Tsavdaris' WinboardF font, which uses the 'intuitive' mapping of font characters to symbols. With font-based rendering the fairy pieces can be used at any board size.\r
50 Note that UHACGS are also used to represent the promoted versions of PNBRQF, in games like Crazyhouse and Shogi, where the promotion has to be undone on capture. In such games you are likely to prefer a different representation of those pieces then when they represent true fairy pieces.\r
51 \r
52 /boardWidth=-1 /boardHeight=-1 \r
53 Set a number of files and ranks of the playing board to a value that will override the defaults for the variant that is selected. A value of -1 means the variant default board size will be used for the corresponding parameter (and is itself the default value of these options). These parameters can be set in the "Files -> New Variant..." sub-menu, where they are reset to the default -1 if you OK the chosen variant without typing something to overrule it. These parameters are saved in the winboard.ini file. (But unless you saved while a variant with board-size override was selected, they will always be saved as -1.) \r
54 A variant with a non-standard board size will be communicated to the engine(s) with the board size prefixed to the variant name, e.g. "variant 12x8_capablanca". In protocol 2 the engine must first enable this feature by sending "boardsizeFxR" amongst the accepted variants, where F is the maximum number of files, and R the maximum number of ranks, as decimal numbers. \r
55 \r
56 /holdingsSize=-1 \r
57 Set the size of the holdings for dropable pieces to a value that will override the default for the variant that is selected. A value of -1 means the variant default holdings size will be used for that parameter (and is itself the default value of this options). This parameter can be set in the Files -> New Variant... sub-menu, where it is reset to the default -1 if you OK the chosen variant without typing something to overrule it. This parameters is saved in the winboard.ini file. \r
58 To disable holdings, set their size to 0. They will then not be displayed. For non-zero holding size N, the holdings are displayed left and right of the board, and piece drops can be effected by dragging pieces from the holdings to the drop square. In bughouse, the holdings will be filled by the ICS. In all other variants, captured pieces will go into the holdings (after reversing their color). Only the first N pieces of the /pieceToCharTable argument will go into the holdings. All other pieces will be converted to Pawns. (In Shogi, however they will be demoted in the regular way before determining if they fit.) Pieces that are disabled (per default and per /pieceToCharTable option) might not be counted when determining what are the first N pieces. \r
59 Non-standard holdingsize will be communicated to the engine by prefixing it (together with the board size, even if this is standard) to the variant name, e.g. "variant 7x7+5_shogi". In protocol 2 the engine should enable this feature by sending "holdingsH" amongst the variant names, where H is the maximum acceptable holdings size as a decimal number. \r
60 \r
61 /alphaRank=FALSE \r
62 When this parameter is true, a-h are converted to 1-9, and vice versa, in all move output and input (to PGN files or SAN move display as well as in communication with the engine). This might be useful for Shogi, where conventionally one uses letters to designate ranks, and digits to designate files. Engines that want to use this option must make sure pieces are never represented by lower case! This option can be set from the Files -> New Variant... menu, where it defaults to FALSE unless you explicitly set it. It is not saved in the winboard.ini file. \r
63 This kludge does not seem to work for reading PGN files. Saving works fine. For now, using it is not recommended. In the future it might be redefined as only affecting engine-engine communication, .\r
64 Note that the PGN format in Shogi also leaves out the trailing '+' as check indicator: In Shogi such a trailing '+' means promotion, while a trailing '=' means defer promotion. Prefix '+' signs are used on moves with promoted pieces, disambiguation is done western SAN style.\r
65 \r
66 /allWhite=FALSE\r
67 Causes the outline of the 'white' pieces to be superimposed onto the 'black' piece symbols as well (as a black outline) when native bitmaps are used (as opposed to font-based rendering). This is useful if we choose a very light color to represent the 'black' pieces. It might be particularly useful in Shogi, where the conventional representation of the 'black' pieces is as upside-down white pieces, so that both colors would be white. This option is saved in the winboard.ini file, and can be set in the "Options -> Board..." sub-menu. \r
68 \r
69 /flipBlack=FALSE\r
70 Setting this option will cause upside-down display of the native piece bitmaps used to represent the pieces of the side that plays black, as would be needed for a traditional representation of Shogi pieces. It can be set from the "Options -> Board..." sub-menu, and it is saved in the winboard.ini file. For now, traditional Shogi bitmaps are only included for size "moderate". For other sizes you must depend on font-based rendering.\r
71 \r
72 /detectMate=TRUE \r
73 /testClaim=TRUE \r
74 /materialDraws=TRUE \r
75 /trivialDraws=FALSE \r
76 /ruleMoves=51 \r
77 /repeatsToDraw=6 \r
78 These are all options that only affect engine-engine play, and can be set from the "Options -> Engine..." sub-menu. They are all related to adjudication of games by the GUI. Legality checking must be switched on for them to work. \r
79 If /detectMate is TRUE, the GUI recognizes checkmate and stalemate (but not in games with holdings!), and ends the game accordingly before the engines can claim. This is convenient for play with engines that fail to claim, and just exit. \r
80 With /testClaim set, all result and illegal-move claims by engines that claim more than their own loss are scrutinized for validity, and false claims result in forfeit of the game. Useful with buggy engines. \r
81 The option /materialDraws=TRUE causes games with insufficient mating material to be adjudicated immediately as draws, in case the engines would not claim these draws. This applies to KK, KNK and KBK.\r
82 The option /trivialDraws adjudicates KNNK, KBKB, KNKN, KBKN, KRKR and KQKQ to draws after 3 moves (to allow for a quick tactical win). Note that in KQKQ this might not be sound, but that problem would disappear once bitbase probing is implemented. \r
83 The /ruleMoves determine after how many reversible moves the game is adjudicated as a draw. Setting this to 0 turns this option off. Draw claims by the engine are still accepted (with /testClaim=TRUE) after 50 reversible moves, even if /ruleMoves species a larger number. Note that it is perfectly legal according to FIDE rules to play on after 50 reversible moves, but in tournaments having two engines that want to play on forever is a nuisance in endings like KBNKR, where one of the engines thinks it is ahead and can avoids repeats virtually forever. \r
84 The option /repeatsToDraw makes the GUI adjudicate a game as draw after the same position has occurred the specified number of times. If it is set to a value > 3, engines can still claim the draw after 3-fold repeat. \r
85 All these options are saved in the winboard.ini file. \r
86 \r
87 /matchPause=10000 \r
88 Determines the number of milliseconds that is paused between two games of a match. In the old WinBoard this was always 10 sec, which was inconveniently long in fast games. If you make the pause too short, tardy engines might get into trouble, though. Saved in the Winboard.ini.\r
89 \r
90 Clocks\r
91 There is an "Options -> swap clocks" command, that swaps the position of white and black clocks (convenient in over-the-board matches, where the display is standing next to the board, and you want your own time to be displayed on your side of the screen). The clocks can be adjusted in "edit game" mode: right-clicking them adds one minute, left-clicking subtracts one minute. (Also for OTB matches, to keep them synchronized with the official match clock.) The flag-fell condition is now indicated as '(!)' behind the displayed time, to eliminate the necessity for overwriting the message in the title bar (which might contain indispensible information in match mode).\r
92 \r
93 Other improvements / changes\r
94 Castling rights and e.p. rights are now fully maintained, and considered in legality testing. They are imported from and written to FEN, as is the 50-move counter. (When reading an incomplete FEN they are still guessed, though.) \r
95 The time (in sec, or min:sec) is now always stored together with the PV information to the PGN, if storing the latter was requested (through ticking "extended PGN info" in "Options -> General..."). The saved time is the WinBoard clock time (as opposed to the time reported by the engine).\r
96 \r
97 ----------------------------------------------------------------\r
98 Winboard_F.4.3.8 release notes\r
99 \r
100 This Winboard supports the following new options (shown here with their default values):\r
101 \r
102 /variant=normal \r
103 This (already existing) option has been expanded with several new variants, involving non-conventional pieces and deviating board sizes. The board size is automatically adapted to the selected variant, unless explicitly overruled (see below). The new variants are (with default board size, files x ranks, in parentheses): \r
104 \r
105 variant name    Game           board     description\r
106 knightmate    Knightmate        (8x8)  Variant where the King moves as a Knight, and vice versa \r
107 capablanca    Capablanca Chess (10x8)  Variant featuring Archbishop and Chancellor as new pieces \r
108 gothic        Gothic Chess     (10x8)  Same as Capablanca, with a more interesting opening position \r
109 courier       Courier Chess    (12x8)  a Medieval form that combines elements of Shatranj and modern Chess \r
110 shogi         Shogi             (9x9)  Japanese Chess \r
111 xiangqi       Xiangqi          (9x10)  Chinese Chess \r
112 fairy         Fairy Chess       (8x8)  Variant were you can use all pieces of other variants together \r
113  \r
114 The variant can be set from the newly added "File -> New Variant..." sub-menu. \r
115 Extra board files are indicated by the letters i, j, k, l, ... For boards with more than 9 ranks, the counting starts at zero! Non-FIDE pieces will be referred to in FENs and PGN by letters that depend on the variant, and might collide with piece designators in other variants. E.g. in Xiangqi 'C' is a Cannon, in Capablanca Chess it is a Chancellor. Pieces that do not belong in a variant cannot be addressed in FEN and PGN either as long as that variant is selected, unless the letter assignment is overruled by the /pieceToCharTable option. The variant is not saved in the winboard.ini file; on start-up we always get variant "normal" unless we use the command-line opton, or have added the option to the winboard.ini file manually (in which case it will disappear when this file is overwritten). \r
116 WinBoard_F knows the movement of all pieces occurring in Capablanca Chess (of which FIDE Chess is a subset), Shatranj, Courier, Xiangqi and 9x9 Shogi, so that these games can be played with legality testing enabled. \r
117 \r
118 /pieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk" \r
119 Each piece that WinBoard knows (in its legality test) has a letter associated with it, by which it will be referred to in FEN or PGN. The default assignment can be overruled with this option. The value has to be a string of even length, with at least 12 characters. The first half of the string designates the white pieces, the second half the black. \r
120 The last letter for each color will be assigned to the King. (This is the piece that moves as an orthodox King; note that Nightmate and Xiangqi have a different royal piece.) All letters before it will be assigned to the other pieces in the order: \r
121 \r
122 P Pawn                 (move often depends on variant) \r
123 N Knight               (move subtly different in Xiangqi (where it is written as H) or Shogi) \r
124 B Bishop \r
125 R Rook \r
126 Q Queen                (Lance L in Shogi) \r
127 F Ferz/General         (Silver General S in Shogi) \r
128 W Wazir/GrandVizer     (Gold General G in Shogi, in Xiangqi it is royal and denoted by K) \r
129 E Alfil/Elephant       (Moves subtly different in Xiangqi vs Shatranj/Courier) \r
130 M Commoner/Man \r
131 O Cannon/Pao \r
132 U Unicorn              (representation of Royal Knight in Knightmate, used as promoted Pawn in Shogi) \r
133 H Nightrider           (Promoted Knight in Shogi and CrazyHouse) \r
134 A Archbishop/Cardinal  (Promoted Bishop in Shogi and CrazyHouse) \r
135 C Chancellor/Marshall  (Promoted Rook   in Shogi and CrazyHouse) \r
136 G Grasshopper          (Promoted Queen in Crazyhouse, promoted Lance in Shogi) \r
137 S                      (Promoted Silver in Shogi) \r
138 K King \r
139  \r
140 Pieces that are not mentioned (because the argument has less than 34 characters) will remain disabled. Mentioned pieces can be disabled by assigning them a '.' (period). They are then not recognized in FEN or PGN input. It is not advisable to disable a piece that is present in the opening position of the selected variant, though. \r
141 Promoted pieces that need to be distinguished from original pieces of the same type (because of demotion on capture and transfer to the holdings) will be indicated by the letter for the unpromoted piece with a '+' in front of it (Shogi), or by the letter of the promoted piece with a '~' after it (Crazyhouse, Bughouse, in general everything with holdings that is not Shogi). \r
142 All the new pieces have a native biytmap representation in the board sizes 'bulky' and 'middling'. For all window sizes that do not support such fairy bitmaps, promoted NBRQ are represented as a 2-sizes-smaller normal piece symbol, so that Crazyhouse can be played at any size. People disliking the fairy representations might even prefer that. \r
143 There is an enhanced 'Edit Position' menu popup (right-clicking on the squares after selecting this mode in the main menu), featuring some common non-FIDE pieces, and 'promote' and 'demote' options to make those not directly in the menu. The promotion popup shows ArchBishop and Chancellor in Capablanca and Gothic, (or in fact in any game where this piece is not disabled), and leaves only the options YES / NO in Shogi. In Xiangqi there are no promotions.\r
144 \r
145 /fontPieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk" \r
146 This option is similar to /pieceToCharTable, but sets the font character that is used to display the piece on the screen (when font-based rendering is in use), rather than in the FEN or PGN. The default setting should work with the WinboardF font, which uses the 'intuitive' mapping of font characters to symbols. \r
147 Note that UHACGS are also used to represent the promoted versions of PNBRQF, in games like Crazyhouse and Shogi, where the promotion has to be undone on capture.\r
148 \r
149 /boardWidth=-1 /boardHeight=-1 \r
150 Set a number of files and ranks of the playing board to a value that will override the defaults for the variant that is selected. A value of -1 means the variant default board size will be used for the corresponding parameter (and is itself the default value of these options). These parameters can be set in the "Files -> New Variant..." sub-menu, where they are reset to the default -1 is you OK the chosen variant without typing something to overrule it. These parameters are saved in the winboard.ini file. (But unless you saved while a variant with board-size override was selected, they will always be saved as -1.) \r
151 A variant with a non-standard board size will be communicated to the engine(s) with the board size prefixed to the variant name, e.g. "variant 12x8_capablanca". In protocol 2 the engine must first enable this feature by sending "boardsizeFxR" amongst the accepted variants, where F is the maximum number of files, and R the maximum number of ranks, as decimal numbers. \r
152 \r
153 /holdingsSize=-1 \r
154 Set the size of the holdings for dropable pieces to a value that will override the default for the variant that is selected. A value of -1 means the variant default holdings size will be used for that parameter (and is itself the default value of this options). This parameter can be set in the Files -> New Variant... sub-menu, where it is reset to the default -1 is you OK the chosen variant without typing something to overrule it. This parameters is saved in the winboard.ini file. \r
155 To disable holdings, set their size to 0. They will then not be displayed. For non-zero holding size N, the holdings are displayed left and right of the board, and piece drops can be effected by dragging pieces from the holdings to the drop square. In bughouse, the holdings will be filled by the ICS. In all other variants, captured pieces will go into the holdings (after reversing their color). Only the first N pieces of the /pieceToCharTable argument will go into the holdings. All other pieces will be converted to Pawns. (In Shogi, however they will be demoted in the regular way before determining if they fit.) Pieces that are disabled (per default and per /pieceToCharTable option) might not be counted when determining what are the first N pieces. \r
156 Non-standard holdingsize will be communicated to the engine by prefixing it (together with the board size, even if this is standard) to the variant name, e.g. "variant 7x7+5_shogi". In protocol 2 the engine should enable this feature by sending "holdingsH" amongst the variant names, where H is the maximum acceptable holdings size as a decimal number. \r
157 \r
158 /alphaRank=FALSE \r
159 When this parameter is true, a-h are converted to 1-9, and vice versa, in all move output and input (to PGN files or SAN move display as well as in communication with the engine). This might be useful for Shogi, where conventionally one uses letters to designate ranks, and digits to designate files. Engines that want to use this option must make sure pieces are never represented by lower case! This option can be set from the Files -> New Variant... menu, where it defaults to FALSE unless you explicitly set it. It is not saved in the winboard.ini file. \r
160 This kludge does not seem to work for reading PGN files. Saving works fine. For now, using it is not recommended.\r
161 Note that the PGN format in Shogi also leaves out the trailing '+' as check indicator: In Shogi such a trailing '+' means promotion, while a trailing '=' means defer promotion. Prefix '+' signs are used on moves with promoted pieces, disambiguation is done western SAN style.\r
162 \r
163 /allWhite=FALSE\r
164 Causes the outline of the 'white' pieces to be superimposed onto the 'black' piece symbols as well (as a black outline) when native bitmaps are used (as opposed to font-based rendering). This is useful if we choose a very light color to represent the 'black' pieces. It might be particularly useful in Shogi, where the conventional representation of the 'black' pieces is as upside-down white pieces, so that both colors would be white. This option is saved in the winboard.ini file, and can be set in the "Options -> Board..." sub-menu. \r
165 \r
166 /flipBlack=FALSE\r
167 Setting this option will cause upside-down display of the native piece bitmaps used to represent the pieces of the side that plays black, as would be needed for a traditional representation of Shogi pieces. It can be set from the "Options -> Board..." sub-menu, and it is saved in the winboard.ini file. For now, traditional Shogi bitmaps are not included, though.\r
168 \r
169 /detectMate=TRUE \r
170 /testClaim=TRUE \r
171 /materialDraws=TRUE \r
172 /trivialDraws=FALSE \r
173 /ruleMoves=51 \r
174 /repeatsToDraw=6 \r
175 These are all options that only affect engine-engine play, and can be set from the "Options -> Engine..." sub-menu. They are all related to adjudication of games by the GUI. Legality checking must be switched on for them to work. \r
176 If /detectMate is TRUE, the GUI recognizes checkmate and stalemate (but not in games with holdings!), and ends the game accordingly before the engines can claim. This is convenient for play with engines that fail to claim, and just exit. \r
177 With /testClaim set, all result and illegal-move claims by engines that claim more than their own loss are scrutinized for validity, and false claims result in forfeit of the game. Useful with buggy engines. \r
178 The option /materialDraws=TRUE causes games with insufficient mating material to be adjudicated immediately as draws, in case the engines would not claim them. \r
179 The option /trivialDraws adjudicates KNNK, KBKB, KNKN, KBKN, KRKR and KQKQ to draws after 3 moves (to allow for a quick tactical win. Note that in KQKQ this might not be sound, but that problem would disappear once bitbase probing is added). \r
180 The /ruleMoves determine after how many reversible moves the game is adjudicated as a draw. Setting this to 0 turns this option off. Draw claims by the engine are still accepted (by /testClaim) after 50 reversible moves, even if /ruleMoves species a larger number. Note that it is perfectly legal according to FIDE rules to play on after 50 reversible moves, but in tournaments having two engines that want to play on forever is a nuisance in endings like KBNKR, where one of the engines thinks it is ahead and can avoids repeats virtually forever. \r
181 The option /repeatsToDraw makes the GUI adjudicate a game as draw after the same position has occurred the specified number of times. If it is set to a value > 3, engines can still claim the draw after 3-fold repeat. \r
182 All these options are saved in the winboard.ini file. \r
183 \r
184 /matchPause=10000 \r
185 Determines the number of milliseconds that is paused between two games of a match. Saved in the Winboard.ini.\r
186 \r
187 Clocks\r
188 There is an "Options -> flip Clocks" command, that swaps the position of white and black clocks (convenient in over-the-board matches, where the screen is next to the board, and you want your own time to be displayed on your side of the screen). The clocks can be adjusted in "edit game" mode: right-clicking them adds one minute, left-clicking subtracts one minute. (Also for OTB matches, to keep them synchronized with the official match clock.) The flag-fell condition is now indicated as (!) behind the time.\r
189 \r
190 Other improvements / changes\r
191 Castling rights and e.p. rights are now fully maintained, and considered in legality testing. They are imported from and written to FEN, as is the 50-move counter. The time (in sec, or min:sec) is now always stored together with the PV information to the PGN, if storing the latter was requested (through ticking 'extended PGN info' in "Options -> General..."). The saved time is the Winboard clock time (as opposed to the time reported by the engine).\r
192 --------------------------------------------------------------------\r
193 Winboard_F.4.3.7 release notes\r
194 \r
195 This Winboard supports the following new options (shown here with their default values):\r
196 \r
197 /variant=normal \r
198 This (already existing) option has been expanded with several new variants, involving non-conventional pieces and deviating board sizes. The board size is automatically adapted to the selected variant, unless explicitly overruled (see below). The new variants are (with default board size, files x ranks, in parentheses): \r
199 \r
200 variant name    Game           board     description\r
201 knightmate    Knightmate        (8x8)  Variant where the King moves as a Knight, and vice versa \r
202 capablanca    Capablanca Chess (10x8)  Variant featuring Archbishop and Chancellor as new pieces \r
203 gothic        Gothic Chess     (10x8)  Same as Capablanca, with a more interesting opening position \r
204 courier       Courier Chess    (12x8)  a Medieval form that combines elements of Shatranj and modern Chess \r
205 shogi         Shogi             (9x9)  Japanese Chess \r
206 xiangqi       Xiangqi          (9x10)  Chinese Chess \r
207 fairy         Fairy Chess       (8x8)  Variant were you can use all pieces of other variants together \r
208  \r
209 The variant can be set from the newly added "File -> New Variant..." sub-menu. \r
210 Extra board files are indicated by the letters i, j, k, l, ... For boards with more than 9 ranks, the counting starts at zero! Non-FIDE pieces will be referred to in FENs and PGN by letters that depend on the variant, and might collide with piece designators in other variants. E.g. in Xiangqi 'C' is a Cannon, in Capablanca Chess it is a Chancellor. Pieces that do not belong in a variant cannot be addressed in FEN and PGN either as long as that variant is selected, unless the letter assignment is overruled by the /pieceToCharTable option. The variant is not saved in the winboard.ini file; on start-up we always get variant "normal" unless we use the command-line opton, or have added the option to the winboard.ini file manually (in which case it will disappear when this file is overwritten). \r
211 WinBoard_F knows the movement of all pieces occurring in Capablanca Chess (of which FIDE Chess is a subset), Shatranj, Courier, Xiangqi and 9x9 Shogi, so that these games can be played with legality testing enabled. \r
212 \r
213 /pieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk" \r
214 Each piece that WinBoard knows (in its legality test) has a letter associated with it, by which it will be referred to in FEN or PGN. The default assignment can be overruled with this option. The value has to be a string of even length, with at least 12 characters. The first half of the string designates the white pieces, the second half the black. \r
215 The last letter for each color will be assigned to the King. (This is the piece that moves as an orthodox King; note that Nightmate and Xiangqi have a different royal piece.) All letters before it will be assigned to the other pieces in the order: \r
216 \r
217 P Pawn                 (move often depends on variant) \r
218 N Knight               (move subtly different in Xiangqi (where it is written as H) or Shogi) \r
219 B Bishop \r
220 R Rook \r
221 Q Queen                (Lance L in Shogi) \r
222 F Ferz/General         (Silver General S in Shogi) \r
223 W Wazir/GrandVizer     (Gold General G in Shogi, in Xiangqi it is royal and denoted by K) \r
224 E Alfil/Elephant       (Moves subtly different in Xiangqi vs Shatranj/Courier) \r
225 M Commoner/Man \r
226 O Cannon/Pao \r
227 U Unicorn              (representation of Royal Knight in Knightmate, used as promoted Pawn in Shogi) \r
228 H Nightrider           (Promoted Knight in Shogi and CrazyHouse) \r
229 A Archbishop/Cardinal  (Promoted Bishop in Shogi and CrazyHouse) \r
230 C Chancellor/Marshall  (Promoted Rook   in Shogi and CrazyHouse) \r
231 G Grasshopper          (Promoted Queen in Crazyhouse, promoted Lance in Shogi) \r
232 S                      (Promoted Silver in Shogi) \r
233 K King \r
234  \r
235 Pieces that are not mentioned (because the argument has less than 34 characters) will remain disabled. Mentioned pieces can be disabled by assigning them a '.' (period). They are then not recognized in FEN or PGN input. It is not advisable to disable a piece that is present in the opening position of the selected variant, though. \r
236 Promoted pieces that need to be distinguished from original pieces of the same type (because of demotion on capture and transfer to the holdings) will be indicated by the letter for the unpromoted piece with a '+' in front of it (Shogi), or by the letter of the promoted piece with a '~' after it (Crazyhouse, Bughouse, in general everything with holdings that is not Shogi). \r
237 All the new pieces have a native biytmap representation in the board sizes 'bulky' and 'middling'. For all window sizes that do not support such fairy bitmaps, promoted NBRQ are represented as a 2-sizes-smaller normal piece symbol, so that Crazyhouse can be played at any size. People disliking the fairy representations might even prefer that. \r
238 There is an enhanced 'Edit Position' menu popup (right-clicking on the squares after selecting this mode in the main menu), featuring some common non-FIDE pieces, and 'promote' and 'demote' options to make those not directly in the menu. The promotion popup shows ArchBishop and Chancellor in Capablanca and Gothic, (or in fact in any game where this piece is not disabled), and leaves only the options YES / NO in Shogi. In Xiangqi there are no promotions.\r
239 \r
240 /fontPieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk" \r
241 This option is similar to /pieceToCharTable, but sets the font character that is used to display the piece on the screen (when font-based rendering is in use), rather than in the FEN or PGN. The default setting should work with the WinboardF font, which uses the 'intuitive' mapping of font characters to symbols. \r
242 Note that UHACGS are also used to represent the promoted versions of PNBRQF, in games like Crazyhouse and Shogi, where the promotion has to be undone on capture.\r
243 \r
244 /boardWidth=-1 /boardHeight=-1 \r
245 Set a number of files and ranks of the playing board to a value that will override the defaults for the variant that is selected. A value of -1 means the variant default board size will be used for the corresponding parameter (and is itself the default value of these options). These parameters can be set in the "Files -> New Variant..." sub-menu, where they are reset to the default -1 is you OK the chosen variant without typing something to overrule it. These parameters are saved in the winboard.ini file. (But unless you saved while a variant with board-size override was selected, they will always be saved as -1.) \r
246 A variant with a non-standard board size will be communicated to the engine(s) with the board size prefixed to the variant name, e.g. "variant 12x8_capablanca". In protocol 2 the engine must first enable this feature by sending "boardsizeFxR" amongst the accepted variants, where F is the maximum number of files, and R the maximum number of ranks, as decimal numbers. \r
247 \r
248 /holdingsSize=-1 \r
249 Set the size of the holdings for dropable pieces to a value that will override the default for the variant that is selected. A value of -1 means the variant default holdings size will be used for that parameter (and is itself the default value of this options). This parameter can be set in the Files -> New Variant... sub-menu, where it is reset to the default -1 is you OK the chosen variant without typing something to overrule it. This parameters is saved in the winboard.ini file. \r
250 To disable holdings, set their size to 0. They will then not be displayed. For non-zero holding size N, the holdings are displayed left and right of the board, and piece drops can be effected by dragging pieces from the holdings to the drop square. In bughouse, the holdings will be filled by the ICS. In all other variants, captured pieces will go into the holdings (after reversing their color). Only the first N pieces of the /pieceToCharTable argument will go into the holdings. All other pieces will be converted to Pawns. (In Shogi, however they will be demoted in the regular way before determining if they fit.) Pieces that are disabled (per default and per /pieceToCharTable option) might not be counted when determining what are the first N pieces. \r
251 Non-standard holdingsize will be communicated to the engine by prefixing it (together with the board size, even if this is standard) to the variant name, e.g. "variant 7x7+5_shogi". In protocol 2 the engine should enable this feature by sending "holdingsH" amongst the variant names, where H is the maximum acceptable holdings size as a decimal number. \r
252 \r
253 /alphaRank=FALSE \r
254 When this parameter is true, a-h are converted to 1-9, and vice versa, in all move output and input (to PGN files or SAN move display as well as in communication with the engine). This might be useful for Shogi, where conventionally one uses letters to designate ranks, and digits to designate files. Engines that want to use this option must make sure pieces are never represented by lower case! This option can be set from the Files -> New Variant... menu, where it defaults to FALSE unless you explicitly set it. It is not saved in the winboard.ini file. \r
255 Note that the PGN format in Shogi also leaves out the trailing '+' as check indicator: In Shogi such a trailing '+' means promotion, while a trailing '=' means defer promotion. Prefix '+' signs are used on moves with promoted pieces, disambiguation is done western SAN style.\r
256 \r
257 /allWhite=FALSE\r
258 Causes the outline of the 'white' pieces to be superimposed onto the 'black' piece symbols as well (as a black outline) when native bitmaps are used (as opposed to font-based rendering). This is useful if we choose a very light color to represent the 'black' pieces. It might be particularly useful in Shogi, where the conventional representation of the 'black' pieces is as upside-down white pieces, so that both colors would be white. This option is saved in the winboard.ini file, and can be set in the "Options -> Board..." sub-menu. \r
259 \r
260 /flipBlack=FALSE\r
261 This option is reserved for future use. It will cause upside-down display of the 'black' native piece bitmaps, as would be needed for Shogi. For now it can be set from the "Options -> Board..." sub-menu, and it is saved in the winboard.ini file, but it is ignored.\r
262 \r
263 /detectMate=TRUE \r
264 /testClaim=TRUE \r
265 /materialDraws=TRUE \r
266 /trivialDraws=FALSE \r
267 /ruleMoves=51 \r
268 /repeatsToDraw=6 \r
269 These are all options that only affect engine-engine play, and can be set from the "Options -> Engine..." sub-menu. They are all related to adjudication of games by the GUI. Legality checking must be switched on for them to work. \r
270 If /detectMate is TRUE, the GUI recognizes checkmate and stalemate (but not in games with holdings!), and ends the game accordingly before the engines can claim. This is convenient for play with engines that fail to claim, and just exit. \r
271 With /testClaim set, all result and illegal-move claims by engines that claim more than their own loss are scrutinized for validity, and false claims result in forfeit of the game. Useful with buggy engines. \r
272 The option /materialDraws=TRUE causes games with insufficient mating material to be adjudicated immediately as draws, in case the engines would not claim them. \r
273 The option /trivialDraws adjudicates KNNK, KBKB, KNKN, KBKN, KRKR and KQKQ to draws after 3 moves (to allow for a quick tactical win. Note that in KQKQ this might not be sound, but that problem would disappear once bitbase probing is added). \r
274 The /ruleMoves determine after how many reversible moves the game is adjudicated as a draw. Setting this to 0 turns this option off. Draw claims by the engine are still accepted (by /testClaim) after 50 reversible moves, even if /ruleMoves species a larger number. Note that it is perfectly legal according to FIDE rules to play on after 50 reversible moves, but in tournaments having two engines that want to play on forever is a nuisance in endings like KBNKR, where one of the engines thinks it is ahead and can avoids repeats virtually forever. \r
275 The option /repeatsToDraw makes the GUI adjudicate a game as draw after the same position has occurred the specified number of times. If it is set to a value > 3, engines can still claim the draw after 3-fold repeat. \r
276 All these options are saved in the winboard.ini file. \r
277 \r
278 /matchPause=10000 \r
279 Determines the number of milliseconds that is paused between two games of a match. Saved in the Winboard.ini.\r
280 \r
281 Clocks\r
282 There is an "Options -> flip Clocks" command, that swaps the position of white and black clocks (convenient in over-the-board matches, where the screen is next to the board, and you want your own time to be displayed on your side of the screen). The clocks can be adjusted in "edit game" mode: right-clicking them adds one minute, left-clicking subtracts one minute. (Also for OTB matches, to keep them synchronized with the official match clock.) The flag-fell condition is now indicated as (!) behind the time.\r
283 \r
284 Other improvements\r
285 Castling rights and e.p. rights are now fully maintained, and considered in legality testing. They are imported from and written to FEN, as is the 50-move counter.\r
286 -------------------------------------------------------------------\r
287 These are the release notes of Winboard_F 4.3.2,\r
288 which is released under the GPL.\r
289 This version was derived from Allessandro Scotti's Winboard_x 4.2.7 source files.\r
290 It only includes the files that were changed:\r
291 \r
292 config.h\r
293 common.h\r
294 parser.h\r
295 moves.h\r
296 resource.h\r
297 \r
298 winboard.c\r
299 backend.c\r
300 moves.c\r
301 \r
302 parser.l\r
303 winboard.rc\r
304 \r
305 and some bitmaps for piece symbols\r
306 \r
307 \r
308 \r
309 I made modifications in the following areas: \r
310 \r
311 1) Adjudication and claim verification \r
312 2) Fairy pieces and board sizes other than 8x8 \r
313 3) Miscellaneous \r
314 \r
315 Miscellaneous \r
316 \r
317 /matchPause=10000 \r
318 is an option to set the length of the pause between two games of a match. The value is in msec, default value is 10000 (I will present all newly implemented options with their default value as example). Be aware that some engines might not be stopped yet if you make the pause too small, but might still be puking output, which then will interfere with the next game. But the fixed value of 10 sec of the old Winboard seemed like overdoing it. \r
319 \r
320 Time info in PGN \r
321 When you ask for the PV-info to be stored in the PGN (a Winboard_x option), it now also stores the time spent on the move with it. \r
322 \r
323 Flag fell \r
324 In engine-engine games the messge "white/black/both" flag(s) fell" no longer appears in the window caption, but as an exclamation point behind the clock time. (To prevent the annoying overwriting of the normal header line). \r
325 \r
326 Adjudications and Claim verification. \r
327 \r
328 These functions are only present in engine-engine games, and only if legality-testing is switched on. (The latter will be typically switched off in games with bizarre rules, which the GUI doesn't know, and in that case the GUI can never have an opinion on the outcome of a game.) \r
329 \r
330 Illegal-move forfeit \r
331 As soon as one of the engines plays an illegal move, it forfeits the game. This feature was already present, but it should be 100% reliable now, as it also takes e.p. and castling rights into account, rather than erring on the safe side. \r
332 \r
333 Illegal-move claim \r
334 From the above, it follows that any illegal-move claims by an engine must be false, and will result in forfeiting the game. (In Winboard_x this message is ignored, causing the game or match to hang.) \r
335 \r
336 Checkmate adjudication \r
337 As soon as one of the engines does a move that results in checkmate, the GUI declares the game won, without waiting for the engine to claim it. \r
338 \r
339 Insufficient mating material \r
340 As soon as the material on the board has shrunk to KK, KNK or KBK, the game is declared draw. \r
341 \r
342 /adjudicateLossThreshold=0 \r
343 This option was already present in Winboard_x, (to declare a game lost for which both engines agree for 3 moves that the score is below the given threshold), but a non-zero value is now also used to enable the following adjudications. If you only want the latter, just make the threshold impossibly low (-40000 will usually do the trick). \r
344 \r
345 Trivial draws \r
346 If we are 3 moves into a KQKQ, KRKR, KBKB KBKN or KNKN end-game, the game is adjudicated as draw. \r
347 \r
348 /repeatsToDraw=6 \r
349 When the specified number of repeats occurs, the game is adjudicated draw. Should keep track of e.p. and castling rights. This does not require legality-testing to be switched on. The engines retain the legal right to claim after a 3-fold repetition, though. If you set this parameter to 3 or less, they will never get the chance. Better not set it to 1 or less. \r
350 \r
351 /ruleMoves=51 \r
352 After the given number of full moves without capture or Pawn move, the game is adjudicated draw. Even without legality testing. The engines retain the legal right to claim after 50 moves. \r
353 \r
354 /testClaims=FALSE \r
355 When enabled, this option verifies all result claims made by the engines, and overrules the claim if it is false (forfeiting the game for the claimer). An engine can still safely claim a win for its opponent on a nonsense reason, though; this is taken to be the equivalent of 'resign'. Draw claims (made before a draw adjudication) are checked against the 50-move, 3-fold-repetition or insufficient-material rules. Win claims are always considered false, as the GUI adjudicates checkmates (and stalemates) before any engine can claim them. \r
356 \r
357 Fairy-Chess support \r
358 \r
359 /boardWidth=8 \r
360 Sets the number of files on the board. The additional files are named i, j, k, l... in PGN, and should be indicated this way in communicating moves to and from the engine. Currently works upto 12. No guarantees on how the rest of the display (clocks, etc.) looks if you make this number < 8. \r
361 \r
362 /boardHeight=8 \r
363 Sets the number of ranks. Extra ranks are numbered 9, 10, 11... in PGN. This is so far largely untested, and unlikely to work for double-digit ranks. Displaying boards with upto 12 ranks seems to work, though, but double-digit ranks might cause all kind of unforseen problems in PGN file and move parser, or in communication with the engine. To avoid such problems as much as possible, in boards with more than 9 ranks the counting of ranks will start at zero rather than one!\r
364 \r
365 /fontPieceToCharTable="......." \r
366 This paramater, controlling the mapping of font symbols to piece types, was already present in Winboard_x. The default is dependent on the font selected with the /renderPiecesWithFont option. It can now accept upto 32 pieces, but the length should always be even. The first half designates the white pieces, the second half the black, both in the order PNBRACHFEWDOGMQK. (The letters mentioned here are the letters by which the pieces will be indicated in PGN and FEN notation, what you have to give as argument depends on the font you use. A black king might be 'l', for instance).\r
367 If you give fewer then 32 pieces, this will go at the expense of what is just before Queen. So the last two symbols you give for each color are always Queen and King, the others are assigned in the order Pawn, Knight, ... Pieces that do not get a symbol assigned will remain invisible.\r
368 \r
369 fairy-FEN support \r
370 The letters ACDEFGHMOW are accepted in FENs in addition to the regular PNBRQK,(and of course the lower case versions for black), and are passed to the engine in a setboard or edit menu.\r
371 Double-digit skips are acceptable in FENs. 'x' is interpreted as a skip of 10. \r
372 Castling rights should no longer be ignored. (Doesn't work for FRC yet, though.) \r
373 The 50-move-plies field should also be meaningful now. \r
374 \r
375 Legality testing for Fairy pieces\r
376 There is a build in notion of what some of the new pieces can do, according to\r
377 A = Archbishop (aka Cardinal) = N+B\r
378 C = Chancellor (aka Marshall) = N+R\r
379 F = Ferz (aka General), moves 1 step diagonal\r
380 W = Wazir (aka Grand Vizer), moves 1 step orthogonal\r
381 E = Elephant (aka Alfil), jumps 2 steps diagonal\r
382 D = Dabbabah (aka War Machine), jumps 2 steps orthogonal\r
383 M = Man (aka Commoner), moves as King, but is not a royal piece\r
384 O = Cannon, moves along Rook lines, but cannot capture unless it jumps over\r
385             exactly one piece (friend or foe), and captures the first piece\r
386             it encounters thereafter. It can only jump if it captures something.\r
387             The piece jumped over (the 'platform') is not affected.\r
388 The other pieces have not yet any moves implemented:\r
389 H = Nightrider\r
390 G = Grasshopper\r
391 In games that use the mentioned pieces as described (Shatranj, Courier, Capablanca Chess) you can leave legality testing on. If you use them to represent pieces that move differently, you should switch legality testing off.\r
392 \r
393 Pawn moves\r
394 Pawn motion is made dependent on the variant played: in Shatranj and Courier the double move is forbidden. In those games promotions are always to Ferz. In Capablanca Chess the ArchBishop and Chancellor also appear as choices in the promotion popup box.\r
395 \r
396 \r
397 /variant="normal" \r
398 Several new variants names are added (replacing "variant31" upto "variant36"). They affect the initial position. (Board size has to be set separately.) They are:\r
399 courier    (a Medieval predecessor of modern Chess, played on a 12x8 board)\r
400 capablanca (on a 10x8 board, featuring Archbishop and Chancellor)\r
401 gothic     (as Capablanca, but with a more exciting initial setup)\r
402 xiangqi    (Chinese Chess)\r
403 shogi      (Japanese Chess, no support yet)\r
404 fairy      (This variant plays on 8x8 with HEW in stead of NBR on the Queen side, \r
405             so that all back-rank pieces are (potentially) different)\r
406 Make sure the selected board size matches the variant; this is not automatic\r
407 \r
408 Xiangqi and Shogi support (or lack thereof)\r
409 Xiangqi is only partially supported. The board display is western-style (the pieces play on squares, rather than grid intersections). The legality testing uses the Shatranj Knight and Elephant, that cannot be blocked, and thus allows some moves that should be illegal in Xiangqi. The Palace region is indicated on the board, but there is no testing if the King or Mandarins (implemented as ordinary Ferzes) leave the Palace. SAN might be non-standard, as it uses O to indicate Cannon. Most of this will be fixed in a future version.\r
410 Shogi is not yet supported at all, first the shaky implementation of Crazyhouse will have to be beefed up.\r
411 \r