From: mann@pa.dec.com (Tim Mann)
Newsgroups: gnu.chess,rec.games.chess.computer,alt.chess.ics,alt.answers,rec.answers,news.answers
Subject: FAQ -- GNU Chess and XBoard Frequently Asked Questions
Followup-To: gnu.chess
Reply-To: bug-gnu-chess@prep.ai.mit.edu
Approved: news-answers-request@MIT.EDU
Summary: Answers to frequently asked questions in the gnu.chess
  newsgroup, covering the chess-playing program GNU Chess, the chess
  interfaces XBoard and WinBoard, and other chess topics.

Archive-name: games/chess/gnu-faq
Version: $Id: FAQ.html,v 1.89 1997/05/17 07:58:54 mann Exp $
Posting-frequency: monthly

GNU Chess and XBoard:
Frequently Asked Questions

Here is the list of frequently asked questions and answers for the gnu.chess newsgroup, covering the chess-playing program GNU Chess, the chess interfaces XBoard and WinBoard, and a few other chess topics. In addition to the plain text version that is posted to the newsgroups, a hyperlinked version of this FAQ is available on the Web through the page http://www.research.digital.com/SRC/personal/Tim_Mann/chess.html.

Outline


Detailed contents


[A] Introduction and hot topics


[A.1] What are the gnu.chess newsgroup and info-gnu-chess mailing list for?

The newsgroup gnu.chess and the mailing list info-gnu-chess@prep.ai.mit.edu are for the discussion of GNU Chess, XBoard, and related free chess software.

gnu.chess and info-gnu-chess are not for general chess or computer chess discussion. You won't be flamed if you post such messages here, but you will find more information in other places. See topic [A.3] below.

PLEASE DO NOT try to start or play chess games by posting messages to gnu.chess. Instead, read the rec.games.chess FAQ (see topic [A.3]) to learn about the IECG, the IECC, and other groups that you can join to find opponents, and send one or more of them email to join.

The newsgroup and mailing list are gatewayed bidirectionally; that is, any article posted on the newsgroup is automatically forwarded to the mailing list, and any mail sent to the list is automatically forwarded to the newsgroup.


[A.2] How do I subscribe or unsubscribe?

The simplest way is to either choose to read gnu.chess in your newsreader, or choose not to.

If you want to be added to or deleted from the mailing list, mail to info-gnu-chess-request@prep.ai.mit.edu (not to the list or newsgroup itself).


[A.3] Where can I get chess information and chess software?

As a shortcut to most things mentioned in this FAQ, try my Chess Web page, http://www.research.digital.com/SRC/personal/Tim_Mann/chess.html.

For general news and information about chess, try the newsgroup hierarchy rec.games.chess.*, especially the groups rec.games.chess.misc and rec.games.chess.computer. Both of the latter groups have very informative FAQs maintained by Steve Pribut; look for them on the newsgroups or at http://www.clark.net/pub/pribut/chess.html.

Like other GNU software, you can get GNU Chess and XBoard by anonymous FTP from ftp://prep.ai.mit.edu/pub/gnu/ and its many mirror sites. Look for files matching the patterns gnuchess-*.gz and xboard-*.gz. The .gz suffix indicates the files were compressed with gzip. You can get gzip from prep.ai.mit.edu also. The GNU FTP sites generally carry Unix-compatible versions of GNU software only, so you won't find WinBoard there.

For other chess software, try the Internet Chess Library. Use anonymous FTP to connect to caissa.onenet.net, or go to the Web page http://caissa.onenet.net/. You can get chess software, game collections, the FAQ file for rec.games.chess, and other chess-related material there, in the directory pub/chess. Sometimes new XBoard versions arrive on this site before they make it to prep. The FTP server can automatically decompress files for you as you download them, useful if you don't have gzip. Note that caissa.onenet.net is not necessarily the same machine as fics.onenet.net!

You can get WinBoard from the Internet Chess Library, in directory pub/chess/Win3.

Here is a sample anonymous ftp session. Some of the ftp server's responses are abbreviated, but all the commands you must type are included.

% ftp prep.ai.mit.edu
Connected to prep.ai.mit.edu
Name: anonymous
Password: your-email-address@your-site
ftp> binary
200 Type set to I.
ftp> cd /pub/gnu
250 CWD command successful.
ftp> dir gnuchess-*.gz
-rw-r--r-- 1 14910 wheel 1512181 May 20 00:52 gnuchess-4.0.pl77.tar.gz
ftp> get gnuchess-4.0.pl77.tar.gz
150 BINARY connection for gnuchess-4.0.pl77.tar.gz (1512181 bytes).
226 Transfer complete.
ftp> dir xboard-*.gz
-rw-r--r-- 1 14910 wheel  393119 May 20 00:25 xboard-3.5.0.tar.gz
ftp> get xboard-3.6.1.tar.gz
150 BINARY connection for xboard-3.6.1.tar.gz (393119 bytes).
226 Transfer complete.
ftp> quit

[A.4] What are the current version numbers for GNU Chess, XBoard, etc.?

At this writing, the current version numbers are:

[A.5] Who is working on this project?

Stuart Cracraft is the GNU Chess project coordinator. Currently Chua Kong Sian seems to be the only person working the GNU Chess engine itself. Conor McCarthy is responsible for GNU Chess 4.00 for Windows. Tim Mann maintains this FAQ and is the lead developer on XBoard and WinBoard, but he has little time to spend on the project. Frank McIngvale is also working on XBoard, concentrating on Crafty support. Evan Welsh, the author of cmail, is not actively working on it but does fix bugs when they are reported.

