I just did a test and it seems while at high resolutions OGL2 GPU flashes black while loading states, it doesn't actually freeze the game, so except for a couple overhead frames, 2 videos made with lowres TAS GPU and hires OGL2 match frames very well.
It means, we can use that to finally add a feature for getting rid of resync artifacts in video and audio. But alone I couldn't do it, because the script is complicated as hell.
So I'm requesting this tweak: whenever desync occurs, make a savestate 10 frames
before it's being done currently. And store the current frame in the table, and as a state name. So that when sync script gets to that frame, it loads the state that's 10 fames back. This way we will have 10 extra frames in the video per desync. If it also creates a file, listing all these frames by comma, we could use it in avs to cut out those 10 frames.
The same goes to creating TAS SPU checkpoints. Checkpoint creation must happen 10 frames
after they're created now, then the current frame number is stored, and written as a save name. So that when it gets to those frames, it will as well load a state from 10 frames back.
Note that I'm now using a version that accounts for "while true do" loop delay, and loads all regular states 1 frame earlier, which now doesn't let the emulator draw desynced picture. Also, I added Sleep(1) to pcsx.suspend. So, BadPotato, if you will try implementing the request, use my latest versions of script and emulator:
http://feos-tas.googlecode.com/svn/trunk/Misc/pcsx-13f.7z
http://feos-tas.googlecode.com/svn/trunk/Misc/PcsxrrEncodeWofkflow.7z
EDIT:
Forgot to add that I also removed the need to use GD, because we don't need to deal with existing image files anymore, everything is done by a single lua function, other GPU's rather than TAS one aren't needed.