KeyX Switch: Difference between revisions
From GameBrew
More actions
No edit summary |
1.2.8 |
||
| Line 4: | Line 4: | ||
|description=Nintendo Switch Key Helper - Supports Turbo and Button Remapping. | |description=Nintendo Switch Key Helper - Supports Turbo and Button Remapping. | ||
|author=TOM-BadEN | |author=TOM-BadEN | ||
|lastupdated=2025/ | |lastupdated=2025/12/01 | ||
|type=Overlays | |type=Overlays | ||
|version=1.2. | |version=1.2.8 | ||
|license=Mixed | |license=Mixed | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/KeyXSwitch.7z | |download=https://dlhb.gamebrew.org/switchhomebrews/KeyXSwitch.7z | ||
| Line 66: | Line 66: | ||
* nl.json (Dutch) | * nl.json (Dutch) | ||
== | Current function performance issues: | ||
<div style="flex; max-width: 700px; min-width: 300px;"> | |||
{| class="wikitable" style="width: 100%;" | |||
|- | |||
! style="text-align: center;"| Function | |||
! style="text-align: center;"| Joycon | |||
! style="text-align: center;"| 3rd-Party Split (MoPai Twin Star Gen2) | |||
! style="text-align: center;"| JC(Bluetooth) | |||
! style="text-align: center;"| LITE | |||
! style="text-align: center;"| 3rd-Party Regular (Octopus 4) | |||
! style="text-align: center;"| PRO | |||
|- | |||
| style="text-align: center;"| Turbo | |||
| style="text-align: center;"| Perfect ① | |||
| style="text-align: center;"| Perfect ① | |||
| style="text-align: center;"| Not Available | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Available ② | |||
| style="text-align: center;"| Not Tested ③ | |||
|- | |||
| style="text-align: center;"| Key Mapping | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Perfect | |||
|- | |||
| style="text-align: center;"| Macro | |||
| style="text-align: center;"| Available ④ | |||
| style="text-align: center;"| Available ④ | |||
| style="text-align: center;"| Not Available | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Available ④ | |||
| style="text-align: center;"| Not Tested ③ | |||
|} | |||
{| class="wikitable" style="width: 100%;" | |||
|- | |||
! style="text-align: center;"| Combined Functions | |||
! style="text-align: center;"| Joycon | |||
! style="text-align: center;"| 3rd-Party Split (MoPai Twin Star Gen2) | |||
! style="text-align: center;"| JC(Bluetooth) | |||
! style="text-align: center;"| LITE | |||
! style="text-align: center;"| 3rd-Party Regular (Octopus 4) | |||
! style="text-align: center;"| PRO | |||
|- | |||
| style="text-align: center;"| Turbo + Mapping | |||
| style="text-align: center;"| Perfect ① | |||
| style="text-align: center;"| Perfect ① | |||
| style="text-align: center;"| Not Available | |||
| style="text-align: center;"| Perfect | |||
| style="text-align: center;"| Available ② | |||
| style="text-align: center;"| Not Tested ③ | |||
|- | |||
| style="text-align: center;"| Turbo + Macro | |||
| style="text-align: center;"| Turbo function temporarily disabled during macro playback | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
|- | |||
| style="text-align: center;"| Mapping + Macro | |||
| style="text-align: center;"| If the keys being played have been remapped, incorrect input may occur | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
| style="text-align: center;"| | |||
|} | |||
</div> | |||
'''Notes:''' | |||
* ① Only the right Joy-Con supports turbo. For unknown reasons, if both sides support turbo, the joystick may fail to auto-reset after completely stopping button presses, requiring manual touch to restore. | |||
* | * ② Low probability that after completely stopping button presses, the joystick may fail to auto-reset, requiring manual touch to restore. | ||
* ③ Theoretically the same effect as Octopus, but I don't have a PRO controller, so it's just theoretical. | |||
* | * ④ After macro ends, there's a probability the joystick may fail to auto-reset, requiring manual touch to restore. | ||
* | |||
* | |||
==Screenshots== | ==Screenshots== | ||
| Line 93: | Line 149: | ||
==Changelog== | ==Changelog== | ||
'''v1.2.8''' | |||
* Redesigned the macro hotkey configuration, allowing free customization of 1 key, 2 key, or 3 key combinations, for example hotkey A or ZL + A. | |||
* Turbo on Joy-Con is now limited to the right Joy-Con only, fixing the issue where stuck buttons or analog sticks could occur. | |||
* Improved controller detection and handling, now supports using the Joy-Con attached to the console together with a Bluetooth Pro Controller. | |||
* Optimized the page navigation logic in the ovl plugin. | |||
* Fixed a crash bug caused by a specific macro setting in the ovl plugin. | |||
* Fixed an issue where the game focus system failed to correctly identify the TID for some DLC or titles after an update. | |||
* Current feature support status for different controllers in the project. | |||
'''v1.2.7''' | '''v1.2.7''' | ||
* Fixed a bug where requesting the pdmqry service could cause the system service session count to overflow, leading to a crash. | * Fixed a bug where requesting the pdmqry service could cause the system service session count to overflow, leading to a crash. | ||
Revision as of 22:19, 4 December 2025
| KeyX | |
|---|---|
| General | |
| Author | TOM-BadEN |
| Type | Overlays |
| Version | 1.2.8 |
| License | Mixed |
| Last Updated | 2025/12/01 |
| Links | |
| Download | |
| Website | |
| Source | |
KeyX (formerly AutoKeyLoop) is a button assistant homebrew with turbo and key remapping support. Features global or per-game configuration with auto-start memory. Consists of Tesla overlay and system module.
Features
- General:
- Modern and beautiful Tesla overlay.
- Dynamically modify turbo and mapping settings.
- Optional modern UI notification popups.
- Key Mapping:
- Remap 16 buttons (A/B/X/Y/L/R/ZL/ZR/D-pad/SELECT/START/L3/R3).
- Works together with turbo without conflicts.
- Perfectly avoids system warning popups about button changes.
- Global and per-game configuration.
- Auto-remembers on/off state.
- Turbo:
- Turbo for 12 buttons (A/B/X/Y/L/R/ZL/ZR/D-pad).
- Multiple buttons can turbo simultaneously.
- Non-turbo buttons work normally during turbo.
- Customizable press and release duration.
- Global and per-game configuration.
- Auto-remembers on/off state.
- Memory Usage:
- System module: only 297 KB.
- Notification popup: extra 688 KB.
- Popup only uses memory when triggered.
Installation
The CN and EN versions differ only in the Tesla overlay title; everything else is identical.
Copy files to SD card root:
- /atmosphere/contents/4100000002025924/
- /atmosphere/contents/0100000000251020
- /switch/.overlays/ovl-KeyX.ovl
Supported languages:
- en.json (English)
- zh-cn.json (No need to add, already hardcoded)
- zh-tw.json (Traditional Chinese)
- ja.json (Japanese)
- ko.json (Korean)
- fr.json (French)
- de.json (German)
- it.json (Italian)
- es.json (Spanish)
- pt.json (Portuguese)
- ru.json (Russian)
- nl.json (Dutch)
Current function performance issues:
| Function | Joycon | 3rd-Party Split (MoPai Twin Star Gen2) | JC(Bluetooth) | LITE | 3rd-Party Regular (Octopus 4) | PRO |
|---|---|---|---|---|---|---|
| Turbo | Perfect ① | Perfect ① | Not Available | Perfect | Available ② | Not Tested ③ |
| Key Mapping | Perfect | Perfect | Perfect | Perfect | Perfect | Perfect |
| Macro | Available ④ | Available ④ | Not Available | Perfect | Available ④ | Not Tested ③ |
| Combined Functions | Joycon | 3rd-Party Split (MoPai Twin Star Gen2) | JC(Bluetooth) | LITE | 3rd-Party Regular (Octopus 4) | PRO |
|---|---|---|---|---|---|---|
| Turbo + Mapping | Perfect ① | Perfect ① | Not Available | Perfect | Available ② | Not Tested ③ |
| Turbo + Macro | Turbo function temporarily disabled during macro playback | |||||
| Mapping + Macro | If the keys being played have been remapped, incorrect input may occur |
Notes:
- ① Only the right Joy-Con supports turbo. For unknown reasons, if both sides support turbo, the joystick may fail to auto-reset after completely stopping button presses, requiring manual touch to restore.
- ② Low probability that after completely stopping button presses, the joystick may fail to auto-reset, requiring manual touch to restore.
- ③ Theoretically the same effect as Octopus, but I don't have a PRO controller, so it's just theoretical.
- ④ After macro ends, there's a probability the joystick may fail to auto-reset, requiring manual touch to restore.
Screenshots
Changelog
v1.2.8
- Redesigned the macro hotkey configuration, allowing free customization of 1 key, 2 key, or 3 key combinations, for example hotkey A or ZL + A.
- Turbo on Joy-Con is now limited to the right Joy-Con only, fixing the issue where stuck buttons or analog sticks could occur.
- Improved controller detection and handling, now supports using the Joy-Con attached to the console together with a Bluetooth Pro Controller.
- Optimized the page navigation logic in the ovl plugin.
- Fixed a crash bug caused by a specific macro setting in the ovl plugin.
- Fixed an issue where the game focus system failed to correctly identify the TID for some DLC or titles after an update.
- Current feature support status for different controllers in the project.
v1.2.7
- Fixed a bug where requesting the pdmqry service could cause the system service session count to overflow, leading to a crash.
- Currently, this bug has only been observed in the game Taiko no Tatsujin Rhythm Festival (01002460135A4000), causing it to crash.
- Thanks to @masagrator for providing the solution.
v1.2.6
- Added key macro functionality.
- The red badge on the home page indicates that the key has a macro bound.
- Macros can be recorded directly using the Tesla plugin, and the recording guide is complete and visually refined.
- Added keyboard input module, allowing file renaming through Tesla.
- Both stick and button states will be recorded.
- Maximum recording duration is 30 seconds.
- Recording frame rate is 60 FPS.
- Pressing the corresponding shortcut key plays once.
- Holding the corresponding shortcut key loops playback.
- Pressing the shortcut key again during playback cancels playback.
- Fixes:
- Fixed a bug where an IPC call could cause Tesla to freeze.
- Fixed an issue where using turbo and remapping simultaneously could cause key confusion.
- Fixed some bugs that I already forgot what they were.
- Others:
- Compiled with the latest libnx, it now supports HOS21.
- Refactored the refresh mechanism of the ovl plugin.
- Completely refactored the automatic key (turbo and macro) module in the system module.
- Memory usage increased from 297 KB to 343 KB.
v1.1.6
- Added turbo activation delay detection to prevent accidental triggering of the turbo function.
- The turbo function now supports all models.
- Optimized the smoothness of the turbo function on LITE models.
- Note: Due to underlying system limitations, multi-button turbo on JC controllers performs only moderately. I’ve tried my best. It works perfectly on LITE models.
- Fixes
- Fixed a BUG where a buffer overflow could cause a crash.
- Fixed a BUG where, in some cases, Tesla plugin IPC calls could cause a freeze.
v1.1.5
- Fixed a bug where the mapping feature could not work properly on non-LITE models in some cases.
- Changed the plugin’s configuration file path from /config/AutoKeyLoop to /config/KeyX.
- If you have been using this plugin before, you can manually update the configuration path to avoid losing your settings.
- Note
- Remapping function works on all models
- Turbo function still only works on LITE models
- The CN and EN versions differ only in the Tesla overlay title; everything else is identical.
v1.1.4
- Tesla Ovl
- Fixed a bug, where IPC communication failed when switching configurations, if both mapping and Turbo functions were disabled.
- Note
- Remapping function works on all models
- Turbo function still only works on LITE models
- The CN and EN versions differ only in the Tesla overlay title; everything else is identical.
v1.1.3
- Added Button Remapping Feature
- Supports remapping between 16 buttons (A/B/X/Y/L/R/ZL/ZR/D-Pad/SELECT/START/L3/R3)
- Can be enabled simultaneously with turbo function without conflicts
- Perfectly bypasses system warning popups about button modifications
- Global configuration and per-game configuration
- Automatically remembers on/off state
- Optimizations
- Turbo threads merged from 2 into 1
- Significant code optimization throughout the entire project
- System module now only uses 297 KB of RAM
- Turbo and remapping functions pause when game is switched to background
- Tesla Overlay
- Tesla overlay has been significantly redesigned to accommodate the new remapping feature
- Added reset function to turbo button settings
- Note
- Remapping function works on all models
- Turbo function still only works on LITE models
- The CN and EN versions differ only in the Tesla overlay title; everything else is identical
v1.0.3
- Added multi-language support (currently only EN)
- Users who require other languages can provide their own translations
- See the README for how to add them
- Please note that only Switch Lite is currently supported
- The CN and EN versions are completely identical, except for the plugin title
v1.0.2
- First Release
Credits
- libnx - Switch development library
- libultrahand - Tesla Overlay framework
- minIni-nx - INI config parser library