Skip to content

thisis2838/SourceSplit

 
 

Repository files navigation

SourceSplit

SourceSplit is a LiveSplit Auto-Splitter which adds automated timer function support for Source Engine games and mods; along with related features.

This is 2838's fork of the project, featuring many improvements, fixes, and support for many more games and mods.

Features

  • Main Features
    • Keeps track of various forms of Game Time, with options to turn on or off each of which.
    • Auto-Splits on changelevel loads and/or generic map loads, configurable with a map transition blacklist or whitelist
    • For Games that support them:
      • Auto-Start, Stop and Resetting.
      • Auto-Splits on special pre-determined game events.
      • Interoperation with demo recording.
  • Additional Features
    • Custom Auto-Start point based on map name or save name.
    • Displaying additional information on LiveSplit.
    • Printing information of Demos which have just finished recording to the Console.

Installation

There are two ways to install SourceSplit:

Through the Splits Editor:

  • Open the Splits Editor
  • Enter the name of your game/mod into the Game Name field. An option to activate the splitter will now be available.
  • If the splitter is not accrediting both fatalis and 2838, then this fork of SourceSplit does not fully that game/mod. In this case, enter Source Engine insead.

Or through the Layout Editor:

  • Download a build from the Releases section of this page, then move LiveSplit.SourceSplit.dll to <LiveSplit's root folder>/Components
  • Open the Layout Editor, then click on +, hover over Control and click on SourceSplit. If SourceSplit is already loaded in the Splits Editor, a warning will pop up.

Configuring

Information on configuring SourceSplit can be found here.

Fully Supported Games and Mods

Technical Information

How It Works

SourceSplit heavily relies on external memory reading using Window's ReadProcessMemory function. Necessary pointers and offsets are enumerated through heavy use of Signature Scanning. This allows the component to achieve a high compatibility rate.

Timing Accuracy

SourceSplit attempts to find the host_tickcount variable that the Source engine uses to track how many updates its main update loop has done. This allows SourceSplit to accurately measure time while avoiding the effects of Save/Load or Pause abuse, and also react to changes to game speed (e.g. lag, or host_tickcount or host_framerate). Ticks may only be lost due to slow polling rates or other low level problems.

SourceSplit can also piggy back off the recording information for the current Demo. This allows SourceSplit to match Demo time near-perfectly, even under extreme conditions such as save/load abuse or long sessions with many loads.

tl;dr The timing is very accurate and should never be more than a few ticks off.

Credits

  • Fatalis for the original version.
  • 2838 for current maintenece and development.

About

A LiveSplit Auto-Splitter which adds automated timer function support for Source Engine games and mods; along with related features.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%