『ポケットモンスター ソード・シールド』のSDカード内データ破損は、microSDカードのフォーマット形式が関係か。ユーザーが指摘し予防策を提案
Nintendo Switch向けに11月15日に発売された『ポケットモンスター ソード・シールド』にて、一部のプレイヤーから、エラーの発生による起動中のゲームの強制終了と、microSDカード内に保存されたデータの消失が報告されている(関連記事)。この件について、Nintendo SwitchのカスタムファームウェアAtmosphèreの開発者SciresM氏が、その原因を探りTwitter上で報告している。結論からいえば、データ破損についてはmicroSDカードのフォーマットが関連しているのではないかと指摘している。
【UPDATE2 2019/11/18 12:15】
タイトルを「『ポケットモンスター ソード・シールド』のエラー落ちは、microSDカードのフォーマット形式が関係か。ユーザーが指摘し予防策を提案」から「『ポケットモンスター ソード・シールド』のSDカード内データ破損は、microSDカードのフォーマット形式が関係か。ユーザーが指摘し予防策を提案」へと変更。本文も、フォーマット関連のトピックがデータ破損に関してのものであるとわかるように修正しました。
So, let's talk the Swish crash/data deletion issue.
Crash report for that issue: https://t.co/1I4O37VcFY
The error code in question is "Software timeout in NAND access", and it's observed by the BCAT system module.
— Michael (@SciresM) November 15, 2019
まず、カスタムファームウェアAtmosphèreとは、Nintendo Switch本体に手を入れて自作アプリなどを起動できるようにするためのもの。本来は不正なものであるが、本稿ではその是非ではなく、氏の発言にフォーカスを当てたい。Atmosphèreでは何かエラーが発生した際にはクラッシュレポートを生成する仕組みになっており、SciresM氏は『ポケットモンスター ソード・シールド』での問題のエラーについてのクラッシュレポートを公開している。そのエラーコードの内容は「Software timeout in NAND access」を示しているという。
このNAND(フラッシュメモリ)へのアクセス中のタイムアウトエラーが発生すると、Nintendo SwitchのSDMMCドライバは修復を試みようとさまざまな状態をリセットさせる。これにより、SDMMCドライバが扱うほかの部分にも混乱が生じ、Nintendo SwitchのexFATドライバが正しく機能しなくなっているのではないかとSciresM氏は指摘する。
The error code the JP streamer saw as a result of the crash, on another note, was 2002-4690.
This is part of fs::ResultFatFileSystemCorrupted(), and in particular "The SD card FAT is in an invalid format".
Pretty conclusive — the OS is explicitly reporting SD FAT corruption.
— Michael (@SciresM) November 15, 2019
また、今回の問題に遭遇した日本人実況配信者のNintendo Switchに表示されたエラーコードが「2002-4690」だったことにも注目。これはFATファイルシステムの破損を意味し、特にmicroSDカードが無効なフォーマットにある状態を指しているとして、Nintendo SwitchのOS側も上述の問題を明確に示しているとコメント。このことからSciresM氏は、当面はmicroSDカードにはexFAT形式を使用しないよう勧めている。
exFATとは、microSDカードなどのストレージをフォーマットする際のファイルシステム形式のひとつ。Nintendo Switch本体でフォーマットをおこなった場合、64GB以上のmicroSDカードはexFAT形式で、32GB以下であればFAT32形式でフォーマットされるようだ。またSciresM氏によると、セーブデータが保存されるNintendo Switch本体内蔵メモリはFAT32形式とのことで、セーブデータは今回の問題の影響は受けていないとされる。なおSDカードリーダーなど接続環境があれば、PCにて任意の形式にmicroSDカードをフォーマットすることができる。
Another clarification — the crash in question may well not actually be Gamefreak's fault. The underlying error is an OS one (a NAND read is failing).
Pokemon may be triggering it because its access patterns might be bad, but that's not for sure.
— Michael (@SciresM) November 15, 2019
SciresM氏は、今回の問題の原因についてははっきりしないとしながら、もし『ポケットモンスター ソード・シールド』のNANDメモリ(セーブデータ)へのアクセスパターンが特殊であるために今回の問題が引き起こされていたとしても、開発元ゲームフリークのミスとは必ずしも言えないだろうとしている。任天堂は、ゲームソフトが問題なく動作するかどうかの適合性評価ロットチェックをおこなっており、本作はこれを通過して発売されたから、というのがその理由だ。
本作の挙動が仕様に照らして問題なしと判断されていたのであれば、問題の根源はNintendo SwitchのOS側にあり、ゲーム側のアップデートによりエラーの発生の軽減はできたとしても、完全な解決はexFATドライバの更新などシステムアップデートを待つ必要があるかもしれないと述べている。
Redditなどコミュニティでも、データ破損はexFATドライバに問題が起因しているという見方が一致しており、エラー落ちに関するスレッドのFAQでは「(セーブデータを含む)本体データには影響しない」「DL版でもパッケージ版でも起こり得る」「改造本体/非改造両方で起こり得る」「オートセーブを切っても起こり得る」「回避するにはFAT32でのフォートマットを推奨」といった文言が確認できる。
もっとも、SciresM氏の解析が今回の問題を正しく指摘しているかどうかは何とも言えない。microSDカードをexFAT形式以外でフォーマットする案も提示されているが、バックアップなども必要で、フォートマット形式を変えたからといってデータ破損を完全に回避できるとは限らない。プレイヤーの方は任天堂・ゲームフリークによる正式な対応を待つ方が良いだろう。