
Contents
emuNANDとは
そもそもemuNANDが何かわからないとダメなので、まずはNANDについて説明しましょう。
NANDというのはまあ非常に大雑把に言えばデータを保存するための回路(チップ)のことです。
USBメモリやSSD(Optaneとかはまた3D Xpointというベツモノなのだが)、MicroSDなんかにも使われています。
CDやHDDなどは違いますが、安価に大容量で耐久性もそこそこあるNAND型のメモリはすごく普及しているんですね。
で、ニンテンドースイッチには当然ゲームをインストールしたり、オペレーティングシステムを保存しておくための記憶媒体が必要です。
そして、そこにNANDが使われているんですね。
ニンテンドースイッチで使われるNAND

ニンテンドースイッチの記憶域にはこれまたすごく大雑把に三つの分野が存在します。
一つはMicroSDで、これも記憶域の一つですが外部の記憶域(ニンテンドースイッチ本体のNANDではない)なのでノーカウントです。
実際には32GBのNANDに詰め込まれているSYSTEMとUSERの二つがメインです。
SYSTEM領域にはオペレーティングシステムなどの重要なデータが書き込まれており、ここが壊れるとニンテンドースイッチが起動しなくなります。
もう一つはUSER領域で、ここにはゲームのセーブデータやインストールしたアップデータや録画した動画・スクリーンショットなどが保存されています。
後者のほうが当然多くの容量を使用するので、ニンテンドースイッチはSYSTEM領域に約3GB、USER領域に約26GBを割り当てています。
「え、足しても32GBにならないって?」それが1024と1000の違いが積み重なった結果なのですよ…
1KB=1000Bで換算しているため計算上の32GBは実際には29GB弱になってしまう。
NANDは全てのデータを保存しているので、例えばNSP(ゲーム)をインストールしたりするとそのインストールしたという情報などがNANDに残ってしまいます。
これを、NANDが汚れるなどと言ったりします。
汚れたNANDは任天堂がその気になれば改造したかどうかをチェックできるので、NSPをインストールしたことがあるスイッチを修理に出すと「不正な改造を行った痕跡があるので修理できない」として修理してもらえないことがあります。
改造前にNANDのバックアップをおこなっていればきれいなNANDで上書きすることができますが、故障してのであればそもそもNANDの上書きができません、これは困りました。
NSPインストールはゲームカートリッジを切り替えなくて済むので便利なんです。
NSPはインストールしたいがNANDは汚したくない、という人のために考えられたのがEMUNANDでした。
emuNANDの仕組み
さて、ニンテンドースイッチは普段は以下のようにデータのやり取りを行っています。
起動時にSYTEMを読み込んでオペレーティングシステムを動かし、ゲームを起動するときはUSER領域からセーブデータを読み込んだりなどです。

しかしこれでは先程述べたようにNANDが汚れてしまいます。
そこで、偉い人は以下のような仕組みを考えました。

つまり、本来のNAND(SYSNANDと呼ばれる)にはアクセスせず、MicroSD内につくったNANDに対してアクセスするわけです。
NANDのコピーなんてできるの?と思うかもしれませんが、所詮は0と1のデータの集合なのでなんとかなります。賢い人、ほんとにすごい。
emuNANDの利点
- NSPをインストールしてもSYSNANDのUSER領域が汚れない
- SYSNANDとEMUNANDを切り換えることで改造状態と通常状態の切り替えが容易
- 故障してもSDカードを抜けば改造していないスイッチと原理的に区別がつかない
- SYSNANDを弄らないため、復旧不可能なブリック(ソフトウェア的な故障)に極めて陥りにくい
emuNANDの欠点
- NANDのコピーであるためSDカードの容量を30GBほど消費する
- 実際には全てを使うわけではないが、それでも20GBは使う
- 最低でも64GBのMicroSDが必要
- NANDに比べるとMicroSDの読み書きの速度は遅いのでパフォーマンスに影響がでる
パフォーマンスに影響がでるのは少々気になりますが、使ってみた感じは全然問題がありませんでした。
オススメの構築

EMUNANDを試そう!
hekate5.0.0から対応しているのですが、必要なものが全部揃ったパッケージツールのKosmosがhekate5.0.0を同梱しているのでそちらから利用するのがいいでしょう。
また、RCMからインジェクトするペイロードもhekate5.0.0である必要があるのでTegraRcmGUIも最新版のものを用意します。

