Skip to content
Beta: this is a preview of the new SplitScreen.Me. Data may be reset before launch.

Tom Clancy's Splinter Cell: Conviction · handler “SplinterCellConviction”

Version 5

Release notes

Added new UI options for gamepad vibration and enhancements.

Released
Size
16.5 MB
Downloads
149
Check
Verified
SHA-256
308398929401c70be5a638d26240dfb87194704eb43ed1da393577ff616c640a
Download v5 (.nc)All versions

Files 72

PathSize
Conviction/d3d9.dll164 KB
Conviction/d3d9.ini690 B
Conviction/dinput8.dll150 KB
Conviction/flush.ps118 B
Conviction/MapConfigurationDLC.xml6.0 KB
Conviction/patch.txt16.0 MB
Conviction/ProfileDefaultsPC.ini3.2 KB
Conviction/runp.bat150 B
Conviction/scc_lan_helper.exe1.6 MB
Conviction/SplinterCellConviction.FusionMod.asi738 KB
Conviction/SplinterCellConviction.FusionMod.ini178 B
Conviction/ubiorbitapi_r2.dll864 KB
Conviction/version.dll2.1 MB
Conviction/_internal/api-ms-win-core-console-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-datetime-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-debug-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-errorhandling-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-fibers-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-file-l1-1-0.dll26 KB
Conviction/_internal/api-ms-win-core-file-l1-2-0.dll22 KB
Conviction/_internal/api-ms-win-core-file-l2-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-handle-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-heap-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-interlocked-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-libraryloader-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-localization-l1-2-0.dll22 KB
Conviction/_internal/api-ms-win-core-memory-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-namedpipe-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-processenvironment-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-processthreads-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-processthreads-l1-1-1.dll22 KB
Conviction/_internal/api-ms-win-core-profile-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-string-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-synch-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-synch-l1-2-0.dll22 KB
Conviction/_internal/api-ms-win-core-sysinfo-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-timezone-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-core-util-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-conio-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-convert-l1-1-0.dll26 KB
Conviction/_internal/api-ms-win-crt-environment-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-filesystem-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-heap-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-locale-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-math-l1-1-0.dll30 KB
Conviction/_internal/api-ms-win-crt-process-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-runtime-l1-1-0.dll26 KB
Conviction/_internal/api-ms-win-crt-stdio-l1-1-0.dll26 KB
Conviction/_internal/api-ms-win-crt-string-l1-1-0.dll26 KB
Conviction/_internal/api-ms-win-crt-time-l1-1-0.dll22 KB
Conviction/_internal/api-ms-win-crt-utility-l1-1-0.dll22 KB
Conviction/_internal/base_library.zip1.3 MB
Conviction/_internal/libcrypto-3.dll4.9 MB
Conviction/_internal/libffi-8.dll39 KB
Conviction/_internal/pydivert/windivert_dll/WinDivert32.dll18 KB
Conviction/_internal/pydivert/windivert_dll/WinDivert32.sys40 KB
Conviction/_internal/pydivert/windivert_dll/WinDivert64.dll22 KB
Conviction/_internal/pydivert/windivert_dll/WinDivert64.sys46 KB
Conviction/_internal/python312.dll6.7 MB
Conviction/_internal/select.pyd30 KB
Conviction/_internal/ucrtbase.dll1.1 MB
Conviction/_internal/unicodedata.pyd1.1 MB
Conviction/_internal/VCRUNTIME140.dll116 KB
Conviction/_internal/_bz2.pyd83 KB
Conviction/_internal/_ctypes.pyd122 KB
Conviction/_internal/_decimal.pyd247 KB
Conviction/_internal/_hashlib.pyd64 KB
Conviction/_internal/_lzma.pyd156 KB
Conviction/_internal/_socket.pyd81 KB
Conviction/_internal/_wmi.pyd36 KB
handler.js13 KB

handler.js

Plain text
Hub.Handler.Version = 5; // Released at https://hub.splitscreen.me/ on Thu Jun 13 2024 10:13:41 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "GGN6FpryMWXq8eP2x";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

var answers1 = ["No", "Yes"];
var answers2 = ["No", "Yes"];
var answers3 = ["No", "Yes"];
Game.AddOption(
  "Alternative xinput dlls to enable gamepad rumble?",
  "Enables vibration for xinput controllers but you have to set your monitor scale to 100% and add custom resolutions like the handler notes mention for the instances to resize correctly.",
  "Vibration",
  answers1
);
Game.AddOption("Disable black and white filter?", "Disables the black and white filter when you are in dark rooms.", "Filter", answers2);
Game.AddOption("Enable enhanced sonar vision?", "Enhances the sonar vision you enable with dpad up.", "Sonar", answers3);

