Your trusted source for computer chess information!

This is an old revision of the document!


Winboard and Chess Engines FAQ

Section F - Miscellaneous Software and Utilities

Section F

[F] Misc, Software, resources for running a computer Chess tournaments

  • [F.1] How can I run a match automatically between 2 programs in Winboard?]]
  • [F.2] How can I run a Nunn match [match from a fixed position] automatically in Winboard?
  • [F.3] How can I run a tournament automatically in Winboard?
  • [F.4] How do I calculate Elos or generate cross tables? How do I tell if the results are significant?
  • [F.5] How do I present/display Chess games on the web?
  • [F.6] How do I set up Winboard engines to handle tournaments with 2 time controls in Winboard? E.g. 40 moves in 120 minutes followed by 30 minutes for the rest of the moves?
  • [F.7] How do I display the number of nodes per seconds calculated by the Chess engine?How about displaying other information ?
  • [F.8] Winboard 4.2.X automatically saves all my Crafty games with the name crafty-18.6, how do I change that?
  • [F.9] How do I run test suites automatically in Winboard?
  • [F.10] When “show thinking” is turned on during the game, the lines get cut off. How can I display the whole line?
  • [F.11] What is PGN,FEN,EPD, CBH,CBF etc and how do I handle them in Winboard?

[F] Miscellaneous Software, resources for running a Computer Chess Tournament

[F.1] How can I run a match automatically between 2 programs in Winboard?

Add the command line /mg x where x = number of games

For example if you run Winboard.exe /mg 10, it will run a 10 game match with alternating colors between the two engines you choose in the startup dialog box. Note: You won't get a chance to alter the time controls, settings, etc., since the match will automatically start. As such, you should run Winboard first normally without the /mg switch first, alter the settings you want and then save before starting the match proper.

[F.2] How can I run a Nunn match [match from a fixed position] automatically in Winboard?

Jori Ostrovskij's WB Tourney Manager , can do this. Also you have to do is to set Options to /lpf=c:\position.fen where position.fen is the position you want. This only works if the engine supports position setup in Winboard.

Arena 0.80 upwards allows this too.

[F.3] How can I run a tournament automatically in Winboard?

Using a batch file is probably the best way since Winboard does not directly support automated Round Robin tournaments/Swisses/Gauntlets or whatnot Peter Berger has contributed a excellent article FIXME(bad link) explaining how.

The free Arena 0.92 (compatible with Winboard and UCI engines) now supports automated round robin and gauntlet tournaments. You might also like to try these free external utilities that help you organise and run tournaments with Winboard.

  • Jori Ostrovskij's WB Tourney Manager - a external utility created by Jori Ostrovskij that helps you run round robin tournaments Swiss and “Gauntlet” type tournaments using Winboard engines.
  • Galis Winboard Tournament manager - Similar to Jori's utility this is easier to use with it's own simple GUI, but is less flexible in terms of options. The current version 0.32, does not support running Swiss tournaments yet.
  • Alex WBTM - The newest tournament manager for Winboard so far. It provides an attractive GUI for managing tourneys and integrates various tools like Polyglot FIXME(bad link), PGNextract, and Bookthinker FIXME(bad link) into a seamless whole.
  • Another way is to use Autoit. You can find a script here.
  • Tourney - Don't know much about this one, but seems to be less well tested than Galis or Jori's utility.

Another possibility is to actually import the Engines into a shareware product like Wildcat (down) commercial product like ChessVision (down?) or Chessbase which supports automated running of tournaments (Round robin and gauntlet) .

A useful utility to check draw claims from Winboard engines in PGN files is Lgpgnver created by George Lyapko.

[F.4] How do I calculate Elos or generate cross tables? How do I tell if the results are significant?

To generate ELOs, you can either use a commercial [for example Chessbase] product or use ELOSTAT a very popular tool by Frank Schubert.Arena 0.92 onwards also has built in support for a special version of ELOstat, version 1.2. Scid (free database) can also present crosstables.

The first thing to notice is that when you generate ELOs, the elo results cannot be converted to USCF,FIDE,net ratings etc.This is because ratings are only comparable for participants in the same rating pool and you cannot use the results to infer how this rating would compare with others.

