Recent

Author Topic: Eschecs (UCI chess GUI) 5.1.3  (Read 6713 times)

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Eschecs (UCI chess GUI) 5.1.3
« on: December 30, 2022, 06:49:48 pm »
Hello everybody!

A new version of my multiplatform UCI chess GUI (using fpGUI, BGRABitmap and uos) is available. The project has been moved to GitLab.

It's a GUI to play chess (including Fischer random chess) against UCI engines.

You can download and build it from a terminal, or build it with Lazarus or MSEide.

There are Linux binaries here (with a collection of engines).

This version has been tested only on Linux.

Two bugs have been reported. 1° Sometimes an engine doesn't move. 2° Sometimes the application refuses to close. Maybe I do something wrong in process/thread management. It would be great if you coud help me to solve these issues.  :)

If you want to understand how the application works, it's good to start it from a terminal, where you will get some informations. There is also a file eschecs.log where you can see what happens.

Best regards.

Roland
« Last Edit: December 30, 2022, 06:55:34 pm by Roland57 »
My projects are on Codeberg.

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Eschecs (UCI chess GUI) 5.1.4
« Reply #1 on: January 14, 2023, 01:01:37 am »
A new version is available with binaries for Linux and for Windows.

Thanks to Fred vS who helped me to solve several problems.  ;)
« Last Edit: January 26, 2023, 06:27:45 am by Roland57 »
My projects are on Codeberg.

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Eschecs 5.1.6
« Reply #2 on: August 12, 2025, 07:21:58 pm »
Hello everybody.

A new version of my UCI chess GUI is available. The project is now on Codeberg.

  • New translation system (PO files)
  • New ECO module

It's a source-only release (but there is a chess engine included for Linux and for Windows).

The ZIP file doesn't contain submodules (fpGUI and BGRABitmap), so maybe it's simpler to do this:

Code: Bash  [Select][+][-]
  1. git clone --recurse-submodules https://codeberg.org/rchastain/eschecs.git

Compile:
Code: Bash  [Select][+][-]
  1. cd eschecs
  2. make

Otherwise there is a Lazarus project and a MSEgui project in source directory.

You can play against any UCI engine that you have on your computer by supplying the path of the engine as parameter. Example:

Code: Bash  [Select][+][-]
  1. ./eschecs /home/roland/chess/engines/CT800_V1.42


« Last Edit: August 27, 2025, 09:57:04 am by Roland57 »
My projects are on Codeberg.

Lulu

  • Sr. Member
  • ****
  • Posts: 405
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #3 on: August 12, 2025, 08:36:21 pm »
Hi Roland, thanks to share!

Compilation with Lazarus project fails on Windows 10, Lazarus 3.8 FPC 3.2.2 with error message:
Code: Pascal  [Select][+][-]
  1. fpg_impl.pas(26,3) Error: Can't find unit x used by fpg_impl

If I'm not mistaken, x is a unit for Linux (X11) that's why it can't be found on Windows ?
wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #4 on: August 12, 2025, 10:56:00 pm »
Hi Lulu. Thanks for the information. There must be something wrong in project options, probably in custom options. It seems that I didn't use the right syntax.
« Last Edit: August 13, 2025, 07:34:52 am by Roland57 »
My projects are on Codeberg.

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #5 on: August 13, 2025, 07:39:19 am »
The Lazarus project has been fixed. It should work now.
My projects are on Codeberg.

Lulu

  • Sr. Member
  • ****
  • Posts: 405
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #6 on: August 13, 2025, 08:05:29 pm »
Thank you, but now, I can't compile fpGUI package, it give this error:
Code: Pascal  [Select][+][-]
  1. fpg_oledragdrop.pas(113,23) Error: No matching implementation for interface method "SetData(const tagFORMATETC;var TagSTGMEDIUM;LongBool):LongInt; StdCall;" found

I never installed fpGUI before
wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #7 on: August 13, 2025, 10:26:15 pm »
Thank you for trying again and sorry for the inconvenience. Unfortunately, I don't know what to say, since I don't have a PC with Windows installed.  :(

P.-S. After reading again your message: you don't need to install anything. The Lazarus project should build the libraries and the program.
« Last Edit: August 14, 2025, 12:18:21 am by Roland57 »
My projects are on Codeberg.

Lulu

  • Sr. Member
  • ****
  • Posts: 405
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #8 on: August 24, 2025, 08:33:44 pm »
Hi Roland,
I was able to compile and run Eschecs!
The problem was in FPGui library: in unit fpg_OLEDragDrop.pas a Windows function is declared with wrong parameters.
Line 124, i replaced
Code: Pascal  [Select][+][-]
  1.     function    SetData(const formatetc: TFormatEtc; const medium: TStgMedium; fRelease: BOOL): HResult; stdcall;
  2.  
by
Code: Pascal  [Select][+][-]
  1.     function    SetData(const formatetc: TFormatEtc; var medium: TagSTGMEDIUM; fRelease: BOOL): HResult; stdcall;
  2.  

Now it compile and run well.
Thanks you to share this software  :)
wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #9 on: August 24, 2025, 09:32:19 pm »
The problem was in FPGui library: in unit fpg_OLEDragDrop.pas a Windows function is declared with wrong parameters.

