ATTN: Killap
First I'd like to thank you on such great work with the Restoration Project. I've played F1/F2 so many times and it's been great to play F2 again with new stuff to do.
However, I've run into the same crash bug that others have with the EPA elevators.
Since I have a knack for fiddling with stuff I thought I'd have a look and try to figure out what was going on myself, so I decompiled the EPA scripts (Wow, what a mess the decompiler made!) and had a look and tried a few things.
Since the problem occurs with the elevator scripts, I decided to work with
EPAS1.INT first. (The script for the elevator to the right of the ventilation shaft where you enter that level.)
After mending the script so that it would recompile without error and had the same functionality I tried modifying the procedures to see if I could discover what was wrong. I tried a bunch of stuff, such as trying to close dialogue before the
load_map() function gets called, ruling out a possible bug with loading a new map while still in a dialogue script, a wild idea, and it didn't do anything. I went further and tried making new dialogue nodes just for the
load_map() function just to be more sure.. it didn't work.
Earlier in this thread you mentioned something about it possibly being due to the engine attempting to save out map data before it loaded the next map. When the game crashes on my system there is a second or so of disk activity before the game exits with an error. "
The Instruction at 0048d9a4 referenced memory at <random>. The memory could not be read from." which is the same error that others have seen, (that were able to.)
I thought that if saving map data were the case then the game would crash no matter what map gets loaded (since the engine probably wouldn't get that far anyways) so I decided to modify
Node003 (entry to Sub-Level 1) to load a different map instead of
EPAMAIN.map load_map(158, 1). I changed it to instead load
NEWR1.MAP load_map(54, 1) <--New Reno, Virgin Street. This map change worked without error and together with the disk activity before crashing, which I am assuming is the map data being saved, I'm lead to believe that this possibility can somewhat be ruled out as well.
At this point I'm leaning towards it possibly being an issue with the initialisation of
EPAMAIN.map, but since this map change is working for some people and not others it's quite aggrevating and difficult to postulate what is causing this issue.
Since I have some time I'll keep plugging away trying different things, but mostly trying to rule out what it isn't than finding out what it is. Ya gotta corral the pigs before you can catch one!
Later I'm going to try:
1. messing with the map's init script to see if I can find something there.
2. Make my own custom map and try applying the same types of scripts to elevators, etc., to see if I can make my game crash in an attempt at replicating this issue.
3. Making some grilled cheese sandwiches. (CRAVING!
)
4. Keeping you updated on my progress, or lack there of.
Oh, and on a final note I have a request. Could you please make available the uncompiled scripts for the EPA so that I (or others) might peruse them? This way I'll know that I'm working with the proper procedures instead of having to rebuild decompiled scripts. TIA.
-FRDM
(p.s. Yeah, it's my first post. Long time reader, first time poster.)