intptr_t. Other than this, there were no major difficulties with DFHack. Lethosor fixed an issue with vararg functions that suddenly started to crash on 64-bit. Update DF structure definitions
longtype is used in the DF graphics code, so those structures needed to be updated. But that was easy. While the big problem is that in many places, when we don't know the meaning of a field in some structure, we simply use
int32_ttype for it. However, some of this fields are actually pointers, and while this wasn't a problem on 32-bit, now all the pointers changed size, and a lot of data structures became incorrect. On the bright side, now we can better understand what are pointers and what are integers in DF structures. It took long time to find such fields in
world_dataand some other structures, but in the end I got a working 64-bit DFHack with most of the plugins (that I've tried) working. Current status Repos with 64-bit fixes (look for
64-bitbranches): pronvit/dfhack, pronvit/df-structures, pronvit/scripts. The last one has an updated
devel/find-offsetsscript to find almost all of the required global addresses. I don't have any more time to work on this (need to release DF Remote with support for DF 0.43.03 as soon as possible), and what needs to be done now is just further testing of all plugins to make sure all data structures are correct. I don't know how much time this is going to take and who is working on it now.
comments powered by HyperComments