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

Dragon Ball: Xenoverse 2 · handler “Dragon Ball Xenoverse 2”

Version 9

Release notes

new dlc support

Released
Size
941 KB
Downloads
919
Check
Verified
SHA-256
27802a862e04c6c19a09009204e701c47331ea25ce938606156db89cf817399e
Download v9 (.nc)All versions

Files 3

PathSize
DragonBallXenoverse2/EasyAntiCheat_x64.dll778 KB
DragonBallXenoverse2/steam_api64.dll1.4 MB
handler.js9.0 KB

handler.js

Plain text
Hub.Handler.Version = 9; // Released at https://hub.splitscreen.me/ on Sat Jul 09 2022 06:10:18 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "RnZEzp8vqSjFXJ2pW";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

var answers1 = ["Yes", "No"];
Game.AddOption("Change aspect ratio to match the window resolution?", "Removes pillarboxing/blackbars, add custom resolutions first like the handler notes mention.", "AR", answers1);

Game.KillMutex = ["DBXV2"];
Game.DirSymlinkExclusions = ["bin", "EasyAntiCheat"];
Game.FileSymlinkExclusions = ["steam_api64.dll", "steam_appid.txt", "local_save.txt", "xgcore.dll", "EasyAntiCheat_x64.dll", "winmm.dll", "xinput1_3.dll"];
Game.FileSymlinkCopyInstead = ["dinput8.dll"];
Game.MutexProcessExe = "DBXV2.exe";
Game.KillMutexProcess = ["XV2PATCHER_INSTANCE"];
Game.GameName = "Dragon Ball Xenoverse 2";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "DBXV2.exe";
Game.SteamID = "454650";
Game.GUID = "Dragon Ball Xenoverse 2";
Game.MaxPlayers = 6;
Game.MaxPlayersOneMonitor = 6;
Game.BinariesFolder = "bin";
Game.UseNucleusEnvironment = true;
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.GoldbergNoLocalSave = true;
Game.LauncherTitle = "";
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "DRAGON BALL XENOVERSE 2";
Game.FakeFocus = true;
Game.FakeFocusInterval = 20000;
Game.SendFakeFocusMsg = true;
Game.HookFocus = true;
Game.SetWindowHook = true;
Game.ResetWindows = true;
Game.SetForegroundWindowElsewhere = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.UserProfileSavePath = "AppData\\Roaming\\Goldberg SteamEmu Saves\\454650\\remote\\DBXV2";
Game.UserProfileConfigPath = "AppData\\Local\\BANDAI NAMCO Entertainment\\DB Xenoverse 2";
Game.PlayerSteamIDs = ["76561198422152816", "76561198131394153", "76561198011792067", "76561198043762785"];
Game.Description =
  "IMPORTANT: Requires Steam to be opened to launch. To connect the instances successfully you have to create a match at the same time the other player presses quickplay, if you see a number like 1000 in both players in all instances you will be able to start the match. So the instances launch and resize correctly make sure to run your main game at least once first and change some graphic settings. You can change the resolution in the game graphic options to adjust better to the window size if you get black bars. The online co-op missions and versus mode unlock after the fight against Raditz and after you beat the first offline parallel quest. You need to create custom resolutions in your AMD/Nvidia/Intel panel (For example: 960x1080, 1920x600 etc.) for the game to see them and use them. If you want to use XV2PATCHER for mods you need to install it in your main files using the alternative dinput8.dll it includes and not the xinput1_3.dll default installation.";
Game.PauseBetweenStarts = 30;