さて、何やら今までの無機質な画面から現代的なフラットデザインの画面に切り替わった新しいデザインになりました。
おまけにタッチスクリーンにも対応しているのでかなり便利になりました。
eMMCの整合性チェック
eMMCのバックアップを行う前にOptionsから設定を変更しましょう。

設定項目 | 意味 |
Auto Boot | 自動でCFWが起動するようにする |
Boot Time Delay | 起動遅延をする 説明は長くなるが、設定しておいたほうが良い |
Auto NoGC | ヒューズチェックパッチ チェック入れておいたほうがいい |
Auto HOS Power Off | HOSでシャットダウンしたときに15秒後に再起動する |
Backlight | バックライトの明るさ設定 |
Data Verification | NANDの整合性チェック |
右下の “Data Verification(データ整合性チェック)” がOffになっていると流石にマズイので、”Sparse(ブロックチェック)” か “Full(バイナリチェック)” を選択しましょう。
オプション | 時間 |
Off | 9min |
Sparse | 15min |
Full(Slow) | 120min |
Full(Hashes) | 15 – 120min |
オプションによる所要時間の違いはだいたいこんな感じです。
Full(Slow)は以前のhekateで試したときにそのくらいかかったので、あれから高速化していたとしても少なくとも一時間くらいはかかるのではないでしょうか。
設定ができたら “Save Options” を押しましょう。
eMMCのバックアップ
まずは左上のToolsを選択して “Backup eMMC” を選択しましょう。
EMUNANDを試すだけであれば不要ですが、念のために “Dump Package1/2” もしておいた方が良いでしょう(こちらは2~3秒で終わります)
さて、あとは “Backup eMMC” を選択して待つだけです!!
emuMMCの作成
バックアップに成功したらホーム画面からemuMMCを選択しましょう!

最初はEnabled!と表示されているところがDisabledとなっていると思いますが、問題ありません。

まずは “Create emuMMC” を選択して、先程バックアップしたeMMCからemuMMCを作成します。
このとき、emuMMCの作成方法として “SD File” か “SD Partition” のどちらかが選べます。
両者の違いについて簡単にメモしておくので参考にしてください。
SD File
- SDカード直下にファイルを作成する
- ファイルがあるので編集が可能
- 最適化されたパーティションではないので動作が遅い
- と言っても気にならなかったが…
- emuMMC向けのFastFSで解決しそうな様子
- アプデを待っておくといいかも
SD Partition
- SDカードを一度フォーマットしてemuMMC用のパーティションを作成する
- フォーマットするのでデータは一度全部消える
- パーティションが最適化されているので高速
- 試そうとしたがエラーがでて使えず
- フォーマットがexFATではダメで、FAT32である必要があるかも
EMUNAND作成には十分くらいかかるのでおとなしく待ちましょう。
設定できたら “Change emuMMC” を選択して作成したemuMMCを選びます。
OKを押すと画面が一つ戻るのですが、”emuMMC Info & Selection” の項目がEnabled!になっているはずです。

EMUNANDの起動

さて、EMUNANDが作成できたらLauchを選択して起動するファイルを選びましょう。
SYSNANDはなるべく弄りたくないので起動しないほうが良いでしょう。
今回はCFW (EMUNAND) を起動しようと思います。
対するStockはOFW(改造されていない公式ファームウェア)を意味します。
ただ、どうもEMUNANDのStockは現在ブラックスクリーンのバグがある様子…
atmosphere 0.9.2で修正されたらしいですが、果たして?
インターネットに繋がらないようにしよう
CFWではいろいろいじって遊びたいのですが、どっちを起動しているのかわからないままオンラインに繋ぐとBANされてしまうので、絶対にインターネットに繋げないようにしましょう!
方法 | 簡便性 | 利便性 | 信頼性 |
ユーザアカウント削除 | ☆☆☆☆ | ☆☆☆☆☆ | ☆ |
端末初期化 | ☆☆☆ | ☆☆☆☆☆ | ☆☆ |
LanPlay | ☆☆☆ | ☆☆ | ☆☆☆☆☆ |
90DNS | ☆☆☆☆☆ | ☆☆☆☆☆ | ☆☆☆☆ |
別端末の購入 | ☆ | ☆☆☆☆ | ☆☆☆☆☆ |
ユーザアカウントを削除する
設定画面からユーザを選択して、アカウントごと削除してしまいましょう。


