NintendoDS(NDS)非公式開発 Part1

このエントリーをはてなブックマークに追加
929926:2007/02/18(日) 13:02:14 ID:HeNNU1IW
できたよ〜。

fatInitDefault();だけでDLDIセクションの作成とかも全部自動になるのね…。
diropen()やdirnext()関数も sys/dir.h ロードするだけで普通に使って、
ファイル/フォルダリストの列挙も簡単にできた。
これ楽でいいね〜。

ホント>>926ありがとう('A`*
930名前は開発中のものです。:2007/02/18(日) 18:43:22 ID:Iu8cTAQl
>>926はすばらしいな
931名前は開発中のものです。:2007/02/18(日) 22:27:19 ID:HRL/x+44
うわー 理解できねー...orz
932名前は開発中のものです。:2007/02/19(月) 14:52:23 ID:qVSeThXR
こりゃだめだ
933名前は開発中のものです。:2007/02/19(月) 17:57:59 ID:uvfv1owD


//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 ;
} ;


934名前は開発中のものです。:2007/02/20(火) 05:46:03 ID:kdQL4FuP
book
935名前は開発中のものです。:2007/02/20(火) 15:02:38 ID:mrzptZuS
ero book
936名前は開発中のものです。:2007/02/20(火) 21:27:41 ID:7PaNZDlx
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をインクルードするだけでは出来ないんですか?
937名前は開発中のものです。:2007/02/20(火) 22:20:43 ID:cV1vHfON
> error: conflicting declaration 'PI_DEFAULT'
PI_DEFAULT が二重定義されてる。
つまり、
- fat.h を二重インクルード(多分無い)
- 他の場所にもPI_DEFAULTがある
このどっちか。
938名前は開発中のものです。:2007/02/21(水) 00:16:56 ID:Npn8HRsi
メインのソース内にも定義がありました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:は使ってません。

質問ばっかりですいません。
939名前は開発中のものです。:2007/02/23(金) 07:20:12 ID:0hOrk8MZ
>>938
libfatってどんな風に導入した?
libfat.aが古いような気がしなくも無い。
Windows環境だったらインストーラで入れなおしたほうがいいかも。
940938:2007/02/23(金) 19:26:56 ID:tFKH15jI
>>939
devkitPro Updater 1.4.2です。
941939:2007/02/23(金) 21:33:19 ID:0hOrk8MZ
>>938
リンクするライブラリの順かな?
[エラー]
LIBS := -lnds9 -lfat -lm

[通る]
LIBS := -lfat -lnds9 -lm

出力が長いので貼らないけど、こちらでも同じエラーを確認した。
お試しあれ。
942938:2007/02/23(金) 23:24:09 ID:tFKH15jI
>>941
無事できました!
ありがとうございます。
943名前は開発中のものです。:2007/02/27(火) 22:40:56 ID:CNUR98Y3
http://mdxonline.dyndns.org/archives/2007/02/wifi_1.shtml

MACアドレスごとき公開されても構わんが、やり方が気に食わん。
開発者は、紳士としてのモラルを持つべきだ。
944名前は開発中のものです。:2007/02/28(水) 11:16:04 ID:1JHfflqh
もうちょい読解力つけてから来い
945名前は開発中のものです。:2007/02/28(水) 21:20:05 ID:2YD0by15
>>943
お前のような違法者を救うべく警告してくれてるんだよ
もう違法ROMでwifiに繋ぐの辞めような
946名前は開発中のものです。:2007/02/28(水) 22:20:39 ID:oVhLc5Sm
MACアドレスを使って、中古ソフトを動かなくするというのを
いつかやると思ってるのだが、なかなかやらないな・・
947名前は開発中のものです。:2007/02/28(水) 23:48:01 ID:uDoMsFcV
>>946
なにを基準に中古と見るかが問題だな。

