Showing posts with the label UCI

Chess for Android: UCI Engine Options

The UCI engine setup dialog in Chess for Android was developed a long time ago when there were not many chess engines available for Android. As a result, I opted for a simple dialog that featured a few, commonly used UCI engine options only (such as hash table size, number of threads, endgame tablebases). However, the options that I picked almost ten years ago no longer serve the wide variety in options of the many chess engines available for Android. Therefore, I decided to re-implement the UCI engine setup and do what the UCI protocol specification actually intended: the GUI should parse all options and build a dialog that allows the user to change them. For engines with only a few options, this yields a concise dialog, as illustrated below with BikJump v1.8. For engines with many options, this yields a more elaborate, scrollable dialog, as illustrated below for Leela Chess Zero. In any case, however, the new implementation gives the user full access to all options! Expect

Chess for Android 10 Year Anniversary!

I can't believe it, but Chess for Android just passed its ten year anniversary! In November 2008, it appears for the first time on the -then-called- Android Market, together with Reversi for Android. Checkers for Android was soon to follow. The Android Market was later renamed Google Play . Working on this GUI has been a lot of fun, even though it took all spare time away from further developing my chess engine BikJump. But pioneering support for third party engines (at a time nobody was compiling for ARM), both UCI and XBoard, accessing endgame tablebases on SD card, adding PGN and setup features,simplifying engine setup through Chessbase compatible format and the Android Open Exchange format, using OCR apps to read chess positions, translating text to other languages, maintaining an online manual , and recently adding support for Certabo, DGT, and Millennium electronic chessboards has been just as rewarding. I have compiled many engines for Android back in the days, ran ful

Polyglot for Android

There was an interesting discussion on the TalkChess forum whether a chess GUI running on the Dalvik Virtual Machine could merely support a single protocol, and use an adapter, like Polyglot, to support other protocols. Even though Chess for Android already supports both UCI and XBoard/WinBoard, I was intrigued by the question, and decided to give it a try. First, I compiled the polyglot sources for ARM-based Android devices (I had to make a few source changes to make that work). Then I edited a polyglot.ini file pointing to my own UCI engine bikjump1.8 compiled for ARM: [Polyglot] EngineCommand=bikjump1.8 EngineName=BikJumpAsXBoard EngineDir=/data/local/tmp/ [Engine] And gave it a try directly from the command line: $ ./polyglot_for_android PolyGlot 1.4.67b by Fabien Letouzey. new st 1 post go 1 -1 0 1 h4 1 +0 0 3 h3 1 +2 0 6 g3 1 +12 0 20 Nh3 1 +17 0 22 Nf3 2 +0 0 46 Nf3 Nf6 3 +17 0 148 Nf3 Nf6 Nc3 4 +0 1 772 Nf3 Nf6 Nc3 Nc6 5 +2 2 1691 Nf3 Nf6 Nc3 Nc6 g3 6 +

Temporary Chess Server

As a follow-up on the previous posting and for users that want to experiment with a remote chess server without setting one up themselves, I have, very temporarily, set up a remote chess server with various engines at ports  2000  through  2005  on . Simply type this hostname and one of the ports in Chess for Android and let me know if you were able to connect!

Connecting Chess for Android to a Remote Server

I have received several questions on how to connect Chess for Android running on an Android device (e.g. a phone) as client to a remote chess server (e.g. a powerful desktop), so I decided to write a small document with detailed instructions. What you will need: The server software from Bernhard Wallner's chess utilities , suited for your server's operating system (if, say, your desktop runs Windows, you will need to download the Windows version). You do not need to download the client software in this case. The network enabled version of Chess for Android . On the server, start the engine server software, and construct a new row for every engine you want to run remotely. Assign a name, port number, and select the full path to each engine binary (an executable that runs on the server). You can also supply command line options for starting the engine. Check the active checkboxes and click start when done. This yields something similar to the screenshots below. Here, I have s

Chess for Android 3.1.5

I just released version 3.1.5 of Chess for Android, available either at the Android market or as direct download . New features include: Ability to filter PGN games (on player, event, ECO, ELO rating range, or result) Automatically re-import last UCI/Xboard engine on exit-re-entry of application Finger sweep left or right as alternative game navigation Minor improvements in setup position feature

Arasan 14.0.1 for Android

Jon Dart released version 14.0.1 of Arasan and Jim Ablett kindly provided a binary for ARM-based Android devices. I did a 1 second per move match from both sides of the Nunn opening suite between version 13.4 and the new 14.0.1 using Chess for Android , which ended in 11-9 in favor of the older version (of course not enough games to say anything conclusive; the match was merely a quick sanity check on the new version).

Chess for Android 3.1.4

It has been quiet for a while, because I was really busy at work, but finally Chess for Android version 3.1.4 has been released, available at the Android market or as direct download . New features include: Position setup improvements Enhanced x-chess-pgn content viewing Option to hide engine's principal variation (useful when playing a real game) Simplified connection with remote UCI/XBoard engine (network version only

Country Chess Netherlands, first division

BikJump ended at 7th place in Geert Maeckelbergh's Country Chess First Divsion of The Netherlands . After a result like this, I feel the well-known "itch" to go back to work on my chess engine again. But first a few more improvements in Chess for Android. In any case, thanks for running the tournament Geert.

