The Load Remover for KH2FM consists of VideoAutoSplit, a component for Livesplit, KH2FM profile for it, and a way to provide VideoAutoSplit video of your gameplay. This is in talks on becoming the timing method for post game categories and possibly any%.
Be sure to follow the help provided in this page to install VideoAutoSplit and VirtualCam for OBS if needed (if you don't know, you probably need it): https://github.com/ROMaster2/LiveSplit.VideoAutoSplit
I'm also putting the download link for the VideoAutoSplit program here in case there is any confusion as to what to download: https://github.com/ROMaster2/LiveSplit.VideoAutoSplit/releases/download/0.5.2.2/LiveSplit.VideoAutoSplit.v0.5.2.2-beta.zip
You can find the latest version of the load remover here: https://www.speedrun.com/kh2fm/resources . Included in KH2FM_LoadRemover.zip is KH2FM.vas, which is the profile for VideoAutoSplit made specifically for KH2 to pause the timer during black screens and white screens. Be sure to check that page every now and then to make sure you're using the latest version.
After installing and setting up VideoAutoSplit, refer to the included image as to how the result should look like in livesplit. You need to add Video Auto Split to your layout and go to its settings. Select the KH2FM.vas file as profile and a capture device, which should be something like "OBS-Camera..." in case of OBS VirtualCam. Be sure that you have started the video feed for that virtual device in OBS. The yellow area, the Scan Region can be set by the user and it should match the game window as closely as possible. If you use the VirtualCam as a filter on your capture card, you should cover the whole area. Otherwise, you can ignore any stream overlay graphics that might cover your gameplay as long as they don't cover the blue parts in the Scan Region, as those are the actual parts where the image is being checked.
When everything is set up, be sure to bring up a game time timer in livesplit in addition to real time. Your layout should include 2 timers, where one is set to use game time and the other real time. Game time should always be visible in a submitted video, otherwise it will have to be retimed.
If there are any issues, you can refer to the features tab of VideoAutoSplit. During black screens, "black" should show a value above 90. During white screen, "white" should show a value above 90. If the numbers aren't quite there, make sure your game and capture card brightness settings are set to default and any other colour modifying filters are off.
A buffer is used to avoid pausing the timer during phase transitions and segements that are not loads, but still have the white/black screens present. A load needs to be several frames long before it's counted as a load. On the other hand, the same buffer is used when transitioning from load to gameplay. This helps avoid issues in potential false readings. In other words, a couple unusual frames during a load would be ignored. For the same reason, the timer will appear delayed compared to gameplay, so don't worry if doesn't appear completely in sync. Having Render Delay filters applied to your splits can help the make the timer not look so delayed.
Some people have had issues with the load remover stopping working. I recommend restarting livesplit before attempting runs to mitigate the risk, as it only seems to happen on 2+ hour sessions. If this happens, check the video auto splitter settings tab and take note of anything that looks off. Also export the error log and send it my way if possible.
In case you can't get it to work at all, competitive runs can be timed by moderators. Be sure to have a full, clean video recording of the gameplay in that case.
In case you need assistance, contact denho#3759 or me, InsertLogic#6730 on Discord or as a private message. You can also find us, and many others that can assist you, in the Kingdom Hearts Speedrunning Discord.
Here are the instructions in video format - The next video was made by Desa3579 and offers the same steps, putting both here in case people prefer one over the other. NOTE: Desa's video describes setting up the Load Remover for KH3, although the setup steps are the same, the files names and placements are different to my video. Please take note of that if you wish to use both videos, or go from one to another.
FAQ (Be sure to check the help section on VideoAutoSplitter and VirtualCam too):
Can I use Streamlabs OBS or XSplit?
- VirtualCam plugin doesn't work with Streamlabs OBS, but you can use OBS with VirtualCam to provide game video to Streamlabs OBS as well as VideoAutoSplitter. As for XSplit, it includes a built-in Virtual Camera feature which you can use.
It's working great, except for this part. Why?
- Contact either Logic or Den with details / video / screenshots and we'll figure it out. The load remover can be adjusted in any way needed. If the timer changes significantly, old runs can be retimed by runners and/or moderators.
Timer seems laggy or causing the computer to lag. Why?
- These image comparisons are done on the CPU, comparing every pixel in selected areas. I do my best to optimize it. Runs can be timed afterwards if it's too heavy for you to use while streaming/recording. Also, if you're running a 4k setup, it may want to use that resolution for VirtualCam. See: https://obsproject.com/forum/resources/obs-virtualcam.539/ for more information about that.
My capture card / setup doesn't work with the timer, what to do?
- You can use PS4 recordings and time the run afterwards.
How can I time the run afterwards?
- You need to set up a video to play on OBS, then use the VirtualCam. You can use the VLC Media Source to open a video file on OBS.
Video auto split is not showing up in Livesplit. Why?
- Make sure you're Livesplit is 1.7.5 or above. Current version is 1.7.7. If 1.7.5 doesn't work, then update to 1.7.6 or 1.7.7.
VirtualCam is not showing up in OBS or video preview doesn't show up in VideoAutoSplitter. Why?
- Make sure this is what you downloaded: https://github.com/CatxFish/obs-virtual-cam/releases/download/2.0.4/OBS-VirtualCam2.0.4.zip and follow these instructions:
- Unzip OBS-VirtualCam2.0.1.zip and put it to your obs-studio install folder. Make sure you're putting the contents of the OBS-VirtualCam folder there, not just the folder itself.
- Run CMD or Powershell as Administrator and register 32bit directshow source ex: regsvr32 "C:\Program Files (x86)\obs-studio\bin\32bit\obs-virtualsource.dll"
- Do it again to register 64bit directshow source ex: regsvr32 "C:\Program Files (x86)\obs-studio\bin\64bit\obs-virtualsource.dll"
I am very happy this is now a thing. But how will this affect the leaderboards though? Will there be a 2nd final time added such as "Real Time" or "Time With Loads"?
There will be discussion with the community if the Load Remover passes tests and remains consistent. In my mind, the top 10 runs (Top 5 for non-popular categories) should have a Loadless time as it gets close after around sub 3 RTA.
It will follow a design similar to KH3 though, an RTA w/ Loads will be uploaded (Normal Splits) and an RTA w/o Loads will be uploaded (Loads Removed Time). RTA w/o Loads will be the LB times and RTA w/ Loads will be self comparison times.
This is how I think it will be though, so don't take my word as final. Thorough discussion still needs to take place before anything is set in stone.