stnevans / Apollo

Uci Compatible Chess Engine.
GNU General Public License v3.0
8 stars 1 forks source link

Illegal moves 2 #8

Open tpoppins opened 5 years ago

tpoppins commented 5 years ago

This is a continuation of #7 . The good news: the Hash option now works as expected. The bad news: illegal moves are still there.

[Event "?"]
[Site "?"]
[Date "2018.09.30"]
[Round "?"]
[White "Apollo 1.21 64-bit"]
[Black "__Thinker"]
[Result "0-1"]
[FEN "r2qk1nr/ppp1ppbp/3p2p1/3P4/2PnP1b1/2N2N2/PP3PPP/R1BQKB1R w KQkq - 0 7"]
[GameDuration "00:00:35"]
[GameEndTime "2018-09-30T21:13:40.344 Eastern Daylight Time"]
[GameStartTime "2018-09-30T21:13:04.692 Eastern Daylight Time"]
[PlyCount "6"]
[SetUp "1"]
[Termination "illegal move"]
[TimeControl "40/120"]

1. Qa4+ {0.00/13 2.4s} Bd7 {6.7s} 2. Qd1 {0.00/16 6.6s} Bg4 {5.3s}
3. Qa4+ {0.00/15 8.6s} Bd7 {6.0s, White makes an illegal move: a1a1} 0-1

Debug log:

