Let me see if I understand this.hgm wrote: In fact this would be pretty easy. UCI2WB sets a string variable to "normal,xiangqi" or "shogi" as the protocol flag on its command line dictates, and a flag when it encounters UCI_Chess960. I could print both in a single printf when receiving 'uciok' rather than just the one requested by the frc flag. But all UCI 960 engines would then get the Xinagqi button in the New Variant dialog activated. There is unfortunately no way a UCI engine specifies it does NOT play Xiangqi, but having an option UCI_Chess960 is a very strong indication that it doesn't. Except for Sjaak...
If UCI_Chess960 is set, you always send "normal,chess960".
In UCI or UCCI mode, you send "normal,xiangqi".
In USI mode you send "shogi,5x5+5_shogi".
I thought there were also Shogi engines that use UCI and so would need to have "shogi" listed under UCI? Or am I remembering this wrong?
Yes, I guess that makes sense. I now don't print it unless in actual UCI mode.Perhaps the logical solution would be to not print UCI_Chess960 (or to print USI_Chess960) when Sjaak is running in USI mode (i.e. afterreceiving the 'usi' command).
As options go it's actually a rather silly one. The only real purpose of the option seems to be that its absence indicates that the engine doesn't play 960, and ticking it changes the move encoding from e1g1/e1c1 to KxR.
If you support more than one variant, listing them with checkboxes isn't exactly the best way to list them.
That would be the day... Unfortunately USI has almost become synonymous with non-compliant. And UCCI is not much better in that respect.Well, in that case they're non-compliant* and should be fixed!
Yes, it does. It has an "input_waiting()" function that has a UNIX and a Windows version under an #ifdef. Comments at the top suggest that I originally adapted it from Stockfish, but nearly identical versions exist in a couple of other programs.How does Sjaak work in Windows anyway? Does it use Windows API callslike PeekNamedPipe under an #ifdef?I recently made a change in Jazz so it disables the board and prompt if it detects that stdin is not a terminal; I could just plug that code into SjaakII as well and get rid of the problem that way. The only downside is that I don't know how to do that in Windows.
No, but it would annoy me.You could print 'id name' in front of it; that wouldnot be very confusing to human readers.
I made it just not print even that if you start it in UxI mode (they're all the same internally).
It is much worse than that. Tord's website no longer exists. There still is a description at http://shogi.typepad.jp/brainstorm/2007 ... 1a0_1.html , which search machines usually does not find. But on the Shogidogoro website they posted a mutilated version of it in Japanese, ( http://www.geocities.jp/shogidokoro/usi.html ), ignoring anything Shogidogoro does not implement (like sending 'isready'...).[/quote]* At least according to UCI protocol; it's surprisingly hard to find information on USI other than "Tord made it based on UCI" and of course I didn't bother to keep a link to his description handy. I'm sure I have it somewhere if I really need it.
Ok, that is indeed bad. It's a shame the website is no longer up, I remember it had some neat stuff. Fortunately I'm paranoid about websites disappearing and I should have downloaded copies somewhere.
Archive.org also has the USI stuff though, https://web.archive.org/web/20150326001 ... i/usi.html
