[2021年決定版] CFWにNSPをインストールしよう

CFW

NSPをダンプしよう

どうにもこうにも、まずはインストールするためのNSPを手に入れなければいけません。

NSPはゲームのカートリッジ、またはeShopからダウンロードしたダウンロード版ゲームや体験版やDLC、または配布されたアップデートなどが該当します。

NSPをゲームから抽出するにはHACGUINXDumpToolを使うのが基本的な手順となりますが、この際に署名付きでダンプしないとパッチをあてていないCFWではインストールができないので以下の手順を読んで正しく署名付きでNSPを作成するようにしてください。

HACGUIとNXDumpToolの使い方は上のリンク参照!

NSPの抽出の手順

以下の表がHACGUIとNXDumpToolの比較表です

HACGUINXDumpTool
カートリッジ版×
※署名にバグあり?
ダウンロード版
※制限あり

※オプションが必須
アップデータ
DLC

◯は署名付きで正しくダンプし、パッチをあてていないCFWでインストール可能なNSPが作成できることを意味しています。じゃあ気になる△はなんなのかということになるわけです。

NXDumpToolでカートリッジ版をダンプ

署名付きで正しくダンプしたつもりでも、スプラトゥーンの場合は何故か署名でエラーを吐かれてインストールすることができません。

カートリッジ版を無理やりダウンロード版のNSPとして扱っているのが良くない可能性があります。

HACGUIはそもそもカートリッジ版をダンプすることができないので、この問題は発生しません。

HACGUIでダウンロード版をダンプ

HACGUIでダウンロード版をダンプすると署名付きNSPができるのですが、この署名はpersonalized ticketと呼ばれるチケットでありダンプしたNANDでしか効果を発揮しません。

なので、例えばSysNANDでeShopからゲームをダウンロードし、それをEmuNANDにインストールしようとした場合は、一度でもEmuNAND側で本体の初期化などで内部IDが変わるような操作をしているとゲームが起動できなくなります。

よっって、このケースではHACGUIは実際には使い物にならないケースが多いです。

NXDumpToolでダウンロード版をダンプ

NXDumpToolにはダウンロード版のpersonalized ticketをcommon ticketに変換する機能が備わっています。

この署名変換機能があるおかげで、ダウンロード版のゲームをSigpatchなしに起動することができるようになります。

どのように設定すれば署名を切り替えられるかは以下の記事を読んでください。

非署名のNSPをインストールしたい

さて、ここまでを読めばわかると思うのですがどうもカートリッジ版から署名付きのNSPをダンプすることは難しいようです。以前はWEIN DUMPERと呼ばれるカートリッジからダンプする専用のアプリがあったのですが、libnxの更新に対応していないのか最新版のCFWでは動作しません。

また、自作アプリでもNROではなくNSPとして配布しているものがあり、それらは当然任天堂公式の署名がされていないのでインストールすることができません。

そこで、非署名のNSPをインストールする仕組みが考えられました。それが、Sigpatchです。

Sigpatch Updater

Release Sigpatch-Updater v0.1.3 - New Download URL · ITotalJustice/sigpatch-updater
What's new? New repo for hosting the patches. These are the same patches as before, just hosted in a way which is easier for me to manage (I don't have to par...

SigpatchをGitHubのリリースページから自動で取得してくれるアプリがあります。

それがこのSigpatch Updaterで、これ自体は既に更新が停止してしまっているのですが、パッチは更新されているので常に最新のパッチをあてることができます。

パッチはFWのバージョンとCFWのバージョン(より具体的にはatmosphereのバージョン)で動作するかしないかが決まってくるので、FWやCFW(またはDeepSea)などをアップデートした場合には、再度Sigpatch Updaterを起動して最新のパッチをあてるようにしてください。

当然ですが、リリース直後はそのFWやCFWに対するパッチに更新されていない場合もあります。

Sigpatch Updaterの使い方については以下のリンクを参考にどうぞ。

hekate_ipl.ini

Sigpatch UpdaterはSigpatchをダウンロードしてくれますが、有効化はしてくれないのでパッチを読み込むようにhekate_ipl.iniを更新する必要があります。

特に難しいことはなくて、以下のように書き換えればSigpatchを読み込んでくれます。

[config]
autoboot=0
autoboot_list=0
bootwait=3
verification=1
backlight=100
autohosoff=0
autonogc=1
updater2p=1
 
