TRACE 1.37a - Nov 17 2006 RELEASE
- Just a minor patch realease to avoid an infinite loop in the evaluation code.
  Thanks to Leo for reporting this _before_ WBEC started!
- Slight change to qsearch hashing to make it search slightly faster (3%)
- Connected passers bonus increased slightly

TRACE 1.37 - Nov  9 2006 RELEASE
- This is mainly a bug fix release (and it SHOULD be stronger than 1.36)
- Fixed a STUPENDOUS passed pawn evaluation bug where white was rewarded for
  possessing an unstoppable passer ONLY if white had no pieces....
- Fixed another HORRENDOUS bug in passed pawn scoring where black was
  not rewarded correctly for having an unstoppable passer.
- As a sidenote the two bugs above caused T1.36 to do some very dumb things and
  I'm 99% sure they cost her a playoff in the Australian Championships. But that's my
  fault - who else is to blame???
  A big THANKS to Guenther Simon (RWBC Tournaments) for pointing out the bug(s) and providing
  a test position.
- Fixed an analysis mode i/o bug under Arena (and probably other GUIs as well)
- Queen value reduced to cure some bad misevaluations of material imbalances
- Added encouragement to trade down pieces when winning
- Tweaked backward pawn scoring
- Improved bishop and pawn coordination
- Increase Rook value as pawns disappear
- Decrease Knight value as pawns disappear
- Added increasing bonus for wing majorities as pieces disappear
- Passed pawn values tweaked.
- Some small code optimisations...

TRACE 1.36 NC3 - Aug 21 2006 RELEASE
- This version came =2nd at the Australian Chess Championships 2006.
  I had intended for TRACE 2.00 to be entered but was forced due to time constraints to
  make some improvements instead to 1.35...
- The list of changes below is only a summary of the highlights...
- Extends moves that give check and also detects and extends single replies to check
- Transpositional opening book (book.bin). Untuned but surely better than the old book.txt

  NOTE!!!!!!
  ==========
  PLEASE DOWNLOAD TRACE_BOOK.EXE FROM http://members.optusnet.com.au/~john.boyd/ AND RUN IT IN
  THE SAME FOLDER AS TRACE.EXE. IT WILL EXTRACT THE NEW OPENING BOOK. (book.bin)

- Implemented Late Move Reductions popularised by always helpful Tord Romstad.... so
  now TRACE's average search depth is about a ply or two deeper.
- Improved backward pawn detection
- Passed pawn code reworked to take into account pieces and not just pawns
- Piece value tuning... Q v RR was giving an excessive bonus to the Q...
- Time management improved to use more time in the first half of the game.
- Pruning is disallowed for moves that will probably alter alpha... so TRACE sees more tactics.
- Extensions are more strict... ie. only _safe_ passed pawn moves are extended
- Move legality is tested before makemove... so she is faster now.
- Nullmove reduction is now a mix of R=3 and R=2. Previous versions only used R=2.
- Search blindness due to lazy eval and delta pruning reduced.
- Quiescent move generator additionally generates 'interesting' pawn moves.
- Fixed some more analyze mode i/o lockups under Arena...
- Hard to give an exact figure but my tests show >40 Elo improvement over 1.35
- On an AMD64 Athlon 4000+ TRACE attains >1600000 nodes per second when running the built in
  benchmark. Type 'bench 13' at the prompt to test this yourself.

TRACE 1.35 - Aug 22 2005 RELEASE
- Removed experimental code that was meant to help hash table from 'log jamming'.
  It ruined searches > 4 seconds by wrecking move ordering and reducing hash table
  consistency. I guess you could say the experiment failed. :-)
- Changed input/output to buffered.
- EGTB: Limited to <= 5 man tables now... and TRACE.EXE shrinks from 680K to 300K. Ugh.
- Fixed 'analyze mode' problems under Arena with i/o lockups.
- Stopped 'analyze mode' re-searching when max ply depth exceeded (61 ply).
- WacNew on P3-600Mhz scores 299/300 @ 15 secs/pos
- bench 7 on P3-600Mhz: nodes=278130, secs=1.28, nps=216950
                        pv=b2b3 c8a6 g5e4 d6c6 c2e2 f7f6 e2g4

