This update has a MultiPV Bug Fix, minor updates and source cleanup.
A fairly significant MultiPV bug was introduced recently in SF. The SF Development team fixed it almost immediately when it was brought to our attention. Naturally , this update will have the latest patches committed since the X2a Release as well.
The MultiPV bug is discussed here:
(X2 pronounced "ten-two)
McCain, a UCI chess playing engine derived from Stockfish and Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung Author)
Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad (Stockfish Authors)
Copyright (C) 2015-2019 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad (Stockfish Authors)
Copyright (C) 2017-2019 Michael Byrne, Marco Costalba, Joona Kiiski, Gary Linscott, Stéphane Nicolet, Tord Romstad (McCain Authors)
McCain is based on the strongest engine in the world, Stockfish.
This version has bug fixes for the triple opening book usage, a new UCI option called DC Slider ( Dynamic Contempt Slider) . the default setting of 65 represents an increase of 6.5% in the dynamic contemplation calculation. Another new option for the casual user called Jekyll & Hyde, as the name suggests, using the Jekyll & Hyde setting ( must be used with the variety option set to 1 or higher) , will cause McCain to play with a very undecided nature of his attack - sometimes striking aggressive , at other times vert mild and non aggressive. It's here strictly for the entertain value as it obviously weakens McCain considerably, making it much more enjoyable for human play. The matefinder code in McCain was eliminated as I was dissatisfied with it and came to realize that Joe Ellis' matefinder works just about perfect anyway. On my Github remote, you can find a branch for mate_finder ( Joe Ellis' code) , that has been updated for current development Stockfish
One source - and you build 2 different flavors of stockfish - current-dev-stockfish and McCain.You also build the current-dev Stockfish with all the features that McCain has.
Note: Only McCain will be distributed , the other flavors are for those who are able to build it themselves - but feel free to share with others - if you do share, please provide above link to GitHub as that is the only legal way to share your hand-built built exe's with others
NOTE - if you pull McCain from Github, please go to the McCain branch , the master branch is in sync with current-dev Stockfish.
The user experience changes :
Opening Book cleanup - now accepts 3 polyglot books :
Opening book 1 - could be GM or opening - generally a very specific book
Opening book 2 - wider book, would kick in once opening book 1 is"out of book"
Opening book 3 - wider book, would kick in once opening book 2 is"out of book"
The source provided enables one to build quickly 2 different engines:
McCain-X2: includes all of current-dev Stockfish with added functional modifications and features
The version and features - are controlled by commenting in and out the 3 lines in ( toggle is on uncommented and off with the pound signs).
Uncomment the line below for McCain, comment in (add pound sign) for Stockfish
Only McCain with added feature will be publicly distributed , although feel free to play with other versions privately
features include : Cerebellum book functionality, play by Elo (UCI limit strength), keyboard shortcuts and a few other items
I have tried to source and provide credit for all changes different from from current-development Stockfish through the use of ifdef's for Maverick and Features and the source of the changes attributed to the original author as I best as I was able to detect from Github. In addition all of the other added features , cerebellum book ( code and book file by Thomas Zipproth), Play by ELO and keyboard shortcuts are also identified with ifdef's. With the exe's , you will find some Windows version complied by Lucas Monge and Dann Corbit, As soon as as John Stanback sends me his, I will update.
Also, a note of great appreciation to all of those who contribute to Stockfish:
List of authors for Stockfish, last updated as of 03/06/2019, from Github/Official-Stockfish
Tord Romstad (romstad) Marco Costalba (mcostalba) Joona Kiiski (zamar) Gary Linscott (glinscott) Aditya (absimaldata) Adrian Petrescu (apetresc) Ajith Chandy Jose (ajithcj) Alain Savard (Rocky640) alayan-stk-2 Alexander Kure Ali AlZhrani (Cooffe) Andrew Grant (AndyGrant) Andrey Neporada (nepal) Andy Duplain Aram Tumanian (atumanian) Arjun Temurnikar Auguste Pop Balint Pfliegel Ben Koshy (BKSpurgeon) Bill Henry (VoyagerOne) braich Bojun Guo (noobpwnftw) Brian Sheppard (SapphireBrand) Bryan Cross (crossbr) Chris Cain (ceebo) Dan Schmidt Daniel Dugovic (ddugovic) Dariusz Orzechowski David Zar Daylen Yang (daylen) DiscanX Eelco de Groot Elvin Liu (solarlight2) erbsenzaehler Ernesto Gatti Fabian Beuke (madnight) Fabian Fichter (ianfab) fanon Fauzi Akram Dabat (FauziAkram) Felix Wittmann gamander gguliash Gian-Carlo Pascutto (gcp) Gontran Lemaire (gonlem) Goodkov Vasiliy Aleksandrovich (goodkov) Gregor Cramer GuardianRM Günther Demetz (pb00067, pb00068) Guy Vreuls (gvreuls) Henri Wiechers Hiraoka Takuya (HiraokaTakuya) homoSapiensSapiens Hongzhi Cheng Ivan Ivec (IIvec) Jacques B. (Timshel) Jan Ondruš (hxim) Jared Kish (Kurtbusch) Jarrod Torriero (DU-jdto) Jean-Francois Romang (jromang) Jerry Donald Watson (jerrydonaldwatson) Jonathan Calovski (Mysseno) Jonathan D. (SFisGOD) Joost VandeVondele (vondele) Jörg Oster (joergoster) Joseph Ellis (jhellis3) Joseph R. Prostko jundery Justin Blanchard Kelly Wilson Ken Takusagawa kinderchocolate Kiran Panditrao (Krgp) Kojirion Leonardo Ljubičić (ICCF World Champion) Leonid Pechenik (lp--) Linus Arver loco-loco Lub van den Berg (ElbertoOne) Luca Brivio (lucabrivio) Lucas Braesch (lucasart) Lyudmil Antonov (lantonov) Matthew Lai (matthewlai) Matthew Sullivan Mark Tenzer (31m059) Michael Byrne (MichaelB7) Michael Stembera (mstembera) Michael Chaly (Vizvezdenec) Michel Van den Bergh (vdbergh) Miguel Lahoz (miguel-l) Mikael Bäckman (mbootsector) Michael Whiteley (protonspring) Miroslav Fontán (Hexik) Moez Jellouli (MJZ1977) Mohammed Li (tthsqe12) Nathan Rugg (nmrugg) Nicklas Persson (NicklasPersson) Niklas Fiekas (niklasf) Ondrej Mosnáček (WOnder93) Oskar Werkelin Ahlin Pablo Vazquez Pascal Romaret Pasquale Pigazzini (ppigazzini) Patrick Jansen (mibere) pellanda Peter Zsifkovits (CoffeeOne) Ralph Stößer (Ralph Stoesser) Raminder Singh renouve Reuven Peleg Richard Lloyd Rodrigo Exterckötter Tjäder Ron Britvich (Britvich) Ronald de Man (syzygy1) Ryan Schmitt Ryan Takker Sebastian Buchwald (UniQP) Sergei Antonov (saproj) sf-x shane31 Steinar Gunderson (sesse) Stefan Geschwentner (locutus2) Stefano Cardanobile (Stefano80) Stéphane Nicolet (snicolet) Thanar2 thaspel Tom Vijlbrief (tomtor) Torsten Franz (torfranz) Uri Blass (uriblass) Vince Negri
McCain-X2 is an alternative chess engines for the chess connoisseur who appreciates using top chess engines for analysis or too et Stockfish to weaker level for more casual play. It is based on current -dev Stockfish (10+ 3-31-2019)), hence it will play mostly like Stockfish v10+ most of the time. There are certain positions that McCain will provide analysis that is often overlooked by other engines.
McCain also works with the Cerebellum book by Thomas Zipproth (Brainfish Author - www.zipproth.de) . It also includes the standard McCain UCI options, including Limit Strength (Elo) (use Threads set to 1!) , Brute Force , No Null, Fast Play, Tactical and variety play. All of the keyboard shortcut commands, remain, eliminating the need to always perform the UCI setoption name value command from the keyboard as long as the option name does not contain spaces. As mentioned previously, it accepts 3 polyglot books and will follow the moves of the books in sequential order - play book1 first - once "out of book", twill play from book 2, then book 3 once book 2 is out of book. McCain-X2 supports 7 man syzygy endgame tablebase
Some shortcut commands: b = bench g = go i = infinite p f = position fen sd = search depth sm = searchmoves q = quit ? = stop ( to stop A search) new option set or s = set, see example below e.g., set threads xx = setoption name threads value xx set hash xxx = setoption name hash value xx g d 5 = go depth 5 g i = go infinite g movetime 10000 sm g1f3 - searches only move g1f3 for 10 seconds
Please note that ALL of the strength and usability of McCain is due to the Stockfish team. The Stockfish team is amazing and they work very hard and are very creative in keeping Stockfish the number 1 engine in the world and all their work is done pro bono for you. So if you have extra CPU cycles sitting around the home or business , please consider donating your spare CPU time:
https://stockfishchess.org/get-involved/ It is very easy , you can be on any type of OS, Windows/macOS/Linux and they have scripts that will run the process for you behind the scenes, once setup, simply logon to fishtest and leave your computer on.
McCain will be competitive with any engine at time control of 60 seconds and 2 seconds increment or longer. But the main focus of McCain is for deep analysis in long games, such as those played in correspondence games.
Future releases will be in alignment with the official Stockfish releases generally, however this will be subject to ELO gains or features added by the SF team as determine by me.
McCain has been adopted for DGT-Pi electronic chessboard. Please reach out to Al "Scally" Cooper for more information (https://github.com/scallybag) . The setting files that Al distributes have numerous fun and weaker engine settings to play against. Al frequently posts on this site if you want to reach out to him: https://groups.google.com/forum/#!forum/picochess
Finally, a very huge thank you and note of appreciation to Lucas Monge (https://lucaschess.pythonanywhere.com) , John Stanback (http://john.stanback.net) and Dann Corbit (http://rebel13.nl/misc/ebf/dann%20corbit.html) for their work in compiling the different flavors of exe's presented below for Windows and Linux Operating Systems. Hopefully, you find one that works for you.
Note - additional flavors will be posted when received.