The Jumbo Twins (WinBoard Chess Engine Family)

(Last update: 29-Jul-2019)

This page presents the WinBoard chess engine family "The Jumbo Twins". Each family member is a free, non-commercial, amateur engine playing chess - nothing more. There is no warranty that it works as expected. Downloading and installing it is at your own risk.

Using it properly requires an appropriate graphical user interface (GUI).

Why "twins", why "family"? Starting with version 0.5.3 each Jumbo release contains four instead of two binaries built from the same source code (of course compiled with different flags): for both the 32-bit and the 64-bit variant there is now a classical mailbox variant and also a bitboard variant. This allows a direct comparison of both board representations using the same search, evaluation, and protocol driver.

Testing should focus on the 64-bit bitboards executable "jumbo64-VERSION-bb.exe" (replace VERSION by the version number, e.g. 0.5.3) but I would also appreciate further testing of the other variants, especially the 64-bit classical mailbox program "jumbo64-VERSION.exe" (without the -bb suffix).

Download the current version

jumbo-0.7.0 (Win64 binaries) Released:
29-Jul-2019
Playing strength: still unknown (estimated at about 2600 Elo - CCRL 40/4)
Changes compared to 0.6.107:
  • Switched to C++17 language standard in compilation
  • Small eval bugfixes
  • Added pawn fork detection and outpost knight eval
  • Added singular extension
  • Improved eval tuning and gained ~20 Elo by restarting tuning from scratch
Important notes (most recent comes first):

Starting with version 0.6.107 the Win64 binaries ("jumbo64-*.exe") were built using CygWin GCC 7.4.0.

Starting with version 0.6.66 the binaries for older 64-bit CPUs are named as follows:
  • jumbo64-VERSION-no-sse42.exe (mailbox)
  • jumbo64-VERSION-bb-no-sse42.exe (bitboards)
Version 0.6.64 works correctly except for the new binaries for older 64-bit CPUs (these binaries are crashing).

Version 0.6.63 does not work reliably, it crashes at startup in several scenarios.

Starting with version 0.6.62 Jumbo comes with two additional binaries for older 64-bit CPUs:
  • jumbo64-VERSION-sse41.exe (mailbox)
  • jumbo64-VERSION-bb-sse41.exe (bitboards)
Starting with version 0.6.45 the CygWin DLLs are now packaged together with the Jumbo binaries so no separate download of the DLLs is needed. (It just takes a bit more disk space to have N copies of the same DLLs in different zip files ...)

Versions 0.6.45, 0.6.51, 0.6.62 and possibly higher versions have the following restrictions:
  • no 32-bit binaries (sorry for that)
  • the 64-bit classical 0x88 mailbox binary is much weaker than the corresponding bitboard binary, or might even not work at all, since some new functionality is not yet implemented there.
Versions 0.6.35, 0.6.45, 0.6.51 and 0.6.62 have the following restrictions:
  • The engine crashes at startup when running in a folder where "jumbo.ini" exists and contains one of the options "ttHashSizeMB" or "pawnHashSizeMB" which is not commented out, regardless of the option value.
  • The engine crashes when processing one of the options "ttHashSizeMB" or "pawnHashSizeMB" provided by the GUI (via "option" protocol command), but only if the new value is smaller than the default value (256 resp. 32).
Starting with version 0.5.3 Jumbo comes with four different binaries:
  • two 32-bit binaries:
    • jumbo-VERSION.exe (32-bit binary using classical 0x88 mailbox board representation) and
    • jumbo-VERSION-bb.exe (32-bit binary using bitboards) - more or less "for completeness"
  • and two 64-bit binaries:
    • jumbo64-VERSION.exe (64-bit binary using classical 0x88 mailbox board representation) and
    • jumbo64-VERSION-bb.exe (64-bit binary using bitboards) - the most relevant binary
Starting with version 0.4.0 the engine is capable of SMP (Symmetric Multi-Processing) and will use as many search threads in parallel as configured via GUI, but never more than the available number of logical cores.

Starting with version 0.3.8 the Win64 binaries ("jumbo64-*.exe") were built using CygWin GCC 5.4.0 and require the following DLLs that are part of the CygWin installation:
  • cyggcc_s-seh-1.dll
  • cygstdc++-6.dll
  • cygwin1.dll
If you do not have these DLLs on your system you can download them from here.

Download older versions

jumbo-0.6.107 (Win64 binaries) Released:
01-Jun-2019
Playing strength: 2563 (CCRL 40/40), 2546 (CCRL 40/4)
Changes compared to 0.6.96:
  • Added countermove heuristic
  • Allowed hash table size > 2 GB
  • Added evaluation of attacks to king zone
  • Improved search output
  • Bugfixes, refactoring and speedup
