Categories: switch任天堂

【実録】SwitchのCFW更新でエラー連発!起動不能からSys-Patch導入で復旧するまでの全記録

実体験・トラブル解決記録

Nintendo Switch / Atmosphère / Hekate

Nintendo SwitchのCFW環境を更新したところ、次から次へとエラーが発生。

最初はemuMMCが正常に起動せず、ようやく起動できたと思ったら、今度はWi-Fi接続でクラッシュ。さらにHomebrew MenuやDBI、インストール済みゲームまで起動しなくなるというトラブルに遭遇しました。

最終的には、ネットワーク遮断設定の見直し、DBIの更新、Sys-Patchの導入によって、主要な問題を解消できました。

今回は、その復旧までの過程を、実際に発生したエラーや設定内容とともに紹介します。

今回の環境

項目バージョン
本体初代Nintendo Switch
sysMMC23.0.0
emuMMC22.5.0
Atmosphère1.11.2
Hekate6.5.3
SDカードパーティション方式emuMMC

※この記事は筆者の環境での復旧記録です。別のファームウェアやCFWの組み合わせで同じ結果になるとは限りません。

1. CFW更新後、Hekateでエラー発生

最初に発生したのは、HekateからAtmosphèreを起動する際のエラーでした。

起動エラー

Failed to apply 'nosigchk'!

Hekateが指定された署名チェック用パッチを適用できなかったことを示すエラー。

当時の hekate_ipl.ini には、以下の設定がありました。

[Atmosphere (EmuNAND)]
fss0=atmosphere/package3
kip1patch=nosigchk
atmosphere=1
emummcforce=1
icon=bootloader/res/icon_payload.bmp
{}

原因を切り分けるため、次の1行を削除しました。

kip1patch=nosigchk

すると、Hekateのパッチ適用エラーを回避して、emuMMCを起動できるようになりました。

しかし、これで終わりではありませんでした。

2. 起動直後にエラー2123-0011が発生

ネットワーク関連のエラー

2123-0011

HOMEメニューまで起動できても、しばらくするとエラーが発生する状態になりました。

そこで、起動直後に機内モードを有効にしてみました。

すると、エラーが発生しなくなったのです。

さらに、次のように条件を変えて検証しました。

検証条件結果
機内モードON正常動作
機内モードOFF・Wi-Fi接続ありエラー発生
Wi-FiルーターOFF・機内モードOFF正常動作

この結果から、Wi-Fi接続後の通信処理がエラー発生の引き金になっている可能性が高いと考えました。

exosphere.iniの設定を確認

当時の設定は以下のとおりです。

[exosphere]
blank_prodinfo_sysmmc=1
blank_prodinfo_emummc=1

これは本体固有の識別情報を隠す設定です。

ネットワーク関連のエラーとの関係を疑いましたが、今回はこの設定を変更せず、通信先の制御を確認することにしました。

emuMMC専用のhostsファイルを追加

SDカードの以下の場所を確認しました。

F:\atmosphere\hosts\

当初は default.txt のみ存在していました。

そこで、emuMMC専用の emummc.txt を作成し、任天堂関連サーバーへの通信を制限する設定を追加しました。

設定ファイルの配置例

F:\atmosphere\hosts\
    ├── default.txt
    └── emummc.txt

実際の設定は使用するAtmosphèreのバージョンやネットワーク構成に合わせて確認が必要です。

この変更後、Wi-Fiに接続してもエラー2123-0011が発生しなくなりました。

ただし、通信先を遮断したことでエラーを回避できたのであり、ネットワーク処理の根本的な問題が修正されたと確認できたわけではありません。

3. 今度はHomebrewからDBIを起動するとクラッシュ

ネットワーク関連のエラーを回避できたため、次にHomebrew MenuからDBIを起動しました。

しかし、今度はAtmosphèreのクラッシュ画面が表示されました。

Atmosphère Fatal Error

2168-0002

Program ID: 010000000000100Dアルバム経由でDBIを起動した際に発生。

当初はApplet Modeのメモリ制限や、Homebrewの実行環境を疑いました。

しかし、実際にDBIのNROファイルを更新したところ、正常に起動するようになりました。

今回の環境では、古いDBIと現在の実行環境との互換性が問題だった可能性があります。

DBIを更新する際の注意

DBIの配布ページから新しいNROファイルを入手し、既存ファイルをバックアップしてから置き換えました。DBIの配布ページ 

更新後はDBIが起動しましたが、表示言語がロシア語になっていたため、日本語翻訳対応版も確認しました。

DBIの更新によってHomebrewの問題は解消しましたが、まだインストール済みゲームが起動しない問題が残っていました。

4. ゲームカードは動くのに、インストール済みゲームが起動しない

今回、特に苦労したのがこの問題です。

ゲームカードを本体に差し込んだ場合は正常に起動するのに、DBIでNSP・XCIファイルからインストールしたゲームは起動できませんでした。

ゲーム起動エラー

ソフトを起動できませんでした。

HOMEメニューからもう一度おためしください。

最初に疑ったのは、署名チェック用パッチの問題です。

以前削除した kip1patch=nosigchk を再び追加してみましたが、Hekateで同じパッチ適用エラーが発生しました。

つまり、当時のパッチ構成では正常に適用できないことが再確認できました。

