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

Dungeon Lords: Steam Edition · handler “DungeonLords: Steam Edition”

Version 1

Release notes

First Release.

Released
Size
49 KB
Downloads
43
Check
Verified
SHA-256
67573216fa1d8b079069d2ebabf4a5e9b6bc13baaaeb51484402ec5b314af8b3
Download v1 (.nc)All versions

Files 3

PathSize
DungeonLordsSE/d3d9.dll91 KB
DungeonLordsSE/d3d9.ini42 B
handler.js5.3 KB

handler.js

Plain text
Hub.Handler.Version = 1; // Released at https://hub.splitscreen.me/ on Thu May 06 2021 05:05:49 GMT+0000 (UTC).
Hub.Handler.Id = "8JkTWXvPDTncJ5jb4";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.ExecutableContext = ["savegfx"];
Game.KillMutex = ["DungeonLords2012_AppMutex"];
Game.DirSymlinkCopyInstead = ["save"];
Game.FileSymlinkExclusions = ["steam_api.dll", "steam_appid.txt", "playername.txt", "d3d9.dll", "d3d9.ini"];
Game.FileSymlinkCopyInstead = [
  "config.dat",
  "D6ITEM.dat",
  "D6MONS.dat",
  "D6MONSND.dat",
  "D6NPC.dat",
  "D6PROP.dat",
  "D6STRING.dat",
  "D6TREAS.dat",
  "D6TRLIST.dat",
  "Fd6string.dat",
  "finame.dat",
  "fmname.dat",
  "fpname.dat",
  "gd6string.dat",
  "giname.dat",
  "gmname.dat",
  "gpname.dat",
  "iname.dat",
  "jd6string.dat",
  "jiname.dat",
  "md6string.dat",
  "mname.dat",
  "MONSOUND.dat",
  "NATLib.txt",
  "pname.dat",
  "Rd6string.dat",
  "riname.dat",
  "rmname.dat",
  "ROSTER.dat",
  "SSPATH.dat"
];
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "DLSteamEdition.exe";
Game.SteamID = "271760";
Game.GUID = "Dungeon Lords Steam Edition";
Game.GameName = "Dungeon Lords Steam Edition";
Game.MaxPlayers = 8;
Game.MaxPlayersOneMonitor = 2;
Game.UseGoldberg = true;
Game.GoldbergExperimental = false;
Game.LauncherTitle = "";
Game.HideTaskbar = false;
//Game.StartArguments = "-gdi";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Dungeon Lords";
Game.FakeFocus = false;
Game.HookFocus = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = false;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.Description =
  "If you want the instances to resize correctly, avoid stretching and cursor offset you need to create custom resolutions in your AMD/Nvidia/Intel panel (For example: 960x1080, 960x540, 1920x540 etc.) so the game can see and use them. Select the custom resolution you will use in your main game before launching this, the resolution needs to match the instance window size, select 960x1080 for 2 players vertical splitscreen if you have a 1920x1080 monitor for example. Create a LAN game in one instance and join in the others, before starting the game load a different character per instance and make sure all players have a green checkmark in all screens, if not load your character again, double check this otherwise the game will not be able to start. Use the END key to unlock the input and stop splitscreen when you finish playing. You can also use CTRL+Q to close all nucleus instances. Multiple keyboards and mice only as the game lacks native gamepad support. 2 players vertical splitscreen per monitor is recommended.";
Game.KeepSymLinkOnExit = true;
Game.PromptBetweenInstances = true;
Game.PauseBetweenStarts = 30;

Game.SupportsMultipleKeyboardsAndMice = true;

Game.HookSetCursorPos = true;
Game.HookGetCursorPos = true;
Game.HookGetKeyState = false;
Game.HookGetAsyncKeyState = false;
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 = true;
Game.LockInputAtStart = true;
Game.LockInputToggleKey = 0x23;

Game.Play = function() {
  var interfaces = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_interfaces.txt";
  var lines = [
    "SteamClient017",
    "SteamGameServer012",
    "SteamGameServerStats001",
    "SteamUser018",
    "SteamFriends015",
    "SteamUtils007",
    "SteamMatchMaking009",
    "SteamMatchMakingServers002",
    "STEAMUSERSTATS_INTERFACE_VERSION011",
    "STEAMAPPS_INTERFACE_VERSION007",
    "SteamNetworking005",
    "STEAMREMOTESTORAGE_INTERFACE_VERSION012",
    "STEAMSCREENSHOTS_INTERFACE_VERSION002",
    "STEAMHTTP_INTERFACE_VERSION002",
    "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001",
    "STEAMUGC_INTERFACE_VERSION003",
    "STEAMAPPLIST_INTERFACE_VERSION001",
    "STEAMMUSIC_INTERFACE_VERSION001",
    "STEAMMUSICREMOTE_INTERFACE_VERSION001",
    "STEAMHTMLSURFACE_INTERFACE_VERSION_002",
    "STEAMINVENTORY_INTERFACE_V001",
    "STEAMVIDEO_INTERFACE_V001",
    "STEAMCONTROLLER_INTERFACE_VERSION"
  ];

  Context.WriteTextFile(interfaces, lines);

  var name = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\playername.txt";
  var lines = ["" + Context.Nickname];

  Context.WriteTextFile(name, lines);

  var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\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) + "\\d3d9.ini");
  var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "d3d9.ini");
  System.IO.File.Copy(savePkgOrigin, savePath, true);
};