<Apollo 1.21 64-bit(34): Apollo v1.2.0 by Stuart Nevans Locke
<Apollo 1.21 64-bit(34): id name Apollo Release 1.2.1
<Apollo 1.21 64-bit(34): id author Stuart Nevans Locke
<Apollo 1.21 64-bit(34): option name Hash type spin default 32 min 1 max 1048576
<Apollo 1.21 64-bit(34): uciok
>Apollo 1.21 64-bit(34): setoption name Hash value 256
>Apollo 1.21 64-bit(34): isready
<__Thinker(35): Thinker: 5.4D (NAM 047, 1500, for 64-bit architecture) Copyright (c) Kerwin Medina
<__Thinker(35): Thinker: uie pid sco lme
<__Thinker(35): Thinker: Freeware. No warranties whatsoever.
<__Thinker(35): feature setboard=1
>__Thinker(35): accepted setboard
<__Thinker(35): feature done=1
>__Thinker(35): accepted done
<Apollo 1.21 64-bit(34): readyok
>Apollo 1.21 64-bit(34): ucinewgame
>Apollo 1.21 64-bit(34): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/2PnP1b1/2N2N2/PP3PPP/R1BQKB1R w KQkq - 0 7
>__Thinker(35): new
>__Thinker(35): force
>__Thinker(35): setboard r2qk1nr/ppp1ppbp/3p2p1/3P4/2PnP1b1/2N2N2/PP3PPP/R1BQKB1R w KQkq - 0 7
>__Thinker(35): level 40 2 0
>__Thinker(35): post
>__Thinker(35): easy
>Apollo 1.21 64-bit(34): isready
<Apollo 1.21 64-bit(34): readyok
>Apollo 1.21 64-bit(34): go wtime 120000 btime 120000 movestogo 40
<Apollo 1.21 64-bit(34): info depth 1 score cp 6 nodes 50 nps 145713 time 0 pv d1a4
<Apollo 1.21 64-bit(34): info depth 2 score cp 6 nodes 59 nps 103692 time 0 pv d1a4 g4d7
<Apollo 1.21 64-bit(34): info depth 3 score cp 6 nodes 136 nps 112830 time 1 pv d1a4 g4d7 a4d1
<Apollo 1.21 64-bit(34): info depth 4 score cp 6 nodes 231 nps 102485 time 2 pv d1a4 g4d7 a4d1 d7g4
<Apollo 1.21 64-bit(34): info depth 5 score cp 0 nodes 531 nps 110920 time 4 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 6 score cp 0 nodes 1219 nps 114989 time 10 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 7 score cp 0 nodes 2122 nps 103510 time 20 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 8 score cp 0 nodes 4008 nps 101840 time 39 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 9 score cp 0 nodes 15417 nps 150832 time 102 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 10 score cp 0 nodes 45564 nps 162851 time 279 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 11 score cp 0 nodes 35745 nps 83335 time 428 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 12 score cp 0 nodes 63975 nps 91818 time 696 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 13 score cp 0 nodes 194297 nps 132637 time 1464 pv d1a4 g4d7 a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): bestmove d1a4
>__Thinker(35): d1a4
>__Thinker(35): time 12000
otim 11758
>__Thinker(35): go
<__Thinker(35): move g4d7  
>Apollo 1.21 64-bit(34): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/2PnP1b1/2N2N2/PP3PPP/R1BQKB1R w KQkq - 0 7 moves d1a4 g4d7
>Apollo 1.21 64-bit(34): isready
<__Thinker(35): 18 0 669 13257906 g4d7  a4d1  d4f3  g2f3  
<Apollo 1.21 64-bit(34): readyok
>Apollo 1.21 64-bit(34): go wtime 117588 btime 113303 movestogo 39
<Apollo 1.21 64-bit(34): info depth 1 score cp 6 nodes 41 nps 273784 time 0 pv a4d1
<Apollo 1.21 64-bit(34): info depth 2 score cp 6 nodes 69 nps 190246 time 0 pv a4d1 d7g4
<Apollo 1.21 64-bit(34): info depth 3 score cp 0 nodes 87 nps 115975 time 0 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 4 score cp 0 nodes 61 nps 55282 time 1 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 5 score cp 0 nodes 25 nps 18529 time 1 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 6 score cp 0 nodes 26 nps 16083 time 1 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 7 score cp 0 nodes 18 nps 9638 time 1 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 8 score cp 0 nodes 3 nps 1222 time 2 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 9 score cp 0 nodes 41 nps 14149 time 2 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 10 score cp 0 nodes 55 nps 16176 time 3 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 11 score cp 0 nodes 51 nps 12800 time 3 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 12 score cp 0 nodes 1932 nps 132999 time 14 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 13 score cp 0 nodes 39202 nps 215985 time 181 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 14 score cp 0 nodes 53899 nps 132271 time 407 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 15 score cp 0 nodes 74912 nps 103430 time 724 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): info depth 16 score cp 0 nodes 172250 nps 121790 time 1414 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(34): bestmove a4d1
>__Thinker(35): time 11330
otim 11100
>__Thinker(35): a4d1
<__Thinker(35): move d7g4  
>Apollo 1.21 64-bit(34): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/2PnP1b1/2N2N2/PP3PPP/R1BQKB1R w KQkq - 0 7 moves d1a4 g4d7 a4d1 d7g4
>Apollo 1.21 64-bit(34): isready
<__Thinker(35): 17 0 530 10287548 d7g4  
<Apollo 1.21 64-bit(34): readyok
>Apollo 1.21 64-bit(34): go wtime 111007 btime 108006 movestogo 38
<Apollo 1.21 64-bit(34): info depth 1 score cp 0 nodes 54 nps 203278 time 0 pv d1a4
<Apollo 1.21 64-bit(34): info depth 2 score cp 0 nodes 37 nps 84390 time 0 pv d1a4
<Apollo 1.21 64-bit(34): info depth 3 score cp 0 nodes 1 nps 1977 time 0 pv d1a4
<Apollo 1.21 64-bit(34): info depth 4 score cp 0 nodes 2 nps 3370 time 0 pv d1a4
<Apollo 1.21 64-bit(34): info depth 5 score cp 0 nodes 1 nps 1492 time 0 pv d1a4
<Apollo 1.21 64-bit(34): info depth 6 score cp 0 nodes 2 nps 1863 time 1 pv d1a4
<Apollo 1.21 64-bit(34): info depth 7 score cp 0 nodes 40 nps 30099 time 1 pv d1a4
<Apollo 1.21 64-bit(34): info depth 8 score cp 0 nodes 54 nps 33232 time 1 pv d1a4
<Apollo 1.21 64-bit(34): info depth 9 score cp 0 nodes 42 nps 21179 time 1 pv d1a4
<Apollo 1.21 64-bit(34): info depth 10 score cp 0 nodes 53 nps 22239 time 2 pv d1a4
<Apollo 1.21 64-bit(34): info depth 11 score cp 0 nodes 31 nps 11241 time 2 pv d1a4
<Apollo 1.21 64-bit(34): info depth 12 score cp 0 nodes 200 nps 54323 time 3 pv d1a4
<Apollo 1.21 64-bit(34): info depth 13 score cp 0 nodes 41 nps 9731 time 4 pv d1a4
<Apollo 1.21 64-bit(34): info depth 14 score cp 0 nodes 51 nps 10530 time 4 pv d1a4
<Apollo 1.21 64-bit(34): info depth 15 score cp 0 nodes 184568 nps 251678 time 733 pv d1a4
<Apollo 1.21 64-bit(34): bestmove d1a4
>__Thinker(35): time 10800
otim 10243
>__Thinker(35): d1a4
<__Thinker(35): move g4d7  
>Apollo 1.21 64-bit(34): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/2PnP1b1/2N2N2/PP3PPP/R1BQKB1R w KQkq - 0 7 moves d1a4 g4d7 a4d1 d7g4 d1a4 g4d7
>Apollo 1.21 64-bit(34): isready
<__Thinker(35): 19 0 605 12287811 g4d7  
<Apollo 1.21 64-bit(34): readyok
>Apollo 1.21 64-bit(34): go wtime 102437 btime 101957 movestogo 37
<Apollo 1.21 64-bit(34): info depth 1 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 2 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 3 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 4 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 5 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 6 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 7 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 8 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 9 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 10 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 11 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 12 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 13 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 14 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 15 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 16 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 17 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 18 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 19 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 20 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 21 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 22 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 23 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 24 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 25 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 26 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 27 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 28 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 29 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 30 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 31 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 32 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 33 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 34 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 35 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 36 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 37 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 38 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 39 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 40 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 41 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 42 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 43 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 44 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 45 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 46 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 47 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 48 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 49 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 50 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 51 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 52 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 53 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 54 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 55 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 56 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 57 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 58 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 59 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 60 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 61 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 62 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 63 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 64 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 65 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 66 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 67 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 68 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 69 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 70 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 71 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 72 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 73 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 74 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 75 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 76 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 77 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 78 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 79 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 80 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 81 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 82 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 83 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 84 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 85 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 86 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 87 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 88 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 89 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 90 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 91 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 92 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 93 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 94 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 95 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 96 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 97 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 98 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 99 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 100 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 101 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 102 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 103 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 104 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 105 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 106 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 107 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 108 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 109 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 110 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 111 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 112 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 113 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 114 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 115 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 116 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 117 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 118 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 119 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 120 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 121 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 122 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 123 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 124 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 125 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 126 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 127 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 128 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 129 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 130 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 131 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 132 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 133 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 134 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 135 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 136 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 137 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 138 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 139 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 140 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 141 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 142 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 143 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 144 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 145 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 146 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 147 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 148 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 149 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 150 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 151 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 152 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 153 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 154 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 155 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 156 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 157 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 158 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 159 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 160 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 161 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 162 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 163 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 164 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 165 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 166 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 167 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 168 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 169 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 170 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 171 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 172 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 173 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 174 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 175 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 176 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 177 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 178 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 179 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 180 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 181 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 182 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 183 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 184 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 185 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 186 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 187 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 188 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 189 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 190 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 191 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 192 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 193 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 194 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 195 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 196 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 197 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 198 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): info depth 199 score cp 0 nodes 0 nps 0 time 0 pv
<Apollo 1.21 64-bit(34): bestmove a1a1
>Apollo 1.21 64-bit(34): isready
>__Thinker(35): force
>__Thinker(35): result 0-1 {White makes an illegal move: a1a1}
<Apollo 1.21 64-bit(34): readyok
stnevans commented 5 years ago

When I paste the commands shown in the debug log, the issue doesn't reproduce, so I'm not immediately sure what's causing the issue. Which exact binary are you using?

stnevans commented 5 years ago

Ignore that, I'm now able to reproduce. I understand the problem and will work on getting a fix.

tpoppins commented 5 years ago

The 64-bit (POPCNT) one, CRC-32: 5E1414A5. I just retested with Hash sizes 256, 128 and the default 32. Same illegal move a1a1 in every case.

edit: Ah, I've been ninja'd. ;) Standing by for the fix.

stnevans commented 5 years ago

I rolled out something I believe should fix the issue. I'm not 100% confident in the robustness of the patch, so I'll look into it more when I get some time. If this doesn't fix it, I know how to do so. Can you confirm/deny that the fix worked?

tpoppins commented 5 years ago

Need a Makefile for Windows, something that would work with MSYS2 and Cygwin. Tried making my own and got tons of errors.

stnevans commented 5 years ago

I was planning on adding a Makefile at some point, but for me copying and pasting the compilation works fine. Regardless, I actually updated the files under Release 1.2.1. Should have mentioned that.

tpoppins commented 5 years ago

The new exec (CRC-32 388D09A3) doesn't fix it. Besides the usual 40/4 and 512 hash I tried 40/20 and 32 hash, same result (a1a1).

tpoppins commented 5 years ago

Ditto for apollopocnt.exe CRC-32 165E3B63.

stnevans commented 5 years ago

Interesting. I'll take a look at it in the morning. Thank you very much for being patient with me and for reporting this bug.

tpoppins commented 5 years ago

No problemo.

An interesting find: if you start the game from the position where it wants to play a1a1, it chooses to play the queen back to d1 and the game goes on:

[Event "?"]
[Site "?"]
[Date "2018.10.01"]
[Round "?"]
[White "Apollo 1.21 64-bit"]
[Black "__Thinker"]
[Result "1/2-1/2"]
[FEN "r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9"]
[GameDuration "00:00:30"]
[GameEndTime "2018-10-01T00:07:35.410 Eastern Daylight Time"]
[GameStartTime "2018-10-01T00:07:05.270 Eastern Daylight Time"]
[PlyCount "8"]
[SetUp "1"]
[Termination "adjudication"]
[TimeControl "40/120"]

1... Bd7 {3.8s} 2. Qd1 {0.00/15 5.1s} c5 {2.7s} 3. Qd3 {0.00/10 3.2s} Qb6 {2.7s}
4. g3 {0.00/10 5.4s} Nf6 {3.6s}
5. h3 {0.00/10 3.5s, Draw by adjudication: user decision} 1/2-1/2

Debug log:

<Apollo 1.21 64-bit(7): Apollo v1.2.1 by Stuart Nevans Locke
<Apollo 1.21 64-bit(7): id name Apollo Release 1.2.1
<Apollo 1.21 64-bit(7): id author Stuart Nevans Locke
<Apollo 1.21 64-bit(7): option name Hash type spin default 32 min 1 max 1048576
<Apollo 1.21 64-bit(7): uciok
>Apollo 1.21 64-bit(7): setoption name Hash value 512
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): Thinker: 5.4D (NAM 047, 1500, for 64-bit architecture) Copyright (c) Kerwin Medina
<__Thinker(8): Thinker: uie pid sco lme
<__Thinker(8): Thinker: Freeware. No warranties whatsoever.
<__Thinker(8): feature setboard=1
>__Thinker(8): accepted setboard
<__Thinker(8): feature done=1
>__Thinker(8): accepted done
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): ucinewgame
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9
>__Thinker(8): new
>__Thinker(8): force
>__Thinker(8): b2b3
>__Thinker(8): setboard r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9
>__Thinker(8): level 40 2 0
>__Thinker(8): post
>__Thinker(8): easy
>__Thinker(8): time 12000
otim 12000
>__Thinker(8): go
<__Thinker(8): move g4d7  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 16 0 377 7424682 g4d7  c3b5  d4f3  g2f3  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 120000 btime 116221 movestogo 40
<Apollo 1.21 64-bit(7): info depth 1 score cp 6 nodes 44 nps 171028 time 0 pv a4d1
<Apollo 1.21 64-bit(7): info depth 2 score cp 6 nodes 89 nps 161777 time 0 pv a4d1 d7g4
<Apollo 1.21 64-bit(7): info depth 3 score cp 6 nodes 169 nps 123947 time 1 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(7): info depth 4 score cp 0 nodes 287 nps 117487 time 2 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 5 score cp 0 nodes 322 nps 81987 time 3 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 6 score cp 0 nodes 638 nps 90372 time 7 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 7 score cp 0 nodes 1627 nps 115101 time 14 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 8 score cp 0 nodes 5382 nps 161233 time 33 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 9 score cp 0 nodes 7366 nps 120011 time 61 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 8578 nps 85828 time 99 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 11 score cp 0 nodes 22004 nps 114649 time 191 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 12 score cp 0 nodes 44730 nps 119015 time 375 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 13 score cp 0 nodes 99082 nps 126624 time 782 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 14 score cp 0 nodes 146981 nps 108389 time 1356 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 15 score cp 0 nodes 258300 nps 109232 time 2364 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): bestmove a4d1
>__Thinker(8): time 11622
otim 11491
>__Thinker(8): a4d1
<__Thinker(8): move c7c5  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7 a4d1 c7c5
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 15 0 273 5358655 c7c5  f3d4  c5d4  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 114917 btime 113487 movestogo 39
<Apollo 1.21 64-bit(7): info depth 1 score cp 8 nodes 39 nps 203876 time 0 pv c1f4
<Apollo 1.21 64-bit(7): info depth 2 score cp 24 nodes 83 nps 180267 time 0 pv d5c6 d4f3
<Apollo 1.21 64-bit(7): info depth 3 score cp 5 nodes 442 nps 251881 time 1 pv c1g5 d7g4 d1a4
<Apollo 1.21 64-bit(7): info depth 4 score cp 6 nodes 635 nps 149106 time 4 pv c1f4 d4f3 d1f3 g7d4
<Apollo 1.21 64-bit(7): info depth 5 score cp 2 nodes 2854 nps 195064 time 14 pv f3d4 g7d4 c1d2 f7f6 d5c6
<Apollo 1.21 64-bit(7): info depth 6 score cp 3 nodes 5668 nps 166157 time 34 pv f3d4 g7d4 c1d2 g8f6 f1d3 d7g4
<Apollo 1.21 64-bit(7): info depth 7 score cp 4 nodes 8431 nps 125501 time 67 pv e1d2 d4f3 d1f3 g7e5 d2d3 g8f6
<Apollo 1.21 64-bit(7): info depth 8 score cp 3 nodes 23658 nps 149704 time 158 pv d1d3 d7g4 f3d4 g7d4 c1f4 g8f6 f2f3
<Apollo 1.21 64-bit(7): info depth 9 score cp 2 nodes 76832 nps 166202 time 462 pv d1d3 d8a5 a1b1 d7g4 f3d4 c5d4 h2h3 d4c3
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 147593 nps 138937 time 1062 pv d1d3 d8a5 a1b1 d7g4 f3d4 c5d4 b2b4 d4c3 c3b5
<Apollo 1.21 64-bit(7): bestmove d1d3
>__Thinker(8): time 11348
otim 11175
>__Thinker(8): d1d3
<__Thinker(8): move d8b6  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7 a4d1 c7c5 d1d3 d8b6
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 13 26 265 5273012 d8b6  f3d4  c5d4  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 111758 btime 110822 movestogo 38
<Apollo 1.21 64-bit(7): info depth 1 score cp 19 nodes 38 nps 216851 time 0 pv f3d4
<Apollo 1.21 64-bit(7): info depth 2 score cp 5 nodes 49 nps 122595 time 0 pv e1d2 d7b5
<Apollo 1.21 64-bit(7): info depth 3 score cp 1 nodes 134 nps 148042 time 0 pv e1d2 g7h6 d2d1
<Apollo 1.21 64-bit(7): info depth 4 score cp 4 nodes 259 nps 134001 time 1 pv e1d2 g7f6 d2e3 f6e5
<Apollo 1.21 64-bit(7): info depth 5 score cp 5 nodes 607 nps 144031 time 4 pv e1d2 g7h6 d2d1 h6c1 d1c1
<Apollo 1.21 64-bit(7): info depth 6 score cp 3 nodes 6044 nps 221561 time 27 pv b2b3 d4f3 d3f3 g7e5 e1d2
<Apollo 1.21 64-bit(7): info depth 7 score cp 3 nodes 8778 nps 146608 time 59 pv b2b3 d4f3 d3f3 g7d4 f1e2 a8b8 c1b2
<Apollo 1.21 64-bit(7): info depth 8 score cp 2 nodes 41940 nps 188539 time 222 pv h2h3 d4f3 d3f3 g7e5 e1d2 f7f6 f1e2
<Apollo 1.21 64-bit(7): info depth 9 score cp 3 nodes 34632 nps 96197 time 360 pv h2h3 d4f3 d3f3 g7e5 e1d2 b6a5 f3d3 g8f6
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 402059 nps 205323 time 1958 pv g2g3 b6a5 f3d2 g8f6 c3e2 f6g4 e2f4 g7e5
<Apollo 1.21 64-bit(7): bestmove g2g3
>__Thinker(8): time 11082
otim 10639
>__Thinker(8): g2g3
<__Thinker(8): move g8f6  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7 a4d1 c7c5 d1d3 d8b6 g2g3 g8f6
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 14 60 363 7330888 g8f6  f3d4  c5d4  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 106393 btime 107172 movestogo 37
<Apollo 1.21 64-bit(7): info depth 1 score cp 15 nodes 39 nps 342712 time 0 pv f3d4
<Apollo 1.21 64-bit(7): info depth 2 score cp 15 nodes 45 nps 159941 time 0 pv f3d4 c5d4
<Apollo 1.21 64-bit(7): info depth 3 score cp 13 nodes 90 nps 127699 time 0 pv f3d4 c5d4 c3e2
<Apollo 1.21 64-bit(7): info depth 4 score cp 13 nodes 150 nps 109285 time 1 pv f3d4 c5d4 c3e2 b6b4
<Apollo 1.21 64-bit(7): info depth 5 score cp 9 nodes 409 nps 125312 time 3 pv f3d4 c5d4 c3e2 b6b4 e1d1
<Apollo 1.21 64-bit(7): info depth 6 score cp 9 nodes 1442 nps 150308 time 9 pv f3d4 c5d4 c3e2 b6b4 e1d1 b4a4
<Apollo 1.21 64-bit(7): info depth 7 score cp 11 nodes 2354 nps 116670 time 20 pv f3d4 c5d4 c3e2 b6b4 e1d1 d7a4 b2b3
<Apollo 1.21 64-bit(7): info depth 8 score cp 7 nodes 91680 nps 239831 time 382 pv f1g2 a8c8 b2b3 d7g4 c3a4 d4f3 g2f3 b6b4
<Apollo 1.21 64-bit(7): info depth 9 score cp 2 nodes 119622 nps 139644 time 856 pv f1g2 f6g4 g2h3 g4e5 h3d7 e8d7 f3e5 g7e5 e1g1
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 275845 nps 139568 time 1976 pv h2h3 e7e5 d5e6 d4f3 d3f3
<Apollo 1.21 64-bit(7): bestmove h2h3
>__Thinker(8): time 10717
otim 10288
>__Thinker(8): h2h3
>Apollo 1.21 64-bit(7): isready
>__Thinker(8): ?
>__Thinker(8): force
>__Thinker(8): result 1/2-1/2 {Draw by adjudication: user decision}
<Apollo 1.21 64-bit(7): readyok
<__Thinker(8): move d4f3  
<__Thinker(8): 9 56 21 375427 d4f3  d3f3  e8g8  