Game.ExecutableContext = ["UMDS"];
Game.KillMutex = ["Type:Semaphore|sc5_semaphore"];
Game.DirSymlinkExclusions = ["src\\system", "src\\system\\scripts", "data\\Videos"];
Game.FileSymlinkExclusions = [
  "MapConfigurationDLC.xml",
  "ubiorbitapi_r2.dll",
  "d3d9.dll",
  "d3d9.ini",
  "conviction_game.exe",
  "gu.exe",
  "UPlayBrowser.exe",
  "Skidrow.ini",
  "Logo_ESRB_01.bik",
  "Logo_ESRB_02.bik",
  "Logo_MiddleWare_01.bik",
  "Logo_Ubisoft.bik",
  "Logo_Clancy_01.bik",
  "ProfileDefaultsPC.ini",
  "SplinterCellConviction.FusionMod.asi",
  "SplinterCellConviction.FusionMod.ini",
  "dinput8.dll",
  "xinput1_3.dll",
  "version.dll"
];
Game.FileSymlinkCopyInstead = [
  "gameinfo.ini",
  "Conviction.ini",
  "ConvictionInputs.ini",
  "ConvictionUser.ini",
  "ConvictionUserPC.ini",
  "Default.ini",
  "dynamicxbox.umd",
  "InputKeyTranslation.ini",
  "loc-dan.umd",
  "loc-deu.umd",
  "loc-esp.umd",
  "loc-fra.umd",
  "loc-int.umd",
  "loc-ita.umd",
  "loc-nl.umd",
  "loc-nor.umd",
  "loc-swe.umd",
  "version",
  "systemdetection.dll"
];
Game.RequiresAdmin = true;
Game.UseNucleusEnvironment = true;
Game.NeedsSteamEmulation = false;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "conviction_game.exe";
Game.SteamID = "33220";
Game.GUID = "Splinter Cell Conviction";
Game.GameName = "Tom Clancy's Splinter Cell Conviction";
Game.MaxPlayers = 2;
Game.MaxPlayersOneMonitor = 4;
Game.BinariesFolder = "src\\system";
Game.HideTaskbar = false;
Game.StartArguments = "";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Conviction";
//Game.DPIHandling = Nucleus.DPIHandling.InvScaled;
Game.ResetWindows = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.UseAlpha8CustomDll = true;
Game.Hook.BlockMouseEvents = false;
Game.Hook.BlockInputEvents = false;
Game.Hook.BlockKeyboardEvents = false;
Game.XInputPlusDll = ["xinput1_4.dll"];
Game.SupportsKeyboard = false;
Game.UserProfileSavePath = "AppData\\Local\\storage";
Game.UserProfileSavePathNoCopy = true;
Game.Description =
  "IMPORTANT: Make sure you have launched your main game at least once before using this. On first handler launch enable the gamepad in the game controller options for both instances using the keyboard, alt-tab between instances to do it. Connect the instances via the native LAN option, you need the latest version of the game, deactivate all virtual internet interfaces like VirtualBox, Hyper-v, etc. This is recommended to avoid issues searching for each other sessions ingame. Host the game in the second instance and join in the first if you have crashes hosting in the first instance. If you want the instances to resize correctly and avoid stretching you need to create custom resolutions in your AMD/Nvidia/Intel panel (for example if you have a 1920x1080 monitor add custom resolutions like: 960x1080, 960x540, 1920x540 etc.) so the game can see and use them. If you get too low fps make sure the game is using most cpu cores, this is a known issue to fix it in task manager details tab select the conviction exes, right click and set affinity, do this after starting a new level, you can use CTRL+T to minimize the instances. If you can not change in-game graphic settings try launching the instance in all the monitor. This handler uses this to restore the LAN mode after the official servers shutdown: https://github.com/Ododo/scc-lan-restore. Windowed mode and enhancements thanks to: https://github.com/ThirteenAG/WidescreenFixesPack/releases/tag/scc.";
Game.PauseBetweenContextAndLaunch = 3;
Game.PauseBetweenStarts = 20;

