# TwlNmenu

## 概要

`TwlNmenu` は、TWL 本体内の NAND アプリを管理する TWL アプリケーションです。 SD カードまたは DS カード上の tad ファイルから NAND アプリを TWL 本体へインストールしたり、 TWL 本体内の NAND アプリを 起動 / 削除 することができます。

## 実行

###

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

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

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

## DS カードへの tad の格納

「Card」モードでは DS カードに格納された tad ファイルから NAND アプリのインポートを行うことができます。 このときに使用する DS カードの用意の方法について説明します。

2 通りの方法があります。

##### maketad の -n オプションを使用する

maketad は tad を作成するツールですが、-n オプションを追加すると、 tad の代わりに tad を内包した SRL を作成します。 この機能を使用して作成した SRL を DS カードに書き込むことで 内包されている tad を「Card」モードから参照できます。

##### 独自に SRL を作成する

以下の条件を満たす SRL を作成し、DS カードに書き込むことで SRL の ROM-FS に含まれる tad を「Card」モードで参照できます。

- NITRO ROM である。
- 会社コードが「YZ」である。

## 操作方法

TwlNmenu では上画面に簡易操作説明や選択されているファイルの情報などを表示し、 下画面でリストの表示/選択など行います。 基本的には英語で表示されますが、本体の言語が日本語になっている場合 （＝リージョンが日本の場合）は一部のメッセージが日本語で表示されます。
TwlNmenu は「NAND」「SD」「Card」の3つのモードに分かれています。 ただし TwlNmenu をカードアプリとして起動した場合は「Card」モードはありません。 各モードは下画面上部の灰色の箇所をタッチするか、 十字ボタン左右で切り替わります。

#### 「NAND」モード

「NAND」モードでは下画面に TWL 本体にインストールされている NAND アプリの一覧が表示されます。
このモードでは選択した NAND アプリの起動 / 削除を行うことができます。

下画面に表示されるリストの各行は以下のようなフォーマットで各 NAND アプリごとに表示されます。

    03. 01 4BNA (3031 34424e41) Ver.1.0
        -- ----  ---- --------      ---
        1  2     3    4             5

1. 会社コード（ASCII）
2. イニシャルコード（ASCII）
3. 会社コード（16進）
4. イニシャルコード（16進）
5. NAND アプリバージョン

リスト上で文字色が水色で右端に deleted と表示された NAND アプリは削除された NAND アプリであることを示します。
リスト上で文字色が赤色で右端に error と表示された NAND アプリは不正な状態の NAND アプリであることを示します。 一旦削除したのち再インポートしてください。

このモードでは以下の表のような操作ができます。

ボタン | 操作
--- | ---
←→ | モードの切り替え
↑↓ | NAND アプリの選択。
START | 選択されている NAND アプリを起動
Y | 選択されている NAND アプリの private セーブデータをクリア
X | 選択されている NAND アプリを削除
R + X | 選択されている NAND アプリと同種の NAND アプリを削除
L | 上画面を次のページへ
SELECT | 操作説明の表示/非表示切り替え

上画面に表示される情報は以下のとおりです。

１ページ目

項目 | 説明
--- | ---
Hardware | TWL 本体に関する情報を表示します。
| BoxCount | 「used」はインストールされている NAND アプリの数を、 「free」はインストールできる NAND アプリの数を表示します。
Media | 本体内蔵メモリに関する情報を表示します。
| Free | 空き容量をブロック単位と KB 単位で表示します。
Total | 総容量をブロック単位と KB 単位で表示します。

２ページ目

項目 | 説明
--- | ---
Title | 選択されている NAND アプリに関する情報を表示します。
| CompanyCode | 会社コードを ASCII と 16 進数で表示します。
InitialCode | イニシャルコードを ASCII と 16 進数で表示します。
GameVersion | ゲームバージョンを表示します。
TitleSize | NAND アプリの占有サイズをブロック単位と KB 単位で表示します。
AppSize | SRL のサイズをブロック単位と KB 単位で表示します。
PublicSave | public セーブデータのサイズをブロック単位と KB 単位で表示します。
PrivateSave | private セーブデータのサイズをブロック単位と KB 単位で表示します。
SubBanner | サブバナーのサイズをブロック単位と KB 単位で表示します。 サブバナーを設定した場合は16KBの固定サイズ、設定していない場合は0KBと表示されます。

NANDアプリの占有サイズであるTitleSize は以下の計算式で算出されます。
表示されているブロック数の合計ではなく、バイト単位で合計した後にブロック数に換算した値になります。

    NANDアプリの占有サイズ(KB) = SRL のサイズ(KB)を16KBで切り上げた値 +
                               public セーブデータのサイズ(KB) +
                               private セーブデータのサイズ(KB) +
                               サブバナーのサイズ(KB) +
                               16KB
    NANDアプリの占有サイズ(ブロック) = NANDアプリの占有サイズ(KB)を128KBで切り上げた値

##### NAND アプリの起動

NAND アプリの起動は選択されている NAND アプリを実行します。 NAND アプリが起動されると完全に TwlNmenu の制御を離れますので、 TwlNmenu に戻ってくるには再度 TwlNmenu を実行しなければいけません。

