@wikiメニュー編集表示ツールヘルプブックマーク登録RSS登録
新規ページ作成
すでにあるページをコピーして新規ページを作成 スレッドフロート型掲示板から引用して新規ページ作成(α版) ブログの内容から引用して新規ページ作成(α版) ファイルをアップロードして新規ページ作成(α版) 他のホームページから引用して新規ページ作成(α版)
[PR] 無料ホームページ @PAGES [PR] 無料SNSレンタル @PNE [PR] 無料フォーラム型掲示板レンタル @BB [PR] 選べる無料掲示板 @BBS [PR] 2ch型無料レンタル掲示板 @chs
@wikiで新規wikiを作成
このページを編集 このページを編集(メニュー非表示編集;α) このページをコピーして新規ページを作成 このページのページ名を変更 このページの編集モードを変更 このページの閲覧/編集権限の変更
このページにファイルをアップロード
このウィキにファイルをアップロード(FTP機能/管理者のみ利用可)
メニューを編集(メニュー部分は非表示で編集) 右メニューを編集(メニュー部分は非表示で編集)
このページの最新版変更点 このページの編集履歴(バックアップ) このページへのリンク元 このページへのトラックバック
このページをPDFで表示(α版)
このwikiのページ一覧 編集履歴(バックアップ)のあるページ一覧 このwikiのタグ一覧 このwikiの更新情報RSSこのwikiの更新情報RSS このwikiの新着ページRSSこのwikiの新着ページRSS
このwiki内を検索 @wikiパーツ▶  @wiki便利ツール▶  このwikiの管理者に連絡
@wiki助け合いコミュニティ
初心者ガイド
ご利用ガイド 良くある質問 プラグイン一覧 編集モードの違いについて 不具合や障害を見つけたら 管理・設定マニュアル
はてなブックマークする FC2ブックマークに追加 Livedoor クリップに追加 Yahoo!ブックマークに登録 del.icio.usに追加
はてなRSSに追加 livedoor ReaderにRSSフィードを登録 Yahoo!にRSSフィードを登録 BloglinesにRSSフィードを登録 NewsGator OnlineにRSSフィードを登録 GoogleパーソナライズドホームページにRSSを追加
@wikiパーツ:あなたのサイトにWikiデータを簡単表示!
最近更新したページの一覧を表示する 最近作成したページの一覧を表示する このwiki内を検索するフォームを表示する このwikiのタグクラウドを表示する 自動リンク辞書を利用する
@wiki便利ツール:トップページ
RSSかんたん作成 興味キーワードをチェック!!(RSSナビ) いろんなblogのRSSかんたん作成ページ アマゾン商品検索(簡単アフィリエイト) wikiに株式情報(日本)を表示 wikiに株式情報(中国)を表示 かんたんHTML直接入力 Q&Aサイトかんたん連携作成 wikiに為替情報を表示 はてなアンテナと簡単連携
NDS開発Wiki

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

ヘッダフォーマット


フィールド 開始 終了 サイズ サンプルデータ(メトロイドデモ)
ゲームタイトル 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メニューに表示されます。



[ スポンサード リンク ]