Repository navigation
Releases: vdbergh/psion-chess
Release list
v1.9
Time management for sudden death and slow connections, and a speed option.
- New option
Move Overhead(ms, default 94): what a move costs on the clock besides Psion's thinking (entering it, the GUI, the network). It is subtracted from every time allocation and replaces the fixed 50 ms used before. The default is the median with lichess-bot on a PC in Belgium; increase it if the engine loses on time, e.g. with a slow connection to the server (the Lichess bot now runs on a server in Canada with 270). - Without increment or
movestogoPsion now thinks for 1/60 of the remaining time instead of 1/30, so that the fixed cost of a move does not make long sudden-death games end on time (a 3+0 game was lost on time at move 117). - New option
Cycles(defaultmax): the speed of the emulated PC,maxfor as fast as the host allows or a fixed number of instructions per millisecond (1 to 1,000,000), e.g.300for roughly an original IBM PC, as--cyclesdoes from start-up. It can be changed between moves. At low values entering moves slows down too: increaseMove Overhead. setoptionis now supported (forMove OverheadandCycles; option names are case-insensitive).govalues are parsed safely: they are clamped to 0 .. 2^31-1, and a clock that was sent but is negative or 0 gives the 50 ms minimum instead of the 5-second default for searches without a clock.
Full Changelog: v1.8...v1.9
v1.8
Pondering is now supported (go ponder, ponderhit, and the Ponder option).
- After
go ponderthe move to ponder on is entered and Psion searches as forgo infinite; afterponderhitthe time for the move counts from then on, while Psion goes on with its search.bestmovenames the move to ponder on: the second move of Psion's principal variation (none after a book move or a move found at once). - After
stop(the opponent played another move) the adapter takes back the move pondered on and Psion's reply. Takebacks are now pressed at once and the position they lead to is accepted as soon as it is in memory, so this costs about 0.05 seconds of the engine's clock. Takebacks are also made when Psion considers the game over (e.g. after a mate it played while pondering), instead of replaying the game in a new game. - A
stopthat arrives before the search has started (while the position is still being set up) is now answered withbestmovetoo. - Pondering against not pondering: +70 ± 56 Elo in 100 games at 30+0.3 (self-play through python-chess, which sends
ponderhitas lichess-bot does). While pondering, the engine uses a CPU core all the time. tools/lichess_check.pyhas a--ponderoption.- CI now runs the UCI integration tests on Linux and on Windows, with Psion Chess downloaded from Classic DOS Games, which
data/README.mdnow points to. - The README has a screenshot of Psion Chess.
Full Changelog: v1.7...v1.8
v1.7
Castling rights in FEN positions are now supported (position fen ... with KQkq etc.).
- Psion's set-up mode treats a king or rook that is typed as moved; those left untouched keep their castling rights. So for a FEN with castling rights the position is set up from the start position of a new game: the squares that change are emptied and only the pieces that differ are typed. A rook whose right is missing is typed again.
- Castling rights whose king or rook is not on its square are ignored (as python-chess does). Chess960 castling rights are refused (
info string Chess960 castling rights are not supported,bestmove 0000). - Checked with a 40-game self-play match from the UHO_4060_v4 EPD book (38 of the openings with castling rights, 44 castles, no illegal moves).
- The README no longer says that castling is impossible after set-up mode.
Full Changelog: v1.6.1...v1.7
v1.6.1
Documentation only: the engine is the same as in v1.6.
The README now notes that Psion searches to a fixed maximum depth and moves as soon as it reaches it, whatever the time left. In a locked pawn ending this takes under a second, so Psion moves almost at once even at long time controls (in Fine's position 70, after about 1 second with 10 seconds to think).
Full Changelog: v1.6...v1.6.1
v1.6
FEN positions are now supported (position fen ...). They are set up with Psion's own set-up mode.
- Psion's set-up mode gives neither side castling rights, so a FEN with castling rights is refused (
info string Castling rights in FEN positions are not supported,bestmove 0000). - En passant captures work: the position before the pawn's double step is set up, and the step is then played.
- The move counters of a FEN are ignored: Psion's 50-move rule counts from the FEN position (the GUI still applies the rule).
- Setting up a position takes about a second.
- If a position cannot be reached (Psion refuses a move, or the set-up fails), a pending
gois now answered withbestmove 0000instead of a move for the wrong position.
The README has a new section with the results of test matches: about 90 Elo per doubling of the speed, and about 1700 on the CCRL Blitz scale (from 300 games against micro-Max 4.8). It also notes that Psion has no transposition table.
Full Changelog: v1.5.2...v1.6
v1.5.2
Changes
- Fix for slow emulation. While Psion plays a move it passes through in-between states, such as a piece lifted. When the emulated PC ran slowly (e.g. on a heavily loaded machine), such a state could last long enough to be taken for a position; the following move then no longer fitted, and the engine answered
bestmove 0000. These states are now recognized. At normal speed nothing changes. --cycles Nruns the emulated PC at a fixed speed of N instructions per millisecond instead of as fast as possible, e.g.--cycles 300for roughly an original IBM PC. It is meant for tests and experiments.- A new integration test plays at that speed.
Psion Chess itself is not included: see data/README.md in the package for where to download it.
Full Changelog: v1.5.1...v1.5.2
v1.5.1
Changes
- README: a new section, Speed, compares the engine's speed with the 68020 at 12 MHz on which Richard Lang's program won the 1987 World Microcomputer Chess Championship. On a current laptop the emulated PC runs roughly 60 to 120 times faster.
The engine itself is unchanged since v1.5.
Psion Chess itself is not included: see data/README.md in the package for where to download it.
Full Changelog: v1.5...v1.5.1
v1.5
Changes
- Much less time per move. Entering the opponent's move and reporting the engine's move used to cost about 0.8 s per move on the engine's clock; now it is about 0.1 s.
- Keys are passed to Psion as fast as it reads them from the BIOS keyboard buffer, instead of one key event per 20 ms.
- A move in Psion's memory is accepted after 20 ms instead of 200 ms, once it is a complete move (in-between states while Psion updates its board are rejected).
- The pause after a key ends once its effect is seen.
- Fast time controls and lichess-bot. GUIs that send
goright afterpositionwithout waiting forreadyok(lichess-bot, via python-chess) count the move entry on the engine's clock. At 30+0.5 the engine used to lose long games on time this way; it now plays 10+0.1 without problems. - Faster set-up of positions: replaying a game takes about 0.13 s per ply instead of 0.7 s.
tools/lichess_check.pychecks the engine with python-chess the way lichess-bot uses it.- Since Psion now gets more of its time for thinking, a mate it finds at once is still reported in an
infoline beforebestmove.
Psion Chess itself is not included: see data/README.md in the package for where to download it.
Full Changelog: v1.4.2...v1.5
v1.4.2
Changes
- Fix: illegal moves in
infolines. Since v1.4 the adapter checks the lines from Psion's analysis display and picks the promotion piece Psion does not show. Moves into check were not considered, so a queen could be chosen where only a knight promotion works, and GUIs may then reject the line as an illegal PV. Moves that leave the own king in check, and castling out of or through check, are now rejected too. - Less CPU use at fast time controls. After Psion moves, the emulation now stops after about 0.35 s instead of 0.8 s, so it also stops when the opponent replies quickly.
Psion Chess itself is not included: see data/README.md in the package for where to download it.
Full Changelog: v1.4.1...v1.4.2
v1.4.1
Changes
- Fix: CPU use after a mate or draw. Since v1.4 the emulation stops while Psion waits for the GUI. This did not work after Psion announced a mate or a draw (it flashes the kings), so the engine kept using a CPU core until the next game. It now stops there too.
Psion Chess itself is not included: see data/README.md in the package for where to download it.
Full Changelog: v1.4...v1.4.1