Stockfish Crazyhouse Engine

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

Moderators: hgm, Rebel, chrisw

styx
Posts: 338
Joined: Tue Mar 13, 2012 9:59 pm
Location: Germany

Re: Stockfish Crazyhouse Engine

Post by styx »

That is good news. Thank you! Unfortunately I am using Linux. So I will wait for the commit and compile it by myself :)
User avatar
Guenther
Posts: 4622
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Stockfish Crazyhouse Engine

Post by Guenther »

hgm wrote:You will always HAVE a copy of UCI2WB, as it has been a standard component of the WinBoard install for ages. Unfortunately, due to an oversight, the WInBoard 4.8.0 install is not pre-configured to use it, but uses the (now obsolete) UCCI2WB instead. In future relases of WinBoard I will correct this. For now you will have to correct it yourself, by running WinBoard once with as 'Additional options':

-uxiAdapter {UCI2WB -%variant %fcp %fd}

After that WinBoard will automatically invoke the UCI2WB.exe in the WinBoard folder whenever you tick the UCCI/USI checkbox in the Load Engine dialog when installing the engine. So the only difference with install of normal UCI engines is that you have to tick UCCI/USI instead of UCI. (The latter would invoke Polyglot.)

Now the second problem is that the UCI2WB that came with WinBoard 4.8.0 does not support the UCI_Variant option, which was invented after its release. I just uploaded an updated UCI2WB.exe, which does support this. You can download it from http://hgm.nubati.net/UCI2WB.exe , and should put it in the WinBoard folder (where winboard.exe is) replacing the existing one.

After that UCI variant engines should work fully transparently, provided you tick UCCI/USI instead of UCI. (Obviously that checkbox will have to be renamed as well in future WinBoard versions.) The engine's line in the engine list would look something like

"NICKNAME" -fcp "stockfish.exe" -fd "STOCKFISH/ZH/FOLDER" -fUCCI

if you installed through the dialog. (With possibly an additional -variant crazyhouse if you ticked 'Force current variant with this engine'.)

Thanks for the quick work HG! Something seems wrong though now?
Either I missed something or there is a bug.

This time for testing I used exactly the steps you described.

My WB.ini entries look this now:

Code: Select all

/uxiAdapter="UCI2WB -%variant %fcp %fd"

Code: Select all

"StockfishZH_8-64" -fcp "stockfishZH_8-64.exe" -fd "C:\Engines\Crazyhouse\StockfishZH_8-64" -fUCCI -variant crazyhouse
But now it appears as if SFZH would not support crazyhouse despite it does? Feature variants does not show crazyhouse anymore?

Code: Select all

