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

Tom Clancy's Rainbow Six: Vegas 2 · handler “RainbowSixVegas2”

Version 3

Release notes

fixed notes and 3 players splitscreen.

Released
Size
526 KB
Downloads
5,904
Check
Verified
SHA-256
40d6355dd03365c59d76d6768a050dd6ba88182ecbf694ebdf1ab9cde657cf49
Download v3 (.nc)All versions

Files 13

PathSize
handler.js9.0 KB
RainbowSixVegas2/TeknoR6Vegas2.exe513 KB
RainbowSixVegas2/windowed/d3d9.dll11 KB
RainbowSixVegas2/windowed/d3d9hook.cpp5.6 KB
RainbowSixVegas2/windowed/d3d9hook.def1.0 KB
RainbowSixVegas2/windowed/d3d9hook.h6.9 KB
RainbowSixVegas2/windowed/d3d9hook.sln878 B
RainbowSixVegas2/windowed/d3d9hook.vcxproj7.0 KB
RainbowSixVegas2/windowed/IDirect3D9.h7.3 KB
RainbowSixVegas2/windowed/IDirect3DDevice9.h43 KB
RainbowSixVegas2/windowed/IUnknown.h481 B
RainbowSixVegas2/windowed/LogWindowMessagesImpl.h23 KB
RainbowSixVegas2/windowed/overrides.h5.3 KB

handler.js

Plain text
Hub.Handler.Version = 3; // Released at https://hub.splitscreen.me/ on Mon Nov 09 2020 10:04:53 GMT+0000 (UTC).
Hub.Handler.Id = "WfAMG7akRb5Gdydms";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.ExecutableContext = ["binkw32.dll"];
Game.KillMutex = [
  "RainbowSixVegas2IsRunning"
  //"steam_singleton_mutext_00000000_000015a0"
];
Game.DirSymlinkExclusions = ["Binaries"];
Game.FileSymlinkExclusions = [
  "d3d9.dll",
  "d3d9hook.cpp",
  "d3d9hook.def",
  "d3d9hook.h",
  "d3d9hook.sln",
  "d3d9hook.vcxproj",
  "IDirect3D9.h",
  "IDirect3DDevice9.h",
  "IUnknown.h",
  "LogWindowMessagesImpl.h",
  "overrides.h",
  "TeknoR6Vegas2.exe"
];
Game.NeedsSteamEmulation = false;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.SupportsKeyboard = false;
Game.ExecutableName = "R6Vegas2_Game.exe";
Game.SteamID = "15120";
Game.GUID = "Rainbow Six Vegas 2";
Game.GameName = "Tom Clancy's Rainbow Six Vegas 2";
Game.MaxPlayers = 16;
Game.MaxPlayersOneMonitor = 16;
Game.LauncherTitle = "";
Game.LauncherExe = "Binaries\\TeknoR6Vegas2.exe";
Game.LauncherExeIgnoreFileCheck = true;
Game.BinariesFolder = "Binaries";
Game.ForceFinishOnPlay = true;
Game.HideTaskbar = false;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "Tom Clancy's Rainbow Six Vegas 2";
Game.Hook.DInputEnabled = false;
Game.Hook.DInputForceDisable = true;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.BlockKeyboardEvents = false;
Game.Hook.BlockMouseEvents = true;
Game.Hook.BlockInputEvents = true;
Game.Hook.UseAlpha8CustomDll = false;
Game.Hook.CustomDllEnabled = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.FakeFocus = true;
Game.ResetWindows = true;
Game.KeepSymLinkOnExit = false;
Game.UserProfileSavePath = "Documents\\My Games\\Ubisoft";
Game.Description =
  "On first launch using the keyboard go to extras, options and set the xbox controller for windows option to ON, also select your custom resolution in the video settings per instance, alt-tab between instances to use the keyboard. After all that exit in each instance via the menu and launch again via Nucleus. Connect the instances via LAN. You need to add custom resolutions in your AMD/Nvidia/Intel panel (For example: 960x1080, 1920x540, 960x540 etc.) for the game to see them. You can access each instance save in the app, after the first launch click game options/open user profile save path in the UI.";