Virutor Chess for Android

Vaclav Vavra set up a new website for Virutor Chess , an UCI engine available for Windows, ARM-based Android devices (and Linux soon to follow). The Android version imports without any issues in Chess for Android . I also ran a quick tournament between the built-in engine, BikJump, and Virutor. The results are show below.                          1    2     3   1 BikJump              *   9.5  10.0   19.5/20   2 Chess for Android   0.5   *    8.0    8.5/20   3 Virutor Chess       0.0  2.0    *     2.0.20

Cheng3 for Android

Another engine that can be imported in  Chess for Android  just became available . Martin Sedlák released a new version of his engine Cheng3 , and Jim Ablett kindly made a binary available for ARM-based Android devices. The engine functions well, although it responds with " no GTB found" for the Gaviota endgame tablebases, even thought the cp4 versions reside in /sdcard/gtb. The results of a quick tournament with different engines varying in strength is shown below. Quite impressive!                      1          2          3          4          5         1 Stockfish 2.1      ********** 1111111111 1111111111 1111111101 1111111111 39.0/40 2 cheng3 1.07 JA     0000000000 ********** 10½0½100½1 11111½0111 1111111111 26.5/44 3 GarboChess3        0000000000 01½1½011½0 ********** 11110½½010 1111111111 21.5/40 4 Daydreamer 1.75 JA 0000000010 00000½1000 00001½½101 ********** 1½11111111 16.0/40 5 BikJump v2.1P      0000000000 0000000000 0000000000 0½00000000 **********  1.0

Chess for Android 3.1.1

I just released version 3.1.1 of Chess for Android at the Android market and as direct download with the new Setup Position feature. Update : There was a minor bug in defining the halfmove clock of a position, something that is relevant only for positions affected by the fifty move rule. I have posted a fix in version 3.1.2 on my website (or you can wait for the next release through the market).

More About Setup Position

I finished the new Setup Position feature, which I hope to release really soon. The board editor allows specifying a full FEN position, that is, a board position together with castling rights, the side-to-move, and possibly an en-passant file and halfmove clock counter (for the fifty-move rule). Touching a piece outside the board changes the "pen" to that piece. Alternative, touching a piece on the board changes the "pen" into that piece, and removes the piece from the board (useful to move pieces on the board to another position). The landscape and portrait layouts are shown below.

Setup Position

By popular demand, I am working on a Setup Position feature in Chess for Android  (file, clipboard, and MIME type operations to import and export games are already supported).This new feature is still in prototype stage, but it is going to look something like shown below.

Chess for Android 3.1

I just released version 3.1 of Chess for Android, available from the Android Market or as direct download . New features include: engine pondering (UCI and XBoard) fixed coach bug with move from/to a1 added application/x-chess-pgn MIME support

Critter 1.4 for Android

Richard Vida released Critter 1.4 , including a version for Android. This ARM binary imports well into Chess for Android . A quick 1-second-per-move tournament from both sides of all opening lines in the Nunn test suite on a Nexus S ended in favor of the previous version though.

DoubleCheck2.3 for Android

Lucas Braesch released DoubleCheck 2.3  and I put an ARM binary on UCI and XBoard engines for Android  (you can find another binary for ARM on Jim Ablett's website ). Below, I show the results of a quick one-second-per-move tournament played from both sides of all lines in the Noomen test suite 2012  between some recent versions (32MB hash size, Nexus S).                   1         2          3                             1 DoubleCheck 2.3     *     36.5-23.5  39.5-20.5  76.0/120 2 DoubleCheck 2.0 23.5-36.5     *      35.5-24.5  59.0/120 3 DoubleCheck 1.3 20.5-39.5 24.5-35.5      *      45.0/120

TjChess for Android

Another engine for ARM-based Android devices! Tony Hecker kindly made ARM binaries of  Tjchess  available as either an UCI engine or a XBoard engine. Both import well in Chess for Android . Some screenshots below. With so many new engines, is it time for yet another Android chess engine tournament ?

Umko for Android

The list of chess engines compiled for ARM-based Android devices keeps growing. Someone pointed me to Borko Boskovic's Umko engine. I tested this UCI engine in Chess for Android , and it works well. Some screenshots below.

Android Engines Tournament: Group A

Group A has finished a complete thirty seconds-per-move tournament in Chess for Android , played from both sides of all positions in the Nunn opening suite under the conditions described earlier. Congratulations to Richard Vida for Critter 's victory in this tournament! All games can be downloaded from the tournament page . This completes the Android tournament with longer time controls (although since many more engines are available now, perhaps another one is already necessary!).                        1         2        3         4         5                     1 Critter 1.2 32-bit       *     11.5-8.5  9.5-10.5  15.0-5.0  11.5-8.5  47.5/80 2 Stockfish 2.1.1 JA    8.5-11.5     *    13.0-7.0    9.5-10.5 11.0-9.0  42.0/80 3 Komodo32 2.03 AB     10.5-9.5   7.0-13.0    *      13.0-7.0  11.5-8.5  42.0/80 4 RobboLito 0.085g3l    5.0-15.0 10.5-9.5  7.0-13.0      *     12.0-8.0  34.5/80 5 IvanHoe-Beta v999947c 8.5-11.5  9.0-11.0 8.5-11.5   8.0-12.0     *     34.0/80