Now that's just awfully awesome!

I tried another approach at dumping the data, and ended up with a restunts based tool. It's in the repo as repldump. It basically initializes the game engine with a replay, steps through each frame, performs
update_gamestate(), and dumps the entire 1120 byte
gamestate structure to a file for every iteration.
UsagePut the attached
repldump.exe in your Stunts folder and run
repldump.exe replname in a 16-bit DOS environment, such as DOSBox. The replay must be located in the same folder, and the file extension must not be included in the command. The program will then read
replname.rpl and write
replname.bin. The result file has the following format:
uint16 numFrames;
uint8 gamestate[numFrames][1120];
I also attached an example C program for parsing this file. Take the struct declarations with a grain of salt. I suspect that some of the field names are at best misleading. But all in all this info should enable us to compute penalty time, detect DNF, provide analysis, and maybe find the cause of some bizarre bugs.