Version 1.466 (March 31, 2005) ------------------- * Fixed: Some reliability problems with I/O when pondering on a dual processor machine. Version 1.465 (March 24, 2005) ------------------- * New Feature: Pondering (toggleable in xboard) * New Feature: Move Now * New Feature: Analyze Mode * New: Distribution now includes a makefile for the first time. * Fixed: A bug involving the hash table. * Improved: Way the hash table is used in some situations. version 1.464 (March 2, 2005) ------------------- * New: Use of platform-specific libraries. See updated readme and comments in source. * Improved time controls: Allows more aggressive and more reliable use of the clock. * New input code allows for input polling - expect to see pondering and "move now" soon. * PV Collection: engine now shows entire sequence of PV moves, not just the next one * Moves stored in hash are searched before move generation. * Better detection of thrice repetition in search. * Introduced new mate scoring system. It is now much less confusing, especially to the user. Mate vals are absolute, not relative to depth. Now a mate val is based on moves-to-mate. This makes search extensions safer. * Check detection: now allowing unlimited check extensions in order to better detect checkmate and checking threats. * Faster inCheck() routine, which is now used to cull illegal moves into check. * Introduced a fully-legal move generator for finding moves out of check. * Added singular response extension. * Various minor bugfixes and optimizations. Version 1.460 (February 2, 2004) ------------------- * New: Executable on website compiled with a faster compiler instead of the one in my IDE. In this case, MinGW. * Fixed: Found some issues with the hash table. Once again trusting hashtables values by default (in 1.458 default was to not trust hashtable, as sometimes it led to blunders). * Changed: No longer counting up piece values in evaluate(), now keeping a running total of material score and updating as each move is made. This reduces piecevalue lookups by a ratio of 22:1 ! -Thanks Bob Hyatt for suggestion! Also doing the same for positional scores, and other relevant data. * Changed: The sorting changes first made to moveSort are now also made to CaptureSort. * Optimized: Stored values used in sorting to speed up the sort speed. 6x fewer calls to moveVal(). * Optimized: Selection sort used instead of Quicksort. Eliminates unnecessary sorting effort when one of the first moves searched causes a cutoff. * Optimized the following functions: analyzeBoardControl, isBattery, checkExchangeThreat, pieceValue, determineKingSafety. Some of these did a little more work themselves to greatly reduce the number of calls to another. * Optimized: Rearranged switch statements, altered moveSort values, and other minor tweaks. Version 1.458 (July 17, 2003) ------------------- * New: ChessRikus makes its first appearance on FICS! account: chessrikus(C) ; owneraccount: bischoje * New: No longer do check detection in search tree -- moves into check are detected at next ply and voided, in check is evaluated as side-effect of analyzeBoardControl() -Thanks Bob Hyatt for suggestion! * Modified: Evaluation to avoid drawish situations (repetitions and/or 50 move count adding up too high) if winning. * Optimized: Speed optimizations in functions such as "makeNode" and "addNodeToList". * Added: analyzeBoardControl function gives eval more understanding of the board. * Added: Singular search extensions (due to checks and/or tactical danger) * Fixed: Bug in incremental time controls that could lead to loss on time if initial time > 10 minutes. * Fixed: Bug in fifty move count: promotions didn't reset the count. Could lead to loss on time on FICS! Version 1.457 (May 18, 2003) ------------------- * New: Move generation through precalculated "MOVEVECTOR"s - Dramatic speed increase results in at least 1 additional level of depth in most positions. * Added: Support for /Depth option in xboard/winboard (sd command) * Added: 1 ply search extension for leaf nodes in check, instead of 300 point penalty in evaluate function. * Fixed: 2 Logic errors associated with transposition table storage and alpha-beta pruning. * Fixed: Capturing a rook that has not moved now prevents castling to that side in search logic. This bug caused crashes and logic errors. * Fixed: Repeatedly retracting and redoing a move can no longer cause "draw by repetition" being reported. Note: thrice repetition may not be detected properly if there was a capture retraction. (But it will not be falsely claimed anymore). Version 1.456 (May 1, 2003) ------------------- * Changed: Search engine now uses only one board. It executes and undoes moves instead of making duplicate boards for each position. 5-10% gain in speed. * Fixed: More backwards compatible to prot 1 (older winboard), since Chessmaster9000 uses this protocol. * Fixed: A crash that occured with xboard in linux. * Fixed: Now possible to retract a move that resulted in a gameover position. Version 1.455 (March 31, 2003) ------------------- * Updated & enhanced winboard/xboard protocol * Enhanced ability to play multiple games in a row without errors. * Added: Support for EDP test suite. Run EPD2WB.exe with -s1 and -t flags. * Added: Support for xboard commands "Undo" and "Remove". This allows user to retract/undo moves. * Added: If engine has to re-search at same depth, it displays (r) in thinking output. * Fixed: Bug in loading custom positions that might cause crash if black to move. * Fixed: Bug in loading custom positions that might cause crash if castling not available. * Fixed: No longer uses the "newbest" if a search fails low out of an aspiration search, and we don't finish the re-search in time. Found previous-depth's best move to be a safer bet. Version 1.454 (March 19, 2003) ------------------- * Added: Aspiration Search Windows. * Added: Additional hash table, hash size moves from 10mb -> 12mb. * Added: Support for conventional chess clock. * Fixed: Cleaned up code for the search functions, resulting in minor speed optimizations. * Updated: Draw by thrice repetition detection - now takes into consideration side to move & enpassant availability. (Previously it only considered board position and castling availability) Version 1.453 (Feb 10, 2003) ------------------- * Updated & enhanced winboard/xboard protocol * Added: Draw by thrice repetition detection * Added: Draw by 50 moves detection * Added: Draw by insufficient mating material detection * Fixed: Failure to find black king in check on the first rank (Could lead to crash!!) * Fixed: Incorrect evaluation of king positions * Fixed: Computer thinking it was ahead with material advantage but not enough material for mate Version 1.452 (Feb 4, 2003) ------------------- * Added feature to load saved games and custom positions (winboard/xboard only) * Enhanced king position evaluation in the endgame. * Added: Version info to the distribution .exe (although put 1.451!! lol) *** Began Changelog Here, entries below this are more vague *** Version 1.45 (January, 2003) ------------------- * Added: Transposition Table (10mb) * Fixed: Castling Rules incorrect * Fixed: Various bugs Version 1.41 (December, 2002) ------------------- * Updated & enhanced winboard/xboard protocol * Added: Time Controls (Incremental Mode) * Added: Iterative Deepening * Added: Move Ordering * Enhanced: Full-Depth Quiescence Search * Fixed: Various bugs Version 1.4 (Winter, 2002) ------------------- * Began work again on program after long period of inactivity * Fixed: Memory Leak!! Program no longer eats up tons of memory! * Fixed: Alpha-Beta implementation: now prunes more aggressively (correctly) * Fixed: Many other bugs (including a crash when black is checkmated) * Updated: Began altering protocol to incorporate winboard/xboard's new protocol 2! Version 1.3 (Summer, 2001) ------------------- * This version constitutes additions made during lulls in work * Most prominently, my first attempt at static tactical analysis. I do not currently use the code I made here, but it includes static analysis of attacks by various pieces, and tries to predict whether there is a fork. I think that someday this idea holds promise, but this version is way too crude. I was trying to compensate for extremely shallow depths I was reaching at the time. Version 1.2 (Summer, 2000) ------------------- * This version would be my primary build for almost 2 years. * New features included a quiescence search. Version 1.0 (Spring, 2000) ------------------- * Developed in only a few weeks for my data structures class. * Included full legality testing, and fixed-depth search with partial Alpha-Beta pruning. * Included a rudimentary protocol for winboard/xboard: simple, yet functional. * Included a text-mode for use without winboard/xboard.