Homebrew KeyX-Supports Turbo and Button Remapping

  • Thread starter Thread starter TOMSUN
  • Start date Start date
  • Views Views 5,951
  • Replies Replies 48
  • Likes Likes 14
Is there any guidance on editing macros via desktop?

EDIT: nevermind, suddenly my macros and all other functions just don't work in the newest KeyX update. Did one of the updates mess uo compatibility for 3rd party controllers or smth?
 
Last edited by Miowo,
Is there any guidance on editing macros via desktop?

EDIT: nevermind, suddenly my macros and all other functions just don't work in the newest KeyX update. Did one of the updates mess uo compatibility for 3rd party controllers or smth?
Latest KeyX version is 1.4.3.


In version 1.4.2, a crash would occur if your UltraHand ovlloader memory size was set to 4MB.


This issue has been fixed in version 1.4.3.
Post automatically merged:

Is there any guidance on editing macros via desktop?

EDIT: nevermind, suddenly my macros and all other functions just don't work in the newest KeyX update. Did one of the updates mess uo compatibility for 3rd party controllers or smth?
When you mentioned a third-party controller,
do you mean controllers other than Switch Lite / Joy-Con / Pro Controller?


If so, is it a detachable (split) controller or an integrated (one-piece) controller?


If it’s an integrated one, does it use the Pro Controller protocol, or does it rely on a third-party controller plugin?
Post automatically merged:

Is there any guidance on editing macros via desktop?

EDIT: nevermind, suddenly my macros and all other functions just don't work in the newest KeyX update. Did one of the updates mess uo compatibility for 3rd party controllers or smth?
I have two Switch consoles, one OLED and one Lite.

The test results are as follows.

Switch LITE (4GB)
KEYX 1.4.3
HOS 21.1
AMS 1.10.1
Ultrahand using the latest version

The ovlloader is set to 4MB (the most extreme setting).


### Tested with the LITE stock controller unit and third-party integrated controllers (using the Pro controller protocol).

Switch OLED (4GB)
KEYX 1.4.3
HOS 20.5
AMS 1.9.5
Ultrahand using the latest version

The ovlloader is set to 4MB (the most extreme setting).


### Tested with Joy-Con controllers and third-party integrated controllers (using the Pro controller protocol).

All tests worked normally,
so I’m not sure where your issue is coming from.

You might want to try disabling some other sysmodules for testing.
In my case, all sysmodules together only take up a little over 300 KB of memory.
 
Last edited by TOMSUN,
Latest KeyX version is 1.4.3.


In version 1.4.2, a crash would occur if your UltraHand ovlloader memory size was set to 4MB.


This issue has been fixed in version 1.4.3.
Post automatically merged:


When you mentioned a third-party controller,
do you mean controllers other than Switch Lite / Joy-Con / Pro Controller?


If so, is it a detachable (split) controller or an integrated (one-piece) controller?


If it’s an integrated one, does it use the Pro Controller protocol, or does it rely on a third-party controller plugin?
Post automatically merged:


I have two Switch consoles, one OLED and one Lite.

The test results are as follows.

Switch LITE (4GB)
KEYX 1.4.3
HOS 21.1
AMS 1.10.1
Ultrahand using the latest version

The ovlloader is set to 4MB (the most extreme setting).


### Tested with the LITE stock controller unit and third-party integrated controllers (using the Pro controller protocol).

Switch OLED (4GB)
KEYX 1.4.3
HOS 20.5
AMS 1.9.5
Ultrahand using the latest version

The ovlloader is set to 4MB (the most extreme setting).


### Tested with Joy-Con controllers and third-party integrated controllers (using the Pro controller protocol).

All tests worked normally,
so I’m not sure where your issue is coming from.

You might want to try disabling some other sysmodules for testing.
In my case, all sysmodules together only take up a little over 300 KB of memory.
Its this controller. My joycons work fine so idk.

Also, is there a way to edit macro files on PC? I want to edit the time values of stick inputs
 
Its this controller. My joycons work fine so idk.

Also, is there a way to edit macro files on PC? I want to edit the time values of stick inputs
Glad the issue has been resolved.
During macro recording in this project, the joysticks are sampled as coordinates, not directions,
that is, left joystick (XXXX, XXXX), right joystick (xxxx, xxxx).
One data sample is collected every 8 ms.
Therefore, joystick editing is very difficult.
In the unreleased version 1.5.3, I have already added joystick editing functionality,
allowing the joystick to be replaced using eight directions, but this will definitely cause a reduction in joystick precision.
The new version is expected to be released today or tomorrow,
and it also completely fixes the issue where Joy-Con and Pro Controller macros can get the joystick stuck.
 
  • Like
Reactions: shoreyo
Seems like since 1.4.2 / 1.4.3, the macros are not looping anymore.

Is there a new setting to toggle this somewhere or is that expected behavior ? (on older version macros where looping until stopped, if I remember correctly)

If I'm in the wrong here and macros never looped before, my bad :D and can it be added as an optional setting (per macro loop possibility) ?
 
Seems like since 1.4.2 / 1.4.3, the macros are not looping anymore.

Is there a new setting to toggle this somewhere or is that expected behavior ? (on older version macros where looping until stopped, if I remember correctly)

If I'm in the wrong here and macros never looped before, my bad :D and can it be added as an optional setting (per macro loop possibility) ?
  • Single play: Tap the shortcut key once.
  • Loop play: Hold the shortcut key for 0.5 seconds and then release it; the macro will keep playing in a loop.
  • Interrupt playback: Press the shortcut key once again while it is playing.

These are the intended design rules. If the actual behavior is inconsistent, it likely indicates that something is wrong somewhere.
Post automatically merged:

Seems like since 1.4.2 / 1.4.3, the macros are not looping anymore.

Is there a new setting to toggle this somewhere or is that expected behavior ? (on older version macros where looping until stopped, if I remember correctly)

If I'm in the wrong here and macros never looped before, my bad :D and can it be added as an optional setting (per macro loop possibility) ?
In fact, I’ve also noticed that sometimes the shortcut key triggering seems to have some issues.
This is because the API used to read user input can have its key data polluted by injected virtual key inputs.
In other words, the injected virtual keys may be read as if they were actual user inputs.
This makes the input detection logic quite complicated.
I’ll take another careful look at it.
 
  • Love
Reactions: Insektaure
Completely forgot about the "keep pressing the shortcut for looping" ! My bad !

Thanks for your quick response <3

I'll try to make & test some macros for popular games to be added in the future "online macro" section !
 
  • Like
Reactions: TOMSUN
Completely forgot about the "keep pressing the shortcut for looping" ! My bad !

Thanks for your quick response <3

I'll try to make & test some macros for popular games to be added in the future "online macro" section !
Thank you very much for your support.
Actually, my online repository currently only has a few macros, haha.
Because I’m not very good at performing those complex in-game actions myself.
Post automatically merged:

Controller Adaptation​

  • Completely solved the bug where playing macros with joycon and pro controller may cause the joystick to freeze
  • Added a switch in JoyCon to toggle rapid fire for the left or right controller

Macro Store​

  • Added macro store function, one-click download macros to switch
  • In the store, you can directly see macro related introduction, such as author, usage instructions
  • Accessing the store in-game will directly return the macros for that game
  • Accessing the store when no game is running will directly return all installed game macros
  • This is a community-based store, so the number of macros is temporarily very few
  • Related servers have been set up in China, due to network restrictions, only domestic network can directly upload their own macros
  • This upload function will be online in the next version
  • Users in other regions can submit PR to my macro repository, or directly send macros to me
  • In the future, macros on the Chinese server will also be regularly copied to the github repository

Macro Detail Interface​

  • Added macro metadata file, macros downloaded from the store will directly display Simplified/Traditional/English names
  • Macros downloaded from the store can view related usage instructions in the macro detail interface
  • The shortcut setting interface added single play, loop play, interrupt play prompt texts
  • Fixed the issue when renaming macro files, duplicate file was not handled

Macro Editor​

  • Now when you save editor content, it will back up the original file, can be used to restore when modification goes wrong
  • Rewrote editor data processing code, now processing of macro file data will be more accurate
  • Editor added copy forward/backward, move forward/backward, modify joystick, delete joystick and other editing functions
  • Note, modifying joystick changes the original coordinate full data joystick to virtual direction joystick, which will greatly reduce joystick precision
  • Reset action and modify time functions now support batch operation
  • Modify time function save button changed from A to +
  • Now the action list will not be automatically merged after user modification
  • Now when saving macros in editor, will not automatically add no-action at the end
  • Fixed the issue of timeline total length drawing exception when total macro time changes
  • Fixed the issue that undo button outside of Chinese does not automatically highlight

Macro Recording​

  • Now after recording is completed, the no-action frames at the end of macro data will be automatically deleted

Macro List​

  • Now when the number of macros in the game directory is 0, it will no longer be displayed in the list
  • Added text showing the number of macros owned to the right of the game name list item

Macro Playback​

  • Now, when playing a macro that contains joystick data, user inputs will not be applied to the joystick
  • This change is to solve the problem that playing macros may cause joystick freezing
  • And macros with joystick data themselves should not receive additional user input

