学习资源

Nintendo Switch 逆向工程笔记

由 dekuNukem 于 2017 年发起、众多贡献者陆续补充的笔记,记录 Joy-Con、Pro 手柄以及 Switch 主机与底座部分硬件的工作方式,依据来自拆机、逻辑分析仪抓取和数据包记录。各 Markdown 文件涵盖 Joy-Con 电路板测试点与滑轨接口引脚定义、带 CRC-8 校验的有线串口握手、蓝牙 HID 输入与输出报告及其中记录的 32 个子命令、Pro 手柄与充电握把的 USB HID 命令、含摇杆与六轴校准数据的 SPI 闪存布局、IMU 换算公式以及振动编码表。仓库还保存了在滑轨接口上扮演主机或 Joy-Con 的 STM32 测试固件、用于解析蓝牙流量的 Wireshark 解析器,以及笔记所依据的抓取数据。

使用条件与局限

  • 审阅提交为 b354f21(2026-08-21)。全部 277 个提交中有 228 个来自 2017 年,其余大多在 2018–2021 年;2026 年的修改补充了主机对摇杆校准数据所做的合理性检查。笔记针对初代 Joy-Con 和 Pro 手柄,列出的最新手柄固件为 3.89,且仍有若干字段标为未知,因此较新的固件和手柄需另行核实。
  • 照着笔记操作需要自己的手柄。有线协议部分需要拆开 Joy-Con,将其滑轨接口(1.8 V 逻辑电平)接到逻辑分析仪或单片机上;蓝牙与 USB 部分假定主机能收发原始 HID 报告,示例 C 代码使用 hidapi 风格的调用。仓库不含任何手柄或底座固件:README 称已制作底座固件转储,但并未发布。
  • joycon_reader 和 joycon_spoofer 两个项目面向 STM32F072,由 STM32CubeMX 生成并使用 Keil MDK-ARM 构建,构建产物与源码一同提交。nxbt 解析器需要在 Wireshark 源码构建中作为插件编译;另有一个 Lua 脚本用于解析经 USB 抓取的蓝牙流量,几个小型 Python 脚本用于解析抓取数据和计算串口校验和。.logicdata 抓取文件需要能读取该格式的逻辑分析仪软件。
  • 蓝牙笔记还记录了 SPI 闪存写入、扇区擦除和固件更新命令,并提醒擦除会作用于整个扇区;各字段含义来自贡献者自己的抓取与测试,本合集未重做验证。
  • GitHub 未检测到许可证,仓库也没有许可证文件,因此笔记未声明复用条款;datasheets 文件夹存放第三方芯片数据手册的副本,Lua 解析器注明不附带许可证。README 致谢了众多贡献者。所审文件均未提及 AI 或 REA。

关于此条目

类型
学习资源
类别
学习资源
关联
学习资源
目标
固件 · 协议

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  2. bluetooth_hid_notes.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  3. bluetooth_hid_subcommands_notes.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  4. spi_flash_notes.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  5. USB-HID-Notes.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  6. imu_sensor_notes.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  7. rumble_data_table.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  8. joycon_reader/README.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21
  9. packet_parse/nxbt/README.md GitHub · dekuNukem/Nintendo_Switch_Reverse_Engineering · 修订 b354f21

同分区更多条目:文档与学习资源

文档与学习资源分区全部 43 项资源