系统转移

From 3dbrew
Revision as of 02:58, 3 April 2013 by Syphurith (talk | contribs) (help translation in →‎DSi System Transfer)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

System Transfer是2011年6/7日发布的 2.0.0-2所增加的功能。 可以从DSi向3DS转移DSiWare,DSi Sound title中的音频记录, "internal memory"相片,WFC 配置。DSi使用的"Nintendo 3DS Transfer Tool"可以从DSi Shop下载,而3DS System Transfer在System Settings中。System Transfer也能转移3DSWare到其他3DS中。

DSi系统转移

存档在DSi到3DS的DSiWare转移中不被转移。转移DSiWare时,DSi系统转移title会向DSi Shop发送一个SOAP请求,向3DS shop账号传送了DSiWare license/ticket。然后这个DSi title从NAND删除ticket。3DS很快会从shop/CDN下载ticket,tmd,content。

任天堂3DS广播基站标记为供应商0009BF。这包括3DS用户名,并且可能还有一些consoleID么?DSi验证/联系与一些二进制的SSID有关。rest请求使用明文多播ntr/twl,发送大量keep-alive数据帧。

DSi与3DS互相发送发送国家代码,用户名,序列号。DSi给3DS发送拥有的title列表,3DS似乎通过SOAP向eshop服务器确认titles是否被转移过了。然后DSi收到可以传送的title列表的响应。 用户选择传送的title后,DSi 发送title的banner给3DS,很多帧之后发送TitleID。

之后DSi转移工具和3DS转移工具启动,DSi向ecs.t.nintendowifi.net,ias.t.nintendowifi.net和cas.t.nintendowifi.net发送HTTPS的SOAP请求。3DS则向nus.c.nintendowifi.net,ecs.c.nintendowifi.net和cas.c.nintendowifi.net发送HTTPS基本上SOAP(NUS*是用于系统更新的)的请求。当进入DSiWare列表目录,DSi和3DS都会向ecs*和cas*请求。3DS系统转移不会许可你(似乎是服务器端或者别的地方。服务器提供版本号,机器验证)转移任何东西,除非你系统已经最新。

DSi发送Title列表时,在最初的6字节的802.11数据负载之后,就是如下的头部。头部之后则是Title列表。

偏移 长度 说明
0x0 0x4 总为0?
0x0 0x4 ?
0x8 0x4 总titles?
0xc 0x1 填充
0xd 0x48 全部是 0xFF 的字节.

3DS的Title列表头部:

偏移 长度 说明
0x0 0x4 ?
0x4 0x4 常为0?
0x8 0x4 ?
0xc 0x4 总Title数量?
0x10 0x4 ?
0x14 0x4 ?
0x18 0xf 3DS序列号
0x27 0x11 0xbd7和0xf7的二进制交错。如头一字节为0xbd,下一个就是0xf7,之后是0xbd,以此类推。
0x28 0x8 未知,可能是用于标识DeviceID,在DSi Shop SOAP请求的ASCII编码的3DS Ticket ConsoleID?(未确认)
0x30 0x18 总是0?

DSi和3DS的Title记录

总记录长度为0x128字节。

偏移 长度 注释
0x0 0x8 TitleID
0x8 0x8 UTF-8的Little-endian编码的ticketID
0x10 0x4 常为0?
0x14 0x4 常为1?
0x18 0x4 某种ID?
0x1c 0x4 常为0?
0x20 ? 有时候Title名称存储在这里?

3DS程序转移

3DS程序转移从版本3.0.0-5开始可用。可以参考3DS系统转移

参考

任天堂的日版系统转移页面.