Hi Lulu. Thank you for the information. Weird. I don't remember to have encountered the problem before. I will investigate. Anyway, glad that it work.  :)

P.-S. Here is what I have in corelib/gdi/fpg_oledragdrop.pas:

Code: Pascal  [Select][+][-]
  1.     {$IF FPC_FULLVERSION >= 30200}
  2.     function    SetData(const formatetc: TFormatEtc; var medium: TStgMedium; fRelease: bool): HResult; stdcall;
  3.     {$ELSE}
  4.     function    SetData(const formatetc: TFormatEtc; const medium: TStgMedium; fRelease: bool): HResult; stdcall;
  5.     {$ENDIF}

It starts at line 129. So I suspect that you didn't use the version of fpGUI included as submodule in Eschecs repository.  :-\
« Last Edit: August 24, 2025, 10:25:31 pm by Roland57 »
My projects are on Codeberg.

Lulu

  • Sr. Member
  • ****
  • Posts: 405
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #10 on: August 25, 2025, 05:38:14 pm »
Hi,
You're right, i've mixed an old version of FPgui and your program.
I don't remember, but I've already installed FPgui in the past, certainly to try. When I see the folder FPGui empty in your code source, I've copied the source code of fpGui that I've found on my disk...

I've erased all and re-installed all with this line found on your codeberg repo:
Code: Pascal  [Select][+][-]
  1. git clone --recurse-submodules https://codeberg.org/rchastain/eschecs.git

After that, I used the Lazarus project to compile -> there was one compilation error "impossible to found fpg_impl used by fpg_base"
For Windows, this file is located in libraries\fpgui\src\corelib\gdi
I've added a path in the project options (-Fu):
Code: Pascal  [Select][+][-]
  1. libraries\fpgui\src\corelib\gdi

After that, another compilation error appears: "can not found include file fpg_utils_impl.inc" (unit fpgutils.pas line 87)
For Windows this include file is located in libraries/fpgui/src/corelib/gdi
I've added the missing path (-Fi)
Code: Pascal  [Select][+][-]
  1. libraries\fpgui\src\corelib\gdi

Now Eschecs compile and run. I played a game that I lost, of course! :D

Sorry for confusing things with my old version of fpgui...
wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #11 on: August 25, 2025, 06:40:22 pm »
Hi Lulu. Don't be sorry. Thank you for all the informations. I believed that I had fixed the Lazarus project, but I see that it still needs to be fixed. Good to know.  :)

Now Eschecs compile and run. I played a game that I lost, of course! :D

Some engines are relatively easy to beat, Alouette for example. If you stay concentrated...  8-)
« Last Edit: August 25, 2025, 06:52:33 pm by Roland57 »
My projects are on Codeberg.

Lulu

  • Sr. Member
  • ****
  • Posts: 405
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #12 on: August 25, 2025, 08:29:20 pm »
Some engines are relatively easy to beat, Alouette for example. If you stay concentrated...  8-)
Thanks for the tip :)
wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Roland57

  • Hero Member
  • *****
  • Posts: 609
    • msegui.net
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #13 on: August 25, 2025, 09:16:14 pm »
So it seems that this (in Custom Options-Conditionals) doesn't work.

Code: Pascal  [Select][+][-]
  1. if TargetOs = 'win32' or TargetOs = 'win64' then begin
  2. CustomOptions += '-dGDI';
  3. UnitPath += ';libraries/fpgui/src/corelib/gdi';
  4. IncPath += ';libraries/fpgui/src/corelib/gdi';
  5. end;

I think I should have written:

Code: Pascal  [Select][+][-]
  1. if (TargetOs = 'win32') or (TargetOs = 'win64') then begin

Correction done.
« Last Edit: August 25, 2025, 09:27:12 pm by Roland57 »
My projects are on Codeberg.

Lulu

  • Sr. Member
  • ****
  • Posts: 405
Re: Eschecs (UCI chess GUI) 5.1.3
« Reply #14 on: August 26, 2025, 09:27:05 pm »
You're right!
I removed the two paths I've added from -Fu and -Fi, then modified the project custom options to
Code: Pascal  [Select][+][-]
  1.     if (TargetOs = 'win32') or (TargetOs = 'win64') then begin

To be sure I've launched a clean and build all command from the IDE.
The project compile and works well.
With an added bonus for me: I learned that we can enter conditional options with a syntax similar to Pascal!
I never used that. Thank!

wishing you a nice life!
GitHub repositories https://github.com/Lulu04

 

TinyPortal © 2005-2018