Releases: tosca07/picochess
V3.3.0 BugFix release
V3.3 64bit Release
- Finally 64 bit support thanks to Ghislain and Randy
- new menu option: leave PicoChess and return to desktop (for playing online on chess.com or lichess.org via chess connect browser plugin)
- thanks to Gerhard for adding iChessOne and refactoring the eBoard code
- thanks to Randy for the volume change, no-eBoard workaround and some other adjustments
Final Bug-Fix
Some more bug fixes for v3.2
Retro-BugFix-Release
Just a minor release because of some important bug fixes for the retro mode and web server display.
PicoChess Version 3.2 "Retro-Release"
This release includes:
a) General features & bug fixes:
- ability to specify the position of the clock (right/left) via menu and picochess.ini
- Correct LED move directions in case of a rotated board
b) New mame (retro engine) features:
- support of position setup
- support of info display (evaluation/depth/current move engine is thinking on)
- info display for engines having the position and/or info feature
- support of displaying internal and external artwork in window or fullscreen mode
c) minor bug fixes
You will need additional files in order to make this work: the external artwork files from Luis, the slightly adjusted (for picochess) plugins from Franz/Dieter/Guido and new mame engine starting scripts for displaying the engines with graphics.
See PicoChess forum https://groups.google.com/g/picochess/c/oE0HZ5vHaDA
PicoChess Version 3.1
PicoChess V3.1
- big enhancements for the web server (esp. for PicoChessWeb but not only for that)
- Support of different eboard types (DGT, Certabo, Chesslink, ChessNut) - this is so cool (thanks Gerhard)!
- Different ini-files for retro, modern and favorite engines and corresponding menu entries
- Support of Windows engines (via box86 & wine, not part of this repo)
- Auto ELO feature for engines supporting the UCI ELO settings
- Web themes: light, dark
- RetroSpeed for mame engines via picochess.ini
- local game and opening book database server which Gerhard added so that we now have this information again provided in the web server
Internal changes:
-
Unified sources for all devices (before we had different sources for the PicochessWeb version (most important for me)
-
Unified translation.py file (new "web_text" tag for longer texts) eg.:
if text_id == 'pleasewait': entxt = Dgt.DISPLAY_TEXT(web_text='Reboot: please wait', large_text='please wait', medium_text='pls wait', small_text='wait ') -
Unified engines.ini (new "web" tag for longer engine names), see attached retro.ini eg.:
[mame/academy]
name = Mephisto Academy
small = academ
medium = Academy
large = Mep.Academy
web = Mephisto Academy
elo = 1980
levels = 10
ponder/brain = n -
Lots of bug fixes (esp. for analysis mode, PGN information display in web server etc.)
-
New (for PicoChessWeb) and alternative (for DGTPI/DGT3000 users) Beep sample sounds instead of internal beeper. For this I have created a new voice „beeper“ which does not need a voice.ini entry (it is not a voice for announcing moves etc.) because it is activated via menu system -> sound -> „sample“). This voice folder must be put into the /picochess/talker/en/ folder and consists of different sound samples for various events (eg after computer move has been played etc. You can here some of these sounds in my last video for the no eboard feature).
-
New "auto" theme option according to sunrise/set and the possibility to change it in the menu
-
New no-eboard/web play only mode for playing without an attached eboard via the web server
-
Search nodes like search depth for NN strength restriction for eg. Leela (with node = 1 you can simulate the maia engine etc.)
-
Retro speed option is now in menu, automatic restart of the (mame-) engine but keep in mind that you have to start a new game after changing the retro speed because of this engine new start as we have no FEN position setup at the moment (so better change it before starting a new game)
-
PGN Replay/Analysis and Guessing Game engine
i) Correct PGN header information (player names, elo) for the current game in web server. Fully automatic replay, you can define the replay speed in the corresponding uci file by specifying a higher or lower thinking time for the analysis engine).
[AlphaZero1]
pgn_game_file = /opt/picochess/engines/pgn_engine/pgn_games/alphazero_stockfish_2018.pgn
pgn_audio_file = /opt/picochess/engines/pgn_engine/pgn_audio/AnnaRudolph_AlphaZeroStockfish.ogg
max_guess= 0
engine_path = /opt/picochess/engines/armv7l/a-stockf
think_time = 1
Pause of audio commentary with II button, pause of fully automatic replay of the game: lever button
ii) full support of guessing game functions when playing in no-eboard/Web Play mode (automatic take back of wrong guessed moves, etc.)
- PicoTutor in no-eBoard/WebPlay“ mode
i) Get position evaluation by activating PicoCoach (again) because we can’t lift up and replace a piece (that’s the trigger for the tutor evaluation when playing with an eBoard).
ii) In emulation mode with retro/mame engines: support of automatic take back in case of a blunder (because we can’t take back moves the normal way in case of retro engines)
Picochess 3.0 Personal Edition
- 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) - (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!?)
- requirement: new SDL libraries (probably different for BUSTER)
- 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)
- IMPORTANT! For windows server access an update of the spur and paraminko packages and a
- 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!)
- Normally taking back moves when using mame engine is not possible so this is a nice feature for
- 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) - 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 ;-) - 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) - Support for correct remaining game times for continued games from version 2 (finally!)
- 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) - 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 ...
- Semi automatic replay of saved pgn games with hint move/score evaluation by an analysis engine
Picochess 2.01 Personal Edition
6. Version set to 2.0
7. Framework for adding (more or less funny) speech comments based on
various events
8. Rolling display of time/score/depth/hintmove in Ponder On or Normal Mode
9. Continue directly after start with an interrupted game if board still shows
last position by reading the last games pgn file
10. New cool training mode with training options (with big thanks to Wilhelm!!!)
11. Configuration parameters for all 1.00/2.00 enhancements in picochess.ini
12. Various bug fixes (eg. pressing the outer buttons for quick restart
instead of shutdown like it was intended, calc. error in evaluation)
Again: big thanks to Wilhelm!
13. Renaming of the play modes! Now we have:
New mode name Old mode name
a5 NORMAL (rolling info display off by default) NORMAL
b5 PONDER ON (rolling info display on by default) BRAIN
c5 MOVE HINT ANALYSIS
d5 EVAL.SCORE KIBITZ
e5 OBSERVE OBSERVE
f5 ANALYSIS (flexible option on by default) PONDER
g5 TRAINING (this is new in 2.00) -
h5 REMOTE (working again from 1.00 on) REMOTE
14. Version set to 2.01
15. Support of changing the voice volume via menu option and picochess.ini
Picochess Version 1.0 Personal Edition
Picochess 1.0 (personal edition)
Picochess V 0.9N with the following changes/enhancements:
additional opening books,
voice move announcements even if remaining time < 1 min.,
possibility to continue playing even after running out of time,
Pre-moves (no more waiting with own move until computer move has been fully done/registered; you can even play the computer and your move in wrong sequence finally)
Flexible Ponder Mode: No more validity checks for moves and the position can be set up without pressing any button (of course it must be a legal position). Picochess just scans the current position and will analyze it. Adding switch function to the lever in ponder mode: Change player's turn (white to move or black to move)
Remote play is now possible without entering a room/nickname: just switch to remote mode on on the clock/DGTPi and the opponent can enter his move via the webserver (if you forward the 8080 port in your router you can even play via internet). Switching sides is now also possible in remote mode: just press the lever.
If you don't want to replicate/replace the whole repository on your Pi and only if you are already on picochess version 0.9N, you only need to replace the following files in the picochess directory:
'picochess.py' in '/opt/picochess'
'utilities.py' in '/opt/picochess'
'menu.py' in '/opt/picochess/dgt'
'app.js' in '/opt/picochess/web/picocweb/static/js'
Unfortunately picochess (version 0.9N and this 1.0 version) is at the moment not compatible to python-chess version 24.0 and higher so don't upgrade python-chess. You even should stay with 22.1 version because of incompatibilties with web server display and elo engines.