TRACE 1.34 - Aug 11 2005 RELEASE
- This is 'almost' the same version which competed at NC3 2005.
- Less likely to run out of time when using incremental time controls
- Pondering is now predictive. Prior versions simply pondered on
  the current position (to saturate the hash table).
- Improved move ordering, optimized history and killer table usage
- Tweaks to pawn scoring
- Threat extension tuning
- Hash pruning relaxed for PV nodes.
- Qsearch recognizes stalemates before standing pat.
- Hash table allows depth entries to be overwritten during deep searches
- Many evaluation changes. Some glitches fixed... 999,999 more to go...
- SEE (static exchange evaluator) performance improvements
- Piece values adjusted
- Two bishops bonus increased.
- Bad trade penalty adjustments.
- King shuffling in middle-game reduced
- Weak back rank detection
- Compiled for Athlon/P4 performance
- WacNew on P3-600Mhz scores 299/300 @ 15 secs/pos
- bench 7 on P3-600Mhz: nodes=278130, secs=1.28, nps=216780
                        pv=b2b3 c8a6 g5e4 d6c6 c2e2 f7f6 e2g4

TRACE 1.33B - Dec  7 2004 RELEASE
- This is IDENTICAL to 1.33 except for these 2 bug fixes.
- Bugfix: CPU not being fully relinquished when waiting for more input.
  It was using Sleep(0), apparently Sleep(1) was needed.
  This affected only one engine (Spike) as far as I know.
- Bugfix: This one evaded detection for a very long time. I am thrilled to
  fix it: Searches exceeding 4 Giganodes would crash the engine.
- MES400New @ 15secs on P3-450Mhz scores 335/400

Version 1.33 - Nov 21 2004 RELEASE
- Bishop fianchetto bonus reduced :-)
- Root EGTB moves are made without searching to avoid time losses
- Bugfix: pondering was broken
- bench 7 on P3-450Mhz: nodes=506383, secs=4.54, nps=111611
                        pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6e7

Version 1.32 - Nov 15 2004 RELEASE
- Some small optimisations... 5% faster overall.
- Infamous trapped bishop code added.
- Mate threat and recapture extension fixes/tweaks.
- Backward pawn penalty increased.
- Bishop fianchetto bonus increased.
- All output sent via WIN32 WriteFile().
- Search is now aborted using C++ try/catch blocks.
- Updated the EGTB code to Eugene's latest... now the exe is huge...
- Bugfix: In extreme time trouble it could fail to find a move.
- Bugfix: Eval without EGTB returned draw for K vs K+R. (Thx to Mihail Croitor)
- Bugfix: Input parsing of promotions was broken. (Thx to my daughter Leah!)
- Bugfix: "st x" and "sd x" commands were broken.
- Bugfix: Analyze mode no longer researches when maxply reached...
- Bugfix: Mate scores in WB/Arena corrected
- Bugfix: PV output could overflow into next field during long searches.
- WacNew on P3-450Mhz scores 298/300 @ 20 secs
- bench 7 on P3-450Mhz: nodes=500333, secs=4.46, nps=112232 score=81
                        pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6e7

Version 1.31 - Oct  2 2004 19:04:46
- Threaded input polling
  (Many thanks to Alessandro Scotti for his code)
- King safety improvements
- Fianchetto bishop scoring (needs more work)
- Various small optimizations
- Fewer 'Pawn on 7th' extensions
- Nullmove counts as a ply now
- Repetition optimization
- Changes to hashing... no nullmove hash signature
- Improved support for Arena analyze mode
- WacNew on P3-450Mhz scores 297/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=414049, secs=3.73, nps=111124 score=70
                        pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6e7 c1g5

Version 1.30 - Aug  4 2004 13:14:02
- an updated logo - much faster now ;-)
- Using MSVC++ compiler (so TRACE runs ~16% faster)
- mainly qsearch enhancements...
  generates checks at 1st ply of qsearch
  detects mates and repetitions in qsearch
  some tactics found a ply earlier
  solves WAC 141 in 1 second now... 1.29 took 223 secs!
- bugfix... exposed backward pawn penalty was broken
- WacNew on P3-450Mhz scores 298/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=324128, secs=2.56, nps=126365 score=71
                        pv=h2h4 h7h6 h4h5 h6g5 h5g6 f7f6 g2f3

