Ok, the problem is that the exe is not loaded to 0x0400000 (it's preferred memory location). This may be due to a conflicting dll or whatever else, the result was that the checksum and all other memory reads were way off target. The new version now explicitly takes the position of the exe into account and corrects all other memory locations accordingly. Thing is, the relocation of the exe also results in a modification of the code (to reflect the changed addresses) and thus changes the effective checksum. It looks like I'll need to figure out a more stable way of identifying the DF version.
For now, if you had troubles in Vista, try the new version and see if it works out of the box. If it doesn't, try to modify the MemoryLayouts.xml and replace the checksum for the 40d9_vista layout (third line) with the one you get. The current checksum is for the exe location I get, but I have no idea if it's loaded to that location in general or if it's something that depends on your config (windows, updates, dlls installed,...). Feedback is welcome
The 0.5 is not of interest to you if it currently works.
Download here. Changelog:
Version 0.5 [2009-01-21]
* Added address correction for the case that the exe file is not loaded to the default location,
which should solve the vista problems. - Sadly, only partly, because the relocation also changes
parts of the code and thus the checksum.
* Added a 40d9 layout with the checksum I'm getting in vista.
* Added the MemoryLocator tool which should make updates to new versions easier.
This is not intended to be end-user friendly, but more of a dev-tool, as it can only handle few changes
of the overall structure.
Codewright, what development environment is needed to work on Manager?
I don't know whats needed, but I use VS C# 2008 Express.