The polyglot source files account for FRC game play, but not for FRC book making. Modifications to the original source are very easy to start compiling an FRC book. Only the book_make.c file needs to be modified. There are three changes to book_make.c:
(1) at the end of the includes add:
Code: Select all
#include "option.h"
bool board_from_fen(board_t *, const char *);
Code: Select all
} else if (my_string_equal(argv[i],"-Chess960")) {
option_set("Chess960","true");
Code: Select all
if (option_get_bool("Chess960")) {
board_from_fen(board,pgn->fen);
} else {
board_start(board);
}
It is a wonder how FRC modifications have not been made since 2014. Perhaps there is something missing or yet to be included for FRC, but there are other programmers who make changes to polyglot. If there is something else required then please post your suggestions. I do not have permission from the original polyglot author to modify and distribute copies of polyglot. Let me know if this is possible and then my altered source is available on request. For now, the executable should be renamed polyglotFRC to distinguish it from the original. In particular, Ubuntu has a download package named "sudo apt-get install polyglot" whose name interferes with compilation. Undoubtedly the package access is highly restricted so the sudo application is not recommended.
Both engine and GUI programmers will now want a starting point for FRC modifications. This example game from CCRL lists the expected FRC polyglot keys when compiling an FRC polyglot game:
[Event "CCRL 404FRC"]
[Site "CCRL"]
[Date "2012.01.06"]
[Round "98.1.101"]
[White "Stockfish 2.2.1 64-bit"]
[Black "Rybka 4.1 64-bit"]
[Result "1-0"]
[Opening "QBRKBRNN"]
[PlyCount "109"]
[SetUp "1"]
[FEN "qbrkbrnn/pppppppp/8/8/8/8/PPPPPPPP/QBRKBRNN w FCfc - 0 1"]
[WhiteElo "3192"]
[BlackElo "3161"]
1.Nf3 Ng6 2.d4 Nf6 3.c4 d5 4.cxd5 Nxd5 5.a4 Bd7 6.Bd2 O-O 7.Ng3 c6 8.O-O Rcd8
9.Qa3 a5 10.e4 Ndf4 11.e5 Bg4 12.Bxf4 Nxf4 13.Qxe7 Bxf3 14.gxf3 Ng6 15.Bxg6
hxg6 16.Qh4 Ba7 17.Rcd1 Rfe8 18.Rfe1 Qc8 19.Ne4 Qf5 20.Nd6 Qxf3 21.Nxe8 Rxe8
22.Qg3 Qf5 23.d5 cxd5 24.Rxd5 Bb6 25.Rb5 Re6 26.b3 g5 27.Rc1 Bd4 28.Rxa5 Rxe5
29.Rxe5 Bxe5 30.Qg2 g6 31.Rd1 Qf4 32.h3 Kg7 33.Qg4 Qh2 34.Kf1 Bf6 35.Qf3 Qc7
36.Kg2 b6 37.Rd5 Qc6 38.Rb5 Qc7 39.b4 Qd6 40.a5 bxa5 41.bxa5 Qd4 42.Rb6 Be7
43.Rb7 Qd6 44.a6 Qxa6 45.Rxe7 Qf6 46.Rb7 Qe6 47.Qc3 Qf6 48.Qxf6 Kxf6 49.Rb5 Kg7
50.Rxg5 Kf6 51.Ra5 Ke7 52.Kf3 Kd7 53.Ra6 Ke7 54.Ke4 Kd7 55.Ke5 1-0
When the game is pasted in a file named "FRCtest.pgn", polyglotFRC will output:
Code: Select all
user@DESKTOP:~/sources/PolyglotFRC$ ./polyglotFRC make-book -pgn FRCtest.pgn -bin FRCtest.bin -max-ply 30 -Chess960 -min-game 1
PolyGlot 1.4 by Fabien Letouzey
inserting games ...
Option Chess960 = 1
key 0x4b57ffb8744080e7
0 move Nf3
key 0x9033134e1ca6e1da
1 move Ng6
key 0x79daa06aeb16e550
2 move d4
key 0xbcef8fc0fadfc812
3 move Nf6
key 0xe701bb3557258984
4 move c4
key 0x6b222411142a2283
5 move d5
key 0xee48060588fe6ca5
6 move cxd5
key 0xe0629dc82a3078b8
7 move Nxd5
key 0x7f8ce78595d565e4
8 move a4
key 0x14459969f846b02a
9 move Bd7
key 0x5cff1674943a48ff
10 move Bd2
key 0x371518f61ec39f4a
11 move O-O
key 0xe3e9e1470971bd10
12 move Ng3
key 0x387966db79182810
13 move c6
key 0xaa038b340ed8fbab
14 move O-O
key 0xa0e05713a4576173
15 move Rcd8
key 0xaf2c271a5a7974a3
16 move Qa3
key 0xf8c487fee0c943d6
17 move a5
key 0x7ede323f83554f46
18 move e4
key 0xbad93f7768d5f24c
19 move Ndf4
key 0xfc18cd0d7fd305ee
20 move e5
key 0x9d61dbf07bcd238a
21 move Bg4
key 0x85a5c93a49357858
22 move Bxf4
key 0x208a1151214f546e
23 move Nxf4
key 0x65d71275ed64a2a2
24 move Qxe7
key 0xb75ef9d4c57cd7c9
25 move Bxf3
key 0x62bcb03bf5d7db9
26 move gxf3
key 0x2c51a932bd9fefa0
27 move Ng6
key 0xd9b877eaf572a0c
28 move Bxg6
key 0xdf244d1f70fa9525
29 move hxg6
1 game.
30 entries.
filtering entries ...
15 entries.
sorting entries ...
saving entries ...
all done!
How good is the book? Initial results indicate it offers a substantial increase in FRC engine strength; better than the use of books in standard chess. There is a lot of stuff for testers to keep busy with.
How easy is it to use? Theoretically, the FRC book is fully compatible with standard polyglot books. Merging with standard books should be possible (yet to try). However, until GUI authors upgrade their programs to accept random castling from polyglot books in FRC/960 chess, the best use for FRC books is for personality books adapted by engine authors.
Trick: If compiling a downloaded windows pgn file, make sure it is in Linux format before attempting to create a book in Linux polyglot. This can be done by loading in nano and re-saving the pgn file to convert from DOS.
An FRC book (and maybe the first one ) can be downloaded on the Schooner website. CCRL_404FRC2012.bin build date is 11/26/2019. It covers all the CCRL FRC 40/4 games since 2012:
https://sites.google.com/site/schoonerchess/downloads
The next version of Schooner will support FRC/960 and the use of FRC polyglot books. It ahould also include a Linux version for the first time. Current Schooner version 2.1 does not support FRC/960 chess.