My Engine Hobby projects: Modernizing and bug fixing chess engines

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

supernova
Posts: 91
Joined: Mon Apr 15, 2024 8:30 pm
Full name: Arthur Matheus

My Engine Hobby projects: Modernizing and bug fixing chess engines

Post by supernova »

Hi everyone,

I'd like to share a little hobby project. Prechess is a small Ada chess engine written by José Lauro Strapasson around 2001–2002, originally a Windows GUI program. I've turned it into a UCI engine so it runs in any GUI.

One note first: I took down my earlier release. I wasn't comfortable with how much it had ended up changing the engine's original search, and I'd rather keep Prechess playing the way its author intended. This version leaves the legacy search intact and only adds what's needed around it — a full UCI front end, FEN parsing, proper time management, FIDE draw rules (threefold, 50-move, insufficient material), castling/en passant/promotions, and a few small safety fixes. I also moved it to a proper GitHub repository this time.
I'd like this thread to be a place where I post only the old engines I try to modernize, one at a time.

This is purely for enjoyment — it's not meant to enter competitions or chase computer-chess rating lists. Prechess is a simple engine and won't trouble anything modern. I'm just sharing it in case someone has some fun playing with it or poking at the code.

Available here (MIT license), with a Win64 build and the full source: https://github.com/arturoiochoam/Prechess-UCI

Original engine by José Lauro Strapasson; the modernization is mine. Thanks, and have fun.

supernova (Arthur Matheus).
supernova
Posts: 91
Joined: Mon Apr 15, 2024 8:30 pm
Full name: Arthur Matheus

My Engine Hobby projects: Prechess UCI — 0.7.9.9

Post by supernova »

Hi everyone,

One note first: I took down my earlier release. I wasn't comfortable with how much it had ended up changing the engine's original search, and I'd rather keep Prechess playing the way its author intended. Since 0.7.9, every change has stayed additive around that original fixed-priority cascade rather than rewriting it: a full UCI front end, FEN parsing, proper time management, and FIDE draw rules (threefold, 50-move, insufficient material); castling/en passant/promotions and a dedicated move generator validated against perft; a deeper tactical safety chain and a handful of root-level opening and endgame corrections layered alongside the legacy cascade, never inside it; and a growing regression suite to catch anything that slipped. I also moved it to a proper GitHub repository this time.

This is the final release of Prechess UCI — 0.7.9.9 closes out this one, and I won't be putting out further versions of it.

This was always for enjoyment rather than competition — Prechess is a simple engine and was never meant to trouble anything modern, or to chase computer-chess rating lists. Working within the legacy architecture, I've reached the point where I can't find further improvements worth making without rewriting the search itself, which is exactly what I set out not to do — so this is where I'm leaving it. I'm just sharing it in case someone has some fun playing with it or poking at the code.

Available here (MIT license), with a Win64 build and the full source: https://github.com/arturoiochoam/Prechess-UCI

Original engine by José Lauro Strapasson; the modernization is mine. Thanks, and have fun.

supernova (Arthur Matheus).
supernova
Posts: 91
Joined: Mon Apr 15, 2024 8:30 pm
Full name: Arthur Matheus

My Engine Hobby projects: Miguedrez UCI 0.95.11.5.

Post by supernova »

Hi everyone,

I'd like to share the final release of another hobby modernization project: Miguedrez UCI 0.95.11.5.

Miguedrez is a procedural Common Lisp chess engine by Manuel Felipe Gamallo Rivero, originally released as Miguedrez 0.95. I have modernized it into a UCI engine so it can run in standard chess GUIs, while preserving the spirit of the original legacy engine. The 2026 UCI front end, Windows release work, rule fixes, search work, tests, and later 0.95 releases are mine.

The last release focuses mainly on correctness and stability: en-passant hashing now only includes a file when an en-passant capture is actually legal, including pinned-pawn cases; transposition-table replacement behavior was tightened; search-abort handling was improved; promotion handling was made more consistent; and the self-test suite increased to 351 tests. Perft fixtures remain byte-identical, and UCI smoke tests cover both startpos and pinned en-passant positions.

As with the other old engines I try to modernize, this is purely for enjoyment. It is not meant to chase computer-chess rating lists or compete with modern engines. I am sharing it in case someone has fun playing with it, testing it in a GUI, or looking through the Common Lisp code.

Available here, with Windows release builds and the full source: https://github.com/arturoiochoam/Miguedrez-UCI

Thanks, and have fun.

supernova (Arthur Matheus).