<?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=DenisDziganchuk</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=DenisDziganchuk"/>
	<link rel="alternate" type="text/html" href="https://switchbrew.org/wiki/Special:Contributions/DenisDziganchuk"/>
	<updated>2026-04-29T23:56:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12623</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12623"/>
		<updated>2023-12-14T01:00:31Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Clarify which chip, ASIC, the pins receive data from&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the ASIC chip.&lt;br /&gt;
&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;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.1v&lt;br /&gt;
| Input&lt;br /&gt;
| Power (3.1V) for Internal Core&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
| Power (1.8V) for I/O&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.1v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;MegaChips (outsourced to Macronix)&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&lt;/div&gt;</summary>
		<author><name>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12618</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12618"/>
		<updated>2023-12-09T02:18:13Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Expand on Pin 1&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&lt;br /&gt;
&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;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.1v&lt;br /&gt;
| Input&lt;br /&gt;
| Power (3.1V) for Internal Core&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
| Power (1.8V) for I/O&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;Macronix&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: ??&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12617</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12617"/>
		<updated>2023-12-09T02:13:01Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Update VCC voltage and add description to VCC&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&lt;br /&gt;
&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;
| 1, 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.1v&lt;br /&gt;
| Input&lt;br /&gt;
| Power (3.1V) for Internal Core&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
| Power (1.8V) for I/O&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;Macronix&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: ??&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12616</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12616"/>
		<updated>2023-12-09T02:00:13Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Add Macronix to Manufacturers&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&lt;br /&gt;
&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;
| 1, 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;Macronix&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: ??&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12615</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12615"/>
		<updated>2023-12-09T01:58:21Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Undo revision 12614 by DenisDziganchuk (talk)&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&lt;br /&gt;
&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;
| 1, 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12614</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12614"/>
		<updated>2023-12-09T01:56:35Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Add Macronix to Manufacturers&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&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;
| 1, 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;Macronix&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: ??&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12613</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12613"/>
		<updated>2023-12-09T01:47:12Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Add description to Pin 16&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&lt;br /&gt;
&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;
| 1, 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
| Input&lt;br /&gt;
| Ground&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12612</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12612"/>
		<updated>2023-12-09T01:44:05Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Fix formatting&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&lt;br /&gt;
&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;
| 1, 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12611</id>
		<title>Gamecard</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Gamecard&amp;diff=12611"/>
		<updated>2023-12-09T01:43:31Z</updated>

		<summary type="html">&lt;p&gt;DenisDziganchuk: Added note about Pins 1 and 2&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 image format, see [[XCI|here]].&lt;br /&gt;
&lt;br /&gt;
For the Gamecard ASIC, see [[Lotus3|here]].&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
Note: Pins 1 and 2 act as one when receiving data from the chip.&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;
| 1, 2&lt;br /&gt;
| CD#&lt;br /&gt;
| Output&lt;br /&gt;
| Card Detect; Single pin on cartridge side (hardwired to GND). Bridges pin 1 (GND) and 2 (CD#) on slot side as cartridge is inserted&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
| Input&lt;br /&gt;
| Clock, 25MHz&lt;br /&gt;
|-&lt;br /&gt;
| 4&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;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
| Input&lt;br /&gt;
| Chip Select&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
| Input&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 4&lt;br /&gt;
|- &lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
| Inout&lt;br /&gt;
| Data bus pin 7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
| Input&lt;br /&gt;
| Reset&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;
= Slot Pinout =&lt;br /&gt;
[[File:Card_slot.jpg|500px|thumb|right|Annotated slot pinout]]&lt;br /&gt;
&lt;br /&gt;
This just maps the [[#Pinout|cartridge pinout]] onto the slot on the console.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin&lt;br /&gt;
! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CD#&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CLK&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| RCLK&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CS#&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| DAT1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| DAT0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| VCC 3.3v&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| DAT3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| DAT2&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| VCC 1.8v&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| DAT5&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| DAT4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DAT6&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| DAT7&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| GND&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| RST#&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
= Manufacturers =&lt;br /&gt;
;MegaChips&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xC2&lt;br /&gt;
;Lapis&lt;br /&gt;
: Uses package: LGA, TSOP-48&lt;br /&gt;
: Uses card id: 0xAE&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>DenisDziganchuk</name></author>
	</entry>
</feed>