Wordfish is a free, open-source UCI chess engine implementing cutting-edge search algorithms combined with neural network evaluation. Derived from fundamental chess programming principles, Wordfish analyzes positions through parallelized alpha-beta search enhanced with null-move pruning and late move reductions.
Author: Jorge Ruiz Centelles and the Stockfish developers
Wordfish 4.50 190326 what's new?
Root Syzygy shortcut is now gated for the problematic modes only: the immediate root-tablebase shortcut is no longer taken for go infinite or ponder. In Wordfish, the equivalent root-TB path lives in src/thread.cpp, so the narrow adaptation was applied there. Normal timed searches still keep the fast root-tablebase path enabled.
Why this was applied: the purpose of the patch is to reduce the risk of Playchess time losses in Syzygy endgames, especially in low-latency and short-time scenarios where immediate and fully consistent bestmove delivery matters more than an aggressive root shortcut in non-timed modes.
UCI callbacks cleaned up as proper instance handlers: stateful callback paths were kept as instance methods and wired consistently through this. This matters because low-time suppression and throttling are state-dependent and should not be split across static-style paths.
Atomic bestmove output: the final bestmove line is now emitted in a single sync_cout << ... << sync_endl chain, with optional ponder appended in the same chain. Mixed std::cout writes were removed from that path so GUI-facing move delivery is cleaner and more deterministic.
No broad search or evaluation rewrite: this is not a speculative strength patch, not a broad upstream sync, and not an NNUE change. It is a narrow operational fix aimed at real-world engine behaviour under Playchess/Syzygy/UCI conditions.
Deterministic EXE + UCI identity preserved and rebranded: the release base is now Wordfish-4.50-190326, and the compiled ISA suffix remains carried consistently into both the executable filename and the UCI id name. This keeps GUI discovery and tournament indexing stable across -sse41popcnt, -avx2, -FMA3, and other supported build targets.
Supporting tooling added for follow-up validation: the release also adds a Windows-oriented latency harness (tests/uci_latency_harness.py) and a dry reproduction note (docs/playchess_tb_latency.md) for the real 6-man Playchess/Syzygy scenario.
Compatibility note: compared to 4.40, this release does not change the verified NNUE pair and does not widen scope into unrelated engine logic. It is a focused maintenance patch for root-TB gating, UCI callback correctness, and atomic GUI-visible bestmove delivery.
Wordfish 3.10 011125 vs other engines:
| Stockfish 17.1 | 10/22 | -2 | 22 games |
| SugaR 1.0.1 | 9.5/22 | -3 | 22 games |
| ShashChess 40 | 8.5/18 | -1 | 18 games |
| Stockfish dev-20251102 | 8.5/18 | -1 | 18 games |
| HypnoS 1.00 | 7.5/18 | -3 | 18 games |
| DarkSeid 7.0 EE | 6.5/16 | -3 | 16 games |
| SpecTral 11 | 6.5/14 | -1 | 14 games |
| CorChess 20251005 | 6.5/14 | -1 | 14 games |
| JudaS 1.0.1 | 6.5/14 | -1 | 14 games |
| Brainlearn 31 | 6/14 | -2 | 14 games |
| Killfish PB 151025 | 6/14 | -2 | 14 games |
| Artemis 18.8TR | 6/14 | -2 | 14 games |
| Kookaburra 3.11 | 5/14 | -4 | 14 games |
| Revolution 3.10 051125 | 4.5/14 | -5 | 14 games |
| Revolution 3.0 011125 | 4/8 | +0 | 8 games |
| PlentyChess 7.0.12 | 4/8 | +0 | 8 games |
| Tactical Titan 5.7 | 3.5/8 | -1 | 8 games |
| Solistafish Sep25 PB | 3.5/8 | -1 | 8 games |
| Deep Blue | 3/8 | -2 | 8 games |
| Revolution 3.40 081125 | 2.5/8 | -3 | 8 games |
| Omega Explorer 121025 | 3/6 | +0 | 6 games |

Comments
Post a Comment