Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

440 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🇨🇳 中文 | EN English

KeyX.mp4

中文

如果你对通知模块感兴趣,可以访问 通知模块 NX-Notification

注意

  • 注意:因为SWITCH的底层特殊机制,部分功能表现可能有瑕疵,具体见下表。
  • 我并非程序员,已经尽力了,虽有瑕疵,但至少各功能属于能用的状态。
  • 想要完美实现所有功能,需要通过大气层的MITM劫持来达到,但是我不会,而且需要完全重构。

当前功能瑕疵表现

功能 Joycon 三方分体(双子星2代) JC(蓝牙) LITE 三方常规 (八爪鱼4) PRO
按键连发 完美 ① 完美 ① 不可用 完美 可用 ② 未测试 ③
按键映射 完美 完美 完美 完美 完美 完美
按键宏 完美 完美 不可用 完美 完美 未测试 ③
组合功能 Joycon 三方分体(双子星2代) JC(蓝牙) LITE 三方常规 (八爪鱼4) PRO
连发 + 映射 完美 ① 完美 ① 不可用 完美 可用 ② 未测试 ③
连发 + 宏 宏播放期间,自动屏蔽连发功能
映射 + 宏 如果播放的宏的按键,恰好是修改了映射的按键,可能出现输入不对的情况

说明:

  • ① 仅允许单边的手柄进行连发。因为未知原因,若两侧都支持连发的话,会出现完全停止按键后,摇杆无法自动归0,需要手动碰一下才能恢复正常。
  • ② 小概率完全停止按键后,摇杆无法自动归0,需要手动碰一下才能恢复正常。
  • ③ 理论上与八爪鱼效果一致,但是我没有PRO手柄,所以只能说理论

KeyX 按键助手

platform Latest Version GitHub Downloads HB App Store PayPal 微信

Nintendo Switch 按键助手,支持连发、按键重新分配、按键宏三大功能。且拥有全局或游戏独立配置,根据记忆自动启动功能。 整个插件由特斯拉插件与系统模块两部分组成。

功能

Tesla界面
录制按键宏

  • 美观现代的UI设计
  • 可动态修改连发与映射按键
  • 可使用特斯拉直接录制按键宏,且功能引导完善
  • 可选择开启额外的通知弹窗
  • 主页的蓝色图标代表该按键修改了映射
  • 主页的黄色角标代表该按键启用了连发
  • 主页的红色角标代表该按键绑定了宏

按键映射

  • 支持 16 个按键互相映射 (A/B/X/Y/L/R/ZL/ZR/十字键/SELECT/START/L3/R3)
  • 与连发功能可同时启用,不会有冲突
  • 完美避开系统关于按键修改后的警告弹窗
  • 全局配置和游戏独立配置
  • 自动记忆开关状态

按键连发

  • 支持 12 个按键连发(A/B/X/Y/L/R/ZL/ZR/十字键)
  • 支持多个按键同时连发
  • 连发时支持非连发键正常使用
  • 可设置按下和松开时长
  • 全局配置和游戏独立配置
  • 自动记忆开关状态

按键宏

  • 自动记忆宏功能开关状态
  • 摇杆与按键状态均会被录制
  • 最大录制时长为30s
  • 录制帧率为60FPS
  • 按一下对应快捷键为单次播放
  • 按住对应快捷键为循环播放
  • 播放期间再次按下快捷键取消播放
  • 精巧美观的宏编辑器
  • 支持在线下载宏的功能,欢迎投稿

内存占用

  • 系统模块仅占用 550 KB
  • 弹窗额外占用 688 KB
  • 弹窗只有触发的时候才有内存占用

安装

将文件复制到 SD 卡根目录:

/atmosphere/contents/4100000002025924/
/atmosphere/contents/0100000000251020
/switch/.overlays/ovl-KeyX.ovl

多语言

  • Chinese is hardcoded, no need to add
  • I used AI to translate the English language file.
  • I don't understand other languages, and AI is even worse at it
  • You can refer to en.json to add support for other languages
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)

编译

cd sys-KeyX && make -j
cd ovl-KeyX && make -j

或者直接根目录

cd KeyX && make

感谢


English

If you are interested in the notification module, visit NX-Notification

Notice

  • Note: Due to the special underlying mechanism of SWITCH, some functions may have flaws. See the table below for details.
  • I am not a professional programmer. I have tried my best. Although there are flaws, at least all functions are usable.
  • To perfectly implement all functions, it requires MITM hijacking through Atmosphere, but I don't know how, and it would require a complete refactoring.

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 Perfect Perfect Not Available Perfect Perfect 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 one side of the controller is allowed to use turbo mode. 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.

KeyX Button Assistant

platform Latest Version GitHub Downloads HB App Store PayPal WeChat

Nintendo Switch button assistant supporting turbo, key remapping, and macro recording. Features global or per-game configuration with auto-start memory. The complete plugin consists of Tesla overlay and system module.

Features

Tesla UI
Macro Recording

  • Beautiful and modern UI design
  • Dynamically modify turbo and mapping settings
  • Record macros directly using Tesla overlay with comprehensive guidance
  • Optional notification popups
  • Blue icons on home page indicate remapped buttons
  • Yellow badges indicate turbo-enabled buttons
  • Red badges indicate macro-bound buttons

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

Macro

  • Auto-remembers macro function on/off state
  • Both stick and button states are recorded
  • Maximum recording duration: 30 seconds
  • Recording frame rate: 120 FPS
  • Press shortcut key once for single playback
  • Hold shortcut key for loop playback
  • Press shortcut key again during playback to cancel
  • beautiful macro editor
  • Online macro download supported, contributions welcome

Memory Usage

  • System module: only 550 KB
  • Notification popup: extra 688 KB
  • Popup only uses memory when triggered

Installation

Copy files to SD card root:

/atmosphere/contents/4100000002025924/
/atmosphere/contents/0100000000251020
/switch/.overlays/ovl-KeyX.ovl

Multi-Language

  • Chinese is hardcoded, no need to add
  • I used AI to translate the English language file
  • I don't understand other languages, and AI is even worse at it
  • You can refer to en.json to add support for other languages
  • Due to the limited horizontal space of the overlay UI, the available area for displaying text is very constrained.
  • The UI of this project was originally designed based on Chinese, which has a relatively high information density.
  • In addition, as the software provides a large number of features, the overall UI layout is quite compact.
  • As a result, when translating into other languages, the text length may increase significantly and may be truncated in some parts of the interface.
  • While preserving the original meaning, we kindly ask you to keep the translations as concise as possible to fit the existing UI layout.
  • Thank you for your understanding and support.
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)

Build

cd sys-KeyX && make -j
cd ovl-KeyX && make -j

Or from root directory:

cd KeyX && make

Credits

About

Nintendo Switch - Supports Turbo, Remapping and Macro.

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages