Belofte - Manual

This file references belofte version 0.9.1 from 19/06/2017 on, belofte last updated: 27/06/2017


Belofte is a promising chess program. Belofte is a Flemish word that can be translated as 'a Promise' or 'someone with potential'. In this context, the latter is the intended meaning. The most correct translation would be 'A promising chess program'. It is pronounced as 'b-euh-loft-euh'.

Please refer to License, About, Manual or Todo

Using Belofte

Belofte can be used in different ways.

Command line parameters

Belofte can be launched without any parameters from a console on any platform. Please refer to the commands section to understand how to play. Please make sure not to double-click in a file explorer but launch from a console. On certain platforms, double-clicking will not open a console but run the application silently.

It is recommended to use bash. If you do use another shell, please make sure to verify the scripts before running.

Belofte uses positional command line parameters. It is launched with following parameters:

>belofte standard -i rcfilename -e epdfile
Position Description Default
0belofte on Linux/Mac, belofte.exe on Windows
1standard or xboard or -xboardstandard
2-i or /i-i
4-e or /e-e

Using it in a program

This section is far from complete, it just gives some ideas about the possibilities. Please search the internet on xboard/winboard compatible programs to get a full list. A good starting point can be this list, this list and this list.

On Linux

On Windows

On Mac OS X


Untested at this moment.


This section applies for using the program from the command line or when integrating the program with a Xboard compatible application.

The application supports all standard Xboard commands. Please refer to the xboard engine interface description for more details. The most useful commands can be found when giving the help command.

xboard (version 1)

xboard (version 1) unimplemented

Following commands are not implemented according to the standard. The implementation allows in any case standard game to be played with an xboard application.

Protover 1 command summary

This format is here for old winboard/xboard implementations. It is strongly adviced to use version 2 instead.

Alphabetical list of commands: ?, analyze, bd, black, both, draw, easy, edit, exit, force, go, hard, help, hint, level, name, new, nopost, otim, post, protover, quit, random, rating, remove, result, sd, st, time, uci, variant, white, xboard

winboard version 2 command extension

Protover 2 command summary

Default format for Winboard/xboard. Not implemented in full at this moment but work is in progress. Please note that some commands of version one have been dropped. e.g. analyze, edit, ...

Following commands from v1 and v2 are supported: ?, accepted, bd, both, computer, easy, force, go, hard, help, ics, level, name, new, nopost, otim, pause, ping, playother, post, protover, quit, random, rejected, remove, result, resume, sd, st, time, setboard, uci, undo, usermove, variant, xboard

belofte commands (protover 4)

Protover 4 command summary

Belofte specific version. Some specific commands are not supported. Default protocol if running in debug mode.

Alphabetical list of commands: ?, @, about, accepted, again, alg, bd, bk, both, computer, createbook, eval, force, game, go, help, info, level, load, loadbook, ls, name, new, nopost, post, protover, quit, remove, result, save, sd, st, setboard, variant


Following commands are currently not implemented or not present at all.


Formats used in the application.

FEN strings.

Please refer to the FEN manual. ... more to come soon ...

RC file

Contains a list of commands in a file. The file can start with a # character to indicate a comment. Comments are ignored. Please refer to the standard .belofterc file in the distribution, content of which is listed below.
# commands in this file will be executed on lauch of program
# comments need to be preceeded by the hash symbol
# belofte will seek the file belofte.rc located in following
# locations (additive)
# linux, mac: /etc/belofte/belofte.rc, ~/.belofte/belofte.rc
# all platforms: .belofterc
# when reading a resource file on startup, a new command needs
# to be issued manually, if passed with nobd parameter, the
# board is not printed
protover 4
new nobd

PGN file.

All played games will also be stored in a PGN file. The format of this file conforms to the same rules as the above. Use the save command to save the current game in PGN format. When starting a new game with the new command, the current game is automatically saved.

Please refer to the PGN specification (1, 2) for full details.

Reading PGN files

Lines starting with the % character are ignored.

Writing PGN files

Belofte will write at the end of each game the game in a PGN file. In case of protover 1 & 2, only tags from the STR will be written. (see specification) In protover 4, additional tags will be used.
When issueing the command save, the program will save the game immediately according to specification.
When issuing the command game, the program will print the game to screen, it will not print the tags.

Opening book.

Belofte will try to read an opening book when starting a game. Only one opening book can be used at any time.

The opening book is an ASCII file with following data:

Only the first 10 moves will be read from the opening book. All other moves will be skipped. The book generation process is a slow process. Please reserve sufficient time to create your books.

Creating a book

Please refer to the createbook command for the PGN format of the file needed for creating the opening book. If you have a PGN file with all your games, you can use it to create a customized opening book.

The pgn file needs to be conform to some pgn standards:

The program will create a cache version of the opening book. This version will be used if available instead of the ASCII book for speed reasons.

Opening book cache format

To be completed...

About EPD files

EPD files can best be compared to computer readable files of chess problems as printed in the press. EPD files contain a number of test positions and their expected results. The result for each test position is listed next to the problem. The format of the file is very well defined. Not all options might be implemented. The format of the file is as such that if a certain option is not implemented, the option will be ignorable. It depends on the implementation whether this unsupported option will be ignored. A missing option might render an EPD test file worthless for the given implementation.

Using EPD files

From within the command line option, enter epd followed with the fully qualified filename including extension. 

belofte> epd testset1.epd

The current folder will be used if no path information is presented. The path information should be compatible with the platform the program is run on. The program will output for each test in the EPD file whether a result has been found or not. The normal log-levels of the program will be used during the parsing of the file. At the end of the test, the total number of correct results and the total number of tests will be printed.

Supported options

Belofte supports comments started with the hash '#' and semi-column ';' character. The op-codes 'id', 'bm' and 'am' are being supported. All other opcodes are being ignored.

EPD files and test results

Given the result is stored with the test, EPD files are not suited for human tests. They are very suited to computerised tests, given the program does not cheat by reading the result. Given most programs implement epd when they want to integrate an automated test suite, we can assume programs do not cheat but use the EPD test suite to measure itself against predefined tests.

EPD result interpretation

Belofte will parse the EPD file given with the current level setting. Given belofte does not support level or time indicators in EPD files, not all EPD files are usable for belofte. Belofte will output the number of solutions found and the total number of test positions scanned. Most test-sets are based around a certain level and a score of a certain % can be translated into a certain elo level.

//end of manual