This is clearly illustrated when you are ask to add the “base elo”. This is the average elo of the players in your rating pool. Obviously, regardless of what value you input for this is meaningless when comparing players within the same rating pool.However it does explain why “converting” ratings and comparing with other rating pools is not possible, since which base rating you use will affect the conversion (if it was possible). However for the rating to look “realistic” you might choose a figure like 2400 or more for a rating pool made up of top Chess engines.

The better rating lists like SSDF will not only show a rating number but also the margin of error. It is this margin of error that tells you how significant the results are. If the results of say Crafty is given as a rating of 2600 but with a margin of error of +50 or -25, and Fritz is given a rating of 2650 with a margin of error of +30 or -25 (assuming with a 95% confidence). We cannot conclude Fritz is stronger than crafty with 95% confidence because the lower bound of Fritz (2650-25) , is equal or lower than the upper bound of Crafty (2600 +50) The more games you play the smaller the margins of error.

If you are playing a straight match between 2 engines and not a tournament, you might want to try Steve Maughan's Who is stronger.(down?) However this simple utility, assumes a binominal distribution, which means that it ignores the probability of draws.

Yet another one to try is Remi Coulon's "Who is better?".

Leen Ammeraal's Stronger.exe uses a trinominal distribution to calculate results (I'm not sure how it handles draws, but I'm sure it does).

[F.5] How do I present/display Chess games/diagrams on the web?

Thomas McBurney's chessviewer allows you to broadcast games on the net (for Winboard) as it is occurring! You can download both the client portion (for viewing) and the server portion at http://home.pacific.net.au/~tommyinoz/. Andrew Fan has also created 2 other programs based on the same Live Chess Server protocol as Tom's (and others), REGO and WBRGO As of Oct 2003, most announcements of games being broadcast at the Winboard forum FIXME(bad link).

If you are looking instead to present the game on the web after the whole game is finished you can either use Palview or Mychess.com for VCR type control display of games

I also highly recommend EPD2diag which is a free utility that you can use to convert positions in EPD string to diagrams in GIF,BMP formats and/or export all EPD positions to PGN and GIF

For more on Chess Publishing on the Web or on paper go to En Passant Nørresundby Chess Club.

[F.6] How do I set up Winboard engines to handle tournaments with 2 time controls in Winboard? E.g. 40 moves in 120 minutes followed by 30 minutes for the rest of the moves?

Unfortunately, there is currently no way to handle this automatically. The level command in Winboard only accepts 40 5 followed by 40 5 or single Fischer time controls.However,there is no way to tag on secondary time controls. Winboard also supports time per move and depth per move by ST and Sd respectively. Unlike UCI though it does not support restricting chess engines by nodes per move (by Sn), although some engines like Crafty happen to support this feature .

Some GUI may try to “trick” chess engines to accept secondary time controls by saving the position,resetting the chess engine and forcing it to move with a new time control or by setting the clock using the time command. This sometimes works, but often it messes up the time allocation of the chess engines.

The correct way to do it is to modify the level command (the so called extended level command). It has being discussed and all but accepted for Winboard protocol 3, currently it is being in the progress of being included in future versions of Winboard.Basically, it works the same way as the primary time control. So to signal a 40 moves in 5 minutes followed by 25 minutes sudden death, you send level 40 5 0 0 25 0 .For more details .However there are some GUI that already support this. Arena FIXME(bad link) is one example. Another is the new Chessmaster 9000 FIXME(bad link).

Chess Assistant (including the demo version) allows you to set up secondary time controls. as well. However in general whether the extended level command works with any given chess engine is a matter of trial and error and may mess up the time allocation.

[F.7] How do display the number of nodes per second calculated by the Chess engine? How about displaying other information?

This is not possible in Winboard, except when in analysis mode [for engines that support it].

For the second question, starting Winboard with /debug will record all commands sent by Winboard to the engine in a debug file.For real time monitoring, you can use the utility Tail for Windows which gives you real time analysis of the debug file. See Screen shot.

[F.8] Winboard 4.2.X automatically saves all my Crafty games with the name Crafty-18.6, how do I change that?

Prior to the implementation of the second Winboard protocol in Winboard 4.2.1 and above, all games played locally [I.e. on the same computer] were saved with the same name as the executable file. However, from Winboard 4.2.1 onwards, all Winboard engines that use the second Winboard protocol will/can make use of a new “feature” that sends the command “myname” which will cause the engine to be identified as a fixed name [e.g. Crafty18.6]. This means that this name will be used regardless of the file name you use! Such a change has several advantages, firstly authors receiving games from several sources, will now have a consistent naming system. This is because regardless of the source all games would reflect the same name in the PGN headers. Secondly, it allows a cleaner naming system, since the whole system didn't allow the use of names such as Crafty14.6, instead the uglier underscore had to be used.

