The notes for 50.05-alpha3 mentions that Itch.io and Classic support is scheduled to come with DF 50.06. Can you explain why?
My guess would be that Toady/Putnam (quite possibly the latter) has identified a layout solution that would make the layout of DF proper data the same in all versions, and move all vendor specific data to vendor specific locations outside of the space used by DF natively, but that's obviously just a guess.
No, it's that the DFHack team identified a structural issue with data layout. This was really evident to us almost immediately, the first time we analyzed an itch.io image, which would have around December 10 or so, well before Putnam was hired. Putnam subsequently confirmed our conclusion. The issue itself arises from some
#ifdefs in the middle of the definition of
gamest for data specific to mod management, which has extra functionality for Steam editions which requires extra data.
We could have accommodated this by either splitting the
gamest up into two (or possibly three, I'd have to go look) chunks which would have to manually realigned (we locate the global variable
game automatically off of the global table Toady provides, but that won't work as well if we have to chop up
gamest into pieces), or else make two (or even three) different editions of DFHack for each release, one with a version of
gamest that works with Steam editions and one that works with non-Steam editions. We obviously
can do this, but doing it complicates our build process but more importantly makes using DFHack more difficult for end users, who would have to be careful to choose the correct edition of DFHack to install. The mechanism by which DFHack determines which version of DF it's been installed to run against would prevent catastrophic misoperation, as DFHack will detect that it is being run against a version of DF it is not compatible with and will shut down, but this would still be annoying for end users and is something we would like to avoid. DFHack is supposed to make DF
easier to play, not harder.
When we discussed this issue with Putnam we found her agreeable to proposing a solution to Toady that would obviate the complexities that the above solutions entail. Our specific recommendation was to move the Steam-specific data elements to the end of the structure in question or to a separate structure, but Putnam instead elected to recommend replacing them with equivalent padding when the Steam configuration parameter is not set, which means
gamest will have the same alignment on Steam and non-Steam builds. (This is probably because from our point of view
gamest is one very large structure, while from Toady's point of view it is a compound of several smaller structures, one of which contains the mod-related stuff. Moving the Steam-specific data to the end of
gamest as a whole would force a fairly complex restructuring of
gamest from Toady's point of view, which is obviously not desirable.) The communications we have indicate that Toady is agreeable in principle to these proposals, but we have not (to date) received any definite confirmation that they will, in fact, be in the next release (which I personally attribute to simply the fact that Toady and Putnam both have a lot of stuff to deal with right now, and accommodating the DFHack team's requests is quite reasonably neither of their highest priorities). If they don't show up in the near future rest assured that we will implement a Plan B, and it is certainly
not our intent to
permanently leave itch.io and Classic players in the lurch, but we remain hopeful that Toady will remain agreeable to the solution that we worked out with Putnam and that the changes we jointly recommended, or some other equivalent solution to this problem, will find their way into a future release, which we also fervently hope will be the
next release. At the same time, we recognize that making Dwarf Fortress more compatible with DFHack is not a development priority for Toady, and totally understand if Toady elects to defer, or even to decline, implementing such proposals in favor of advancing any other aspect of development that seems to him to be more fruitful.