ゲーム初回起動時にMACアドレスが保存されて、他の本体では動かなくなるとかいうのだと、
友達での貸し借りもダメになっちまうな
948名前は開発中のものです。:2007/03/01(木) 00:23:47 ID:T6tWOlUD
それ以前に本体壊れる可能性もあるしな
949名前は開発中のものです。:2007/03/03(土) 09:49:08 ID:DgGdUJio
>>943
気に食わないあたり、心当たりがあるはずだ。
950名前は開発中のものです。:2007/03/03(土) 12:34:07 ID:RkM3d6Eg
>>943
ソースの人は技術者なので「できるよ、一応」と言っているだけだろ。
>>946で書かれているようなことが偉い人のゴーで実際に行われないように、
純粋な自作プログラム開発に対する情報交換が活発になればいいんだけどな。
現状そうも行かんようだが。
951名前は開発中のものです。:2007/03/04(日) 15:26:48 ID:yJjUpMq0
>MACアドレスごとき公開されても構わんが、やり方が気に食わん。
>開発者は、紳士としてのモラルを持つべきだ。

自分を棚に上げた感情論に過ぎないな。それでもその視点に合わせて言えば、
警官の犯罪ですら時折ニュースになる昨今、どっか一人の開発者のモラルを
問うて憤慨するなんて、ほとんどタダのヒステリー。もっと冷静になれ。
952名前は開発中のものです。:2007/03/04(日) 15:28:18 ID:fartzWa7
いまさら何反応してるの?自演?
痛い子はスルーしとけよ
953名前は開発中のものです。:2007/03/04(日) 17:18:59 ID:3YSVID+p
>>946
ドリキャスのPSOでやってたぞ。
おかげで本体買い替えなきゃならない事態になったがなw
954名前は開発中のものです。:2007/03/05(月) 03:11:11 ID:JcN4B18n
943=952か? 必死すぎ。
毎日リロードしてレス待ってんのか?w

こんな過疎スレ週一回しか見に来ない奴も多いだろうに。
955名前は開発中のものです。:2007/03/05(月) 22:37:45 ID:DVxSe90H
DSブラウザーのメモリー拡張カートリッジを自作プログラムで利用する事って出来ないのかな?
アクセス方法とか注意点とかの資料とかあれば、教えて欲しい。
956名前は開発中のものです。:2007/03/05(月) 23:24:33 ID:UcNpWzyx
こことか
ttp://optimize.ath.cx/bootcable/ds_ram.html
「メモリー拡張カートリッジ」でググるとトップに出てくるので、既出だったらすまぬ。
957955:2007/03/06(火) 01:31:01 ID:Iq7ybKwA
>>956
これって、RAM有効レジスタを有効にして0x9000000以降にアクセスすれば、
拡張RAMエリアとして読み書き出来るって事かな?
958名前は開発中のものです。 :2007/03/06(火) 11:47:44 ID:E0ND1NNC
NDScripterの再うぷお願いします。
959名前は開発中のものです。:2007/03/06(火) 11:48:19 ID:QRT8pHFk
960名前は開発中のものです。:2007/03/07(水) 07:00:24 ID:r9qgCI5D
ttp://slashdot.jp/developers/07/03/06/1744244.shtml

前に配ってたネコソギトルネードとかやり損ねたんでやってみたいんだが。
ファイルで落ちてないですかね。
961名前は開発中のものです。:2007/03/07(水) 15:24:27 ID:5/MCvScV
板違い野郎登場
962955:2007/03/07(水) 21:22:48 ID:cjoET6PU
>>959
おぉ、なんか詳しそうな情報ですね。
Moonlight氏のソースも参考に、チャレンジしてみます。
963955:2007/03/18(日) 02:36:35 ID:Cg+NBzeJ
ムッキー!!色々試してんだけど、うまくいかね・・・
メモリー拡張カートリッジを認識するかのテストが上手くいかない。
試しでMoonShell 1.51のソースに入っていたextmem.cppも組み込んでみたけど、認識してないっぽい。
(ExistsDSBM呼んでもfalseしか帰ってこない)
ARM9のアクセス優先度とか変えても同じだった。
なんか前処理とかいる?根本的に手順が間違ってる?
964Moonlight: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まで)です。

