Updated copyright year.
[cboard.git] / NEWS
blob90c9a957e1f9f56f99ccd4d5b833c86b9953d418
1 CBoard version 0.5
2 --------------------
3 Board details are now enabled by default.
5 Added configuration parameter color_board_castling to change the castling
6 availability colors when board details is enabled.
8 Added configuration parameter color_board_enpassant. Visible when board
9 details is enabled.
11 The default color for a color definition can be used be specifying '-' as the
12 color.
14 A more complete clock. Time controls and move increments are now supported.
15 This only works for human/human play at the moment.
17 CBoard now uses nearly zero CPU time.
19 When sent SIGTERM, save all games to save_directory if specified and ~/.cboard
20 if not before quitting.
22 Fixed opening and saving to compressed files. Appending to compressed files is
23 now supported.
25 Added form input history for single line input dialogs.
27 A few bugfixes. See ChangeLog for details.
30 CBoard version 0.4
31 --------------------
32 The status window is now on top of the roster tag window.
34 Added command line option -C to enable strict castling.
36 A better clock. Each player has its own clock. The input format is the same as
37 before and also supports 'G/5' format. I'll add more features later.
39 A few (some important) bugfixes. See ChangeLog for details.
42 CBoard version 0.3
43 --------------------
44 New versioning scheme. It's less confusing and easier for me to use X.X
45 format. I really only work and release on one branch anyway.
47 Added global CTRL-i which copies the current game to a new one.
49 Added -D command line option to enable debugging if debugging was enabled at
50 compile time.
52 Added configuration parameter "engine_protocol" which specifies the XBoard
53 protocol that the engine uses. Right now this only means whether to send SAN
54 formatted moves (version 2) or FRFR formatted moves (version 1, the default).
56 Added file browser binding CTRL-e to change the filename expression.
58 Added configuration parameter 'strict_castling'. When enabled a castling move
59 will be invalid if the opponent can attack a castling square, beit the King,
60 Rook or the squares between the two. The default is off. This also adds a
61 keyboard binding CTRL-p to toggle strict castling.
63 New status window line 'Flags' which shows game flags for the current game.
65 Bugfixes and invisible changes. See ChangeLog for details.
68 CBoard version 0.2.4
69 --------------------
70 libchess: Castling bugfix.
72 You can now customize the key bindings for each game mode. The old "bind"
73 configuration parameter has been renamed to "cbind". The new "bind" works like
74 this: 
76     bind  <game_mode>  <key>  <command>  [alternate_description]
78 where game_mode is one of play, history or edit. The command is the command
79 associated with the game_mode. See doc/config.example for the default
80 bindings.
82 Added macros. When pressing a single key multiple keys can be "pressed"
83 without interaction. This adds a configuration parameter "macro" which looks
84 like this:
86     macro  <game_mode>  <key>  <key_sequence>
88 It's kinda like "bind" but with a key_sequence instead of a command so make
89 sure you specify all the "bind" stuff before "macro" stuff. It's also
90 different in that you can specify "any" as a game_mode so you can access the
91 global keys.
94 CBoard version 0.2.3
95 --------------------
96 Added non-blocking message windows, input dialogs and menus. This means that
97 other games can be running while editing tags etc.
99 Added a move history tree menu. From this you can view and edit a moves
100 annotation. RAV will be supported problably in the next release.
102 The board details key 'd' has changed to CTRL-d and annotating a move in
103 history mode now uses the key CTRL-a.
105 A couple bug fixes. See ChangeLog for details.
108 CBoard version 0.2.2
109 --------------------
110 Black opening and history mode fix.
112 Tag window and long value fix.
114 Added frfr2san.pgn to test/.
116 Increased MAX_PGN_NAG from 5 to 8.
118 The "Result" tag is determined by the move validator. Don't trust the result
119 tag from PGN import format unless it's a draw and the result couldn't be
120 determined.
122 -E command line switch fix.
124 When there is no promotion piece in the move text, promote to queen.
126 A few PGN parsing and writing fixes. RAV, NAG, comments and EOG.
128 Fix for copying the cc.data file.
130 Fix installing config.example to PREFIX/share/man/man6.
132 Added Debianization stuff.
135 Cboard version 0.2.1
136 --------------------
137 The move validator is a little more than 5 times faster. The major problem was
138 initializing each games g->b board when a file was parsed. Now g->b has
139 disappeared and a single board is used (caching). I discovered this on
140 accident, learn something new every day. Still not as fast as 0.1.6 though.
142 Switching between games will remember the cursor position and selected piece.
144 Switching playing sides will update the White and Black roster tags.
146 Castling and en passant validation fixes.
148 Resuming a game with a Black opening fixed.
150 FEN tag fix when loading a file.
152 Fixed the 'u'ndo command.
154 Cosmetic menu fix.
156 Added configuration parameter 'board_details' to enable/disable it by default.
158 Added board details indicator at the lower-right of the board window.
160 Added a move clock for both Black and White. Also added a countdown clock that
161 can be set by pressing 'C' in play mode.
163 When an ambiguous piece was pinned both the pinned piece and the other piece
164 failed validation. This has been fixed.
166 Fixed another SAN bug. If an ambiguous piece was pinned and the other was on
167 the same file the libchess would put the rank next to the piece in the move
168 text rather than the file.
170 Fixed resuming a game from a previous move in the history.
172 SIGTERM and SIGINT are caught and both will have cboard exit cleanly.
174 Black opening fix. Also when saving.
177 Cboard version 0.2.0
178 --------------------
179 Quite a while since the last release, I've lost interest in the project off
180 and on but still keep at it enough to fix and add things. The most important
181 change in this version is better SAN handling. Ambiguities are fixed along
182 with frfr to SAN conversion. There are quite a few internal changes too but
183 unfortunately this version is quite a bit slower than the last do to more
184 functionality. I'm trying to find ways to speed it up though. The PGN portion
185 of the code has been split up into a library "libchess". This allows for easy
186 inclusion into other projects. In-game keys have changed quite a bit. Press F1
187 to see them. Also read the manual page as configuration parameters have been
188 changed/added/removed. Here's the rest of the changes:
190 Switch from CVS to GIT.
192 Lots of FEN tag fixes when parsing, saving and editing the board.
194 When in history mode, the cursor is updated to the last position on the board.
196 Support for Unix 98 ptys.
198 Show the repeat count in the status window.
200 Added command line options -V to only validate a .pgn file, -S to save a PGN
201 formatted game and -R to save a reduced PGN formatted game. The return value
202 of cboard will be 1 if there was a parse error or 0 on success.
204 Added option -t to save custom tags from the configuration file when -S is
205 specified.
207 Added option -E to stop processing the file when a game contains a parse
208 error. Also see configuration parameter stop_on_error in the manual page.
210 A few key bindings have been removed. Press 'F1' in game for help.
212 Added human/human play. Toggle it with the 'H' key.
214 Added engine/engine play. Toggle it with the 'E' key then hit 'g'o!.
216 I've got a new email address. Send any bugs reports patches etc to me at
217 bjk@luxsci.net.
219 When a piece is selected cboard will only highlight legal squares the piece
220 can move to.
222 Updated manual page. Read this because a few configuration parameters have
223 changed.
225 Added game key 'd' to show board details. Details are the enpassant square and
226 castling availability.
228 The parser now supports RAV. Moves are read into the history but the interface
229 is minimal at the moment. Saving also works but is buggy.
231 Support window resizing when in an xterm. Need at least an 80x24 terminal.
233 Support for all engines that utilize the XBoard protocol. Not very well
234 tested. GNUChess and Crafty seem to work fine though.
236 Added configuration parameter 'engine_init' which sends a command to the
237 engine when initialized.
239 The file browser (save/load prompt) supports filters.
241 A "Loading..." window/line when a file is being loaded.
243 Added configuration parameter 'bind' which binds a key to a command to send to
244 the engine when in play mode. Read the manual page.
246 Added key 'W' to show an engine io window.
248 New menu code. Looks better with custom colors. Type ahead searching is buggy
249 though.
251 Lots of internal, parser, validation and bug fixes.
254 CBoard version 0.1.6
255 --------------------
256 A few important save game, validation and file parser fixes.
258 Added command 't' to edit tags. You won't be prompted to edit tags anymore
259 when saving.
261 Renamed game deletion commands 'd' and 'D' to 'x' and 'X'. The delete commands
262 also accept a "range" to delete by specifying a count the one of the delete
263 commands then a direction ('<' or '>').
265 Tildes in the load/save dialog are expanded.
267 Added commands '!'-'*' and 'A'-'H' to move the cursor to the specified
268 rank/file.
270 Move numbers and tags are no longer needed in a PGN file.
272 The ncurses interface is initialized before trying to parse a file specified
273 on the command line.
275 The annotation viewing commands '[' and ']' have changed to 'V' and 'v'.
277 The next/prev move text expression keys '}' and '{' have changed to ']' and
278 '['.
280 Added game searching commands '?', '}' and '{'. These work like to move text
281 searching commands, but for roster tags instead.
283 Now parses the FEN tag. When editing tags, you can press CTRL-f to insert or
284 update the FEN tag with the current move in the move history.
286 Added command 'e' to toggle edit mode. This will allow positioning, deleting
287 ('x' command) and inserting ('I' command) of pieces. No move validation is
288 done in edit mode and may only be enabled with a fresh board ('N' or 'n'
289 commands). After leaving edit mode, a FEN tag is created. It's somewhat
290 useless right now though.
292 Redone main command keys help.
294 Added commands '_' and '+' to decrease and increase the engine depth. These
295 can take a count.
298 CBoard version 0.1.5
299 --------------------
300 The repeat count commands are now 0-9. The first non-integer is the command to
301 repeat. So now you can have more than ten as a count. Pressing ESCAPE in the
302 middle of the count will reset it (similar to VIM's repeat).
304 The 'u'ndo command can take a repeat count.
306 Replaced the black and white status windows with a Seven Tag Roster window
307 (like before). The black and white info will be in the game status window.
309 Check and checkmate recognition are working (not draw though).
311 Added history move text searching commands. '/' will prompt for a new regular
312 expression and jump to the next match, '{' and '}' will jump to the previous
313 or next match prompting for an expression if one doesn't already exist. All of
314 these commands can take a repeat count.
316 Move numbers in the history window are full move numbers now. So by default,
317 the cursor keys in history mode will jump 2 moves. Pressing SPACE in history
318 mode will toggle half-move stepping.
320 The "board_moves" color parameter has been replaced by "board_white_moves" and
321 "board_black_moves" to specify the valid move color for those squares.
324 CBoard version 0.1.4
325 --------------------
326 This release fixes a few bugs and plugs a couple memory leaks in the menu code.
327 The SAN move parser still needs quite a bit of work though when interfaced
328 with the engine, so check and end-of-game determination are on hold until that
329 gets stable. But viewing games seems alright. Beginnings of ICS support
330 (ignore the manual references as its useless right now). Hopefully the code is
331 little more readable and easier to follow now. Heres the rest of the news:
333 "make install" will install the data files and example configuration file to
334 DATADIR/cboard (/usr/local/share/cboard by default). They will be copied to
335 ~/.cboard if they cannot be found.
337 Linux runtime fixes.
339 Can load and save .Z, .gz, .zip, .bz and .bz2 compressed files. Can't append
340 to a compressed file though (for now).
342 If theres a parse error when loading a file with multiple games, CBoard will
343 keep reading the file rather than aborting.
345 When editing the "Site" tag, you can lookup country codes which are stored in
346 ~/.cboard/cc.data.
348 If a filename doesn't contain a ".", then ".pgn" is appended to it when
349 saving.
351 A few but important PGN parser fixes.
353 Tags are sorted when loading and saving.
355 Added command "d" to toggle the delete flag of the current game. Pressing "D"
356 will delete all flagged games or the current one if none are flagged. This
357 adds the configuration parameter "delete_prompt". The default is on.
359 Added configuration parameter "valid_moves" to show valid moves when a piece
360 is selected. The color can be adjusted with the "board_moves" color parameter.
361 The cursor keys will move to the associated valid move. This is still buggy
362 though.
364 Added cursor repeat commands 0..9 (zero being ten). These will work with the
365 board navigation, history browsing and game browsing keys.
367 Removed cursor movement command 'j', 'k', 'l', and ';'.
369 Added commands 'j' and 'J' to jump to a history move number or game number.
371 Added "board_window" color configuration parameter.
373 Added "engine_cmd" to specify the chess engine path, command and any
374 arguments. The default is "gnuchess xboard". Note that other commands/engines
375 haven't been tested.
378 CBoard version 0.1.3
379 --------------------
380 Can now load and save SAN move format! Still not perfect I'm sure.
382 A file browser has been added to the load/save game prompt. Pressing TAB will
383 enable it.
385 Added configuration parameter "save_directory". If set, saved games will be
386 stored here and will also be the default open location of the file browser.
388 The annotation viewing keys have changed from 'V' and 'v' to '[' and ']'.
390 Configuration parameters whose values were either "0" or "1" are now "off" or
391 "on" respectively.
393 New configuration parameter "line_graphics". If "off", then the board line
394 graphics will not be drawn.
396 The data window has been replaced by two separate white and black player
397 information windows. This adds color configuration parameters white_... and
398 black_...
400 The PGN file parser now supports "!?"/"!!"/etc. NAG format and end-of-game
401 markers.
403 When multiple games are loaded, you can choose to save all games or just the
404 current one.
406 When saving from history mode, you can save up to the current move or all
407 moves.
409 Added configuration parameter "save_prompt" and ingame command "S". When set
410 to "off", don't prompt to edit roster tags and for history save commands when
411 in history mode.
413 The ingame "N" command has changed to start a new game from scratch. The "n"
414 command starts a new game or round.
416 Added command "D" to delete game.
419 CBoard version 0.1.2
420 --------------------
421 Loading a saved game and resuming a game from previous history works now. This
422 is done by having the chess engine read a FIFO and have CBoard write to it.
423 This allows for easy game switching when more than one game has been loaded.
425 Promotions, En Passant and castling moves are recognized now.
427 Agony strings are stored in ~/.cboard/agony.data and can be disabled with a
428 configuration file option (see below).
430 Rewritten move text section in the PGN parser. Now move annotations are read
431 and written and can be viewed with the 'v' and 'V' commands in history mode.
432 This supports both move comments and NAG data (see below).
434 There is no longer a -f command line option to specify a configuration file.
435 The new configuration file is stored in the ~/.cboard directory along with a
436 few data files. The files that need to be found in this directory are:
438     config     - This is optional, CBoard will use defaults if not found.
439     nag.data   - For viewing and editing move annotations.
440     agony.data - Agony strings displayed in the status window when a capture
441                  has been made.
442     fifo       - Used for resuming games.
444 You can find the data files along with an example configuration file in the
445 'etc/' directory of the archive. You'll have to copy them over to ~/.cboard
446 yourself until I figure out a way to do it with 'make install'.
448 You can define custom colors and attributes in the configuration file. See the
449 manual page for more infomation on the syntax.
451 Added configuration parameters:
452           pgntag - Define custom tags for new games or override defaults.
453            agony - Show a random agony string on a capture.
454     historyagony - Enable or disable agony strings in history mode.
456 SAN move format is the next major thing that needs to be done. It seems like
457 I'm going in reverse order of how things should be developed, but oh well.