Stockfish 1.4, the final weapon

Discussion of anything and everything relating to chess playing software and machines.

Moderators: Harvey Williamson, Dann Corbit, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 8:19 pm
Location: Oslo, Norway

Re: Stockfish 1.4, the final weapon

Post by Tord Romstad » Fri Jul 10, 2009 2:23 pm

Tord Romstad wrote:
slobo wrote: 197.733-->1:isready
197.733<--1:readyok
197.749*1*Start calc, move no: 11
197.749-->1:position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1 moves O-O h8g6 d2d4 d7d5 f2f4 c7c5 f4f5 c8f5 f1f5 f5e4 e4g4
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

Teemu Pudas
Posts: 88
Joined: Wed Mar 25, 2009 11:49 am

Re: Stockfish 1.4, the final weapon

Post by Teemu Pudas » Fri Jul 10, 2009 2:25 pm

slobo wrote:Arena 2.0.1
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.

Christopher Conkie
Posts: 6073
Joined: Sat Apr 01, 2006 7:34 pm
Location: Scotland
Contact:

Re: Stockfish 1.4, the final weapon

Post by Christopher Conkie » Fri Jul 10, 2009 2:31 pm

Tord Romstad wrote:
slobo wrote: 197.733-->1:isready
197.733<--1:readyok
197.749*1*Start calc, move no: 11
197.749-->1:position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1 moves O-O h8g6 d2d4 d7d5 f2f4 c7c5 f4f5 c8f5 f1f5 f5e4 e4g4
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
Hahahahaha.........

And you should find a better cloner.

Image

Code: Select all

Arena 2.0.1
1.880**----------New game---2009-07-10 15&#58;24&#58;10,813 Fri -------------
37.605*1*--------------------Starting engine 1 Stockfish 1.4 x64---------------------
37.635*1*Configured Engine 1 Type&#58;   UCI
37.759*1*Engine 1 dir&#58; C&#58;\Program Files &#40;x86&#41;\Arena\Engines\Stockfish 1.4 x64
37.800*1*Engine 1 commandline&#58; "C&#58;\Program Files &#40;x86&#41;\Arena\Engines\Stockfish 1.4 x64\stockfish_14_x64_ja.exe" 
37.848*1*Engine 1 ProcessID&#58; 5232
37.988-->1&#58;uci
38.039<--1&#58;Stockfish 1.4 JA 64bit. By Tord Romstad, Marco Costalba, Joona Kiiski.
38.089<--1&#58;id name Stockfish 1.4 JA 64bit
38.140<--1&#58;id author Tord Romstad, Marco Costalba, Joona Kiiski
38.190<--1&#58;option name Use Search Log type check default false
38.239<--1&#58;option name Search Log Filename type string default SearchLog.txt
38.240<--1&#58;option name Book File type string default book.bin
38.240<--1&#58;option name Mobility &#40;Middle Game&#41; type spin default 100 min 0 max 200
38.291<--1&#58;option name Mobility &#40;Endgame&#41; type spin default 100 min 0 max 200
38.342<--1&#58;option name Pawn Structure &#40;Middle Game&#41; type spin default 100 min 0 max 200
38.393<--1&#58;option name Pawn Structure &#40;Endgame&#41; type spin default 100 min 0 max 200
38.442<--1&#58;option name Passed Pawns &#40;Middle Game&#41; type spin default 100 min 0 max 200
38.493<--1&#58;option name Passed Pawns &#40;Endgame&#41; type spin default 100 min 0 max 200
38.545<--1&#58;option name Space type spin default 100 min 0 max 200
38.596<--1&#58;option name Aggressiveness type spin default 100 min 0 max 200
38.647<--1&#58;option name Cowardice type spin default 100 min 0 max 200
38.697<--1&#58;option name King Safety Curve type combo default Quadratic var Quadratic var Linear
38.751<--1&#58;option name King Safety Coefficient type spin default 40 min 1 max 100
38.755<--1&#58;option name King Safety X Intercept type spin default 0 min 0 max 20
38.756<--1&#58;option name King Safety Max Slope type spin default 30 min 10 max 100
38.759<--1&#58;option name King Safety Max Value type spin default 500 min 100 max 1000
38.761<--1&#58;option name Queen Contact Check Bonus type spin default 3 min 0 max 8
38.762<--1&#58;option name Queen Check Bonus type spin default 2 min 0 max 4
38.765<--1&#58;option name Rook Check Bonus type spin default 1 min 0 max 4
38.766<--1&#58;option name Bishop Check Bonus type spin default 1 min 0 max 4
38.767<--1&#58;option name Knight Check Bonus type spin default 1 min 0 max 4
38.770<--1&#58;option name Discovered Check Bonus type spin default 3 min 0 max 8
38.771<--1&#58;option name Mate Threat Bonus type spin default 3 min 0 max 8
38.773<--1&#58;option name Check Extension &#40;PV nodes&#41; type spin default 2 min 0 max 2
38.774<--1&#58;option name Check Extension &#40;non-PV nodes&#41; type spin default 1 min 0 max 2
38.777<--1&#58;option name Single Reply Extension &#40;PV nodes&#41; type spin default 2 min 0 max 2
38.780<--1&#58;option name Single Reply Extension &#40;non-PV nodes&#41; type spin default 2 min 0 max 2
38.781<--1&#58;option name Mate Threat Extension &#40;PV nodes&#41; type spin default 0 min 0 max 2
38.784<--1&#58;option name Mate Threat Extension &#40;non-PV nodes&#41; type spin default 0 min 0 max 2
38.785<--1&#58;option name Pawn Push to 7th Extension &#40;PV nodes&#41; type spin default 1 min 0 max 2
38.788<--1&#58;option name Pawn Push to 7th Extension &#40;non-PV nodes&#41; type spin default 1 min 0 max 2
38.789<--1&#58;option name Passed Pawn Extension &#40;PV nodes&#41; type spin default 1 min 0 max 2
38.792<--1&#58;option name Passed Pawn Extension &#40;non-PV nodes&#41; type spin default 0 min 0 max 2
38.793<--1&#58;option name Pawn Endgame Extension &#40;PV nodes&#41; type spin default 2 min 0 max 2
38.795<--1&#58;option name Pawn Endgame Extension &#40;non-PV nodes&#41; type spin default 2 min 0 max 2
38.799<--1&#58;option name Full Depth Moves &#40;PV nodes&#41; type spin default 14 min 1 max 100
38.814<--1&#58;option name Full Depth Moves &#40;non-PV nodes&#41; type spin default 3 min 1 max 100
38.817<--1&#58;option name Threat Depth type spin default 5 min 0 max 100
38.820<--1&#58;option name LSN filtering type check default false
38.821<--1&#58;option name LSN Time Margin &#40;sec&#41; type spin default 4 min 1 max 10
38.824<--1&#58;option name LSN Value Margin type spin default 200 min 100 max 600
38.825<--1&#58;option name Randomness type spin default 0 min 0 max 10
38.828<--1&#58;option name Minimum Split Depth type spin default 4 min 4 max 7
38.833<--1&#58;option name Maximum Number of Threads per Split Point type spin default 5 min 4 max 8
38.835<--1&#58;option name Threads type spin default 2 min 1 max 8
38.836<--1&#58;option name Hash type spin default 32 min 4 max 4096
38.837<--1&#58;option name Clear Hash type button
38.840<--1&#58;option name Ponder type check default true
38.840<--1&#58;option name OwnBook type check default true
38.843<--1&#58;option name MultiPV type spin default 1 min 1 max 500
38.843<--1&#58;option name UCI_ShowCurrLine type check default false
38.863<--1&#58;option name UCI_Chess960 type check default false
38.863<--1&#58;uciok
38.865-->1&#58;setoption name Hash value 128
38.868-->1&#58;isready
39.419<--1&#58;readyok
39.916-->1&#58;isready
39.917<--1&#58;readyok
39.934-->1&#58;ucinewgame
39.937-->1&#58;isready
39.938<--1&#58;readyok
39.950-->1&#58;position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1
39.952-->1&#58;go infinite
40.166<--1&#58;info depth 2
40.169<--1&#58;info depth 2 score cp 12 time 192 nodes 45 nps 233 pv h1g3 h8g6
40.232<--1&#58;info depth 3
40.233<--1&#58;info depth 3 score cp 62 time 220 nodes 251 nps 1140 pv h1g3 d7d5 d2d4
40.348<--1&#58;info depth 4
40.348<--1&#58;info depth 4 score cp 12 time 220 nodes 700 nps 3181 pv h1g3 h8g6 d2d4 d7d5
40.351<--1&#58;info depth 5
40.351<--1&#58;info depth 5 score cp 38 time 228 nodes 1770 nps 7729 pv h1g3 h8g6 d1e3 d8e6 c2c3
40.354<--1&#58;info depth 6
40.355<--1&#58;info depth 6 score cp 12 time 232 nodes 4127 nps 17788 pv h1g3 h8g6 d2d4 d7d5 d1c3 d8c6
40.358<--1&#58;info depth 7
40.358<--1&#58;info depth 7 score cp 34 time 238 nodes 9742 nps 40932 pv h1g3 h8g6 d1e3 d8e6 c2c3 c7c5 b1e4
40.364<--1&#58;info depth 8
40.365<--1&#58;info depth 8 score cp 12 time 243 nodes 16459 nps 67454 pv h1g3 h8g6 d1e3 d8e6 c2c3 c7c6 d2d4 d7d5
40.368<--1&#58;info depth 9
40.369<--1&#58;info depth 9 score cp 22 time 281 nodes 58187 nps 207071 pv h1g3 h8g6 c2c3 d7d5 d2d4 c7c6 b1c2 d8e6 d1e3
40.373<--1&#58;info depth 10
40.373<--1&#58;info depth 10 score cp 12 time 321 nodes 106400 nps 331464 pv h1g3 h8g6 d2d4 d7d5 c2c3 c7c6 b1c2 d8e6 d1e3 b8c7
40.396<--1&#58;info depth 11
40.443<--1&#58;info depth 11 score cp 20 time 467 nodes 207816 nps 445002 pv h1g3 h8g6 d2d4 d7d5 c2c3 c7c6 b1c2 d8e6 d1e3 b8f4 c1d2
40.491<--1&#58;info depth 12
40.609<--1&#58;info depth 12 score cp 12 time 633 nodes 422512 nps 667475 pv h1g3 h8g6 d2d4 d7d5 c2c3 c7c6 b1c2 d8e6 d1e3 b8c7 e3f5 e6f4
40.837<--1&#58;info depth 13
41.003<--1&#58;info depth 13 score cp 20 time 1026 nodes 770267 nps 750747 pv h1g3 h8g6 d2d4 d7d5 d1e3 d8e6 e3d5 c7c6 d5e3 e6d4 c2c3 d4e6 b1e4
41.007<--1&#58;info currmove d2d4 currmovenumber 2
41.014<--1&#58;info nodes 775385 nps 747719 time 1036 hashfull 0
41.028<--1&#58;info currmove h2h4 currmovenumber 3
41.129<--1&#58;info currmove c2c4 currmovenumber 4
41.142<--1&#58;info currmove b2b3 currmovenumber 5
41.154<--1&#58;info currmove a2a3 currmovenumber 6
41.162<--1&#58;info currmove h2h3 currmovenumber 7
41.169<--1&#58;info currmove a2a4 currmovenumber 8
41.175<--1&#58;info currmove d2d3 currmovenumber 9
41.180<--1&#58;info currmove c2c3 currmovenumber 10
41.184<--1&#58;info currmove e2e4 currmovenumber 11
41.188<--1&#58;info currmove b2b4 currmovenumber 12
41.197<--1&#58;info currmove f2f3 currmovenumber 13
41.201<--1&#58;info currmove d1c3 currmovenumber 14
41.205<--1&#58;info currmove f2f4 currmovenumber 15
41.210<--1&#58;info currmove g2g4 currmovenumber 16
41.213<--1&#58;info currmove e2e3 currmovenumber 17
41.236<--1&#58;info currmove d1e3 currmovenumber 18
41.238<--1&#58;info currmove g2g3 currmovenumber 19
41.239<--1&#58;info depth 14
41.241<--1&#58;info currmove h1g3 currmovenumber 1
42.054<--1&#58;info nodes 2002994 nps 963904 time 2078 hashfull 0
42.712<--1&#58;info depth 14 score cp 10 time 2734 nodes 2857002 nps 1044989 pv h1g3 h8g6 d2d4 d7d5 d1e3 d8e6 e3d5 c7c6 d5e3 e6d4 c2c3 d4e6 b1e4 e6c5
42.883<--1&#58;info currmove h2h4 currmovenumber 2
42.885<--1&#58;info currmove d2d4 currmovenumber 3
42.924<--1&#58;info currmove e2e3 currmovenumber 4
42.978<--1&#58;info currmove c2c4 currmovenumber 5
43.041<--1&#58;info currmove b2b3 currmovenumber 6
43.070<--1&#58;info currmove a2a3 currmovenumber 7
43.225<--1&#58;info nodes 3257514 nps 1045750 time 3115 hashfull 1
43.225<--1&#58;info currmove b2b4 currmovenumber 8
43.226<--1&#58;info currmove d2d3 currmovenumber 9
43.226<--1&#58;info currmove h2h3 currmovenumber 10
43.226<--1&#58;info currmove f2f4 currmovenumber 11
43.228<--1&#58;info currmove a2a4 currmovenumber 12
43.228<--1&#58;info currmove d1c3 currmovenumber 13
43.250<--1&#58;info currmove c2c3 currmovenumber 14
43.369<--1&#58;info currmove e2e4 currmovenumber 15
43.369<--1&#58;info currmove f2f3 currmovenumber 16
43.369<--1&#58;info currmove g2g4 currmovenumber 17
43.371<--1&#58;info currmove g2g3 currmovenumber 18
43.371<--1&#58;info currmove d1e3 currmovenumber 19
43.371<--1&#58;info depth 15
43.371<--1&#58;info currmove h1g3 currmovenumber 1
44.109<--1&#58;info nodes 4369233 nps 1057157 time 4133 hashfull 3
44.647<--1&#58;info depth 15 score cp 38 time 4672 nodes 5011269 nps 1072617 pv h1g3
44.654<--1&#58;info depth 16
44.654<--1&#58;info currmove h1g3 currmovenumber 1
45.127<--1&#58;info nodes 5491586 nps 1065913 time 5152 hashfull 9
46.168<--1&#58;info nodes 6703227 nps 1082562 time 6192 hashfull 20
46.942<--1&#58;info depth 16 score cp 36 time 6966 nodes 7562832 nps 1085677 pv h1g3 h8g6 d2d4 c7c6 c2c4 d8e6 g3f5 c6c5 d4c5 e6c5 b2b4 b8e5 d1c3 c5a4 c1d2 a4c3 d2c3
46.947<--1&#58;info currmove h2h4 currmovenumber 2
47.190<--1&#58;info nodes 7838133 nps 1086366 time 7215 hashfull 34
47.282<--1&#58;info currmove c2c4 currmovenumber 3
47.444<--1&#58;info currmove d2d4 currmovenumber 4
47.528<--1&#58;info currmove f2f4 currmovenumber 5
47.655<--1&#58;info currmove e2e3 currmovenumber 6
47.655<--1&#58;info currmove b2b3 currmovenumber 7
47.757<--1&#58;info currmove a2a3 currmovenumber 8
47.813<--1&#58;info currmove d1c3 currmovenumber 9
47.933<--1&#58;info currmove b2b4 currmovenumber 10
48.181<--1&#58;info currmove a2a4 currmovenumber 11
48.217<--1&#58;info nodes 8909065 nps 1083830 time 8219 hashfull 54
48.251<--1&#58;info currmove d2d3 currmovenumber 12
48.281<--1&#58;info currmove h2h3 currmovenumber 13
48.532<--1&#58;info currmove e2e4 currmovenumber 14
48.598<--1&#58;info currmove f2f3 currmovenumber 15
48.679<--1&#58;info currmove g2g4 currmovenumber 16
48.704<--1&#58;info currmove c2c3 currmovenumber 17
48.951<--1&#58;info currmove d1e3 currmovenumber 18
49.062<--1&#58;info currmove g2g3 currmovenumber 19
49.162<--1&#58;info depth 17
49.164<--1&#58;info currmove h1g3 currmovenumber 1
49.228<--1&#58;info nodes 9979234 nps 1078604 time 9252 hashfull 81
50.248<--1&#58;info nodes 11163496 nps 1086789 time 10272 hashfull 114
51.288<--1&#58;info nodes 12422335 nps 1098252 time 11311 hashfull 155
52.304<--1&#58;info nodes 13599349 nps 1103126 time 12328 hashfull 200
53.315<--1&#58;info nodes 14759172 nps 1106384 time 13340 hashfull 248

