[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/19 22:54 / Filesize : 288 KB / Number-of Response : 981
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

NintendoDS(NDS)非公式開発 Part1



678 名前:名前は開発中のものです。 mailto:sage [2006/12/21(木) 21:47:52 ID:BWewr/X6]
もっとちゃんとしたやり方があると思うので、参考程度にNDSKybookに SuperCardLite
の処理を加えたときの流れです。

1. gba_nds_fatのソースをどこかから引っ張ってくる(NDSKybookオリジナル版)
2. SCのホームページからゲットした *.sを用意してgba_nds_fatと同じところに入れる
3. gba_nds_fatに入っている、io_scsd.c / h を適当な名前にコピーして、中身を変える。
  ・関数名を変える。何でもよい。たとえば、SCSD_IsInserted → SCMSD_IsInserted とか。
  ・呼び出し先を変える。呼び出し先は *.sでexportされている関数名に。
  数が多いんで、エディタの置換でがーっとやっちゃいます。
4. disk_io.c のdisc_setGbaSlotInterface で、インタフェースの認識処理を呼び出す。
  アダプタの認識処理が並んでるから、似てる奴を選んで、コピーして関数名を変える
5. ビルドが通るようにガンバル。終わり。
実際には、externを追加したり、イロイロありますが、おおまかにはこの程度です。
(といっても、技術力不足から 2日位はかかりましたが… orz...)

注意する点は、SCSDが存在するかどうかの認識は誤認識が多く、油断すると何でも
SCSDに認識されちゃいます。「全部試してダメならSCSD」という風にしないといけな
いので、自動判定の時にはSCSDの前に入れないといけないです。

gba_nds_fatのソースは、実に巧妙にできていて、Cで書かれているにもかかわらず、
関数ポインタをIO_INTERFACE 構造体にまとめて持つことで、多態性を実現してます。
かなり面白いんで、読むのにはお勧めなプログラムです。







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<288KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef