Joy-Con: Difference between revisions
| m →Colors:  ...verified and added Hex-Values for Newly Released Pastel Colored Joy-Con (...Pastel-Pink, Pastel-Yellow, Pastel-Purple, & Pastel-Green) |  Clean up and merge in preparation for documentation | ||
| Line 1: | Line 1: | ||
| Joy-Con is the name for the Switch's primary game controllers. The  | Joy-Con is the name for the Switch's primary game controllers. The Joy-Con are internally called Ukyo (Left) and Sakyo (Right). | ||
| = Hardware = | = Hardware = | ||
| == Ukyo == | |||
| {| class="wikitable" | {| class="wikitable" | ||
| !  | ! Component || Description | ||
| |- | |- | ||
| |  | | SoC || Broadcom BCM20734 | ||
| |- | |- | ||
| |  | | IMU || STMicroelectronics LSM6DS3H | ||
| |- | |- | ||
| |  | | PMIC || Texas Instruments BQ24072 | ||
| |- | |||
| | Storage || Macronix International MX25U4033E 4 Mb CMOS Flash | |||
| |} | |} | ||
| =  | == Sakyo == | ||
| {| class="wikitable" | {| class="wikitable" | ||
| !  | ! Component || Description | ||
| |- | |- | ||
| |  | | SoC || Broadcom BCM20734 | ||
| |- | |- | ||
| |  | | MCU || STMicroelectronics STM32P411 | ||
| |- | |||
| | NFC || STMicroelectronics ST21NFCB | |||
| |- | |||
| | IMU || STMicroelectronics LSM6DS3H | |||
| |- | |||
| | PMIC || Texas Instruments BQ24072 | |||
| |- | |||
| | Storage || Macronix International MX25U4033E 4 Mb CMOS Flash | |||
| |} | |} | ||
| = Protocol = | = Protocol = | ||
| Line 295: | Line 297: | ||
| |} | |} | ||
| = | = Firmware = | ||
| The firmware is stored inside the flash in Broadcom's PatchRAM format as follows: | |||
| {| class="wikitable" border="1" | |||
| {| class="wikitable" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x14 || Magic number?? | ||
| |- | |- | ||
| | | | 0x15 || 0x06 || Unique MAC Address of controller | ||
| |- | |- | ||
| | | | 0x3B3 || 0x04 || Offset to Factory Firmware | ||
| |- | |- | ||
| | | | 0x1FF4 || 0x08 || OTA Magic, if the controller is Over-The-Air updated. | ||
| |- | |- | ||
| | | | 0x1FFC || 0x04 || Offset to OTA Firmware, if OTA Magic is valid. | ||
| |- | |- | ||
| | | | 0x2000 || 0x1000 || PairingInfo | ||
| |- | |- | ||
| | | | 0x5000 || 0x1 || Shipment | ||
| |- | |- | ||
| | | | 0x6000 || 0x1000 || [[#FactoryConfiguration|FactoryConfiguration]] | ||
| |- | |- | ||
| | | | 0x8000 || 0x1000 || [[#UserCalibration|UserCalibration]] | ||
| |} | |||
| == FactoryConfiguration == | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x10 || IdentificationCode | ||
| |- | |- | ||
| | | | 0x12 || 0x01 || [[#Type|Type]] | ||
| |- | |- | ||
| | | | 0x1B || 0x01 || FormatVersion | ||
| |- | |- | ||
| | | | 0x20 || 0x18 || [[#Cal1|Cal1]] | ||
| |- | |- | ||
| | | | 0x3D || 0x12 || [[#Cal2|Cal2]] | ||
| |- | |- | ||
| | | | 0x4F || 0x01 || Reserved | ||
| |- | |- | ||
| | | | 0x50 || 0x0D || [[#Design|Design]] | ||
| |- | |- | ||
| | | | 0x80 || 0x18 || [[#Model1|Model1]] | ||
| |- | |- | ||
| | | | 0x98 || 0x12 || [[#Model2|Model2]] | ||
| |} | |||
| === Type === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Value | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x01 || JoyLeft | ||
| |- | |- | ||
| | | | 0x02 || JoyRight | ||
| |- | |- | ||
| | | | 0x03 || SwitchProController | ||
| |- | |- | ||
| | | | 0x04 || ([[HID_services#DeviceTypeInternal|DeviceType]] 4) | ||
| |- | |- | ||
| | | | 0x05 || ([[HID_services#DeviceTypeInternal|DeviceType]] 5) | ||
| |- | |- | ||
| | | | 0x06 || ([[HID_services#DeviceTypeInternal|DeviceType]] 6) | ||
| |- | |- | ||
| | | | 0x07 || LarkHvc1 | ||
| |- | |- | ||
| | | | 0x08 || LarkHvc2 | ||
| |- | |- | ||
| | | | 0x09 || LarkNesLeft | ||
| |- | |- | ||
| | | | 0x0A || LarkNesRight | ||
| |- | |- | ||
| | | | 0x0B || Lucia | ||
| |- | |- | ||
| | | | 0x0C || [12.0.0+] Lagon | ||
| |- | |- | ||
| | | | 0x0D || [13.0.0+] Lager | ||
| |- | |- | ||
| | | | 0x0E || [14.0.0+] ([[HID_services#DeviceTypeInternal|DeviceType]] 30) | ||
| |- | |- | ||
| | | | 0x21 || FiftyLeft ([[HID_services#DeviceTypeInternal|DeviceType]] 14) | ||
| |- | |- | ||
| | | | 0x22 || FiftyRight ([[HID_services#DeviceTypeInternal|DeviceType]] 18) | ||
| |} | |||
| === Cal1 === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x18 || SixAxisSensorCalibrationValue | ||
| |} | |||
| === Cal2 === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x09 || LeftAnalogStickCalibrationValue | ||
| |- | |- | ||
| | | | 0x09 || 0x09 || RightAnalogStickCalibrationValue | ||
| |} | |||
| === Design === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x0C || [[#ControllerColor|ControllerColor]] | ||
| |- | |- | ||
| | | | 0x0C || 0x01 || [[#DesignVariation|DesignVariation]] | ||
| |} | |||
| ==== ControllerColor ==== | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x03 || Body color of controller in RGB Hex (see [[Joy-Con#Colors|Joy-Con Colors]]) | ||
| |- | |- | ||
| | | | 0x03 || 0x03 || Button color of controller in RGB Hex (see [[Joy-Con#Colors|Joy-Con Colors]]) | ||
| |- | |- | ||
| | | | 0x06 || 0x03 || Left grip color of controller in RGB Hex | ||
| |- | |- | ||
| | | | 0x09 || 0x03 || Right grip color of controller in RGB Hex | ||
| |} | |||
| ==== DesignVariation ==== | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Value | |||
| ! Name | |||
| |- | |- | ||
| | | | 0x00 || LuciaJ, LagerJ | ||
| |- | |- | ||
| | | | 0x01 || LuciaE, LagerE | ||
| |- | |- | ||
| | | | 0x02 || LuciaU, LagerU | ||
| |} | |||
| === Model1 === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x06 || SensorData | ||
| |- | |- | ||
| | | | 0x06 || 0x12 || AnalogStickModuleParam | ||
| |} | |||
| === Model2 === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x12 || AnalogStickModuleParam | ||
| |} | |||
| == UserCalibration == | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x10 || 0x18 || [[#UserCal1|UserCal1]] | ||
| |- | |- | ||
| | | | 0x28 || 0x18 || [[#UserCal2|UserCal2]] | ||
| |} | |||
| === UserCal1 === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x02 || UserCalMagicNumber | ||
| |- | |- | ||
| | | | 0x02 || 0x09 || LeftAnalogStickCalibrationValue | ||
| |- | |- | ||
| | | | 0x0B || 0x02 || UserCalMagicNumber | ||
| |- | |- | ||
| |0x09 | | 0x0D || 0x09 || RightAnalogStickCalibrationValue | ||
| |- | |- | ||
| | | | 0x16 || 0x02 || UserCalMagicNumber | ||
| |} | |||
| === UserCal2 === | |||
| {| class="wikitable" border="1" | |||
| |- | |- | ||
| ! Offset | |||
| ! Size | |||
| ! Description | |||
| |- | |- | ||
| | | | 0x00 || 0x18 || SixAxisSensorCalibrationValue | ||
| |} | |} | ||
| == Colors == | == Colors == | ||
| HEX codes for the colors shown in the "Controllers" menu of the Switch UI can be found in a Joy-con SPI dump starting at offset 0x6050. Body color is first followed by button color and each is 3 bytes long. These values are able to be re-written with any HEX color value to make the Joy-cons show up as different colors in the UI. The following is a list of official HEX colors recovered from SPI dumps. | HEX codes for the colors shown in the "Controllers" menu of the Switch UI can be found in a Joy-con SPI dump starting at offset 0x6050. Body color is first followed by button color and each is 3 bytes long. These values are able to be re-written with any HEX color value to make the Joy-cons show up as different colors in the UI. The following is a list of official HEX colors recovered from SPI dumps. | ||
| {| class="wikitable" | {| class="wikitable" | ||
| ! Developer Kit Joy-Con || Release || Body HEX || Button HEX | ! Developer Kit Joy-Con || Release || Body HEX || Button HEX | ||
| Line 580: | Line 617: | ||
| | // *(Prize Awarded for Labo Contest - No Retail) // **(Available Japan Only) | | // *(Prize Awarded for Labo Contest - No Retail) // **(Available Japan Only) | ||
| |} | |} | ||
Revision as of 21:42, 20 August 2023
Joy-Con is the name for the Switch's primary game controllers. The Joy-Con are internally called Ukyo (Left) and Sakyo (Right).
Hardware
Ukyo
| Component | Description | 
|---|---|
| SoC | Broadcom BCM20734 | 
| IMU | STMicroelectronics LSM6DS3H | 
| PMIC | Texas Instruments BQ24072 | 
| Storage | Macronix International MX25U4033E 4 Mb CMOS Flash | 
Sakyo
| Component | Description | 
|---|---|
| SoC | Broadcom BCM20734 | 
| MCU | STMicroelectronics STM32P411 | 
| NFC | STMicroelectronics ST21NFCB | 
| IMU | STMicroelectronics LSM6DS3H | 
| PMIC | Texas Instruments BQ24072 | 
| Storage | Macronix International MX25U4033E 4 Mb CMOS Flash | 
Protocol
The Joy-Con can communicate wirelessly over Bluetooth or through the rails over UART. This uses a Nintendo proprietary protocol called "Nwcp".
NwcpPacket
| Offset | Size | Description | 
|---|---|---|
| 0x0 | 0x5 | HciHeader | 
| 0x5 | 0x7 | NwcpHeader | 
| 0xC | Variable | Data | 
HciHeader
This is a 5-byte packet header used by Broadcom's HCI Control Protocol.
| Offset | Size | Description | 
|---|---|---|
| 0x0 | 0x1 | PacketType (always 0x19) | 
| 0x1 | 0x1 | CommandCode | 
| 0x2 | 0x1 | GroupCode (always 0x03) | 
| 0x3 | 0x2 | PacketLength | 
CommandCode
| Value | Description | 
|---|---|
| 0x1 | SendToDevice | 
| 0x81 | ReceiveFromDevice | 
NwcpHeader
| Offset | Size | Description | 
|---|---|---|
| 0x0 | 0x1 | CommandType | 
| 0x1 | 0x1 | DeviceCommand | 
| 0x2 | 0x2 | DataSize | 
| 0x4 | 0x1 | CommandResult | 
| 0x5 | 0x1 | DataCrc (CRC8 over Data for DataSize bytes) | 
| 0x6 | 0x1 | HeaderCrc (CRC8 over the previous 6 bytes) | 
CommandType
| Value | Description | 
|---|---|
| 0x91 | DeviceCommandToDevice | 
| 0x92 | Hid | 
| 0x94 | DeviceCommandFromDevice | 
| 0x9A | |
| 0xA3 | |
| 0xA5 | Handshake | 
DeviceCommand
| Value | Description | 
|---|---|
| 0x01 | Inquiry | 
| 0x02 | WriteChargerSettings | 
| 0x03 | ReadChargerSettings | 
| 0x04 | AttachmentEnable | 
| 0x05 | IsAttachmentEnabled | 
| 0x06 | GetBatteryVoltage | 
| 0x07 | ReadWakeUpReason | 
| 0x10 | CreateHidConnection | 
| 0x11 | DisconnectHid | 
| 0x12 | SetHidInterval | 
| 0x13 | GetHidInterval | 
| 0x18 | Pairing | 
| 0x20 | UpdateUartBaudRate | 
| 0x40 | Test | 
HidCommand
| Value | Description | 
|---|---|
| 0x01 | PairingOut | 
| 0x02 | GetDeviceInfo | 
| 0x03 | SetDataFormat | 
| 0x04 | LRButtonDetection | 
| 0x05 | Page | 
| 0x06 | Reset | 
| 0x07 | ClearPairingInfo | 
| 0x08 | Shipment | 
| 0x10 | SerialFlashRead | 
| 0x11 | SerialFlashWrite | 
| 0x12 | SerialFlashSectorErase | 
| 0x20 | McuReset | 
| 0x21 | McuWrite | 
| 0x22 | McuResume | 
| 0x24 | McuPollingEnable | 
| 0x25 | McuPollingDisable | 
| 0x28 | AttachmentWrite | 
| 0x29 | AttachmentRead | 
| 0x2A | AttachmentEnable | 
| 0x2B | GetAttachmentInfo | 
| 0x30 | SetIndicatorLed | 
| 0x31 | GetIndicatorLed | 
| 0x38 | SetNotificationLed | 
| 0x40 | SensorSleep | 
| 0x41 | SensorConfig | 
| 0x42 | SensorWrite | 
| 0x43 | SensorRead | 
| 0x48 | MotorEnable | 
| 0x50 | GetBatteryVoltage | 
| 0x51 | WriteChargeSetting | 
| 0x52 | ReadChargeSetting | 
| 0x58 | ExtDevWrite | 
| 0x59 | GetExtDevInfo | 
| 0x5A | ExtDevPollingEnable | 
| 0x5B | ExtDevPollingDisable | 
| 0x5C | ExtDevInFormatConfig | 
| 0x5D | |
| 0x60 | InternalAttachmentWrite | 
| 0x61 | |
| 0x62 | InternalAttachmentEnable | 
| 0x63 | InternalAttachmentPollingEnable | 
| 0x64 | InternalAttachmentPollingDisable | 
| 0x7A | AddButtonPlayData | 
| 0x7B | StartStopButtonPlayData | 
| 0x80 | Ack | 
| 0x81 | PairingIn | 
| 0x82 | DeviceInfo | 
| 0x83 | LRButtonElapsedTime | 
| 0x90 | SerialFlashData | 
| 0xA0 | McuData | 
| 0xA8 | AttachmentData | 
| 0xA9 | AttachmentInfo | 
| 0xAA | InternalAttachmentRead | 
| 0xB0 | IndicatorLed | 
| 0xC0 | SensorData | 
| 0xD0 | BatteryVoltage | 
| 0xD8 | ExtDevRead | 
| 0xD9 | ExtDevInfo | 
Firmware
The firmware is stored inside the flash in Broadcom's PatchRAM format as follows:
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x14 | Magic number?? | 
| 0x15 | 0x06 | Unique MAC Address of controller | 
| 0x3B3 | 0x04 | Offset to Factory Firmware | 
| 0x1FF4 | 0x08 | OTA Magic, if the controller is Over-The-Air updated. | 
| 0x1FFC | 0x04 | Offset to OTA Firmware, if OTA Magic is valid. | 
| 0x2000 | 0x1000 | PairingInfo | 
| 0x5000 | 0x1 | Shipment | 
| 0x6000 | 0x1000 | FactoryConfiguration | 
| 0x8000 | 0x1000 | UserCalibration | 
FactoryConfiguration
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x10 | IdentificationCode | 
| 0x12 | 0x01 | Type | 
| 0x1B | 0x01 | FormatVersion | 
| 0x20 | 0x18 | Cal1 | 
| 0x3D | 0x12 | Cal2 | 
| 0x4F | 0x01 | Reserved | 
| 0x50 | 0x0D | Design | 
| 0x80 | 0x18 | Model1 | 
| 0x98 | 0x12 | Model2 | 
Type
| Value | Description | 
|---|---|
| 0x01 | JoyLeft | 
| 0x02 | JoyRight | 
| 0x03 | SwitchProController | 
| 0x04 | (DeviceType 4) | 
| 0x05 | (DeviceType 5) | 
| 0x06 | (DeviceType 6) | 
| 0x07 | LarkHvc1 | 
| 0x08 | LarkHvc2 | 
| 0x09 | LarkNesLeft | 
| 0x0A | LarkNesRight | 
| 0x0B | Lucia | 
| 0x0C | [12.0.0+] Lagon | 
| 0x0D | [13.0.0+] Lager | 
| 0x0E | [14.0.0+] (DeviceType 30) | 
| 0x21 | FiftyLeft (DeviceType 14) | 
| 0x22 | FiftyRight (DeviceType 18) | 
Cal1
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x18 | SixAxisSensorCalibrationValue | 
Cal2
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x09 | LeftAnalogStickCalibrationValue | 
| 0x09 | 0x09 | RightAnalogStickCalibrationValue | 
Design
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x0C | ControllerColor | 
| 0x0C | 0x01 | DesignVariation | 
ControllerColor
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x03 | Body color of controller in RGB Hex (see Joy-Con Colors) | 
| 0x03 | 0x03 | Button color of controller in RGB Hex (see Joy-Con Colors) | 
| 0x06 | 0x03 | Left grip color of controller in RGB Hex | 
| 0x09 | 0x03 | Right grip color of controller in RGB Hex | 
DesignVariation
| Value | Name | 
|---|---|
| 0x00 | LuciaJ, LagerJ | 
| 0x01 | LuciaE, LagerE | 
| 0x02 | LuciaU, LagerU | 
Model1
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x06 | SensorData | 
| 0x06 | 0x12 | AnalogStickModuleParam | 
Model2
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x12 | AnalogStickModuleParam | 
UserCalibration
| Offset | Size | Description | 
|---|---|---|
| 0x10 | 0x18 | UserCal1 | 
| 0x28 | 0x18 | UserCal2 | 
UserCal1
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x02 | UserCalMagicNumber | 
| 0x02 | 0x09 | LeftAnalogStickCalibrationValue | 
| 0x0B | 0x02 | UserCalMagicNumber | 
| 0x0D | 0x09 | RightAnalogStickCalibrationValue | 
| 0x16 | 0x02 | UserCalMagicNumber | 
UserCal2
| Offset | Size | Description | 
|---|---|---|
| 0x00 | 0x18 | SixAxisSensorCalibrationValue | 
Colors
HEX codes for the colors shown in the "Controllers" menu of the Switch UI can be found in a Joy-con SPI dump starting at offset 0x6050. Body color is first followed by button color and each is 3 bytes long. These values are able to be re-written with any HEX color value to make the Joy-cons show up as different colors in the UI. The following is a list of official HEX colors recovered from SPI dumps.
| Developer Kit Joy-Con | Release | Body HEX | Button HEX | 
|---|---|---|---|
| Black / ブラック | 2015.10.16 | #313131 | #0F0F0F | 
| Standard Retail Joy-Con Color | Release | Body HEX | Button HEX | 
| Gray / グレー | 2017.03.03 | #828282 | #0F0F0F | 
| Neon Red / ネオンレッド | 2017.03.03 | #FF3C28 | #1E0A0A | 
| Neon Blue / ネオンブルー | 2017.03.03 | #0AB9E6 | #001E1E | 
| Neon Yellow / ネオンイエロー | 2017.06.16 | #E6FF00 | #142800 | 
| Neon Green / ネオングリーン | 2017.07.21 | #1EDC00 | #002800 | 
| Neon Pink / ネオンピンク | 2017.07.21 | #FF3278 | #28001E | 
| Red / レッド | 2017.10.27 | #E10F00 | #280A0A | 
| Blue / ブルー | 2019.10.04 | #4655F5 | #00000A | 
| Neon Purple / ネオンパープル | 2019.10.04 | #B400E6 | #140014 | 
| Neon Orange / ネオンオレンジ | 2019.10.04 | #FAA005 | #0F0A00 | 
| White / ホワイト | 2021.10.08 | #E6E6E6 | #323232 | 
| Pastel Pink / パステルピンク | 2023.06.30 | #FFAFAF | #372D2D | 
| Pastel Yellow / パステルイエロー | 2023.06.30 | #F5FF82 | #32332D | 
| Pastel Purple / パステルパープル | 2023.06.30 | #F0CBEB | #373037 | 
| Pastel Green / パステルグリーン | 2023.06.30 | #BCFFC8 | #2D322D | 
| Special Edition Joy-Con Color | Release | Body HEX | Button HEX | 
| Nintendo Switch Gray Joy-Con / Nintendo Switch グレー | 2017.03.03 | #828282 | #0F0F0F | 
| Nintendo Switch Neon-Blue Left Joy-Con / Nintendo Switch ネオンブルー・ネオンレッド | 2017.03.03 | #0AB9E6 | #001E1E | 
| Nintendo Switch Neon-Red Right Joy-Con / Nintendo Switch ネオンブルー・ネオンレッド | 2017.03.03 | #FF3C28 | #1E0A0A | 
| Splatoon 2 Edition Neon-Green Left Joy-Con / スプラトゥーン2 | 2017.07.21 | #1EDC00 | #002800 | 
| Splatoon 2 Edition Neon-Pink Right Joy-Con / スプラトゥーン2 | 2017.07.21 | #FF3278 | #28001E | 
| Super Mario Odyssey Edition Red Joy-Con / スーパーマリオ オデッセイ | 2017.10.27 | #E10F00 | #280A0A | 
| Super Smash Bros. Ultimate Edition Gray Joy-Con / 大乱闘スマッシュブラザーズ | 2018.11.02 | #828282 | #0F0F0F | 
| Pokémon: Let's Go! Edition Eevee-Brown Left Joy-Con / ポケットモンスター Let's Go! イーブイ | 2018.11.16 | #C88C32 | #281900 | 
| Pokémon: Let's Go! Edition Pikachu-Yellow Right Joy-Con / ポケットモンスター Let's Go! ピカチュウ | 2018.11.16 | #FFDC00 | #322800 | 
| *Nintendo Labo Creators Contest Edition "Cardboard"-Colored Joy-Con | 2018. (...?) | #D7AA73 | #1E1914 | 
| **Dragon Quest XI S Lotto Edition Royal-Blue Joy-Con / ドラゴン クエスト XI S (ロト版) | 2019.09.27 | #1473FA | #00000F | 
| **Disney Tsum Tsum Festival Edition Neon-Purple Left Joy-Con / ディズニー ツムツム フェスティバル | 2019.10.10 | #B400E6 | #140014 | 
| **Disney Tsum Tsum Festival Edition Neon-Pink Right Joy-Con / ディズニー ツムツム フェスティバル | 2019.10.10 | #FF3278 | #28001E | 
| Animal Crossing: New Horizons Edition Pastel-Green Left Joy-Con / あつまれ どうぶつの森 | 2020.03.13 | #82FF96 | #0A1E0A | 
| Animal Crossing: New Horizons Edition Pastel-Blue Right Joy-Con / あつまれ どうぶつの森 | 2020.03.13 | #96F5F5 | #0A1E28 | 
| Fortnite Wildcat Edition Yellow Left Joy-Con / フォートナイト ワイルドキャット(山猫) | 2020.10.30 | #FFCC00 | #1A1100 | 
| Fortnite Wildcat Edition Dark-Blue Right Joy-Con / フォートナイト ワイルドキャット(山猫) | 2020.10.30 | #0084FF | #000F1E | 
| Mario Red × Blue Edition Red Joy-Con / マリオ レッド × ブルー | 2021.02.12 | #F04614 | #1E1914 | 
| Monster Hunter Rise Edition Gray Joy-Con / モンスターハンターライズ | 2021.03.26 | #818282 | #0E0F0F | 
| Fortnite Fleet Force Edition Dark-Blue Left Joy-Con / フォートナイト フリート フォース(力の艦隊) | 2021.06.04 | #0084FF | #000F1E | 
| Fortnite Fleet Force Edition Yellow Right Joy-Con / フォートナイト フリート フォース(力の艦隊) | 2021.06.04 | #FFCC00 | #1A1100 | 
| Legend of Zelda: Skyward Sword Edition Dark-Blue Left Joy-Con / ゼルダの伝説 スカイウォードソード | 2021.07.16 | #2D50F0 | #1E0F46 | 
| Legend of Zelda: Skyward Sword Edition Dark-Purple Right Joy-Con / ゼルダの伝説 スカイウォードソード | 2021.07.16 | #500FC8 | #00051E | 
| Nintendo Switch OLED Edition White Joy-Con / Nintendo Switch (有機ELモデル) ホワイト | 2021.10.08 | #E6E6E6 | #323232 | 
| Splatoon 3 OLED Edition Blue-Gradient Left Joy-Con / (有機ELモデル) スプラトゥーン3 | 2022.08.26 | #6455F5 | #28282D | 
| Splatoon 3 OLED Edition Neon-Yellow-Gradient Right Joy-Con / (有機ELモデル) スプラトゥーン3 | 2022.08.26 | #C3FA05 | #1E1E28 | 
| Pokémon: Scarlet × Violet OLED Edition Scarlet Left Joy-Con / (有機ELモデル) ポケットモンスター スカーレット・バイオレット | 2022.11.04 | #F07341 | #322D1E | 
| Pokémon: Scarlet × Violet OLED Edition Violet Right Joy-Con / (有機ELモデル) ポケットモンスター スカーレット・バイオレット | 2022.11.04 | #9650AA | #32322D | 
| Legend of Zelda: Tears of the Kingdom Edition Gold Joy-Con / (有機ELモデル) ゼルダの伝説 ティアーズ オブ ザ キングダム | 2023.04.28 | #D2BE69 | #32322D | 
| // *(Prize Awarded for Labo Contest - No Retail) // **(Available Japan Only) |