Skip to content

v1.3.0-rp2040 — runtime difficulty, turn indicator, AI castling, FEN fix

Choose a tag to compare

@semichcsc-byte semichcsc-byte released this 11 Jun 07:23
· 3 commits to main since this release

UX + AI-mode correctness release. Several issues only surface during a full game vs the bot; this release fixes them and makes turns clearer.

Added

  • Runtime AI difficulty — after picking AI mode, 4 centre squares act as buttons: c4 Easy (green), d4 Medium (blue), e4 Hard (amber), f4 Expert (red). No recompiling.
  • "Whose turn" indicator — the side-to-move's back rank gently breathes (white for you, red for opponent in HvH), mirroring the bot's blue thinking pulse.
  • Blue AI selector LED — the Human-vs-AI menu square is now blue (HvH stays white).

Fixed

  • AI mode castling — was impossible before (move-gen never offered it); now both player and bot can castle, the rook is moved internally, and a single blue rook-destination hint is shown.
  • Invalid FEN after castlingboardToFEN() hard-coded KQkq, making the FEN illegal once anyone castled (Stockfish replied "Invalid FEN" and the turn bounced back). Castling rights, en-passant and halfmove clock now come from live game state.
  • Stockfish parser no longer grabs Cloudflare's Report-To: header.
  • Mirrored rank notation in AI-mode serial logs.
  • Light bleed — lifting a piece clears the turn-indicator row before drawing move dots.

Changed

  • Clean serial output — verbose debug gated behind DEBUG_VERBOSE / WIFI_VERBOSE (off by default); a short "How to play" legend prints at boot.

Install

Double-tap reset on the Nano RP2040 Connect, then drag OpenChess-v1.3.0-rp2040.uf2 onto the RPI-RP2 drive. For AI mode, compile from source with your WiFi in arduino_secrets.h (the .uf2 ships with placeholders).

Full details in CHANGELOG.md.