<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sephirothkefka</id>
	<title>Nintendo Switch Brew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sephirothkefka"/>
	<link rel="alternate" type="text/html" href="https://switchbrew.org/wiki/Special:Contributions/Sephirothkefka"/>
	<updated>2026-05-05T11:43:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Hardware&amp;diff=11244</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Hardware&amp;diff=11244"/>
		<updated>2021-10-14T23:48:58Z</updated>

		<summary type="html">&lt;p&gt;Sephirothkefka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Motherboard =&lt;br /&gt;
== Nintendo Switch ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| ODIN-CPU-X5 || Pre-release Nintendo Switch.&lt;br /&gt;
|-&lt;br /&gt;
| HAC-CPU-01 || Retail Nintendo Switch (earliest manufacture date seen: 01/12 2016).&lt;br /&gt;
|-&lt;br /&gt;
| HAC-CPU-10 || Retail Nintendo Switch.&lt;br /&gt;
|-&lt;br /&gt;
| HAC-CPU-20 || Retail Nintendo Switch (earliest manufacture date seen: 26/10 2017).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Switch Mariko ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| MODIN-CPU-X5 || Pre-release Nintendo Switch Mariko.&lt;br /&gt;
|-&lt;br /&gt;
| HAD-CPU-01 || Retail Nintendo Switch Mariko.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Switch Lite ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| VALI-CPU-X5 || Pre-release Nintendo Switch Lite.&lt;br /&gt;
|-&lt;br /&gt;
| HDH-CPU-02 || Retail Nintendo Switch Lite.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Switch (OLED Model) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| HEG-CPU-01 || Retail Nintendo Switch (OLED Model).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Specifications =&lt;br /&gt;
== Nintendo Switch ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component || Description&lt;br /&gt;
|-&lt;br /&gt;
| SoC || NVIDIA ODNX02-A2&lt;br /&gt;
|-&lt;br /&gt;
| Screen || InnoLux P062CCA-AZ1&lt;br /&gt;
|-&lt;br /&gt;
| Storage || Samsung KLMBG2JENB-B041 32 GB eMMC &amp;lt;br/&amp;gt; or &amp;lt;br/&amp;gt; Toshiba THGBMHG8C2LBAIL 32 GB eMMC&lt;br /&gt;
|-&lt;br /&gt;
| Memory || Samsung K4F6E304HB-MGCH 2 GB LPDDR4 DRAM x2 (Total 4GB)&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT || Broadcom BCM4356XKUBG&lt;br /&gt;
|-&lt;br /&gt;
| PMIC || Maxim Integrated MAX77620AEWJ+T &lt;br /&gt;
|-&lt;br /&gt;
| Audio || Realtek ALC5639&lt;br /&gt;
|-&lt;br /&gt;
| GC ASIC || B1633 GCBRG HAC STD T1001216&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Switch Mariko ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component || Description&lt;br /&gt;
|-&lt;br /&gt;
| SoC || NVIDIA ODNX10-A1&lt;br /&gt;
|-&lt;br /&gt;
| Screen || InnoLux P062CCA-AZ2&lt;br /&gt;
|-&lt;br /&gt;
| Storage || SK Hynix H26M62002JPR 32 GB eMMC&lt;br /&gt;
|-&lt;br /&gt;
| Memory || Samsung K4U6E3S4AM-MGCJ 2 GB LPDDR4x DRAM x2 (Total 4GB)&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT || Broadcom BCM4356XKUBG&lt;br /&gt;
|-&lt;br /&gt;
| PMIC || Maxim Integrated MAX77812&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Realtek ALC5639&lt;br /&gt;
|-&lt;br /&gt;
| GC ASIC || B1834 GCBRG HAC STD T1439218&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Switch Lite ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component || Description&lt;br /&gt;
|-&lt;br /&gt;
| SoC || NVIDIA ODNX10-A1&lt;br /&gt;
|-&lt;br /&gt;
| Screen || InnoLux ZJ055IA-27A&lt;br /&gt;
|-&lt;br /&gt;
| Storage || Samsung KLMBG2JETD-B041 32 GB eMMC&lt;br /&gt;
|-&lt;br /&gt;
| Memory || Samsung K4U6E3S4AM-MGCJ 2 GB LPDDR4x DRAM x2 (Total 4GB)&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT || Broadcom BCM4356XKUBG&lt;br /&gt;
|-&lt;br /&gt;
| PMIC || Maxim Integrated MAX77812&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Realtek ALC5639&lt;br /&gt;
|-&lt;br /&gt;
| GC ASIC || B1921 GCBRG HAC STD T1122919A2&lt;br /&gt;
|-&lt;br /&gt;
| MCU || STMicroelectronics STM32F038C6&lt;br /&gt;
|-&lt;br /&gt;
| NFC || STMicroelectronics NFCDDR A92089 19&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Switch (OLED Model) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component || Description&lt;br /&gt;
|-&lt;br /&gt;
| SoC || NVIDIA ODNX10-A1&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Samsung AMS699VC01&lt;br /&gt;
|-&lt;br /&gt;
| Storage || Samsung KLMCG4JETD-B041 64 GB eMMC&lt;br /&gt;
|-&lt;br /&gt;
| Memory || Samsung K4U6E3S4AA-MGCL 2 GB LPDDR4x DRAM x2 (Total 4GB)&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT || Broadcom BCM4356XKUBG&lt;br /&gt;
|-&lt;br /&gt;
| PMIC || Maxim Integrated MAX77812&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Realtek ALC5639&lt;br /&gt;
|-&lt;br /&gt;
| GC ASIC ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= eMMC Pinout =&lt;br /&gt;
{{:EMMC_pinout}}&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
1. https://www.sosav.fr/guides/consoles/nintendo/nintendo-salon/nintendo-switch/demontage-complet/ &amp;lt;/br&amp;gt;&lt;br /&gt;
2. https://www.ifixit.com/Teardown/Nintendo+Switch+Teardown/78263&lt;/div&gt;</summary>
		<author><name>Sephirothkefka</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=6968</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=6968"/>
		<updated>2019-06-01T05:13:38Z</updated>

		<summary type="html">&lt;p&gt;Sephirothkefka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the Nintendo Switch Gamecard.&lt;br /&gt;
