ArenaSwiss

I've always found it interesting watching two chess programs play each other, and the Arena Chess GUI provides a good way of doing this. However it only allows for round robin (all play all) and gauntlet (one plays many) type competitions. In chess it is very common to have Swiss style tournaments where each round has players paired against others with the same number of points. Arena doesn't provide for this, but I found a program called ArenaSwiss by Eberhard Jiritschka from 2009 that interfaced with Arena. I took his program and updated it to create this new version.
It runs in a text based DOS style window, and at first I was thinking of changing it to a more modern graphics based screen. After using it for a while I have found the current screen works reasonably well so I might not bother.

Current version: 0.4a       Released: 12 November 2019

The download contains the program, source code and GPL license. You should look at the README.TXT file as it provides all the information you need to amend the ArenaSwiss.ini file for your PC.

Note: If you are using an older version of ArenaSwiss complete any running tournaments before loading this new program.

ArenaCup

Having provided for Swiss tournaments I thought I'd create a program to run knockout Cup tournaments too. The program allows for random and seeded pairings, multiple games per pairing and so on. It also runs in a text based DOS style window, which will change if I ever get around to changing ArenaSwiss!

Current version: 0.2       Released: 22 May 2019

The download contains the program, source code and GPL license. You should look at the README.TXT file as it provides all the information you need to amend the ArenaCup.ini file for your PC.

Chessmaster in Arena

One of the programs I wanted to use in Arena was TheKing from Chessmaster, but you can't just copy the file TheKing.exe into Arena due to its copy protection. I found out online how extract the security code ("OPK") using log files created by the Crafty chess engine, but doing this manually each time I wanted to use TheKing was too much work. So I wrote this program to automate it.
In January 2016 I finally managed to test it with the Grandmaster Edition (Chessmaster 11) and made a few small changes to my program and the instructions.

Current version: 1.5       Released: 24 April 2021

The download contains the program, source code and GPL license. You should look at the README.TXT file as it provides all the information you need to amend the CM_opk.ini file for your PC. Of course, you also need a (licensed!) copy of Chessmaster.

Opening book conversion (OBK, ABK, BIN)

The opening book editor in Chessmaster is very good but it only saves files in its own OBK format. These programs allow you to convert opening book files between Chessmaster OBK, Arena ABK and Polyglot BIN formats for use in other programs. During the conversion you can also output PGN and TXT versions of the files.

Note that converting from Polyglot files, which contain records for each position, to any of the other formats, which contain lists of moves, will always be difficult and is unlikely to be successful on large files.

Current version: 1.0       Released: 22 September 2017

The download contains the various programs, source code and GPL license. You should look at the README.TXT file for details about how to use the programs.

Novag drivers

The existing, and very old, drivers for the Novag Universal Electronic Chess Board (UCB) weren't working very well for me so I wrote some new ones. I first updated the documentation of the UCB communications and used this to write UCI and Winboard chess "engines" to control the UCB. I have tested them with Arena and Chessmaster for normal chess, including starting from a specific position (FEN) and from a series of moves (PGN).

But using an engine to control the board has many limitations, such as not allowing take back moves, so I then wrote a DLL version that avoids these problems by talking directly to the GUI. When Lucas released the Linux version of his program I updated my drivers too, so now they work in Windows with Arena, LucasChess and Shredder and in Linux with LucasChess. For other GUIs on Windows you will have to use the UCI version of the program to use your UCB. Arena on Linux doesn't use external drivers and Shredder on Linux currently has no eBoard support.

The current versions of LucasChess (from R1.27) already include this driver so there is no need to download it for that program. The download here includes the Windows and Linux versions as well as the source code (LGPL license).

The README.PDF file included in the downloads gives instructions.

UCB - UCI and Winboard engines

Current version: 2.1       Released: 5 April 2017

UCB - DLL driver

Current version: 3.0       Released: 9 July 2021

In March 2021 I was able to create a new version that handles the Novag Citrine. I must thank Nacho Ros from Spain for his help in this as I don't have a Citrine board and without his work in testing my program it would never have been completed. The one thing we had trouble with was getting the Citrine to accept special starting positions from my driver, so at the moment if you want to start a game from a non-standard position you need to use the manual Citrine method of setting up the pieces. Hopefully in the future I can improve this.

When Lucas released the Linux version of his program I updated my drivers too, so now they work in Windows with Arena, LucasChess and Shreder and in Linux with LucasChess. Although Arena has built in support for the Citrine I'm told it doesn't display the board's LEDs properly when you play online while my driver works correctly. Arena on Linux doesn't use external drivers and Shredder on Linux currently has no eBoard support.

