How to Retime SM64 Runs
How to Retime...
1.: Tools to Retime and Record
First of all, in order to be able to properly retime we should have some tools handy which ease and fasten up the process of doing so.
Avidemux, a simple and fast tool to quickly retime
Amarec v3.10, with this software we can record gameplay as close to optimal as possible, on point 3.1 I am showing some pictures of the ideal settings. Make sure to additionally download and install the LAGS Codec in order to get rid of the AMV watermark on Amarec.
1.3: Video Downloading
1.4: Converting FPS
This guide will only explain retiming using these tools. You can of course also use other tools to your liking, from my experience however the tools I've listed provide the fastest and most precise workflow. You can also use other tools to download videos if you like to, although yt-dlp really beats any of those in any regard.
2.: General Information
- Retiming will almost never display perfectly accurate results.
Due to inaccurate game capturing, the likelihood of us to precisely retime any video becomes lower the longer the video is. The only way consistent accurate results were possible, would be a built-in timer because it uses a mathematically correct in-game calculation from the Usamune Rom. The only category this is allowed in SM64 is Single Star.
- OBS is not an ideal recording software for SM64
OBS, as convenient as it may be, is sadly not a very accurate recording software for SM64. It can't record the framerate of the N64 properly, will occasionally skip a frame or create a dupe frame to sync up. The most ideal way to record instead will be explained in the third step of this tutorial.
- N64 framerate is 29.914…/59.828…
So 1f is actually 0,033429…, unfortunately there is no recording software that natively supports recording in that framerate, so we have to convert the video to that specific framerate. See '4.2: Using ffmpeg to convert FPS'.
- N64 framerate is actually not always 29.914…/59.828…
The framerate does very slightly differ between each unique N64 machine and even on different occasions on the same machine itself, further complicating an accurate result by manually retiming. This is a point where manually retiming is at it's limit and we need to accept potential mistimings.
- Theres a thing called Dupe Frames...
A dupe frame is a frame your recording software can create by either syncing up video to audio or by recording in FPS that don't match the output FPS of the N64. As we just have learned, this is not 100% avoidable. It also can be difficult to distinguish a dupe frame from a lag frame. There is a slight difference that can be made out though; lag frames usually still have a slight visual change in the games environment while a dupe frame is a copy of the previous frame without any change at all. You must remove dupe frames manually if you want a perfect recording.
- Other Software
It is best to close all other software and just have Amarec run to avoid any extra dupe frames. I know this is getting ridiculous, I am just pointing out facts.
- Source Material ≠ Downloaded Material
The retiming directly from the source material will be more accurate than if it was uploaded to a video hosting platform and downloaded again, keep that in mind when retiming clips that already have been retimed and you notice a slight difference.
In general for retiming to be as accurate as possible, try to get the earliest possible source of material you can get. Here is a hierarchy to follow:
- Local Recordings via Amarec
- Local Recordings via OBS
- Downloading from the earliest possible point of data transfer
- Downloading from video sharing site uploads
I am aware that these standards are very high and it is not realistic to expect most RTA runners to do this. I myself value my time too much to go through my own stuff doing all this each time. Also, a bitter lesson here is that retiming is a meme and at the end of the day can't be treated as an exact science, so I don't think it's necessary to be pedantic about it.
3.: How to Record Gameplay Properly
If you wish to record gameplay with as little inaccuracies as possible yourself you should capture your gameplay with Amarec v3.10 with no sound in 59.97 fps, then capture only sound with another Amarec v3.10 instance in 60fps. You can just copy and paste a second instance of your Amarec folder and run each respective .exe in each folder. When you have finished your recording you convert the 59.97 fps video footage to 59.828 fps by using ffmpeg (See 4.2: Using ffmpeg to convert FPS). After that you merge video and sound in another video editing software. This way the sound cannot create dupe frames in your recording due to syncing issues. Yes, this is tedious, but it is the cleanest way possible we can record footage. However, even if you record this way, there may still be minor unavoidable inaccuracies, especially on longer recordings.
3.1: Proper Settings
Click me for a little guide to see proper Amarec Settings, by iotku.
4.: How to use yt-dlp/ffmpeg
4.1: Using yt-dlp to download videos
Quick tutorial how to use it here.
4.2: Using ffmpeg to convert FPS
Quick tutorial how to use it here.
If theres something that is unclear, feel free to E-Mail me at dagothmarx AT protonmail DOT com. It may take a while for me to respond though, for quicker responses you should look up the technical_help channel in the SM64 Discord. The same counts for if you are noticing any error. Don't talk shit behind my back, let me know if you spot something.
I may add on a personal note that I disagree with using both these timing standards and the recording method. They are unnecessarily complicated and easily mitigateable if the community would finally progress a little bit with the way it is using the tools that are available.