NintendoDS(NDS)非公式開発 Part1
929 :
926:2007/02/18(日) 13:02:14 ID:HeNNU1IW
できたよ〜。
fatInitDefault();だけでDLDIセクションの作成とかも全部自動になるのね…。
diropen()やdirnext()関数も sys/dir.h ロードするだけで普通に使って、
ファイル/フォルダリストの列挙も簡単にできた。
これ楽でいいね〜。
ホント
>>926ありがとう('A`*
うわー 理解できねー...orz
こりゃだめだ
//disc_io.cの適当な場所に追加
#include "io_dldi.h"
//bool disc_Init(void) の適当な場所に追加
// check if we have a DLDI plugged in
active_interface = DLDI_GetInterface() ;
if (active_interface->fn_StartUp())
{
// set DLDI as default IO
return true ;
} ;
book
ero book
devkitARM r20でlibfatを使いたいのですが、makeすると
arm9_main.cpp:33: error: conflicting declaration 'PI_DEFAULT'
c:/devkitPro/libnds/include/fat.h:53: error: 'PI_DEFAULT' has a previous declara
tion as 'PARTITION_INTERFACE PI_DEFAULT'
と出てコンパイルできません。
Makefileのarm-eabi-gccに-lfatを追加してfat.hをインクルードするだけでは出来ないんですか?
> error: conflicting declaration 'PI_DEFAULT'
PI_DEFAULT が二重定義されてる。
つまり、
- fat.h を二重インクルード(多分無い)
- 他の場所にもPI_DEFAULTがある
このどっちか。
メインのソース内にも定義がありましたorz
よく見れば一瞬でわかるようなエラーだったのに質問して申し訳ない。
しかし今度は
c:/devkitPro/libnds/lib\libfat.a(io_njsd.o): In function `_NJSD_init':
e:/projects/devkitPro/libfat/nds/../source/disc_io/io_njsd.c:127: undefined reference to `irqDisable'
というエラーが出てしまいます。
ちなみにe:は使ってません。
質問ばっかりですいません。
>>938 libfatってどんな風に導入した?
libfat.aが古いような気がしなくも無い。
Windows環境だったらインストーラで入れなおしたほうがいいかも。
940 :
938:2007/02/23(金) 19:26:56 ID:tFKH15jI
>>939 devkitPro Updater 1.4.2です。
941 :
939:2007/02/23(金) 21:33:19 ID:0hOrk8MZ
>>938 リンクするライブラリの順かな?
[エラー]
LIBS := -lnds9 -lfat -lm
[通る]
LIBS := -lfat -lnds9 -lm
出力が長いので貼らないけど、こちらでも同じエラーを確認した。
お試しあれ。
942 :
938:2007/02/23(金) 23:24:09 ID:tFKH15jI
>>941 無事できました!
ありがとうございます。
もうちょい読解力つけてから来い
>>943 お前のような違法者を救うべく警告してくれてるんだよ
もう違法ROMでwifiに繋ぐの辞めような
MACアドレスを使って、中古ソフトを動かなくするというのを
いつかやると思ってるのだが、なかなかやらないな・・
>>946 なにを基準に中古と見るかが問題だな。
ゲーム初回起動時にMACアドレスが保存されて、他の本体では動かなくなるとかいうのだと、
友達での貸し借りもダメになっちまうな
それ以前に本体壊れる可能性もあるしな
949 :
名前は開発中のものです。:2007/03/03(土) 09:49:08 ID:DgGdUJio
>>943 気に食わないあたり、心当たりがあるはずだ。
>>943 ソースの人は技術者なので「できるよ、一応」と言っているだけだろ。
>>946で書かれているようなことが偉い人のゴーで実際に行われないように、
純粋な自作プログラム開発に対する情報交換が活発になればいいんだけどな。
現状そうも行かんようだが。
>MACアドレスごとき公開されても構わんが、やり方が気に食わん。
>開発者は、紳士としてのモラルを持つべきだ。
自分を棚に上げた感情論に過ぎないな。それでもその視点に合わせて言えば、
警官の犯罪ですら時折ニュースになる昨今、どっか一人の開発者のモラルを
問うて憤慨するなんて、ほとんどタダのヒステリー。もっと冷静になれ。
いまさら何反応してるの?自演?
痛い子はスルーしとけよ
>>946 ドリキャスのPSOでやってたぞ。
おかげで本体買い替えなきゃならない事態になったがなw
943=952か? 必死すぎ。
毎日リロードしてレス待ってんのか?w
こんな過疎スレ週一回しか見に来ない奴も多いだろうに。
DSブラウザーのメモリー拡張カートリッジを自作プログラムで利用する事って出来ないのかな?
アクセス方法とか注意点とかの資料とかあれば、教えて欲しい。
957 :
955:2007/03/06(火) 01:31:01 ID:Iq7ybKwA
>>956 これって、RAM有効レジスタを有効にして0x9000000以降にアクセスすれば、
拡張RAMエリアとして読み書き出来るって事かな?
NDScripterの再うぷお願いします。
板違い野郎登場
962 :
955:2007/03/07(水) 21:22:48 ID:cjoET6PU
>>959 おぉ、なんか詳しそうな情報ですね。
Moonlight氏のソースも参考に、チャレンジしてみます。
963 :
955:2007/03/18(日) 02:36:35 ID:Cg+NBzeJ
ムッキー!!色々試してんだけど、うまくいかね・・・
メモリー拡張カートリッジを認識するかのテストが上手くいかない。
試しでMoonShell 1.51のソースに入っていたextmem.cppも組み込んでみたけど、認識してないっぽい。
(ExistsDSBM呼んでもfalseしか帰ってこない)
ARM9のアクセス優先度とか変えても同じだった。
なんか前処理とかいる?根本的に手順が間違ってる?
964 :
Moonlight:2007/03/20(火) 06:22:25 ID:c79pMfjS
>>963 ブラウザ拡張メモリ専用で単にメモリとして使いたいだけなら、extmem.cppなんか使わないで自前で書いた方が楽だと思います。(アレは汎用性を求めて設計をミスったのでぐちゃぐちゃです
大前提としてGBAカートは16bitバスなのを注意することと、GBAカートアクセス権をARM9側に設定する(WAIT_CR/REG_EXEMEMCNTのBIT7を0にする)ことを忘れずに。
あと、バカにされているように感じたらごめんなさいなのですが、mallocなどのC標準メモリ管理も使えないと思った方が無難です。
簡単な判定方法は、
const u8 Data[16]={0xFF,0xFF,0x00,0x00,0x00,0x24,0x24,0x24,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F};
がアドレス0x080000B0から16byteに存在すればブラウザ拡張メモリがあります。(判定は16bit単位で)
アドレス0x08240000に1を書き込むと読み書き可、0を書き込むと読み込みのみ(だったはず)になります。
ちなみに、メモリマップは0x09000000から8MByte分(0x09800000まで)です。
ブラウザ拡張メモリをブートに使ったりするときは、イメージを書いた後に読み込みのみにしておいたほうが無難かもです。
すいません、下げ忘れました…。
ついでに補足。GBAカートメモリは(TCMではなくメインメモリと比べても)非常に遅いので、CF/SDなどリアルタイムに変わるI/Oが無ければ、GBAカート領域をCPUキャッシュ有効にしてDMAを使わないようにするほうがずっと速いです。
もちろんキャッシュをフラッシュすればメインメモリと同じようにDMAが使えます。
お、moonさん来たみたいですね
967 :
955:2007/03/20(火) 22:54:16 ID:0mirLlS7
>>Moonlight
レス大感謝です。
初めは自前でやってたんですけど、どうも上手くいかないのでextmem.cppを試してみたんですよ。
結果ですが、無事認識しました。
手持ちの資料のGBAカートアクセス権ビット設定に関する記述が違っていたというオチでした・・・orz
認識しない訳ですわ。
拡張メモリーはやっぱり遅いですか。
フォントや画像(基本的に書き換えしないデータ)をメインメモリの外に置ければと思ったんですけど、
メインメモリとあまりにも速度差があるのであれば色々考えないと・・・
でも、8Mの容量は捨てがたいです。
R4での最新版DSLuaの動かし方がわからない( p_q)
突っ込んでdslua.ndsを起動すると真っ暗
起動方法教えて!
>>967 GBAカートアクセスは遅いです…私の感覚だけで書くと、GBAのARM7/33MHzキャッシュ無しの頃でさえ遅くてGBAカートからメインメモリ(EWRAMかIWRAM)に転送して使っていたくらいなのに、
NDSのARM9/66MHzキャッシュ有りメモリと比べるなんてとんでもない、という感じです。
ただ、GBAカートエリアをキャッシュONにすれば(キャッシュに収まる範囲でですが)DTCMと等速になる(はず)ので、最初の読み込み以外は変わらないと思いますけれど、
データキャッシュに収まるくらいの小容量データならメインメモリでいいよね、って話でいまいち使い所が難しいです。
967を読む限りで想像すると、DSカードから読み込んで解凍、GBAカートRAM上で運用、という形みたいですが。
ちなみにMoonShell/ImageViewerで大きめの画像を扱うときのGBAカートRAM有り/無しでは雲泥の差があります。解凍(展開)に10秒掛かる…なんてときは、かなり意味があると思います。
今後の流れでhomebrew動かすときはとりあえずみんなDSブラウザ拡張メモリ(または互換カートリッジ)を差してくれるくらいになれば、それ前提で大規模アプリ開発に繋がると思いますが、
無くても動くようにしなきゃいけないとなるとディスクキャッシュとか画像キャッシュとか、そういう二次的な高速化手段以上になれないと思います。
長文&愚痴っぽくなってしまってすいません。何やってるか知りませんが(笑)かげながら応援してます。ではでは。
それよりも,
プログラミング自体未経験なんだったらまずはWindows上で勉強してから
>>970 いまなら「devkitPro Updater 1.4.2」を標準インストールすれば大丈夫だと思います。
失礼ですが、もしまったく未経験なら、いきなり組み込み系ではなくWindowsで十分練習してからのほうが変な癖がつかなくて後々楽だと強く思います。Google使うとすぐ情報出てくるし。
昔と違って非商用ならフリーの開発環境がいくつかあるので挑戦してみたら楽しいかもです。
丁寧にありがとうございます!
そうですね、
簡単に考えてましたが難しそうなので基礎を身に着けてからがんばります!
ありがとうございました。
↓で公開されているSDLのDS移植版使っている人います?
http://gpf.dcemu.co.uk/ndsSDL.shtml とりあえずライブラリ自体のインストールはできたんだけど、
exampleがまともに動かない・・・。
コンパイルはできるけどDesmumeで動かすとまったく画面表示がされないっす。
ちなみにdevkitPRO r20、libnds-20070127環境。
そろそろ次スレ?
ソースをいじれる人間から言うとDeSmuMEの3Dは使い物にならない
DEVKIT PRO R20を使い始めたのですが、プログラムの動作確認はエミュレーターでは出来ないのでしょうか?
DUALISで確かめようとしても、DUALIS自体が終了してしまいます。
>>977 出来たり出来なかったりだね
開発が続いているno$gba-wとかDesmuMeを使え