Skip to content

small update#6

Open
Messenils wants to merge 36 commits into
SplitScreen-Me:masterfrom
Messenils:master
Open

small update#6
Messenils wants to merge 36 commits into
SplitScreen-Me:masterfrom
Messenils:master

Conversation

@Messenils
Copy link
Copy Markdown

Improved DrawFakeCursorFix. Protohost can now position windows, making testing easier. New options: Translate X to MKB, and MKB to X. PointerInMouse translating traditional mousemessages to the new. ReRegisterInput force adds game window to rawinput.

Game.ProtoInput.TranslateXinputtoMKB =true; //true or false. Translates controller to MKB
Game.ProtoInput.TranslateMKBtoXinput = true; //true or false. Translates MKB to controller
Game.ProtoInput.PointerInMouse = true; //true or false. Send different untraditional mouse messages
Game.ProtoInput.ReRegisterInput = true; //true or false. Force add game window to raw input

//scaling. scales from selected resolution
Game.ProtoInput.ScaleFromX = 800; //old resolution to scale from. forexample if game window is resized from 800 to 1600 width then input messages will be scaled with *0.5
Game.ProtoInput.ScaleFromY = 600; //old resolution to scale from. forexample if game window is resized from 600 to 1200 height then input messages will be scaled with *0.5

//forward forcefocus-window from nucleus to protoinput. //only done at inject
Game.ForwardWindowToProtoInput = true; //can only be done on inject. Forwards nucleus grabbed window to protoinput

//XtranslateCFG all bools
//common settings for both translation methods
Game.ProtoInput.TranslateXSensitivity = 8;
Game.ProtoInput.TranslateXDeadzone = 2;

// for both translation methods
Game.ProtoInput.TranslateXSwapSticks = true; //change right stick to left stick

//XtranslateKeys all ints //common settings for both translation methods
Game.ProtoInput.TranslateXButtonA = Nucleus.Key.R;
Game.ProtoInput.TranslateXButtonB = Nucleus.Key.G;
Game.ProtoInput.TranslateXButtonX = Nucleus.Key.E;
Game.ProtoInput.TranslateXButtonY = Nucleus.Key.C;
Game.ProtoInput.TranslateXButtonRS = Nucleus.Key.Shift;
Game.ProtoInput.TranslateXButtonLS = Nucleus.Key.Space;
Game.ProtoInput.TranslateXButtonRight = Nucleus.Key.Right;
Game.ProtoInput.TranslateXButtonLeft = Nucleus.Key.Left;
Game.ProtoInput.TranslateXButtonUp = Nucleus.Key.Up;
Game.ProtoInput.TranslateXButtonDown = Nucleus.Key.Down;
Game.ProtoInput.TranslateXStickR = Nucleus.Key.Z;
Game.ProtoInput.TranslateXStickL = Nucleus.Key.M;
Game.ProtoInput.TranslateXStickRight = Nucleus.Key.D;
Game.ProtoInput.TranslateXStickLeft = Nucleus.Key.A;
Game.ProtoInput.TranslateXStickUp = Nucleus.Key.W;
Game.ProtoInput.TranslateXStickDown = Nucleus.Key.S;
Game.ProtoInput.TranslateXButtonOption = Nucleus.Key.Return;
Game.ProtoInput.TranslateXButtonStart = Nucleus.Key.Escape;

//only on TranslateXinputtoMKB
Game.ProtoInput.TranslateXAccelration = 4;
Game.ProtoInput.TranslateXScanner = true; //to do scans on presaved BMPS or statics listed in Xinput.ini file
Game.ProtoInput.TranslateXShouldersNextPoint = true; //use shoulders to scroll between presaved points if true
Game.ProtoInput.TranslateXAstatic = true; //points for button A are remembered if true
Game.ProtoInput.TranslateXBstatic = true; //points for button B are remembered if true
Game.ProtoInput.TranslateXXstatic = true; //points for button X are remembered if true
Game.ProtoInput.TranslateXYstatic = true; //points for button Y are remembered if true
Game.ProtoInput.TranslateXAPointClick = true;//points for button A will do mouseclick input
Game.ProtoInput.TranslateXBPointClick = true;//points for button B will do mouseclick input
Game.ProtoInput.TranslateXXPointClick = true;//points for button X will do mouseclick input
Game.ProtoInput.TranslateXYPointClick = true;//points for button Y will do mouseclick input
Game.ProtoInput.TranslateXAPointMove = true;//points for button A will move mouse to point
Game.ProtoInput.TranslateXBPointMove = true;//points for button B will move mouse to point
Game.ProtoInput.TranslateXXPointMove = true;//points for button X will move mouse to point
Game.ProtoInput.TranslateXYPointMove = true;//points for button Y will move mouse to point

Game.ProtoInput.OnInputUnlocked = function() //or locked
{
for (var i = 0; i < PlayerList.Count; i++)
{
var player = PlayerList[i];
ProtoInput.SetTranslateMKBtoXinput(player.ProtoInputInstanceHandle, false); //or true
ProtoInput.SetTranslateXinputtoMKB(player.ProtoInputInstanceHandle, false); //or true
ProtoInput.SetPointerInMouse(player.ProtoInputInstanceHandle, false); //or true
}
}

Messenils and others added 30 commits November 4, 2025 19:30
…ranslateXtoMKB that when enabled polls Xinput and translates to MKB data if mouse or keyboard handle is missing from tunell. still some work left, mostly arranging it a little, and maybe re-use some more protoinput hooks instead of using all new ones
… hooks and functions are reused. exept for a custom rawinputhook only used in XinputTranslation. missing button remappings. still a work in progress
…owse setting to adjust. Start button +Left/Right change selected setting
+ added 2 seconds delay on settings ingame popup for the TranslateXtoKBM so start and back can be mapped without rendering settings unintentionally
…ranslation. PointerInMouse can now be set runtime, also in runtime GUI
Messenils added 6 commits May 19, 2026 22:44
…fset scan. Mousewheel coordinates correct. translateXtoMKB with optional bmp coordinate scanner system, translateMKBtoX. New input tricks ReregisterInput option to ensure raw input is sent, and PointerInMouse to translate traditional mousemessages to pointer. When a window handle is received through tunell, it will be permanent. Manual scaling, to upscale/downscale coordinates.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant