RZulu54 / ChessBrainVB

Chess AI engine with GUI for Excel / Word VBA - plus VB6 (Visual Basic 6) edition as UCI/Winboard/SMP engine (ELO 3000)
26 stars 4 forks source link

Why Fritz does not understand it #8

Open SzotsGabor opened 8 months ago

SzotsGabor commented 8 months ago

Hello Roger,

Just a wild guess. When I run v4.00 using InBetween, this is what I see upon typing uci:

ChessBrainVB by Roger Zuehlsdorf uci

id name ChessBrainVB V4.00

id author Roger Zuehlsdorf, Germany

option name Threads type spin default 1 min 1 max 64

option name Hash type spin default 128 min 1 max 1400

option name Clear Hash type button

uciok

Maybe those blank lines are responsible for the problem.

Gabor Szots CCRL testing group

BTW, does it still support WinBoard?

RZulu54 commented 8 months ago

Thanks for thr hint, i will check it. Winboard is still supported.

SzotsGabor commented 8 months ago

To answer my own question, it certainly does. I have played a match between ChessBrainVB 4.00 WB and UCI versions under the Cute Chess GUI. These were the settings I used: WB engine set to cores=1, memory=320. UCI engine set to Threads=1, Hash=256. The relevant part of the ChessBrainVB.ini file was this: [_Engine]

; if not winboard path set: for ARENA GUI use XBOARD Mode XBOARD_MODE=1 ; in winbord mode show PV line without extra character like x ! WB_PV_IN_UCI=0

; Opening book, empty entry for no book or rename file ( use ARENA main book for better results ) OPENING_BOOK= ;OPENING_BOOK= ;OPENING_BOOK=CB_BOOK.TXT ; if no book above is found then use a small dummy book for fun (1=aktive, 0 = off, empty: OfficeMode=1, UCI/WB=0) USE_INTERNAL_BOOK=0 ;USE_INTERNAL_BOOK=1 ;USE_INTERNAL_BOOK=0

; set number of threads (max 8); 0 or 1: normal single thread, 2-8: multiple processes of EXE running ; Winboard "cores" command overrides this setting if cores value > THREADS (UCI setting overrides too ) THREADS=1 ; Threads send from GUI ignored if set THREADS_IGNORE_GUI=0 ;THREADS_IGNORE_GUI=1

; Hash size in MB. (31 bytes per entry) (UCI/WB settings overrides if higher) ; max 1400 MB HASHSIZE=256 ; Hash used value will be overwritten by main task to communicate with helper threads HASH_USED=256 ; Hash size send from GUI ignored if set HASHSIZE_IGNORE_GUI=0 ;HASHSIZE_IGNORE_GUI=1

; Verify Hash reads to handle hash collisions, slows down engine 5%, but avoids some bad moves HASH_VERIFY=1

; Overhead for move communication to GUI and start/stop thinking in milliseconds (more threads may need more? 1000ms) ; recommended for ARENA: 800ms, for ChessGUI 1000ms, for SMP 1500ms MOVEOVERHEAD=800

; Contempt value: draw score in centipawns(100= 1Pawn) from engine view. Against better engine set positive value CONTEMPT=0

; UCI/WB-Mode:SYZYGY ; Office(EXCEL): Online probe ): Enabled endgame tablebase access: 0= disabled, 1 = enabled. EGTB_ENABLED=0 ;EGTB_ENABLED=0

; Syzygy endgame tablebases ; PATH = path for Syzygy files ( if path is empty then programs sets EGTB_ENABLED=0 ) ; MAX_PIECES = max piece count for table base probe (3,4,5,6) ; MAX_PLY = tb access first first x plies only (slow access): 1=root ; UCI GUI may overwrite this settings; winboard uses this settings here

;TB_SYZYGY_PATH="C:\Chess\TB\Syzygy\Syzygy 3-4-5" TB_SYZYGY_PATH="F:\Sakk\syzygy" TB_SYZYGY_MAX_PIECES=6 TB_SYZYGY_MAXPLY=3

Under these conditions the WB engine beat the UCI engine +65-8=27 (100 games). And what surprised me, UCI lost all its black games.

I would not want to make a mistake. Can you explain the above?

EDIT: It seems to me Cute Chess does something weird. I don't know yet what. I am just watching them play and it seems to me that the UCI version plays slower when black. TC is 30s+0.2s.

RZulu54 commented 8 months ago

Interesting, I never tested with winboard for several years. The INI looks Ok. May be a problem with UCi search output slowing down or the short time controls are handled different. My tests are all done with ARENA GUI, reaching about 150k nodes in midgame. I will try it with Cute Chess, but I have no time until next year

RZulu54 commented 8 months ago

New release 4.02 should fix the bad games with UCI against winboard. There are still differences in NPS because in winboard this is calculated by the GUI.

