MotoGP '07 · handler “MotoGP 07”
Version 1
Release notes
Handler for MotoGP 07
- Released
- Size
- 609 KB
- Downloads
- 113
- Check
- Verified
- SHA-256
- b7d89b6311e0a868a6d9553df60ef89b9cd274b03e009bed49286b08dd8c4f4b
Files 11
| Path | Size |
|---|---|
| handler/D3D9.dll | 405 KB |
| handler/dgVoodoo.conf | 16 KB |
| handler/dgVoodooCpl.exe | 362 KB |
| handler/dgVoodoo_fullscreen.conf | 16 KB |
| handler/motogp_High.cfg | 3.2 KB |
| handler/motogp_Low.cfg | 3.2 KB |
| handler/motogp_Med.cfg | 3.2 KB |
| handler/profile | 178 KB |
| handler/settings_audio | 90 KB |
| handler/settings_noaudio | 90 KB |
| handler.js | 10 KB |
handler.js
Plain textHub.Handler.Version = 1; // Released at https://hub.splitscreen.me/ on Sun Aug 20 2023 15:29:31 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "pSLtMZ8s6D8xhyiEC";
Hub.Maintainer.Name = "Perserveruz";
Hub.Maintainer.Id = "nFAYvHKj75jAFRAgt";
var answers = ["No", "Yes"];
var answers1 = ["No", "720p", "1080p"];
var answers2 = ["Default", "Low", "Med", "High"];
Game.AddOption("Select preferred graphic settings", "Select Default to load default or previously selected setting", "Graphics", answers2);
Game.AddOption("Apply 720p or 1080p resolution and fullscreen for low-end PC (only native splitscreen)", "", "fullscreen", answers1);
Game.AddOption("Are you launching more than one instance?", "Select yes only for 5 or more players", "BigParty", answers);
Game.FileSymlinkExclusions = ["D3D9.dll", "dgVoodoo.conf", "motogp.cfg", "settings", "profile"];
Game.FileSymlinkCopyInstead = ["launcher.exe"];
Game.DirSymlinkExclusions = ["save"];
Game.KillMutex = ["Type:Mutant|motogp2007ownz", "Type:Mutant|motogp2007launch"];
Game.RenameNotKillMutex = false;
Game.HandlerInterval = 100;
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = false;
Game.GoldbergLanguage = "english";
Game.GoldbergNoLocalSave = true;
Game.UseNucleusEnvironment = true;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.KeepSymLinkOnExit = true;
Game.SymlinkFolders = false;
Game.SupportsKeyboard = false;
Game.ExecutableName = "motogp.exe";
Game.SteamID = "";
Game.GUID = "MotoGP 07";
Game.GameName = "MotoGP 07";
Game.MaxPlayers = 8;
Game.MaxPlayersOneMonitor = 8;
Game.HideTaskbar = false;
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "MotoGP2007";
Game.HasDynamicWindowTitle = false;
Game.HookFocus = true;
Game.FakeFocus = true;
Game.FakeFocusSendActivate = false;
Game.PreventWindowDeactivation = false;
Game.Hook.DInputEnabled = false;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = false;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.ProtoInput.XinputHook = true;
Game.ProtoInput.UseOpenXinput = true;
Game.PauseBetweenProcessGrab = 10;
Game.PauseBetweenProcessStarts = 10;
Game.SetForegroundWindowElsewhere = true;
Game.UseForceBindIP = true;
Game.Description =
"MotoGP 07 already has native 4 player split screen and LAN. The purpose of this handler is to fix some graphical issues, to unlock all bikes and tracks, and to increase split screen up to 8 players. Enjoy!";
Game.Play = function() {
var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\save");
System.IO.Directory.CreateDirectory(filePath);
var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\save\\Player " + Context.Nickname + "");
System.IO.Directory.CreateDirectory(filePath);
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\save\\Player " + Context.Nickname + "\\profile");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "profile");
System.IO.File.Copy(savePkgOrigin, savePath, true);
if (Context.PlayerID == 0) {
if (!System.IO.File.Exists((Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\save\\settings"))) {
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\save\\settings");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "settings_audio");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
} else {
if (!System.IO.File.Exists((Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\save\\settings"))) {
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\save\\settings");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "settings_noaudio");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
}
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);
if (!System.IO.File.Exists((Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg"))) {
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "motogp_Med.cfg");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
var Graphics = Context.Options["Graphics"];
if (Graphics == "Default") {
}
if (Graphics == "Low") {
var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg";
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "motogp_Low.cfg");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
if (Graphics == "Med") {
var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg";
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "motogp_Med.cfg");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
if (Graphics == "High") {
var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg";
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "motogp_High.cfg");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
var txtPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg";
var dict = [
Context.FindLineNumberInTextFile(txtPath, "vmode/width", Nucleus.SearchType.StartsWith) + "|vmode/width = " + Context.Width + "",
Context.FindLineNumberInTextFile(txtPath, "vmode/height", Nucleus.SearchType.StartsWith) + "|vmode/height = " + Context.Height + "",
Context.FindLineNumberInTextFile(txtPath, "vmode/windowed", Nucleus.SearchType.StartsWith) + "|vmode/windowed = 1"
];
Context.ReplaceLinesInTextFile(txtPath, dict);
var fullscreen = Context.Options["fullscreen"];
if (fullscreen == "No") {
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\dgVoodoo.conf");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "dgVoodoo.conf");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
if (fullscreen == "720p") {
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\dgVoodoo.conf");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "dgVoodoo_fullscreen.conf");
System.IO.File.Copy(savePkgOrigin, savePath, true);
Game.DontResize = true;
Game.DontReposition = true;
Game.DontRemoveBorders = true;
var txtPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg";
var dict = [
Context.FindLineNumberInTextFile(txtPath, "vmode/width", Nucleus.SearchType.StartsWith) + "|vmode/width = 1280",
Context.FindLineNumberInTextFile(txtPath, "vmode/height", Nucleus.SearchType.StartsWith) + "|vmode/height = 720",
Context.FindLineNumberInTextFile(txtPath, "vmode/windowed", Nucleus.SearchType.StartsWith) + "|vmode/windowed = 0"
];
Context.ReplaceLinesInTextFile(txtPath, dict);
}
if (fullscreen == "1080p") {
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\dgVoodoo.conf");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "dgVoodoo_fullscreen.conf");
System.IO.File.Copy(savePkgOrigin, savePath, true);
Game.DontResize = true;
Game.DontReposition = true;
Game.DontRemoveBorders = true;
var txtPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\motogp.cfg";
var dict = [
Context.FindLineNumberInTextFile(txtPath, "vmode/width", Nucleus.SearchType.StartsWith) + "|vmode/width = 1920",
Context.FindLineNumberInTextFile(txtPath, "vmode/height", Nucleus.SearchType.StartsWith) + "|vmode/height = 1080",
Context.FindLineNumberInTextFile(txtPath, "vmode/windowed", Nucleus.SearchType.StartsWith) + "|vmode/windowed = 0"
];
Context.ReplaceLinesInTextFile(txtPath, dict);
}
if (Context.Options["BigParty"] == "No") {
Game.ProtoInput.MultipleProtoControllers = true;
ProtoController1 = 1;
ProtoController2 = 2;
ProtoController3 = 3;
ProtoController4 = 4;
}
if (Context.Options["BigParty"] == "Yes") {
Game.ProtoInput.InjectStartup = false;
Game.ProtoInput.InjectRuntime_RemoteLoadMethod = false;
Game.ProtoInput.InjectRuntime_EasyHookMethod = true;
Game.ProtoInput.InjectRuntime_EasyHookStealthMethod = false;
Game.ProtoInput.GetRawInputDataHook = true;
if (Context.PlayerID == 0) {
// So the code only runs once
Game.ProtoInput.MultipleProtoControllers = true;
// The number of controller icons dragged onto the screens
var numPlayers = 0;
for (var i = 0; i < PlayerList.Count; i++) {
var player = PlayerList[i];
if (player.IsXInput && player.ScreenIndex !== -1) {
numPlayers++;
}
// These might not be reset between runs, so let's reset them here
// 0 means no controller, 1 means controller 1, etc
player.ProtoController1 = 0;
player.ProtoController2 = 0;
player.ProtoController3 = 0;
player.ProtoController4 = 0;
}
var controllerCounter = 1;
while (controllerCounter < numPlayers * 4) {
for (var i = 0; i < PlayerList.Count; i++) {
var player = PlayerList[i];
if (player.IsXInput && player.ScreenIndex !== -1) {
if (player.ProtoController1 == 0) {
player.ProtoController1 = controllerCounter;
controllerCounter++;
} else if (player.ProtoController2 == 0) {
player.ProtoController2 = controllerCounter;
controllerCounter++;
} else if (player.ProtoController3 == 0) {
player.ProtoController3 = controllerCounter;
controllerCounter++;
} else if (player.ProtoController4 == 0) {
player.ProtoController4 = controllerCounter;
controllerCounter++;
} else {
// This instance has all its controllers set already
}
}
}
}
}
}
};