Game.PauseBetweenStarts = 30;

Game.Play = function() {
  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\R6Vegas2_Game.exe");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\TeknoR6Vegas2.exe");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "TeknoR6Vegas2.exe");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

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

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\d3d9hook.cpp");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\d3d9hook.cpp");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\d3d9hook.def");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\d3d9hook.def");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\d3d9hook.h");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\d3d9hook.h");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\d3d9hook.sln");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\d3d9hook.sln");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\d3d9hook.vcxproj");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\d3d9hook.vcxproj");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\IDirect3D9.h");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\IDirect3D9.h");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\IDirect3DDevice9.h");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\IDirect3DDevice9.h");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\IUnknown.h");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\IUnknown.h");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\LogWindowMessagesImpl.h");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\LogWindowMessagesImpl.h");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Binaries\\overrides.h");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "windowed\\overrides.h");
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  if (Context.PlayerID == 0) {
    var Args = (Context.Args = " 1 " + " 0 " + " 0 ");

    Context.StartArguments = Args;
  } else {
    var Args = (Context.Args = " 0 " + " 0 " + " 0 ");

    Context.StartArguments = Args;
  }

  if (Context.PlayerID == 1) {
    //patch instance exe to save to a different folder.
    Context.PatchFile(
      System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe"),
      System.IO.Path.Combine(Context.RootFolder, "Binaries\\R6Vegas2_Game.exe"),
      [0x52, 0x36, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00],
      [0x52, 0x37, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00]
    );
  }

  if (Context.PlayerID == 2) {
    Context.PatchFile(
      System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe"),
      System.IO.Path.Combine(Context.RootFolder, "Binaries\\R6Vegas2_Game.exe"),
      [0x52, 0x36, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00],
      [0x52, 0x38, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00]
    );
  }

  if (Context.PlayerID == 3) {
    Context.PatchFile(
      System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe"),
      System.IO.Path.Combine(Context.RootFolder, "Binaries\\R6Vegas2_Game.exe"),
      [0x52, 0x36, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00],
      [0x52, 0x39, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00]
    );
  }

  if (Context.PlayerID == 4) {
    Context.PatchFile(
      System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe"),
      System.IO.Path.Combine(Context.RootFolder, "Binaries\\R6Vegas2_Game.exe"),
      [0x52, 0x36, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00],
      [0x52, 0x46, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00]
    );
  }

  if (Context.PlayerID == 5) {
    Context.PatchFile(
      System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe"),
      System.IO.Path.Combine(Context.RootFolder, "Binaries\\R6Vegas2_Game.exe"),
      [0x52, 0x36, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00],
      [0x52, 0x47, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00]
    );
  }

  if (Context.PlayerID == 6) {
    Context.PatchFile(
      System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe"),
      System.IO.Path.Combine(Context.RootFolder, "Binaries\\R6Vegas2_Game.exe"),
      [0x52, 0x36, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00],
      [0x52, 0x48, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00]
    );
  }

  if (Context.PlayerID == 7) {
    Context.PatchFile(
      System.IO.Path.Combine(Game.Folder, "R6Vegas2_Game.exe"),
      System.IO.Path.Combine(Context.RootFolder, "Binaries\\R6Vegas2_Game.exe"),
      [0x52, 0x36, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00],
      [0x52, 0x49, 0x56, 0x65, 0x67, 0x61, 0x73, 0x32, 0x00]
    );
  }

  if (Context.AspectRatioDecimal > 1.8) {
    var Args = (Context.Args = " 1 " + " 0 " + " 1 ");

    Context.StartArguments = Args;
  } else if (Context.AspectRatioDecimal < 1.3) {
    var Args = (Context.Args = " 1 " + " 0 " + " 0 ");

    Context.StartArguments = Args;
  } else {
    var Args = (Context.Args = " 1 " + " 0 " + " 0 ");

    Context.StartArguments = Args;
  }
};