ファイルフォーマット - NDSフォーマット


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ヘッダフォーマット


フィールド 開始 終了 サイズ サンプルデータ(メトロイドデモ)
ゲームタイトル 0x000 0x00B 12 "FIRST HUNT "
ゲームコード 0x00C 0x00F 4 "AMFE"
メーカーコード 0x010 0x011 2 "01" (Nintendo)
ユニットコード 0x012 0x012 1 0x00
デバイスコード 0x013 0x013 1 0x00
カードコード 0x014 0x014 1 0x07 (2^(20 + 7) = 128Mb = 16 MB)
カード情報 0x015 0x01E 10 0x00's
フラグ 0x01F 0x01F 1 0x00
ARM9 ソース (ROM) 0x020 0x023 4 0x00004000 (4 KB 境界に揃えられていなければいけません)
ARM9 実行アドレス 0x024 0x027 4 0x02004800
ARM9 コピーアドレス 0x028 0x02B 4 0x02004000
ARM9 バイナリサイズ 0x02C 0x02F 4 0x00081D58
ARM7 ソース (ROM) 0x030 0x033 4 0x000B3000
ARM7 実行アドレス 0x034 0x037 4 0x02380000
ARM7 コピーアドレス 0x038 0x03B 4 0x02380000
ARM7 バイナリサイズ 0x03C 0x03F 4 0x00026494
ファイル名テーブルオフセット (ROM) 0x040 0x043 4 0x000D9600
ファイル名テーブルサイズ 0x044 0x047 4 0x11B6
FAT オフセット (ROM) 0x048 0x04B 4 0x000DA800
FAT サイズ 0x04C 0x04F 4 0x678
ARM9 オーバーレイソース (ROM) 0x050 0x053 4 0x00085E00
ARM9 オーバーレイサイズ 0x054 0x057 4 0x60
ARM7 オーバーレイソース (ROM) 0x058 0x05B 4 0
ARM7 オーバーレイサイズ 0x05C 0x05F 4 0
コントロールレジスタフラグ (読み込み用) 0x060 0x063 4 0x00586000
コントロールレジスタフラグ (初期化用) 0x064 0x067 4 0x001808F8
アイコン + タイトル (ROM) 0x068 0x06B 4 0x000DB000
セキュア CRC16 0x06C 0x06D 2 0xC44D
ROM タイムアウト 0x06E 0x06F 2 0x051E
ARM9 unk addr 0x070 0x073 4 0x020049EC
ARM7 unk addr 0x074 0x077 4 0x02380110
マジックナンバー (非暗号化モード用) 0x078 0x07F 8 0x00's
ROM サイズ 0x080 0x083 4 0x00EE3E44
ヘッダサイズ 0x084 0x087 4 0x4000
不明 5 0x088 0x0BF 56 0x00's
GBA ロゴ 0x0C0 0x15B 156 data
ロゴ CRC16 0x15C 0x15D 2 0xCF56
ヘッダ CRC16 0x15E 0x15F 2 0x00F8
予約済み 0x160 0x1FF 160 0x00's

コントロールレジスタフラグは、レイテンシ(遅れ)設定とROM製造業者に依存する情報を含みます。(Macronix, Matrix Memory)

Unknown2a and 'Header Size' contain flags that are (somewhat) used during boot as part of card CR writes. Unknown2b contains the size of a certain type of transfer done during boot, but it's range checked and cannot be reduced. Unknown3c is seemingly unused, and some code paths get data from 0x160 onward (only 0x170 bytes of a header fetch are actually retained by the BIOS)

セキュア CRC16 は、 ROM 領域の 0x4000 ~ 0x7FFF の間を、初期値 0xFFFF として計算します。

ロゴ CRC16 ヘッダ領域の 0x0C0 ~ 0x15B の間を、初期値 0xFFFF として計算します。

ヘッダ CRC16 calculation is performed on the header (after the previous two CRCs are filled) from 0x000 to 0x15D with an initial value of 0xFFFF.

デバイスコードは下位3ビットを0にする必要があります。
(GBAヘッダと同じような構造にするため)


アイコン + ロゴ フォーマット (バナー)

32 + 512 + 32 + 256 * 6 = 2112 バイトの構造体になっています。
以下説明

バナー構造体

オフセット サイズ 説明
0 2 Version (常に 1)
2 2 構造体の CRC-16 (最初の32バイトは含めない)
4 28 予約済み
32 512 タイルデータ
544 32 パレット
576 256 日本語タイトル
832 256 英語タイトル
1088 256 フランス語タイトル
1344 256 ドイツ語タイトル
1600 256 イタリア語タイトル
1856 256 スペイン語タイトル

アイコンは サイズが 32x32 で、 4x4 の16色か、単一16色パレットを使用します。

アイコンデータの次に、6つの Unicodeで書かれたゲームタイトルがあります。
ファームウェアで設定された言語で、DSメニューに表示されます。


ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。