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

Release 3.0

Changes of 3.0 compared to 2.3

Added NNUE support for evaluation
Added UCI option NetFile to set another file and/or directory for the net to use
Current NNUE Architecture is HalfKA (2×256)x32x32x1
(D)FRC support (added UCI option UCI_Chess960 option
Some minor bug fixes
Create UCI WindowsNumaNode option to explicitly bind a thread to a Numa node on Windows
Fixed selDepth do not reset after new Iterative deepening iteration
Removed re-aging old hashentry after using it in search
Fixed not resetting failHigh count for new Iterative deepening iteration
Finetuning of Singular extension parameters
Finally got results from applying multicut in relation with Singular Extension

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.