そこで、SigpatchesとSys-Patchについて調べ直すことにしました。

5. SigpatchesとSys-Patchの違い

Sigpatches

あらかじめ用意されたパッチデータを、HekateやAtmosphèreの起動処理などで適用する方式です。

対象のファームウェアやシステムモジュールの変更によって、既存のパッチが適用できなくなる場合があります。

Sys-Patch

Atmosphère上で動作するsysmoduleとして、対象コードを検索し、対応するパッチを適用する方式です。

従来の固定パッチとは異なる仕組みですが、すべてのファームウェア更新に自動対応するわけではありません。

比較項目SigpatchesSys-Patch
方式パッチファイルを適用sysmoduleが対象コードを検索して適用
更新時対応パッチが必要になる場合があるSys-Patch本体の更新が必要になる場合がある
Hekateのnosigchk設定構成によって使用通常は不要
適用状態の確認使用する構成による対応オーバーレイから確認可能

この違いを理解したうえで、Sys-Patchの導入を試すことにしました。

6. GBAtempで見つけた重要な情報

調査中に参考になったのが、GBAtempのSigpatches関連スレッドです。GBAtemp:Sigpatches for Atmosphere / Hekate 

そこでは、FW 22.5.0とAtmosphère 1.11.2の組み合わせで、ゲームが正常に起動しないという報告がありました。

ある投稿者は、Atmosphèreの公式リリース後に追加されたzstd-zbic関連のLoader修正が関係している可能性を指摘していました。

さらに、修正後のmasterブランチからAtmosphèreをビルドすることで、ゲームが正常に動作したと報告しています。

投稿者が動作を確認した構成は次のとおりです。

項目構成
Firmware22.5.0
Atmosphère1.11.2以降のmasterビルド
Sys-Patch1.6.2.3
Hekate6.5.3

この報告から、ゲーム起動の問題には、パッチの不整合だけでなくAtmosphèreのLoader側の問題が関係する場合もあると分かりました。

ただし、今回の自分の環境では、Atmosphère本体を再ビルドせずにSys-Patchの導入を試しました。

7. Sys-Patchを導入した結果、ゲーム起動に成功!

今回の環境では、Sys-Patchを導入したところ、これまで起動できなかったインストール済みゲームが正常に起動するようになりました。

復旧成功

ゲーム起動OK!

Sys-Patch導入後、インストール済みゲームの起動を確認。

Atmosphère 1.11.2 / Hekate 6.5.3 / emuMMC 22.5.0

今回の結果から、ゲーム起動失敗には、従来の署名チェック用パッチの不足または不整合が関係していた可能性が高いと考えています。

ただし、Sys-Patchの導入によってゲームが起動したという結果だけでは、以前のパッチファイルのどの部分に問題があったのかまでは特定できません。

また、GBAtempで報告されていたLoader側の問題が、今回の環境でも発生していたかどうかは未確認です。

8. 最終的な復旧結果

今回の作業で、次のような結果になりました。

トラブル対応結果
Hekateのnosigchkエラー該当設定を削除して回避
エラー2123-0011emuMMC専用の通信制御設定で回避
Homebrew Menu起動成功
DBIのクラッシュDBI更新で解消
ゲームカードの起動正常
インストール済みゲームSys-Patch導入後に起動成功

今回、sysMMCのファームウェアを変更したり、emuMMCを作り直したりすることなく、主要な問題を解消できました。

9. 今回のトラブルから学んだこと

今回の経験で特に重要だと感じたのは、CFW更新時に複数の問題が同時に発生しても、必ずしも原因が一つとは限らないということです。

Hekateのパッチ適用エラー、ネットワーク接続時のクラッシュ、DBIの起動失敗、ゲームの起動失敗は、それぞれ別の対処によって改善しました。

また、CFWを更新する際は、AtmosphèreやHekateだけでなく、Homebrewアプリや追加sysmoduleの対応状況も確認する必要があります。

今回のようなトラブルに備えて、正常動作しているSDカードの内容と、パーティション方式emuMMCのバックアップを保存しておくことも重要です。

なお、SDカードのファイルをコピーするだけでは、パーティション方式emuMMCの全データをバックアップできるとは限りません。必要に応じて、emuMMCパーティション自体のバックアップも取得しておきましょう。

まとめ

今回のSwitchのCFW更新は、想像以上に苦労しました。

最初はHekateの起動エラーから始まり、ネットワーク接続時のクラッシュ、DBIの起動失敗、ゲームの起動失敗と、次々に問題が発生しました。

しかし、一つずつ原因を切り分けていくことで、最終的にゲームを起動できる状態まで復旧できました。

同じようにCFW更新後のトラブルで困っている方は、いきなりSDカードを初期化したり、emuMMCを作り直したりする前に、エラーが発生する条件や各ソフトの対応状況を確認してみてください。

※本記事は個人環境での検証記録です。非公式ソフトウェアの導入や本体の改造には、データ破損、動作不良、オンラインサービスの利用制限などのリスクがあります。作業前に重要なデータをバックアップしてください。

あざらし

あざらしです🦭 ゲーム好きが高じて、遊んだゲームや機材の「正直な感想」を残すためにブログを書いています。 Switch・PS・レトロゲーム系が特に好物。 良いところも微妙なところも、実体験ベースで書くのがモットーです。 お気軽にお問い合わせください。