FS Demos

# ROM ファイルシステム(FS)サンプルデモ

## 場所

`$TwlSDK/build/demos/fs`

## コンパイル方法

`$TwlSDK/build/demos/fs`ディレクトリに移り、

> `% make`

と入力します。コンパイルが始まり、実行ファイルである `.srl` ファイルやバイナリ情報を記述した `.nef` または `.tef` ファイルが、

> `$TwlSDK/build/demos/fs/(サンプル名)/bin/(プラットフォーム)/(ターゲット)/`

の下に生成されます。例えば、

> `$TwlSDK/build/demos/fs/overlay/bin/ARM9-TS/Release/main.srl`

が `overlay` デモの実行ファイルとなります。

FS は他の多くのデモと異なり、`makerom` の使用が必須となっていますので、`elftobin` を使ったビルド(`make TWL_ELFTOBIN=TRUE`)はできません。

## 実行方法

### NITRO ROM の場合

Ensata エミュレータを用いる場合

- ensata で `*.nef`, `*.srl` を実行する。

IS-NITRO-DEBUGGER を用いる場合

- IS-NITRO-DEBUGGER で `*.nlf` ファイルを読みこんで実行する。
- IS-NITRO-DEBUGGER で `*.srl` を実行する。
- コマンドラインから `loadrun.exe` で IS-NITRO-DEBUGGER で `*.srl` を実行する。

IS-TWL-DEBUGGER を用いる場合

- IS-TWL-DEBUGGER で `*.nlf` ファイルを読みこんで実行する。
- IS-TWL-DEBUGGER で `*.srl` を実行する。
- コマンドラインから `loadrun.TWL.exe` で IS-TWL-DEBUGGER で `*.srl` を実行する。

### TWL/NITRO HYBRID ROM の場合

IS-NITRO-DEBUGGER を用いる場合

- IS-NITRO-DEBUGGER で `*.srl` を実行する。
- コマンドラインから `loadrun.exe` で IS-NITRO-DEBUGGER で `*.srl` を実行する。

IS-TWL-DEBUGGER を用いる場合

- IS-TWL-DEBUGGER で `*.tlf` ファイルを読みこんで実行する。
- IS-TWL-DEBUGGER で `*.srl` を実行する。
- コマンドラインから `loadrun.TWL.exe` で IS-TWL-DEBUGGER で `*.srl` を実行する。

### TWL LIMITED ROM の場合

IS-TWL-DEBUGGER を用いる場合

- IS-TWL-DEBUGGER で `*.tlf` ファイルを読みこんで実行する。
- IS-TWL-DEBUGGER で `*.srl` を実行する。
- コマンドラインから `loadrun.TWL.exe` で IS-TWL-DEBUGGER で `*.srl` を実行する。

## 説明

デモ名 | ディレクトリ | 動作
--- | --- | ---
`file-1` | `demos` | FS を利用するために必要なプログラム構成の、ごく簡単な雛形です。
`file-2` | `demos` | ディレクトリとファイルを組み込み、プログラム内で読み出します。
`file-3` | `demos` | FS_CreateFileFromMemory() とFS_CreateFileFromRom() の動作をテストします。
`async` | `demos` | 各スレッド内で同期リードを繰り返すサンプルです。 実行されている環境が非同期動作に対応している場合は、 ブロッキング時にスリープしてスレッドが切り替わります。 そうでない場合は、常に単一のスレッドが同期リードを繰り返します。 詳細はFS_ReadFileAsync() の解説を参照ください。
`overlay` | `demos` | オーバーレイの簡単なサンプルです。
`overlay-compressed` | `demos` | ビルドスイッチ TWL_COMPRESS を指定して圧縮オーバーレイの動作をテストします。 プログラム自体は overlay サンプルデモと同様です。
`overlay-staticinit` | `demos` | sinit.h ヘッダと NitroStaticInit() を定義し、C言語で書かれたオーバーレイから static initializer を使用するサンプルです。
`arc-1` | `demos` | 以下の２つのアーカイブを独自にロードするサンプルです。 ・デフォルトのROMアーカイブと同様の動作をするアーカイブ ・ファイルとして格納されたプログラムバイナリ内部のファイルシステムへアクセスするアーカイブ
`arc-2` | `demos` | TwlROMフォーマットに準拠していない独自のディレクトリ構造を アーカイブとしてロードするサンプルです。 このサンプルでは arc-1 サンプルと異なり、基本的なアクセスコマンドのいくつかを ユーザプロシージャによってデフォルト処理から置き換える例を示します。
`explorer` | `demos` | ファイルシステムのディレクトリ構造を表示するサンプルです。

## 動作

`すべての動作環境で正常に動作します。`

## 参照

`FS関数一覧`

## 履歴

2008/07/11 TWLに対応した記述に変更
2008/05/22 explorer サンプルの説明を追加
2005/06/28 file-3 サンプルの説明を追加
2005/05/10 overlay-compressed サンプルの説明を追加
2005/03/02 記述内容を現在のサポート環境の状況に合うよう修正
2005/01/19 overlay-staticinit サンプルの説明を追加
2004/10/06 一部サンプルの説明抜けを修正・追加
2004/08/17 IS-NITRO-EMULATORについての表記を統一
2004/07/10 .bin から .srl へ変更。
2004/06/18 実行方法 の記述を修正
2004/05/20 初版