I'd like to help, but I don't have a 64bit system handy for testing.
Also, got some bad news: the next version has lots of updated cores, and with updates come more critical variable scanning. This means .42 states won't be compatible with .43. I had a dream about a new savestate format that would overcome problems like this, but we would probably have to do some collaboration to make it happen.
I'm guessing that right now everything is saved in a binary blob, and if something is added or missing in-between, everything below it goes a-skew.
The idea is, state data could be saved in a format like:
var_name_token,size_of_data,data
if the size doesn't match the current size, it would be skipped. Also, if a new variable is added but the data in the savestate doesn't exist, it would get skipped.
Of course, Jan's special version could do this in the latest incarnation of C++, with a ton of add-on libraries, but, that would leave a lot of people out. We need a global solution that will work with archaic compilers alike. C++99 would be the limit.
Jan, I'm really surprized you can't think of a solution that doesn't require the latest C++ and a bunch of libraries, I'm not even going to debate this with you, but.. give me a break!
best regards,
- dink