- 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 構造体にまとめて持つことで、多態性を実現してます。 かなり面白いんで、読むのにはお勧めなプログラムです。
|

|