AndrewGrant wrote: ↑Fri Feb 21, 2025 9:50 pm
Hopefully I won't regret actually explaining something on Talkchess, but here goes:
That code checks that the file you are opening is a specific size. Namely, the file size must be a multiple of 16. Among other things. It is probably the case that the files have some data format, in which this is guaranteed to be true. So one of the first checks in the code is to make sure that it is infact true.
The condition is false for you. Very likely because you do not have VALID tablebase files downloaded. Either you have partial downloads, or corrupted data, or possibly just downloaded from a source with incomplete/invalid tables.
The correct path forward for you to is compute checksums for your files, and compare them against the known checksums. Something like ChatGPT can help you do this if needed. You could also just delete all your files, and redownload them. I would suggest the lichess download source.
To make it super super super clear: Deleting the line DOES NOT FIX YOUR PROBLEM. It hides it. If you delete this code, you will run into problems somewhere else, almost immediately.
I'm sorry, but I wasn't satisfied with that answer. The syzygy 3-4-5 database includes a file integrity verification utility. I downloaded the databases from this resource https://chess.massimilianogoi.com/download/tablebases/.
Anyway, thanks for trying to explain the question.
AndrewGrant wrote: ↑Fri Feb 21, 2025 9:50 pm
Hopefully I won't regret actually explaining something on Talkchess, but here goes:
That code checks that the file you are opening is a specific size. Namely, the file size must be a multiple of 16. Among other things. It is probably the case that the files have some data format, in which this is guaranteed to be true. So one of the first checks in the code is to make sure that it is infact true.
The condition is false for you. Very likely because you do not have VALID tablebase files downloaded. Either you have partial downloads, or corrupted data, or possibly just downloaded from a source with incomplete/invalid tables.
The correct path forward for you to is compute checksums for your files, and compare them against the known checksums. Something like ChatGPT can help you do this if needed. You could also just delete all your files, and redownload them. I would suggest the lichess download source.
To make it super super super clear: Deleting the line DOES NOT FIX YOUR PROBLEM. It hides it. If you delete this code, you will run into problems somewhere else, almost immediately.
I'm sorry, but I wasn't satisfied with that answer. The syzygy 3-4-5 database includes a file integrity verification utility. I downloaded the databases from this resource https://chess.massimilianogoi.com/download/tablebases/.
Anyway, thanks for trying to explain the question.
For starters, 6 of the files at the download location do indeed have invalid checksums. In this case, they are probably just older tables with some bugs. Not actually your problem. But you should get the correct 3-man files. So while you were not "satisfied", you are welcome.
Take a look at one of your files. See how many bytes the file is. Post that number here.
I suspect some part of your process added information to the files in some way, as to modify their size. If the sizes are fine, the next guess is some sort of bug like size_t being fewer bytes than expected, or something very obscure.
I do regret once again posting on this awful forum.