-------------------------------------------------------------------------------
- Cheese version 1.9
-------------------------------------------------------------------------------

Author   : Patrice Duhamel (cheesechess@free.fr)

Web site : cheesechess.free.fr/index_en.html

-------------------------------------------------------------------------------
Fichiers
-------------------------------------------------------------------------------

Windows : 

  cheese-19-win-64-pop.exe   : 64 bits version using a cpu instruction for bitcount (the fastest version)
  cheese-19-win-64.exe       : 64 bits version for cpu without the bitcount instruction
  cheese-19-win-32.exe       : 32 bits version

Linux : 

  cheese-19-linux-64-pop     : 64 bits version using a cpu instruction for bitcount (the fastest version)
  cheese-19-linux-64         : 64 bits version for cpu without the bitcount instruction
  cheese-19-linux-32         : 32 bits version

Mac OS :

  cheese-19-mac-64-pop	   : version 64 bits using a cpu instruction for bitcount (the fastest version)
  cheese-19-mac-64	   : version 64 bits for cpu without the bitcount instruction

Android :

  cheese-19-arm-32-nopie   : version 32 bits armv7 for Android 4 and before
  cheese-19-arm-32	   : version 32 bits armv7 for Android 5 and more
  cheese-19-arm-64	   : version 64 bits armv8 for Android 5 and more
  

Windows version was compiled with Visual Studio 2010 Express.
Linux version was compiled on Linux Mint 18.1 with gcc 5.4.0, without dynamic library.
Mac OS version was compiled on OS 10.11.6 with clang 4.2.1.
Android Version is compiled with Android NDK r13b and Android Cmake.   

-------------------------------------------------------------------------------
Installation
-------------------------------------------------------------------------------

* Arena Chess

  - Unzip all files in a folder
    
  - Launch Arena Chess

  - In "Engines" Menu, choose "Install New Engine"

  - Choose UCI or Xboard (the engine works in both modes)

  - Choose Cheese executable in the folder it was installed

  - To configure Cheese, choose the option Configure in the Engines menu


* Xboard / Winboard

  - Unzip all files in a folder

  - Launche Winboard and choose "Load First Engine" in the "Engine" menu

  - Enter the path of the engine where it was installed

  - to configure Cheese, edit the file cheese.ini
   

* Android

  - Use an application that accept UCI/Xboard modules, for exemple Chess for Android or Droid Fish.


* Parameters

  The file cheese.ini let you choose some parameters in Xboard version :

  Hash = size of the Hash table in Mb (ex: 8, 16, 32 ,64, 128, 256 ...)
	 minimum = 1, maximum = 16384 for 64 bits version and 2048 for 32 bits version

  Book = 1 or 0 , 1 = use an opening book, compatible with Cheese (cheese use his own file format)
			
  BookFile = path to the opening book file

  UseStrength = 0 or 1, 1 = use the StrengthELO parameter to reduce ELO strength of the engine

  StrengthELO = value between 1000 and 2600, corresponding to the ELO level of the engine

  LogLevel = enable or disable logfile (0 = disable, 127 = enable all informations)
    add values for multiple options :
	 1 = basic informations
	 8 = warnings
	16 = errors
	32 = critical errors 
	64 = gui informations (UCI / Xboard)
    note : log file can slow down the engine.

* Command line

  -help

    show available options 

  -testsuite file_name
  
    run analysis of a EPD file 

  -perft depth

    search number of nodes from the current position, to the selected depth 

  -perft depth -fen "position"

    search number of nodes from the selected FEN position, to the selected depth 

  -perftd depth
  -perftd depth -fen "position"

    same as perft but with number of captures, en passant, promotions, castle, checks, and mates

  -divide depth

    search number of nodes for each possible moves from the current position, 
    to the selected depth 

  -divide depth -fen "position"

    search number of nodes for each possible moves from the selected FEN position, 
    to the selected depth 

  -buildbook file.pgn file.bin depth number

    Create a new opening book from a PGN file.
    the depth is the maximum number of moves in the opening, number is the minimum number of moves 
    for the opening to be used.


* Opening books

  Cheese can use an opening book in his own format.

  The book cheeseopenbook.bin was created from gm2600.pgn, with a depth of
  10 half-moves, for openings used a minimum of 5 times.
  
-------------------------------------------------------------------------------
Changes in version 1.9
-------------------------------------------------------------------------------

    * 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

-------------------------------------------------------------------------------
Thanks
-------------------------------------------------------------------------------

I would like to thanks specially the following people for their work, documents released that helped and motivated me to create
my chess engine :

 Robert M. Hyatt, Bruce Morland, Gerd Isenberg, Pradu Kannan, Grant Osborn, Jonatan Peterson.

Thanks to everyone participating to winboard and talkchess forums,
and the people spending time to test chess engines and those who reported some problems.


-------------------------------------------------------------------------------
License
-------------------------------------------------------------------------------

Copyright 2006-2017 DUHAMEL Patrice.
This program is freely distributed, and must not be sold or distributed
without the author authorisation.

