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

Dark Souls: Prepare to Die Edition · handler “Dark Souls”

Version 6

Release notes

keyboard fixes

Released
Size
1.6 KB
Downloads
565
Check
Verified
SHA-256
022057b94b17273ad6feb243851a6eb276b349791586629aa8a4f14bebd7b84f
Download v6 (.nc)All versions

Files 1

PathSize
handler.js4.6 KB

handler.js

Plain text
Hub.Handler.Version = 6; // Released at https://hub.splitscreen.me/ on Sat Mar 07 2020 03:24:38 GMT+0000 (UTC).
Hub.Handler.Id = "4romqwMRuhC5y5NiG";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.ExecutableContext = ["dsfix"];
Game.FileSymlinkExclusions = [
  "steam_api.dll",
  "steam_appid.txt",
  "steam_interfaces.txt",
  "DSfix.ini",
  "xinput1_3.dll"
  //"DINPUT8.dll"
];
Game.GameName = "Dark Souls";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "darksouls.exe";
Game.SteamID = "211420";
Game.GUID = "Dark Souls";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.BinariesFolder = "";
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.UseNucleusEnvironment = true;
Game.LauncherTitle = "";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "DARK SOULS";
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.Hook.CustomDllEnabled = false;
Game.FakeFocus = true;
Game.HookFocus = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.UserProfileConfigPath = "AppData\\Local\\NBGI\\DarkSouls";
Game.UserProfileSavePath = "Documents\\NBGI\\DarkSouls";
Game.Description =
  "If you use keyboards and mice after the instances open press the END key to lock the input for all instances to have their own cursor. Press the END key again to unlock the input.";
Game.PauseBetweenStarts = 40;

Game.SupportsMultipleKeyboardsAndMice = true;

Game.HookSetCursorPos = false;
Game.HookGetCursorPos = true;
Game.HookGetKeyState = true;
Game.HookGetAsyncKeyState = true;
Game.HookGetKeyboardState = true;
Game.HookFilterRawInput = true;
Game.HookFilterMouseMessages = false;
Game.HookUseLegacyInput = false;
Game.HookDontUpdateLegacyInMouseMsg = false;
Game.HookMouseVisibility = true;

Game.SendNormalMouseInput = true;
Game.SendNormalKeyboardInput = true;
Game.SendScrollWheel = true;
Game.ForwardRawKeyboardInput = false;
Game.ForwardRawMouseInput = false;
Game.HookReRegisterRawInput = true;
Game.HookReRegisterRawInputMouse = false;
Game.HookReRegisterRawInputKeyboard = true;
Game.DrawFakeMouseCursor = true;
Game.LockInputAtStart = false;
Game.LockInputToggleKey = 0x23;

Game.Play = function() {
  var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\DarkSouls.ini";
  Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("DisplaySetting", "WindowMode", "1"),
    new Nucleus.IniSaveInfo("DisplaySettingWindow", "Width", Context.Width),
    new Nucleus.IniSaveInfo("DisplaySettingWindow", "Height", Context.Height)
  ]);

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

  var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\DSfix.ini";
  var fileWidth = Context.FindLineNumberInTextFile(savePath, "renderWidth ", Nucleus.SearchType.StartsWith);
  var fileHeight = Context.FindLineNumberInTextFile(savePath, "renderHeight ", Nucleus.SearchType.StartsWith);

  Context.ReplaceLinesInTextFile(savePath, [fileWidth + "|renderWidth " + Context.Width, fileHeight + "|renderHeight " + Context.Height]);

  var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\DSfix.ini";
  var fileWidth = Context.FindLineNumberInTextFile(savePath, "presentWidth ", Nucleus.SearchType.StartsWith);
  var fileHeight = Context.FindLineNumberInTextFile(savePath, "presentHeight ", Nucleus.SearchType.StartsWith);

  Context.ReplaceLinesInTextFile(savePath, [fileWidth + "|presentWidth 1280", fileHeight + "|presentHeight 800"]);

  var autoExec = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_interfaces.txt";
  var lines = [
    "SteamClient012",
    "SteamGameServer011",
    "SteamGameServerStats001",
    "SteamUser017",
    "SteamFriends014",
    "SteamUtils006",
    "SteamMatchMaking009",
    "SteamMatchMakingServers002",
    "STEAMUSERSTATS_INTERFACE_VERSION011",
    "STEAMAPPS_INTERFACE_VERSION006",
    "SteamNetworking005",
    "STEAMREMOTESTORAGE_INTERFACE_VERSION012",
    "STEAMSCREENSHOTS_INTERFACE_VERSION002",
    "STEAMHTTP_INTERFACE_VERSION002",
    "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001",
    "STEAMUGC_INTERFACE_VERSION001",
    "STEAMCONTROLLER_INTERFACE_VERSION"
  ];

  Context.WriteTextFile(autoExec, lines);
};