Installing endgame tablebases

by ChessBase
6/9/2004 – There's more to installing endgame tablebases than just copying them to your hard drive. Before your engine goes into head-to-head combat, you should test the tablebases to make sure they're functioning properly. We step you through the process in this week's ChessBase Workshop.

ChessBase 17 - Mega package ChessBase 17 - Mega package

ChessBase is a personal, stand-alone chess database that has become the standard throughout the world. Everyone uses ChessBase, from the World Champion to the amateur next door. It is the program of choice for anyone who loves the game and wants to know more about it.



by Steve Lopez

Contrary to popular belief, I do read chess message boards. Not all of them, mind you -- I already have a fulltime job and a couple of side gigs, so my time is limited. But I'm a moderator at The Chess Exchange and I read a couple of other message boards, mostly those aimed at general players/users, not programmers. Additionally I have a few friends who give me a "heads up" when they think there's something on a board that I really ought to see.

I received one of those "heads up" tips recently which went hand-in-glove with something I've been seeing on the few message boards that I regularly monitor. Lately it seems that some users are having trouble figuring out what to do with the Nalimov endgame tablebases, which are offered by ChessBase under the title DVD Endgame Turbo 2. So in this ChessBase Workshop we're going to describe how to install them, configure Fritz (or its sister programs) to use them, and show that they're working properly.

For those coming in late, tablebases are endgame databases used by chess engines to enable them to play certain endgames perfectly. Properly playing an endgame often requires some level of preknowledge of technique and that's a hard thing for an engine to figure out "on the fly"; even simple endgames might require ten to fifteen moves to properly execute. That's something that the average club player might know at a glance from the position, but would necessitate a thirty-ply search by a chess engine; even with the fastest home processors, that's just not going to happen in many endgames with five or six pieces on the board. So the engine consults the tablebases and sees instantly the proper technique for winning that endgame.

Just so you have an idea of how this works, let's describe a simple example. In the tablebase containing King and Rook vs. lone King, every possible position of these three pieces (yes, in tablebase parlance, the Kings do count as "pieces") is contained in the tablebase. The engine looks at these positions "threaded" together and sees how the game can be won by the K+R side without the engine needing to calculate out the variations.

One of the cooler aspects to tablebases is that engines can link different tablebases together. Let's say that the initial tablebase is K+Q vs. K+R. The opponent makes an error that leaves his Queen en prise. The engine not only sees that it should capture the Queen, but then also consults the K+R vs. K tablebase to see the followup moves after the Queen is captured. And most chess engines can consult the tablebases as part of an earlier search. Let's say that the board position is King, Bishop, and three pawns against a King and Rook -- that's one pawn too many to qualify for the K+B+3P vs. K+R tablebase. During its search, the engine evaluates a position in which one of the pawns is captured three moves down the line. Suddenly the tablebases kick in -- the engine is able to instantly see the followup after the pawn is captured, since that now becomes a position from the K+B+3P vs. K+R tablebase. So the engine not only sees the pawn capture but also sees the multi-move followups, and is able to use this information in evaluating the current position to determine whether or not the pawn capture variation is a good idea.

This is terrific stuff but there's something of a price to it (as Stephen King once wrote: "You pay as you go"). The tablebases come on five DVDs and that's a lot of information -- it will require 24 GB of space to put all of these tablebases on your hard drive.

If you want to do this (and have the space), there are three steps to the process:

  1. Copying the files to the hard drive;
  2. "Pointing" your chessplaying software to the location of the files;
  3. Checking to see that you've done the first two steps properly.

1. Copy the files to the hard drive

You'll need to create a folder on your hard drive in which to store the tablebase files. For example, I created one on my C: drive and called it \tbases. Just create a folder and copy all of the tablebase files from the DVDs into that folder. Note that all of the tablebase files end in .EMD, so these are the only files you need to copy -- you can safely ignore any other files on the DVDs. And do make sure you have enough hard drive space before you start.

If for some reason you don't want all of the tablebases on your hard drive and only want to use some of them, please make sure that you have all of the three-piece and four-piece files on your hard drive before copying any of the five-piece tablebase files. The five-piece files won't work properly unless the files for endgames with fewer pieces are also present and available.

If you're not sure how to create a folder and/or copy files, consult a basic book for whichever version of Windows you're using.

2. "Point" the chessplaying software to your tablebase folder

You'll need to tell Fritz (or one of its "sister" programs) where to find the tablebases on your hard drive in order for your engines to use them. Fire up Fritz and click "Play Fritz" in the "splash" screen to go to the main display of the program. Go to the Tools menu, select "Options", and then click on the "Tablebases" tab:

In the box next to "Path 1", type in the path to the tablebase folder you created in Step 1. For example, I'd type c:\tbases since that's where I copied my tablebase files back in the first step. Alternatively you can click the "Browse" button to get a selection dialogue that will let you choose from a list of the folders on your hard drive.

Either way you do it, you'll want to click the "Apply" button after you've pointed Fritz toward the right folder. Then click the "OK" button and you're all set to test whether or not the tablebases are working and you've done everything properly.

3. Test to see if everything's working OK

You'll recall a few weeks back we examined how to set up a position in Fritz. Set up the following position with White to move:

This is a very simple four-piece ending but will do nicely for our purposes. Make sure you've loaded the Fritz engine (or the main engine from whichever other ChessBase playing program you own) by hitting F3 and selecting it from the Engines list -- also at this time make sure that "Use Tablebases" is checked in this dialogue. Make sure you have the Main Engine Pane visible (Window menu/Panes/Main Engine Pane). Now just hit ALT-F2 for Infinite Analysis Mode and look at the Main Engine Pane. The engine shouldn't be analyzing as it normally does. Instead you should see something like this:

Note that this should happen instantly when you hit ALT-F2; you should see a menu of single moves (not variations), the top two of which should be mates in twenty-five moves. Without the tablebases loaded it will take a few seconds of analysis for your engine to come up with the mate on its own. If you see this display (single moves with distance to mate) displayed, you know that you've followed the steps properly and the tablebases are enabled and working.

That's all there is to it; just follow those steps and give your chess engine perfect endgame knowledge. Until next week, have fun!

© 2004, Steven A. Lopez. All rights reserved.

Reports about chess: tournaments, championships, portraits, interviews, World Championships, product launches and more.


Rules for reader comments


Not registered yet? Register