# NandFiler

## 概要

NandFilerは本体NANDメモリ内のデータを操作するためのツールです。 写真データや、本体NANDメモリ内に保存されている各NANDアプリのセーブデータを 削除・閲覧・編集することができます。
また、SDカードを用いることによって、セーブデータをインポート/エクスポートすることができます。

## 実行

以下のいずれかの方法で実行することができます。

- IS-TWL-DEBUGGER ソフトウェアを使用して NandFiler.srl を実行する。
- IS-TWL-DEBUGGER ソフトウェアを使用して NandFiler.tad をインポート後、実行する。
- NandFiler.srl を DS カードに書き込んで実行する。
- TwlNmenu を使用して NandFiler.tad をインポート後、実行する。

IS-TWL-DEBUGGER ソフトウェアで実行する場合は 「しばらくお待ちください」と書かれたダイアログが表示され、 IS-TWL-DEBUGGER ソフトウェア上での操作はできなくなります。 終了する場合はダイアログ上の「強制中断」ボタンを押してください。

## モード

NandFilerでは、以下の3種類のモードが存在します。

- Filerモード…ディレクトリを辿って、ファイルサイズ、タイムスタンプ、属性を確認できます。
- Viewモード…ファイル内を閲覧できます。
- Editモード…ファイル内を編集できます。

## Filerモード

NandFilerを起動した直後は、「Filerモード」になっています。
「Filerモード」では、「写真データ・本体にインポート済みのNANDアプリのセーブデータ・SDカード」のいずれかを選択して、 そのディレクトリツリー内を閲覧・操作することができます。
SDカード内を閲覧する場合、SJISに変換できない文字コードで書かれたファイル名またはディレクトリ名は表示されません
以下の表で示す操作ができます。

ボタン | 操作
--- | ---
SELECT | 操作一覧の表示
←→ | 表示項目のページ切り替え
↑↓ | ファイル等の選択
A | 項目の決定
B | ・アーカイブ・ファイル選択のキャンセル ・親ディレクトリへの移動
X | ・アーカイブ・ファイルの選択時に サブメニューを開く

### タイトル選択

起動直後の状態です。画面左に、インストールされているNANDアプリのイニシャルコードと（青色）と、写真データとSDカードへの リンク（黄色）が表示されます。
イニシャルコードを選択した場合は画面中央の「アーカイブ選択」へ、写真データ・SDカードへのリンクを選択した場合は画面右の「ファイル選択」へ遷移します。 Xボタンのサブメニューでは次の操作を選択できます。

- Export…データのエクスポート
- Fill…photo 領域を埋める

#### Export

アプリケーションのセーブデータ領域、または「PHOTO」ディレクトリ内のファイルを、SDカードへコピーします。
SDカード上には、「イニシャルコード4桁_バージョン4桁」または「PHOTO」のディレクトリが 生成され、データがコピーされます。

#### Fill

「PHOTO」ディレクトリ内に写真データを書き込むことで、photo 領域の空き容量を 0 にします。
この処理で書き込まれた写真データは DSi カメラで閲覧することができません。
また、処理の完了までに数十秒かかりますのでご注意ください。

### アーカイブ選択

「タイトル選択」でイニシャルコードを選択した場合、ここに遷移します。 アーカイブ選択では、「Public」「Private」「SBanner」を選択できます。
それぞれ、「タイトル選択」で選択したNANDアプリの、「publicセーブデータ」「privateセーブデータ」「サブバナー」へのリンクとなっています。
Xボタンのサブメニューでは次の操作を選択できます。

- Backup…セーブデータのバックアップ
- Break…セーブデータ領域の破壊
- Format…セーブデータ領域またはサブバナーのフォーマット

但し、サブバナーのサブメニューには「Backup」「Break」の機能はありません。

#### Backup

SDカードにセーブデータをバックアップします。ここでバックアップしたデータは、 後述する「Restore」の操作でインポートが可能です。
前述の「Export」はファイル単位でSDカードにコピーするのに対して、 「Backup」はセーブデータ領域のファイルシステム全体をコピーする点が異なります。

#### Break

セーブデータのFATシステム領域を破壊します。セーブデータ領域が異常をきたしてFS_RESULT_BAD_FORMATが発生する状況を想定したデバッグに利用できます。
破壊したセーブデータ領域は、本ツール上で下記のいずれかの方法によって復旧できます。

- 「Break」の前に「Backup」を実行しておき、「Break」後に「Restore」を使う
- 「Format」を実行する(セーブデータ内のファイルは削除されます)
- TwlNmenuで該当アプリを再インポートする
- IS-TWL-DEBUGGER ソフトウェアを使用して再インポート
  [ファイル]-[開く]で「TAD」を選択し[インポートを制御する]オプションを使用してください。

アプリケーションが実行中に復旧するにはNA_FormatTitleArchiveをご使用ください。

#### Format

セーブデータやサブバナーを初期化します。
「Break」を使用してセーブデータやサブバナーが不正な状態になった場合にこれらを復旧することができます。

