Hello Guys,
Lately, I have found some time again to work on the replay problem in San Andreas. I took the tools and databases created by the people from
Plugin-SDK and used them to investigate how replays work. They have decompiled most of the san andreas source code and have labelled most of the functions and data structures. This allowed me to take a close look at the Replay mechanics.
As most of you know already, a replay is sequence of frames wherein in each frame records nearby positions of cars, peds, current time and weather. The game engine updates everything related to the game at 25 fps per second. This includes the playing and saving of frames in a replay when the frame limiter is turned on. However, when turning off the frame limiter, the saving of replay frames is determined by another clock. This prevents the replay from saving frames at a variable rate and ensures a somewhat steady rate of frames in the replay.
By manipulating this clock it is possible to make the game save more frames to the replay than the normal rate. I made a simple .asi script that you can use to toggle higher processing of frames. Then when replaying those higher fps replays they will be played back at a slower rate as the standard replay player of GTA:SA only still plays at 25 FPS. Still I thought some of you might be interested in this. You can record your replays at 25 and speed them up in your video editor and get nice and smooth playback.
However, be warned, higher rate of frames in the replay might make it shorter than usual. A replay can only store limited data i.e. 782 kb of data. Turning on ghost-town improves the length of the replay. Naturally, this script does not work for replays you have already saved. I have not been able to get SA to play replays any faster than 30 fps per second by decreasing the game tick time. If you do decide to use this than I am not responsible for any loss of replays, stunts or sanity.
You can find the .asi script in the Github repository down below. You will need
dinput8.dll to load the script
https://github.com/ReynoldsGTA/ReplayFrameRateChanger