*******************************************************************************
*                           Pedone 3.0                                        *
*******************************************************************************


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 and AVX2 instructions.
- Pedone_win_avx2.exe     - Executable for 64 bit windows OS and CPU with AVX2 instructions.
- Pedone_win_sse42.exe    - Executable for 64 bit windows OS and CPU with SSE4.2 instructions.
- Pedone_win.exe          - Executable for 64 bit windows OS.
- Pedone_linux_bmi2       - Executable for 64 bit linux OS and CPU with BMI2 and AVX2 instructions.
- Pedone_linux_avx2       - Executable for 64 bit linux OS and CPU with AVX2 instructions
- Pedone_linux_sse42      - Executable for 64 bit linux OS and CPU with SSE4.2 instructions.
- Pedone_linux            - Executable for 64 bit linux OS
- Pedone_armv8            - Executable for 64 bit Android 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 -100 and +100)
  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

Pure neural network evaluation
Tuning search parameters
Fix a bug in chess960 mode
Improved futility pruning formula

TECHNICAL DETAILS

- Neural network evaluation
- 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.
- Dale Weiler for the header incbin.h used to embed in the executable the neural network
- 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.
