Re: On-line engine blitz tournament September

Discussion of chess software programming and technical issues.

Moderator: Ras

Modern Times
Posts: 3972
Joined: Thu Jun 07, 2012 11:02 pm

Re: On-line engine blitz tournament September

Post by Modern Times »

Happy to see that I'm not going mad and you guys have replicated the problem!
Joost Buijs
Posts: 1736
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: On-line engine blitz tournament September

Post by Joost Buijs »

Modern Times wrote: ↑Thu Oct 15, 2026 10:05 pm Happy to see that I'm not going mad and you guys have replicated the problem!
I saw it happen once in the game against Cheng, I totally turned off timeseal [G] pings now because we saw in the server log that the problem occurs when a ping is being send right before the message that Winboard seems to miss. The old server didn't ping, so this can be the reason that we didn't had this problem in the past.
Bart Weststrate
Posts: 98
Joined: Fri Mar 18, 2016 3:34 pm

Re: On-line engine blitz tournament September

Post by Bart Weststrate »

Modern Times wrote: ↑Thu Oct 15, 2026 10:05 pm Happy to see that I'm not going mad and you guys have replicated the problem!
As we speak Selate played 2 long games against PlentyChessRB without any problem. I use a custom interface (build by Claude) which is working ok now. Fixed some quircks with unexpected character for end of line. @Joost also auto-accept is fixed, also was an end of line thingie.

Edit: apllied a filter on the raw input from the server:

Done. Summary of the change in fics_client.py's _read_loop:

- Added a single normalization step — self._buf.replace(b"\r\n", b"\n").replace(b"\n\r", b"\n").replace(b"\r", b"\n") — applied to the whole accumulated buffer right after each chunk arrives, before any line-splitting happens. This collapses every CR/LF variant this server has thrown at us (reversed \n\r, bare \r used as a glue boundary) into one canonical \n. :)
mar
Posts: 3069
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: On-line engine blitz tournament September

Post by mar »

Joost Buijs wrote: ↑Thu Oct 15, 2026 8:33 pm Indeed, now I saw it happen here as well. On the server the game is drawn. We suspect that Winboard has a problem with the time-seal ping, I will add a patch for it tomorrow morning.
cool!
hgm pls fix :D
Modern Times
Posts: 3972
Joined: Thu Jun 07, 2012 11:02 pm

Re: On-line engine blitz tournament September

Post by Modern Times »

I've played maybe 20 games now after the server timeseal fix went in without any problems, so I think things are OK now unless that affects other GUIs !
User avatar
jshriver
Posts: 1424
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Re: On-line engine blitz tournament September

Post by jshriver »

I will be releasing icsdrone-rs 2.1.11 shortly. It's a mild bug fix. It sends kibitz as a kibitz command rather than a whisper. This way the opponent can see it not just observers.

Been running it off/on all month and even with timeseal v1 implemented not having any more issues. Recommend trying if having winboard issues. Doesn't hurt and it's another option out there. Why I developed it :)

-Josh

PS. Ray, just played against PlentyChessRB and worked well. Good luck tomorrow everyone.
Modern Times
Posts: 3972
Joined: Thu Jun 07, 2012 11:02 pm

Re: On-line engine blitz tournament September

Post by Modern Times »

No idea how to install or use your Josh, it looks complex. Anyway as you say, the server change has fixed the Winboard issues, it works perfectly now as it did before on the old server.
User avatar
jshriver
Posts: 1424
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Re: On-line engine blitz tournament September

Post by jshriver »

Modern Times wrote: ↑Fri Oct 16, 2026 11:52 pm No idea how to install or use your Josh, it looks complex. Anyway as you say, the server change has fixed the Winboard issues, it works perfectly now as it did before on the old server.
No problem, can just download from here https://github.com/jshriver/icsdrone-rs ... ag/v2.2.11

Copy the example config.json and edit it to your engine. Primarily your engine binary, username, password, and polyglot book if you have one. I'd recommend setting the GUI to Yes. From there it's should be relatively easy and can sit back and watch or issue manual matches as you wish. If you have any questions feel free to ask. I will be there tomorrow as well participating with my engine.

-Josh
Image
User avatar
flok
Posts: 634
Joined: Tue Jul 03, 2018 10:19 am
Full name: Folkert van Heusden

Re: On-line engine blitz tournament September

Post by flok »

jshriver wrote: ↑Sat Oct 17, 2026 12:12 am
Modern Times wrote: ↑Fri Oct 16, 2026 11:52 pm No idea how to install or use your Josh, it looks complex. Anyway as you say, the server change has fixed the Winboard issues, it works perfectly now as it did before on the old server.
No problem, can just download from here https://github.com/jshriver/icsdrone-rs ... ag/v2.2.11

Copy the example config.json and edit it to your engine. Primarily your engine binary, username, password, and polyglot book if you have one. I'd recommend setting the GUI to Yes. From there it's should be relatively easy and can sit back and watch or issue manual matches as you wish. If you have any questions feel free to ask. I will be there tomorrow as well participating with my engine.

-Josh
Thanks a lot for your work! Am very happy with the result.
Bart Weststrate
Posts: 98
Joined: Fri Mar 18, 2016 3:34 pm

Re: On-line engine blitz tournament September

Post by Bart Weststrate »

jshriver wrote: ↑Sat Oct 17, 2026 12:12 am
Modern Times wrote: ↑Fri Oct 16, 2026 11:52 pm No idea how to install or use your Josh, it looks complex. Anyway as you say, the server change has fixed the Winboard issues, it works perfectly now as it did before on the old server.
No problem, can just download from here https://github.com/jshriver/icsdrone-rs ... ag/v2.2.11

Copy the example config.json and edit it to your engine. Primarily your engine binary, username, password, and polyglot book if you have one. I'd recommend setting the GUI to Yes. From there it's should be relatively easy and can sit back and watch or issue manual matches as you wish. If you have any questions feel free to ask. I will be there tomorrow as well participating with my engine.

-Josh
Josh i installed 2.2.17. Nice, lot's of bugfixing :)

I (and Claude) found one polyglot bookbug (no random is not a bug but a feature i like) :

Claude:
Confirmed. I've found the bug and fully answered the randomization question. Let me save this to memory before reporting.

Wrote 2 memories

Findings

Randomization: there isn't any. src/book.rs calls polyglot-book-rs's get_best_move_from_fen, which deterministically returns the single highest-weighted move for the exact position — every time, no RNG. (The polyglot_random.rs file in that crate is just the standard Zobrist constants used for hashing positions, not move choice — easy to confuse with "book random" but it's unrelated.) This is confirmed empirically too: I pulled C:\0_icsdrone\games.pgn (4 games) and games 1 & 3 — both Selate as White vs atomGoldbar — play the identical first 9 book moves, move for move: 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 e6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O Re8 9.Bd2 h6.

But I did find a real bug, and it exactly explains the "in and out of book" pattern you're seeing in the pasted games. Style12::to_fen() in src/board.rs:208-214:

let ep = if self.double_push_file >= 0 && self.double_push_file <= 7 {
let file = (b'a' + self.double_push_file as u8) as char;
let rank = if self.to_move_white { 6 } else { 3 };
format!("{file}{rank}")

It sets the FEN en-passant square whenever FICS reports "a double pawn push just happened" — with no check that the side to move actually has a pawn adjacent to capture it. Real Polyglot hashing only counts the en-passant file if a capture is actually legal; this code counts it unconditionally. Since a double push with no adjacent enemy pawn is the normal case in the opening, the computed Polyglot hash is wrong for exactly one ply after almost every double pawn push — causing the book lookup to spuriously miss a position that's almost certainly covered, then "heal" itself the very next move once the en-passant flag clears.

This matches all 4 games with zero exceptions:
- Games 1/3: White's 2.c4 (right after Black's 1...d5) isn't book — everything else is.
- Games 2/4: Black's reply to 1.e4 and to 2.d4 aren't book, but 3...Nf6 and 4...Nfd7 are; then 5...c5 (right after White's 5.f4 double push) drops out again.

So: your book is working, deterministic, and almost certainly has these lines — it's just losing them for a single ply every time either side double-pushes a pawn. I wrote this up in memory but haven't touched the code. Want me to fix to_fen() to check adjacency before including the en-passant square?
-------------------------------------------------------------

All and all it's much better then the previous versions! I used v2.1.5. before this one.

Claude also added a floating in out all communication window. I can provide the source of that if you like it.