Contents [hide]
NXDumpTool
ニンテンドースイッチのみでゲームカートリッジおよびアップデータをNSPとして抽出したり、ExeFSやRomFSを展開できる便利すぎるツール。
Kosmosを使ってCFW環境を構築したのであれば最初から同梱されているので、特別何かをインストールしたりする必要はありません。
暗号化を解除する必要があるのでNXDumpToolを使う前にlockpickでキーを取得しておく必要があります。やり方についてはこの記事を参考にしてください。
NSPのダンプ
まだ自分でも全部は把握できていないのですが、おおよそ以下のようなフローチャートになっているようです。
今回はnosigpatchを使っていない状態でNSPをインストールして正しく起動するための方法について解説します。
Ticket
Ticketはゲームカードごとに固有のものであり、ゲームのインストール時に本体に保存される証明書です。
逆に言えば、同じTicketをもつゲームが同時に起動しているということは、誰かがゲームカードをコピーして海賊行為を働いているということです。これが任天堂に検知されるとソフトBANされます。
The NSP has a ticket to be importedと書かれていたらTicketが同梱されています。ちなみにTitle keyとは関係ないよ。
nosigpatch
TicketがないNSPは本来はインストールすることができませんが、それを回避するためのKosmos用のパッチ(sigpatch)があります。
そのやり方についてはこの記事で詳しく解説しているのでどうぞ。
nosigpatchがあればticketがないNSPもインストールできます。
Common key
後述するRemove console specific dataを有効にした状態を指します。
NXDumpToolの設定
Split output dump (FAT32 support)
SDカードがFAT32でフォーマットされており、4GB以上のアップデータやNSPを抽出するときはYesにしましょう。exFATの場合はNoで問題ありません。
Verify dump using No-Intro database
ファイル整合性をチェックしてくれますが、インターネット環境が必要になります。Noでも問題ありません。
Remove console specific data
Ticketにはpersonalized ticketとcommon ticketの二種類があるのですが、どうもeShopからダウンロードしたものにはpersonalized ticketが使われているようです。
どちらのTicketも有効なのでnosigpatchをあてていなくてもインストール可能なNSPになるのですが、personalized ticketは初回起動時にTicketの有効性をチェックするためにダンプした本体以外(EMUNANDも含む)にインストールして起動しようとすると、インターネット接続(ニンテンドーネットワーク)が要求されます。
CFW環境ではインターネット接続およびニンテンドーネットワーク接続はBANの原因となりかねないので、このチェックは回避したいわけです。
このRemove console specific dataのオプションはpersonalized ticketをcommon ticketに切り替えることでそのチェックをバイパスできます。
なので、よっぽど特別な場合を除いて常にYesにしておいて良いと思います。
というか、これがNoだとeShopからダウンロードしてNSP化するとその抽出した本体でしか起動できなくなります。
ちなみにゲームカートリッジからダンプしたNSPの場合は既にcommon ticketが使われていますが、ここをYesにしておいても問題ないそうです。
Change NPDM RSA key/sig in Program NCA
このオプションを無効化するとどのようなCFWでもNSPが正しく動作するためにACIDパッチが追加で必要になるとのこと。
ということは常にYesで良さそうです。
各設定でインストールしてみた
Specific data | ticket-less | program NCA |
Yes | No | No |
Yes | Yes | No |
Yes | No | Yes |
Yes | Yes | Yes |
No | – | Yes |
さすがに全通り試すのはめんどくさかったので、これだけしかやってませんが十分でしょう。
検証環境
- FW 9.2.0 EMUMMC
- Kosmos 15.6
Specific data | ticket-less | program NCA | Result |
Yes | No | No | 2155-8007 |
Yes | Yes | No | 2002-4518 |
Yes | No | Yes | 起動 |
Yes | Yes | Yes | 2002-4518 |
No | – | Yes | 2155-8007 |
というわけで、nosigpatchなしで起動しようと思った場合には三番目の設定にしなければいけないことがわかります。
まあ二番目と四番目はTicket-lessだからそもそもインストールできないんだけれども。
検証環境(nosigpatch)
- FW 9.2.0 EMUMMC
- Kosmos 15.6
- nosigpatch
Specific data | ticket-less | program NCA | Result |
Yes | No | No | 起動 |
Yes | Yes | No | 起動 |
Yes | No | Yes | 起動 |
Yes | Yes | Yes | 起動 |
No | – | Yes | 2155-8007 |
nosigpatchを入れてみたところSpecific dataの項目をYesにしてcommon keyに切り替えてさえいればちゃんと起動することがわかりました。
まとめ
というわけで、nosigpatchを使わない前提であればNXDumpToolは以下の設定にしておくのが無難そうであることがわかりました。
RomFSのダンプ
NXDumpToolはRomFSを展開することもできます。
つまり、hactoolが不要になるというわけですね。
注意点としては、UPDのRomFSを展開するためにはBASEとUPDが必要になるということです。
BASEをカートリッジとして利用している場合は上手くUPDがダンプできない場合もあるので注意しましょう。
まずはNXDumpToolを起動して「Dump Installed SD card / eMMC content」を選択します。
するとゲーム一覧を見ることができます。
今回はスプラトゥーン2の体験版のBASEのRomFSをダンプしてみましょう。
ここで「RomFS options」を選択します。
ここで「RomFS section data dump」を選択すると全てのデータをダンプします。全データのダンプなのでそれなりに時間がかかります。
特定のファイルだけダンプしたい場合はその下の「Browse RomFS section」を選択します。
すると以下のような感じでRomFSのデータが表示されます。
今回は試しにParamフォルダの中身をダンプしてみましょう。
ここでファイルごとにAボタンを押せば「そのファイルをダンプ」になり、Yボタンを押せば「このフォルダ内の全てのファイルをダンプ」になります。
Paramフォルダ自体は20MBくらいしかないのであっという間に終わりますが、フォルダの中身が増えると当然それに比例して遅くなるので気をつけてください(例えばModelフォルダとかは重いです)
アップデータのダンプ
さて、スプラトゥーン2の体験版はアップデータがないBASEだったわけですがアップデータがあるソフトの場合はBASEまたはUPDを選択してダンプすることができます。
さて、スプラトゥーン2ですが情報のところをよくみると「Version: 0 (0.0.0.0)」や「Installed update(s): v1441792 (0.1.6.0)」と書かれているのがわかります。
これは「BASE(v0)とUPD(v1441792)がインストールされているよ」という意味になります。
試しにさっきと同じように「Browse RomFS section」を押してみましょう。
すると上の方に青い文字で「Base application to browse Splatoon 2v v0 (0.0.0.0)」と表示されているのがわかります。
つまり、今ダンプしようとしているのはBASEだということです。
これを切り替えるためには画面を一つ戻って「Use update/DLC」でダンプしたいバージョンを選択します。
すると今度は「Update to browse: Splatoon 2 | 01003BC0000A0b00 v 1441792 (0.16.0)」と表示されており、アップデータをダンプしようとしていることがわかります。
自身を天才と信じて疑わないマッドサイエンティスト。二つ上の姉は大英図書館特殊工作部勤務、額の十字架の疵は彼女につけられた。
コメント
エラーコード2145-0001がでたのですが原因わかりますでしょうか
このIssueによるとsigpatchがインストールされていない可能性があります。
sigpatchとはどこでインストールすればよろしいでしょうか?
DeepSea v1.8.1をcfwとして導入
lockpickとnxdumptoolでゲームソフトから吸い出した nspデータを
いろいろなインストールソフトで試しているが、ことごとくエラーが出て使えない現状
ソフトは
・ファイアーエンブレム 風花
・ルーンファクトリー4スペシャル
Quarkソフトを試しているが、サイトで紹介されている手順でやっても
switchをusbとして認識せずに起動してもすぐに閉じてしまう。
なにか素人でも扱いやすいソフトがありましたら紹介してもらえると助かります。
ちなみにダンプ時に
Verify dump using No-Intro database
Remove console specific data
のふたつの選択肢はありませんでした。
インストール時にどのようなエラーがでるか教えていただきたいです。
自分も手元でダンプしてみたのですが、インストール出来ないものがありひょっとしたら同じ原因かもしれません。
エラーコード2002-4518が出てきてフォーマットしたほうがいいとかsig-patchを入れろとか書いてあるんですけどやっぱフォーマットしないとダメなんでしょうか…
フォーマットは不要ですのでsigpatchを使うかTicketを同梱したNSPを利用してください。
readFileFromSecureHfs0PartitionByName: unable to find “/31e1…nca” in Secure HFS0 partition!
readNcaDataByContentId: failed to read 3072 bytes block at offset…
dumpNintendoSubmissionPackage: failed to read header from NCA “3e1…”
と出てきてNSPがダンプできないのですが何か根本的に間違っているでしょうか?
LockpickRCMでキーを取得してみてください。