From: mann@pa.dec.com (Tim Mann) Newsgroups: gnu.chess,rec.games.chess.computer,alt.chess.ics,alt.answers,rec.answers,news.answers Subject: gnu.chess FAQ: GNU Chess and XBoard Frequently Asked Questions Followup-To: gnu.chess Reply-To: bug-gnu-chess@gnu.org 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.124 1999/08/16 02:13:13 mann Exp $ Posting-frequency: monthly
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.
If you want to be added to or deleted from the mailing list, mail to info-gnu-chess-request@gnu.org (not to the list or newsgroup itself).
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, XBoard, and WinBoard by anonymous FTP from ftp://ftp.gnu.org/pub/gnu/ and its many mirror sites. Look in the subdirectories gnuchess, xboard, and winboard. The .tar.gz suffix on the files there indicates they were packed with tar and compressed with gzip. The .exe or .zip suffixes indicate files that were packed and compressed with zip.
For other chess software, try the Internet Chess Library. Use anonymous FTP to connect to ftp.freechess.org, or go to the Web page http://www.freechess.org/. 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. The FTP server can automatically decompress files for you as you download them, useful if you don't have gzip.
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 ftp.gnu.org Connected to ftp.gnu.org Name: anonymous Password: your-email-address@your-site ftp> binary 200 Type set to I. ftp> cd /pub/gnu/gnuchess 250 CWD command successful. ftp> dir -rw-r--r-- 1 14910 wheel 1512181 May 20 00:52 gnuchess-4.0.pl80.tar.gz ftp> get gnuchess-4.0.pl80.tar.gz 150 BINARY connection for gnuchess-4.0.pl80.tar.gz (1512181 bytes). 226 Transfer complete. ftp> cd /pub/gnu/xboard ftp> dir -rw-r--r-- 1 14910 wheel 393119 May 20 00:25 xboard-4.0.3.tar.gz ftp> get xboard-4.0.3.tar.gz 150 BINARY connection for xboard-4.0.3.tar.gz (393119 bytes). 226 Transfer complete. ftp> quit
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. If you aren't sure how to add command-line flags to WinBoard, you can hit Ctrl+Alt+F12 to create a WinBoard.debug file after WinBoard starts, but that is not as good, because a few messages that would have been printed at the start are lost.
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 very 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@gnu.org. 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.
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/.
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. Current ICC and FICS ratings for computers using GNU Chess tend to be a good deal lower.
- 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.
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.xx 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.xx for Windows from ftp://ftp.gnu.org/pub/gnu/gnuchess/, filename currently gnuchessPC-4.15.zip. The distribution includes complete sources and an Intel executable. If you need Win32s, you can get it from ftp://ftp.microsoft.com/Softlib/MSLFILES/PW1118.EXE.
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://ftp.freechess.org/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.
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
GnuChessMac40b5.hqx - executable binary GCMsource40b5.hqx - sourceAs 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!
Directory CENA10:[ANONYMOUS.VMS] GNUCHESS.ZIP;1 307 21-MAR-1994 18:42:05.13It's only a character cell version for VT100, VT200, etc. terminals. Thanks to Patrick Moreau for this information.
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.
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 installIf 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 installIf 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.
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 and later.
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.
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 installto 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.
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.
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.
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.
You install WinBoard as follows. Download the WinBoard package to your PC (see topic [A.3]). It will be a file with a name like winboard-4_0_0.exe. Double-click on this file in the Explorer or File Manager to run it. Follow the on-screen prompts.
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]).
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 installIf 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.
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 and largest 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 freechess.org (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@freechess.org and/or log into the FICS server at freechess.org 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.
WinBoard runs well on both Windows 95 and Windows NT.
- 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, Netscape 4.x, and Internet Explorer.
In Netscape 3.x, go to Options / General Preferences / Helpers, click the button to make a new MIME type, and fill in the boxes:
Mime type: application Mime subtype: x-chess-pgn Extension: pgn Application command line: "C:\Program Files\WinBoard\WinBoard" -ncp -lgf "%1"Change the pathname for WinBoard if you installed it in a different directory.
3) To confirm that your external viewer configuration is working, open the following URL and click on any of the game names shown: http://www.research.digital.com/SRC/personal/Tim_Mann/chess.html#PGN
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 freechess.org", change that command to one of the following:
xboard -ics -icshost 207.99.5.190 -icshelper timestamp xboard -ics -icshost 164.58.253.13 -icshelper timeseal
If you have a firewall between your machine and the ICS, see topic [D.19].
If you normally have to use the "/icscomm" command line option on xboard to log into a second machine, 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 second machine. (If the second machine is not running Unix, 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.
For further information on timestamp and timeseal, see the help files on ICC and FICS.
If you select an ICS from either the WinBoard Startup dialog or the Windows Start submenu that WinBoard installs, WinBoard automatically runs timestamp or timeseal if the ICS you chose is known to support it.
If you are constructing a WinBoard command line by hand, add the option "/icshelper timestamp" or "/icshelper timeseal" 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 have a firewall between your machine and the ICS, see topic [D.19].
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.
For further information on timestamp and timeseal, see the help files on ICC and FICS.
XBoard and WinBoard can display only one board at a time, but you can observe your partner's game by running a second copy of the program 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, use the "follow" or "pfollow" ICS command; see the ICS online help for details.
Using a computer to choose your moves on a chess server is considered cheating unless your account is on the computer (C) list. Read "help computer" on your favorite server for details on their policy. Most of the servers have plenty of computers running now, so they will not be excited about having you run a new one unless you have written your own chess engine. They don't really need yet another Crafty or GNU Chess clone.
For documentation, see the file engine-intf.html, 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 engine-intf.html on my Web page is often more up-to-date than those in the XBoard/WinBoard distributions.
WinBoard is currently developed using Microsoft Visual C++ 5.0. By far the easiest way to recompile it, and the only way that the author has personally tried, is to use MSVC++ 5.0. You can build the program from the MSVC++ GUI by opening the project file (winboard.dsp) and telling MSVC++ to build the project. You can also build it from the the command line by using the nmake program supplied with MSVC++.
To build WinBoard with Borland C++ 4.5, see the Web page noted above for a user-submitted patch. Perhaps the patch will also work with other versions of the Borland compiler.
To build WinBoard with the free Cygwin32 tools (see http://www.cygnus.com/), see the Web page noted above for a user-submitted patch and replacement Makefile.
WinBoard is a Win32 application, so you definitely need a compiler and tool set that supports Win32. In particular, DJGPP can't be used to build WinBoard. DJGPP can build only 32-bit MSDOS programs; that is, programs that use a DOS extender to get a 32-bit address space and do not make any Windows calls. It can't build Win32 programs.
WinBoard executables for the DEC Alpha running Windows NT will be provided in the future, along with instructions for compiling your own. For now, contact me if you want to do this.
See also topic [E.16].
There is no single answer to this question, because there are many different kinds of firewalls in use. They work in various different ways and have various different security policies. This answer can only provide hints.
Note that you can't access Internet Chess Servers through a Web proxy, because they are not a Web service. You talk to them through a raw TCP connection, not an HTTP connection. If you can only access the Web through a proxy, there may be a firewall that stops you from making direct TCP connections, but there may also be a way through it. Read on for hints, and contact your local system administrator if you need more information about your local configuration.
If you are using a non-SOCKS firewall, read the FIREWALLS section in your XBoard or WinBoard documentation (man page, info document, or Help file). If you can telnet to a chess server in some way, then you can almost certainly connect to it with xboard/WinBoard, though in some cases you may not be able to run timestamp or timeseal. The timestamp and timeseal protocols require a clean, 8-bit wide TCP connection from your machine to the ICS, which some firewalls do not provide.
If you have a SOCKS firewall and are using XBoard, you should be able to SOCKSify xboard and use it. See http://www.socks.nec.com/ for information about SOCKS and socksification. However, if you do this, you can't use timestamp or timeseal; what you really need is a socksified version of timestamp or timeseal. This is hard because the source code for timestamp and timeseal is proprietary; the folks running the chess servers don't give it out because that would make it too easy to cheat. On some versions of Unix, you may be able to socksify a program that you don't have the source code to by running it with an appropriate dynamic library; see http://www.socks.nec.com/. For others, you might be able to get a pre-built socksified version from the chess server administrators. For timeseal versions, see ftp://ftp.freechess.org/pub/chess/timeseal/. For timestamp versions, the directory would be ftp://ftp.chessclub.com/pub/icc/timestamp/, but at this writing there don't seem to be any socksified timestamps there. Once you have a socksified timestamp or timeseal, simply run it with a normal, non-socksified xboard in place of the standard timestamp or timeseal.
If you have a SOCKS firewall and you are using WinBoard, we now know how to make this configuration work, complete with timestamp or timeseal!
Start by getting SocksCap32. This software is freely available from http://www.socks.nec.com/. Install it on your machine, read the documentation, and learn to use it. You may find it useful with many other programs besides WinBoard.
Next, don't socksify WinBoard. Socksifying WinBoard itself doesn't let you use it with timestamp or timeseal. For some reason I don't understand -- something strange that SocksCap32 does -- the socksified WinBoard runs but does nothing, and timestamp/timeseal runs all by itself in its own window.
Instead, use the following workaround. Follow the instructions exactly; don't try to skip steps or simplify things.
First, make SocksCap32 application profiles for timestamp and timeseal. Use the following command lines in the SocksCap32 profiles. Name the first profile "timestamp" and the second "timeseal".
"c:\program files\winboard\timestamp.exe" chessclub.com 5000 -p 5000 "c:\program files\winboard\timeseal.exe" freechess.org 5000 -p 5000
Second, run timestamp or timeseal by itself, socksified, using its profile. This will open an unneeded, black window that will not respond to typing. Minimize it to the task bar and ignore it. It will go away when you exit from WinBoard.
Next, run WinBoard using the following command line. Make a shortcut or type this command into an MS-DOS Prompt box. Don't run WinBoard itself socksified, just run it directly.
"c:\program files\winboard.exe" /ics /icshost=localhost /icsport=5000
After you get this working, you can try getting the timestamp window to auto-minimize by starting it from a shortcut instead of from the SocksCap32 control window. As it says in the SocksCap32 help file, put the following in the Target field of a shortcut's Properties page:
"c:\program files\sockscap32\sc32.exe" timestampThen select "Run: Minimized" on the same page. Do the same for timeseal.
Another method that can work is to use a .bat file to start both timestamp and WinBoard. It would look something like this:
REM -- REM -- icc.bat REM -- Start timestamp under SocksCap32 and use WinBoard to connect to it. REM -- The string "timestamp" refers to a SocksCap32 profile for timestamp. REM -- Do not change it to the filename of the timestamp program! REM -- start /minimized "c:\program files\sockscap32\sc32.exe" timestamp cd "c:\program files\winboard" winboard /ics /icshost=localhost /icsport=5000
This workaround has a problem if you want to run two copies of WinBoard at once, talking to the same chess server twice (for bughouse) or to two different chess servers. If you need to do that, you will need to run a separate copy of timestamp with a different port number for each connection. You'll need to make a second set of profile entries with a different value after the -p flag (say, 5001) and you'll need to change the WinBoard command line /icsport=5000 for the second WinBoard to match.
I believe chess.net provides a Win32 command-line version of accuclock that will work with WinBoard. Please see the documentation on the chess.net server itself; don't ask the author of WinBoard.
I don't know whether chess.net provides versions of accuclock for Unix at this time. Ask them.
By default, Zippy automatically sends the command "gameend" to ICS at the end of each game. You can alias this command (using the ICS "alias" feature) to anything you want. On ICC, you can use the "multi" feature to alias gameend to several commands, but other servers don't have that feature. Zippy doesn't send anything at the start of the game by default.
You can get Zippy to send one or more commands of your choosing, at the start and/or end of each game, by using the -zippyGameStart and -zippyGameEnd command line options, newly added in version 4.0.3. Both xboard and WinBoard have (somewhat obscure) ways of getting newlines into this option to send several commands. Here is an example of one way to do it for each.
xboard -ics -zp -xrm "*zippyGameStart: say hi\nsay prepare to die\n" WinBoard /ics /zp /zippyGameEnd="say thanks\nseek 5 0\nseek 2 12\n"
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 file /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 archive using gzip and follow the instructions in its README and/or 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].
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. That is, if your X.h file has full pathname /odd/place/X11R6/include/X11/X.h, then you must give the argument --x-includes=/odd/place/X11R6/include.
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].
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 com1Use 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.
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.
The 16-bit versions of America On-Line's software do not support 32-bit Winsock applications. Get the 32-bit version, which is called "AOL for Windows 95."
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.
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].
There are many ways; pick your favorite:
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.
This problem is reported to still happen occasionally, for unknown reasons. You can generally stop the rogue Crafty by pressing Ctrl+Alt+Del, selecting the Crafty process from the menu, and pressing the End Task button.
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. WinBoard 3.6.1 and later fix the problem completely.
If your or your opponent has netlag, your opponent might appear to get extra time, especially if your opponent is using timestamp or timeseal. The ICS charges each player who is using timestamp or timeseal only for the time between when the player received his opponent's move and the time he sent his own move. Thus delays in network transmission do not count against either player. But WinBoard counts down the display of your opponent's clock on your screen under the assumption that there is no netlag. When his move comes in, if there was netlag, the ICS may not have really charged him for that much time, and WinBoard corrects the clock to what the ICS says it should read.
If you are not using timestamp or timeseal, you may appear to lose time off your clock at some point after you make your move. In this case, the ICS charges you for the time between when it sent you your opponent's move and the time it received your move. Thus delays in network transmission count against you. WinBoard stops counting down the display of your clock on your screen (and starts your opponent's) when you make your move. When the ICS echoes your move back to you, it may have charged you for more time than that, and WinBoard corrects the clocks to what the ICS says they should read.
See "help lag" and "help timestamp" or "help timeseal" on your ICS for more detailed information.
Most people don't have this problem, but two or three people using Windows NT 4.0 with Service Pack 3 or 4 have reported it. I have no idea what causes this problem. Contrary to what was reported in a previous version of this FAQ, reinstalling the service pack after installing WinBoard does not seem to solve the problem.
The file parser.c is automatically generated from parser.l. The copy included with XBoard 4.0.2 was generated by lex on Tru64 Unix and has problems compiling and linking on current Linux versions. The copy included with XBoard 4.0.3 was generated by flex on a Linux machine, but it too won't necessarily work on other versions of Unix. If you have this problem, you can fix it by deleting parser.c and letting the Makefile re-create it from parser.l. This will work if you have either lex or flex on your system. Flex is available in all Linux distributions and can be obtained at no charge from the Free Software Foundation, www.fsf.org.
The file parser.c is automatically generated from parser.l. The Makefile included with the WinBoard source kit has a rule for generating parser.c using the program "flex", which will fail if you don't have flex. However, the source kit also includes a ready-made copy of parser.c, so you don't really need flex unless you have made changes to parser.l. Check that you still have a copy of parser.c; if you don't, unpack the WinBoard source zip file again to get one. Either set the last-modified time of parser.c to be later than that of parser.l, or comment out the Makefile rule for building parser.c from parser.l, and then try building WinBoard again.
If you do want to change parser.l and rebuild parser.c, you can get flex as part of the free Cygwin32 kit from www.cygnus.com. You can probably also get flex for Windows by itself from various other places around the Internet. It is free software distributed by the Free Software Foundation, www.fsf.org.
After connecting to a chess server, XBoard 4.0.2 and later sends an escape sequence to its terminal that is meant to display your handle and the ICS host name (for example, "user@chessclub.com") in the terminal's banner and icon. It seems that several of the alternative X terminal programs have a bug that makes them hang when sent this escape sequence.
You can work around the problem by using xterm, nxterm, rxvt, aterm, xiterm, or gnome-terminal, all of which seem to work fine. In fact, current versions of kterm and konsole seem to work fine too, so if you are having problems with one of them, be sure you are not running an outdated version.
Alternatively, you can disable this feature by commenting out the body of DisplayIcsInteractionTitle in xboard.c and recompling xboard.
This can happen if you have a bug in your Windows display driver. Check with the manufacturer of your display card, the manufacturer of your computer, or Microsoft to see if there is an updated driver available. You can usually download updated drivers from the Web.
If you can't find an updated driver, you can try running Windows using a different color depth and/or disabling some of the acceleration features on your display card. You can do this from the Display applet on the Windows control panel.
It's also possible that Windows has the right driver for your hardware already but you are not using it. It may help to reinstall your driver. Go to Windows Start / Settings / ControlPanel / System and delete your display card (maybe even your monitor too), then reboot. Windows should automatically re-detect your card and monitor and re-install the drivers; if it doesn't, run Start / Settings / ControlPanel / AddNewHardware to force it to.
If all else fails, try Monochrome mode. On WinBoard's menus, go to Options / Color and check Monochrome. WinBoard will display in black and white.
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.
You can download Crafty from ftp://ftp.cis.uab.edu/pub/hyatt/. Start by getting the read.me file and reading it. Among other things, this file contains instructions on how to install Crafty as a command-line application on your machine.
There is a Crafty mailing list hosted at http://www.jpunix.com/. To subscribe, send email to crafty-subscribe@jpunix.com.
First, you need to get Crafty and install it as a command-line application on your machine. See topic [F.3].
To use Crafty with XBoard, give the -fcp parameter like this:
xboard -fcp "crafty" -fd crafty_directoryHere crafty_directory is the directory where you installed Crafty. You can add more xboard options at the end of the command line.
Crafty 15.14 or later is required to work properly with XBoard 4.0.0 or later. We generally recommend using the latest versions of both XBoard and Crafty.
First, you need to get Crafty and install it as a command-line application on your machine. See topic [F.3]. You must use the version of Crafty compiled for Win32 (wcrafty*.exe), not the version compiled for MS-DOS (crafty*.exe), and it is best to use the latest version of Crafty with the latest version of WinBoard to make sure all features are compatible and function correctly. You can install Crafty in any directory you like.
You also need to get WinBoard and install it in the normal way using its built-in installer. You can do that either before or after you install Crafty.
After both Crafty and WinBoard are installed separately, follow the directions in the WinBoard Help file (included with WinBoard) for connecting new chess engines to WinBoard.
If you want to have Crafty act as an automated computer player on a chess server, see topic [D.16]. Before you try to get that working, be sure you can play against Crafty locally, first without WinBoard, then with it. Also be sure you can use WinBoard to play on the chess server yourself, without having Crafty connected to it. You have to crawl before you can walk!