ブラウザ拡張メモリをブートに使ったりするときは、イメージを書いた後に読み込みのみにしておいたほうが無難かもです。
965Moonlight:2007/03/20(火) 06:28:21 ID:c79pMfjS
すいません、下げ忘れました…。
ついでに補足。GBAカートメモリは(TCMではなくメインメモリと比べても)非常に遅いので、CF/SDなどリアルタイムに変わるI/Oが無ければ、GBAカート領域をCPUキャッシュ有効にしてDMAを使わないようにするほうがずっと速いです。
もちろんキャッシュをフラッシュすればメインメモリと同じようにDMAが使えます。
966名前は開発中のものです。:2007/03/20(火) 17:29:33 ID:W3RvmqHG
お、moonさん来たみたいですね
967955:2007/03/20(火) 22:54:16 ID:0mirLlS7
>>Moonlight
レス大感謝です。
初めは自前でやってたんですけど、どうも上手くいかないのでextmem.cppを試してみたんですよ。
結果ですが、無事認識しました。
手持ちの資料のGBAカートアクセス権ビット設定に関する記述が違っていたというオチでした・・・orz
認識しない訳ですわ。

拡張メモリーはやっぱり遅いですか。
フォントや画像(基本的に書き換えしないデータ)をメインメモリの外に置ければと思ったんですけど、
メインメモリとあまりにも速度差があるのであれば色々考えないと・・・
でも、8Mの容量は捨てがたいです。
968名前は開発中のものです。:2007/03/21(水) 17:10:23 ID:XqjbPkW+
R4での最新版DSLuaの動かし方がわからない( p_q)
突っ込んでdslua.ndsを起動すると真っ暗
起動方法教えて!
969Moonlight:2007/03/21(水) 19:16:49 ID:bMq3DP8a
>>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ブラウザ拡張メモリ(または互換カートリッジ)を差してくれるくらいになれば、それ前提で大規模アプリ開発に繋がると思いますが、
無くても動くようにしなきゃいけないとなるとディスクキャッシュとか画像キャッシュとか、そういう二次的な高速化手段以上になれないと思います。
長文&愚痴っぽくなってしまってすいません。何やってるか知りませんが(笑)かげながら応援してます。ではでは。
970名前は開発中のものです。:2007/03/22(木) 12:30:42 ID:lsr2fM8z
http://www.aaronrogers.com/nintendods/ndsdevenv.php (Offline Installer 2.2.6 (8MB) をダウンロード)

りむーぶどうこうって書かれていて存在しないっぽいんだけど
探せない俺がプログラムするのは無理?w
971名前は開発中のものです。:2007/03/22(木) 18:57:44 ID:0IajFvL4
それよりも,
プログラミング自体未経験なんだったらまずはWindows上で勉強してから
972Moonlight:2007/03/22(木) 20:48:52 ID:oQS86Vwg
>>970

いまなら「devkitPro Updater 1.4.2」を標準インストールすれば大丈夫だと思います。
失礼ですが、もしまったく未経験なら、いきなり組み込み系ではなくWindowsで十分練習してからのほうが変な癖がつかなくて後々楽だと強く思います。Google使うとすぐ情報出てくるし。
昔と違って非商用ならフリーの開発環境がいくつかあるので挑戦してみたら楽しいかもです。
973名前は開発中のものです。:2007/03/23(金) 00:33:17 ID:pjVcJJoa
丁寧にありがとうございます!
そうですね、
簡単に考えてましたが難しそうなので基礎を身に着けてからがんばります!
ありがとうございました。
974名前は開発中のものです。:2007/03/25(日) 19:14:08 ID:RPddLeNY
↓で公開されているSDLのDS移植版使っている人います?
http://gpf.dcemu.co.uk/ndsSDL.shtml

とりあえずライブラリ自体のインストールはできたんだけど、
exampleがまともに動かない・・・。
コンパイルはできるけどDesmumeで動かすとまったく画面表示がされないっす。

ちなみにdevkitPRO r20、libnds-20070127環境。
975名前は開発中のものです。:2007/03/25(日) 20:38:45 ID:Huakjrj8
そろそろ次スレ?
976名前は開発中のものです。:2007/03/26(月) 11:37:24 ID:6JLTGYBQ
ソースをいじれる人間から言うとDeSmuMEの3Dは使い物にならない
977名前は開発中のものです。:2007/03/28(水) 00:11:06 ID:rswjKy4g
DEVKIT PRO R20を使い始めたのですが、プログラムの動作確認はエミュレーターでは出来ないのでしょうか?
DUALISで確かめようとしても、DUALIS自体が終了してしまいます。
978名前は開発中のものです。
>>977
出来たり出来なかったりだね
開発が続いているno$gba-wとかDesmuMeを使え