Cheese title

Previous versions

  • Version 3.2.1 - February 3rd 2024
    • fix and initialization problem with LimitStrengthMode UCI parameter
    • fix tablebases UCI parameters limits
    • improve the code to limit nodes and speed
    • change UCI_Elo formula
    • simplifications in move generation and evaluation
  • Version 3.2 - December 9th 2023
    • use Fathom library for tablebases (7 men support)
    • rewrite tuner, using Gradient descent algorithm
    • fix YBWC splitpoint initialization for non PV node
    • fix move ordering problem with aspiration window
    • fix possible crashes with bad parameters in command line or in config file
    • reduce stack memory usage and use std::thread
    • add personality option to load full evaluation parameters from a file
    • change LMR and LMP conditions
    • new evaluation tuning results
    • add bishop outpost evaluation
    • add bonus by file for passed pawns
    • add pawn storm evaluation
    • rewrite pawn shield evaluation
    • change tempo bonus
  • Version 3.1.1 - December 17th 2022
    • fix a draw by material detection problem from version 3.1.0
  • Version 3.1.0 - December 10th 2022
    • evaluation tuned with Texel's tuning method
    • modify evaluation function for better tuning
    • fix a data race in YBWC
    • change move ordering at root
    • add an UCI option to choose ELO strength reduction method
    • add endgame material variables in personality
    • continue to simplify and modernize code
    • add new unit tests
    • use continuous integration on Gitlab
  • Version 3.0.1 - January 15th 2022
    • fix SMP mode initialization for more than 64 threads
    • fix FRC castling initialization in FEN parsing
    • fix best thread choice in Lazy SMP
    • fix uninitialized variables in benchmark
  • Version 3.0 - December 18th 2021
    • add "Lazy SMP"
    • add Syzygy Tablebases support (maximum 6 mens)
    • use Polyglot opening book format
    • support PEXT instruction for magic bitboards
    • add UCI hashfull and tbhits informations
    • use the program main thread for inputs
    • change PST tables
    • change pawn shield values
    • rewrite passed pawns evaluation
    • don't prune advanced pawn push
    • change LMR parameters
    • fix problems in YBWC
    • fix problem in KPK endgame
    • fix bug with trapped knight evaluation
    • fix problem in SEE
    • fix problem with maximum game phase
    • modernize code from C++03 to C++17
    • code refactoring and simplifications
    • add unit tests (using GTest)
    • release source code (from version 3.0)
  • Version 2.2 - September 5th 2020
    • fix invalid moves in pondering
    • fix FRC makemove problem introduced in version 2.1
    • fix UCI strength problem with UCI protocol
    • randomness is now only used in personality
    • don't count pruned nodes
    • change king PST
    • change LMP parameters
    • remove penality for no pawns in endgame
    • add counter moves
    • use futility pruning and razoring in endgame
    • reduce history for moves not improving the position
    • use a table for MVVLVA
    • optimizations
  • Version 2.1 - July 8th 2019
    • fix initialization of UCI Strength in .ini file
    • fix FEN parsing with FRC castling rights
    • fix few problems with threads
    • rewrite UCI and XBoard protocols code
    • small optimizations and simplifications
    • fix a problem with LMP
    • increase LMR for non PV nodes
  • Version 2.0 - December 15th 2018
    • add multi processor support (YBWC)
    • new opening book format
    • add contempt factor
    • add benchmark option
    • add personality option
    • add parameter to reduce engine speed
    • add late move pruning
    • remove bonus for queen on 7th rank
    • change parameters for mobility
    • change bonus for pawns and rooks
  • Version 1.9.2 - February 17th 2018
    • fix engine not responding in pondering mode since version 1.9
    • fix illegal moves in pondering when the search ends before receiving message from the interface
    • fix an error with Arena/UCI when pondering is enable, always return a move to ponder (if possible)
    • fix a problem when starting next tournament game in Fritz GUI
    • March 3rd 2018 : Add an arm version for Raspberry Pi
  • Version 1.9.1 - September 16th 2017
    • fix illegal moves played in rare cases with FEN start positions, because of wrong castling rights initialization
    • fix crashes in the testsuite option when 'am' or 'bm' is found twice
    • print an error message when illegal moves are received from the GUI
    • add options to disable Null moves pruning and LMR
    • few code optimizations
    • October 1st 2017 : Update Android version
  • Version 1.9 - May 6th 2017
    • fix possible crash : not initialized variable for castling
    • fix rare crash in very long games
    • reduce pawn hashtable structure size
    • change main hash table structure
    • remove early queen move penality
    • remove lost castling penality
    • more reduction in LMR based on move count and depth
    • null moves pruning reduction based on depth
    • use config.ini for default values in UCI mode
    • add logfile option
    • rewrite move ordering and generation
    • reorganize search code
    • release armv8 version
  • Version 1.8 - March 19th 2016
    • fixed problem in game phase update
    • fixed crash with 1 Mb hash table
    • fixed nodes count output
    • fixed problem in multipv output
    • add FRC support
    • use LMR in PV nodes
    • add "reverse futility pruning"
    • add checking moves in 1st ply of quiescence search
    • skip minor promotions in quiescence search
    • remove mate condition in null moves pruning
    • rewrite FEN parsing
    • reorganize code for eval,movegen,endgame,protocols
    • optimize move sorting
  • Version 1.7 - April 4th 2015
    • Fix problem with checks evasion in quiescence search
    • Fix problems in multipv
    • Fix problem in iterative deepening
    • Changed futility pruning margins
    • Add razoring
    • Use 4 buckets in main hashtable
    • Use a KPK endgame table
    • Changes root moves ordering
    • Removed mate threat extension
    • Add a pawn hashtable (2 Mb)
    • now PSQT are not incremental
    • Add UCI_Strength option
    • Increase Lazy evaluation margin
    • Optimizations
    • Release Android (armv7) version
  • Version 1.6.1 - May 31st 2014
    • Fixed problem in pondering on Linux / Mac OS X, now use unbuffered stdin
    • Fixed problem when pondering was canceled
    • Fixed "level" command for Xboard, now use floats for increment
    • Fixed : uci command "info depth" was sent in Xboard mode
  • Version 1.6 - May 10th 2014
    • New evaluation function
    • Improved pawns evaluation
    • Improved king safety evaluation
    • Use mobility tables
    • Add endgames detection
    • Improved time management
    • Change aspiration window method
    • Fixed problem in PV installation
    • Fixed problem in 50 moves rule
    • Fixed promotion output in pv for UCI/Winboard
    • Add UCI multi pv option
    • UCI : send info depth before searching
    • Optimizations
  • Version 1.5 - July 6th 2013
    • add staged move generation
    • fix problems in move validation
    • fix problem in draw evaluation
    • fix problem in mate distance prunning
    • fix possible crash in long games
    • fix problem in null moves pruning
    • change node counting method (+1 before making a legal move in search)
    • change history heuristic array (piece/to)
    • disable recapture extension
    • use check evasion in the first ply of quiescence
    • add evaluation tempo bonus
    • adjust mate scores in hash table
    • few optimizations
    • windows : replace QueryPerformanceCounter() function by GetTickCount()
    • use UCI parameters seldepth, lowerbound, upperbound
    • perft now return only nodes count (old perft renamed "perftd")
  • Version 1.4 - March 17 2012
    • Fix a problem with killer moves
    • Fix a problem with history heuristic
    • Increase buffer size for UCI/Winboard
    • Optimize move generation
    • Optimize makemove/unmakemove
    • Optimize futility pruning
    • Optimize SEE calls
    • Remove killer moves at ply - 2
    • Remove mate killer moves
    • Add tapered evaluation for piece table
    • Improve evaluation function
    • Improve king safety
    • Reduce number of calls for the time check function
    • Show time and speed in perft and divide
    • Add UCI option to clear hash table
    • Increase maximum size of hash table to 4096 Mo
  • Version 1.3b - January 2012 14th
    • changes for compiling 64 bits version
    • recompiled under windows with Visual Studio 2010 Express
  • Version 1.3 - November 1st 2008
    • fix a problem in Winboard : Cheese was playing after loosing the game
    • fix a problem in SEE
    • fix a problem with repetitions
    • change test for recapture extension
    • add pondering in UCI and Winboard
    • add analyse mode in Winboard
    • use UCI options to configure the engine
    • add mate distance pruning
    • optimize move generation and evaluation
    • use incremental pieces square table
    • change move sorting at root
    • change move ordering
    • change number of moves before using LMR
    • increase margin used for lazy evaluation
  • Version 1.2 - May 24 2008
    • fix timing problem : in winboard opening moves was not always count
    • use magic bitboards for Bishops, Rooks, and Queens
    • optimize move generation and SEE
    • Linux version available
  • Version 1.1b - January 22 2008
    • fix problems of illegal moves with promotions
    • fix problems of illegal moves for Winboard
    • fix score output in Winboard
    • fix timing problems
  • Version 1.1 - January 2 2008
    • fix problem in move generation
    • fix problems with UCI and Winboard
    • fix problem with extensions
    • fix problems + optimization in SEE
    • fix problem when a non power of two size was used for hash tables
    • change the method of communication with the interface
    • change the way to count nodes
    • better time management
    • add recapture extension
    • add bonus for pawns in end game
    • add knight outposts
    • add bonus for connected passed pawns
  • Version 1.0c - November 12 2007
    • fix problem in time management
    • fix problems in UCI and Winboard engine, in tournament mode
    • (previous versions was not working in tournament mode)
    • don't think when only one legal move
    • possibility to use opening book
    • fix problems when sending info to the interface during the search
  • Version 1.0b - November 4 2007
    • solve problems with Winboard protocol
    • change time function
  • Version 1.0 - October 19 2007 (first release)
    • cleaning code
    • fix problem with FEN strings
    • fix mate value
    • add other search modes (UCI)
    • add safe mobility
    • add futility, extended futility + razoring
    • increase UCI command buffer
    • fix problem in pieces square table
    • fix problem in safe mobilitty
    • adjust mate value in hash table
    • fix problem with null moves in endgame
    • fix problem with Internal Iterative Deepening
    • add fractional ply
    • add mate threat extension
    • add pawn on 7th extension
    • optimize move generation functions
  • Version 0.9 - May 4 2007
    • cleaning code
    • add 3-fold repetitions
    • add 50 moves rule
    • fix in move ordering
    • give higher value to passed pawns
    • add insuficiant material evaluation
    • optimize move generation
    • fix incremental material evaluation
    • add bonus for bishop pair
    • fix problem with null moves
    • fix problem with late move reduction
    • add mate killer, killers at depth-2
    • add incremental gamephase
    • fix problem in quiescence search
    • optimize move ordering
    • minimize number of call of inCheck function
    • add adaptive Null Move pruning
    • fix problem with FEN strings
  • Version 0.8 - April 2 2007
    • fix problem in null moves
    • add Principal Variation Search
    • add incremental material evaluation
    • add gamephase in evaluation function
    • add penality for early queen move
    • add bonus and penality for pawns
    • add bonus for rooks on open / semi-open files
    • add Static Exchange Evaluation
    • add check extension
    • add bonus for rooks on 7th rank
    • add king safety and tropism
    • fix problem with UCI engine
    • add Late Move Reduction
    • add Internal Iterative Deepening
  • Version 0.7 - January 21 2007
    • add UCI / Winboard engine
    • fix problem in iterative deepening
    • add aspiration window
    • add quiescent search
    • fix problem in alpha-beta
    • add null moves pruning
    • fix problem with history heuristic
    • optimize evaluation function
    • fix problem in move generation
    • ajout aspiration window
  • Version 0.6 - December 19 2006
    • optimize alpha-beta search
    • add iterative deepening
    • optimize move generation
    • add move ordering, MVV/LVA and killer moves
    • add function to run testsuites in epd format
    • add history heuristic
  • Version 0.5 - March 22 2006
    • add Zobrist hash key + Transposition Table
    • add FEN strings
    • fix and optimize move generation
    • add Perft function
    • add divide function
    • optimize hash key calculation
    • fix problem in alpha-beta
  • Version 0.2 - February 26 2006
    • Rotated Bitboards
    • Move generation
    • check evasion function
    • Simple alpha-beta search
  • Start - February 6 2006
    • Simple interface with SDL + OpenGL, no rules