That's a GUI bug, not an engine bug. The GUI does not follow the standard for Chess960 FEN strings defined in the UCI protocol.
Not only the FEN string, but also the castling move. The first move should be "f1g1", not "O-O". Whatever GUI this is has completely broken Chess960 UCI support. There does seem to be a problem in Stockfish as well, though. I'm looking at it right now.
There's your problem. After all these years, Arena still doesn't have UCI-compliant Chess960 support. I bet it doesn't even handle X-FEN entirely correctly, just like previous versions.
That's a GUI bug, not an engine bug. The GUI does not follow the standard for Chess960 FEN strings defined in the UCI protocol.
I'll have a look at the Chess960 support in Stockfish and see if something is broken, and fix whatever I find. I think I can promise that Stockfish 1.5 will have working Chess960 support, but I doubt that I will bother to do workarounds for GUI bugs. Complain to the GUI authors, or switch to a better GUI.
That's a GUI bug, not an engine bug. The GUI does not follow the standard for Chess960 FEN strings defined in the UCI protocol.
Not only the FEN string, but also the castling move. The first move should be "f1g1", not "O-O". Whatever GUI this is has completely broken Chess960 UCI support. There does seem to be a problem in Stockfish as well, though. I'm looking at it right now.
That's a GUI bug, not an engine bug. The GUI does not follow the standard for Chess960 FEN strings defined in the UCI protocol.
This is getting worse and worse when I look at it. For a moment I thought I had found a genuine Stockfish bug, because the program still crashed when I fixed the two visually obvious errors in the input from the GUI ("KQkq" instead of "AGag", and "O-O" instead of "f1g1"). Then I noticed that there is a third error in the input from the GUI: The move on f5e4. This is a black move, and the piece on f5 is a white rook, which couldn't have moved to e4 even if it were white to move...
And you should find a better cloner.
Don't blame Marco. I'm part of the team too, and Glaurung would also have crashed if given this input.
39.950-->1:position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1
39.952-->1:go infinite
Same problem here: "KQkq" instead of the correct "AGag". The GUI also doesn't set the UCI_Chess960 parameter to "true". I just verified that Stockfish does handle the above position correctly (when the input errors are fixed). It is still possible that there is a problem with Chess960 in Stockfish, but I haven't seen it yet. If I find the time, I'll play some test games myself tonight and see if I encounter any problems.
That's a GUI bug, not an engine bug. The GUI does not follow the standard for Chess960 FEN strings defined in the UCI protocol.
Not only the FEN string, but also the castling move. The first move should be "f1g1", not "O-O". Whatever GUI this is has completely broken Chess960 UCI support. There does seem to be a problem in Stockfish as well, though. I'm looking at it right now.
Tord
Really?....No....you don't say......
Yes, I do. Don't take my word for it, see the section about Chess960 in the UCI protocol:
Chess960
========
UCI could easily be extended to support Chess960 (also known as Fischer Random Chess).
The engine has to tell the GUI that it is capable of playing Chess960 and the GUI has to tell
the engine that is should play according to the Chess960 rules.
This is done by the special engine option UCI_Chess960. If the engine knows about Chess960
it should send the command 'option name UCI_Chess960 type check default false'
to the GUI at program startup.
Whenever a Chess960 game is played, the GUI should set this engine option to 'true'.
Castling is different in Chess960 and the white king move when castling short is not always e1g1.
A king move could both be the castling king move or just a normal king move.
This is why castling moves are sent in the form king "takes" his own rook.
Example: e1h1 for the white short castle move in the normal chess start position.
In EPD and FEN position strings specifying the castle rights with w and q is not enough as
there could be more than one rook on the right or left side of the king.
This is why the castle rights are specified with the letter of the castle rook's line.
Upper case letters for white's and lower case letters for black's castling rights.
Example: The normal chess position would be:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w AHah -
As you can see, castling moves are given in "king captures rook" notation (f1g1 in this case), and castling rights are given by the letters for the files containing the rooks.
Tord Romstad wrote:This is getting worse and worse when I look at it. For a moment I thought I had found a genuine Stockfish bug, because the program still crashed when I fixed the two visually obvious errors in the input from the GUI ("KQkq" instead of "AGag", and "O-O" instead of "f1g1"). Then I noticed that there is a third error in the input from the GUI: The move on f5e4. This is a black move, and the piece on f5 is a white rook, which couldn't have moved to e4 even if it were white to move...
Same problem here: "KQkq" instead of the correct "AGag". The GUI also doesn't set the UCI_Chess960 parameter to "true". I just verified that Stockfish does handle the above position correctly (when the input errors are fixed). It is still possible that there is a problem with Chess960 in Stockfish, but I haven't seen it yet. If I find the time, I'll play some test games myself tonight and see if I encounter any problems.
Tord
Look at it again. Arena knows this is a chess960 position.
Specifically it is Chess960 Position 612
And.....
Spike does not crash
Shredder does not crash
Smirf does not crash.
Jonny does not crash
That's a GUI bug, not an engine bug. The GUI does not follow the standard for Chess960 FEN strings defined in the UCI protocol.
Not only the FEN string, but also the castling move. The first move should be "f1g1", not "O-O". Whatever GUI this is has completely broken Chess960 UCI support. There does seem to be a problem in Stockfish as well, though. I'm looking at it right now.
Tord
Really?....No....you don't say......
Yes, I do. Don't take my word for it, see the section about Chess960 in the UCI protocol:
Chess960
========
UCI could easily be extended to support Chess960 (also known as Fischer Random Chess).
The engine has to tell the GUI that it is capable of playing Chess960 and the GUI has to tell
the engine that is should play according to the Chess960 rules.
This is done by the special engine option UCI_Chess960. If the engine knows about Chess960
it should send the command 'option name UCI_Chess960 type check default false'
to the GUI at program startup.
Whenever a Chess960 game is played, the GUI should set this engine option to 'true'.
Castling is different in Chess960 and the white king move when castling short is not always e1g1.
A king move could both be the castling king move or just a normal king move.
This is why castling moves are sent in the form king "takes" his own rook.
Example: e1h1 for the white short castle move in the normal chess start position.
In EPD and FEN position strings specifying the castle rights with w and q is not enough as
there could be more than one rook on the right or left side of the king.
This is why the castle rights are specified with the letter of the castle rook's line.
Upper case letters for white's and lower case letters for black's castling rights.
Example: The normal chess position would be:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w AHah -
As you can see, castling moves are given in "king captures rook" notation (f1g1 in this case), and castling rights are given by the letters for the files containing the rooks.
Tord
Ahhh right you think everything must use Shredder Fen.
We use X-Fen mostly.....
So Shredder Fen is normal for you. We think you are abnormal.
That said the original debug given by Slobodan shows that it works fine up until the 11th position of the EPD.
"There are currently not many engines that fully support Chess 960. The problem lies in the correct execution and recognition of the extended castling move. Therefore an appeal to all engine programmers: Support Fischer Random Chess! Arena transmits and receives the castling moves in Fischer chess (and only there!) always in the form "O-O" for h-side castling or "O-O-O" for a-side castling (the letter 'O' is used, not the number '0').This applies both to the WinBoard and UCI communication."
Tord Romstad wrote:
That's a GUI bug, not an engine bug. The GUI does not follow the standard for Chess960 FEN strings defined in the UCI protocol.
I'll have a look at the Chess960 support in Stockfish and see if something is broken, and fix whatever I find. I think I can promise that Stockfish 1.5 will have working Chess960 support, but I doubt that I will bother to do workarounds for GUI bugs. Complain to the GUI authors, or switch to a better GUI.
Tord
There is definitely a Stockfish bug somewhere. It fails to play properly under both Shredder GUI and ChessGUI. Glaurung on the other hand plays perfectly under both.
Arena of course is a non-starter, does not support Shredder FEN and will never run Gluaurung or Stockfish properly.
Christopher Conkie wrote:Ahhh right you think everything must use Shredder Fen.
No, we don't think everything must use any particular form of FEN, but we think it makes perfect sense that something that claims to implement the UCI protocol uses FENs and castling moves as specified by the UCI protocol. Our engine correctly implements the engine side of the UCI protocol, including the Chess960 extensions (there may be a move generation bug or something similar in Stockfish, but that's another question entirely). The Arena GUI does not implement the GUI side of the UCI protocol correctly. For this reason, the engine does not work in this GUI. It feels natural to me to describe this a GUI problem than an engine problem, but feel free to disagree. Because we give away our source code for free, you can even modify the program to behave any way you like if you want.
We will, of course, do our best to fix whatever Chess960 bugs we find in Stockfish. I will personally not bother to work around UCI bugs in any particular GUI, but I won't hunt down and kill Joona or Marco if they decide to do it.