NintendoDS(NDS)非公式開発 Part2
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2007/04/06(金) 07:28:10ID:0HAbZjic初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。
資料、リンク等
http://nocash.emubase.de/gbatek.htm
http://www.bottledlight.com/ds/index.php/Main/HomePage
http://www.helloworld.jp/~duke/nintendo_ds/
開発環境
http://www.devkitpro.org/
http://sourceforge.net/project/showfiles.php?group_id=114505
関連スレ
ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所)
http://bbs.gamdev.org/test/read.cgi/gamedev/1055111303/
ゲームボーイアドバンス(GBA)非公式開発 Part2
http://pc5.2ch.net/test/read.cgi/gamedev/1099119005/
前スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1113780562/
0053名前は開発中のものです。
2007/05/01(火) 08:16:03ID:SB3umWqP出来る
他にもSuperCardとかあるよ
0054名前は開発中のものです。
2007/05/01(火) 16:23:58ID:Xh0zyFlr0055名前は開発中のものです。
2007/05/02(水) 18:38:51ID:OD2Plci2ファイルアクセスしないようなプログラムだと全く問題なさそうだけど、DS-RAMアダプタ経由のPC上のファイルアクセスになると遅すぎ。
ファイルのアクセス方法によっては、これ止ってんじゃね?って思うほど。
PC上のファイルアクセスに期待してたんだけど、ちょっと期待はずれかな...
リセット信号線つけたら、自動で再起動してくれるとかは便利なんだけどね。
0056名前は開発中のものです。
2007/05/04(金) 19:07:56ID:2UmfDvtL0057名前は開発中のものです。
2007/05/05(土) 01:02:08ID:fIbkcnTP0058名前は開発中のものです。
2007/05/06(日) 02:22:22ID:+OsIRxhX0059名前は開発中のものです。
2007/05/07(月) 07:01:19ID:o4/cQJiOR4とSC LiteとSC SDで起動しない・・・
MicroSDが悪いのと思って変えたけどだめですた。
フォント Loasdで止るし・・
0060名前は開発中のものです。
2007/05/08(火) 00:06:14ID:hPGMHvWN明らかにお前のmicroSDが悪い
0061名前は開発中のものです。
2007/05/08(火) 01:03:48ID:D70iJ7rjただ、画面から動画がはみ出してるけど\(^o^)/
006261
2007/05/08(火) 01:07:20ID:D70iJ7rj0063名前は開発中のものです。
2007/05/08(火) 01:24:05ID:ooYgEOtg置く場所間違ってるだけじゃね?
0064名前は開発中のものです。
2007/05/08(火) 06:05:46ID:bToGIqLO0065名前は開発中のものです。
2007/05/08(火) 07:18:14ID:bToGIqLO動いたー
っ すきん
0066名前は開発中のものです。
2007/05/08(火) 10:22:42ID:cd24JBcZ再生中に「一時停止ボタン」が表示されて
一時停止中に「再生ボタン」が表示されるんだよね
ボタンの機能を表示するか、現在のステータスを表示するかなんだけどね
0067名前は開発中のものです。
2007/05/08(火) 22:18:05ID:1OObYo6q0068名前は開発中のものです。
2007/05/08(火) 22:28:12ID:SsfRj51aATOKとかMS-IMEみたいな漢字変換ライブラリを作ってくれたら作れるよ
0069名前は開発中のものです。
2007/05/08(火) 23:14:14ID:cjZWy55g0070名前は開発中のものです。
2007/05/09(水) 00:53:30ID:7zdYh5y4任せた
0071名前は開発中のものです。
2007/05/09(水) 02:15:50ID:BYMV35Oq物によっては完走するので
0072名前は開発中のものです。
2007/05/09(水) 08:23:16ID:B4n4WDrd0073名前は開発中のものです。
2007/05/11(金) 23:47:22ID:4e1ivnnK0074名前は開発中のものです。
2007/05/12(土) 10:56:26ID:Jej5bFNf0075名前は開発中のものです。
2007/05/13(日) 23:07:47ID:XBYGxj8ZfmsxDS 0.6 DLDI対応 アンオフィシャルテスト版
う〜ん自分には無理かも…
0076名前は開発中のものです。
2007/05/14(月) 04:36:41ID:mEyOEgzk0077名前は開発中のものです。
2007/05/14(月) 04:38:17ID:mEyOEgzkしまったPASSはdldi
0078名前は開発中のものです。
2007/05/14(月) 12:15:28ID:Mb4m3oBs今のところDSMPlayとかMoonshellとか動いてる状況
0079名前は開発中のものです。
2007/05/14(月) 13:03:26ID:iunJLtuy0080名前は開発中のものです。
2007/05/16(水) 05:17:45ID:h4OBkN9Q0081名前は開発中のものです。
2007/05/16(水) 06:53:31ID:h4OBkN9Qndslibだけで容量食われてる?
色々情報集めてみます…
0082名前は開発中のものです。
2007/05/22(火) 15:19:25ID:Lr8LbkHmARM7のスタックとヒープエリアはWRAMですよね
特に意識してプログラムしなくてもARM9と干渉することはないと考えてよいでしょうか
0083名前は開発中のものです。
2007/05/23(水) 07:45:05ID:idMNbs3FARM7のプログラムが置かれるWRAMは専用の領域だそうです。
ttp://www.bottledlight.com/ds/index.php/Memory/Layout
のPrivate RAM(0x03800000〜0x0380FFFF:64 KB)
Shared RAM(0x037F8000〜0x037FFFFF:32 KB)
を、ARM9からWRAM_CR = 3を実行してARM7に割り当てようとしたんですが
0084名前は開発中のものです。
2007/05/23(水) 07:49:34ID:idMNbs3F(続き)
ARM7からShared RAMの部分をアクセスしたらフリーズしてしまいます。
しょうがないので、VRAM_DをARM7のメモリ空間に指定して使ってます。
(desmumeのソースを参考にしました)
008582
2007/05/23(水) 11:58:16ID:motUPcYLARM7はプログラム自体がWRAMに置かれるのですね
それでプログラムサイズの制限が64Kだったんだ
私もVRAM_Dを使うことにします
0086名前は開発中のものです。
2007/05/23(水) 14:29:57ID:CBYIFONFプログラム全部で64kてしょぼすぎる。
0087名前は開発中のものです。
2007/05/23(水) 15:28:30ID:motUPcYLhttp://www.helloworld.jp/~duke/nintendo_ds/nds_develop4.html
には
GBADEVフォーラムにおけるポストでは、DevKitPROでは、
ARM7実行可能コードは最大64KBに制限されると言及されました。
って書いてあるんだ。
0088名前は開発中のものです。
2007/05/23(水) 15:34:36ID:motUPcYLただサウンドバッファ用のメモリをどうするかで悩んでました。
ところでVRAM_DはARM7からアクセスするときもワード単位ですかね。
0089Moonlight
2007/05/23(水) 17:43:56ID:GSLlsCFnVRAMC/DはARM7からアクセスするときは8bit読み書きできて、普通にWRAMの増設に使えるので便利でした。
ARM7でmallocすると、WRAMのコード領域を除いたエリアから切り分けしてくれますが、普通の4MByteメモリをARM9でmallocしてIPCでARM7に渡してやれば、ARM7で自由に使えます。
malloc使わないで4MByteエリアを同時に使っても構わないのですが、メモリ管理が面倒なので普段はARM9からmallocするかな、くらいの感じです。
補足1。ARM9のデータキャッシュ(読み書き両方)さえ気を付けていれば、ARM7とARM9のデータ通信に4MByteエリアを使うことも出来ます。
補足2。4MByteエリアを同時にアクセスすると、どちらかのCPUがもう片方のCPUを待ちます。どちらのCPUが待つかはREG_WAIT_CR (*(vuint16*)0x04000204) で設定できます。
補足3。REG_WAIT_CRの設定はARM9側からしかできません。
補足4。DevKitProR20で正式採用されたARM7用WRAM96kbyte設定ですが、一部のファームウェアはこれを正しく扱えません。
問題があったときは(リンカスクリプトをいじるのは面倒なので)r17aかr19辺りを使うのが楽だと思います。SharedRAMを結合しないのでWRAMが64kbyteになります。
補足5。サウンドバッファを4MByteエリアに確保するときは、CPU優先設定をARM7優先にしておかないと、ARM9に負荷が掛かるたびにブツブツ切れます。
補足6。ARM7で大量のメモリをハンドリングするときは、VRAM_CとVRAM_Dを両方ともARM7に割り当てて(ついでに暇があればリンカスクリプトをいじってmallocをVRAM領域にして)256kbyte使うと便利です。
この場合はARM7優先設定する必要がありません。
補足7。libnds-20060719より前の基本ライブラリにはVRAM設定が不十分です。128kbyteまでしかdefineがありません。VRAMC/Dを256kbyte全部ARM7に割り当てるときは、libnds-20070127以降を使う必要があります。
defineを自分で定義すれば気にしなくても大丈夫だと思います。
長い上に箇条書きな補足ばかりですいませんです。
追記、C++を使うと(例外とか使わなくても)C++ライブラリが組み込まれるので、r18/r19b辺りを使うときは、ARM7でC++を使わない方がいいかも。
009088
2007/05/24(木) 07:06:54ID:aj7YaroWバイト単位で読み書きできるんですね
その他情報も参考になります
ありがとうございました。
0091名前は開発中のものです。
2007/05/25(金) 03:43:00ID:4YzO8T1aなるほど、DevKitProR20はすでに共有WRAMもARM7に割り当てているのですか…
ファームによっては動かないのは困りますね。やはりVRAMをARM7に割り当てることにします。
そしてARM7のソースはCPPではなくCソースとしてコンパイルするようにしてみました。
頂いた情報を元にして色々弄ってみます。
0092名前は開発中のものです。
2007/05/26(土) 14:07:43ID:prDWTsQK最近になってdevkitProで遊び始めました
examplesのndsをmakeしまくったら全部動いたので、今度はデータを変えて動かしてみようと
SimpleSoundのrawデータを手持ちのwavをrawに変換して置き換えたところ
元のwavのそれっぽい音は鳴ったのですが同時にブチブチノイズが入って(´・ω・`)ショボーン
wavを8bit,16bitに変えたり周波数を変えてソースもそれに合わせて変えても同じでした
動作はエミュレータのdualisと実機で確認しました
wavはSoundEngineで編集、rawへの変換はHomebrewを参考にしてsoxを使いました
音量の制限とか特別なツールが要るとかなにかコツがあったら誰か教えて欲しいです
プログラムの話じゃなくてすみません
0093Moonlight
2007/05/27(日) 21:05:25ID:MUD6Al/yhttp://mdxonlinemirror.dyndns.org/sndtest.zip
A/B/X/Yボタンでそれぞれ違うフォーマットのサウンドファイルを再生するサンプルをでっち上げました。
変換にはSOXを使用しました。変換オプションはsndtest/arm9/data/convert/conv.batを参照してください。
DevKitProのcombinedサンプルをベースにしましたが、ARM7とARM9で8bit/16bitの設定方法が食い違っていたので、ARM7のtemplate.cを修正しました。
devkitPror20/nds-examples-20070327/templates/combined/arm7/source/template.cの10行目を、
SCHANNEL_CR(channel) = SCHANNEL_ENABLE | SOUND_ONE_SHOT | SOUND_VOL(vol) | SOUND_PAN(pan) | (format==1?SOUND_8BIT:SOUND_16BIT);
から、
SCHANNEL_CR(channel) = SCHANNEL_ENABLE | SOUND_ONE_SHOT | SOUND_VOL(vol) | SOUND_PAN(pan) | (format==0?SOUND_8BIT:SOUND_16BIT);
に変更してあります。
あと、ダミーの割り込みを有効にしないと、swiWaitForVBlankは使えないので、InitInterruptsで空の割り込みを有効にしてます。combinedサンプルはそのままじゃ動かない…ですよね?
ここから下は補足です。
NDSのサウンドチップは32768Hzをベースにしているので、これ以外の周波数を鳴らそうとすると量子化ノイズが入ります。
A/Bボタンの22kHz再生でチリチリ言うのがわかると思います。容量の問題ならもっと下げて16384Hzで二倍オーバーサンプリングするのが良いと思います。
ADPCMは未だになんだかよくわかりません。二種類のADPCMを使えるみたいですが。
ステレオデータを再生するときは、左右分離してデータを二つ用意して、パンを両端に振って同時に再生すればOKですが、libndsの標準関数を使うと1vsync(16ミリ秒)ずれるので、自分でステレオ再生用関数を作った方が良いと思います。
8bit/16bitは、平滑化フィルタを入れれば8bitでも充分かなと私は思っています。容量などを考えながらケースバイケースで使い分ける感じで。
ちなみに、DSMPlayは8bitデータで平滑化フィルタを使っています。sin波ボタンでON/OFFできるので、聴いてみたいだけなら試してみてください。
0094名前は開発中のものです。
2007/05/28(月) 03:35:30ID:GoMQTjDv0095Moonlight
2007/05/28(月) 05:00:53ID:KQ4mCJx4わ、確かにその通りです。慧眼お見それしました。量子化ノイズはAD変換かビット数変換時のノイズですよね。適当なこと書いてごめんなさい。
適切な表現がわからないのですが、周波数変換は(おそらく聴く限りでは)最近傍補完なので変換誤差が大きい、ということです。
モスキートノイズのようなものが入るのですが、こういう現象を表現する単語があったら教えて頂けると有り難いです。
0096名前は開発中のものです。
2007/05/28(月) 10:03:54ID:2YHfuliX参考になります。
ハードウェア側の基本周波数に合わせた周波数設定にしないと、
ハードウェアによる補完が発生→音質の低下が発生する
なんですね。
出来るだけ少ないデータで音質をあげたいので、参考になりました
0097名前は開発中のものです。
2007/05/28(月) 20:28:54ID:3IWalm8Ettp://www.groovecube.com/ja/tutorial/tech_alias.html
これでいいのかな
0098名前は開発中のものです。
2007/05/29(火) 22:12:53ID:8czSWuso0099名前は開発中のものです。
2007/05/30(水) 07:17:31ID:T+UjS17y0x8000じゃないですか
0100名前は開発中のものです。
2007/05/30(水) 11:45:42ID:gnisP2wT0101名前は開発中のものです。
2007/06/01(金) 12:30:36ID:WIXJ61jG0x8000だと黒くなってしまうのですが。
010299
2007/06/01(金) 17:36:25ID:7cHDqmoD適当に書いただけだからごめんね
0103名前は開発中のものです。
2007/06/02(土) 14:15:45ID:E7QBhPlxソースまで付けていただいてありがとうございます
おかげさまでwavをきちんと再生できるようになりました
結局soxの使い方が間違っていただけのようです(^^;
大きなデータを入れたらコンパイルが通らなかったので次はファイルシステムをいじってみようと思います
arm7は最大64KBの制限があるとの記述を見つけたのですが、arm9のサイズ制限っていくつでしょう?
0104名前は開発中のものです。
2007/06/04(月) 08:26:57ID:QTKoOJgParm9はメインRAMに転送されるから4MBかな
0105名前は開発中のものです。
2007/06/04(月) 10:38:44ID:+Dw64mCiARM7にそんな制約はない。
0106名前は開発中のものです。
2007/06/04(月) 11:17:04ID:QTKoOJgPndsファイルから転送されるARM7プログラムが64KBまで
メインRAMにプログラムロードしてジャンプすればそれ以上も可能だけどARM9とのメモリ管理が大変だと思う
0107名前は開発中のものです。
2007/06/04(月) 11:39:01ID:+Dw64mCi0108名前は開発中のものです。
2007/06/04(月) 12:41:16ID:AXHKpxL60109名前は開発中のものです。
2007/06/04(月) 17:04:59ID:QTKoOJgPそんな当たり前のことは前提で書いているのだと思った
0110名前は開発中のものです。
2007/06/04(月) 18:02:12ID:uE7vHbRc0111名前は開発中のものです。
2007/06/05(火) 01:05:28ID:KdmaRc3b0112名前は開発中のものです。
2007/06/09(土) 03:57:55ID:3WhHJTTj0113名前は開発中のものです。
2007/06/10(日) 00:13:14ID:uiXXcFw3当然、タッチパネルのキャリブレーションは行っています。
出来るだけ誤差の少ない座標の取得方法ってあるのでしょうか?
ピクトチャットだと全然ズレないんで、ハードがおかしいってことは無いと思います。
0114名前は開発中のものです。
2007/06/10(日) 05:50:40ID:pzGrWNqU死んでもらいたいものです
0115名前は開発中のものです。
2007/06/10(日) 12:28:40ID:uTxkIh/Pageても荒らしなんて来ないから安心しろ。
びびりすぎだぞ。
0116名前は開発中のものです。
2007/06/10(日) 15:10:45ID:Yn+Hy7qH0117名前は開発中のものです。
2007/06/10(日) 17:19:02ID:aLDgBZvjサンプリング周期を短くして、16msといわず
5msくらいで・・NDSってタイマーとかあるでしょうか。
三個をくらべて一つだけ急に離れてるのを捨てる、とか、
三個の平均を16msの間のタッチ位置として扱うとか・・・
タイマー50msのマシンで16msのFPSを計りたいときのしくみに
似ているように思ったので。
0118名前は開発中のものです。
2007/06/10(日) 22:41:08ID:J1iCwWbVある程度有効な座標が取得出来る様になりました。
当然若干の誤差も拾ってしまいますけど、以前よりは格段に誤差を拾わなくなったのでOKとしました。
サンプリング回数を多くしたりすると、タッチして書いた線がガタガタになるとかそいう弊害がでたりしたので。
もっといい方法があると思うんだけど、思いつかなかった。
0119Yuki ◆YukiquDWwY
2007/06/20(水) 22:09:04ID:dNQ/54qeMoonshell 1.7をdevkitARMr20でコンパイルしようとしましたが、
makefileがなくて、main.cをそのままコンパイルしようにも、
エラーがたくさん出るしで... _touch.hなんて入ってませんし。どのようにすればいいのでしょうか?
1.6のソースには_touch.hもmakefileもありますが、コンパイルエラーが出てしまいます...
0120名前は開発中のものです。
2007/06/21(木) 08:27:30ID:r1ZNTRDhdevkitも定数名とかバージョンによって変わってるからねー
バージョン会わないとそんな定数無いよとか言われるよ
0121名前は開発中のものです。
2007/06/26(火) 20:57:47ID:B6+HckOx0122名前は開発中のものです。
2007/06/26(火) 22:42:14ID:vhFQ0NHQ欲しいけど無いから自分で作る、作ろうと努力する。
ここは、そういう人が集うスレです。
0123名前は開発中のものです。
2007/06/28(木) 22:37:08ID:opyrYDS8依頼するところじゃないです。
0124名前は開発中のものです。
2007/06/29(金) 20:45:49ID:mT9VFj6fPocketPCを買えばいいよ
俺って頭良いな
0125名前は開発中のものです。
2007/07/03(火) 18:26:00ID:Ftt0VCZoまったく手も足もでませんでした。
0126名前は開発中のものです。
2007/07/06(金) 22:00:18ID:+OKmtdt0リストってどこかにないですかね?
手持ちの分は調べたんですが5つ程度しか分かりませんでした・・・
0127名前は開発中のものです。
2007/07/07(土) 10:11:51ID:d3FNx67Eこのサイトけっこう情報が載ってていけてる
0128名前は開発中のものです。
2007/07/07(土) 18:09:14ID:uQIzJBz7ここの人ここ見てたら‘突発性難聴‘でぐぐって
当てはまったら医者行った方が,(経験者
0129名前は開発中のものです。
2007/07/08(日) 10:57:38ID:rDPYYRW10130名前は開発中のものです。
2007/07/08(日) 17:38:42ID:XOi4/i3/このカメラのソースをなんとか使えるようにしたい
Wi-Fiでビデオチャットまでが目標
0131名前は開発中のものです。
2007/07/08(日) 22:06:27ID:/1ouvdnD記事の情報源をどう使いたいんですか? ww
カメラのソースって何ww
ちゃんと言葉選んで書こうよw
低脳君www
0132名前は開発中のものです。
2007/07/08(日) 22:08:44ID:+JKl0BdU0133名前は開発中のものです。
2007/07/08(日) 22:20:24ID:XOi4/i3/0134名前は開発中のものです。
2007/07/08(日) 22:25:09ID:/1ouvdnD0135名前は開発中のものです。
2007/07/08(日) 22:27:07ID:/1ouvdnD0136名前は開発中のものです。
2007/07/08(日) 23:47:37ID:lUq6LYSy0137名前は開発中のものです。
2007/07/09(月) 03:21:14ID:ymUEgIPd言葉がおかしいのは確かだが、過剰に反応し過ぎだと思う。
まあ俺も突っ込もうかと思ったが…
「このカメラからのデータを映像ソースとして使いたい」ってことかな?
リアルタイムで動画エンコードできる性能があるとも思えないし、
何に対しての映像ソースにするのかはわからんが…
0138名前は開発中のものです。
2007/07/09(月) 04:12:31ID:LmdhtBXu0139名前は開発中のものです。
2007/07/09(月) 07:00:55ID:csAkfvzG0140名前は開発中のものです。
2007/07/09(月) 07:56:53ID:RzAW5SZn0141名前は開発中のものです。
2007/07/09(月) 10:11:53ID:ooePDXn10142名前は開発中のものです。
2007/07/09(月) 11:26:45ID:WKiykow20143名前は開発中のものです。
2007/07/10(火) 16:09:47ID:1Xh4D4futext型背景レイヤの色深度は、
4bit(16色)及び、8bit(256色)は実現できましたが、
rotation型背景レイヤは、8bit(256色)のみでしょうか?
4bit(16色)は仕様的に可能でしょうか?
0144Moonlight
2007/07/10(火) 18:48:36ID:K23EWBI9rotationというのは、アフィンモードですよね。
gbatekのNDSビデオ項目には4bitパレットBGは使えないと書いてありました。
一応自分でもトライしてみましたがやっぱりできませんでした。
いまだGBA/NDSのBGについて理解が足りない私が試したことなので、なにか他に方法があるのかもしれません。
役立たずレス失礼しましたです。
でもなんでAffine/Extendモードで4bitBGを使えなくしたんだろう? あまり使われないモードだからカットされたのかな…アドレッシング負荷とかゲート数とかで。NDS(特にビデオチップ)は謎仕様が多いです。
0145名前は開発中のものです。
2007/07/10(火) 22:48:06ID:T+YSxXpVひぐらし解をちゃんとDSに移植してくれ……
ついでに40Gもつけるから
女なんてきらいだヽ(´ー`)ノ
何人も有能な人たちが女にダメにされてくのをみたよ…・・・
んで、映像素材の事をソースといわないこともない
0146名前は開発中のものです。
2007/07/13(金) 17:51:57ID:IOm4/xlY0147名前は開発中のものです。
2007/07/13(金) 18:52:49ID:0LWs8OSzいや、それならDSでnonscriptが走るようにすればいい。
0148名前は開発中のものです。
2007/07/14(土) 08:21:51ID:PfN9PjnZマジコンがファイル書き込みに対応しているかの判断をしたいです。
GBA Movie Player (SD Card)とNinjapass X9が書き込み出来ないらしいので、それだけでも判ればと。
0149名前は開発中のものです。
2007/07/14(土) 14:28:23ID:/KEJkMzs駄目だったらでOKでは?
0150名前は開発中のものです。
2007/07/14(土) 18:50:52ID:2j8aQsFg結局誰かこういうの作らないのかな?
誰かがやってくれると期待してたんだが・・・
#どき魔女はおいといて
0151名前は開発中のものです。
2007/07/14(土) 20:09:48ID:46zjj9L1君が作りなよ。
ここで言ったからには開発宣言と同じだぞ
0152名前は開発中のものです。
2007/07/14(土) 23:21:41ID:NCjcxLUp■ このスレッドは過去ログ倉庫に格納されています