Skip to content

Picochess 3.0 Personal Edition

Compare
Choose a tag to compare
@tosca07 tosca07 released this 16 Dec 20:25
· 517 commits to master since this release
b15c620
  1. Version set to 3.0 (a really big one ;-)
    I think most of the enhancements only make sense running on a Revelation II (or at least
    a DGTPI with better display capabilities. Especially on a Revelation II it is really fun
    to read game comments or the opening name etc. while this is exhausting on a DGTPI and awful
    on a standalone DGT Clock with its 8 chars)
    Some features (like tournament control or PicoTutor) even wouldn't correctly work on stand
    alone clocks together with picochess because the display can not show the correct time control
    setting.
    Furthermore additional libraries must be installed, a bug must be fixed in the python-chess
    code itself(!) for the tournament control option and you need additional engines for some
    of the new feature (don't ask me where to get them or where you can get an image etc.)
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !!! Keep in mind: I did these enhancements in this Personal Version for my own pleasure
    !!! in order to have fun & play with picochess on my Revelation 2 - so it might be not
    !!! your cup of tea...
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    17. Support for Online Engines
    - Switch to Online Mode if online engine is choosen (engine name starts with
    Prefix 'Online')
    - Time control settings are taken from the online server challenge and are
    applied automatically as current time control settings#
    - Clocks start after first white and black moves. After this the player's time already
    starts with the annoucement of the best move and no longer when
    the computer move has been done by the user (other than that no real sync with server
    times has been implemented)
    - Online decrement: In order to better "sync" picochess times with online server times#
    you can subtract X seconds after each own move from your remaining game time in
    picochess.ini, default value is 0.9s
    - additional online info messages (login, seeking, opponent name, game result)
    - new online seek in case of 'start new game' event
    - Online move is automatically played in case of white = online opponent and clock starts
    - last move is published to online engine in case of game ending to inform the online
    server
    - online player names in pgn file(s) instead of engine or pico user name only
    - Online engines won't be saved in picochess.ini as last engine
    - picochess.ini "Online decrement" parameter can be overwritten in online uci files via parameter
    OnlineDecrement (just add "[DEFAULT] OnlineDecrement = X"
    - still work in progress (don't ask me when they are ready to play...):
    - basic FICS online engine (for this TELNET must have been installed, default!?)
    - very basic lichess online engine (for this the BESERK package must have been installed)
  2. (Better) support for MAME emulated chess engines
    • requirement: new SDL libraries (probably different for BUSTER)
      and Q5 library must have been installed
    • newer mame/mess versions do need BUSTER!
    • longer startup time for mame engines necessary, voice/sound end messages from mame engine
      last ending move is published to emulator engine in case of game end for specific engines
    • "engine setup" message because of longer initializing phase of mame chess engines
    • support for pico timecontrol setting in uci file settings according to mame engine levels
      (just define the UCI parameter PicoTimeControl X Y Z in your level settings) and time is set
      automatically after choosing a level
    • When switching back to non mame engine time settings are reset to last setting before it has been
      eventually changed by the uci setting (default time setting can be defined in picochess.ini
      via parameter def-timectrl when having a mame engine as last engine after startup)
    • automatic reset of the original time control settings after choosing a non mame/mess engine
    • mame engine should not be saved as last used engine on a DGTPI because of possible clock problems when
      starting mame engine directly after boot (very strange maybe a sync problem with dgtpicom lib!?)
  3. Finally: practical support of remote engines and local engines at the same time(!)
    • IMPORTANT! For windows server access an update of the spur and paraminko packages and a
      modification of the spur package are necessary (ssh.py must be replaced from a different repository)
    • name in engine.ini must start with prefix 'remote_'
    • implemented via standard ssh connection, just add the remote login infos
      in the corresponding parameters of picochess.ini and your remote engine in engines.ini
      and make sure SSH server is running on your remote computer (default on MacOS)
  4. Automatic takeback mode (only for mame engines) in case of a blunder move with active PicoTutor
    (PicoWatcher must be switched on)
    • Normally taking back moves when using mame engine is not possible so this is a nice feature for
      beginners (like me ;-) who often play against mame engines.
    • only the last blunder move can be taken back when using mame (of course this restriction is not
      valid for other native uci engines!)
  5. Bugfix: Set correct (old) engine (name) in case of engine error (very important for
    new remote/online engines which sould easily fail if server is not available)
  6. Taking back moves: Now the next move which could be taken back is shown in display and
    in long notation format (good for old people like me ;-)
  7. After start up and new game events the current chosen engine is shown in the display
    (setting in display menu & config parameter in picochess.ini)
  8. Support for correct remaining game times for continued games from version 2 (finally!)
  9. Synthesized voice support for moves in WebServer (unfortunately works only in desktop
    browsers and in Android Firefox browser): Big thanks to Martin (author of the ingenious
    TuroChamp python engine) and deletion of the non working remote room button functionality
    Of course you can still use the remote play mode functionality (re)introduced since 2.0 and
    the new handling of remote engines)
  10. Replay of PGN games (semi automatic) via new engine
    • Semi automatic replay of saved pgn games with hint move/score evaluation by an analysis engine
      for a specific thinking period (time settings will be changed according to uci file and changed
      back automatically)
    • "Guess that move" game option for white or black (switch "guessing" sides by pressing the lever)
    • Additionally this pgn replay mode can be used to train opening books when setting
      an empty pgn file with name 'Book Test' and choosing a specific book in menu: just try and play
      a move you think belongs to the chosen book opening (makes more sense when you create specific books
      with a specific theme or famous player moves)
    • Furthermore an audio comment file for the pgn file can be specified and will be automatically
      played during the pgn game replay and can be manually started and stopped during the match
      (I did this because I have a (german) genious radio play "Nahrungsaufnahme während der Zeitnotphase"
      which is playing in real time during a tournament game. Now I can listen to the radio play and
      watch the game at the same time with picochess - how cool is that!?
    • PGN Replay engine settings won't be saved in picochess.ini as last engine
      27. Enhancement of supported tags in pgn file: opening eco code, pico remaining times, pico time
      control setting
      28. For online-, emulation- and pgn-mode: Automatically switch off opening books (setting "no book"
      as book option)
      29. Override pgn location from picochess.ini in case the parameter 'location' is set to
      something different than 'auto' (you can use this if you always get a wrong auto location).
      30. Basic chess tutor functionality (even in case the choosen engine does not support
      score & hint moves like almost all mame emulated engines) with the following 3
      functions (disabled in Online mode)
      a) Pico Watcher (checks your moves and returns ??, ?, !?, ?!, !, !!)
      You can change the control limits for the evalutations in file picotutor_constants.py
      b) Pico Coach (gives position score and move hint(s) - just lift a piece and put it back into
      the same position)
      c) Pico Opening Explorer (displays current opening name (alternative) independet of the
      used opening book
      31. Tournament time control settings:
      Possible time control settings in picochess v3.0:
      time = m, time = g i, time = n g i or time = n g1 i g2
      Examples:
      time = ... 7 (time per move, eg. m = 7 seconds)
      5 0 (game time, eg. Blitz g = 5 min. and 0 seconds increment)
      5 3 (game time g= 5 min. plus I = 3 sec. increment)
      Tournament time control settings: n moves in g1 minutes (plus I increment seconds) and rest
      of the game in g2 minutes
      time = ...
      new: 40 5 0 (n = 40 moves in g = 5 minutes)
      new: 40 5 3 ((n = 40 moves in g= 5 minutes with I = 3s Fischer inc.)
      new: 40 60 0 30 (n = 40 moves in g1 = 90 minutes, I = 0 seconds increment and rest of the game in g2 = 30 minutes)

    • Important: *

    for this a python-chess bug in 22.1 version must have been fixed to support the
    movestogo go command option correctly!
    If you have a higher python version look there (eg. 3.7 on BUSTER)
    (in file /usr/local/lib/python3.7/dist-packages/chess/uci.py:
    line 949 original: if movestogo is not None and movestogo > 0:
    changed to: if movestogo is not None and int(movestogo) > 0:
    That was not so easy to figure out...)
    32. Possibility to directly play an alternative move for the engine on the board after the engine move
    has been displayed in NORMAL mode (like in TRAINING mode or the DGT CENTAUR chess computer)
    (setting in menu and config para)
    33. Menu for saving, reading and continuing a game from pgn files (yes, finally!)
    *** IMPORTANT ***
    In order to load and continue a saved game you will need to use the webserver in order to set up
    the correct starting position of the game. For this you must open the webserver page BEFORE
    you read and restore the game or if not just use the sync button!
    34. Display of the book opening name(s) (function of the PicoTutor)
    35. New time control setting: Support of a specific max. search depth (with a fixed
    countdown movetime of 11:11 (unfortunately counting up the clock is not possible)
    36. Support of written game comments like it used to be in Boris or Sargon 2.5 MGS old chess computers
    37. Display of pgn event, players & result when loading an existing game
    38. Enhancements of REV2 and webserver display of moves/evaluation/depth/score
    39. Display of „new position“ message in case of analysis mode and user sets up
    a new position instead of playing an legal move (or in case he plays an illegal
    move which is seen as a new position)
    40. Removed use of vorbis ogg player because of audio play conflicts with sound from
    mame chess engines in picotalker.py and OS update problems and missing start/stop/pause
    functions(now pygame.mixer is used instead), see https://www.pygame.org/docs/ref/mixer.html
    install additional lib via: "sudo apt-get install python3-pygame"
    50. Three new voices (one with commentary): Daniel (eng.), Boris (eng. with commentary)
    and Gust (german). Additinal voice samples (eng./german) for the new picochess V3.0
    feature which can be put additionally in all existing voice folders
    51. Specific 'set pieces' sound (no voice) so you hear when something wrong with the board position
    52. Set opponent pgn player to 'Player B' instead of engine name and user name ro 'Player A'
    in case of 'Observe Mode'
    53. No more searchmoves in UCI 'go' command for the engine in case normal moves (exception:
    Alternative moves), otherwise this might cause problems with the use of internal
    engine books etc.(thanks to Rasmus for the hint)
    54. BugFix for Buster: Change of voice volume working again (big thanks to Wilhelm!)
    55. New (Fischer) "simulated" median move time levels: 5s, 10s, 15s, 20s, 30s, 60s, 90s
    (thanks to the schachcomputer.info Forum for this idea!)
    56. New "favorite engines" options: It is nice to have all 60 and more engines installed
    but it is a pain to select one out of these many engines...
    => new Favorite menu to keep your main and most often used engine separately.
    just put your favorite engines into the favorite.ini file liek you would do for the
    main engine list in engine.ini and put it in the correct egine directory - that's it
    *** IMPORTANT ***
    Engines in favorite.ini must also appear in engines.ini!!!
    57. BugFix: Continue game/load saved game and play in opposite board direction fixed
    58. Support of engine subfolders: you can now organize your engines in subfolders
    within the main engine folder (just specify the subfolder path in engines.ini in
    in front of the filename eg. [MAME/mm5] where MAME is a subfolder within the armv7l
    folder (thanks to Wilhelm for supporting the correct engine startup loading procedure!)
    59. Fix for the strange clock times reset "bug" when playing without a clock with just a board,
    PI and the webserver. With the voice move announcements of the webserver in V3.0 we even
    don't have to look at the webserver screen when playing... (thanks to Marcel Swidde for
    the fix in the picochess google groups forum)
    60. Position correction message after the "Set pieces" error message occurs the second time:
    assuming that you are lost and don't know where to put the piece to its correct position,
    picochess will tell you what is wrong and how to correct (if you have your PI hooked up
    into your WLAN you could just check the correct position with the webserver board display
    by just pressing the Sync button of the webserver).
    Picochess will stop the clocks and check its internal game position against the external
    DGT board position and will display two kind of correction messages:
    • Put w N f3 (=> put white night on f3)
    • Clear h5 (=> remove piece from h5)
      This will continue as long as the correct position has been set up.