jumbo-0.6.96 (Win64 binaries) Released:
13-Jan-2019
Playing strength: 2487 (CCRL 40/40), 2488 (CCRL 40/4)
Changes compared to 0.6.66:
  • improved staged move generation
  • added static exchange evaluation (SEE)
jumbo-0.6.66 (Win64 binaries) Released:
11-Nov-2018
Playing strength:same as 0.6.64
Changes compared to 0.6.64:
  • show thinking output after each iteration starting with depth 8
  • binaries for older 64-bit CPUs are now built correctly so that they do not crash
jumbo-0.6.64 (Win64 binaries) Released:
01-Nov-2018
Playing strength: 2490 (CCRL 40/40), 2463 (CCRL 40/4)
Changes compared to 0.6.63:
  • fixed a bug in the hashtable code that had been introduced in 0.6.63 and caused crash at startup
  • fixed a bug in the engine output towards the GUI that had been introduced in 0.6.63 and caused CuteChess to terminate the engine with "Invalid Xboard option"
jumbo-0.6.63 (Win64 binaries) Released:
31-Oct-2018
Playing strength: about 2500 Elo - CCRL 40/40
Changes compared to 0.6.62:
  • bugfixes and improvements in option handling
jumbo-0.6.62 (Win64 binaries) Released:
29-Oct-2018
Playing strength: about 2500 Elo - CCRL 40/40
Changes compared to 0.6.51:
  • added checks in qsearch
  • added -flto -msse4.2 compile flags for more speed
  • bugfix in end-of-game detection: sometimes mate or stalemate was reported randomly
  • small corrections in evaluation
  • fix of a horrible bug in initialization code for pawn attacks
  • no mate distance pruning at root node
  • repeat the iteration with full window if its first repetition failed high or low
jumbo-0.6.51 (Win64 binaries) Uploaded:
5-Oct-2018
Playing strength: 2488 (CCRL 40/40)
Changes compared to 0.6.45:
  • restrict check extension for non-PV nodes to those at low remaining depth
  • added evasion generator
  • increase search time once when leaving opening book
  • bugfix: corrected viewpoint of EGTB probing in top-level search function
jumbo-0.6.45 (Win64 binaries) Uploaded:
4-Aug-2018
Playing strength: about 2463 Elo - CCRL 40/40 (but it should be even a bit stronger)
Changes compared to 0.6.35:
  • staged move generation
  • optimized search by detecting checks without making a move
  • automatically initialize Gaviota EGTB when receiving option gtbPath
  • reduced minimum depth for IID from 5 to 3
  • restrict IID to PV nodes
jumbo-0.6.35 (Win32 binaries)
jumbo-0.6.35 (Win64 binaries)
Released:
26-May-2018
Playing strength: 2478 (CCRL 40/40), 2467 (CCRL 40/4)
Changes compared to 0.6.34:
  • bugfix for ini file implementation, "jumbo.ini" can now be used as intended
jumbo-0.6.34 (Win32 binaries)
jumbo-0.6.34 (Win64 binaries)
Released:
25-May-2018
Playing strength: about 2474 Elo - CCRL 40/40
Changes compared to 0.6.31:
  • improved support for Gaviota endgame tablebases which failed to work with some GUIs
  • added configuration file "jumbo.ini" (NOTE: using "jumbo.ini" does not work in this version, please use 0.6.35 or later if you want to configure parameters via ini file!)
  • first attempt at implementing material imbalance evaluation
jumbo-0.6.31 (Win32 binaries)
jumbo-0.6.31 (Win64 binaries)
Released:
07-May-2018
Playing strength: 2469 (CCRL 40/40), 2440 (CCRL 40/4)
Changes compared to 0.6.10:
  • added support for Gaviota endgame tablebases (3-4-5 men, DTM), GUI must send the "egtpath gaviota PATH" standard winboard command (default path C:\gtb)
  • added a small amount of special endgame knowledge
  • changed implementation of mobility evaluation
  • several minor tweaks and internal refactorings
jumbo-0.6.10 (Win32 binaries)
jumbo-0.6.10 (Win64 binaries)
Released:
27-Dec-2017
Playing strength: 2482 (CCRL 40/40), 2461 (CCRL 40/4)
Please read the "Important notes" above!
Changes compared to 0.5.27:
  • implemented and applied parameter tuning based on the "Texel" method