[A.6] How do I report bugs, offer help, etc.?

Any time you want to report a possible bug in GNU Chess, XBoard, etc., we need to know exactly what you did, and exactly what error (or other) messages you got.

If you are using Unix, run the "script" program, run XBoard with the -debug flag (if you get as far as running it), do whatever is necessary to reproduce the problem, type "exit" to the shell, and mail us the resulting typescript file. We also need to know what hardware/operating system combination you are using. The command "uname -a" will usually tell you this; include its output in your typescript.

If you are using MS Windows, run WinBoard with the -debug flag, and send us a copy of the WinBoard.debug file.

Either way, please send us the exact text of the commands you typed and the output you got, not just your recollection of approximately what they were. The messages may seem meaningless to you, but they are meaningful to us and essential for diagnosing problems.

You should be able to contact all the members of the project by sending mail to bug-gnu-chess@prep.ai.mit.edu. If you don't trust this list, you can send mail about XBoard, WinBoard, or the FAQ to mann@pa.dec.com (Tim Mann); mail about cmail to R.E.Welsh@quadstone.co.uk (Evan Welsh). Comments that are of interest to all users of the software should be posted to the gnu.chess newsgroup.


[B] GNU Chess


[B.1] What is GNU Chess?

GNU Chess is a free chess-playing program developed as part of the GNU project of the Free Software Foundation (FSF).

GNU Chess is a communal chess program. Contributors donate their time and effort in order to make it a stronger, better, sleeker program. Contributions take many forms: interfaces to high-resolution displays, opening book treatises, speedups of the underlying algorithms, additions of extra heuristics. These contributions are then distributed to the large user-base so that all may enjoy the fruits of our labor.

GNU Chess is intended to run under Unix or Unix-compatible systems. It is written in C and should be portable to other systems.

For a test drive, try WebChess, a World Wide Web interface to GNU Chess provided by DJ Delorie. The URL is http://www.delorie.com/game-room/chess/.


[B.2] What is GNU Chess's rating?

It would be irresponsible to answer this question with a number, without first explaining a few things about ratings.

The ratings that are commonly given for computer chess players are less meaningful than they may seem. Most computer chess players (including GNU Chess) do not play in tournaments against humans, or do so only rarely, so they do not have official ratings from FIDE, USCF, or other chess organizations.

Some people have methods for rating chess programs approximately by giving them a set of problems to work on and seeing how they do, or by having them play tournaments against each other. Any rating number produced by such means should be taken with a grain of salt; it may be only a rough approximation to the rating the program would achieve in over-the-board tournament competition against humans. The chess skills required for solving problems or playing against other computers are not necessarily the same as those required for play against humans. Also, of course, tournaments among computers can rate the computers only relative to one another, not relative to humans. Some of the computers need to be rated by other means to give the ratings a basis to start from.

Compared with human players, computer players are strong tactically but weak strategically, and are much better at blitz chess than at slow chess. These differences make it more difficult to assign a meaningful rating too.

Several computers do play regularly on the Internet chess servers and have achieved ratings there. These ratings have the advantage of being based on many games. On the other hand, ICS ratings are only roughly comparable to USCF or FIDE ratings. Many players have ICS ratings that are hundreds of points higher or lower than their USCF or FIDE ratings.

Finally, unlike dedicated chess machines, or PC chess programs that run on only a few different models of Intel processors, GNU Chess runs on many different kinds of CPU at many different speeds. Thus its strength depends on how fast a machine you run it on and how much optimization your C compiler does. Some people have formulas for estimating how a computer player's rating varies on faster or slower machines---see the rec.games.chess FAQ for more information---but these need to be taken with a grain of salt too.

All that said, here are some numbers.

- On the Internet Chess Club, a copy of GNU Chess running on an SGI Onyx R4400 under the handle MaxII once achieved a blitz rating of over 2500 and a standard rating of over 2300.

- Wolfgang Gabriel ran the Bednorz-Toennissen Test BT2630 with GNU Chess 4.0 pl74 on a 60 MHz Pentium with 16 MB of RAM. The test gave an estimated rating of 2213. He also ran Fritz-2 on the same hardware and got an estimated rating of 2311.


[B.3] Does GNU Chess run on a PC under DOS (or Windows, or OS/2)?

Yes. There are several versions available.

WinBoard provides a graphical user interface to GNU Chess that runs on Windows 95 and Windows NT. See topic [D.2]. The WinBoard distribution includes a GNU Chess executable for the Intel architecture, plus instructions and patches (when necessary) for recompiling GNU Chess from the official sources, available separately.

GNU Chess 4.00 for Windows bundles GNU Chess and a custom graphical interface into a single program. Unlike WinBoard, it runs on Windows 3.1 if you have the Win32s compatibility package installed (available free from Microsoft). You can get GNU Chess 4.00 for Windows from ftp://prep.ai.mit.edu/pub/gnu/gnuchessPC-4.0.pl77.zip. The distribution includes complete sources and an Intel executable.

The standard GNU Chess 4.0 distribution can be compiled for MS-DOS, and will run under Windows in a DOS box, but with no graphical interface. Depending on what patchlevel of GNU Chess you get and what C compiler you have, you may need to make minor source changes to get it to compile. Some precompiled versions are available in the Internet Chess Library; the most recent at this writing is: ftp://caissa.onenet.net/pub/chess/DOS/gch4077.zip.