Unfortunately, this also means that users, who want to run auto-play tests between slightly different versions of the same engine [perhaps differing by a couple of experimental parameters] will risk getting confused since both engines will be shown with the same name. Currently, there is no work around, except to switch off the second protocol using the command, ”/firstProtocolVersion=1” but that would totally defeat the purpose of using the second protocol. A more complicated method, suggested by Dieter Buerssner [author of Yace], would be to edit the executable file using a hex editor [text editors like Wordpad do not work!] replacing the default name with the name you want as long as the number of characters is the same as before. I have managed to do this for Yace and this should work for any other Winboard engine supporting the 2nd protocol. Engines that support Winboard protocol 2 and have this problem currently include Crafty, Comet, Yace ,Sjeng etc. Other engines in the future that support Winboard protocol 2, should behave the same way.

[F.9] How do I run test suites automatically in Winboard?

You can't, while you can load up the test suite position in EPD format in Winboard and run the engine in analysis mode , there is no way to automate the process for a series of test positions. Some engines [Quark,Terra for example] have build in automated testing functions when run in command line. Refer to the respective documents.

Bruce Moreland has released a test suite harness FIXME(bad link) for WinBoard compatible engines that will allow you to automate the running of Chess test suites for Winboard compatible Chess engines outside Winboard.

Another option is to use Odd Gunnar Malin's Gradual Test. It looks more difficult to set up and use compared to Bruce Moreland's test utility, but it has the advantage of allowing you to automate testing of problems where scores are awarded to different moves.[Eg Tony Hedlund's positional test ] This has opposed to tactical suites where there is usually only one correct solution.

[F.10] When "show thinking" is turned on during the game, the lines get cut off. How can I display the whole line?

You can't, except when in analysis mode.

[F.11] What is PGN, FEN, EPD, CBH, CBF, etc. and how do I handle them [either display or print] in Winboard?

  • PGN - Portable Game Notation , “a standard designed for the representation of chess game data using ASCII text files.” [ Portable Game Notation Specification and Implementation Guide, 1994.03.12 ]. In simple terms, PGN is a means to store and display your games. You can use Winboard to read, display games in PGN format. One nice feature of Winboard is that you can copy the whole PGN game to the clipboard and then by selecting Copy game from clipboard, display the game in Winboard. PGN files are just ordinary text files so you can open or edit them using simple text editors. Combining two PGN files also only requires a simple copy command.
  • FEN - Forsyth-Edwards Notation - A standard used to store and represent Chess positions. For most part very similar to EPD which extended FEN for use with Computer Chess software.
  • EPD- Extended Position Description - Similar to FEN and is used to store and represent Chess positions. However it extends FEN with a extended set of “structured attribute values” generally used by Computer Chess programs. EPD is a popular format for Chess problems test suites because of the use of opcodes like “am”(avoid move) and “bm”(best move) and programs that can process EPD can run such test suites automatically. Winboard,some other Winboard Chess engines and some commercials programs [Rebel] can process/write positions in FEN/EPD as well. Another good free program that can import, export EPD into various formats is EPD2DIAG.
  • CBF,CBH - CBF is the older Chessbase format, while CBH is the newer format. Winboard cannot handle files in this format, unless you first convert them into PGN. You can find some converters for CBF to PGN here. You can convert CBF to PGN first, if your database supports only CBH like The free Chessbase Light. Chess Assistant Light can handle both CBF, CBH, and PGN

Also you might want to refer to Joachim Denzler's FAQ for beginners or the exact Technical Specification for PGN,EPD and FEN.

For utilities to handle Chess formats go to Chessopolis Software section and scroll down to PGN/File viewer/editor.

Some utilities to convert multiple games in a PGN file to a EPD file (you can use the epd2diag for one game)

A commonly asked for utility , is one to convert PGN in a different language to english. For example in German D=Queen , S= knight while in English Q=Queen and N = Knight. Chess Game notation File converter does the trick for various languages including German,French,Russian,Italian and more.


Personal Tools