I don't know why I didn't do this before, but I have defined and used a more standardized way to create the initial save state, consisting of the following steps:
[1] Generate the SRAM (from the same movie I used for creating the previous starting savestate) by playing the generating movie until you are back at the Sega screen;
[2] close Gens and reopen Gens;
[3] load the ROM, quickly pausing before even a single frame elapses (it is possible);
[4] the previous two steps can possibly be replaced by reloading the ROM, but I haven't tried;
[5] the desired SRAM is still loaded, so start recording a new movie from the current save state -- Gens will ask you to create a new savestate, do so;
[6] advance at least one frame, pause, then start watching from the beginning (not even one frame should elapse);
[7] make a new savestate, rename it into a *.gst file and overwrite the save from step (5).
Steps (6) and (7) prevent Gens from complaining that the save state is incompatible with the current movie when you load it; I submitted a bug report about it.
With this setup, the generated savestate and the recorded movie are both consistent with starting a game from power-on with the given SRAM; in fact, if you hex-edit the movie to run without a savestate, and you don't clear SRAM when loading the movie, it will synch up perfectly. Until GMV2 is finished, this is a very robust workaround; it also has the advantage that it will make the movie easier to convert to GMV2.
Starting from this standardized savestate caused some lag and luck differences from the previous WIP, which forced me to resynch the run; but there were some minor benefits too, as I managed to improve Angel Island 1 & 2 in the process. Marble Garden 1 was improved by a slightly earlier hit on the boss. All of these improvements were possible on the earlier WIP.
The
new starting save state, created with the above procedure, the
new WIP using the new starting state and the new times:
Angel Island 1 0:35::33 (1)
Angel Island 2 1:06::09 (33)
Marble Garden 1 0:25::53 (3)
Here, the number in parenthesis indicate how many frames faster than the previous WIP this new WIP is.
A note: in Angel Island 1, after meeting with the flame bot for the first time, quietly waiting for the flames to go up as in the movie is faster than anything else -- it can make a difference of up to 30 frames (!) if you keep bouncing around while the screen is in flames.