Skip to content

gottagofaster236/SonicVisualSplit

Repository files navigation

SonicVisualSplit

An auto-splitter for classic Sonic games on Sega Genesis, which works from visual input.

Splits Sonic 1, 2, and CD using IGT (in-game time).

Component in action

Component in action

System requirements

Required OS version is Windows 10/11 64-bit (May 2019 update or newer).

You have to have the latest version of LiveSplit installed.

If you want to record (or stream) your game footage, you have to have OBS Studio (or other streaming software) installed.

Installation

  1. Install the latest version of Visual C++ Redistributable from here.
  2. Unpack the contents of SVS.zip into the Components directory of your LiveSplit installation.
  3. Add the component: open LiveSplit, then right-click LiveSplit, select "Edit layout...", press the big "+" button, and find SonicVisualSplit under the "Control" category.
  4. Then you'll have to setup your video capture to work with SonicVisualSplit.

Setting up video capture

Settings page screenshot:

Settings page

  • To open SonicVisualSplit settings, right-click LiveSplit, click "Edit layout...", click "Layout Settings" at the bottom. Select "SonicVisualSplit" in the top navigation bar.

  • If you don't need to record/stream your runs, you can just select the your capture card from the video sources dropdown list (provided that your video capture cards is detected as a webcam on your computer).

  • If you do want to share your runs, then you'll have use OBS Studio (or alternative streaming software, such as Streamlabs). This is due to Windows not allowing two applications to use a webcam simultaneously. You'll have to use one of the two methods to set everything up.

    • If you're using OBS, click "Start Virtual Camera" in the bottom right before using SonicVisualSplit. Then select it in the video sources dropdown list in SonicVisualSplit settings.

      For Streamlabs, you can read about Virtual Camera installation here.

      Thus, SonicVisualSplit will capture the virtual camera, while the actual capture card video will be recorded by your streaming software of choice.

    • If you're an OBS user, you have another option that is less intensive on the CPU. You can simply choose "OBS Window Capture" from the video sources dropdown list. SonicVisualSplit will get the video by capturing screenshots of the opened OBS Studio window.

    In order for SonicVisualSplit to recognize the time on screen correctly, you have to make sure that the game capture takes at least 80% of the height of your stream layout.

  • Make sure your capture card outputs an acceptable picture.

    • If your capture card outputs an image that's too dark, you'll have to apply a color correction filter in your streaming software. Try increasing gamma/brightness.
    • Check that the aspect ratio of the game is either 4:3 or 16:9. If it's stretched, fix it with your streaming software. Note that if the aspect ratio is slightly off, SVS will still work, but with degraded accuracy
  • After you setup the video capture correctly, it should appear in the preview.

  • Then you have to select the game, choose the video connector that you use to connect your console to the capture card, and change the aspect ratio if for some reason your capture card stretches the image.

  • The settings are saved with layout. So, click "yes" when LiveSplit will ask you whether you want to save the layout settings at exit.

Practice mode

The component currently cannot tell whether you just want to practice or start an actual run. For that in SVS there's practice mode. It temporarily disables the component, so that you can practice the game without the timer running.

To toggle the practice mode, press Ctrl + P (make sure LiveSplit is the focused window first).
Alternatively, you can right-click LiveSplit, select "Control", and click "Toggle practice mode" in the bottom.

Known limitations

  • If you die on Scrap Brain 3 in Sonic 1, or Sonic 2's Sky Chase and Wing Fortress, you'll have to undo the split manually. The actual time will be correct regardless.
  • In Sonic 2, when you hit the boss, the timer is flashing and SVS fails to recognize that. This is fine, it'll recover soon after.
  • You must have one split per each act, and the splits should start from the first act. In particular, SVS is (probably) not usable for multi-game runs.

Troubleshooting

  • If the component doesn't reset automatically, it's most likely due to colors on your capture being slightly off. Open up an emulator and see if you can adjust the brightness to the same level.

    Another reason may be that your game aspect ratio is incorrect, make sure the it's either exactly 4:3 or exactly 16:9 in your streaming software.

  • If the component fails to read the digits too often, check your settings. Make sure you selected the correct video mode and the correct game. Sometimes Composite may work better than RGB, even if your capture card is capturing in RGB. Make sure the aspect ratio of the game is either exactly 4:3 or exactly 16:9 in your streaming software.
    Note that occasional incorrectly recognized frames are fine, thanks to error detection.

  • If the game preview shows a blank image on the settings page, make sure the camera stream isn't used by another program.

  • If your capture card is outputting a dark image, you should apply a color correction filter as described here.

  • If you found a bug, please open an issue here on GitHub. If it's an issue with time recognizing incorrectly, a video or a screenshot of the game at the point where SVS fails would be appreciated.

Questions / Suggestions

If you couldn't solve your problem or have questions or suggestions, feel free to post them using GitHub Discussions. You can also message me on Discord.

For developers

Contributions are welcome! You should probably read BUILDING.md on how to build the project.

About

An auto-splitter for people who speedrun classic Sonic on console.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages