[NXDumpTool] NSPをPCレスで抽出する方法

Hack

HACGUIとの比較

HACGUIのメリット

  • HBからではなくNANDやSDカードから直接データを抜き出すのでCFWが動作しないバージョンでもNSPを抽出することができる。
  • eShopからダウンロードしたゲームを抽出する際にCFW(SYSNAND)で起動する必要がないのでBANのリスクが非常に低い
  • コンソールデータ削除機能がないのでeShopからダウンロードしたゲームをNSP化すると不都合が生じる

NXDumpTool

DarkMatterCore氏が開発したnxdumptoolを使います。

Kosmosだと初期状態から同梱されているので特に新しくダウンロードする必要はないです。

DarkMatterCore/nxdumptool
Generates XCI/NSP/HFS0/ExeFS/RomFS/Certificate/Ticket dumps from Nintendo Switch gamecards and installed SD/eMMC titles. - DarkMatterCore/nxdumptool

NXDumpToolでできること

カートリッジからXCIのダンプ

XCIはゲームカード形式ですが、これをサポートするのがSXOSだけですのでエミュレータを利用するのでなければXCIは選択しなくて良いでしょう。

カートリッジからNSPのダンプ

NSPはeShop形式でGoldleafやTinfoilなどを使ってSDカードや本体メモリにインストールできます。

アップデータをNSPとしてダンプ

アップデータはHACGUIを使わないとダンプできなかったのですが、本ツールを使えばPCレスでおこなえてとても便利です。

ただ、NXDumpToolはCFWが起動しないと使えません。その点ではHACGUIが勝ります。

ExeFS/RomFSのダンプ

実行ファイルであるExeFSやゲームデータであるRomFSをPCレスで展開して抽出することができます。

従来はhactoolでNCAを復号する必要があったのですが、それをしなくていいというのは便利ですね。ただ、今までPCでやっていたことをスイッチでやっているだけですので、PCに処理力が劣るスイッチでは人によっては時間がかかると感じてしまうかもしれません。

手順

Dump gamecard content

カートリッジからダンプしたいので今回はDump gamecard contentを選択します。

既にインストールしているデータをNSPかXCIとしてダンプする場合はその下のDump SD cardを選択します。

カートリッジのダンプ

今回はNSPとしてダンプしたいので上から二番目を選択します。

設定は多分適当で大丈夫です。ダンプ自体はSDカードがある程度高速であればスプラトゥーン程度であれば十分もあれば終わります。

無事にNSPのダンプができました!

NSPインストール

NSPのインストールはKosmos利用者であればデフォルトで入っているGoldleafを使うのが一番簡単かと思います。

2002-4518

このエラーはNSPの証明書に関するもので、ゲームカートリッジやダウンロードしたゲームデータをNSP化する際に固有データである証明書(Ticket)を多くのダンプツールがデフォルトで偽の証明書に置換していることが由来となるエラーです。

atmosphereでは海賊版対策として自身が正規にダンプしたNSPであっても証明書が正しくない場合はインストールできないシステムが備わっています。

なのでちゃんとした証明書付きでゲームを抽出するか、偽の証明書を弾くシステムを無効化する必要があります。

今まではGithubで普通にSigpatchが公開されていたのですが、現在はレポジトリが削除されてしまってダウンロードできなくなっています。

一応ミラーサイトを見つけたのですが、中身が改変されていないことは保証できませんので導入は自己責任でお願いします。

また、詳しい導入方法は以下の記事で解説しています。

まとめ

NSPとしてダンプすることはできるのだが、結局NSPをNCAに展開するにはPC側でTitleKeyが必要なことは変わっていません。

ただ、スイッチ自体でNSPを抽出できるようになったのはすごく便利ですね。

コメント

  1. 匿名 より:

    これをしたら何が出来ますか?

  2. 匿名 より:

    Splatoon2(titleID)(Base)の、Baseって1.0.0の事ですかね?
    それと、5.1.0などのアップデータは吸出し出来ないのでしょうか。

    • えむいー より:

      はい、1.0.0のことです。
      本ツールはアップデータのNSPもダンプできるのでご活用ください。

    • 匿名 より:

      コメント欄などでアップデータのダンプができると書いてありますが、詳しい方法を教えて頂きたいです。

    • えむいー より:

      記事にしましたので、こちらをご参考ください。

  3. 匿名 より:

    本ツールを利用し、exefsをダンプしたところ、main という名前で、拡張子はなく、種類にファイルという名前でダンプされました。
    Ipswichのコードを開発してみたいのですが、そのmainは、main.nsoではないので、どのようにして.nsoへ変換するのか。というのを質問したいです。
    なにかご存知でしたら、ご回答よろしくお願いします。

    • えむいー より:

      そのmainがまさにmain.nsoです。
      ※拡張子が表示されていないだけで内部的にはNSOになっています。

  4. 匿名 より:

    アップデータはNSPとしてダンプすることは不可能ですか?

  5. 匿名 より:

    こちらの手順通りにカードリッジからnspのバックアップを作って、カートリッジ不要で起動してみたいのですが、

    Dump gamecard contentでnspファイルができたのですが、そのファイルをGoldleafやTinleafなどでnspから吸い出した本体のCFW Switchにいれようとすると、

    invalid nca signature detected
    やエラー2002-4518でsigpatchesが見つからない、またはバージョンが低いとでてしまいます。

    今回試しているのは4.0.1で動くようなカートリッジ(Nitendo labo)でCFWの本体は8.1.0のAMS0.105Eです。

    カートリッジ→nsp→CFW起動 については何かほかにも必要でしょうか?

    • えむいー より:

      CFWとしてatmosphereを使われているのであればこのCFWには海賊版対策として偽の証明書のNSPインストールをブロックする機能があるので正常です。
      ※たとえ自身が所有する正規カートリッジであったとしても、証明書も含めてダンプし、Ticketを本体にインストールしないとそうなります

      最も簡単な対策はnosigpatchをインストールしてCFWを一度再起動することです。
      現在公式のnosigpatchはレポジトリが削除されて非公開ですが、そのミラーを見つけたので(この記事を)加筆修正しました。

      ご助力になれば幸いです。

    • 匿名 より:

      追加記事ありがとうございます。
      手順通りにnosigpatchを追加いたしましたが、同じエラーで症状かわらずです。

      Tinfoilの記事も拝見いたしましたが、公式からNSPをおとしてきてインストールしようとしますが、やはり2002-4518エラーがでます。

      Kosmos_patches_04_10_2020_bootconfig_tinfoilv8+.zipからファイルを上書きして、
      hekate_ipl.iniにもkip1patch=nosigchkとなっているのですが他になにか考えられることなどありますでしょうか…?

    • えむいー より:

      うーん…他に考えられるのはKosmosの何かファイルが競合しているということでしょうか…
      可能であれば一度SDカードをフォーマットするなりでKosmosを削除するのが確実かと思います。

    • 匿名 より:

      ご確認ありがとうございます。
      Kosmos15.5を使用されて成功されておりましたので、こちらはv15.3でしたのでこのあたりいれかえてみたり、もう一度最初から環境組んだり試してみます。

      ちなみに最初に、

      「※たとえ自身が所有する正規カートリッジであったとしても、証明書も含めてダンプし、Ticketを本体にインストールしないとそうなります」

      とご教授いただきましたが、こちらの証明書を含めての段部やTicketを本体にインストールなどの手順などは記事にされていますでしょうか?
      こちらも試してみたいなとおもっております。

    • えむいー より:

      HACGUIやWAIN DUMPERでのTicketの保存方法はなんとなく知っている(記事にもあります)のですが、NXDumpToolでの使い方やTicket自体の仕組みについて理解が不十分なので勉強してから記事を書こうと思います。

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