Christopher Conkie
Posts: 6073
Joined: Sat Apr 01, 2006 7:34 pm
Location: Scotland
Contact:

Re: Stockfish 1.4, the final weapon

Post by Christopher Conkie » Fri Jul 10, 2009 2:34 pm

Tord Romstad wrote:
Tord Romstad wrote:
slobo wrote: 197.733-->1:isready
197.733<--1:readyok
197.749*1*Start calc, move no: 11
197.749-->1:position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1 moves O-O h8g6 d2d4 d7d5 f2f4 c7c5 f4f5 c8f5 f1f5 f5e4 e4g4
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......

:lol:

http://www.talkchess.com/forum/viewtopi ... 25&t=28796

Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 8:19 pm
Location: Oslo, Norway

Re: Stockfish 1.4, the final weapon

Post by Tord Romstad » Fri Jul 10, 2009 2:42 pm

Tord Romstad wrote:
slobo wrote: 197.733-->1:isready
197.733<--1:readyok
197.749*1*Start calc, move no: 11
197.749-->1:position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1 moves O-O h8g6 d2d4 d7d5 f2f4 c7c5 f4f5 c8f5 f1f5 f5e4 e4g4
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.

Tord

Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 8:19 pm
Location: Oslo, Norway

Re: Stockfish 1.4, the final weapon

