Arena autodetection for CECP/XBoard

Discussion of chess software programming and technical issues.

Moderator: Ras

Pi4Chess
Posts: 253
Joined: Mon Nov 16, 2020 12:13 pm
Full name: Manuel Rivera

Re: Arena autodetection for CECP/XBoard

Post by Pi4Chess »

tmokonen wrote: Thu Jan 28, 2021 1:36 am There were a few compiles made by Jim Ablett which integrated Crafty and WB2UCI into one executable, so that Crafty was usable within Chessbase GUIs without requiring a separate adapter. 25.1 is the most recent "UCI" version that I have.
Yeah may be that because i only found windows exe . But i don't remember where.
unserializable
Posts: 65
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: Arena autodetection for CECP/XBoard

Post by unserializable »

I have reluctantly tried out Linux Arena 3.10beta under separate user account on one of my Linux machines -- and answer to my original question:
unserializable wrote: Sun Jan 24, 2021 7:23 pm ... anyone have idea how Arena does the CECP engine autodetection ...
is that Arena (3.10beta for Linux, at least) sends the following bunch of commands at start of the session to 'autodetected' engine:

Code: Select all

xboard
protover 2
uci
isready
and then, probably because UCI specs do not have any specific defined behaviour for engine receiving gibberish ...:
https://www.shredderchess.com/download/div/uci.zip wrote: if the engine or the GUI receives an unknown command or token it should just ignore it and try to
parse the rest of the string in this line.
Examples: "joho debug on\n" should switch the debug mode on given that joho is not defined,
"debug joho on\n" will be undefined however.
... Arena seems to rely on CECP error reporting format "Error (error-comment): the-cmd-that-resulted-in-error" to definitely reject UCI and follow up with CECP commands only:

Monchester 1.0 had leftover from days where it just had console play where it responded with plain 'unrecognized command' without the 'Error' prefix and erred command name suffix. This has been remedied in 1.0-branch and autodetection seems to function now.

Sample session log start with engine type set to autodetect:
Arena 3.10beta

2021-02-14 23:50:38.516**Fast graphics mode ok
2021-02-14 23:50:39.561**----------New game---2021-02-14 23:50:39,561 Sun -------------
2021-02-14 23:50:39.871**Arena Start took: 2689 ms
2021-02-14 23:50:40.695**Loading 1
2021-02-14 23:53:48.457*1*---------------Starting engine 1 Monchester-1.0.1-14-g84db4ed---------------
2021-02-14 23:53:48.473*1*Configured Engine 1 Type: Auto
2021-02-14 23:53:48.478*1*enginedebug:CommandLine: >>nice -1 /home/arena/arena/Engines/Monchester/monchester-1.0.1-14-g84db4ed <<
2021-02-14 23:53:48.478*1*enginedebug:-- executing engine--
2021-02-14 23:53:48.483*1*enginedebug:EngineReadThread create...
2021-02-14 23:53:48.484*1*enginedebug:EngineReadThread created suspended
2021-02-14 23:53:48.484*1*enginedebug:-- Thread now starting --
2021-02-14 23:53:48.485*1*enginedebug:-- Tengine.Redirect finished --
2021-02-14 23:53:48.485-->1:xboard
2021-02-14 23:53:48.505<--1:-- starting engine[slotnr].EngineProcess --
2021-02-14 23:53:48.507<--1:-- engine[slotnr].EngineProcess.Running --
2021-02-14 23:53:48.546-->1:protover 2
2021-02-14 23:53:48.591-->1:uci
2021-02-14 23:53:48.745<--1:# Monchester 1.0.1-14-g84db4ed ~(4327 kN/s)
2021-02-14 23:53:48.745<--1:command : # received xboard
2021-02-14 23:53:48.745<--1:feature myname="Monchester 1.0.1-14-g84db4ed" name=1 setboard=1 ping=1 edit=0 memory=0 usermove=0 analyze=0 colors=0 sigint=0 sigterm=0 done=1
2021-02-14 23:53:48.750-->1:accepted name
2021-02-14 23:53:48.750-->1:accepted setboard
2021-02-14 23:53:48.750-->1:accepted ping
2021-02-14 23:53:48.750-->1:accepted memory
2021-02-14 23:53:48.750-->1:accepted usermove
2021-02-14 23:53:48.750-->1:accepted analyze
2021-02-14 23:53:48.750-->1:accepted colors
2021-02-14 23:53:48.750-->1:accepted sigint
2021-02-14 23:53:48.750-->1:accepted sigterm
2021-02-14 23:53:48.750-->1:accepted done
2021-02-14 23:53:48.751<--1:Error (unknown command): uci
2021-02-14 23:53:48.763<--1:#8: R N B Q K B N R
2021-02-14 23:53:48.767<--1:#7: P P P P P P P P
2021-02-14 23:53:48.767<--1:#6: - - - - - - - -
2021-02-14 23:53:48.767<--1:#5: - - - - - - - -
2021-02-14 23:53:48.767<--1:#4: - - - - - - - -
2021-02-14 23:53:48.767<--1:#3: - - - - - - - -
2021-02-14 23:53:48.767<--1:#2: p p p p p p p p
2021-02-14 23:53:48.767<--1:#1: r n b q k b n r
2021-02-14 23:53:48.767<--1:#-------------------
2021-02-14 23:53:48.767<--1:# A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
2021-02-14 23:53:56.592-->1:isready
2021-02-14 23:53:56.643<--1:Error (unknown command): isready
2021-02-14 23:53:56.646<--1:#8: R N B Q K B N R
2021-02-14 23:53:56.658<--1:#7: P P P P P P P P
2021-02-14 23:53:56.658<--1:#6: - - - - - - - -
2021-02-14 23:53:56.658<--1:#5: - - - - - - - -
2021-02-14 23:53:56.658<--1:#4: - - - - - - - -
2021-02-14 23:53:56.658<--1:#3: - - - - - - - -
2021-02-14 23:53:56.659<--1:#2: p p p p p p p p
2021-02-14 23:53:56.659<--1:#1: r n b q k b n r
2021-02-14 23:53:56.659<--1:#-------------------
2021-02-14 23:53:56.659<--1:# A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
2021-02-14 23:53:56.863-->1:new
2021-02-14 23:53:56.863-->1:random
2021-02-14 23:53:56.863-->1:level 0 5 0
2021-02-14 23:53:56.863<--1:#8: R N B Q K B N R
2021-02-14 23:53:56.864<--1:#7: P P P P P P P P
2021-02-14 23:53:56.864<--1:#6: - - - - - - - -
2021-02-14 23:53:56.864-->1:post
2021-02-14 23:53:56.864-->1:hard
2021-02-14 23:53:56.864-->1:easy
2021-02-14 23:53:56.864-->1:ping 4
2021-02-14 23:53:56.864<--1:#5: - - - - - - - -
2021-02-14 23:53:56.864<--1:#4: - - - - - - - -
2021-02-14 23:53:56.864<--1:#3: - - - - - - - -
2021-02-14 23:53:56.864<--1:#2: p p p p p p p p
2021-02-14 23:53:56.865<--1:#1: r n b q k b n r
2021-02-14 23:53:56.868<--1:#-------------------
2021-02-14 23:53:56.871<--1:# A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
2021-02-14 23:53:56.871<--1:pong 4
2021-02-14 23:53:56.874-->1:name arena
Arena 'autodetect' engine type seems to be 'unrecommended' nowadays, but better if it would work anyway:

Image
Pi4Chess wrote: Mon Jan 25, 2021 12:25 pm Take into account that it is on ARM64 linux beta version of Arena and with a non static compilation on Pi4. Default Auto in protocol.
Hey Manuel, so after compiling current HEAD of Monchester '1.0-branch' (https://github.com/unserializable/monch ... 1.0-branch), HEAD version at the moment of writing is "1.0.1-14-g84db4ed", the engine should hopefully also be autodetected on ARM64 Arena, appreciate if you have in mind to confirm/disconfirm that sometime :)
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester