Home      Downloads

The Joker80 Chess Engine

Joker80 is a version of Joker 1.1.14 (e) adapted for play on a 10x8 board. It cannot play normal Chess; it only knows variants gothic and capablanca. As it implements the setboard command, it can be used to play other 10x8 variants with the Capablanca pieces (e.g. Bird Chess) as well. Like Joker, Joker80 is a WinBoard engine. Gothic Chess is a patented version of Capablanca Chess, with a more balanced and exciting opening position.


Joker is a 'mailbox' engine, i.e. it represents the board as an array, one byte per square. This makes for very fast move generation. Joker's move generator works with separate lists for Sliders, Leapers and Pawns (like qperft). The Archbishop and Chancellor are implemented by having the Leaper and Slider list overlap, so that these pieces can be in both. The evaluation function of Joker80 is the same as that of normal Joker; no special evaluation terms were added for peculiarities of Capablanca Chess. This makes it rather primitive and ad-hoc, as Joker itself is not really finished, and I did not spend any real effort on the evaluation yet. (For instance, it does not even have piece-square tables differentiated by piece type.) Joker also does not have end-game knowledge of any kind yet. If it is in KNKPP, it thinks the side with the Knight is leading by about 100 centi-Pawn. The piece values for Joker80 were adapted a little compared to that for normal Chess, though, and of course values for Archbishop and Chancellor had to be invented.

Unlike normal Joker, Joker80 does consider under-promotions in its search. As ArchBishop and Chancellor are not much weaker than a Queen, such promotions are much more attractive in Gothic Chess than in normal Chess. On the other hand, promotions to Rook, Bishop and Knight are even more unattractive than in normal Chess, A or C almost always providing a more attractive alternative when, e.g., a Knight's leap is required to promote with check. So promotion to R, B, and N are still not implemented, although Joker80 will accept such a promotion from the opponent.

Joker80 has no opening book. It also does not use tablebases or bitbases. The entire engine is embodied in the .exe file. No other files are needed, so it does not need to know the directory it is installed in, and can be called from anywhere. It does make a file 'jokerlog.txt' in the directory where it is running.

Although Joker80 can be run from the command line in text mode (communicating in WinBoard protocol, augmented with the command 'p' for printing the board), it is highly recommended to run it under WinBoard_F. Just type the name of the executable in the WinBoard startup dialog box, (the full pathname if it is not installed in the same directory as WinBoard_F), or put it amongst the selectable engines in the winboard.ini file.

Joker80 does not need any command-line arguments to be run with its default hash-table size of 128MB. To adjust the hash size, give it a numeric command-line argument N. The hash-table size will then be 64*2^N. This means that 'joker80 20' will give you a 64MB hash table, 'joker80 19' 32MB, etcetera. Joker80 does not check if the size you request is reasonable!