Line 84:
Line 84:
===Protocol===
===Protocol===
−
The communication protocol between the 3DS system and the 3DS gamecard has changed completely in comparison with the DS and DSi gamecard communication protocol.
+
The communication protocol between the 3DS system and the 3DS gamecard has changed almost completely in comparison with the DS and DSi gamecard communication protocol.
+
+
After the seventh transfer, commands change size from 8 bytes to 16 bytes. Possibly a new encryption is used, such as AES CTR.
+
+
Here's a set of sample gamecard commands that a 3DS sends to a 3DS gamecard:
+
+
{| class="wikitable" border="1"
+
|-
+
! Size
+
! Command
+
! Description
+
|-
+
|2000
+
|9F00000000000000
+
| Reset
+
|-
+
|0000
+
|71C93FE9BB0A3B18
+
| Unknown
+
|-
+
|0004
+
|9000000000000000
+
| Get gamecard ID, response=9000FEC2
+
|-
+
|0004
+
|9000000000000000
+
| Get gamecard ID, response=9000FEC2
+
|-
+
|0004
+
|A000000000000000
+
| Unknown
+
|-
+
|0000
+
|3E00000000000000
+
| Unknown
+
|-
+
|07EC
+
|82000000000000000000000000000000
+
| Get header
+
|-
+
|05E3
+
|F32C92D85C9D44DED3E0E41DBE7C90D9
+
| Encrypted, unknown
+
|-
+
|0332
+
|696B9D8582FB55D31B68CAFE70C74A95
+
| Encrypted, unknown
+
|-
+
|0332
+
|BAA4812CA0AC9C5D19399530E3ACCCAB
+
| Encrypted, unknown
+
|-
+
|032E
+
|178E427C22D87ADB86387249A97D321A
+
| Encrypted, unknown
+
|-
+
|0332
+
|E06019B1BD5C9130ED6A4D9F4A9E7193
+
| Encrypted, unknown
+
|-
+
|0332
+
|4E0D224862523BBFE2E6255F80E15F37
+
| Encrypted, unknown
+
|}
+
+
The header command has some initial dummy bytes, and eventually responds with a 0x200 byte header. Here's an example for Lego Starwars 3:
+
0000000: 00 8c 03 00 00 00 04 00 00 00 00 00 00 00 00 00 ................
+
0000010: b3 cf fb c6 6a b1 cb 20 32 af ce 35 d4 1c 74 c9 ....j.. 2..5..t.
+
0000020: 8e 6b 27 2f 08 01 28 3b d4 30 de 44 37 f5 b0 46 .k'/..(;.0.D7..F
+
0000030: 91 59 d7 38 33 48 df 83 fd 71 84 2c 00 00 00 00 .Y.83H...q.,....
+
0000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000100: 4e 43 43 48 7a 7f 0e 00 00 8c 03 00 00 00 04 00 NCCHz...........
+
0000110: 36 34 02 00 00 00 00 00 00 8c 03 00 00 00 04 00 64..............
+
0000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
0000150: 43 54 52 2d 50 2d 41 4c 47 50 00 00 00 00 00 00 CTR-P-ALGP......
+
0000160: 0c 27 e3 c1 de 7b 2a e2 d3 11 4f 32 a4 ee bf 46 .'...{*...O2...F
+
0000170: 9a fd 0c f3 52 c1 1d 49 84 c2 a9 f1 d2 14 4c 63 ....R..I......Lc
+
0000180: 00 04 00 00 00 00 00 00 00 00 00 00 01 03 00 00 ................
+
0000190: 05 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
+
00001a0: 06 00 00 00 1c 0a 00 00 01 00 00 00 00 00 00 00 ................
+
00001b0: 22 0a 00 00 58 75 0e 00 01 00 00 00 00 00 00 00 "...Xu..........
+
00001c0: 13 0c 04 26 15 f6 47 c4 c6 32 25 ea 9e 67 f8 a2 ...&..G..2%..g..
+
00001d0: 7b 15 24 6b 88 fb c7 a9 27 25 7b 84 97 7b 78 7b {.$k....'%{..{x{
+
00001e0: a6 5b ee 10 60 bb 6a 68 21 bb ce c6 00 03 5b 7e .[..`.jh!.....[~
+
00001f0: 64 fb 6e ac a7 f0 96 0c fb 1f 5a 37 08 77 28 f7 d.n.......Z7.w(.