On another positive note, I don't see any more crashes under Cute Chess. It does crash under Fritz 16 GUI, will make a separate issue for that.

stnevans commented 5 years ago

The heart of the issue is that apollo checks if the current position is a repetition, and if so, it returns to cut down on the search time. The problem is apollo previously checked if there was a transposition table entry for the current position, and if so it returned. When outputting the best move, however, apollo uses a triangular pv array. The array was never filled in that case.

I just threw together a fix to fill the pv array in this case, however I'd like to look more deeply at this issue and related ideas to make sure I didn't miss anything when I get more time. I tested the exact commands you used before that caused apollo to return a1a1, and I now get the move a4d1.

Could you confirm that the new patch(binarys under release 1.2.1 also updated) fixes this issue?

tpoppins commented 5 years ago

Great, now it's fixed.

There only remains a slight issue of nodes, NPS and time all displayed as zeroes for every iteration of the very last move (4.Qd1).

tpoppins commented 5 years ago

Another example found, possibly unrelated to those reported previously. It took 80 games to surface.

[Event "Apollo 1.21 64-bit 40/4"]
[Site "Dual X5670"]
[Date "2018.10.08"]
[Round "19"]
[White "Apollo 1.21 64-bit"]
[Black "TSCP 1.81"]
[Result "0-1"]
[ECO "A40"]
[GameDuration "00:05:19"]
[GameEndTime "2018-10-08T12:35:20.951 Eastern Daylight Time"]
[GameStartTime "2018-10-08T12:30:01.105 Eastern Daylight Time"]
[Opening "Queen's pawn"]
[PlyCount "108"]
[Termination "illegal move"]
[TimeControl "40/120"]

1. d4 {book} e6 {book} 2. e4 {book} d5 {book} 3. e5 {book} c5 {book}
4. c3 {book} Ne7 {book} 5. Nf3 {book} Nec6 {book} 6. a3 {book} a5 {book}
7. Qc2 {+0.05/9 3.2s} cxd4 {-0.25/6 4.0s} 8. cxd4 {+0.01/10 2.3s}
Be7 {-0.17/5 3.9s} 9. Bd3 {+0.17/11 4.8s} Nd7 {-0.21/5 3.7s}
10. Bxh7 {+0.73/9 2.7s} Qb6 {-0.46/5 3.6s} 11. Nbd2 {-0.02/11 3.6s}
a4 {+0.62/5 3.5s} 12. O-O {+0.03/11 2.3s} g5 {+0.42/5 3.4s}
13. h3 {+0.03/12 4.9s} Qa7 {+0.35/5 3.3s} 14. Bd3 {+0.47/11 3.1s}
Nxd4 {+0.11/5 3.2s} 15. Nxd4 {+0.30/13 2.8s} Qxd4 {+0.11/5 3.0s}
16. Nf3 {+0.30/13 4.6s} Qc5 {-0.02/6 2.9s} 17. Be3 {+0.25/12 3.8s}
Qxc2 {+0.04/6 2.8s} 18. Bxc2 {+0.19/13 5.4s} Rg8 {+0.04/6 2.8s}
19. Rac1 {+0.14/12 9.9s} g4 {+0.05/6 2.7s} 20. hxg4 {+0.20/12 3.4s}
Rxg4 {0.00/6 2.6s} 21. g3 {+0.15/10 1.9s} b6 {+0.25/6 2.5s}
22. Rfd1 {+0.17/10 1.7s} Bb7 {+0.40/6 2.4s} 23. Kg2 {+0.14/10 3.5s}
Bc5 {+0.60/5 2.3s} 24. Bxc5 {+0.12/11 3.6s} bxc5 {+0.70/6 2.2s}
25. Bd3 {+0.14/10 1.8s} c4 {+0.81/6 2.2s} 26. Kh3 {+0.08/11 1.3s}
Rg8 {+0.82/6 2.1s} 27. Bc2 {+0.10/10 1.2s} Bc6 {+0.76/6 2.0s}
28. Nd4 {+0.30/12 2.2s} Rh8+ {+0.60/6 2.0s} 29. Kg2 {+0.41/12 2.6s}
Bb7 {+0.53/6 1.9s} 30. f4 {+0.30/11 2.6s} Rg8 {+0.56/5 1.8s}
31. Rd2 {+0.37/10 2.1s} Nc5 {+0.62/5 1.8s} 32. f5 {+0.07/10 2.2s}
Ne4 {+0.94/6 1.7s} 33. Bxe4 {+0.28/12 1.3s} dxe4 {+0.27/7 1.7s}
34. Kf2 {+0.28/11 1.2s} Rg5 {+0.25/6 1.6s} 35. Rxc4 {+0.69/12 1.7s}
exf5 {+0.14/6 1.5s} 36. Nb5 {+0.81/12 1.1s} Kf8 {-0.50/6 1.5s}
37. Nd6 {+0.96/12 1.1s} Ba6 {-1.09/6 1.4s} 38. Rc7 {+1.04/12 1.2s}
Rg7 {-0.69/6 1.4s} 39. Nxf5 {+1.27/12 1.4s} Rg5 {-1.11/6 1.4s}
40. Nd6 {+1.30/12 1.7s} Rxe5 {-1.18/6 1.3s} 41. Rxf7+ {+1.23/13 9.9s}
Kg8 {-1.10/7 5.3s} 42. Ke3 {+1.15/13 4.5s} Rb8 {-1.39/7 5.1s}
43. Rff2 {+1.15/13 11s} Bd3 {-1.60/7 4.9s} 44. Rf4 {+1.15/14 7.9s}
Rb3 {-1.60/7 4.8s} 45. Kd4 {+1.15/14 4.9s} Re6 {-1.30/7 4.6s}
46. Rg4+ {+1.15/15 4.7s} Kf8 {-1.30/6 4.4s} 47. Nxe4 {+1.15/15 7.1s}
Bxe4 {-1.30/7 4.3s} 48. Rf2+ {+1.15/16 9.5s} Ke7 {-1.30/7 4.1s}
49. Rxe4 {+1.20/16 9.4s} Rxe4+ {-1.20/9 4.0s} 50. Kxe4 {+1.25/15 5.5s}
Rxg3 {-1.20/8 3.9s} 51. Rf3 {+1.25/14 5.4s} Rxf3 {-1.00/9 3.8s}
52. Kxf3 {+1.25/15 1.6s} Kd6 {-1.12/12 3.6s} 53. Ke4 {+2.60/20 0.87s}
Kc5 {-1.42/13 3.5s} 54. b4+ {+2.65/20 0.67s}
axb3 {-1.01/10 3.4s, White makes an illegal move: c5c4} 0-1

