[完全版] NXDumpToolの使い方

CFW

NXDumpTool

ニンテンドースイッチのみでゲームカートリッジおよびアップデータをNSPとして抽出したり、ExeFSやRomFSを展開できる便利すぎるツール。

Kosmosを使ってCFW環境を構築したのであれば最初から同梱されているので、特別何かをインストールしたりする必要はありません。

暗号化を解除する必要があるのでNXDumpToolを使う前にlockpickでキーを取得しておく必要があります。やり方についてはこの記事を参考にしてください。

NSPのダンプ

まだ自分でも全部は把握できていないのですが、おおよそ以下のようなフローチャートになっているようです。

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の設定

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 dataticket-lessprogram NCA
YesNoNo
YesYesNo
YesNoYes
YesYesYes
NoYes
試してみた設定一覧

さすがに全通り試すのはめんどくさかったので、これだけしかやってませんが十分でしょう。

検証環境

  • FW 9.2.0 EMUMMC
  • Kosmos 15.6
Specific dataticket-lessprogram NCAResult
YesNoNo2155-8007
YesYesNo2002-4518
YesNoYes起動
YesYesYes2002-4518
NoYes2155-8007
試してみた設定一覧

というわけで、nosigpatchなしで起動しようと思った場合には三番目の設定にしなければいけないことがわかります。

まあ二番目と四番目はTicket-lessだからそもそもインストールできないんだけれども。

検証環境(nosigpatch)

  • FW 9.2.0 EMUMMC
  • Kosmos 15.6
  • nosigpatch
Specific dataticket-lessprogram NCAResult
YesNoNo起動
YesYesNo起動
YesNoYes起動
YesYesYes起動
NoYes2155-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)」と表示されており、アップデータをダンプしようとしていることがわかります。

コメント

  1. えむいー より:

    すみません。こちらはRomFSのダンプの設定画面でした。

    NSPとしてのダンプもアップデータを選択できませんでしたか?
    また、NXDumpToolをアップデートすると間違いなくアップデータをダンプできるはずですので、アップデートしてみてください。

  2. 匿名 より:

    えむいー様、ツールは最新のものを使っていると思います。一番上の、RomFS section date dump を選択すると、NSP形式のデータも同時にNSPフォルダに保存されています。アップデートに必要なものは、これのことでしょうか。

    • えむいー より:

      動画にしてきました。
      これでアップデータが正しく取得できるはずです。

  3. yuzuが動作しました。 より:

    えむいー様、お忙しい中、解説動画を作成いただきありがとうございます。
    BGMが哀愁漂いますね。
    DUMP installed SD card /eMMC contentを選択すると、この動画では画面左にゲームのアイコン(?)が表示されていますが、私の環境ではフォーマットの状態では、DUMP installed SD card /eMMC content を選択した後、Yボタンで画面切り替えをして、ゲーム選択は文字だけの表記になります。
    これは元のデータがインストール版か、カートリッジからバックアップしたかの違いでしょうか?nxdumptoolは最新のものと思うのですが。(結果的には対象のゲームを選択して以降は、動画の0:20~と同じ画面になるので解説動画どおりの作業はできますが、やはり解説動画のゲームアイコン表記の方が華やかで作業はやり易いです。私が画面を切り替える操作を飛ばしているのでしょうか?)
    それと、同じ質問(確認)すみません、アップデート反映に必要なものはこの動画で紹介されているデータであり、このページに最初から記載してあるアップデータのダンプ操作にあるRomFS section date dump からダンプしたデータや、romfsに保存されたている大容量のデータは消してしまっても特に問題はありませんでしょうか?
    あと、匿名でさり気なく説明してくださっていた方、気が付かずお礼が遅れてすみません。
    ありがとうございました。

  4. えむいー より:

    はい、そちらは消してしまって構いません。

  5. げらげらぽっぽ より:

    コメント失礼します。
    インストールアップデータ NSP をダンプ、バックアップしようとしていますが、
    『loadNsoBinaryData: unable to allocate 120993544 bytes for full decompressed NSO in program NCA!』
    と表示されてしまい、取れません。
    いろいろ環境を変えてトライするも解決に至らずです。
    対策方法をご教授願いたいです。
    よろしくお願いいたします。

    • えむいー より:

      同様のissueを調べてみたところ、2019年に一度報告されている問題のようです。
      NXDumpToolが最新のものかどうかと、AppletモードではなくOverrideモードでの起動が推奨されています。

  6. げらげらぽっぽ より:

    えむいー様
    ありがとうございます。
    v1.1.12 ですので最新のものを使っていると思います。
    hbmで起動していますので、Appletモードなのかな?と思うのですが、
    それを、Overrideモード(hbmで起動しない?)、アプリとして起動するのはどの様にするのでしょうか?
    初心者のような質問ですみません。
    詳しくはないのですが、Appletモードか、Overrideモードかというと RAM の問題で、400MB での起動がされているか、3GB の環境で起動されているのかということかな?とは想定できたのですが、だったらhbmで起動しないのはどうするの?という点で、行き詰りました。もう少しお教え頂ければありがたいです。
    よろしくお願いいたします。

    • えむいー より:

      初期設定であればR長押しのままゲームを起動すればOverrideモードになったかと思います。
      ※設定はDeepSea Toolboxなどから見れます

  7. ゆう より:

    コメント失礼します。
    MHRの吸出し(及びインストール)を行いたいのですが、吸い出したxciファイル、変換したnspファイルともインストール時にエラーが出てインストールが行えません。解決方法はあるでしょうか?
    以下エラー文です
    OpenFileSystemWithId;1:122: Faiked to open file system with id:~.nca. Error code:0x00234c02

    • えむいー より:

      なんのインストーラでインストールしようとしましたか?

      また、変換もどのツールを利用したのかが知りたいです。

タイトルとURLをコピーしました