*******************************************************************************
*                           Pedone 2.1                                        *
*******************************************************************************


DESCRIPTION

This is a new release of Pedone, an UCI chess engine written in C.
It's a console program and it needs a graphical interface to work like 
XBoard/Winboard (with Polyglot) or Arena.
For whatever you need you can contact me at the following email address:

0xfab10@gmail.com
Fabio Gobbato


THE PACKAGE

The package includes the following files:

- Pedone_win_bmi2.exe     - Executable for 64 bit windows OS and CPU with BMI2 instructions
- Pedone_win.exe          - Executable for 64 bit windows OS and CPU with SSE4.2 instructions.
- Pedone_win_nopopcnt.exe - Executable for 64 bit windows OS and CPU without SSE4.2 instructions.
- Pedone_win32.exe        - Executable for 32 bit windows OS 
- Pedone_armv8            - Executable for 64 bit Android OS
- Pedone_armv7            - Executable for 32 bit Android OS
- Pedone_linux_bmi2       - Executable for 64 bit linux OS and CPU with BMI2 instructions
- Pedone_linux            - Executable for 64 bit linux OS and CPU with SSE4.2 instructions.
- Pedone_linux_nopopcnt   - Executable for 64 bit linux OS and CPU without SSE4.2 instructions.
- Pedone_linux32          - Executable for 32 bit linux OS 
- ReadMe.txt              - The file you are reading
- logo.bmp                - Pedone's logo


ENGINE SETTINGS

- Hash
  Select the size for the hash table.
  Pedone can accept values between 1MB and 1048576MB.

- Threads
  Choose the number of threads for a multithreaded search (between 1 and 512).

- Ponder
  Enable or disable pondering.

- OwnBook
  Enable or disable the own book.

- BookFile
  Choose the opening book file.

- BookRandom
  With this true the engine chooses every time a random move from the book, 
  otherwise chooses always the best one.

- DrawScore
  Choose the score in cp for the Draw (between -500 and +500)
  An high value makes the engine play for the draw.
  A low value makes the engine disdain the draw.

- Strength
  Set the strength level from 1 to 100.

- MultiPV
  Display multiple pvs (from 1 to 256).

- LargePages
  Enable or disable the allocation of the engine hash table with large pages.

- UCI_Chess960
  Play chess960 variant

- SyzygyPath
  The path of the syzygy files.

- Syzygy50MoveRule
  Enable or disable the fifty move rule for the tb probe.

- SyzygyProbeLimit
  Limit the egtb probe with this number of pieces left on the board.


WHAT'S NEW

Speed optimizations
Tuning
Bug fixing
Don't try null move at low depths
Improved history
Prune moves with bad history
Default DrawScore set to 0
Improved time management
Improved imbalances evaluation

TECHNICAL DETAILS

- Board representation QuadBitBoard
- Magic BitBoard
- Multithreaded search
- PV search
- Quiescence search with captures, promotions and checks
- Transposition Table
- Iterative deepening
- Internal iterative deepening
- Aspiration window
- Search extensions and reductions
- Singular extension
- Late move pruning
- Futility and Null Move pruning
- Delta pruning
- SEE
- History
- Killer moves
- Countermove Heuristic
- Skill levels
- MultiPV
- Chess960
- Syzygy egtb support
- Polyglot book support


ACKNOWLEDGEMENTS

Thanks to:
- Ronald de Man for the syzygy probing code.
- G6 group for the technical support and for being a meeting point for
  the Italian computer chess programmers.
- chessprogramming for the knowledge that it shares.
- talkchess comunity for the suggestions and the help received.
- All the people that tested Pedone during these years.