{DeepSea/DeepSea v1.9.4}
{}
{Discord: invite.sdshrekup.com}
{Github: https://github.com/orgs/Team-Neptune/}
{}
 
{--- Custom Firmware ---}
[CFW (EMUMMC)]
emummcforce=1
kip1patch=nosigchk
fss0=atmosphere/fusee-secondary.bin
atmosphere=1
logopath=bootloader/bootlogo.bmp
icon=bootloader/res/icon_payload.bmp
kip1=atmosphere/kips/*
{}
 
{--- Stock ---}
[Stock (SYSNAND)]
emummc_force_disable=1
fss0=atmosphere/fusee-secondary.bin
stock=1
icon=bootloader/res/icon_switch.bmp
{}

これはDeepSea 1.9.4向けのhekate_ipl.iniですが、他のバージョンでも(極端にhekateのバージョンが低くなければ)同じ書き方で動作すると思います。

まとめ

ここだけ読めばなんとかなるやろページが完成しました。

正直、Sigpatchってなんかいろいろ派生があってよく分かってないんですよね。

そういえばこの前海外ドキュメントを読み漁っていたらatmosphereから最新のSigpatchを作成するためのコマンドみたいなのも見た気がするんですが、履歴の彼方にとんでいってしまったのでわからなくなってしまいました。

ニンテンドースイッチ向けの自作アプリって今まで一度も作ったことがないのでチャレンジしてみたいんですが、どこかにチュートリアルとかありませんかね?

記事は以上。

コメント

  1. より:

    すみません。hekate_iniがなくてhekate_iplというものがあるのですが、何処かからiniをダウンロードしてくるのですか?説明下手でごめんなさい🙇‍♀️🙇‍♂️

  2. より:

    あ、なるほどhekate_iplがhekate_ipl.iniなんですね。ありがとうございます。

  3. オルステッド より:

    はじめまして。
    過去の記事も含めて参考にさせてもらっています。
    ありがとうございます。

    ずっと前にCFWの起動や吸出しなどして遊んでおりましたが、
    最近ローカル通信(マルチプレイ)で遊びたいと思い、してみたところ、どのソフトでも
    ルームの立ち上げが出来ません。(ネット関係ないですよね?)

    どうしても分からなかったので、再度一からしてみようとDeepseaでやり直して
    気が付いたのですが、Sigpach-updataも動きません。
    そもそもネットに繋いではいけないと思い、ネット設定一切しておりません。
    それではアップデート出来ないですよね?
    LANPLAYの項目を見させて頂きましたが、あれを設定すればよいのでしょうか?
    多分私が通信関連の根本を理解していないようなので、ご教示頂けると幸いです。

    • オルステッド より:

      この後ネットを徘徊して結局えむいーさんの「SwitchでBANされない方法」に
      辿り着きました。
      結論としては、アカウントもCFW用で適当ですし、特にネットワーク対戦や
      ゲームやシステムのアップデートするわけでもなければ、普通にネットつないで
      しまって良いという意味だと思いました。
      そして念の為、セカンダリーDNSを90DNSというのに書き換えてしまえば
      良いという考えで合ってますでしょうか?

      ちなみに今回の根本原因のローカル通信出来ないっていうのも、もしかして
      ネットワーク設定を全然してなかったというのに関係あるのでしょうか?

    • えむいー より:

      ローカル通信立ち上げであればインターネットは関係ありませんが、ldn_mitmと呼ばれるパッチが起動したままになっているとローカル通信もLanPlay通信になってしまうため、ローカルでのマッチングができなくなります。

      これは標準でKosmosやDeepSeaに同梱されているため、Toolboxを起動してオンになっていないか調べてみてはいかがでしょうか?
      ※ldn_mitm自体は、LanPlay通信に対応していないゲームを強制的にLanPlayで遊ぶためのパッチです

      Sigpatch updaterはインターネット通信を利用するので、ネットに繋がっていなければ利用できません。

      ここで少々ややこしい話になるのですが、実はCFWで「インターネット」に繋ぐのは問題がなく「ニンテンドーネットワーク」に繋ぐのが問題です。詳しい話は長くなるので省きますが「ニンテンドーネットワークへの接続」とは「eShopへのアクセス」を含む「接続時にニンテンドースイッチオンラインに加入済みのアカウントを要求される通信」のことです。

      なので、インターネット接続のうちニンテンドーネットワークへの通信だけをブロックしていればBANされることはありません。それを実現してくれるのが90DNS(SXOSでいうところのステルスモード)ですので、90DNSさえ正しく設定できればインターネットに繋ぐことは問題ありません。

      LanPlayは中継サーバを通して通信するというだけで、根本的なBAN対策にはなりません(–fake-internetを使ってニンテンドーネットワークへの通信をブロックすれば対策となります)
      いちいち設定するのも面倒ですので、90DNSで十分です。

      長くなりましたが、結論としてはEmuNAND側に90DNSを設定し、ニンテンドースイッチオンラインのアカウントと連携せずにいればほとんどBANされる心配はないということです。

    • えむいー より:

      > アカウントもCFW用で適当ですし、特にネットワーク対戦やゲームやシステムのアップデートするわけでもなければ、普通にネットつないでしまって良いという意味だと思いました。

      その認識で合っています。
      ニンテンドースイッチオンラインとの連携を行っているアカウントがなく、90DNSを設定しているのであればインターネットに繋ぐのは全く問題ありません。

      90DNSを設定しているとゲームのアップデートなどが行えないので「SysNANDでアップデータをダウンロードし、HACGUIでNSP化する」という一手間が増えますが、BANのリスクを最小限にするためには仕方のない出費なのかなという気もします。

  4. オルステッド より:

    ありがとうございます。
    とても詳しく、分かりやすい説明でした。

    私はldn_mitm関連の設定をすべてonにしてました。
    逆のことをしていたのですね(^^;)

    おかげ様でローカル通信や今までネット関連で更新を手動でなんとかしていたものが
    大分楽になりました。
    「CFWだからネットは危険」という見識しかなかったので今回とても勉強になりました。
    今後も参考にさせて頂きます。

  5. 匿名 より:

    こんばんは、Sigpatch updaterを使用してnspをインストールしたいのですが、
    BANされてしまった本体の為ネットに繋ぐ事ができません。
    この場合nspのインストールは諦めるしかないでしょうか?
    ご教示よろしくお願いします。

    • えむいー より:

      BANされていてもニンテンドーネットワークに繋げないだけですので、Sigpatch Updaterは使うことができます。

      また、Ticket付きのNSPであればそもそもSigpatchは不要です。
      ダンプする際はなるべくTicket付きで保存するのが良いかと思います。

  6. yyy より:

    コメント失礼いたします。nspまたはxciでインストール後に特定のゲーム(モンスターフ〇ームなど)のみ
    「ニンテンドーアカウントと連携してください。
    ニンテンドーアカウントと連携する
    やめる」
    と出てきて起動できないようになっております。このように出てきた場合どのように起動すればいいかわかりますでしょうか?

  7. マイルド より:

    はじめまして。

    sysを最新に更新してしまったのでemuでゲームカートリッジが読み込めなくて困っている者です。
    試行錯誤したりこちらの記事を読ませて頂いた結果ゲームをNSPとしてダンプ→インストールするしか無いと判断しました。
    今までの環境でもアップデートとDLCはNSPとしてインストールしておりましたので少しはわかる・・・と思うのですが(当サイトとは別のサイト様の方法でやっておりました)

    手順としては以下の感じでいいのでしょうか?
    1:sysでインターネット設定を削除
    2:CFWでsysを起動して「NXDumpTool」でカートリッジをダンプ
    3:emuを起動して「Goldleaf」でNSPをインストール

    • 匿名 より:

      失礼します。
      「NXDumpTool」でのNSPのダンプまでは出来たのですが、インストールが上手くいきません。

      「Goldleaf」「Awoo-Installer」「TinWoo」で複数のNSPで試しましたが全てエラー。
      アプレットでやってるのが原因な気はするのですが(アプレットは未対応という警告が出てきます)
      emuでゲームカードが起動出来ない状態なのでアプリとしての起動が出来ません・・・。
      お知恵を拝借したいです。

      環境はdeepsea-normal_v2.1.0、Goldleaf、Awoo-Installerは最新の物をダウンロードしています。

    • マイルド より:

      すみません、名前が消えていました。
      上の匿名は私です。

    • えむいー より:

      エラーとありますが、どんなエラーが表示されましたか?(これはGoldleafが最もわかりやすいです)

      2002-4518であればチケットレスダンプになっているのでSigpatchまたはTicket込みのダンプに切り替えるなどのエラーコードによって対応が変わってきます。

    • マイルド より:

      レス有難うございます。
      エラーは2005-0254でした。

    • えむいー より:

      調べてみたところ、大変珍しいエラーであるようです。

      どんなNSPをインストールしようとしても失敗しますか?

  8. マイルド より:

    追記です。
    折角なのでdeepsea環境にしようと思っているのですが、
    「hekate_ipl.ini」はこの記事の物のdeepseaのバージョンを変えればいいのでしょうか。
    この設定だとCFW (SYSNAND)が出来ない気がしますが。

    • えむいー より:

      > 手順としては以下の感じでいいのでしょうか?
      はい、あっています。

      hekate_ipl.iniの設定からCFW(SYSNAND)を消しているのは誤って起動するのを防ぐためで、今回のようにどうしてもCFWをSYSNANDで動かさなければいけない場合には有効化する必要があります。

    • マイルド より:

      えむいー様、レス有難うございます。
      今日大容量SDカードが届いたので早速挑戦してみようと思います。

  9. マイルド より:

    複数のゲームでbase、upd、dlcと試してみましたが全部エラーです。
    エラーの全文は↓です。
    error:2005-0254(0x1FC05)
    Module:Content manager(5)
    Description:Unknown or undocumented error(254)

  10. 匿名 より:

    また関係あるかわからないのですがemuを起動すると↓の注意書きが出ます。
    「ほかのNintendo Switch本体で使われているか、この本体を初期化する前に
    使っていたSDカードが差さっています。この本体で使うには、
    SDカードに保存されているNintendo Switchのデータを消去してください。」

    ↓の記事を元にSD PartitionでEmuNANDにdeepsea-normal_v2.1.0を導入しました。
    ttps://tkgstrator.work/?p=27136
    ChoiDujourNXを使った初期化では9.2.0を使いました。

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