## About

DroidFish is a feature-rich graphical chess user interface, combined with the very strong Stockfish chess engine.

A full manual is available here (html) and here (pdf).

### Features

- Opening book
- Unlimited undo/redo
- Copy/paste to/from clipboard
- Analysis mode
- Two player mode
- Computer vs computer mode
- Setup positions
- Extensive PGN support
- Adjustable playing strength
- Third party UCI engines
- Gaviota endgame tablebases
- Syzygy endgame tablebases

### Hints

- Long press mode/left/right buttons for additional commands.
- When re-playing a game, change game mode to Edit/re-play Game to be able to undo/redo single half moves.

### Opening books

DroidFish contains a small internal opening book. If you want to use a larger book, you can configure DroidFish to use external polyglot or CTG book files:

1. Copy one or more polyglot book files to the DroidFish/book directory on the SD card. Polyglot books must have the file extension .bin. Note! The Android file system is case sensitive, so the extension must be .bin, not .Bin or .BIN.
2. Copy one or more CTG book files to the DroidFish/book directory. A CTG book consists of three files with file extensions .ctg, .ctb and .cto. You must copy all three files.
3. From the program menu, activate the Select opening book function.
4. Select the opening book file you want to use.

### PGN files

DroidFish can load games from PGN files.

1. Copy one or more PGN files to the DroidFish/pgn directory on the SD card.
2. Long press the chess board and select Load game from PGN file.
3. Select the file, then the game within the file you want to load.

To edit game headers such as player names, long press the move list and select Edit Headers. To edit comments for a move, long press the move list and select Edit Comments.

To save your edited game, long press the chess board and select Save game to PGN file. Select the file to save to, then select the position in the file where the new game will be saved.

Note! If the OI File Manager is installed, any directory can be used to load/save games.

To add computer analysis to the game tree, long press the analysis information when the computer is thinking and select Add Analysis. The current principal variation is added as a variation in the game tree.

In analysis mode, it is possible to add null moves to the game tree. Be aware though that null moves are not included in the PGN standard and may not work in other PGN reading chess programs.

### Scid files

If you have Scid on the go installed, you can read Scid database files directly from DroidFish. Long press the chess board and select Load game from Scid file.

### FEN/EPD files

DroidFish can load positions from FEN/EPD files.

1. Copy one or more FEN/EPD files to the DroidFish/epd directory on the SD card.
2. Long press the chess board and select Load position from file.
3. Select the file, then the position within the file you want to load.

You can also load positions from external programs, such as ChessOcr (non-free), which will let you use the camera to take a picture of a chess diagram and automatically set up the position in DroidFish.

1. Long press the chess board and select Retrieve Position.
2. Follow the instructions in the external program.

### UCI engines

DroidFish can use third party UCI engines.

1. Copy one or more UCI engine binaries to the DroidFish/uci directory on the SD card. Note! The binaries must be compiled for Android.
2. From the program menu, choose Manage Chess Engines and Select Chess Engine and select the engine to use.

### UCI engines on a remote server

DroidFish can use UCI engines that run on a remote server.

1. Install chess network server software on the remote computer.
   1. For windows, install server software from the DroidFish page.
   2. For linux, `mini-inetd` from the `tcputils` package can be used.
2. Select Manage Chess Engines in the program menu, create a new network engine and enter the host name and port number for the remote engine.
3. From the program menu, choose Manage Chess Engines and Select Chess Engine and select the engine to use.

### Gaviota endgame tablebases

To use Gaviota endgame tablebases:

1. Copy .gtb.cp4 files to the DroidFish/gtb directory on the SD card.
2. Use the Endgame Tablebases preferences screen to control how the tablebases are used.

### Syzygy endgame tablebases

To use Syzygy endgame tablebases:

1. Copy .rtbw and optionally .rtbz files to the DroidFish/rtb directory on the SD card.
2. Use the Endgame Tablebases preferences screen to control how the tablebases are used.

### License

GNU GPL v3. The source code is available from GitHub.

### Developers

- DroidFish is developed by Peter Österlund.
- Stockfish is developed by Tord Romstad, Marco Costalba, Gary Linscott and Joona Kiiski.
- User interface improvements by Aaro Korhonen.
- Gaviota Tablebases Probing Code API, Copyright © 2010 Miguel A. Ballicora.
  - LZMA compression by Igor Pavlov.
  - ZLIB compression, Copyright © 1995-2005 Jean-loup Gailly and Mark Adler.
  - LZF compression, Copyright © 2000-2007 Marc Alexander Lehmann.
- SVG library from androidsvg project.
- Chess pieces from PyChess project.
- Color picker, Copyright © 2010 Daniel Nilsson and Copyright © 2011 Sergey Margaritov.
- Open exchange chess engine interface code by Gerhard Kalab, Apache 2.0 license.
- Syzygy tablebases probing code, Copyright © 2011-2013 Ronald de Man.
- TourGuide library, Copyright © 2015 Tan Jun Rong.
- Floating action button library, Copyright © 2014 str4d and Jerzy Chalupski.
- cpu_features library, Copyright © 2017 Google Inc., Apache 2.0 license.

### Translations

Translations are managed by crowdin.net.

- German translation by Uwe Walschus.
- Spanish translation by Amador Cuesta.
- Russian translation by SWEN и dfuk (allBlackBerry).
- Portuguese translation by C. R. Zamana.
- French translation by Eric Weibel (Thanvillé).
- Italian translation by Michele Carfora (suessola).
- Dutch translation by David Pront.
- Polish translation by Rafał Smyka.
- Ukrainian translation by Mix Gerder and Toru Hasegawa.
- Belarusian translation by Mix Gerder.
- Korean translation by Hyobeom Ahn.
- Turkish translation by Emrullah Ertürk.