Winboard as UCI engine

How to

Time controls

Winboard engines only support either 1 time control or several equal time controls, eg. 40/game or 40/60+40/60+40/60 etc. If you use another type of time control you have to test it by your own to check if the engine support this. The adapter catch a new type of time control and try to send this to the engine but the behavior of the engine is undefined in the protocol.

This don't necessary add too much trouble because there is really only three logical method to add this level command to the engine.

  1. Let a level command in the middle of a game start a new move count from this position (Progressive).
  2. Apply a level command in the middle of a game to the hole game (Strict).
  3. Don't support any level command in the middle of a game (FailSafe).

Increments in the time control is supported for all time controls.

If the engine treat the level command in the middle of a game as a start point for a new counting of moves the default would work.

If the engine apply the time control to the hole game add 'LeveExtend=Strict' to the .eng file. You would see this if you use a time control like 1/20 + 1/15 + 1/game. If the engine is in heavy time pressure from move 31 to 35 or loos on time between this moves you need probably to set the LevelExtend options to strict.

If the engine don't accept any level command in the middle of a game there is a fall back option you can use: LevelExtend=Failsafe. This will let the engine think it is starting a new game and all moves up to now is feed to the engine as book moves.

When I test how to set the 'LevelExtend' option I use a time control like:
1min/25move + 1min/15move + 1min/game
and set LevelExtend=Progressive
If the engines have used up almost all his time when it is at move 31 and do the remaining moves until next control (40 moves) in lightning speed, I try LevelExtend=Strict. If this doesn't help either I use the LevelExtend=FailSafe.


Odd Gunnar Malin, malin@online.no