### ファイル選択

「タイトル選択」で「PHOTO」「SD」を選択した場合と、「アーカイブ選択」でいずれかのセーブデータを 選択した場合に、ここに遷移します。
「ファイル選択」では、ディレクトリ（黄色）とファイル（白）の一覧が表示されます。
ディレクトリを選択した状態でAボタンを押すと、そのディレクトリの中を閲覧することができます。
ファイルを選択した状態でAボタンを押すと、「Viewモード」へ移行します。
「ファイル選択」で、上画面に表示される情報の意味は次のとおりです。

Size | ファイルサイズ
CTime | ファイルが作成された日時
MTime | ファイルの最終更新日時
ATime | ファイルの最終アクセス日時

Attr

ファイルの属性
REA…リードオンリー
HID…隠しファイル
SYS…システムファイル
VOL…ボリュームラベル
PRO…プロテクト
ARC…アーカイブ

画面最下部 | 選択中のファイルのフルパス

Xボタンのサブメニューでは次の操作を選択できます。

- Import…セーブデータのインポート
- Delete…ファイル・ディレクトリの削除
- Restore…セーブデータの修復

#### Import

「Export」で作成したディレクトリに対して有効な操作です。 ただし、「PHOTO」をエクスポートした場合は、インポートできません。
本体NANDメモリ内のセーブデータ領域へデータをコピーします。 本体NANDメモリ内のセーブデータ領域のサイズを超えない限り、 「Export」したデータが改変されていてもインポートできます。

#### Delete

ファイルやディレクトリを削除します。ディレクトリが選択されている場合、 再帰的にディレクトリ内のファイル・ディレクトリを削除します。

#### Restore

「Backup」で作成したセーブデータのバックアップファイルに対してのみ有効な操作です。 SDカード上のバックアップファイルを、本体NANDメモリにインポートします。
下記の場合は、バックアップファイルのインポートに失敗しますのでご注意下さい。

- バックアップファイルが改変されている
- バックアップファイル名が変更されている
- 該当アプリが削除されている
- 該当アプリのセーブデータサイズが変更されている

## Viewモード

Viewモードではファイルの中を閲覧することができます。
上画面には、表示中のファイル名と表示アドレスが表示されます。
下画面には、ファイルの内容（バイナリ値と、対応するキャラクタ）が表示されます。

キャラクタは下記の仕様に沿ったものが表示されます。

- 0x00は0x20に置き換える（スペースに置き換える）
- 0x20〜0x7Aはアスキーコードに準拠
- その他の領域は平仮名とカタカナを表示（サンプルとして組み込んだフォント）

以下の表で示す操作ができます。

ボタン | 操作
--- | ---
←→ | ページ単位でスクロール
↑↓ | 行単位でスクロール
A | 「Editモード」へ移行
B | 「Filerモード」へ移行 「Editモード」でファイルが編集されている場合はファイルを保存する

## Editモード

「Editモード」ではファイルを編集することができます。
ただし、下記の制限がありますのでご注意下さい。

#### 編集時の制限事項

- ファイルサイズの変更には対応していません。
- 14M以上のサイズのファイルを編集中に、先頭付近と末尾付近を同時に編集すると、先に編集したほうの変更が反映されません。

### 非編集状態

「Editモード」移行時はこの状態です。

ボタン | 操作
--- | ---
←→↑↓ | カーソルの移動
A | 「編集状態」へ移行
B | 「Viewモード」へ移行

### 編集状態

ボタン | 操作
--- | ---
←→↑↓ | カーソルの移動
B | 「非編集状態」へ移行
L,R | 値の増減

「編集状態」で、「L,Rボタン」を押すことによって、カーソルの指す位置の値を変更することができます。
一度でも変更した箇所は、緑色で表示されます。
「編集状態」でも自由にカーソルを動かせますが、「非編集状態」に比べて横方向の移動幅が減少します。
編集結果を保存するには「Viewモード」で「Bボタン」を押したときに表示される選択肢で「Yes」を選択してください。

## 場所

`$TwlSDK/bin/ARM9-TS/Rom/NandFiler.srl
$TwlSDK/bin/ARM9-TS/Rom/NandFiler.tad`

## 参照

## 履歴

2009/12/25 photo 領域を埋める機能を追加
2009/11/30 アーカイブ選択の「Delete」「Size0」機能を削除。これらのエラーは対応する必要がなくなりました。
2009/05/20 SDカード内のSJIS以外のファイル名の非表示、アーカイブ選択のサブバナー、「Delete」「Size0」「Format」機能を追記
2009/02/18 「Break」機能とFS_RESULT_BAD_FORMATの関連を追記
2008/01/13 「Import」「Export」機能について追記
2008/12/08 編集時の制限事項を追記
2008/11/26 スクリーンショットの追加と操作の変更に追従
2008/10/21 「Backup」「Restore」機能について追記
2008/09/16 「Break」機能について追記
2008/07/18 「場所」の変更 Release → Rom
2008/07/14 用語の変更
2008/07/07 初版作成