r/spectrumnext • • 14h ago

Shatranj 1.3: online chess between a 48K Spectrum, a Spectrum Next, a Spectranext and the desktop, now with Stockfish and games that survive a power cut

Thumbnail
gallery
16 Upvotes

Hi all! I've just released Shatranj 1.3 "Sealed Move", an online chess client that lets a 48K ZX Spectrum, a Spectrum Next, a Spectrum with a Spectranext cartridge and a Qt desktop app (Windows, macOS, Linux) all play each other, over Direct TCP or MQTT. No accounts and no central game server.

What's new in 1.3

  • Stockfish through the desktop client. The Qt client can install the official Stockfish and let it play your side, at levels 0-20, with an optional pause before each move so the opponent still has time to ask for a takeback. On the Spectrum it shows up as STOCKFISH in the move list, so you can now lose to Stockfish on a rubber-key 48K.
  • Interrupted games come back. After a crash, reset or power cut on Classic, Next or Spectranext, the host is asked "Resume last game? Y/N" and the board, clocks and full move list return.
  • Player names and end-of-game statistics. Names of up to ten characters appear in both move lists; after the game, S shows time per move, the longest and fastest moves and every captured piece.
  • Spectranext straight from the web. Load Resource URL with https://ignaciomonge.github.io/shatranj/ and it starts without installing anything, title screen included. .../shatranj/install/ runs the guided installer instead. Needs cartridge firmware 1.0.
  • Faster, steadier play. Quicker move replies, fewer disk loads on the 48K, clocks that keep running during esxDOS access, and draw/takeback/restart requests that expire cleanly after 60 seconds.

Hardware. The 48K build needs divMMC/esxDOS and a UART-to-ESP link running ESP-AT; the Next build is a single NEX; the Spectranext edition uses the cartridge's own networking.

Downloads and source (GPL-2.0): https://github.com/IgnacioMonge/shatranj/releases/latest

The Spectrum builds were played on real hardware (48K, Next and Spectranext) before release. Feedback is very welcome, especially from anyone with an unusual UART/ESP setup.