Game.Play = function() {
  var username = Context.Nickname;
  var VideoConfig = "C:\\ProgramData\\Ubisoft\\Conviction\\ConvictionUserPC.ini";
  Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("Inputs", "ControllerType", "KT_X360"),
    new Nucleus.IniSaveInfo("Inputs", "UseXInputByDefault", true),
    new Nucleus.IniSaveInfo("UserVideoOptions." + username, "FullscreenViewportX", Context.Width),
    new Nucleus.IniSaveInfo("UserVideoOptions." + username, "FullscreenViewportY", Context.Height),
    new Nucleus.IniSaveInfo("UserVideoOptions." + username, "StartupFullscreen", false),
    new Nucleus.IniSaveInfo("UserVideoOptions." + username, "WindowedViewportX", Context.Width),
    new Nucleus.IniSaveInfo("UserVideoOptions." + username, "WindowedViewportY", Context.Height),
    new Nucleus.IniSaveInfo("UserVideoOptions." + username, "MonitorAspect", Context.AspectRatioDecimal)
  ]);

  if (Context.AspectRatioDecimal > 1.8) {
    var VideoConfig = "C:\\ProgramData\\Ubisoft\\Conviction\\ConvictionUserPC.ini";
    Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("Engine.Display", "EyefinityMode", 0),
      new Nucleus.IniSaveInfo("Engine.Display", "ForceMultiMon", true),
      new Nucleus.IniSaveInfo("Engine.Display", "MinTripleDispRatio", "3.5")
    ]);
  } else if (Context.AspectRatioDecimal < 1.2) {
    var VideoConfig = "C:\\ProgramData\\Ubisoft\\Conviction\\ConvictionUserPC.ini";
    Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("Engine.Display", "EyefinityMode", 0),
      new Nucleus.IniSaveInfo("Engine.Display", "ForceMultiMon", true),
      new Nucleus.IniSaveInfo("Engine.Display", "MinTripleDispRatio", "0.8")
    ]);
  } else {
    var VideoConfig = "C:\\ProgramData\\Ubisoft\\Conviction\\ConvictionUserPC.ini";
    Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("Engine.Display", "EyefinityMode", 0),
      new Nucleus.IniSaveInfo("Engine.Display", "ForceMultiMon", false),
      new Nucleus.IniSaveInfo("Engine.Display", "MinTripleDispRatio", "3.9")
    ]);
  }

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\conviction_game.exe");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "patch.txt");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\scripts");
  System.IO.Directory.CreateDirectory(filePath);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\ubiorbitapi_r2.dll");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "ubiorbitapi_r2.dll");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\MapConfigurationDLC.xml");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "MapConfigurationDLC.xml");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\ProfileDefaultsPC.ini");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "ProfileDefaultsPC.ini");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\dinput8.dll");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "dinput8.dll");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\d3d9.dll");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "d3d9.dll");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\d3d9.ini");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "d3d9.ini");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\version.dll");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "version.dll");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\scripts\\SplinterCellConviction.FusionMod.asi");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "SplinterCellConviction.FusionMod.asi");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\scripts\\SplinterCellConviction.FusionMod.ini");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "SplinterCellConviction.FusionMod.ini");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\Skidrow.ini");
  Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("Account", "Username", '"' + Context.Nickname + '"'),
    new Nucleus.IniSaveInfo("Account", "Password", '"SamFisher"')
  ]);

  if (Context.PlayerID == 0) {
    var Gamefolder = System.IO.Path.Combine(Game.Folder);

    var txtPath = "C:\\Windows\\System32\\drivers\\etc\\hosts";
    var dict = ["21|127.0.0.1 gconnect.ubi.com", "22|      "];
    Context.ReplaceLinesInTextFile(txtPath, dict);

    Context.RunAdditionalFiles(["1|" + Gamefolder + "\\runp.bat"], false, 1, true, false);

    Context.Wait(5000);

    Context.RunAdditionalFiles(["1|" + Gamefolder + "\\scc_lan_helper.exe"], false, 1, true, false);
  }

  Game.KillProcessesOnClose = ["scc_lan_helper", "cmd"];

  var vibration = Context.Options["Vibration"];
  var filter = Context.Options["Filter"];
  var sonar = Context.Options["Sonar"];

  if (vibration == "Yes") {
    Game.SetWindowHook = true;
    Context.Hook.CustomDllEnabled = false;

    System.IO.File.Delete(Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\xinput1_3.dll");

    System.IO.File.Delete(Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\xinput1_4.dll");

    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\xinput1_3.dll");
    var savePkgOrigin = System.IO.Path.Combine(Context.NucleusFolder, "utils\\XInputPlus\\x86\\xinput1_3.dl_");
    System.IO.File.Copy(savePkgOrigin, savePath, true);

    var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\XInputPlus.ini";
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Vibration", "EnableTriggerVibration", true)]);
  }

  if (vibration == "No") {
    System.IO.File.Delete(Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\xinput1_4.dll");
  }

  if (filter == "Yes") {
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\scripts\\SplinterCellConviction.FusionMod.ini");
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "DisableBlackAndWhiteFilter", " 1")]);
  }

  if (filter == "No") {
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\scripts\\SplinterCellConviction.FusionMod.ini");
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "DisableBlackAndWhiteFilter", " 0")]);
  }

  if (sonar == "Yes") {
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\scripts\\SplinterCellConviction.FusionMod.ini");
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "EnhancedSonarVision", " 1")]);
  }

  if (sonar == "No") {
    var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\src\\system\\scripts\\SplinterCellConviction.FusionMod.ini");
    Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("MAIN", "EnhancedSonarVision", " 0")]);
  }
};