UCI Feature Support

The Universal Chess Interface (UCI) protocol specifies how a Graphical User Interface (GUI) communicates with a chess engine. MadChess supports most but not all UCI features.

Support Command MadChess Implementation
GUI To Engine
uci Display engine name and author name.
debug Display search statistics.
isready Respond readyok.
setoption Set engine option.
register Engine does not require registration.
ucinewgame Reset best move cache, killer moves, and move history.
position Set pieces on board.
go wtime btime winc binc movestogo depth nodes mate movetime infinite Determine think time, search, return best move.
go searchmoves ponder Searching specific moves and pondering not supported.
stop Stop searching, return best move.
ponderhit Pondering not supported.
quit Exit program.
Engine To GUI
id name / author Display engine name and author name.
uciok Ready to receive commands.
readyok Ready to receive position.
bestmove Return best move.
bestmove ponder Pondering (thinking on opponent’s time) not supported.
copyprotection Engine is not copy-protected.
registration Engine does not require registration.
info multipv depth seldepth time nodes score cp mate nps pv lowerbound upperbound hashfull currmove currmovenumber Update each depth and every 250,000 nodes. Display hash utilization.
info string Display debug information (if debug on).
info cpuload CPU load is not shown. Assume it’s 100% on a single thread.
option name uci_engineabout Display engine name, author name, and website link.
option name hash multipv uci_limitstrength uci_elo uci_analysemode Analysemode true = 3 rep draw. Analysemode false = 2 rep draw.
option name nalimovpath nalimovcache Nalimov tablebases not implemented.
option name uci_shredderbasespath Shredder tablebases not implemented.
option name ownbook Opening book not implemented.
option name uci_showcurrline Displaying currently analyzed line not implemented.
option name uci_showrefutations Displaying refutations of candidate moves not implemented.
option name uci_opponent MadChess does not adjust its play based on opponent.
option name uci_setpositionvalue Setting the value of a position (for analysis) not supported.

Comments are closed.