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.70 130426 what's new?
Official qsearch TT behaviour was aligned with upstream Stockfish: in the stand-pat cutoff branch of qsearch(), the engine no longer stores value_to_tt(bestValue, ss->ply) in the transposition table. It now stores VALUE_NONE, matching the official upstream correction.
Why the qsearch change matters: this is a search-maintenance correction, not a search redesign. Its purpose is to avoid persisting a stand-pat return value in TT where upstream determined that no stored TT value should be written in that specific branch. In other words, 4.70 brings Wordfish into line with the current official handling of that qsearch corner case.
The default big NNUE net was updated to the official snapshot value: EvalFileDefaultNameBig is now nn-7bf13f9655c8.nnue. The small net entry was not altered.
NNUE feature generation was aligned with the official SFNNv14-era path: Wordfish now carries the official low-level support required for PawnPushOrAttacks, including pawn_single_push_bb(), the corresponding bitboard table, and the related feature-index logic used by the NNUE threat path.
FullThreats dimensionality changed from 60144 to 60720: this is not a cosmetic number bump. It reflects the expanded official feature space required by the aligned threat feature path.
Blocked-pawn handling was extended in the threat path: the release adds the upstream-style pushers treatment for pawns prevented from movement by an opposing pawn directly in front. This extends the feature-generation logic beyond pure attack squares.
Index insertion discipline was modernised: the aligned code uses push_back_if_lt(...) instead of repeated open-coded range checks before insertion. In Wordfish this required one minimal compatibility addition in src/misc.h.
AVX512ICL feature-index writing was added: the official write_indices() path for half_ka_v2_hm is now present, including the required AllSquares vector constant and the AVX512ICL implementation path.
This release was verified in both ordinary and AVX512ICL compile paths: the tree was rebuilt cleanly in a standard x86-64-sse41-popcnt configuration and also in an x86-64-avx512icl configuration, confirming that the newly ported AVX512ICL path is not merely present in source but actually compiles.
Deterministic EXE + UCI identity remains intact: the release base is now Wordfish-4.70-130426, and architecture suffix propagation remains preserved in both the executable filename and the UCI id name.
Wordfish 4.50 190326 vs other engines:
| Stockfish dev-20260318 | 21/43 | -1 | 43 games |
| Stockfish 18 JA | 22.5/42 | +3 | 42 games |
| ShashChess 41 GoldDigger | 22/42 | +2 | 42 games |
| ShashChess 41 | 21/42 | +0 | 42 games |
| Brainlearn 31 | 21/42 | +0 | 42 games |
| Revolution 5.10 090326 | 11.5/23 | +0 | 23 games |
| DON dev-20260302 | 11/22 | +0 | 22 games |
| Sky Mini MPV | 10.5/22 | -1 | 22 games |
| Artemis 28.4TR PrO | 9/21 | -3 | 21 games |
| Sky | 11/20 | +2 | 20 games |
| CorChess 20260227 | 10.5/20 | +1 | 20 games |
| Hlamnick 090326 | 10.5/20 | +1 | 20 games |
| Revolution 5.0 030326 | 9.5/20 | -1 | 20 games |
| Reckless 0.10.0 | 1.5/3 | +0 | 3 games |
| Hlamnick 200326 | 1/3 | -1 | 3 games |
| Clover 9.1 JA | 1.5/2 | +1 | 2 games |
| PZChessBot 6.0 JA | 1.5/2 | +1 | 2 games |
| Quanticade 3.0 | 1.5/2 | +1 | 2 games |
| Pawnocchio 1.9.2 | 1.5/2 | +1 | 2 games |
| Caissa 1.24 JA | 1.5/2 | +1 | 2 games |
| DarkSeid 10.6 SE | 1.5/2 | +1 | 2 games |

Comments
Post a Comment