Here is a listing of GNU Chess files for the PC in the Internet Chess Library (topic [A.3]). They are scattered among the directories /pub/chess/Win3, /pub/chess/DOS, and (don't forget) /pub/chess/DOS/OLD-STUFF. This listing may be outdated; see the library itself to look for additions.

MS-DOS:
  gch4077.zip       497874  GNU Chess 4.0.pl77 for MS-DOS; needs 386 or better.
  gnu40-62.exe     1323260  Probably GNU Chess 4.0.pl62 for MS-DOS
  gnu40dos.exe T    317072  GNU Chess 4.0pl60 by Free Software Foundation
                         -  compiled for DOS, executables only
  gnu40src.exe      307786  GNU Chess 4.0pl60 by Free Software Foundation
                         -  sources only
  gnuchs31.exe T    270559  GNU Chess 3.1 by Free Software Foundation
                         -  compiled for DOS, sources and executables
  gnuchs40.exe T    355494  GNU Chess 4.0pl60 by Free Software Foundation
                         -  compiled for 80386er, executables only

Windows:
  chess321.exe W  M 238185  GNU Chess 3.21 ported by Daryl K. Baker

OS/2:
  gpl65os2.zip      677824  gnuchess-4.0.pl65 compiled for os2.
  gc-os2-m.zip      578032  gnuchess 4.0 for os2 with mouse support.
  gnu40os2.zip     1303602  Executables for running gnuchess 4.0 pl62
                         -  under OS/2. 
  pmchs.exe    W  M  92004  OS/2 PM Chess 1.01 (GNU Chess 3.1 Windows by
                         -  Daryl K. Baker) port to OS/2 by Kent Cedola
  pmchssrc.exe      110279  OS/2 PM Chess 1.01 (GNU Chess 3.1 Windows by
                         -  Daryl K. Baker) sources only

Porting GNU software to PCs is not a major focus of the GNU project, and these ports are not supported by the FSF. Contact the people who did the ports if you have questions or problems.


[B.4] Does GNU Chess run on an Amiga?

There are at least three ports of GNU Chess to the Amiga. As with the PC ports, these ports are not supported by the FSF; contact the people who did the ports if you have problems or questions.

The AmyBoard port (probably the best) is discussed in topic [D.3].

UChess and AmigaGnuChess are available in the Internet Chess Library (topic [A.3]), in the directory /pub/chess/Amiga. UChess is the newer of the two.

-r--r--r--  1 chess    chess   204025 Mar 31  1993 AmigaGnuChess.lha
-r--r--r--  1 chess    chess    10122 Mar 31  1993 AmigaGnuChess.readme

-r--r--r--  1 chess    chess   705327 May  7 10:28 UChess283.lha
-r--r--r--  1 chess    chess    21478 May  7 10:26 UChess283.readme
-r--r--r--  1 chess    chess   199387 May  7 10:27 UChess283Patch.lha
-r--r--r--  1 chess    chess    21589 May  7 10:26 UChess283Patch.readme

[B.5] Does GNU Chess run on a Macintosh?

There is a port of GNU Chess 4.0 to the Macintosh. It's available from the Internet Chess Library (topic [A.3]) under /pub/chess/Macintosh or /pub/chess/uploads/Macintosh, in the following files:
    GnuChessMac40b5.hqx  - executable binary
    GCMsource40b5.hqx    - source
As with the PC ports, the Macintosh port is not supported by the Free Software Foundation. If you have questions or problems, contact Dan Oetting, oetting@gldfs.cr.usgs.gov.

If you have the old Mac port of GNU Chess 3.0, be sure to get 4.0 instead. GNU Chess has come a long way since version 3.0!


[B.6] Does GNU Chess run on VMS?

An old VAX VMS version is available at ada.cenaath.cena.dgac.fr in the [.VMS] directory:
Directory CENA10:[ANONYMOUS.VMS]

GNUCHESS.ZIP;1                     307  21-MAR-1994 18:42:05.13
It's only a character cell version for VT100, VT200, etc. terminals. Thanks to Patrick Moreau for this information.

[B.7] Does GNU Chess run on the Acorn Archimedes?

Steve Dicks (steve@starswan.demon.co.uk) tells us:
You might like to know that I have recently successfully completed a port of GNU Chess 4.0.pl75 to the Acorn Archimedes, and I have written my own graphical front-end to it called ArcBoard (current version 0.05). It is currently available from ftp://ftp.demon.co.uk/pub/archimedes/games/.

[B.8] Does GNU Chess run on Atari computers?

Yves Debilloez (101361.2061@CompuServe.COM or yde@ficsgrp.com) tells us:
There is a version of GNU chess for Atari available. It can be downloaded from my homepage: http://ourworld.compuserve.com/homepages/yves_debilloez/homepage.htm.

[B.9] How do I build GNU Chess? Do I need gcc?

The first step to building GNU Chess is to get the distribution file and unpack it. See topic [A.3] for places you can ftp the distribution from.

To unpack the gnuchess distribution, gnuchess-*.tar.gz, put it into a new, empty directory, cd there, and give this Unix command:

    gzip -cd gnuchess-*.tar.gz | tar -xvf -
If this command fails because you don't have gzip, see topic [A.3], and ask a local Unix expert if you need more help.

The above command will unpack all the files into a new directory. Next, cd into this new directory.

Decide what directory tree you are going to install GNU Chess in. The default is /usr/local. If you have write access to this directory tree, make sure that it contains subdirectories bin, lib, and man. (If you must "su" to get write access to /usr/local, you don't need to do so until just before the "make install" below.) Type the following:

    configure
    make
    make install
If you are going to install GNU Chess under your home directory for personal use, do this instead:
    mkdir $HOME/bin $HOME/lib $HOME/man
    configure --prefix=$HOME
    make
    make install
If you have problems or special requirements, see the files README, INSTALL, Makefile.in, and configure.in for more information.

You don't need to have gcc to build GNU Chess. However, GNU Chess is written in ANSI C. If you have only an old K&R C compiler, be sure you have the current patchlevel of GNU Chess, and get "unproto" by:

Wietse Venema
wietse@wzv.win.tue.nl
Mathematics and Computing Science
Eindhoven University of Technology
The Netherlands

It was released in comp.sources.misc Vol 27 with patches in vol 28 and vol 38. Among other places, it can be found on unix.hensa.ac.uk in pub/uunet/usenet/comp.sources.misc/volume27/unproto.

Compile it and copy the cpp it produces into the gnuchess src directory before you type "make" there.


[C] Bugs and problems with GNU Chess


[C.1] XBoard tells me "Error: first chess program (gnuchessx) exited unexpectedly".

Try running XBoard again with the "-debug" flag on the command line. This will print out all the messages received from GNU Chess.

If you see this problem as soon as GNU Chess starts up, most likely GNU Chess is exiting with an error message. If you see the message "NO LANGFILE", it means that you did not install GNU Chess correctly, and it is unable to find the file gnuchess.lang. Make sure that you defined LIBDIR in the gnuchess Makefile, and that gnuchess.lang is in that directory. If gnuchess.lang is not there, you probably didn't type "make install" in the gnuchess src directory; you must do this to install gnuchess.lang (and the gnuchess book). If you defined LIBDIR to something that is not an absolute pathname (that is, to something that does not start with a "/"), GNU Chess will work only if you run it from the GNU Chess "src" directory where you built it.

If the problem happens while GNU Chess is running, you may have hit a GNU Chess bug. There used to be a bug that could corrupt the stack and cause the program to exit, sometimes with a nonsensical message first, sometimes with no message. It was especially evident on Linux. We believe this bug is fixed in GNU Chess 4.0.pl77.


[C.2] GNU Chess lets its flag fall a move or two before the time control.

GNU Chess is known to be a bit too aggressive in using its clock time and sometimes lets its flag fall. Some bugs that caused this symptom have been fixed, but more work on the problem may be needed.

[C.3] GNU Chess (used with XBoard) freezes after it gets out of its opening book.

a) First, be sure you have the latest versions of GNU Chess and XBoard; see topic [A.4] above. Several different bugs that could cause this symptom existed in old versions but have been fixed in the latest ones.

b) Another possibility is that you have a persistent transposition table (hashfile) that has been corrupted. Look in the LIBDIR directory you defined in the GNU Chess Makefile, and if you find a file named gnuchess.hash there, remove it. Do not use the hashfile if you are running multiple copies of GNU Chess at the same time (for instance, with Two Machines mode in XBoard). In fact, it is probably best not to use the hashfile under any circumstances.