##### NAND アプリの削除

NAND アプリの削除は選択されている NAND アプリを NAND からアンインストールします。 NAND アプリを削除しても NAND アプリがインストールされたことがあるという情報が TWL 本体内に残ります。 この状態では下画面のリストに水色でイニシャルコードのみが表示されます。 さらにこの状態で「削除」を行うと完全に削除することができます。

##### NAND アプリの private セーブデータをクリア

選択されている NAND アプリの private セーブデータ内データを全て消去します。
TWL システムではユーザが NAND アプリを SD カードにバックアップする機能が提供されますが、 private セーブデータはこの時にバックアップされないセーブデータ領域です。 private セーブデータはバックアップされないためバックアップから 本体保存メモリに書き戻した時にはクリアされた状態となります。 そのため各 NAND アプリは private セーブデータだけがクリアされるケースを考慮する必要があります。
TwlNmenu で private セーブデータをクリアすることでこの状況を作り出すことができます。

##### 同種の NAND アプリを削除

同種の NAND アプリを削除では 「削除された NAND アプリかどうか」 という観点から見て選択されている NAND アプリと同じ NAND アプリを全て削除します。 例えば、削除されていない NAND アプリを選択した状態で行うと、 削除されていない NAND アプリを全て削除します。

#### 「SD」モード
「Card」モード

「SD」モードおよび「Card」モードでは下画面に SD カード/ DS カード内に入っているファイルが表示されます。
このモードでは tad ファイルのインポートを行うことができます。
SJISに変換できない文字コードで書かれたファイル名またはディレクトリ名は表示されません

なお「Card」モードは NAND アプリとして TwlNmenu を起動したときにのみ使用できます。 また、DS カードは TwlNmenu を起動する前にカードスロットに挿しておく必要があります。 TwlNmenu 起動後に DS カードを挿しても認識しません。

下画面に表示されるリストの各行は以下のようなフォーマットで各 NAND アプリごとに表示されます。

    05. 866,240  backupSample.tad
        -------  ----------------
        1        2

1. ファイルサイズまたはディレクトリ内の tad ファイル数
2. ファイル名またはディレクトリ名

このモードでは以下の表のような操作ができます。

ボタン | 操作
--- | ---
←→ | モードの切り替え。
↑↓ | ファイルまたはディレクトリの選択。
A | tad ファイルが選択されている場合は tad ファイルをインポート ディレクトリが選択されている場合はそのディレクトリへ移動
B | 一つ上のディレクトリへ移動
X | ルートディレクトリへ移動。
R + A | ディレクトリ内の全ての tad ファイルをインポート
L | 上画面を次のページへ
SELECT | 操作説明の表示/非表示切り替え

上画面に表示される情報は以下のとおりです。

１ページ目

項目 | 説明
--- | ---
Hardware | TWL 本体に関する情報を表示します。
| BoxCount | 「used」はインストールされている NAND アプリの数を、 「free」はインストールできる NAND アプリの数を表示します。
Media | メディアに関する情報を表示します。「Card」モードでは常に 0 です。
| Free | 空き容量をブロック単位と KB 単位で表示します。
Total | 総容量をブロック単位と KB 単位で表示します。

２ページ目

File | 選択されているファイルに関する情報を表示します。
| CompanyCode | 会社コードを ASCII と 16 進数で表示します。
InitialCode | イニシャルコードを ASCII と 16 進数で表示します。
GameVersion | ゲームバージョンおよび本体内蔵メモリにインポートされているバージョンを表示します。
FileName | ファイル名を表示します。
LastUpdate | SD カード上での最終更新日を表示します。「Card」モードでは常に 0 です。

##### tad ファイルのインポート

maketad で作成した tad ファイルを TWL 本体にインストールします。 既に同じイニシャルコードの NAND アプリがインストールされている場合は上書きします。
public セーブデータ領域のサイズ、 private セーブデータ領域のサイズ、サブバナーの有無のいずれかが変更された場合は セーブデータが初期化されます。

##### TwlNmenu 、NandFiler のインポート

$TwlSDK/bin/ARM9-TS/Rom 以下にありますTwlNmenu.tad 、NandFiler.tad をインポートした場合、 以下のようなエラーが表示される場合があります。

    Failed to import ****.tad.
    The data may be corrupt. (-1022)

この場合は、もう一度インポートすることで正常にインストールすることが可能です。

## 場所

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

## 参照

## 履歴

2009/08/20 セーブデータの初期化に関する注意を追加
2009/05/27 TwlNmenu.tad、NandFiler.tadのインポートについて注意を追加
2009/05/22 「NAND」モードにSubBanner を追加。TitleSize の計算方法を追加
2009/04/30 SD モード時のファイル名、ディレクトリ名の注意を追加
2008/10/16 Card モード関連を追加、日本語表示について記述
2008/07/11 TwlNmenu の更新に対応
2008/04/25 ROM モード / バックアップ / リストアを削除。
2008/03/19 用語集への準拠。表現の調整。
2007/12/20 初版作成