Game.Play = function() {
  var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini";
  Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("DEV", "EAC_AllowDisparityMatch", "1"),
    new Nucleus.IniSaveInfo("DEV", "EAC_MultiplayerWithoutEAC", "1"),
    new Nucleus.IniSaveInfo("Graphics", "Display/FullScreen", "2"),
    new Nucleus.IniSaveInfo("Options", "VoiceChat/Mic", "0"),
    new Nucleus.IniSaveInfo("XGUI", "FreeMouse", "1")
  ]);

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

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

  var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\bin\\steam_settings");
  System.IO.Directory.CreateDirectory(filePath);

  var dlc = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\bin\\steam_settings\\DLC.txt";
  var lines = [
    "2023140=DRAGON BALL XENOVERSE 2 Legend Patrol Pack",
    "1999190=DRAGON BALL XENOVERSE 2 Conton City Vote Pack",
    "1744080=DRAGON BALL XENOVERSE 2 - Legendary Pack 2",
    "1544340=DRAGON BALL XENOVERSE 2 - Legendary Pack Set",
    "1507380=DRAGON BALL XENOVERSE 2 - Legendary Pack 1",
    "1108461=DRAGON BALL XENOVERSE 2 - Ultra Pack 2",
    "1108460=DRAGON BALL XENOVERSE 2 - Ultra Pack Set",
    "953020=DRAGON BALL XENOVERSE 2 - Anime Music Pack 2",
    "740160=DRAGON BALL XENOVERSE 2 - Ultra Pack 1",
    "740143=DRAGON BALL XENOVERSE 2 - Extra DLC Pack 4",
    "740142=DRAGON BALL XENOVERSE 2 - Extra DLC Pack 3",
    "740141=DRAGON BALL XENOVERSE 2 - Extra Pass",
    "740140=DRAGON BALL XENOVERSE 2 - Anime Music Pack",
    "739282=DRAGON BALL XENOVERSE 2 - Extra DLC Pack 2",
    "739281=DRAGON BALL XENOVERSE 2 - Extra DLC Pack 1",
    "739280=DRAGON BALL XENOVERSE 2 - Extra Pack Set",
    "621100=DRAGON BALL XENOVERSE 2 - Future Trunks (Super)",
    "556270=DRAGON BALL Xenoverse 2 - TV show TP Medal",
    "540071=DRAGON BALL Xenoverse 2 - TP Medal",
    //"540070=DRAGON BALL Xenoverse 2 - Steve Aoki Pack",
    "508405=DRAGON BALL Xenoverse 2 - Pre-Order Bonus",
    "508404=DRAGON BALL Xenoverse 2 - Future Trunks",
    "508403=DRAGON BALL XENOVERSE 2 - Super Pack 4",
    "508402=DRAGON BALL XENOVERSE 2 - Super Pack 3",
    "508401=DRAGON BALL XENOVERSE 2 - Super Pack 2",
    "508400=DRAGON BALL XENOVERSE 2 - Super Pack 1",
    "507510=DRAGON BALL XENOVERSE 2 Super Pass"
  ];

  Context.WriteTextFile(dlc, lines);

  var ar = Context.Options["AR"];

  if (ar == "Yes") {
    if (Context.AspectRatioDecimal > 1.8) {
      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "xgcore.dll"),
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        [0x56, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0xe3, 0x3f],
        [0x56, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0x63, 0x40]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        [0x2d, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0xe3, 0x3f],
        [0x2d, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0x63, 0x40]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        [0x01, 0x39, 0x8e, 0xe3, 0x3f, 0xeb],
        [0x01, 0x39, 0x8e, 0x63, 0x40, 0xeb]
      );
    } else if (Context.AspectRatioDecimal < 1.2) {
      var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini";
      Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
        new Nucleus.IniSaveInfo("Graphics", "Display/Height", Context.Height),
        new Nucleus.IniSaveInfo("Graphics", "Display/Width", Context.Width)
      ]);

      //patch aspect ratio.
      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "xgcore.dll"),
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        [0x56, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0xe3, 0x3f],
        [0x56, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0x63, 0x3f]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        [0x2d, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0xe3, 0x3f],
        [0x2d, 0x33, 0x00, 0xc7, 0x41, 0x24, 0xdb, 0x0f, 0x49, 0x3f, 0xc7, 0x41, 0x20, 0x39, 0x8e, 0x63, 0x3f]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"),
        [0x01, 0x39, 0x8e, 0xe3, 0x3f, 0xeb],
        [0x01, 0x39, 0x8e, 0x63, 0x3f, 0xeb]
      );
    } else {
      System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "xgcore.dll"), System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"), true);
    }
  }

  if (ar == "No") {
    System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "xgcore.dll"), System.IO.Path.Combine(Context.RootFolder, "bin\\xgcore.dll"), true);
  }
};