It would also appear that v1.21 is considerably stronger than v1.1. That's probably not a bug.

stnevans commented 5 years ago

Still looking at this, not easily reproduced by me. Just settings up the last position and running a search didn't output that move for me, so my best guess is it's an issue with the transposition table. Sorry it took me so long to respond.

tpoppins commented 5 years ago

Another example, this one at LTC and involving an e.p capture:

[Event "Apollo 1.21 64-bit 40/40 Gauntlet"]
[Site "Dual E5-2670"]
[Date "2019.03.21"]
[Round "5"]
[White "Apollo 1.21 64-bit"]
[Black "EnkoChess 290818"]
[Result "0-1"]
[ECO "B23"]
[GameDuration "00:46:53"]
[GameEndTime "2019-03-21T01:46:26.513 Eastern Daylight Time"]
[GameStartTime "2019-03-21T00:59:33.025 Eastern Daylight Time"]
[Opening "Sicilian"]
[PlyCount "88"]
[Termination "illegal move"]
[TimeControl "40/1320"]
[Variation "Closed"]

1. e4 {book} c5 {book} 2. Nc3 {book} d6 {book} 3. Nge2 {book} e5 {book}
4. Nd5 {book} Nf6 {book} 5. Nec3 {+0.04/16 34s} Nc6 {37s}
6. Nxf6+ {+0.06/15 38s} gxf6 {37s} 7. Qh5 {+0.25/15 36s} Nd4 {37s}
8. Bc4 {+0.24/17 49s} Be6 {37s} 9. Bxe6 {+0.25/16 24s} Nxe6 {37s}
10. Nd5 {+0.31/15 46s} Nd4 {37s} 11. Kd1 {+0.32/15 31s} Bg7 {37s}
12. f4 {+0.47/14 59s} O-O {37s} 13. Rf1 {+0.50/14 34s} Qd7 {37s}
14. b3 {+0.57/15 83s} Nc6 {37s} 15. d3 {+0.84/14 80s} Nb4 {37s}
16. Rf3 {+0.79/14 26s} Nxd5 {37s} 17. exd5 {+1.16/14 19s} Rae8 {37s}
18. Rg3 {+2.72/16 74s} exf4 {37s} 19. Bxf4 {+2.84/18 22s} Qe7 {37s}
20. Kd2 {+5.70/18 35s} f5 {37s} 21. Bh6 {+5.85/17 19s} Qe5 {37s}
22. Rxg7+ {+6.49/17 41s} Qxg7 {37s} 23. Bxg7 {+6.64/14 24s} Kxg7 {37s}
24. Qg5+ {+6.83/13 57s} Kh8 {37s} 25. Qf6+ {+6.83/13 56s} Kg8 {37s}
26. Qxd6 {+6.89/12 34s} f6 {37s} 27. Qxc5 {+7.30/11 16s} b6 {37s}
28. Qc6 {+7.70/11 19s} Re5 {37s} 29. Re1 {+8.15/11 20s} Rxe1 {37s}
30. Kxe1 {+8.30/12 22s} Kf7 {37s} 31. Qc7+ {+10.85/12 19s} Kg6 {37s}
32. d6 {+10.95/12 16s} Re8+ {37s} 33. Kd2 {+11.75/13 11s} b5 {37s}
34. d7 {+12.45/12 14s} Rh8 {37s} 35. d8=N {+12.75/12 33s} Rf8 {37s}
36. Qe7 {+13.05/11 12s} Rxd8 {37s} 37. Qxd8 {+13.30/10 5.2s} f4 {37s}
38. Qe8+ {+13.20/8 5.4s} Kg5 {37s} 39. Qxb5+ {+13.75/9 12s} f5 {37s}
40. Qd7 {+13.80/8 5.7s} h6 {35s} 41. Qg7+ {+M9/13 147s} Kh5 {2.7s}
42. Ke2 {+M7/13 63s} Kh4 43. Kf3 {+M5/13 65s} Kh5 44. g4+ {+M3/13 45s}
fxg3 {White makes an illegal move: f5g4} 0-1