Others​

  • Added German support, thanks to @HeikesFootSlave for providing German translation text
  • Now when opening ovl plugin, it will automatically detect whether there is a new version, if so, the update button will highlight to remind
  • libultrahand library updated to the latest version
  • Fixed curl resource leak issue
  • Fixed the issue that when the network is poor in the update interface, exiting will block for a period of time
For versions 1.4.2 and later, you can directly update by pressing + in the settings interface
The CN and EN versions differ only in the Tesla overlay title; everything else is identical.
 
Last edited by TOMSUN,
Thank you very much for your support.
Actually, my online repository currently only has a few macros, haha.
Because I’m not very good at performing those complex in-game actions myself.
Post automatically merged:

Controller Adaptation​

  • Completely solved the bug where playing macros with joycon and pro controller may cause the joystick to freeze
  • Added a switch in JoyCon to toggle rapid fire for the left or right controller

Macro Store​

  • Added macro store function, one-click download macros to switch
  • In the store, you can directly see macro related introduction, such as author, usage instructions
  • Accessing the store in-game will directly return the macros for that game
  • Accessing the store when no game is running will directly return all installed game macros
  • This is a community-based store, so the number of macros is temporarily very few
  • Related servers have been set up in China, due to network restrictions, only domestic network can directly upload their own macros
  • This upload function will be online in the next version
  • Users in other regions can submit PR to my macro repository, or directly send macros to me
  • In the future, macros on the Chinese server will also be regularly copied to the github repository

Macro Detail Interface​

  • Added macro metadata file, macros downloaded from the store will directly display Simplified/Traditional/English names
  • Macros downloaded from the store can view related usage instructions in the macro detail interface
  • The shortcut setting interface added single play, loop play, interrupt play prompt texts
  • Fixed the issue when renaming macro files, duplicate file was not handled

Macro Editor​

  • Now when you save editor content, it will back up the original file, can be used to restore when modification goes wrong
  • Rewrote editor data processing code, now processing of macro file data will be more accurate
  • Editor added copy forward/backward, move forward/backward, modify joystick, delete joystick and other editing functions
  • Note, modifying joystick changes the original coordinate full data joystick to virtual direction joystick, which will greatly reduce joystick precision
  • Reset action and modify time functions now support batch operation
  • Modify time function save button changed from A to +
  • Now the action list will not be automatically merged after user modification
  • Now when saving macros in editor, will not automatically add no-action at the end
  • Fixed the issue of timeline total length drawing exception when total macro time changes
  • Fixed the issue that undo button outside of Chinese does not automatically highlight

Macro Recording​

  • Now after recording is completed, the no-action frames at the end of macro data will be automatically deleted

Macro List​

  • Now when the number of macros in the game directory is 0, it will no longer be displayed in the list
  • Added text showing the number of macros owned to the right of the game name list item

Macro Playback​

  • Now, when playing a macro that contains joystick data, user inputs will not be applied to the joystick
  • This change is to solve the problem that playing macros may cause joystick freezing
  • And macros with joystick data themselves should not receive additional user input

Others​

  • Added German support, thanks to @HeikesFootSlave for providing German translation text
  • Now when opening ovl plugin, it will automatically detect whether there is a new version, if so, the update button will highlight to remind
  • libultrahand library updated to the latest version
  • Fixed curl resource leak issue
  • Fixed the issue that when the network is poor in the update interface, exiting will block for a period of time
For versions 1.4.2 and later, you can directly update by pressing + in the settings interface
The CN and EN versions differ only in the Tesla overlay title; everything else is identical.
The web features you added crash atmosphere for me (JKSV has a similar issue). I have a dns to block nintendo servers, could that be where things clash?
 
The web features you added crash atmosphere for me (JKSV has a similar issue). I have a dns to block nintendo servers, could that be where things clash?
Is it the shop feature?
What exactly is the trigger condition?
Does it crash as soon as you enter the shop?

It has nothing to do with blocking Nintendo servers.
 
Is it the shop feature?
What exactly is the trigger condition?
Does it crash as soon as you enter the shop?

It has nothing to do with blocking Nintendo servers.
You're right, it's not nintendo blocking cause I also get it with dns turned off. It's a few seconds into opening the overlay, I don't even get the chance to interact with it unless I have airplane mode on. But also, a few seconds into using a macro on loop, the loop breaks and my buttons stop responding until I detach the joycons from the system. I have to then reboot to payload to fix things.
 
Last edited by Miowo,
You're right, it's not nintendo blocking cause I also get it with dns turned off. It's a few seconds into opening the overlay, I don't even get the chance to interact with it unless I have airplane mode on. But also, a few seconds into using a macro on loop, the loop breaks and my buttons stop responding until I detach the joycons from the system. I have to then reboot to payload to fix things.
This is the first time I've encountered this issue. Honestly, I don't know the cause either. I will release version 1.5.5 soon; you can try updating to see if the problem still exists.
Post automatically merged:

