Here is a collection of interesting extensions and drivers for XBoard and WinBoard. I did not write any of them, and I have not even tried most of them, so please don't send me questions about them; contact their authors instead.
On this page: Sensory chessboard drivers | Engine adaptors | Patches and modified versions | Miscellaneous
These programs let you use a sensory chessboard with WinBoard or with WinBoard-compatible chess engines.
Luc Porchon has written a driver that makes a Novag Universal Chess Board look to xboard or WinBoard like a chess engine. This is perhaps not the ideal way for the UCB to interface to xboard/WinBoard, because xboard/WinBoard thinks you are a chess engine, not a person, but you might find it useful anyway. Source code is included. I don't have a UCB, so I have not tried this driver. The latest version of the driver (version 2.2, released 6 Nov 2002) is written in Java and should work on all systems that have a Java virtual machine and the package javax.comm, including both Unix and Windows. The previous Windows-only version (version 1.5, released 14 August 2000) is still available too.
Nicolas Cominetti has written a similar driver that makes a Saitek Kasparov PC Autoboard look to WinBoard like a chess engine. Please see the documentation included in the file or ask Nicolas if you have questions. I don't have this chessboard and thus have not tried the driver. Updated version added 29 Mar 2003.
There are also ways to use a DGT Electronic Chessboard with WinBoard. The general driver by Rolf Gustafsson is reported to work. This driver is more general than the those described above; it lets you move pieces on the WinBoard display (as if you were moving them with the mouse) by moving the corresponding real pieces on the DGT board. I think Rolf's driver comes with the DGT board; if not, you might be able to download it from DGT's Web site. I have not tried this driver, since I don't have a DGT board.
In addition, Odd Gunnar Malin has written Dgt2Wb, which he describes as an "adaptor to hook up the DGT board/clock to WinBoard, Chessmaster, etc." That's all I know about it.
Paolo Violini has written a standalone program called Maecenas that lets you play against Crafty using a Saitek Kasparov Renaissance or Leonardo sensory chessboard. The Galileo model may also work. The program does not use xboard or WinBoard -- it talks to Crafty directly. Unfortunately it currently requires the Crafty-specific "output long" command, so it won't work with other xboard/WinBoard-compatible engines. The version you can download is for Windows, but Paolo also has a version that runs on Linux. If you need the Linux version and it hasn't yet been added to the download when you look, email him to ask for it. I haven't tried this program, since I don't have a Saitek board, so please don't send questions about it to me.
Jens Lukas has written a WinBoard driver for the Tasc Smartboard. I don't know anything about this one. I just happened to see a link to it on Frank Quisinsky's download page.
These programs let you connect engines that use other protocols to WinBoard, control an engine running on one machine from an XBoard or WinBoard running on another, or modify the communication between WinBoard and an engine.
Dan Newman has donated a simplified rsh server for Windows. The rsh protocol lets a program running on one machine start up a program on another machine. Using rsh, xboard or WinBoard can run on one machine and control a chess engine that is running on another machine. This is particularly useful if you want to run a match between two engines, and you'd like them to run on separate machines so that they do not have to compete with each other for memory and processor time. Unix normally comes with an rsh server, so xboard and WinBoard have always been able to control remote engines running on Unix machines, but working rsh servers for Windows are hard to find. Dan's server should fill this gap. It is not a complete implementation of rsh, but Dan says that it implements enough to work with xboard/WinBoard. You can read the documentation and download the rsh server here. Source code is included.
Rémi Coulom has written some tools that let WinBoard and WinBoard engines interact with chess engines that support the auto232 protocol. Many commercial chess engines support this protocol. The wbengine tool allows a WinBoard-compatible engine to play against an auto232-compatible engine. The a232engine adapter allows an auto232-compatible engine to work with WinBoard. In particular, it allows you to connect an auto232 engine to an internet chess server via WinBoard. With these tools, the two programs that are communicating via the auto232 protocol can both be running on the same computer; you don't need two separate computers connected by an RS-232 cable as with most auto232 software. You can get the tools from Rémi Coulom's home page, in the file Auto232Tools.zip. I've only looked at them briefly and can't answer questions about them; ask Rémi.
Eberhard Börger has written another auto232 adapter for WinBoard, named WinBoard232. This driver lets an auto232-compatible chess engine work with WinBoard. However, the chess engine and WinBoard must be running on separate computers connected by an RS-232 (serial) cable. Thus it seems to me that most people would find Rémi Coulom's driver (previous paragraph) more convenient, assuming that they both work equally well; however, I have not tried either one. You can read the documentation and download the WinBoard232 driver from its page on Frank Quisinsky's web site.
Peter McGavin has written an auto232 adapter for xboard, called xboard232. He writes: "I wrote an adaptor which adds Auto232 capability to xboard. It does a similar job to WinBoard232 by Eberhard Börger, but it's for Unix and nowhere near as flashy. It requires a null-modem serial cable between 2 machines, one of which runs xboard. I wrote it so I could pit the latest Crafty on Linux against Fritz7 on WinXP over a null-modem cable. I haven't tested it with any other setup and I doubt it would work properly in all situations. I'm happy to give it away to anyone." You can download the source code here. I have not tried it myself.
Roland Pfister has written a UCI to WinBoard adapter. UCI is a chess engine communication protocol that was developed by Stefan Mayer-Kahlen and first used in Shredder 5.0. Roland's adapter enables WinBoard to operate the Shredder 5.0 engine, as well as any other UCI engine that works in the Shredder 5.0 user interface. In the UCI system, the opening book is provided by the user interface, not by the individual engines as with WinBoard, so UCI engines will operate under WinBoard without opening books. You can download the adapter from Frank Quisinsky's Chess Page. I have not tried this adapter, and I cannot answer questions about it or translate the German documentation into English for you.
Odd Gunnar Malin has written a utility called InBetween. This is a program that can sit in between WinBoard and a chess engine, modifying the command stream that passes back and forth. It should be useful if you have an engine that doesn't implement the engine protocol quite right, and probably for other creative purposes as well. I have not tried InBetween myself, but I know quite a few people have used it.
Copyright information: XBoard is an official GNU project. The copyright for XBoard and WinBoard is owned by the Free Software Foundation (FSF), and they are released under the GNU General Public License (GPL). The FSF has requested that all contributors of more than about 15 lines of code to their projects sign a form to assign the copyright for their contributions to the FSF, in order to make it easier to enforce the GPL. There are more details about the process on the FSF web site. Not all the authors below have necessarily signed this form. Because they sent their changes to me as contributions, I presume that I have their permission to redistribute them on this Web page, but to include them in the official distribution we do need to get the copyright assignment forms signed. I've been attempting to contact all of the authors whose changes we want to use in the official distribution and get this done.
Dboard (formerly called Deluxe) is an extension to XBoard by Christoph Bauer that adds graphical support for more ICS features. It requires the Qt widget set. Send questions about Dboard to Christoph, not me.
WinBoard for JFW is a modified version of WinBoard 4.0.2 that works well with the JAWS screen-reading software for the visually impaired from Henter-Joyce (now apparently part of Freedom Scientific). The modifications were made by Ed Rodriguez in 1999. You can get WinBoard for JFW from Henter-Joyce's FTP site. I've also made a copy in case their site goes down; here are the installable package and the source code. Bug: ICS support is broken. ICS mode can't be selected from the startup dialog, and if you get past that, hitting the space bar in an attempt to select a piece switches you to the ICS Interaction dialog instead. Playing against a local chess engine works fine.
Matt Zimmerman developed an XBoard source code patch to give a visual low time warning. It optionally changes the background color of the time display when the time remaining passes below a user-defined number of seconds. I have not tried it, but the Debian packaged version of XBoard includes it.
Laszlo Vecsey sent me source code patches to implement several WinBoard improvements. The patches are against WinBoard 4.2.6. I have not tried them. From Laszlo's description:
Scott Gasch sent me a quickie source code patch that lets Zippy remember a challenge that is received while the chess engine is not quite ready for another game and accept it when the engine is ready. The patch should apply to either the XBoard or WinBoard source code. It is against XBoard 4.2.3. Bug: If Zippy gets more than one challenge, Scott's patch forgets about all but the last one. If that challenger then withdraws his challenge, the others are left in limbo, neither accepted nor declined. I have read the code in this patch (that's how I know about the bug), but I have not tried it, nor have I developed a fix for the bug.
David Flynn sent me an XBoard source code patch to easily take a screenshot of the board.
Wilkin Ng implemented several substantial additions to WinBoard, including a history window, blunder check, and coach mode. They look interesting and useful, but unfortunately I didn't find time to try any of them. XBoard already has a history window, but hopefully the backend portion of the other changes would port over if someone took the time to code the frontend (GUI) portion. If you're interested it this, it's probably best to contact Wilkin to see if he has done more on it since the last time he wrote me, but as a preview, here is the mail and code he sent me. You can find the last email address I have for him in the messages.
Michael Jesdinsky translated WinBoard 4.2.3 into German, added a permanent analyze window, and added a new piece set. Unfortunately, WinBoard is not properly internationalized, so there is no way to merge translations like this back into the main codebase. Frank Quisinsky sent me the modified source code, and a zipped executable including a required DLL file from Borland. If you want to use the translated WinBoard with GNU Chess, unzip the executable into the WinBoard directory of an English WinBoard installation, where it will replace the English WinBoard.exe. I've tried running this briefly and it seems to work. Not all messages are translated, and the Help file is not translated.
Alexander V. Serdukov translated xboard and WinBoard 4.2.6 into Russian. You can read about them (in Russian!) and download them from his pages: Russian xboard, Russian WinBoard. For those who don't read Russian but want to know more about Alexander's project, here is the mail he sent me and a copy of the code.
Robert Jurjevic made several small changes to WinBoard 4.2.3. They are available from his Web site. I took a snapshot of the description and modified source code on 14 April 2003. I have not tried this code.
Paulo from conectiva.com.br sent me the patches to XBoard 4.2.6 that are used in the Conectiva Linux XBoard package. The nicest feature is that tooltips are added for the onscreen buttons.
Daniel Mehrmann has been working on lots of additions to WinBoard. Daniel has joined the XBoard Savannah project now, so you can get his latest work from our CVS repository.
Bill Oatman sent me an enhancement to zippy.c. In his words, "A problem I was having was that people were adjourning games by disconnecting. ICS will let you know when someone logs on if you have an adjourned game with them. The enhancement sees that notification and issues a match command, which will attempt to pickup the adjourned game. I also added code to send the decline to ICS when the opponent tries to adjourn a game instead of waiting until the engine moves next."
Items (belatedly) added to this page 29 March 2005:
Stellios Keskinidis wrote a patch for XBoard 4.2.7 that can highlight squares where a piece can legally move and/or pieces that are attacked. You can get it from his web site. I've also grabbed a snapshot here.
Carl Simard worked on translating XBoard/WinBoard into French. I'm still awaiting an FSF copyright assignment from him, but the files he sent are here.
Alessandro Scotti has done some work on WinBoard, including enabling it to use different chess piece fonts and backgrounds. It's available from his web site. I've grabbed a snapshot here. The screenshots look very nice!
Francisco Gracia translated WinBoard into Spanish and added several features. Unfortunately, XBoard cannot be built from these sources. Also, the problem of properly internationalizing the program so that multiple language versions can be built from the same sources is still not solved. Here is the mail he sent me, along with both sources and executables.
Davide Pippa has written a 3-D chessboard program called KingShine. Currently it connects into XBoard as a chess engine (?!), so it isn't really a replacement for XBoard's 2-D board. Maybe it could be in the future, though. The screenshots look gorgeous. Integrating it properly might be a good project for an ambitious programmer. Any volunteers?
If you want to write a chess engine in Delphi that works with WinBoard, Tony Werten has donated some sample code that should help you get started. I don't use Delphi, so please ask Tony about this code, not me.
Jori Ostrovskij has written a Tourney Manager for WinBoard. This is an external program that automatically runs a round-robin tournament between multiple chess engines in WinBoard. It fires up WinBoard with various command-line parameters to play each game. I haven't tried it myself.
Martin Maèok sent me a shell script for running computer tournaments between two or more XBoard-compatible engines on Unix.
Bruce Moreland has written a test suite harness for WinBoard-compatible engines called EPD2WB. It will let you give a test suite to the engine and see how long it takes to solve, how many problems it gets right, etc. It drives the engines directly rather than going through WinBoard. I haven't tried it.
Peter van Sebille has ported WinBoard and Crafty to the SonyEricsson P800 smartphone. Go to Peter's Web page and click on EChessP800 to screenshots and download the software. It looks like very nice work.
Magenetar Games has a network adapter that allows WinBoard or other WinBoard-compatible GUIs to play or observe chess games on something called the Chronos peer-to-peer network. I have very little idea what that is, but you can go to Magnetar's web site to find out more.