Skip to content

Instantly share code, notes, and snippets.

@FabulousCupcake
Created June 21, 2023 22:42
Show Gist options
  • Save FabulousCupcake/80dd19a57b26b50bc073d9bec753af7c to your computer and use it in GitHub Desktop.
Save FabulousCupcake/80dd19a57b26b50bc073d9bec753af7c to your computer and use it in GitHub Desktop.
Yuzu Input Profile AutoHotkey Script for Xenoblade Chronicles: Definitive Edition

Why?

So in Xenoblade Chronicles: Definitive Edition, the combat controls are kinda awkward: you switch between Arts with Left D-Pad and Right D-Pad, but at the same time you also control your movement with the Left Joystick. Both actions are controlled by your left thumb, so they are effectively mutually exclusive: when you are switching your Arts, you cannot move, and vice versa.

One fairly common solution to this is to remap Left D-Pad to ZL and Right D-Pad to ZR.
This allows you to switch Arts while moving, very nice!

However now the menu navigations are very weird; moving left and right is ZL and ZR, not the Left D-Pad and Right D-Pad anymore, especially when you can also move up and down in the menu as well — you just naturally hit Left D-Pad and Right D-Pad but that does the wrong thing.

Wouldn't it be nice if the remap can be done only for combat...

 

 

Well, fortunately that's possible (on Yuzu) thanks to AutoHotkey!

The script

The following script opens the configuration menu for the current game, switches to the input profile tab, and changes Player 1's input profile to the bottom-most profile. Another hotkey does the same, except it switches it one profile up.

#Requires AutoHotkey v2.0

SetTitleMatchMode "RegEx"
DetectHiddenWindows 1

YuzuMainWindow := "yuzu \d{4}.*"
YuzuConfigWindow := "Properties ahk_exe yuzu.exe"

F12::
{
    ; Set yuzu profile to bottom-most profile (XC1DE - Combat)
    ControlSend "{Alt down}eu{Alt up}", "Qt5152QWindowIcon4", YuzuMainWindow
    WinWait YuzuConfigWindow
    WinHide YuzuConfigWindow
    ControlSend "{tab 8}{right 7}{tab 4}", , YuzuConfigWindow
    ControlSend "{down 3}", , YuzuConfigWindow
    ControlSend "{enter}", , YuzuConfigWindow
}

F9::
{
    ; Set yuzu profile to top-most profile (Default)
    ControlSend "{Alt down}eu{Alt up}", "Qt5152QWindowIcon4", YuzuMainWindow
    WinWait YuzuConfigWindow
    WinHide YuzuConfigWindow
    ControlSend "{tab 8}{right 7}{tab 4}", , YuzuConfigWindow
    ControlSend "{up}", , YuzuConfigWindow
    ControlSend "{enter}", , YuzuConfigWindow
}

With 2 profiles (one with the remap, and one without — the default), now I can press F12 to switch to activate the remap, and when I need to fiddle with the menu outside combat, I can hit F9.

The input profile switch does open the configuration window for a split second, but it's fast enough (roughly half a second) that I think it's a viable solution; I can imagine not being too annoyed from having to switch between the two input profiles in a long gaming session.


P.S. Unrelated to the hotkey and input profiles: If you experience severe lagging when exiting the character equipment menu (but only in the main menu), try disabling Reactive Flushing in Yuzu's Advanced Graphics settings for the game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment