0

Basically, I'm trying to compare a bunch of savegames to find where some values are stored.

First of all, it's a rogue-like interpreted in WinGlulxe. I'm dealing with almost 100% binary save files here, pretty much a direct dump from RAM with a header. I can't just Cheat Engine the game memory to modify the values. I've tried it and couldn't find anything as it's a virtual machine which uses a stack. I've done my research and it doesn't seems impossible to hack, just very difficult. I'd rather use the easy, static way which are the savegames.

Now to my conundrum: I have three files, 1, 2 and 3. All went through a slightly different character creation process.

  • In 1, I have maxed strength, wisdom and intelligence.
  • In 2, I have done the same. The diff between them reports differences. Probably thanks to a different RNG seed, not totally sure on the cause. The map is not YET generated. Files where I've entered the dungeon have 40+KB, these 3 differ by a few bytes at most. I have no idea why.
  • Finally, in 3 I have maxed dexterity, wisdom and intelligence.

What would be the easier way to find the set of differences between 1 and 3 which ARE NOT in the set of differences between 1 and 2?

Preferably, I'd like something that would work in Windows. I know my way around Linux, but I'm in a slow connection and Ubuntu is taking a few hours to download.

3
  • Use a comparison tool like beyond compare which supports 3-way difference reports
    – Ramhound
    Commented Jan 29, 2014 at 1:49
  • @Ramhound I can only do that for text files with Beyond Compare. Passing them though xxd was useful, I'll try to figure out how the interface works but it seems quite awkward.
    – Albertoni
    Commented Jan 29, 2014 at 2:15
  • Hexedecimal is a text representation of binary data, and you could diff these. But why are you starting with such widely different files? Surely start the game three times, with three random sets of attributes and immediately save.
    – Paul
    Commented Jan 29, 2014 at 4:05

1 Answer 1

1

ECMerge supports three-way (Meld-like, no KDiff3 ones) binary comparisons.See it here in action.

http://www.elliecomputing.com/en/OnlineDoc/ecmerge_en/241198214.asp

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .