@bonkmaykr@canithesis.org
56 following, 31 followers
Here's what I learned.
MinGW is better behaved than MSVC, as I expected. However, it also has some bugs specific to it. For some reason our INI read/write library (@wirlaburla@canithesis.org) sends corrupted junk to the file input stream during config construction - I figured out this is apparently a known issue that occurs in one of the -O1 optimizations since at least three years ago and was never addressed. For now, the Windows ports have zero optimizations until I can figure out the exact offending CFLAG.
https://stackoverflow.com/questions/71109757/very-strange-mingw64-c-bug-when-readinig-from-a-file-inside-a-function
Allegro's official TrueType plugin relies on a FreeDesktop library called Freetype, which in turn has an optional, but highly encouraged (and recursive! the hell?) dependency on Harfbuzz, another library that does the exact same thing. Harfbuzz in turn depends on DirectX 10's "DirectWrite", ANOTHER library that does THE SAME THING, as well as GLib, which is to put it very simply a collection of stuff that's mostly already in libc.
If you raised your eyebrows a little and said "That sounds fucking retarded", then you would be 100% correct. In typical FDO/GNOME/RedHat fashion, they have managed to take something so simple and contrive absurd levels of pointless complexity out of it.
This single dependency tree, which is enabled in every binary distribution of Freetype out there, is singlehandedly responsible for Allegro silently dropping support for Windows XP out of the box. Freetype has to be recompiled to remove the bloat.
To be clear, I'm not mad at the Allegro guys - most of the design decisions for liballeg 5.x were made like a decade and a half ago when the whole FreeDesktop situation was a lot different, and I doubt any of them even noticed this was the case because nobody uses XP anymore. The only way I even found all this out was when I was forced to dependency walk the compiled binary to find out why it was failing to load, the average developer now is not going to think twice when they just grab the MinGW/Nuget packages and ship them as-is.
So yeah. MYTHOS engine works on Windows now. I'm glad to check another milestone towards completing the first demo version off the list.