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

God Eater 2 - Rage Burst · handler “GodEater2RB”

Version 3

Release notes

aspect ratio fix for more monitor resolutions

Released
Size
106 KB
Downloads
203
Check
Verified
SHA-256
b1cf342fd2462d41f857935b8f0b5b2e06d651bcdfc52f0f47e483322bca2947
Download v3 (.nc)All versions

Files 6

PathSize
GodEater2RB/CPY.ini118 B
GodEater2RB/SST311212.dll12 KB
GodEater2RB/steamclient.dll5.5 KB
GodEater2RB/steam_api.dll29 KB
GodEater2RB/ValveAPI.dll183 KB
handler.js12 KB

handler.js

Plain text
Hub.Handler.Version = 3; // Released at https://hub.splitscreen.me/ on Mon May 09 2022 06:06:15 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "L5qdhx4YW8FSok5oS";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

var answers1 = ["Yes", "No"];
Game.AddOption(
  "Change resolution and aspect ratio to match window size?",
  "Fixes blackbars and stretching in split-screen for various 16:9 monitor resolutions, set your monitor scale to 100% if you do not see the changes in-game.",
  "AR",
  answers1
);

Game.ExecutableContext = ["bin.qpck"];
Game.KillMutex = ["GE2RB"];
Game.FileSymlinkExclusions = ["GE2RB.exe", "steam_api.dll", "steam_appid.txt", "steamclient.dll", "ValveAPI.dll", "CPY.ini", "SST311212.dll", "xinput1_3.dll"];
Game.GameName = "God Eater 2 Rage Burst";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.SupportsKeyboard = false;
Game.ExecutableName = "GE2RB.exe";
Game.SteamID = "438490";
Game.GUID = "God Eater 2 Rage Burst";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.UseNucleusEnvironment = true;
Game.NeedsSteamEmulation = true;
Game.UseGoldberg = false;
Game.CreateSteamAppIdByExe = true;
Game.LauncherTitle = "";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "God Eater 2 Rage Burst";
Game.FakeFocus = true;
Game.FakeFocusInterval = 5000;
Game.SendFakeFocusMsg = true;
Game.HookFocus = true;
Game.SetWindowHook = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.Hook.CustomDllEnabled = false;
Game.UserProfileConfigPath = "AppData\\Local\\BANDAI NAMCO GAMES\\GOD EATER 2 RAGE BURST";
Game.Description =
  "CLOSE Steam completely before running this. If you want the instances to resize correctly and fix stretching you need to create custom resolutions in your AMD/Nvidia/Intel panel (For example for a 1920x1080 monitor add: 960x1080, 960x540, 1920x540 etc.) so the game can see and use them. Each instance has its own save, you can access these saves via Nucleus, after the first launch click game options/open user profile config path in the UI. Gamepads only.";
Game.PauseBetweenStarts = 30;

