Playing against a weaker CSTal

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

Moderator: Ras

chesstal
Posts: 6
Joined: Mon Jul 27, 2026 8:09 am
Full name: Adam Brown

Playing against a weaker CSTal

Post by chesstal »

Hi all

Because I wanted to play against CSTal and have some chance to beat it created a weakening wrapper - all AI under my directions.

zip file: https://murena.io/s/WXb2C3bemZbGtcJ.

1. wrapper.c is main code. I used Windows/mingw gcc to compile it:
gcc wrapper.c -o wrapper.exe -O2 -static -static-libgcc -static-libstdc++ -lm
2. wrapper.pdf explains code and how to use it.

Install wrapper.exe as a normal UCI engine.

Only did limited testing to calibrate - so it can be tuned more. But it works and produces results close to a weakened stockfish.

The code can weaken any engine by changing the engine name in wrapper.c and calibrating again.

I hope some of you find it useful and improve it further.
User avatar
Rebel
Posts: 7620
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Playing against a weaker CSTal

Post by Rebel »

I have read your PDF, it's a good system and indeed will work for many Stockfish versions also.
90% of coding is debugging, the other 10% is writing bugs.
Rowen
Posts: 132
Joined: Tue Nov 15, 2016 1:19 pm
Location: Cheshire, England

Re: Playing against a weaker CSTal

Post by Rowen »

chesstal wrote: ↑Mon Jul 27, 2026 10:00 am Hi all

Because I wanted to play against CSTal and have some chance to beat it created a weakening wrapper - all AI under my directions.

zip file: https://murena.io/s/WXb2C3bemZbGtcJ.

1. wrapper.c is main code. I used Windows/mingw gcc to compile it:
gcc wrapper.c -o wrapper.exe -O2 -static -static-libgcc -static-libstdc++ -lm
2. wrapper.pdf explains code and how to use it.

Install wrapper.exe as a normal UCI engine.

Only did limited testing to calibrate - so it can be tuned more. But it works and produces results close to a weakened stockfish.

The code can weaken any engine by changing the engine name in wrapper.c and calibrating again.

I hope some of you find it useful and improve it further.
Hi
Is someone able to release a compiled version of this please?
chesstal
Posts: 6
Joined: Mon Jul 27, 2026 8:09 am
Full name: Adam Brown

Re: Playing against a weaker CSTal

Post by chesstal »

Rowen wrote: ↑Tue Jul 28, 2026 10:41 am
Hi
Is someone able to release a compiled version of this please?
Hi Rowen

I didnt include the exe because of all the false virus problems Martin reported with Myracle. Anyway I have uploaded the exe : https://murena.io/s/5Q9fw7qtKT4DejM

It works on my windows machine. Hope it works for you.

Also tuning is optional - you can use wrapper with any engine by changing the engine name with the UCI option and using the default weakening values in the code.
chesstal
Posts: 6
Joined: Mon Jul 27, 2026 8:09 am
Full name: Adam Brown

Re: Playing against a weaker CSTal

Post by chesstal »

Rebel wrote: ↑Mon Jul 27, 2026 11:50 am I have read your PDF, it's a good system and indeed will work for many Stockfish versions also.
Thanks for the comments Ed.

If you are interested I ran the same test with Rebel-EAS-3.0-AVX2 and the CSTal calibration.

1400: -0 Elo
1550: +23 Elo
1700: -17 Elo
1850: +49 Elo
2000: -12 Elo
2150: +2 Elo
2300: -7 Elo
2450: -51 Elo
2600: +21 Elo

So the default calibration weakens your engine well.
chesstal
Posts: 6
Joined: Mon Jul 27, 2026 8:09 am
Full name: Adam Brown

Re: Playing against a weaker CSTal

Post by chesstal »

Hi all

I have updated wrapper and the new version is - https://murena.io/s/T78mEoHnkePtPN6

This version uses data files so wrapper.c doesnt need to change for different engines - also added data for plentychess and reckless. the revised document explains the changes.
chesstal
Posts: 6
Joined: Mon Jul 27, 2026 8:09 am
Full name: Adam Brown

Re: Playing against a weaker CSTal

Post by chesstal »

Hi all

For anyone following Steve Maughan's excellent AI generated engines this is the data file for Opus55chess24hrs to use with wrapper.

# Opus55chess24hrs calibration
Depth1Elo 1400
Depth2Elo 1550

1400 55
1550 100
1700 700
1850 1550
2000 3450
2150 4200
2300 5200
2450 8850
2600 15700

| Target | Error |
+---------+--------+
| 1400 | +226 |
| 1550 | +72 |
| 1700 | -2 |
| 1850 | -4 |
| 2000 | +4 |
| 2150 | -12 |
| 2300 | +2 |
| 2450 | -2 |
| 2600 | 0 |

The engine is too strong below 1700.
chesstal
Posts: 6
Joined: Mon Jul 27, 2026 8:09 am
Full name: Adam Brown

Re: Playing against a weaker CSTal

Post by chesstal »

Thanks to Chris for generously giving us CSTal 3. This is the calibration data file for wrapper.

# CSTal 3 node calibration
Depth1Elo 1430
Depth2Elo 1850

1400 55
1550 100
1700 220
1850 300
2000 300
2150 350
2300 2200
2450 2850
2600 5200

Calibration results

+--------+-------+
| Target | Error |
+--------+-------+
| 1400 | +33 |
| 1550 | +30 |
| 1700 | +42 |
| 1850 | -28 |
| 2000 | +34 |
| 2150 | -8 |
| 2300 | +33 |
| 2450 | -14 |
| 2600 | -19 |
+--------+-------+