Version  1.29 - Jun  8 2004 11:31:46
- Bugfix! doubled pawn eval was asymmetric
- using too much time early in game
- hashing in qsearch re-enabled, for now.
- king tropism bonus added to rook on open file scoring
- WacNew on P3-450Mhz scores 296/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=432020, secs=3.29, nps=131273 score=48
                        pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6c7

Version  1.28 - Jun  7 2004 13:14:56
- Fixed startup problems when running under Arena.
- Fixed analyze command under Arena
- Arena users be aware that "engine.ini" has an error -
  The config file is called "trace.cfg"  (not trace.cgf)
  Next version of Arena should correct this.
- Added pawn hash tables... finally!  Pawn eval needs work though.
- New command 'hashp x' allows sizing/resizing of pawn hash table
  where x is the maximum size in Mbytes
  The number is rounded down to one of the following : 0, 1, 2, 4, 7, 14, 28.
  I recommend adding the following line to TRACE.CFG:
  hashp 4
  which will allocate about 3.5 Mb for pawn hashing.
- Detects rookpawn and bishop draws much earlier now.
- Fixed incremental time usage - it was ignoring the increment.
- Added some opposite castling knowledge eg. pawn storms
- Revised trade down bonuses and ending evaluations... more work needed.
- Lazy eval tuning.
- Rewrote evaluation, added outpost scoring and cramped piece penalties
- Tweaked repetition detection
- Removed qsearch hashing and mate/stalemate detection.
- Fixed rare unreported bug where hash tables could contain corrupt data
  and cause a crash. Usually in endgames or long searches.
- Using better zobrist keys so hash usage is more effective.
- Incremental piece/square values in makemove()
- Makemove cleaned up and optimised
- Some king safety changes - much more work required
- Improvements to Internal Iterative Deepening - smaller trees now.
- Nodes counted differently now. I just count every legal makemove as a node.
  This means NPS will appear lower than previous versions.
- WacNew on P3-450Mhz scores ~295/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=467112, secs=3.57, nps=130807 score=46
                        pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6c7 c1g5

Version 1.27 - Feb 27 2004 12:42:28
- Auto-resign bug fix (Resign flag wasn't being reset for next game)
  Thankyou to Hartmut Woldeit for the bug report.
- book bug fix
  The 'book' command will now toggle book usage and display the new setting.
  This had a bug where it would only switch book usage OFF.
- help
  This command now waits for a keypress after displaying first page of help.
- WacNew on P3-450Mhz scores ~295/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=630484, msec=3070, nps=205369 score=25
                        pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.26 - Feb 25 2004 21:35:06
- Added internal iterative deepening...
- Reduced futility pruning... to cure some tactical blindspots
- Improved time management
- Tradedown bonuses
- Fewer EGTB lookups...
- Bug fix (memory overwrite problem)
- WacNew on P3-450Mhz scores ~295/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=630484, msec=3130, nps=201432 score=25
                        pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.25 - Oct 17 2003 00:00:05
- BugFix: Quiesce futility pruning was mishandling promotions.
- Bugfix: Recapture value table was unsigned yet it contained signed values.
          So, capture extensions were working only for recaptures
          to the same square.
- Removed hashp command from 'help' until fully implemented.
- Some knowledge about rooks and isolated pawns added
- Added 'good bishop' knowledge
- Value of queen increased relative to rooks to avoid bad trades
- bench 7 on P3-450Mhz: nodes=571182, msec=2960, nps=196282 score=25
                        pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.24 Sep 23 2003
- NO MORE COMMAND-LINE PARAMETERS!
- The text file TRACE.CFG contains the program settings.
  TRACE will look for it in her install directory.
  If not found it will be created with default values.
  Edit this file to suit your needs.
  It will be read as a sequential list of commands.
- supports WB 'analyze' mode
- supports WB 2 commands eg. setboard, ping, features etc
- configurable resign option.... Hi Leo! :-)
  The following line in TRACE.CFG will cause TRACE to resign when
  she's behind by >6 pawns.
  resign 6