Post by Tord Romstad » Fri Jul 10, 2009 2:46 pm

Christopher Conkie wrote:
Tord Romstad wrote:
Tord Romstad wrote:
slobo wrote: 197.733-->1:isready
197.733<--1:readyok
197.749*1*Start calc, move no: 11
197.749-->1:position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1 moves O-O h8g6 d2d4 d7d5 f2f4 c7c5 f4f5 c8f5 f1f5 f5e4 e4g4
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:

Code: Select all

Chess960
========

UCI could easily be extended to support Chess960 &#40;also known as Fischer Random Chess&#41;.

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&#58; 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&#58; The normal chess position would be&#58;
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

Christopher Conkie
Posts: 6073
Joined: Sat Apr 01, 2006 7:34 pm
Location: Scotland
Contact:

Re: Stockfish 1.4, the final weapon

Post by Christopher Conkie » Fri Jul 10, 2009 2:52 pm

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

But........

Stockfish crashes
Glaurung crashes

Fin

Christopher

Christopher Conkie
Posts: 6073
Joined: Sat Apr 01, 2006 7:34 pm
Location: Scotland
Contact:

Re: Stockfish 1.4, the final weapon

Post by Christopher Conkie » Fri Jul 10, 2009 3:00 pm

Tord Romstad wrote:
Christopher Conkie wrote:
Tord Romstad wrote:
Tord Romstad wrote:
slobo wrote: 197.733-->1:isready
197.733<--1:readyok
197.749*1*Start calc, move no: 11
197.749-->1:position fen rbbnqkrn/pppppppp/8/8/8/8/PPPPPPPP/RBBNQKRN w KQkq - 0 1 moves O-O h8g6 d2d4 d7d5 f2f4 c7c5 f4f5 c8f5 f1f5 f5e4 e4g4
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:

Code: Select all

Chess960
========

UCI could easily be extended to support Chess960 &#40;also known as Fischer Random Chess&#41;.

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&#58; 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&#58; The normal chess position would be&#58;
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."

Spock

Re: Stockfish 1.4, the final weapon

Post by Spock » Fri Jul 10, 2009 3:11 pm

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.

Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 8:19 pm
Location: Oslo, Norway

Re: Stockfish 1.4, the final weapon

Post by Tord Romstad » Fri Jul 10, 2009 3:24 pm

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.

Tord

Post Reply