This page contains an overview of the changes that are implemented in each release.

Release 2.3

Changes of 2.3 compared to 2.202

  • Bugfix Time calculation with sudden death matches
  • Create uci option “MoveOverhead” for definition of minimal timebuffer (default 100ms)
    • Thanks to Ipmanchess for noticing the bug and testing the solution
  • Add bad history pruning
  • LMR tweak when inCheck
  • Reuse of counterHistory and followUpHistory (no reset to 0 before calculation starts anymore)
  • Tweak of insufficient material / draw values
  • Restructure nullmove implementation
  • Tweak of different aspiration windows with multi threading
  • Add endgame complexity in eval
    • Thanks to Alayant for introducing/sharing it
  • Add Rook/Queen on rank 7 to eval
  • Max hash size changed to 256GB
  • Multi threaded hash table initialisation
  • Usage of hugepages in Linux
  • Shuffle rootmove captures every 4 threads
  • Bugfix 3 fold repetition check
  • Tweak IID depth/depth reduction
  • Remove see scoring check evasions in Quiescence
  • Add 3 fold repetition check in Quiescence (again)
  • Randomize drawscores 3-fold
  • Bugfix Huge pages under Linux

Release 2.202

Changes of 2.202 compared to 2.2

  • Tweak of LMR formula
  • Fixed timemanagement bug which caused a early search stop when pondering or in infinite analysis

Release 2.2

Changes of 2.2 compared to 2.106

  • Tweak of LMR formula in combination with improving staticEval
  • Tweak of time management
  • Initialize of killers[ply + 1]
  • Change of hashkey size to 16 bits in hashtable which results in 2 extra bucket entries (worse single thread, better multi threaded)
  • Changes in LMR reduction
  • Reactivation of good history extension
  • Reactivation of stop search when only failHigh in iterative deepening and regular time is up
  • Added Buildtype BMI and NOP in version description

Changes of 2.106 (CCC10) compared to 2.105

  • Retune of eval parameters with “lichess-good” dataset (Thanks to Fabian von der Warth, Jon Dart and Vivien Clauzon for the data and discussion!)
  • Reactivation of bad capture pruning

Changes of 2.105 (TCEC 16 League 1) compared to 2.102

  • Retune of eval parameters
  • Use of different Razor values and LMP values for an improving staticEval
  • Change of time management for X moves/Time unit near the end of the unit
  • Reactivation of space eval combined with retune
  • Lowered extra time factor when pondering
  • Restructure of history datastructure and make it threadlocal
  • Tweak of LMR formula
  • No init of followup history per move

Changes of 2.102 (CCC9) compared to 2.1

  • Bugfix: display uci  “option name SyzygyProbeDepth type spin default default 0 min 0 max 127″
  • Lower iteration depth in Iterative deepening loop in case of failHigh (idea Stockfish)

Release 2.1

Changes of 2.1 compared to 2.018T

  • Reactivation of hash table usage in quiescence
  • Reactivation of bad capture pruning
  • Implementation of pawn storm in evaluation
  • Finetuning of LMR
  • Change in ab routine:  For pvNodes a hash score will never lead to a cut-off. This change results in a more stable usage of the search time with less extremes.
  • Don’t use null-move in pvNodes
  • Change of Internal Iterative Deepening depth (depth -2 instead of depth-3)
  • Addition of pawnMobility in evaluation

Changes of 2.018T (TCEC15 div2 version) compared to 2.016T

  • Bugfix engine crash with 2 or 3 threads (due to nps addition #@&!)
  • Removal of bad capture pruning
  • Removal of using the hash table in quiescence search(this lead to a significant higher nps with may cores, but also to a serious loss of elo…)

Changes of 2.016T (TCEC15 div3 version) compared to 2.005T

  • Reactivation of Counter move
  • Removal of Followup move
  • Implementation of Counter Move History and Followup Move History
  • Simplification of passed pawn evaluation
  • Syzygy Tablebase support
  • Bugfix in timemanagement
  • Finetuning of LMR
  • Addition of NPS in info string
  • Change of king safety area to 3×4
  • Maximization of Probcut moves
  • Restructuring of getNextMoveStaged (to get the next move in the moveloop in ab)
  • Implementation of bad capture pruning

Changes of 2.005T (TCEC CUP 2 version) compared to 2.0

  • Fixed bug for illegal pondermoves/pv from hashtable
  • Keep searching after finding proven mate while pondering
  • Reactivation of Singular Extension(seems to work now)
  • Change of  history heuristic from Relative History to “general” History with self rebalancing
  • Retune of LMP and LMR
  • Implementation of Followup move

Release 2.0

This is the first release with a regular evaluation function. It’s a slightly enhanced version of the one that participated in TCEC season 14, division 3.

Changes compared to 1.023T (TCEC14 div3 version)

  • Probcut pruning (first time with some results)
  • Bugfix which caused rofChade to crash against Arasan. Due to different iteration increments (even 2 or more) of helper threads, a thread could search beyond the maximum depth
  • Change in maximum search time for a move (not more then half of the remaining time)
  • No usage of the hash table in quiescence

Changes compared to 1.019T (TCEC14 div4 version)

  • Retuning of eval parameters
  • More aggressive LMP and LMR
  • LMR also for pvNodes

Changes compared to 1.01 (PST/material only version with restructured sources)

  • Evaluation added for pawns, mobility, king safety and threats
  • Multiple smaller changes
  • Restructure of eval into combined MG/EG values (stockfish like)
  • Texeltuning framework for easy tuning of eval parameters, including source generation for parameter values

Changes compared to 1.0

  • Restructuring of sources into multiple files
  • changed searchRoot from aspiration per root move to aspiration for total search
  • changed searchRoot from root ordering based on nof nodes to regular move ordering
  • Better lazy SMP scaling
  • In infinite mode, the search doesn’t stop after a confirmed mate is found

Release 1.0

This is the initial external release. See technical page for details.