ただし、ぼく自身がリンクされたアカウントを持っていないのでこれはやっても大丈夫なのかという問題があります。
もしもリンクを削除すると本体固有IDとニンテンドーアカウントの紐付けが解除されたことが任天堂のサーバに伝わり、EMUNANDだけでなくSYSNANDの方でもリンクが外れたことになってしまう可能性があるためです。
リンクを外すときかユーザ削除のときにインターネット接続を促されるようであればキケンだと思ってください。
なので、この方法は検証不十分なためオススメしにくいです。
本体を初期化する
本体を初期化するとユーザデータも全て消えるので安心です。


が、これも同様にリンクが正しく外れるのかという問題が残ります。
それでも個別にリンクを外したりユーザを削除するよりは安心な気がしますね。
LanPlayを設定する
LanPlayのFakeInternetオプションを有効にしていると全てのニンテンドーネットワークへのアクセスができなくなるので安全です。
ただし、これをやるとFTP経由でファイル操作ができなくなるのでコード開発者の方などは不便かもしれません。
コードを使うだけのエンドユーザであればこの方法が一番確実かもしれませんね。
注意点としてはニンテンドースイッチは自動でインターネットに繋いでしまうので有線だけでなく全ての接続可能なネットワークに対してLanPlayの設定を行う必要があるということです。
例えば、普段有線を使っているので有線に対してはLanPlayの設定をしたとします。
普段使っている場合にはそれで問題ありませんが、スイッチをドックから外してしまうと無線でインターネットに繋がってしまいます。
そのため、無線で繋がるアクセスポイントに対してもLanPlayを設定しなくてはいけません。
90DNSを利用する
90DNSというのはニンテンドーへのアクセスをブロックしてくれるDNSのことです。

簡単に設定できてIPアドレスも変わらないのでこの方法は一番手軽かもしれません。
LanPlayと同じく、全ての接続可能なネットワークに対して設定を行う必要があるのでご注意ください。
Auto Bootを設定する
Kosmos Toolboxから設定できるのでやりましょう。

起動すると以下のような設定画面があると思いますが…

デフォルトでEMUNANDの方を起動するようにしておきます。
ここはStock(EMUNAND)でも構わないのですが、一度Stockで起動してしまうとまたPCと繋がないとCFWで起動できなくなってしまうのでCFWを設定しておくのが良いでしょう。
CFWを起動した状態からStockで起動するのは簡単にできます。

こうすることでうっかりCFW(SYSNAND)で起動してNANDを汚してしまう心配が軽減されます。
まとめ
EMUNANDの実装でちゃんと運用していればものすごくBANされにくい環境はできたと思います。
うちのスイッチはニンテンドーアカウントとリンクしていないので、結構適当な扱いをしていますが今のところBANされていませんね。
自身を天才と信じて疑わないマッドサイエンティスト。二つ上の姉は大英図書館特殊工作部勤務、額の十字架の疵は彼女につけられた。
コメント
はじめまして
わからないことがあったので、質問させてください
現在emuNANDを作成し、そこからCFWを立ち上げているのですが
emuNANDのバージョンがオフィシャルのより低い場合
ゲームのアップデートをすることは可能ですか?
なるべく最新のOFWとバージョンを合わせたほうがBANの確率は低くなるのでしょうか?
NSOには接続されない?ようなので大丈夫だとは思うのですがご教授いただけるとありがたいです
オフィシャルというのはOFW(またはStock)のことを指しているのでしょうか?
EmuNANDに90DNSを導入している場合ゲームのアップデートも含めて全てのニンテンドーとの通信がブロックされてしまうので、普通にアップデートすることはできません。
※ゲームのアップデート自体はCFWで行ってもBANされない可能性がありますが、推奨はできません
なので、EmuNAND側のゲームのアップデート方法としてはHACGUIを使ってアップデータをSDカード(またはSysNAND)から抜き出してNSP化し、それをEmuNANDにインストールするという形になります。
少々面倒ではあるのですが、この手順をやればほぼ確実にBANを避けることができると思います。