Out of 672 games 27 ended in abnormal terminations:

Clearly there's some debugging still to be done. :>

tpoppins commented 5 years ago

Curiously, all five disconnects occurred when 160 moves have been completed for both sides, with Apollo playing black. Another game ended after 159 moves in a stalled connection. Apparently Apollo cannot last longer than four 40-move playing sessions.

tpoppins commented 5 years ago

And now for something different -- Apollo achieves a completely winning position (mate in 6) and its eval goes completely haywire. 30 moves later the game ends in an illegal move.

[Event "Apollo 1.21 64-bit 40/40 Gauntlet"]
[Site "Dual E5-2670"]
[Date "2019.03.21"]
[Round "7"]
[White "EnkoChess 290818"]
[Black "Apollo 1.21 64-bit"]
[Result "0-1"]
[ECO "B22"]
[GameDuration "02:21:21"]
[GameEndTime "2019-03-21T10:22:11.968 Eastern Daylight Time"]
[GameStartTime "2019-03-21T08:00:50.741 Eastern Daylight Time"]
[Opening "Sicilian"]
[PlyCount "280"]
[Termination "illegal move"]
[TimeControl "40/1320"]
[Variation "Alapin's Variation (2.c3)"]

1. e4 {book} c5 {book} 2. c3 {book} Qa5 {book} 3. g3 {book} Nc6 {book}
4. Na3 {book} Nf6 {book} 5. Qc2 {37s} d5 {+0.12/15 33s} 6. exd5 {37s}
Nxd5 {+0.09/15 33s} 7. Qb3 {37s} e6 {+0.14/14 37s} 8. Bb5 {37s}
Qc7 {+0.12/14 73s} 9. Nf3 {37s} a6 {+0.10/14 34s} 10. Bxc6+ {37s}
Qxc6 {+0.22/15 52s} 11. Ne5 {37s} Qd6 {+0.24/15 49s} 12. Nac4 {37s}
Qd8 {+0.29/14 29s} 13. a4 {37s} f6 {+0.30/15 28s} 14. Nf3 {37s}
e5 {+0.30/15 72s} 15. h4 {37s} Rb8 {+0.48/13 40s} 16. d4 {37s} e4 {+0.42/13 27s}
17. Nfd2 {37s} cxd4 {+0.68/13 20s} 18. Nxe4 {37s} f5 {+0.53/14 28s}
19. Ng5 {37s} h6 {+0.43/14 36s} 20. Nf3 {37s} dxc3 {+0.39/14 35s} 21. bxc3 {37s}
f4 {+0.32/13 32s} 22. Bxf4 {37s} Nxf4 {+0.56/14 24s} 23. gxf4 {37s}
Qd5 {+0.61/13 33s} 24. Ncd2 {37s} Qxb3 {+0.84/18 41s} 25. Nxb3 {37s}
Bd6 {+0.74/17 26s} 26. Ne5 {37s} O-O {+0.91/16 19s} 27. Rd1 {37s}
Bc7 {+0.92/16 44s} 28. Rd4 {37s} Re8 {+0.92/14 17s} 29. O-O {37s}
Bxe5 {+0.95/14 20s} 30. fxe5 {37s} Rxe5 {+0.91/15 40s} 31. Rd8+ {37s}
Kh7 {+0.89/14 15s} 32. Nd4 {37s} Re4 {+1.34/14 37s} 33. f4 {37s}
Re3 {+0.85/13 16s} 34. Rc1 {37s} g6 {+0.88/13 18s} 35. Kf2 {37s}
Re4 {+0.76/14 19s} 36. Kg3 {37s} Ra8 {+0.73/13 9.8s} 37. Rf8 {37s}
a5 {+0.73/13 9.3s} 38. Rf7+ {37s} Kg8 {+0.40/15 12s} 39. Rc7 {37s}
Re8 {+0.59/14 15s} 40. Rg1 {35s} Kh8 {+0.53/14 31s} 41. Kh2 {33s}
Ra6 {-0.16/16 41s} 42. Nf3 {33s} Re2+ {-0.05/17 84s} 43. Rg2 {33s}
Rxg2+ {0.00/16 50s} 44. Kxg2 {33s} Bf5 {+0.21/15 78s} 45. Rxb7 {33s}
Bc2 {+0.17/14 53s} 46. Rb8+ {33s} Kh7 {+0.17/14 68s} 47. Rb7+ {33s}
Kg8 {+0.19/15 83s} 48. Rb8+ {33s} Kg7 {+0.18/14 46s} 49. Ne5 {33s}
Bxa4 {+0.19/14 60s} 50. Rb7+ {33s} Kf8 {+0.19/13 17s} 51. Rb8+ {33s}
Be8 {+0.25/12 12s} 52. c4 {33s} Ke7 {+0.28/12 9.3s} 53. c5 {33s}
Re6 {+0.30/12 11s} 54. Kh3 {33s} a4 {+0.30/13 12s} 55. Rb7+ {33s}
Kd8 {+0.30/14 23s} 56. Kg4 {33s} Rf6 {+0.30/13 8.7s} 57. Kg3 {33s}
h5 {+0.30/12 15s} 58. Rb8+ {33s} Ke7 {0.00/14 21s} 59. Rb7+ {33s}
Kd8 {0.00/14 13s} 60. Rb8+ {33s} Ke7 {0.00/15 30s} 61. Ra8 {33s}
Re6 {+0.30/13 10s} 62. Ra7+ {33s} Kd8 {+0.30/14 16s} 63. Kf2 {33s}
Kc8 {+0.30/14 19s} 64. Kg2 {33s} Kb8 {+0.30/14 12s} 65. Ra5 {33s}
Kb7 {+0.30/14 12s} 66. Kf2 {33s} Kc7 {+0.30/14 20s} 67. Ra7+ {33s}
Kb8 {+0.30/15 9.1s} 68. Ra5 {33s} Kb7 {+0.30/14 8.8s} 69. Nc4 {33s}
Kc7 {+0.30/14 23s} 70. Ra8 {33s} Bc6 {+0.30/14 18s} 71. Ra7+ {33s}
Kb8 {+0.33/14 26s} 72. Rf7 {33s} Bb5 {+0.51/13 17s} 73. Nd6 {33s}
Bd3 {+0.35/13 9.6s} 74. Rb7+ {33s} Ka8 {+0.37/15 15s} 75. Rb2 {33s}
a3 {+0.38/15 20s} 76. Rb3 {33s} Re2+ {+0.57/15 14s} 77. Kf3 {33s}
a2 {+0.57/15 18s} 78. Ra3+ {33s} Kb8 {+0.60/14 14s} 79. Ra5 {33s}
Rb2 {+0.63/13 14s} 80. Ke3 {32s} Bc2 {+0.65/13 22s} 81. Ra6 {33s}
Bb3 {+0.80/15 69s} 82. Rb6+ {33s} Kc7 {+1.02/18 289s} 83. Nb5+ {33s}
Kd8 {+3.66/17 56s} 84. Ra6 {33s} Rb1 {+3.75/15 66s} 85. Ra8+ {33s}
Ke7 {+3.94/16 39s} 86. Ra7+ {33s} Kf6 {+3.96/16 65s} 87. c6 {33s}
a1=R {+3.99/14 39s} 88. Rxa1 {33s} Rxa1 {+4.87/14 48s} 89. c7 {33s}
Be6 {+5.18/14 62s} 90. Nc3 {33s} Ke7 {+5.44/14 62s} 91. Nb5 {33s}
Rc1 {+5.44/13 55s} 92. Kd4 {33s} Bd7 {+5.54/13 31s} 93. Nc3 {33s}
Kd6 {+5.57/14 39s} 94. c8=Q {33s} Bxc8 {+6.31/15 56s} 95. Ne4+ {33s}
Ke7 {+6.34/14 71s} 96. Nc3 {33s} Rh1 {+6.36/13 34s} 97. Nd5+ {33s}
Kf7 {+6.58/13 29s} 98. Nc3 {33s} Bd7 {+6.53/13 56s} 99. Ne4 {33s}
Rxh4 {+6.60/13 40s} 100. Ke5 {33s} Rh1 {+6.66/12 5.8s} 101. Nd6+ {33s}
Ke7 {+6.72/12 11s} 102. Nc4 {33s} Re1+ {+7.07/11 6.5s} 103. Kd4 {33s}
h4 {+7.55/11 6.5s} 104. Nd2 {33s} h3 {+8.32/11 6.5s} 105. Nf3 {33s}
Bg4 {+9.49/12 14s} 106. Nh2 {33s} Bh5 {+10.02/12 5.4s} 107. Kd5 {33s}
Rh1 {+13.40/13 5.8s} 108. f5 {33s} Rxh2 {+17.50/13 7.6s} 109. fxg6 {33s}
Bxg6 {+17.52/12 8.1s} 110. Ke5 {33s} Rd2 {+21474824.17/12 6.6s} 111. Kf4 {33s}
h2 {+21474824.17/12 6.3s} 112. Ke3 {9.5s} Ra2 {+21474824.17/11 7.5s}
113. Kd4 {0.72s} Rc2 {+21474824.17/10 5.7s} 114. Ke5 h1=Q {+21474824.17/11 13s}
115. Kf4 Ra2 {+21474824.17/10 28s} 116. Kg5 Qh7 {+21474824.17/9 5.4s} 117. Kg4
Qh6 {+21474824.15/9 5.6s} 118. Kf3 Qc1 {+21474824.17/9 6.5s} 119. Kg4
Qe3 {+21474824.17/9 7.1s} 120. Kh4 Qf4+ {+21474824.17/9 6.0s} 121. Kh3
Qf1+ {+21474824.17/11 95s} 122. Kh4 Qf5 {+21474824.17/10 51s} 123. Kg3
Qh5 {+21474824.15/10 44s} 124. Kf4 Rg2 {+21474824.15/10 38s} 125. Ke3
Rc2 {+21474824.15/10 33s} 126. Kf4 Qd1 {+21474824.15/10 68s} 127. Kg3
Bh7 {+21474824.15/10 38s} 128. Kf4 Bd3 {+21474824.15/10 34s} 129. Ke3
Qe2+ {+21474824.15/10 29s} 130. Kf4 Qg2 {+21474824.15/10 26s} 131. Ke5
Qh3 {+21474824.15/10 26s} 132. Kd4 Bg6 {+21474824.15/10 25s} 133. Ke5
Qf3 {+21474824.15/10 24s} 134. Kd4 Bd3 {+21474824.15/10 51s} 135. Ke5
Qh5+ {+21474824.15/11 116s} 136. Kf4 Qe2 {+21474824.15/11 126s} 137. Kg5
Qe1 {+21474824.15/11 145s} 138. Kf4 Qe4+ {+21474824.15/11 117s} 139. Kg5
Qe6 {+21474824.15/11 92s} 140. Kh5 {76s}
Kd7 {+21474824.15/10 17s, White makes an illegal move: 0000} 0-1
TheBlackPlague commented 2 years ago

https://github.com/TheBlackPlague/StockNemo/pull/10 - I am developing my own chess engine, StockNemo. Is the lack of ELO on Apollo's part because of that? StockNemo shouldn't be 2K ELO right now (AB-Search, MVVLVA/Promotion Move Ordering, Mate Distance Pruning, Draw Pruning, Transposition Table, Material + PSQT Evaluation, QSearch, Null Move Pruning) ... what are your thoughts?