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 7

Release notes

multikeyboard fixes

Released
Size
1.7 KB
Downloads
3,327
Check
Verified
SHA-256
d3f0f54a1964c8882b9c4427d9481ac5616267380fc8788b0c546a3fb14fd27d
Download v7 (.nc)All versions

Files 1

PathSize
handler.js4.6 KB

handler.js

Plain text
Hub.Handler.Version = 7; // Released at https://hub.splitscreen.me/ on Thu Apr 30 2020 20:47:54 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",
  "xinput1_3.dll"
  //"DINPUT8.dll"
];
Game.FileSymlinkCopyInstead = ["DSfix.ini"];
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 = false;
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, use the keyboards in all menus. Press the END key again to unlock the input. You can also use CTR+Q to close Nucleus and all its instances. Each instance has its own saves that are copies of your original ones, so your original saves will not be overwritten. You can access these saves in the app, after the first launch click game options/open user profile save path in the UI.";
Game.PauseBetweenStarts = 40;

Game.SupportsMultipleKeyboardsAndMice = true;

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

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 = false;
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.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);
};