&lt;br /&gt;
{|  style=&amp;quot;float:right; margin-left: 0px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:ZeldaFront.jpg|200px|thumb|right|A Switch game cartridge, frontside]] &lt;br /&gt;
| [[File:ZeldaBack.jpg|200px|thumb|right|A Switch game cartridge, backside]] &lt;br /&gt;
|-&lt;br /&gt;
| [[File:CartridgeFront.jpeg|200px|thumb|right|Close-up of frontside PCB]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[File:CartridgeBack.jpeg|200px|thumb|right|Close-up of backside PCB]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CartridgeFrontBare.jpeg|200px|thumb|right|Close-up of stripped frontside PCB]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the Gamecard partitions that can be [[Filesystem_services|mounted]], see [[Gamecard_Partition|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard image format, see [[Gamecard_Format|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Gamecard_ASIC|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:Gamecard-pinout.png|400px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
! Direction&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| IRQ?&lt;br /&gt;
| Output&lt;br /&gt;
| Always wired to GND inside game cartridge; Possibly used for interrupt signaling&lt;br /&gt;
|- &lt;br /&gt;
| 1 &lt;br /&gt;
| RCLK&lt;br /&gt;
| Output&lt;br /&gt;
| Return clock; Game cartridge sends back CLK signal delayed by a few ns&lt;br /&gt;
|- &lt;br /&gt;
| 2 &lt;br /&gt;
| CLK &lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|- &lt;br /&gt;
| 3 &lt;br /&gt;
| CS&lt;br /&gt;
| Input&lt;br /&gt;
| Chip select; Switch pulls this LOW during a transfer&lt;br /&gt;
|- &lt;br /&gt;
| 4&lt;br /&gt;
| DAT0 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|- &lt;br /&gt;
| 5 &lt;br /&gt;
| DAT1 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|- &lt;br /&gt;
| 6 &lt;br /&gt;
| VCC 3.3v &lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| 7 &lt;br /&gt;
| DAT2 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|- &lt;br /&gt;
| 8 &lt;br /&gt;
| DAT3 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|- &lt;br /&gt;
| 9 &lt;br /&gt;
| VCC 1.8v &lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| 10 &lt;br /&gt;
| DAT4 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 11 &lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|- &lt;br /&gt;
| 12 &lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|- &lt;br /&gt;
| 13 &lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|- &lt;br /&gt;
| 14 &lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| 15 &lt;br /&gt;
| RST&lt;br /&gt;
| Input&lt;br /&gt;
| Reset, active LOW.&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All IO use 1.8V for logic HIGH and 0V for logic LOW.&lt;br /&gt;
&lt;br /&gt;
= Protocol =&lt;br /&gt;
Switch game cartridges use a simple (but Nintendo proprietery) SPI-like bus with 8-bit width (DAT7..0). It is very similar to the bus interface of 3DS game cartridges, except with very different commands.&lt;br /&gt;
&lt;br /&gt;
The Switch host starts a transfer by first pulling CS low, followed by clocking a byte each clock cycle. The bus data will always be ready before the rising edge of the CLK signal, so that it can be captured on the rising edge.&lt;br /&gt;
After command bytes are written to the bus, the direction of the bus implicitly changes and the game cartridge responds. The Switch host keeps clocking while the game cartridge responds.&lt;br /&gt;
After the transfer is ended, the CS line is pulled high again.&lt;br /&gt;
&lt;br /&gt;
Commands are 16 bytes long, and followed immediately by a 4-byte CRC-32 over the command bytes. After this, the Switch stops driving the data bus, and the bus will be &#039;floating&#039;. Due to the pull-ups on the bus, it will slowly converge to logic HIGH state. The Switch will clock 2 cycles to allow the bus to settle a direction change. The Switch host will then clock another cycle and if the game cartridge didn&#039;t receive the CRC OK, it will respond with &amp;quot;01&amp;quot;. Otherwise it will respond with &amp;quot;00&amp;quot; and pull DAT0 low on the next cycle to signal it is busy. The Switch host will then keep clocking until the cartridge is ready.&lt;br /&gt;
&lt;br /&gt;
When the game cartridge is ready to send the actual data response, it will pull the DAT0 pin high for 2 cycles to let the Switch host know. After this, the game cartridge will send the actual data response bytes.&lt;br /&gt;
&lt;br /&gt;
The actual response bytes are also followed immediately by a 4-byte CRC-32 over the actual data response bytes.&lt;br /&gt;
&lt;br /&gt;
A typical boot up sequence of a game cartridge (in this case, the game &amp;quot;1,2 Switch&amp;quot;) looks like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5B000000000000010000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read sector 0, contains &amp;quot;HEAD&amp;quot; blob&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;5B000000000000010000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read sector 0, contains &amp;quot;HEAD&amp;quot; blob&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;56000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read card id &amp;quot;AE F8 01 21&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;28000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;02 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;A5000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;00 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;56000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read card id &amp;quot;AE F8 01 21&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;28000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;02 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;5B000000380000010000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read sector 0x38, contains &amp;quot;CERT&amp;quot; blob&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;E2000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;01 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;E0000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read crypto-challenge header&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;200838A25A344F818ABB6456694D4E8D&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0&lt;br /&gt;
| Enter crypto mode1 with HOST-RANDOM &amp;quot;0838A25A344F818ABB6456694D4E8D&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;7EE41FDF12C01C157CC899910673A0CF&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x40&lt;br /&gt;
| Encrypted crypto mode1 command, reads CART-RANDOM&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;263C8230EC15FAE3CE79365BD850F4BD&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x0&lt;br /&gt;
| Encrypted mode1 command, enters crypto mode2 with (HOST-RANDOM, CART-RANDOM)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;B6FDA6F37FFA29E18831D0B217DFBDBE&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Encrypted mode2 command, possibly read card id?&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;7B97F7DF07240AA9870E1C974336FA8A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Encrypted mode2 command&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Manufacturers =&lt;br /&gt;
;Macronix (MX)&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Renesas &lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0x23&lt;br /&gt;
;SanDisk?&lt;br /&gt;
: Uses package: ??&lt;br /&gt;
: Uses card id: 0x45 ?&lt;/div&gt;</summary>
		<author><name>Sephirothkefka</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=6967</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=6967"/>
		<updated>2019-06-01T00:17:18Z</updated>

		<summary type="html">&lt;p&gt;Sephirothkefka: Edited manufacturers tab; replaced OKI with Renesas; adjusted package types&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the Nintendo Switch Gamecard.&lt;br /&gt;
&lt;br /&gt;
{|  style=&amp;quot;float:right; margin-left: 0px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:ZeldaFront.jpg|200px|thumb|right|A Switch game cartridge, frontside]] &lt;br /&gt;
| [[File:ZeldaBack.jpg|200px|thumb|right|A Switch game cartridge, backside]] &lt;br /&gt;
|-&lt;br /&gt;
| [[File:CartridgeFront.jpeg|200px|thumb|right|Close-up of frontside PCB]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[File:CartridgeBack.jpeg|200px|thumb|right|Close-up of backside PCB]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:CartridgeFrontBare.jpeg|200px|thumb|right|Close-up of stripped frontside PCB]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the Gamecard partitions that can be [[Filesystem_services|mounted]], see [[Gamecard_Partition|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard image format, see [[Gamecard_Format|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Gamecard_ASIC|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:Gamecard-pinout.png|400px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
! Direction&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| IRQ?&lt;br /&gt;
| Output&lt;br /&gt;
| Always wired to GND inside game cartridge; Possibly used for interrupt signaling&lt;br /&gt;
|- &lt;br /&gt;
| 1 &lt;br /&gt;
| RCLK&lt;br /&gt;
| Output&lt;br /&gt;
| Return clock; Game cartridge sends back CLK signal delayed by a few ns&lt;br /&gt;
|- &lt;br /&gt;
| 2 &lt;br /&gt;
| CLK &lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|- &lt;br /&gt;
| 3 &lt;br /&gt;
| CS&lt;br /&gt;
| Input&lt;br /&gt;
| Chip select; Switch pulls this LOW during a transfer&lt;br /&gt;
|- &lt;br /&gt;
| 4&lt;br /&gt;
| DAT0 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|- &lt;br /&gt;
| 5 &lt;br /&gt;
| DAT1 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|- &lt;br /&gt;
| 6 &lt;br /&gt;
| VCC 3.3v &lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| 7 &lt;br /&gt;
| DAT2 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|- &lt;br /&gt;
| 8 &lt;br /&gt;
| DAT3 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|- &lt;br /&gt;
| 9 &lt;br /&gt;
| VCC 1.8v &lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| 10 &lt;br /&gt;
| DAT4 &lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 11 &lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|- &lt;br /&gt;
| 12 &lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|- &lt;br /&gt;
| 13 &lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|- &lt;br /&gt;
| 14 &lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| 15 &lt;br /&gt;
| RST&lt;br /&gt;
| Input&lt;br /&gt;
| Reset, active LOW.&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All IO use 1.8V for logic HIGH and 0V for logic LOW.&lt;br /&gt;
&lt;br /&gt;
= Protocol =&lt;br /&gt;
Switch game cartridges use a simple (but Nintendo proprietery) SPI-like bus with 8-bit width (DAT7..0). It is very similar to the bus interface of 3DS game cartridges, except with very different commands.&lt;br /&gt;
&lt;br /&gt;
The Switch host starts a transfer by first pulling CS low, followed by clocking a byte each clock cycle. The bus data will always be ready before the rising edge of the CLK signal, so that it can be captured on the rising edge.&lt;br /&gt;
After command bytes are written to the bus, the direction of the bus implicitly changes and the game cartridge responds. The Switch host keeps clocking while the game cartridge responds.&lt;br /&gt;
After the transfer is ended, the CS line is pulled high again.&lt;br /&gt;
&lt;br /&gt;
Commands are 16 bytes long, and followed immediately by a 4-byte CRC-32 over the command bytes. After this, the Switch stops driving the data bus, and the bus will be &#039;floating&#039;. Due to the pull-ups on the bus, it will slowly converge to logic HIGH state. The Switch will clock 2 cycles to allow the bus to settle a direction change. The Switch host will then clock another cycle and if the game cartridge didn&#039;t receive the CRC OK, it will respond with &amp;quot;01&amp;quot;. Otherwise it will respond with &amp;quot;00&amp;quot; and pull DAT0 low on the next cycle to signal it is busy. The Switch host will then keep clocking until the cartridge is ready.&lt;br /&gt;
&lt;br /&gt;
When the game cartridge is ready to send the actual data response, it will pull the DAT0 pin high for 2 cycles to let the Switch host know. After this, the game cartridge will send the actual data response bytes.&lt;br /&gt;
&lt;br /&gt;
The actual response bytes are also followed immediately by a 4-byte CRC-32 over the actual data response bytes.&lt;br /&gt;
&lt;br /&gt;
A typical boot up sequence of a game cartridge (in this case, the game &amp;quot;1,2 Switch&amp;quot;) looks like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5B000000000000010000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read sector 0, contains &amp;quot;HEAD&amp;quot; blob&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;5B000000000000010000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read sector 0, contains &amp;quot;HEAD&amp;quot; blob&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;56000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read card id &amp;quot;AE F8 01 21&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;28000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;02 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;A5000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;00 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;56000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read card id &amp;quot;AE F8 01 21&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;28000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;02 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;5B000000380000010000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read sector 0x38, contains &amp;quot;CERT&amp;quot; blob&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;E2000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Read ??? &amp;quot;01 00 00 00&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;E0000000000000000000000000000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x200&lt;br /&gt;
| Read crypto-challenge header&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;200838A25A344F818ABB6456694D4E8D&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0&lt;br /&gt;
| Enter crypto mode1 with HOST-RANDOM &amp;quot;0838A25A344F818ABB6456694D4E8D&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;7EE41FDF12C01C157CC899910673A0CF&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x40&lt;br /&gt;
| Encrypted crypto mode1 command, reads CART-RANDOM&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;263C8230EC15FAE3CE79365BD850F4BD&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x0&lt;br /&gt;
| Encrypted mode1 command, enters crypto mode2 with (HOST-RANDOM, CART-RANDOM)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;B6FDA6F37FFA29E18831D0B217DFBDBE&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Encrypted mode2 command, possibly read card id?&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;7B97F7DF07240AA9870E1C974336FA8A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Encrypted mode2 command&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Manufacturers =&lt;br /&gt;
;Macronix (MX)&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Renesas &lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&lt;br /&gt;
;SanDisk?&lt;br /&gt;
: Uses package: ??&lt;br /&gt;
: Uses card id: 0x45 ?&lt;/div&gt;</summary>
		<author><name>Sephirothkefka</name></author>
	</entry>
</feed>