[C.4] GNU Chess (used with XBoard) sometimes tells me that a legal move is illegal.

See topic [C.3]; the same answer applies.

[C.5] GNU Chess crashes when I try to compile and run it on the DEC Alpha.

Get the latest version of GNU Chess. Some bugs that showed up only on the Alpha are fixed in version 4.0 patchlevel 73 and later. If you still have problems, try compiling with the -migrate flag or the -O1 flag. Some older versions of the Alpha C compiler have optimizer bugs that affect GNU Chess.

[C.6] Running (or building) GNU Chess fails with a message about FIONREAD.

The message looks something like this:
    FIONREAD: Operation not supported on socket
    You probably have a non-ANSI ioctl.h; see README. -1 45 4004787f

If you are using gcc to compile, the solution to this error message is usually to go to the GNU Chess Makefile, find the line that starts "CFLAGS=" (with no # character in front of it), and append the flag "-traditional-cpp" to the end of the line. Then do

    rm dspcom*.o gnuan.o
    make
    make install
to rebuild gnuchess.

If you aren't using gcc, we don't really understand why this should happen, but we do have a brute-force workaround: You can simply disable the gnuchess feature that uses FIONREAD. Find all the places in dspcom.c (and gnuan.c) where the line "#ifdef FIONREAD" occurs. Change each of them to "#ifdef NOTDEF". Then recompile gnuchess.

With this code disabled, if you tell gnuchess to think on your time ("hard" mode), you will have to type ^C to make it stop thinking when you want to make your move. The current version of XBoard does this automatically, so disabling the code has no effect on XBoard.


[C.7] GNU Chess runs way too slow and makes my disk seek wildly.

This happens if you don't have enough real memory (RAM) to run GNU Chess. You may need 16MB or more. You can reduce GNU Chess's memory requirements by reconfiguring it, or just buy more memory. Some (rather out of date) suggestions are in the file doc/PORTING from the GNU Chess source tree.

The following is from Nikhil Nair:

It is perfectly possible to run gnuchess on an 8Mb system. I would suggest that you don't edit the source (though the defaults are the definitions of ttblsz or something like that in src/ttable.h and DEFETABS in src/gnuchess.h), but rather use the -C and -T command-line options (which even work for gnuan, though not documented in the manpage). The defaults are `-C 18001 -T 150001' (for MS-DOS, -T 8001). On my Linux system, this uses just over 9Mb. From memory, `-C 6001 -T 40001' uses around 3Mb. Fiddle with these and see what results you get.

Why does GNU Chess use so much memory? The extra memory lets it keep large hash tables that speed up its search and make it play better, and a large on-line book that improves opening play. If you have lots of memory you may want to reconfigure GNU Chess to use *more* than the default amount.


[D] XBoard and WinBoard


[D.1] What is XBoard?

XBoard is a graphical user interface for chess. It displays a chessboard on the screen, accepts moves made with the mouse, and loads and saves games in Portable Game Notation (PGN). XBoard is free software. It serves as a front-end for many different chess services, including:

Chess engines that will run on your machine and play a game against you or help you analyze, such as GNU Chess (topic [B.1] above) and Crafty (topic [F.3] below).

Chess servers on the Internet, where you can connect to play chess with people from all over the world, watch other users play, or just hang out and chat.

Correspondence chess played by electronic mail. The cmail program (topic [D.6] below) automates the tasks of parsing email from your opponent, playing his moves out on your board, and mailing your reply move after you've chosen it.

The Web and your own saved games. You can use XBoard as a helper application to view PGN games in your Web browser, or to load and save your own PGN files.

XBoard runs under Unix or Unix-compatible systems. It requires the X Window System, version X11R4 or later. There are also ports of XBoard to Microsoft Win32 (that is, Windows NT or Windows 95) and to the Amiga. See topics [D.2] and [D.3] respectively.


[D.2] Is there an XBoard for Microsoft Windows? What is WinBoard?

WinBoard is a port of XBoard to true Microsoft Win32 systems, such as Windows NT and Windows 95. It uses the same back end chess code as XBoard, but the front end graphics code is a complete rewrite. WinBoard is free software.

The WinBoard distribution includes a port of GNU Chess itself to Win32. The GNU Chess port is distributed in executable form, with instructions for rebuilding it from the standard GNU Chess sources (available separately). You should have at least 16 to 24 MB of memory to run GNU Chess with WinBoard.

The WinBoard distribution also includes the ICC timestamp and FICS timeseal programs (topic [D.12]).

cmail (topic [D.6]) has not been ported to Win32. All the other XBoard functions are included in WinBoard.


[D.3] Is there an XBoard for the Amiga? What is AmyBoard?

AmyBoard is a port of XBoard to the Amiga, by Jochen Wiedmann. The distribution includes a port of GNU Chess. AmyBoard is free software.

The current version of AmyBoard is 330.5 (based on XBoard 3.3.0). No one is currently maintaining it.

System requirements:

If you would like to use an ICS, you need an Internet connection via either

AmyBoard is available in the Internet Chess Library (topic [A.3]).


[D.4] Is there an XBoard for the Macintosh?

No. But porting XBoard to the Mac should not be much harder than porting it to Win32 or the Amiga was. I can't do it because I don't have a Mac, I don't know how to program Macs, and I don't have time. If you do, feel free to give it a try! Send mail to me, mann@pa.dec.com (Tim Mann), if you're working on this.

[D.5] Does XBoard run on VMS?

No. This port would probably be a lot easier than the Win32 and Amiga ports were, because VMS has the X Window system (under the name DECwindows) and is now Posix compliant. However, in spite of the fact that I work for Digital, I don't know enough about VMS to do the port myself. And I don't have time. If you do, give it a try! Send mail to me, mann@pa.dec.com (Tim Mann), if you're working on this.

[D.6] What is cmail?

cmail is a program that helps you play and keep track of electronic mail correspondence chess games using XBoard. It is distributed with XBoard and has its own manual page. cmail is free software.

[D.7] How do I build XBoard? Do I need gcc?

The first step to building XBoard is to get the distribution file. See topic [A.3] for places you can ftp the software from.

Next, decide what directory tree you are going to install XBoard in. The default is /usr/local, but you probably don't have write access to that directory unless you are a system administrator. If you do, type the following to install it there:

    gzip -cd xboard-*.tar.gz | tar -xvf -
    cd xboard-*/
    configure
    make
    su
    make install
If you want to install xboard in your personal home directory ($HOME/bin), type this:
    gzip -cd xboard-*.tar.gz | tar -xvf -
    cd xboard-*/
    configure --prefix=$HOME
    make
    make install

If the first step above fails because you don't have gzip, see topic [A.3], and ask a local Unix expert if you need more help. If you have any problems with the last two steps, read the READ_ME and INSTALL files in the xboard-*/ directory. You will also find this FAQ there.

You don't need to have gcc to build XBoard, and your C compiler doesn't have to be ANSI-compliant.


[D.8] Can I use XBoard to play a game of chess with another human?

The only way for two humans on different machines to play chess in real time using XBoard is to use an Internet Chess Server as an intermediary. That is, each player runs his own copy of XBoard, both of them log into an ICS, and they play a game there. Two copies of XBoard cannot communicate with each other directly.

Instructions on how to get started with Internet chess are included with the XBoard distribution. The network addresses included in the XBoard distribution may not always be current. The oldest ICS is the Internet Chess Club at chessclub.com, which now has a fee for registered use, but still allows free unregistered use. There are also many newer sites with no fees, using the Free Internet Chess Server implementation (FICS). Some current FICS sites are fics.onenet.net (the most active) and eics.daimi.aau.dk. On all these machines, the port number to use is 5000.

Note: If you don't have network connectivity to any ICS site, you can run your own server using the FICS code. You can get a copy by anonymous ftp from the Internet Chess Library (topic [A.3]). The code is changing rapidly, so send mail to chess@fics.onenet.net and/or log into the FICS server at fics.onenet.net and ask the administrators there for current information.

The cmail program included with XBoard lets you play email postal games with another human; see topic [D.6].

Two humans can play chess on the same machine using one copy of XBoard in Edit Game mode, but the clocks don't run in this mode, so it's of limited usefulness.

See also topic [F.2], Winsock Chess.


[D.9] Will WinBoard run on Windows 3.1?

WinBoard does not run on Windows 3.1 or Windows for Workgroups 3.11, not even with the Win32s compatibility package. The main problem is that Win32s does not have threads or real concurrent processes. A port of WinBoard to Windows 3.1 is possible in theory, but it would be difficult and messy, and no one is going to do it.

WinBoard runs well on both Windows 95 and Windows NT.


[D.10] How do I use XBoard or WinBoard as an external viewer for PGN files with my Web browser?

1) On Unix systems:

- Add the following line to the file .mime.types in your home directory. (Create the file if it doesn't exist already.)

    application/x-chess-pgn    pgn

- Add the following line to the file .mailcap in your home directory. (Create the file if it doesn't exist already.)

    application/x-chess-pgn; xboard -ncp -lgf %s

- Exit from your Web browser and restart it.

2) On MS Windows systems:

The exact procedure depends on which Web browser you are using. The current version of WinBoard automatically configures itself as your PGN viewer for local files and the Internet Explorer. In Netscape, go to Options / General Preferences / Helpers, click the button to make a new MIME type, and fill in the boxes:

    Mime type: application
    Mine subtype: x-chess-pgn
    Extension: pgn
    Application command line: WinBoard -ncp -lgf "%1"
You will probably have to give a full pathname for WinBoard; you will probably be able to use a Browse button in the configuration dialog to look for it.

3) To confirm that your external viewer configuration is working, open one of the following URLs and click on any of the game names shown.

Games at www.traveller.com don't cause XBoard to be started when you are using Netscape, but they do work with NCSA Mosaic. This seems to be due to a missing feature in Netscape, but unfortunately it will probably have to be fixed on the server end, given Netscape's status as the de facto standard.


[D.11] How do I use WinBoard as an external viewer for PGN files with the MS Windows File Manager or Explorer?

On Windows 95 and Windows NT 4.0, WinBoard does this automatically when you install it. For the File Manager on Windows NT 3.51, etc., select Associate from the File menu, enter "pgn" as the extension, and use the Browse button to find your copy of WinBoard and set up the association.

[D.12] How do I use ICC timestamp or FICS timeseal with XBoard?

First, be sure that you can connect using XBoard without timestamp/timeseal. Second, be sure that you can connect using timestamp/timeseal without XBoard. See the help files on ICC and FICS or ask people online if you have problems.

If you are in a completely ordinary situation, where your machine is directly on the Internet and you can connect to ICC or FICS without timestamp/timeseal using just the command "xboard -ics" or "xboard -ics -icshost fics.onenet.net", change that command to one of the following:

    xboard -ics -icshost 206.215.211.44 -icshelper timestamp

    xboard -ics -icshost 164.58.253.10 -icshelper timeseal

If you have a firewall between your machine and the ICS, or if for any reason you already have to use the -icscomm, -telnet, or -gateway option to connect to ICS even when you are not running timestamp/timeseal, you are going to have a harder time. The timestamp and timeseal protocols do not work through firewalls, across serial lines, or across telnet connections. You have to run the timestamp or timeseal program on a machine that can make a direct TCP connection to the ICS. You may or may not be permitted to do this, depending on your firewall's security policy. See the section on FIREWALLS in the XBoard man page or info file. In this configuration you are not protected against lag between your machine and the firewall, or lag caused by heavy load on the firewall itself from other users.

For further information, see the help files on ICC and FICS. Also see topic [E.8].


[D.13] How do I use ICC timestamp or FICS timeseal with WinBoard?

The Start menu entries that WinBoard creates when you install it automatically run timestamp or timeseal for you when you connect to chessclub.com, fics.onenet.net, or eics.daimi.aau.dk.

If you are constructing a WinBoard command line by hand, add the "-icshelper timestamp" or "-icshelper timeseal" option to the WinBoard command line to use timestamp or timeseal. Both timestamp.exe and timeseal.exe are included in the WinBoard distribution. They both function identically to the Unix versions, as documented in "help timestamp" on ICC and "help timeseal" on FICS.

If you normally have to use the "-icscomm" command line option on WinBoard to log into a shell account, and then telnet to ICC or FICS from there, you are going to have to run the Unix version of timestamp or timeseal on the shell machine. (If the shell account is not on a Unix machine, you are out of luck.) Get the appropriate version of timestamp or timeseal onto the shell machine via FTP; see the help files on ICC and FICS for instructions. Then simply run it when you would normally run telnet. In this configuration you are not protected against lag between your PC and the shell machine, or for lag caused by heavy load on the shell machine itself from other users.

If you have a firewall between your machine and the ICS, you may have a harder time. The timestamp and timeseal protocols do not work through firewalls, across serial lines, or across telnet connections. You have to run the timestamp or timeseal program on a machine that can make a direct TCP connection to the ICS. You may or may not be permitted to do this, depending on your firewall's security policy. See the section on FIREWALLS in the WinBoard help file. In this configuration you are not protected against lag between your PC and the firewall, or for lag caused by heavy load on the firewall itself from other users.


[D.14] How do I play bughouse with XBoard or WinBoard?

XBoard (and WinBoard) have simple but effective bughouse support. Offboard piece holdings are shown in the board window's banner, and you drop offboard pieces using the right mouse button. Press it over the destination square to pop up a menu of pieces.

XBoard can display only one board at a time, but you can observe your partner's game by running a second copy of XBoard and logging in as a guest. (Unfortunately, this is not possible if you are using the -icscomm option.) To observe your partner's games automatically, turn on Auto Observe in the second XBoard's Options menu, and put your partner on your ICS gnotify list. Or on ICC, use the "follow" command to follow your partner's games.


[D.15] How can I scroll back in the WinBoard console?

The current WinBoard release has consoles with scrollback! Get it.

[D.16] What is Zippy? How can I interface a chess program to the Internet Chess Servers?

Zippy is an interface that lets GNU Chess or Crafty act as a computer player on an Internet Chess Server. Zippy is included in both the XBoard and WinBoard distributions. It is implemented as a small amount of additional code within XBoard or WinBoard. For documentation, see the file zippy.README, included in both distributions or available from my chess Web page, http://www.research.digital.com/SRC/personal/Tim_Mann/chess.html. The version of zippy.README on my Web page is often more up-to-date than those in the XBoard/WinBoard distributions. You'll also find a "biography" of Zippy and pointers to the original Zippy the Pinhead comic strips there.

[E] Bugs and problems with XBoard and WinBoard


[E.1] I can't build XBoard because the X11/Xaw/... include files are not found.

These are the header files for the Athena Widgets library, which XBoard uses heavily. Some versions of Unix don't supply these files, but they are part of the standard X distribution, freely available from MIT.

For general information on getting missing X sources, see the FAQ on comp.windows.x. Note that you may be missing only the header files, or you may be missing the libraries themselves too.

HP-UX users are missing only the header files. You can get them by anonymous FTP as follows. (But first check with your system administrator to see if someone else at your site has already done this.) Get the archive files /hpux9/X11R5/Core/imake-5.04.tar.gz (imake and xmkmf, optional but useful) and /hpux9/X11R5/Core/Xaw-5.00.tar.gz (Xaw header files) via anonymous FTP from the site hpux.csc.liv.ac.uk (138.253.42.172), or one of the other official sites---Germany: hpux.ask.uni-karlsruhe.de (129.13.200.57), US: hpux.cae.wisc.edu (144.92.4.15), France: hpux.cict.fr (192.70.79.53) or Netherlands: hpux.ced.tudelft.nl (130.161.140.100). Unpack the archives using gzip and follow the instructions in their README and HPUX.Install files. Thanks to Richard Lloyd for this information.

If you have the Xaw header files installed in a different place than the other X11 headers, you may need to configure XBoard with an extra flag to help it find them. For example, if yours are in /foo/bar/X11/Xaw, try this:

    rm config.cache
    (setenv CFLAGS -I/foo/bar ; configure)

Also see topic [E.2].


[E.2] Building XBoard fails due to undefined symbols or missing include files.

The configure script for XBoard looks for X libraries and header files in some common places. Sometimes it fails: If yours are installed in an odd place, it may not find them at all. If you have more than one version of X installed on your system, it may find the "wrong" one, or occasionally it may find libraries from one version and incompatible header files from another. You can work around these problems by telling the configure script where the files are. For example:
    configure --x-includes=/odd/place/include \
              --x-libraries=/odd/place/lib

The directory named in the argument to --x-includes must have a subdirectory "X11" that contains the actual .h files.

Some linkers have bugs that cause bogus error messages when you try to link X programs. The configure script includes a workaround for a bug of this kind that exists in some SunOS 4.x.x installations. See the FAQ on comp.windows.x for more information about problems of this kind.

If all else fails, check whether anyone else at your site has been able to compile any X programs on your system. Your X installation might be buggy. If so, the system administrator at your site might know how to fix or work around the problem.

Also see topic [E.1].


[E.3] I have problems using WinBoard on ICS with a modem. I'm not running SLIP or PPP, but just dialing in to an ordinary login account ("shell account").

Here are solutions to some common problems in this area.

Some people want to connect to ICS through HyperTerminal or some other terminal program first, then run WinBoard. This is not how it works. WinBoard wants to talk directly with your modem, acting as a terminal program itself. Start out with the modem "on hook" (not making a call).

Run WinBoard with a command line like this (adding more options if desired):

    WinBoard /ics /icscom com1
Use com2, com3, or com4 in place of com1 if your modem is connected to one of those ports.

After you start WinBoard, you may need to change some of the options in the Communications dialog (on the Options menu). The dialog has the usual options for talking to modems: bits per second, bits per byte, parity, number of stop bits. You will probably want to use Save Settings Now when you're done.

Next, type dialing commands to your modem in the text window that WinBoard creates. You may need to turn off Local Line Editing on the Options menu while you are typing commands to your modem. Turn it back on when you're done. See the WinBoard Help file for instructions if you see your typing echoed an extra time after you hit Enter.


[E.4] I have problems using WinBoard on ICS with Windows 95 and SLIP or PPP. When trying to start up, it gets the error "Address family not supported by protocol family" (or some equally strange message).

WinBoard is a 32-bit application, but some Winsock (TCP/IP) implementations support only 16-bit applications. You get a strange looking error message if you try to use a 32-bit application because there is no standard Winsock error code number for "32-bit application not supported."

Microsoft TCP/IP works with both 16-bit and 32-bit applications, supports SLIP, PPP, Ethernet, etc., and is included with Windows 95. If possible, I recommend that you uninstall whatever Winsock you are using and install Microsoft TCP/IP instead. For more information, see http://walden.mo.net/~rymabry/95winfaq.html (the Win95-L FAQ).

Trumpet Winsock 2.1 (and earlier) supports only 16-bit applications, and hence does not work with WinBoard. But there is a beta-test release available that does support 32-bit applications. I have not tried it with WinBoard, but it should work. See Trumpet's Web page http://www.trumpet.com.au/wsk/winsock.htm for more information.

A few versions of Winsock may have bugs that prevent Windows timestamp/timeseal from working with them. I'm not sure if such bugs exist in any versions that actually have 32-bit support, so this point might be moot. Again, Microsoft TCP/IP is known to work.


[E.5] When I try to run WinBoard, I get the message "Failed to start chess program gnuchesx on localhost: NO LANGFILE (file gnuchess.lang not found)".

This problem should not occur with WinBoard 3.4.1 and later. It used to happen because some unzip programs (notably pkunzip) do not understand long file names, so they would unzip gnuchess.lang as gnuchess.lan and gnuchess.data as gnuchess.dat. I have changed the GNU Chess port included with WinBoard to use the shorter names. However, if you want to recompile WinBoard, you still need to use an unzip that understands long file names, because some of the WinBoard source files still have long names.

[E.6] I want to use XBoard or WinBoard as an Internet Chess Server interface, but the ICS Client option is grayed out on the menu.

XBoard and WinBoard have three major modes that can't be changed from the menus: local chess engine mode, ICS mode, and standalone mode.

With XBoard, you have to set the mode using command-line options. Local chess engine mode is the default, -ics selects ICS mode, and -ncp ("no chess program") selects standalone mode.

With WinBoard, if you don't set the mode using command-line options, you get a dialog box asking which mode you want. To bypass the dialog box, use -cp ("chess program") for local chess engine mode, or -ics or -ncp as with XBoard. Also see topic [E.7].


[E.7] How do I give command-line options to a Windows program like WinBoard?

There are many ways; pick your favorite:


[E.8] When I try to log in to ICC using timestamp (or to FICS using timeseal) with XBoard, it accepts my handle, but just beeps at me when I type my password.

This problem should not occur with XBoard 3.6.0 or later. Let me know if you encounter it.

[E.9] When I exit from WinBoard after using it to play against GNU Chess or Crafty, the chess program keeps running in the background.

If you are using Crafty, be certain to get the version compiled for Win32 (wcrafty.exe), not the version compiled for MS-DOS (crafty.exe). Also, be sure you have the current version of WinBoard. WinBoard 3.4.1 and earlier had a bug that caused this problem to occur with all chess engines.


[E.10] When running WinBoard, I get the message "Error getting user name: The operation was not performed because user has not logged on to the network."

This problem should not occur with WinBoard 3.6.0 or later.

[E.11] WinBoard crashes Windows 95!

I believe this problem is completely fixed in WinBoard 3.6.1 and later versions. If you still see it in the current version of WinBoard, please report it.

Background: Versions of WinBoard prior to 3.6.1 sometimes crash Windows 95 (but not Windows NT) at the end of a game or when you use the Time Control dialog. The crash occurs when WinBoard kills off a chess engine process and quickly starts a new one.

WinBoard 3.6.0 does not exhibit the problem unless you give it the -xreuse (-reuseChessProgram False) flag. GNU Chess, and Crafty 12.1 or later, do not require -xreuse, but Crafty versions prior to 12.0 and some other chess programs may. Use WinBoard 3.6.1 with them.


[F] Miscellaneous


[F.1] What is XChess?

XChess is an older chessboard program that is no longer supported. XChess was written for X version 10, and you may or may not be able to build and run it on an X11 system.

XChess has only one significant feature that is not present in XBoard: Two humans can play chess using XChess on different machines, without using the Internet Chess Server as an intermediary. This feature is of interest only if you don't have network connectivity to the Internet Chess Server.

Note: There actually have been several different programs called "XChess" in circulation at various times. The above describes one that was associated with GNU Chess.


[F.2] What is Winsock Chess?

Winsock Chess is a program that lets two people play chess across a network. It runs only under Microsoft Windows. Some of the code in Winsock Chess is derived from GNU Chess, but it is not maintained by the GNU Chess team. You can get a copy from the Internet Chess Library; see topic [A.3]. For more information, contact its author, Donald Munro, ccahdm@beluga.upe.ac.za.

[F.3] What is Crafty?

Crafty is a freely-available chess program written by Bob Hyatt. Bob is the main author of the well-known chess program Cray Blitz. Crafty is already a much better chess program than GNU Chess on many dimensions: it plays better, the code is commented and readable, and the author is actively working on improvements. For more information on Crafty, see the Official Crafty Helpsite, http://home.ican.net/~sjl/pages/crafty.html.

[F.4] How do I use Crafty with XBoard?

To use Crafty with XBoard, give the -fcp parameter like this:

    xboard -fcp "crafty xboard"
You can add more Crafty command line flags inside the quotes; see Crafty's documentation to find out what they are. You can add more xboard options at the end of the command line. Also give the -scp parameter with the same value if you want to use matchMode to have two copies of Crafty play each other. Crafty 12.1 or later is required to work properly with XBoard 3.6.1. Older versions of Crafty may work if you give XBoard the -xreuse flag, but this is not recommended.

[F.5] How do I use Crafty with WinBoard?

With WinBoard, you must use the version of Crafty compiled for Win32 (wcrafty.exe), not the version compiled for MS-DOS (crafty.exe). The MS-DOS version may appear to work, but it will generally fail to exit when WinBoard tries to kill it, and may have other problems too. Use the following command line:

    winboard -cp -fcp "wcrafty xboard"
You can add more Crafty command line flags inside the quotes; see Crafty's documentation to find out what they are. You can add more WinBoard options at the end of the command line. Crafty 12.1 or later is required to work properly with WinBoard 3.6.1. Older versions of Crafty may work if you give WinBoard the -xreuse flag, but this is not recommended.
** End of GNU Chess FAQ **