recognized 'crazyhouse' (-1) as variant crazyhouse
recognized 'crazyhouse' (-1) as variant crazyhouse
shuffleOpenings = 0
Version: WinBoard 4.8.0b + stockfishZH_8-64
Reset(1, 0) from gameMode 0
recognized 'crazyhouse' (-1) as variant crazyhouse
GameEnds(0, (null), 2)
shuffleOpenings = 0
StartChildProcess (dir=".") UCI2WB -crazyhouse stockfishZH_8-64.exe C:\Engines\Crazyhouse\StockfishZH_8-64
nice engine proc to 10
710 >first : xboard
protover 2
740 <first &#58; feature variants="normal,xiangqi" setboard=1 usermove=1 debug=1 ping=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
740 >first &#58; accepted variants
740 >first &#58; accepted setboard
740 >first &#58; accepted usermove
740 >first &#58; accepted debug
740 >first &#58; accepted ping
740 >first &#58; accepted reuse
740 >first &#58; accepted exclude
740 >first &#58; accepted pause
740 >first &#58; accepted sigint
740 >first &#58; accepted sigterm
740 >first &#58; accepted done
740 <first &#58; feature option="UCI2WB debug output -check 0"
740 >first &#58; accepted option
740 <first &#58; feature myname="Stockfish 8 64 &#40;UCI2WB&#41;"
740 >first &#58; accepted myname
740 <first &#58; feature option="Debug Log File -string "
750 >first &#58; accepted option
750 <first &#58; feature option="Contempt -spin 0 -100 100"
750 >first &#58; accepted option
750 <first &#58; feature option="Clear Hash -button"
750 >first &#58; accepted option
750 <first &#58; feature option="MultiPV -spin 1 1 500"
750 >first &#58; accepted option
750 <first &#58; feature option="Skill Level -spin 20 0 20"
750 >first &#58; accepted option
750 <first &#58; feature option="Move Overhead -spin 30 0 5000"
750 >first &#58; accepted option
750 <first &#58; feature option="Minimum Thinking Time -spin 20 0 5000"
750 >first &#58; accepted option
750 <first &#58; feature option="Slow Mover -spin 89 10 1000"
750 >first &#58; accepted option
750 <first &#58; feature option="nodestime -spin 0 0 10000"
750 >first &#58; accepted option
750 <first &#58; feature option="UCI_Variant -combo chess /// atomic /// giveaway /// crazyhouse /// horde /// kingofthehill /// racingkings /// relay /// threecheck"
750 >first &#58; accepted option
750 <first &#58; feature option="SyzygyPath -string <empty>"
750 >first &#58; accepted option
750 <first &#58; feature option="SyzygyProbeDepth -spin 1 1 100"
750 >first &#58; accepted option
750 <first &#58; feature option="Syzygy50MoveRule -check 1"
750 >first &#58; accepted option
750 <first &#58; feature option="SyzygyProbeLimit -spin 6 0 6"
750 >first &#58; accepted option
750 <first &#58; feature variants="normal,fischerandom" oocastle=0
750 >first &#58; accepted variants
750 >first &#58; accepted oocastle
750 <first &#58; feature smp=1 memory=1 done=1
750 >first &#58; accepted smp
750 >first &#58; accepted memory
750 >first &#58; accepted done
770 >first &#58; memory 544
770 >first &#58; cores 2
770 >first &#58; new
random
recognized 'normal' (-1&#41; as variant normal
Reset&#40;1, 0&#41; from gameMode 0
recognized 'normal' (-1&#41; as variant normal
GameEnds&#40;0, &#40;null&#41;, 2&#41;
880 >first &#58; quit
shuffleOpenings = 0
StartChildProcess &#40;dir=".") UCI2WB -crazyhouse stockfishZH_8-64.exe C&#58;\Engines\Crazyhouse\StockfishZH_8-64
nice engine proc to 10
1505 >first &#58; xboard
protover 2
1505 >first &#58; option UCI2WB debug output=0
1505 >first &#58; option Debug Log File=
1505 >first &#58; option Contempt=0
1505 >first &#58; option MultiPV=1
1505 >first &#58; option Skill Level=20
1505 >first &#58; option Move Overhead=30
1505 >first &#58; option Minimum Thinking Time=20
1505 >first &#58; option Slow Mover=89
1505 >first &#58; option nodestime=0
1505 >first &#58; option UCI_Variant=chess
BTW a question for the sd section in the WB.ini file. Is it still necessary for backward compatibility (batch etc.)
or obsolete meanwhile, thus it could be removed completely on my side?
(The dialogue for selecting a second program now always points to the fd section)
User avatar
Guenther
Posts: 4622
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Stockfish Crazyhouse Engine

Post by Guenther »

BTW a question for the sd section in the WB.ini file. Is it still necessary for backward compatibility (batch etc.)
or obsolete meanwhile, thus it could be removed completely on my side?
(The dialogue for selecting a second program now always points to the fd section)

Ok the display of the list for the selection dialogue is controlled
by the option below and I guess default is true, but is the sd part
still used internally?

Code: Select all

/singleEngineList=true|false
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Stockfish Crazyhouse Engine

Post by Evert »

hgm wrote: OK, I tried it out, and it turns out the UCI2WB version included with WinBoard reacts to the UCI_Chess960 option that this Stockfish also has, and makes its presence overrule the variant list specified with the -var option, to "normal,fischerandom".
I think we had the same issue not too long ago with SjaakII, but I don't remember what the proposed solution in that case was.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Stockfish Crazyhouse Engine

Post by Evert »

hgm wrote: After that WinBoard will automatically invoke the UCI2WB.exe in the WinBoard folder whenever you tick the UCCI/USI checkbox in the Load Engine dialog when installing the engine. So the only difference with install of normal UCI engines is that you have to tick UCCI/USI instead of UCI. (The latter would invoke Polyglot.)

Now the second problem is that the UCI2WB that came with WinBoard 4.8.0 does not support the UCI_Variant option, which was invented after its release. I just uploaded an updated UCI2WB.exe, which does support this. You can download it from http://hgm.nubati.net/UCI2WB.exe , and should put it in the WinBoard folder (where winboard.exe is) replacing the existing one.

After that UCI variant engines should work fully transparently, provided you tick UCCI/USI instead of UCI. (Obviously that checkbox will have to be renamed as well in future WinBoard versions.)
I forgot, is there a reason to prefer polyglot to UCI2WB? Couldn't the latter be preferred in all cases, which would allow a check box "UCI/USI/UCCI"?
Or two check boxes "UCI/USI/UCCI" and "Use polyglot" to switch between UCI2WB and Polyglot?
User avatar
hgm
Posts: 27874
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Stockfish Crazyhouse Engine

Post by hgm »

As to the /secondChessProgramNames in the ini file:

This depends on the setting of -singleEngineList true|false. I pre-configure that as 'true', which means that the /secondChessProgramNames is completely ignored. There are some situations, though, that it can still be useful. E.g. in the Shogi-variants package there are just two engines, but they are multi-variant, and the combobox for the first engine contains many versions of each, all with different WB options to set the engine and configure WinBoard for a specific variant and display style (variant-specific oriental vs general western). It is then rather inconvenient if that same list is in the second combobox, as for an engine-engine game you would have to be careful to select the same variant in both, or WinBoard would get conflicting settings specifications. So then I just put the plain engines without any WinBoard options in the second list.

As to the UCI2WB problem: from the log I see that this is not the new UCI2WB version I made, because it does export the UCI_Variant option to the GUI in a "feature option=..." command, just like it would do for any engine-defined option. The new version would recognize it as a UCI standard option, and forge it into a "feature variant=..." command instead.

I will investigate what causes the mixup. It could be that I inadvertantly uploaded a wrong version; it could also be that internet caching is giving you the old one, as I uploaded it to the same link.
User avatar
Guenther
Posts: 4622
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Stockfish Crazyhouse Engine

Post by Guenther »

hgm wrote: I will investigate what causes the mixup. It could be that I inadvertantly uploaded a wrong version; it could also be that internet caching is giving you the old one, as I uploaded it to the same link.

Code: Select all

UCI2WB 2.1 by H.G.Muller
styx
Posts: 338
Joined: Tue Mar 13, 2012 9:59 pm
Location: Germany

Re: Stockfish Crazyhouse Engine

Post by styx »

hgm wrote:You will always HAVE a copy of UCI2WB, as it has been a standard component of the WinBoard install for ages. [...]
I searched for it (UCI2WB and UCCI2WB) but it appears to be missing on my Linux Computer. I am using xboard version 4.9.0 which I compiled myself.

When your done, can you make the source available? I downloaded the last one from

http://hgm.nubati.net/cgi-bin/gitweb.cg ... ;a=summary

Thank you for all your efforts :)
User avatar
hgm
Posts: 27874
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Stockfish Crazyhouse Engine

Post by hgm »

Guenther wrote:

Code: Select all

UCI2WB 2.1 by H.G.Muller
OK,my bad. I can only upload to that server from Linux (has something to do with passive mode,which Windows ftp does not seem to support), and I can only get it there by e-mailing it to myself and downloading it from the webmail server. But I already had done that with a UCI2WB.exe before, so that FireFox stored the new UCI2WB.exe in my Downloads directory as UCI2WB(1).exe. And I of course uploaded plain UCI2WB.exe, which was the old one.

Now the new one should be there.
User avatar
hgm
Posts: 27874
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Stockfish Crazyhouse Engine

Post by hgm »

styx wrote:I searched for it (UCI2WB and UCCI2WB) but it appears to be missing on my Linux Computer. I am using xboard version 4.9.0 which I compiled myself.

When your done, can you make the source available?
Sorry, I thought you were using WinBoard. Indeed, in Linux it is not usual to bundle software, and XBoard, Polyglot and UCI2WB are all different packages. Unfortunately the packaging system is reluctant to acknowledge dependency, as the packagers insist that XBoard can also be used without any engines or adapters, as ICS client or game viewer. So Polyglot, UCI2WB and Fairy-Max all have to be installed separately, by hand.

I pushed the source of the new UCI2WB, but not to hgm.nubati.net, as the ssh key of that server seems to have changed, and I still have to figure out how to change my own keys so I can push there again. But I have a backup repository at http://winboard.nl/cgi-bin/gitweb.cgi , and it is there.