jumbo-0.5.27 (Win32 binaries)
jumbo-0.5.27 (Win64 binaries)
Released:
19-Dec-2017
Playing strength: 2322 (CCRL 40/4)
Please read the "Important notes" above!
Changes compared to 0.5.3:
  • fixed out-of-bounds array access in pawn structure evaluation
  • several improvements of pawn structure evaluation
  • bugfix in king tropism eval
  • implemented pawn hash
  • added backward pawn eval
  • extended detection of losing captures
jumbo-0.5.3 (Win32 binaries)
jumbo-0.5.3 (Win64 binaries)
Released:
25-Sep-2017
Playing strength: 2369 (CCRL 40/40), 2339 (CCRL 40/4)
Please read the "Important notes" above!
Changes compared to 0.4.34:
  • Major code refactoring to support two different board representations
  • Minor bugfixes
  • Added king tropism evaluation
  • Added simple evaluation of some specific endgames
jumbo-0.4.34 (Win32 binary)
jumbo-0.4.34 (Win64 binary)
Released:
02-May-2017
Playing strength: 2421 (CCRL 40/40), 2329 (CCRL 40/4)
Please read the "Important notes" above!
Changes compared to 0.4.17:
  • Improved passed pawn evaluation scoring (bigger improvement)
  • Added razoring (smaller improvement)
  • Added some endgame knowledge for pawnless mating situations (no measurable improvement but "nice")
  • Bugfix in PolyGlot book handling regarding castling moves
  • Fixed some WinBoard protocol issues regarding draw claims
  • Added WinBoard commands "analyze" and "playother"
  • A lot of internal improvements and refactoring
jumbo-0.4.17 (Win32 binary)
jumbo-0.4.17 (Win64 binary)
Released:
02-Feb-2017
Playing strength: 2342 (CCRL 40/40), 2312 (CCRL 40/4)
Please read the "Important notes" above!
Changes compared to 0.4.16:
  • major bugfix in killer move handling!
jumbo-0.4.16 (Win32 binary)
jumbo-0.4.16 (Win64 binary)
Released:
31-Jan-2017
Playing strength: estimated at about 2300 Elo (CCRL 40/40 scale)
Please read the "Important notes" above!
Changes compared to 0.4.0:
  • time management: added "easy move"
  • time management: do not start new iteration if there is not enough time for the first two root moves
  • evaluation: added scaling down of some drawish endgames
  • evaluation: added scaling down of evaluation if the fifty-moves counter is high ("no progress")
  • evaluation: added some king safety elements (pawn shield, king on open file)
jumbo-0.4.0 (Win32 binary)
jumbo-0.4.0 (Win64 binary)
Released:
24-Dec-2016
Playing strength: 2275 (CCRL 40/40), 2216 (CCRL 40/4)
Please read the "Important notes" above!
Changes compared to 0.3.8:
  • improved accuracy of losing capture detection
  • implemented WB commands sd, undo, remove
  • introduced Lazy SMP, including a lot of refactoring
  • ported threading code to C++11
  • important bugfixes in search regarding mate scoring and other problems
  • Only store a killer move if it is not the only legal move
jumbo-0.3.8 (Win32 binary)
jumbo-0.3.8 (Win64 binary)
Released:
23-Oct-2016
Playing strength: ? (slightly stronger than 0.1.10)
Please read the "Important notes" above!
Changes compared to 0.1.10:
  • changed move ordering in full-width search: quiet non-killer moves are now ordered by PST score delta
  • added bishop pair evaluation
  • added evaluation of rooks on open and semi-open files
  • provided a faster 64-bit build using CygWin GCC 5.4.0 in addition to the traditional 32-bit build with Microsoft VS 2010 Express
  • PVS bugfix
  • small change in futility pruning: do not prune if alpha or beta are mate scores
  • bugfix in PolyGlot book management code: castling moves from book (and possibly also other special moves) were not made correctly and later on caused the engine to play an illegal move
  • bugfix in search: PV of last iteration must not be discarded on timeout
  • improved engine initialization by delaying TT init as much as possible
  • do not set ep square if specified in FEN but no ep capture is possible
jumbo-0.1.10 (Win32 binary) Released:
25-Sep-2016
Playing strength: 2093 (CCRL 40/4)
Changes compared to 0.1.5:
  • Bugfix: game ply was not reset to 0 on "new" command, causing wrong time calculation
  • Allowed uppercase letters in move string of "usermove" command
  • Added internal Polyglot book support
  • Added options:
    • ttHashSizeMB (min 1, max 2048, default 256)
    • bookFilePath (default "book.bin")
jumbo-0.1.5 (Win32 binary) Released:
19-Sep-2016
Playing strength: 2040 (CCRL 40/4)
First public release

About the engine

Author:

Sven Schüle, Berlin (Germany)

Contact: Sven dot Schuele at gmx dot de