NintendoDS(NDS)非公式開発 Part2at GAMEDEV
NintendoDS(NDS)非公式開発 Part2 - 暇つぶし2ch167:Moonlight
07/07/20 20:25:55 H4HcI83W
読み返すと日本語が不自由なひとで恥ずかしいです。長文失礼します。

>>148

DLDIからキャパシティを取得するときは、リージョンIDをメインメモリ全域から32bit単位で検索してDLDI本体を探しだし、そこを基点にして0x64バイト目にFEATUREフラグセットが32bit値で入っているので、そこを読み込めばOKです。
リージョンIDは、リトルエンディアンの32bit定数で(0xBF8DA5ED)です。
検索する際、自分自身はスキップしてくださいね。
DLDIパッチファイルから直接取得するなら、ファイル先頭から同じく0x64バイト目になります。
DLDIフォーマットの詳細についてはDLDIテンプレートか、
URLリンク(chishm.drunkencoders.com)
の'Default (No device)'辺りのソースの'/specs/dldi_crt0.s'か、'/source/default.s'を見てみてください。

一応フラグの意味だけ抜き出すと、
#define FEATURE_MEDIUM_CANREAD (0x00000001)
#define FEATURE_MEDIUM_CANWRITE (0x00000002)
#define FEATURE_SLOT_GBA (0x00000010)
#define FEATURE_SLOT_NDS (0x00000020)
こんな感じになっています。

とりあえず、バイナリエディタで開いてみて0x64バイト目を見たら概要が掴めるかもです。
ちなみに、オフセット0x60から32bit値がデバイスID(MPCFとかM3CFとか)になります。
libfatを書き換えて細かくDLDIをコントロールするのとどっちがスマートかは微妙です…。



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch