VOGONS

Common searches


Help me fix interstate '76 gold?

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 21 of 29, by Serious Callers Only

User metadata
Rank Member
Rank
Member

If anyone has the original gold version (the one that was sold in stores) or the arsenal version i think too, had this problem too?

Edit: i'm not getting anywhere. As i thought, i can't even recognize the error. If you want to give it a go, the main cycle that appears to be loading the resources is at
004573F5
using some strange function pointer thing.
It crashes at first at
0046747A
The parent of the function that crashes is of many possible:
0040F8F0
It is probably called by one of the function pointers of the main loading cycle above.

Reply 22 of 29, by Serious Callers Only

User metadata
Rank Member
Rank
Member

004577F0 seems to be loading the order of the compressed filesystem (its probably a zip file file I76.ZFS). It has a index called I76.ZIX.

If i edit the offending index (wauto_1d) to remove the name of the file that crashes (and edit the number of files, it still crashes (logical, since it would assume another name for the same file i guess.) Unfortunately the file isn't really a zip file, at least archive manager in linux can't recognize it.

Reply 23 of 29, by RoyBatty

User metadata
Rank Oldbie
Rank
Oldbie

Well without looking at the game, and going by what you've posted. There seems to be a corrupted table, try to find the table that the offset is pointing to. You can then search in the memory for it when the other dll is loaded and compare it. (copy paste the binary into notepad).

It's likely this table is contained somewhere either in the game (I don't think so), or in the dll (most likely). You might then be able to repair the table with the data from the old patched dll.

I wish I had this game, I would certainly help you debug it. Anyone know where I can buy it cheap?

Reply 26 of 29, by Serious Callers Only

User metadata
Rank Member
Rank
Member

I was thinking of finding the error in the dll file too, but i don't if i can find it. The dll seems to be copied to the program memory, ie, there is not anything in the debugger that says: "now we are in that dll file". I don't know, maybe i just looked at the wrong times/places, but if i can't find where it is, i probably can't overwrite it.

Reply 27 of 29, by RoyBatty

User metadata
Rank Oldbie
Rank
Oldbie

If your using ollydbg, open the Memory window (press the M icon), all memory is listed here, dll's (modules) are on the left side after the address they are in. You can view those in the disassembly window and the local memory window under it. Just right click the module's 2nd section (.text usually) and choose view in disassembly window. You can then also press CTRL+A to analyze it so it makes some sense when looking at it. Olly is quite powerful once you get to know your way around it. =]

Reply 28 of 29, by UCyborg

User metadata
Rank Member
Rank
Member

The actual reason the game crashes there is that one function that calls HeapCreate also stores the handle to the newly created heap in the variable holding the handle to another already existent heap, overwriting it. So certain function calls dealing with memory allocation were specifying the handle to the wrong heap.

It works on Windows 95 with just the Gold patch accidentally (at least it did for me with emulated PC using PCem).

Arthur Schopenhauer wrote:

A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.