The current versions of LucasChess (from R1.27) already include this driver so there is no need to download it for that program. The download here includes the Windows and Linux versions as well as the source code (LGPL license).

The README.PDF file included in the download gives instructions.

Citrine - DLL driver

Current version: 2.1       Released: 17 July 2021

DLL driver

I saw that Lars Nowak had written UCI drivers for the Certabo board and realised that I could modify my UCB DLL program to control that board too. He kindly sent me the technical information and agreed to help me test it as I didn't have a board. However he was unable to access his board for a while so I contacted Pietro at Certabo. I still can't believe how much time Pietro spent helping me considering how many other projects he is working on. I was so impressed I ended up buying one of his boards (the Fazio model). Of course, then I had to buy some chess pieces too!

When Lucas released the Linux version of his program I updated my drivers too, so now they work in Windows with Arena, LucasChess and Shredder and in Linux with LucasChess. Arena on Linux doesn't use external drivers and Shredder on Linux currently has no eBoard support.

The current versions of LucasChess (from R1.27) already include this driver so there is no need to download it for that program. The download here includes the Windows and Linux versions as well as the source code (LGPL license).

Please see the enclosed README.PDF file for instructions.

Current version: 2.1       Released: 19 July 2021

Chess Link DLL driver

Lars Nowak also had UCI drivers for the Millennium Chess Link so I made another version of my UCB DLL program. Again, he sent me the technical information and helped me test it. I don't have a Millennium board so I haven't been able to try it myself but a lot of the code is the same as the Certabo so it should work OK. I have written it so that the LEDs behave in a similar way to the UCB and like that driver it allows for normal chess with takeback moves and so on.

When Lucas released the Linux version of his program I updated my drivers too, so now they work in Windows with Arena, LucasChess and Shredder and in Linux with LucasChess. Arena on Linux doesn't use external drivers and Shredder on Linux currently has no eBoard support.

The current versions of LucasChess (from R1.27) already include this driver so there is no need to download it for that program. The download here includes the Windows and Linux versions as well as the source code (LGPL license).

Please see the enclosed README.PDF file for instructions.

Current version: 2.1       Released: 17 July 2021

DLL driver

(I'm not allowed to use their logo! In case there is any doubt, this software was not written by DGT. It has not been tested by DGT. It is not supported by DGT. It is not endorsed by DGT. Other than using their boards and clocks, it has nothing to do with DGT!)

Lucas released a Linux version of his LucasChess program so I converted my other drivers to Linux for that. But the DGT driver software, Rabbit Plugin, is only available for Windows which meant DGT boards couldn't be used in his program. I decided to write a Linux driver for those boards too. This is my first attempt and it seems to work well with the DGT Smart Board and the DGT 3000 clock but I haven't been able to test it with their other boards. I have been told that it connects to the Bluetooth boards using a normal COM port but I'm not sure if it will work well with the DGT XL clock. And I haven't been able to test it with the Revelation boards either, although I think it should work.

Of course the driver works in both Windows and Linux so it can also be used as an alternative to Rabbit with Arena and Shredder in addition to LucasChess.

The current versions of LucasChess (from R1.27) already include this driver so there is no need to download it for that program. The download here includes the Windows and Linux versions as well as the source code (LGPL license).

Please see the enclosed README.PDF file for instructions.

Current version: 1.0       Released: 17 July 2021

List COM Ports

The engines and drivers above communicate with the electronic boards using a COM port on your computer. They generally work well, but the one area that can sometimes be a problem is knowing which COM port the board is connected to. This utility program simply lists the COM ports that my program finds on your PC, as well as giving a button to copy that list into the clipboard so you can paste it into an email for example. There is also a button to start Windows Device Manager so you can compare the ports my program thinks exist to those Windows has.

If your board is working with no problems you do not need this program, but if you are having trouble connecting your board it might help identify what the problem might be.

Current version: 1.0       Released: 22 November 2020

Programming a GUI to use the DLL files

Having written the drivers for the UCB, Certabo and Millennium boards I thought it would be a good idea to write a document explaining how a GUI author could use them. The DGT documentation is thorough and detailed but would require quite a lot of studying in order to implement it. My document explains a basic method of implementing DGT eBoard support in a GUI, which when combined with my drivers will also allow the use of Certabo, Millennium and Novag boards.

The latest version includes details about implementating the drivers in Linux too.

Current version: 2.0       Released: 17 July 2021

One of the problems with the DGT file is that it is only available for Windows. For other operating systems, or for programmers that don't want to support DGT using their DLL file, I have also documented how the Certabo boards are controlled.

Current version: 1.1       Released: 2 July 2021