FabMan: I know this is years later, but how do you figure these type of things out? You just saved my game, and others here, so thank you.
dtgreene: The idea is something like this:
* Hypothesis: There is a flag, stored in the save file, that affects whether the player can rest.
* Find a place that doesn't allow resting.
* Make two save files, one in a place that does allow resting, and another that doesn't. Ideally, these save files should otherwise be the same, or at least as close as possible; we want to minimize spurious differences between the save files.
* Compare the two save files. This involves using tools to dump the save files in a format like hex. For example, on Linux, you could use the hexdump utility to dump the file, then use the diff utility to find differences. (In more complicated cases, you might write some custom code, or for in-memory stuff, use the search features of something like Cheat Engine or scanmem).
* Find a difference that looks like it could be a flag.
* Take a save file (maybe make a backup just in case), and use a hex editor to change the suspected flag. Then load the save file; if there's no checksum in the file, the save will load, but with that value different.
* Then, try to rest in the modified save, to check to see if the modification actually worked.
Thank you, that make sense. Reading your reply made me realise I did this as a kid with the Game Genie. Play the game, store values, lose a life, compare values, rinse and repeat until the Game Genie exposes a few possible lines that you can try modifying and then see if that provides the desired result. Thanks again.