Game.Play = function() {
  var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini";
  Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("GFX", "Fullscreen", "0")]);

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

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

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

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

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

  var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\CPY.ini";
  Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
    new Nucleus.IniSaveInfo("Settings", "PlayerName", Context.Nickname),
    new Nucleus.IniSaveInfo("Settings", "SavePath", Context.EnvironmentPlayer + Context.UserProfileConfigPath)
  ]);

  var ar = Context.Options["AR"];
  var screenreswidth = Context.Width;
  var screenresheight = Context.Height;

  if (ar == "Yes") {
    var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini";
    Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
      new Nucleus.IniSaveInfo("GFX", "Resolution_Width", "1920"),
      new Nucleus.IniSaveInfo("GFX", "Resolution_Height", "1080"),
      new Nucleus.IniSaveInfo("GFX", "Fullscreen", "0")
    ]);

    if (screenreswidth == 1920 && screenresheight == 540) {
      //1080p Horizontal

      //patch widescreen
      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04], //1920x1080
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x1c, 0x02]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41], //Aspect Ratio 16:9
        [0x3f, 0x00, 0x00, 0x00, 0x42]
      );
    }

    if (screenreswidth == 960 && screenresheight == 1080) {
      //1080p Vertical

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0xc0, 0x03, 0x00, 0x00, 0x38, 0x04]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41],
        [0x3f, 0x00, 0x00, 0x00, 0x41]
      );
    }

    if (screenreswidth == 960 && screenresheight == 540) {
      //1080p 1/4

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0xc0, 0x03, 0x00, 0x00, 0x1c, 0x02]
      );
    }

    if (screenreswidth == 1280 && screenresheight == 360) {
      //720p Horizontal

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0x00, 0x05, 0x00, 0x00, 0x68, 0x01]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41],
        [0x3f, 0x00, 0x00, 0x00, 0x42]
      );
    }

    if (screenreswidth == 640 && screenresheight == 720) {
      //720p Vertical

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0x80, 0x02, 0x00, 0x00, 0xd0, 0x02]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41],
        [0x3f, 0x00, 0x00, 0x00, 0x41]
      );
    }

    if (screenreswidth == 640 && screenresheight == 360) {
      //720p 1/4

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0x80, 0x02, 0x00, 0x00, 0x68, 0x01]
      );
    }

    if (screenreswidth == 2560 && screenresheight == 720) {
      //1440p Horizontal

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0x00, 0x0a, 0x00, 0x00, 0xd0, 0x02]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41],
        [0x3f, 0x00, 0x00, 0x00, 0x42]
      );
    }

    if (screenreswidth == 1280 && screenresheight == 1440) {
      //1440p Vertical

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0x00, 0x05, 0x00, 0x00, 0xa0, 0x05]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41],
        [0x3f, 0x00, 0x00, 0x00, 0x41]
      );
    }

    if (screenreswidth == 1280 && screenresheight == 720) {
      //1440p 1/4

      var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini";
      Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
        new Nucleus.IniSaveInfo("GFX", "Resolution_Width", Context.Width),
        new Nucleus.IniSaveInfo("GFX", "Resolution_Height", Context.Height),
        new Nucleus.IniSaveInfo("GFX", "Fullscreen", "0")
      ]);

      System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"), System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"), true);
    }

    if (screenreswidth == 3840 && screenresheight == 1080) {
      //4k Horizontal

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0x00, 0x0f, 0x00, 0x00, 0x38, 0x04]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41],
        [0x3f, 0x00, 0x00, 0x00, 0x42]
      );
    }

    if (screenreswidth == 1920 && screenresheight == 2160) {
      //4k Vertical

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x38, 0x04],
        [0x3f, 0x80, 0x07, 0x00, 0x00, 0x70, 0x08]
      );

      Context.PatchFile(
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"),
        [0x3f, 0x00, 0x00, 0x80, 0x41],
        [0x3f, 0x00, 0x00, 0x00, 0x41]
      );
    }

    if (screenreswidth == 1920 && screenresheight == 1080) {
      //4k 1/4

      var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini";
      Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
        new Nucleus.IniSaveInfo("GFX", "Resolution_Width", Context.Width),
        new Nucleus.IniSaveInfo("GFX", "Resolution_Height", Context.Height),
        new Nucleus.IniSaveInfo("GFX", "Fullscreen", "0")
      ]);

      System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"), System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"), true);
    }
  }

  if (ar == "No") {
    System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "GE2RB.exe"), System.IO.Path.Combine(Context.RootFolder, "GE2RB.exe"), true);

    if (Context.AspectRatioDecimal < 1.2) {
      Context.BackupFile(Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini", true);

      var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\config.ini";
      Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [
        new Nucleus.IniSaveInfo("GFX", "Resolution_Width", Context.Width),
        new Nucleus.IniSaveInfo("GFX", "Resolution_Height", Context.Height),
        new Nucleus.IniSaveInfo("GFX", "Fullscreen", "0")
      ]);
    } else {
    }
  }
};