You're right, it's not nintendo blocking cause I also get it with dns turned off. It's a few seconds into opening the overlay, I don't even get the chance to interact with it unless I have airplane mode on. But also, a few seconds into using a macro on loop, the loop breaks and my buttons stop responding until I detach the joycons from the system. I have to then reboot to payload to fix things.
  • Added upload functionality, available globally. The upload button is located at the bottom right of the macro details page.
  • Welcome everyone to upload submissions. The server repository will be synced to GitHub Repo
  • Added the ability to edit macro store description information.
  • Optimized OVL memory usage.
  • Updated the changelog interface to support scrolling.
  • For Traditional Chinese users, the changelog display has been changed from English to Simplified Chinese.
  • Fixed the issue where usage instructions were not fully displayed on the macro details page.
  • Fixed a potential crash during recording caused by threading issues.
  • Thanks to @do-kiss (忘忧) for providing the server and webpage.
 
Last edited by TOMSUN,
This is the first time I've encountered this issue. Honestly, I don't know the cause either. I will release version 1.5.5 soon; you can try updating to see if the problem still exists.
Post automatically merged:


  • Added upload functionality, available globally. The upload button is located at the bottom right of the macro details page.
  • Welcome everyone to upload submissions. The server repository will be synced to GitHub Repo
  • Added the ability to edit macro store description information.
  • Optimized OVL memory usage.
  • Updated the changelog interface to support scrolling.
  • For Traditional Chinese users, the changelog display has been changed from English to Simplified Chinese.
  • Fixed the issue where usage instructions were not fully displayed on the macro details page.
  • Fixed a potential crash during recording caused by threading issues.
  • Thanks to @do-kiss (忘忧) for providing the server and webpage.
Still getting the crash, even tried updating Ultrahand. Atmosphere error code 2168-0003. I looked at the error report and it mentions various ssl stuff, so likely a clash between the dns mitm stuff and this overlays web function
 
Last edited by Miowo,
Still getting the crash, even tried updating Ultrahand. Atmosphere error code 2168-0003. I looked at the error report and it mentions various ssl stuff, so likely a clash between the dns mitm stuff and this overlays web function
I’ll double-check it carefully.
Post automatically merged:

Still getting the crash, even tried updating Ultrahand. Atmosphere error code 2168-0003. I looked at the error report and it mentions various ssl stuff, so likely a clash between the dns mitm stuff and this overlays web function
After extensive testing, I can now confirm with 100% certainty that the issue is caused by insufficient memory.
I’m trying to compress things to see whether it’s possible to make it work with a 4 MB ovlloader, but don’t get your hopes up.
If you have enough memory available, you can set the ovlloader to 6 MB instead.
 
Last edited by TOMSUN,
Still getting the crash, even tried updating Ultrahand. Atmosphere error code 2168-0003
Here's the crash report if that helps
I’ll double-check it carefully.
Post automatically merged:


After extensive testing, I can now confirm with 100% certainty that the issue is caused by insufficient memory.
I’m trying to compress things to see whether it’s possible to make it work with a 4 MB ovlloader, but don’t get your hopes up.
If you have enough memory available, you can set the ovlloader to 6 MB instead.
How would I go about that?
 
有可能用 4 MB 的 ovlloader 运行,但不要抱太大希望。
Call up Ultrahand, press +, select System, and you will see an ovlloader memory setting below.
Set it to 6 MB or higher, then restart the device (you can restart ovlloader).
 
Call up Ultrahand, press +, select System, and you will see an ovlloader memory setting below.
Set it to 6 MB or higher, then restart the device (you can restart ovlloader).
I see. That won't cause performance issues tho, will it?
 
I see. That won't cause performance issues tho, will it?
This will reduce the available memory for system modules by 2 MB.
Originally, Ultrahand always used 6 MB or 8 MB.
However, on HOS 21, the available memory for system modules was compressed again, so Ultrahand introduced a 4 MB mode to free up an additional 2 MB of memory for system modules.
 
This will reduce the available memory for system modules by 2 MB.
Originally, Ultrahand always used 6 MB or 8 MB.
However, on HOS 21, the available memory for system modules was compressed again, so Ultrahand introduced a 4 MB mode to free up an additional 2 MB of memory for system modules.
Can you give me an example or two of what system modules there might be? I need to know if stuff like sys patch is gonna be an issue
 
Can you give me an example or two of what system modules there might be? I need to know if stuff like sys patch is gonna be an issue
If the available memory is insufficient, any system module could be affected and may fail to start.
 

Site & Scene News

Popular threads in this forum