The Fritz problem is still not clear. Extra line feeds are not the reason. Tests show, that the ChessBrainVB.exe is not opened - the first code line is never reached when installing the engine. Workaround is still InBetween.exe.

SzotsGabor commented 8 months ago

Thank you Roger.

In my tests I used Arena, not Cute Chess, so I think the UCI problem had no impact. v4.00 is already on the blitz list and it shows a 80 Elo improvement, exactly what you expected.

SzotsGabor commented 8 months ago

As soon as I unpacked it, v4.02 was quarantined by Microsoft Defender. Wacapew virus detected. I guess it's a false alarm and I enabled it but it is strange that Defender had no complaints about v4.00.

RZulu54 commented 8 months ago

False positive are very common for my program because it calls the exe again for the multi core case. Best way to be sure is checking the file at virustotal.com I got 2 false positives for V4.02 there - but the main virus scanners found no virus.

SzotsGabor commented 8 months ago

Best way to be sure is checking the file at virustotal.com I got 2 false positives for V4.02 there - but the main virus scanners found no virus.

That's exactly what I have done and the result was the same as yours. Thanks again.

SzotsGabor commented 8 months ago

It seems to me that the problem with the UCI version playing slower as black under Cute Chess still persists. By only watching their games convinces me that it is so. I attach the PGN which Cute Chess created. And here is the summary, also by Cute Chess.

Score of ChessBrainVB 4.02 UCI vs ChessBrainVB 4.02 WB: 3 - 25 - 12 [0.225] ... ChessBrainVB 4.02 UCI playing White: 3 - 5 - 12 [0.450] 20 ... ChessBrainVB 4.02 UCI playing Black: 0 - 20 - 0 [0.000] 20 ... White vs Black: 23 - 5 - 12 [0.725] 40 Elo difference: -214.8 +/- 102.6, LOS: 0.0 %, DrawRatio: 30.0 % SPRT: llr 0 (0.0%), lbound -inf, ubound inf 41 of 100 games finished.

Player: ChessBrainVB 4.02 UCI "Draw by 3-fold repetition": 9 "Draw by fifty moves rule": 1 "Draw by insufficient mating material": 2 "Loss: Black disconnects": 5 "Loss: Black loses on time": 13 "Loss: Black makes an illegal move: d1d5": 1 "Loss: Black makes an illegal move: f4h6": 1 "Loss: Black mates": 4 "Loss: White disconnects": 1 "No result": 1 "Win: White mates": 3 Player: ChessBrainVB 4.02 WB "Draw by 3-fold repetition": 9 "Draw by fifty moves rule": 1 "Draw by insufficient mating material": 2 "Loss: White mates": 3 "No result": 1 "Win: Black disconnects": 5 "Win: Black loses on time": 13 "Win: Black makes an illegal move: d1d5": 1 "Win: Black makes an illegal move: f4h6": 1 "Win: Black mates": 4 "Win: White disconnects": 1

For further help I am at your disposal. ChessBrainVB 4.02 - Jan 2.txt

RZulu54 commented 8 months ago

Please see version 4.03 - CuteChess seems to work correct now with UCI. No changes for winboard playing strength.

Changes:

SzotsGabor commented 8 months ago

Please see version 4.03 - CuteChess seems to work correct now with UCI. No changes for winboard playing strength.

Changes:

* changes to support UCI for CuteChess GUI (which sends additonal UCI "isready" before "go")

* optimized UCI time management for very short time controls and increments less then a second

Thank you for your efforts Roger. Here is a small match under Cute Chess which shows the problem has gone:

Score of ChessBrainVB 4.03 UCI vs ChessBrainVB 4.03 WB: 9 - 6 - 17 [0.547] ... ChessBrainVB 4.03 UCI playing White: 6 - 4 - 6 [0.563] 16 ... ChessBrainVB 4.03 UCI playing Black: 3 - 2 - 11 [0.531] 16 ... White vs Black: 8 - 7 - 17 [0.516] 32 Elo difference: 32.7 +/- 83.9, LOS: 78.1 %, DrawRatio: 53.1 % SPRT: llr 0 (0.0%), lbound -inf, ubound inf 32 of 32 games finished.

Player: ChessBrainVB 4.03 UCI "Draw by 3-fold repetition": 10 "Draw by fifty moves rule": 1 "Draw by insufficient mating material": 6 "Loss: Black mates": 4 "Loss: White mates": 2 "Win: Black mates": 3 "Win: White mates": 6 Player: ChessBrainVB 4.03 WB "Draw by 3-fold repetition": 10 "Draw by fifty moves rule": 1 "Draw by insufficient mating material": 6 "Loss: Black mates": 3 "Loss: White mates": 6 "Win: Black mates": 4 "Win: White mates": 2