Page 1 of 2

ChessBase and UCI

Posted: Wed Dec 05, 2018 2:33 pm
by stegemma
I've implemented the UCI protocol in Sabrina and Drago, to help a friend to use it on ChessBase. It seems that ChessBase doesn't recognizes my engine. I haven't ChessBase so I can't know what's wrong. Any hint on what and how to check to make Sabrina/Drago works in ChessBase? With Arena I have no problem, both for UCI and xBoard ptotocol.

Re: ChessBase and UCI

Posted: Thu Dec 06, 2018 8:25 pm
by elcabesa
Hi stefano,
where can I download your UCI enabled Sabrina/drago to give it a try?

Re: ChessBase and UCI

Posted: Fri Dec 07, 2018 12:37 pm
by stegemma
It is not finished but you can download Drago here:

https://www.linformatica.com/software/D ... 2.beta.zip

It starts in "Drago mode" but you can use this command line parameters:

Code: Select all

-protocol=uci/xboard -engine=drago/sabrina

sample:

drago -protocol=uci -engine=drago
drago -protocol=uci -engine=sabrina
In console, you can switch between both engines:

Code: Select all

\drago
\sabrina
I've haven't test Sabrina in UCI mode (only Drago, with Arena) but it must works, because the protocol interface is the same for both engines.

Warning: this a "work in progress", so please notice me about any problem

Re: ChessBase and UCI

Posted: Fri Dec 07, 2018 4:20 pm
by elcabesa
I have found a problem with your interface, but I don't think this is the problem that make it not work with chessbase.

this is the output of your engine:
info string Drago (c) 1993-2018 Stefano Gemma
info string PopCount enabled
uci
id name Drago
uciok
isready
readyok
go depth 5
info string moves 0/0 - time 7498/300000 ms
info string 0 nodes - 7516 ms 0 Knps
bestmove g1f3
ucinewgame
go depth 2
info string moves 0/0 - time 7310/292484 ms
info string 0 nodes - 7328 ms 0 Knps
bestmove f7f5
go depth 2
info string moves 0/0 - time 7127/285156 ms
info string 0 nodes - 7156 ms 0 Knps
bestmove b1c3
go depth 2
info string moves 0/0 - time 6948/278000 ms
info string 0 nodes - 6969 ms 0 Knps
bestmove c7c5
every time you send the go command the engine do the search, and then advance the position like in xboard protocol. In uci, the engine shall always search on the position asked by the interface. if I send 10 time the go command, the engine shall search 10 times the same position. it has no knowledge of the game, it's stateless.

Re: ChessBase and UCI

Posted: Fri Dec 07, 2018 5:42 pm
by stegemma
Ok, I'll correct soon. There is already a correction (but not for this issue) so you can update the engine, dovwnloading the same file.

Thanks for your time.

Re: ChessBase and UCI

Posted: Fri Dec 07, 2018 8:36 pm
by stegemma
The current release of Drago handles stateless the "go" command and takes care of the "depth" option (in Drago engine only). Not all the UCI options are implemented yet but the most important are.

Still in beta at the same link as before:

https://www.linformatica.com/software/D ... 2.beta.zip

Re: ChessBase and UCI

Posted: Fri Dec 07, 2018 10:07 pm
by hgm
elcabesa wrote: Fri Dec 07, 2018 4:20 pmif I send 10 time the go command, the engine shall search 10 times the same position. it has no knowledge of the game, it's stateless.
The UCI specs do not require that. They specify that each 'go' command should be preceded by a position setup, and merely leave it undefined what would happen if you do not do that. So any behavior (including CECP-like) is as good as any other.

Re: ChessBase and UCI

Posted: Fri Dec 07, 2018 11:27 pm
by stegemma
Another thing that is not clear to me is the "go" command with "depth". What about having depth and wtime/btime and so on? Should I limit to both depth and time or ignore time and search up to the required depth? Now my engines searches up to the required depth, ignoring time but maybe the first behaviour is more logic.

Re: ChessBase and UCI

Posted: Sat Dec 08, 2018 12:56 am
by Ras
stegemma wrote: Fri Dec 07, 2018 11:27 pmAnother thing that is not clear to me is the "go" command with "depth".
I just take the "whatever hits the limit first" approach.

Re: ChessBase and UCI

Posted: Sat Dec 08, 2018 9:53 am
by Guenther
stegemma wrote: Fri Dec 07, 2018 8:36 pm The current release of Drago handles stateless the "go" command and takes care of the "depth" option (in Drago engine only). Not all the UCI options are implemented yet but the most important are.

Still in beta at the same link as before:

https://www.linformatica.com/software/D ... 2.beta.zip
It seems Drago is compiled with popcount?. At least it does not run here on older 64-bit hardware.