UCCI is the protocol used by some of the strongest XiangQi engines in the World. It seems it is only described in Chinese, though. But fortunately I found a GPLd UCCI2QH adapter, which converts UCCI engines to Qianhong plugins. Now QH protocol is described in English, and extremely simple (just some 5 commands, or so). So I was able to hack UCCI2QH to make it recognize the WB-protocol commands in stead of the corresponding QH commands. I only had to add some time accounting (QH protocol does not support anything like the WB 'time' command) to get a working UCCI2WB command, practically without having to know anything about UCCI protocol at all!
I tested it with Elephant Eye 3.1 (which is the major engine of Huang Chen, who was also the author of the UCCI2QH adapter). It is a very strong open-source engine. (The XiangQi equivalent of Fruit?) Other UCCI engines can be found at http://www.elephantbase.net (a site which crashes my Internet explorer, but could be viewed without problems with FireFox under Ubuntu).
Thanks HG. I was about to ask you about it when you released your XQWlite . Now i'll have something to keep myself busy these days. I'm still learning the game though! Great work!
Bugfix: (needed because not all UCCI engines want to have the time in msec) now avalable at the same link. I tested it with a lot of UCCI engines I downloaded from http://www.elephantbase.net/league/enginelist.htm, and most seem to work without problems:
engine result
3DChess OK
Anita OK
Binghewusi OK
BitStronger seems to ignore clock, is ~2x too slow at 40/1
Blcx OK
Coony OK
EyChesU Does get stuck after some moves
Hice OK
Jiaolong OK
Jupiter OK
King first moves fast, then very slow, forfeits in second session without moving
Kou OK
Lily Seems to use no CPU time (swapping?)
Mars completely dead at UCCI level
mrsd is the Ki11egg Qianghong plugin with QH2UCCI adapter
NymphChess OK
QStar seems to ignore clock, is ~2x too slow at 40/1 (does not print PV)
Sixteener Seems to move instantly (no PV)
Swallow OK
THT OK
TLXJ OK
XQ Cyclone OK
XQ Spirit OK
Yssy OK
Sorry, the version I posted was broken, as in implementing the WB post and nopost commands, I duplicated the code for the time command, and then modified the wrong line. The result was that the function of the time and post command were interchanged, so the time was no longer updated, and all UCCI engines forfeited on time. I discovered and fixed this almost imemdiately, but due to a mistake (it wa 1 a.m. by then) I forgot to rezip before I uploaded again, so up till now the broken version remained on my website.
I uploaded the correct version now (same link).
A 40/1 test tourney I have been running overnight with 15 UCCI and 3 WB engines: