build 142 is up:
- don't check SyzygyPath for engine default pameter changes
- use d:hh:mm:ss for elapsed/remaining time if 24 hours or more
Myracle GUI
Moderator: Ras
-
mar
- Posts: 3043
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
-
Modern Times
- Posts: 3955
- Joined: Thu Jun 07, 2012 11:02 pm
Re: Myracle GUI
Thanks. I'll try later. Nothing had changed for obsidian or any other engine. Obsidian had worked previously and then just didn't. I can email you a screenshot of the error.
-
mar
- Posts: 3043
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
sure e-mail or a pm would be fine. if the message is something like
then that's what I suspect happened (and this new build should fix that).
what I find strange is that something would default to a hardcoded fixed path - and having checked all obsidian versions with SyzygyPath
they all have the same default value
either way, please let me know if the problem still persists with 142
EDIT: an alternative fix for 141 would be to go to engine options and click detect in engine options, assuming it's what I think it is
Code: Select all
engine_name: default changed for parameter SyzygyPath: old ? new ?
what I find strange is that something would default to a hardcoded fixed path - and having checked all obsidian versions with SyzygyPath
they all have the same default value
either way, please let me know if the problem still persists with 142
EDIT: an alternative fix for 141 would be to go to engine options and click detect in engine options, assuming it's what I think it is
-
Modern Times
- Posts: 3955
- Joined: Thu Jun 07, 2012 11:02 pm
Re: Myracle GUI
I posted the screenshot here, if you have access to that:
https://discord.com/channels/1275497005 ... 5791051832
One thing I noticed is that the paths parameters all have a forward slash, and the sysgy path in engine parameters (navigating to it) shows a back-slash, if that matters. That may have always been the case but this is the first time I noticed.
https://discord.com/channels/1275497005 ... 5791051832
One thing I noticed is that the paths parameters all have a forward slash, and the sysgy path in engine parameters (navigating to it) shows a back-slash, if that matters. That may have always been the case but this is the first time I noticed.
-
Modern Times
- Posts: 3955
- Joined: Thu Jun 07, 2012 11:02 pm
Re: Myracle GUI
Ah, I just did DETECT as you suggested, the path cleared, then I navigated to the folder and it then stored it with a forward slash.
-
mar
- Posts: 3043
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
I don't do discord, sorry.
my GUI and framework always works with forward slashes only, even on Windows this should be no problem.
looks like the original options were perhaps imported from elsewhere (cutechess?)
either way, forward/backward slashes shouldn't matter at all on Windows.
so I assume build 142 and/or detect did resolve the issue?
note that detect should not change actual values unless the default has changed - in which case it would use the new default (which is empty)
i.e. if value = default value and default value changes for a parameter (relative to what's stored in engine settings), detect will change it to a new default
so technically speaking, in 141 everything worked exactly as intended.
just that for SyzygyPath this is a bit annoying so it's now ignored. I've no idea why anyone would hardcode default syzygypath
to a random local location, perhaps it was a custom build or maybe even hand-edited in engine.json in cutechess?
the problem with this is that unless it's overriden, it might load syzygy for that engine that was not intended.
I will keep it as is in build 142, so default value change for SyzygyPath will be ignored for now and whatever is in there will be sent to the engine.
so if engines.json has value = default for SyzygyPath as c:\syzygy5, the GUI will now send that to the engine now even if default is empty instead of aborting with that error message
perhaps the original behavior was better, since the error message even says/hints what to do to fix it
another option would be that if value=default stored in settings, just send the new default instead (which is what detect does),
but even that may not be intended
my GUI and framework always works with forward slashes only, even on Windows this should be no problem.
looks like the original options were perhaps imported from elsewhere (cutechess?)
either way, forward/backward slashes shouldn't matter at all on Windows.
so I assume build 142 and/or detect did resolve the issue?
note that detect should not change actual values unless the default has changed - in which case it would use the new default (which is empty)
i.e. if value = default value and default value changes for a parameter (relative to what's stored in engine settings), detect will change it to a new default
so technically speaking, in 141 everything worked exactly as intended.
just that for SyzygyPath this is a bit annoying so it's now ignored. I've no idea why anyone would hardcode default syzygypath
to a random local location, perhaps it was a custom build or maybe even hand-edited in engine.json in cutechess?
the problem with this is that unless it's overriden, it might load syzygy for that engine that was not intended.
I will keep it as is in build 142, so default value change for SyzygyPath will be ignored for now and whatever is in there will be sent to the engine.
so if engines.json has value = default for SyzygyPath as c:\syzygy5, the GUI will now send that to the engine now even if default is empty instead of aborting with that error message
perhaps the original behavior was better, since the error message even says/hints what to do to fix it
another option would be that if value=default stored in settings, just send the new default instead (which is what detect does),
but even that may not be intended
Last edited by mar on Tue Oct 06, 2026 8:24 am, edited 1 time in total.
-
Modern Times
- Posts: 3955
- Joined: Thu Jun 07, 2012 11:02 pm
Re: Myracle GUI
Probably imported from cutechess at the beginning, but it worked before, and then it just didn't when I put the build 141 files there. Not sure what to do now - I guess just upgrade to build 142 and check everything runs, and that engines that should be using the sysygy bases actually are.
-
mar
- Posts: 3043
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
the default value validation is a relatively fresh feature, so it's been there for a couple of builds already
it's an important validation to catch potentially misconfigured engines as I explained
now I'm not sure the fix in 142 to ignore SyzygyPath default value is a great thing but I'll keep it as is.
whatever people have in options for SyzygyPath will be sent to the engine in that case, regardless of whether the default value the engine exports has changed compared to what's stored in engine settings
so - it worked in some older build without complaints because that build didn't have the default value check
it's an important validation to catch potentially misconfigured engines as I explained
now I'm not sure the fix in 142 to ignore SyzygyPath default value is a great thing but I'll keep it as is.
whatever people have in options for SyzygyPath will be sent to the engine in that case, regardless of whether the default value the engine exports has changed compared to what's stored in engine settings
so - it worked in some older build without complaints because that build didn't have the default value check
-
Modern Times
- Posts: 3955
- Joined: Thu Jun 07, 2012 11:02 pm
Re: Myracle GUI
Right, OK. Yes the build I was using before was more than 2 versions back.
I only have 20 engines installed so I repointed the Syzygy Path on each just to be safe - and many were backward slash and are now forward slash, although as you said that should not have mattered. New tournament about to start
Thanks again for this great GUI.
I only have 20 engines installed so I repointed the Syzygy Path on each just to be safe - and many were backward slash and are now forward slash, although as you said that should not have mattered. New tournament about to start
-
mar
- Posts: 3043
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
let me explain again the motivation behind this on the Princhess example (this is what happened during real testing resulting in flawed results):
Princhess 0.20 exposes this:
but Princhess 0.21 changed the defaults to this:
what happened was that Andres simply installed a new princhess over the old, but in engines.json old value were stored
from an old version
due to how things work, the GUI simply used and sent the old values to 0.21, so TMPvDiffM was set to 461 instead of 121,
resulting in flawed tests that cost some elo
so in newer builds, if a default value changes and the GUI finds a discrepancy between what's stored in engines.json and what the engine
exposes, it assumes it's misconfigured and stops with an error, giving hints to what could have happened
another option would be to send the new default instead automatically, but again that may or may not be the right thing to do.
so I prever to simply stop with an error until the engine is reconfigured
(note that detect will change to new default automatically if it detects that value was old default)
Princhess 0.20 exposes this:
Code: Select all
option name TMPvDiffM type spin default 461 min 0 max 131072
Code: Select all
option name TMPvDiffM type spin default 121 min 0 max 131072
from an old version
due to how things work, the GUI simply used and sent the old values to 0.21, so TMPvDiffM was set to 461 instead of 121,
resulting in flawed tests that cost some elo
so in newer builds, if a default value changes and the GUI finds a discrepancy between what's stored in engines.json and what the engine
exposes, it assumes it's misconfigured and stops with an error, giving hints to what could have happened
another option would be to send the new default instead automatically, but again that may or may not be the right thing to do.
so I prever to simply stop with an error until the engine is reconfigured
(note that detect will change to new default automatically if it detects that value was old default)