First post, by Serious Callers Only
If you ever played I76 patched to gold you should know there is a absolutely horrendous problem with it on the transition of mission 12-13. It always crashes except if you exchange a dll (I76shell.dll) for a older version from a earlier patch. (and then you must change it back, because of unspecified "problems").
Normally i would just play the previous patch, but gold is the only version that has glide support (much nicer with dgvoodoo).
I've been looking at the original exe file with olly debugger a little.
It crashes at a function that starts at 0x00467470. Setting a breakpoint there before it crashes, reveals that it seems to be part of the memory filesystem of the game, since many resource names pass there before the one that crashes. That happens because the argument to it is apparently a null pointer (and is interpreted as a zero when reading the memory, with predictable results).
This is the function:
CPU Disasm
Address Command Comments
00467470 MOV EAX,DWORD PTR SS:[ARG.1] ; i76_without_cd_music.00467470(guessed Arg1)
00467474 MOV ECX,DWORD PTR DS:[EAX+3BC]
0046747A MOV EAX,DWORD PTR DS:[ECX+70]
0046747D RETN
Ignore the name of the exe that is other hacking i made - but the problem is in the original exe too.
The problem appears to happen tenth time or 11th that the function is run after clicking next mission. I think that the caller function is the earliest one in the executable. Obviously the problem comes from outside
I wonder if anyone more experienced than i can help me fix this.
I give a link to the save games in hope that is so(the error is in save 2 - mission 13 when you click next mission. If you follow the normal procedure of replacing the i76shell.dll for the older version, save one works if you finish the mission with it, but not on save 2 - that doesn't need to finish a mission).
BTW on wine i had to provide arguments -glide (maybe -d3d works too?) to be able to debug. Software mode appears to paint over everything, or maybe it's dgVoodoo fixing this?
Anyway would be really nice to make this work without immersion breaking hacks.
http://www.megaupload.com/?d=DA0BLC4W
(has the save before the error (2) using original gold dll, and the save without the error (3) using the 1.083 dll).