- Hash table is now 2 tiered - depth-based and always overwrite
- Corrected bad compiler switch... gained 15% more speed
- Coding tweaks made attack() function 20% faster.
- QSearch now uses SEE... slower, but tree is considerably smaller
- Internal piece representation changed to one array indexed by type.
  Consequently, probe_egtb(), eval(), attack() and gen() are more efficient.
- Reduced frequency of EGTB probes... only probes when necessary.
- Bugfix: hash_to_pv() was writing garbage to pv.
- Bugfix: array bounds error could cause a crash - fixed...
- millisecond timer now uses U64 variables to avoid U32 rollover problems
- fixed hard-coded random numbers used for zobrist keys, bit 47 and 63 were
  never used... :o)
- removed mobility scoring for rooks and bishops
- added internal node recognition code
- added more evaluation knowledge concerning passed pawns,draws
- Source code cleanup, source control system implemented.
- WacNew on P3-450Mhz scores ~292/300 @ 27 secs
- MES400 on P3-450Mhz scores ~320/400 @ 15 secs  (using some 5 man EGTBs)
- bench 7 on P3-450Mhz: nodes=397565, msec=2030, nps=195844 score=27
                        pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.23 21st July 2003  (Unreleased, achieved =3rd in Aust. CC Champs.)
- fractional ply extensions implemented
- improved incremental time management
- improved blitz time management
- uses hard coded zobrist keys for compiler independence
- two lines added to opening book
- added mobility scoring for rooks and bishops
- added bonuses for attacking key squares around enemy king

Version 1.22 29th June 2003
- fixed commandline crash problem
- reverted to 1.20 extension logic (so we can accurately measure the EGTBs)
- WacNew on P3-450Mhz scores ~290/300 @ 27 secs
- MES400 on P3-450Mhz scores ~318/400 @ 15 secs  (using some 5 man EGTBs)
- bench 7 on P3-450Mhz: nodes=1553029, msec=7580, nps=204885
                        pv=h2h4 d5f6 c2e2 c8a6 h4h5 g6e7 c1e3

Version 1.21 28th June 2003
- Added NALIMOV EndGame TableBase probing. Supports up to 6 man tables.
- WacNew on P3-450Mhz scores ~291/300 @ 27 secs
- MES400 on P3-450Mhz scores ~318/400 @ 15 secs  (using some 5 man EGTBs)

- Added command-line parameters /EGPATH and /EGSIZE (case insensitive)
  EGPATH  specifies the folder where the EGTBs reside.
  EGSIZE specifies the size of the cache (in MB) for accessing them.
  The default for EGSIZE is 8Mb (recommended)
  The default for EGPATH is .\tb

  Example: TRACE.EXE /HASH 64 /EGPATH e:\tb /EGSIZE 8

- Slightly reduced bonus for 2 bishops
- Improved draw detection with minors vs minors+pawns
- Negascout added to qsearch, forgot to add it to 1.20 (oops!!)
- Increased penalty for lost castling rights.
- bench 7 on P3-450Mhz: nodes=1128127, msec=5490, nps=205487
                        pv=h2h4 d5f6 c2e2 c8a6 h4h5 g6e7 c1e3

Version 1.20 14th June 2003
  ===================================================
        ATTENTION TOURNAMENT organisers !!!

      ** HASH PARAMETER IS NOW IN MEGABYTES **
  ===================================================
  Therefore, "/hash 16" will simply set the hash size to 16Mb.
  Note also that /hash 0 will now turn hash probing completely OFF.

  I'm sorry for any inconvenience the old method may have caused...
  The only caveat is that the size will now silently round down to the
  nearest power of 2... eg. /hash 17 will result in a 16MB hash table.

- Hash table is now persistent - no more clearing before a search
- Increased King safety penalties
- Piece values changed to avoid bad swaps
- Lazy Eval in middle and opening game... (conservative)
- More accurate scoring of some unwinnable endings...
- King tropism bonuses for queen in middlegame
- Two bishop bonuses
- Qsearch pruning of bad captures. Thanks to George Lyapko.
- SEE used for initial root move ordering
- Search output reformatted.
- New Aspiration Search replaces the standard TSCP Negamax.
- Dedicated root_search() function
- Move generator very slightly faster.
- Move ordering bonus for capturing last moved piece.
- Fixed problem with storage/retrieval of mate scores in hash table..
- Recapture extensions refined and toned down.
- Fixed timing problem when PC timer approaches rollover.
- WacNew on P3-450Mhz scores ~290/300 @ 27 secs
- MES400 on P3-450Mhz scores ~292/400 @ 15 secs
- bench 7 on P3-450Mhz: nodes=1305500, msec=6040, nps=216142 pv=h2h4 d5f6

(Versions 1.19 to 1.13 not released)

Version 1.12 9th April 2003
- Changed move generator to set ep square only when ep is possible
- Now storing negative depths in hash table (during QSearch)...
- Added null move threat extensions and tweaked to avoid search explosions
- Added 2 killer-move tables per side (improved WACNEW and MES400 test results)
- Experimenting with preserving killer moves between searches.
- Improved time management - will allocate even more time if search fails low
- Increased value of queen to avoid trades for rooks
- Reduced value of rooks slightly
- WacNew on P3-450Mhz scores 286/300 @ 27 secs
- MES400 on P3-450Mhz scores 300/400 @ 15 secs.


Version 1.11 5th April 2003
- Move ordering tweaked
- Modified opening book... removed dubious lines... extended others
- Fixed bug when using blitz time controls - couldn't extend on fail low...
- Made history heuristic use persistent data
- Fixed bug affecting 'fixed depth' and 'fixed time' time controls
- Added eval tables for rooks
- Removed Q on 7th rank bonus
- Fixed bug in 'bench' command that caused next 'eval' to return bogus values
- Improved King in square of pawn detection.
- Added extra condition to recapture extensions
- Lowered scores for R vs B and R vs N pawnless endgame so we don't exchange
  into a drawn ending thinking we're roughly 2 pawns up... This should also
  help TRACE to defend better when she has a B/N vs R
- Using yet another time management system, if game is 40 moves/40 mins
  we assume 42 moves/40 minutes when allocating time to think... This
  seems to work better....
- Tuned "piece for pawn" sacs penalty...
- Relaxed draw by insufficient material claims... better to be safe than sorry

Version 1.10 2nd April 2003
- Improved Winboard compatibility... when 'result' received assume "force" mode...
- Improved time management...again... to use more time... but not too much :-)
- Added recapture extensions to help with tactical blind spots
- Incheck flag added to hash record
- Penalised "piece for pawn" sacs... they generally don't pay
- Pondering half-implemented
  (the pondered PV is stored but hash is cleared after every move...)
- Book support stolen from TSCP 1.81... and to be honest... "book.txt" also
- Converted to 0x88 internal representation
- Added piece tables
- Added separate opening/midgame & endgame evals
- Better move ordering
- Slightly increased king safety bonuses
- Increased bishop value relative to knights
- help command
- Dynamic hash table resizing (type 'help' for info)
- Commandline hash sizing... eg "/hash x" specifies 2 ^ x entries.
*****************************************************************************
   (THIS METHOD NOW DEFUNCT.... SEE VERSION 1.20 for updated information!!!)
*****************************************************************************
- Incremental material evaluation
- Simplification into pawn endgame extensions
- Null move enhancements
- Better Castling bonus and a penalty for loss of castling rights added
- Makemove speedups
- Perft command added... to test move generation accuracy
- B+N mating knowledge
- B+RP draw knowledge
- Improved time management - will use more time if search fails low
- Improved support for Fritz 5.32 interface... responds to "." command
- Hashing replacement scheme improved
- Extracts PV from Hash
- Penalised blocked e/d pawns in opening...
- Repetition detection now working (fingers crossed :-)
- Fixed bug in king endgame evaluation - no bonus for centralisation... OUCH!
- WacNew on P3-450Mhz scores ~284/300 in 27 secs (to roughly compare with P4 2.4Ghz @ 5 secs)
- MES400 on P3-450Mhz scores ~292/400 in 15 secs.
- GMG3   on P3-600Mhz scores   39/63  in 15 secs.

Version 1.00, 8th Feb 2003
- First public release of engine (entered in WBEC Qualifying tournament)
- Added insufficent material scoring
- Added crude square of pawn scoring for KPK endings.
