The problem is that the standard edition of WinBoard is distributed with BOARD_RANKS defined as 11 in common.h, meaning you can have at most 10 ranks (one rank is a dummy used to store castling and e.p. rights). To support Big Chess it would have to be set to 17 (and re-compiled). In the current beta version (
http://hgm.nubati.net/WinBoardICC.zip ) I have done that. The Alien Edition even allows 19 x 19 boards (for Go), and the one that I patched for large Shogi variants even 25 x 25 (for Tai Shogi). BOARD_RANKS was already set to 16 in the standard edition (to allow Courier with holdings; for 'Big Crazyhouse' you would have to set it to 20).
I had no intention adding Big Chess as an independent variant, because it is so easy to configure WinBoard to play it. The only difference with regular Chess is the board size. I want to rethink the handling of pre-defined variants anyway. It would be much better if the engine could define any variant it wants, and that the New Variant dialog would not show a fixed list of variants (some of them grayed out), but would automatically adapt to what the engine plays. If such a non-standard variant was selected, WinBoard would then look to the engine for supplying the 'parent variant', board/holdings size, the pieceToCharTable and start position, through the already existing 'setup' command. I think NebiyuAlien already sends the required setup command, but the WinBoard standard edition ignores the board size and parent variant in it, and only accepts the initial position if legality checking is off, or if the user overruled the board width 'by hand'.
The current standard edition should already respond to the initial setup NebiyuAlien sends if WinBoard asks it to play 16x16+0_normal, even with legality testing on (because of the overruled board width). In older versions you would need legality testing off, and for engines that do not send a setup command you would have to provide the FEN of an initial position in a separate file (bigchess.fen, say). The only things that have to be in the bigchess.ini file (or directly in the bigchess.xop) would then be:
- Code: Select all
/boardHeight=16
/boardWidth=16
/loadPositionFile="bigchess.fen"
You could then add @bigchess (which is short for @bigchess.ini) on the line of every engine you want to start in Big Chess. You could add /variant=normal (although this is default; but it could be helpful if you select the engine from the Load Engine dialog while the current variant was something else). There is no real need to suppress saving of the settings on exit, as all these options are volatile options, and would not spoil anything. This was more something I did for Shogi, which (in oriental representation) would thoroughly mess with the settings (flipping the black pieces, coloring them white and using the outline pieces for black). Although now that there is a View->Themes dialog this is comparatively easy to undo as well. You could add /boardSize=small, but that would indeed stick to the next session.
I guess it is better to supply the initial setup through a .fen file than to rely on the engine, because then you could also use the .xop file to start WinBoard without engine as game viewer, without facing an empty board.
You could also make only an .xop file, rather than having it 'inderect' to an ini file, and write @bigchess.xop on the engine line. The only merit of ini files is that WinBoard assumes that as an extension when you omit it. The only merit of .xop is that you can associate it with WinBoard, so that double-clicking it automatically starts WinBoard. (The ini extension is too commonly used to do that.)