- 1 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 07:28:10 ID:0HAbZjic]
- NDSで何やら作ってみようという人の為のスレ。ライセンス不要。
初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。 資料、リンク等 nocash.emubase.de/gbatek.htm www.bottledlight.com/ds/index.php/Main/HomePage www.helloworld.jp/~duke/nintendo_ds/ 開発環境 www.devkitpro.org/ sourceforge.net/project/showfiles.php?group_id=114505 関連スレ ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所) bbs.gamdev.org/test/read.cgi/gamedev/1055111303/ ゲームボーイアドバンス(GBA)非公式開発 Part2 pc5.2ch.net/test/read.cgi/gamedev/1099119005/ 前スレ pc11.2ch.net/test/read.cgi/gamedev/1113780562/
- 587 名前:584 mailto:sage [2007/12/31(月) 02:03:40 ID:M5kyCS2V]
- >>585さん
すいません。上書き込んでるときにレスがあったみたいで 一部コメントの内容が重複してしまいました。 >256*256*2の部分、わかりました。ありがとうございますm(_ _)m ところで、 >BG_256_COLORが入ってます。 はどういった意味があるんでしょうか? #define BG_256_COLOR (bit(7)) となってますが、(BG_RS_32x32 | BG_256_COLOR | BIT(2)) が 16bitsの解像度が256x256の画像を使う宣言みたいなものと 覚えておけばよいでしょうか?
- 588 名前:584 mailto:sage [2007/12/31(月) 02:07:44 ID:M5kyCS2V]
- すいません、ファイルサイズじゃなくて解像度256x256に1ドットあたり
2バイトなのでさらにx2したから256*256*2ですね
- 589 名前:Moonlight mailto:sage [2007/12/31(月) 04:45:20 ID:GrGVceoQ]
- >>580
sndtest.zipを再アップしました。 あ、これは例えば符号付き8bitリニアPCMと符号無し8bitリニアPCMを間違えてる人には役に立つかもしれませんが、エイリアスノイズ対策には役に立ちません。 符号あり/なしを間違えたときは音にならないくらいノイズが乗りますが、エイリアスノイズならチリチリとノイズが乗るって感じだと思います。 リアルタイムには(CPUパワー的に)フィルタかけられないので、事前にフィルタかけるか線形補間で誤魔化すかだと思います。 線形補間でエイリアスノイズを誤魔化すならMorningTimerのARM9のdllsound.cppのDLLSound_Update関数が…役に立たなそう。(笑 >>582 実は自分でテストしてないので実感がありません。 CheckDiskでは怖いので厳重にエラー検査しますが、実際はそんなに問題じゃないんじゃないかなーとか適当なこと書いてみたり。(不遜ですね(苦笑 >>583 strpcm.cppを書いた頃は、44.1kHzからの周波数変換をNDSのサウンドチップに任せていたので、クロックズレが発生していたのですが、32768Hzで直接再生できるようになったんだからもしかしたら今ならSOUND_REPEATでもいけるのかもです。 周波数にもよりますがクロックズレが原因の微少なプチノイズは50秒に一回くらい発生していると思います。 で、SOUND_REPEATだと発生したら(リピート間隔毎に)ずっと発生し続けますが、SOUND_ONE_SHOTなら次のズレが発生するまでノイズが乗りません。なのでSOUND_ONE_SHOTを使いました。 (1サンプル以下の累積誤差補正コードを自前で書くなら大丈夫だと思いますがめんどくさくてやってられなーい。(笑)) なにはともあれ、ソースが役に立ったみたいで本当に嬉しいです。
- 590 名前:Moonlight mailto:sage [2007/12/31(月) 04:45:55 ID:GrGVceoQ]
- >>587
私もあまり詳しくはないのですが、BG設定は同じビットでも他のビットの設定によって意味が変わってくることがありました。 GBAからむりやり拡張したって感じがします。 8bitカラーモードのときと15bitカラーモードのときでは、同じビットでも意味が違うという感じで。(BGサイズと拡張パレットの設定ビットとかめちゃくちゃだと思うんですけどどうなんでしょうか(苦笑 ちなみに、例えばビットマップBGに256x256画像を読み込んでも実際には256x192分しか見えませんが、縦オフセットを徐々に変えると手軽にスクロール効果を表現できたりします。ランダムに細かく変えると地震っぽいとか。 チラ裏というか余談失礼しましたです。
- 591 名前:583 mailto:sage [2007/12/31(月) 17:46:55 ID:rN7PTsQ5]
- TTAに続いてoggに挑戦。
libogg+libvorbisが重い。 ↓ tremorのことを思い出す。早速導入。 ↓ 再生の始めが早送りに聞こえる。後に期待した音が流れる。 ↓ 日暮れ。←いまここ ↓ そば食べる。 今まで、ぶちぶち言ってたのに困ってたんですが、今度は逆に早送り・・・。 誰か他にogg(tremor)いじってませんか?
- 592 名前:Moonlight mailto:sage [2007/12/31(月) 23:51:45 ID:kzjZELj8]
- >>591
もしかしたらソース見せてもらえたら横槍入れられるかもと思ってみたり…
- 593 名前:583 mailto:sage [2008/01/01(火) 10:45:53 ID:NNk1mtua]
- >>592
ttp://www.uploda.org/uporg1183384.zip.html 遅くなりました。よろしくお願いします。
- 594 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 15:24:49 ID:T3NYT7jt]
- あけましておめでとう。みなさん今年もよろしく!
DSのプログラムを初めて思ったのは、面白いことをするためには どうしてもハードウェアの制作が必要になるんだな、ということです。 例えばGPSとかカメラとか、そういったのをDSに付けたくなってしまう。 俺はずっとソフトウェアしかやってこなかったので、 初心者の気分でハードウェアの勉強をしてみようかと思うんだけど そういうときに最初に行くべきスレッドってどこでしょう? 今年、DSの自作プログラムの幅が広がれば嬉しいな
- 595 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 21:24:21 ID:+s8QW2Sx]
- 電気・電子板のARMスレが良いんじゃなかろうか
science6.2ch.net/test/read.cgi/denki/1072102432/
- 596 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 22:38:14 ID:Rbh21JyU]
- 何かつけたいならCPLD覚えた方がいいんじゃなかろうか
- 597 名前:Moonlight mailto:sage [2008/01/01(火) 23:06:37 ID:Ftb+OQMO]
- >>593
割り込み内で直接デコードしちゃうのは危険ですー。 っていうほど危険じゃないのかも…。私が調べたときは、割り込み時にユーザスタックに切り替えてくれない割り込みハンドラだったので、スタックが極端に少なかったです。(今は大丈夫なのかも…) とりあえずデコードはできているみたいなので大丈夫と仮定して次に。 16384Hzモノラル16bitの4096サンプル単位で再生しているようにみえました。 4096サンプルの演奏時間は0.25秒ですが、負荷計測してみたところ最初の4096サンプルのデコードが重くて処理落ちしているんじゃないかと思いました。 最初の4096サンプルのデコード(while(reedNeed>0)ループの所用時間)が209.268msで、次が22.791ms、37.251ms、22.740ms、37.393ms、という感じでした。 最初のフレームでも40ms残っているので間に合っているような気もしますが、とりあえず重いのは確かなのでリングバッファで8フレームくらい先読みすると(例えば今後他に重い処理を入れても平気になって)いいんじゃないかと思いました。 ov_read関数呼び出しの直後に >volatile int i; for(i=0;i<0x10000;i++); とか入れて、故意に重くしてみたときの音飛びと似ているように聞こえました。 最初の1フレームだけ極端に重いので、リングバッファじゃなくダブルバッファだけでも入れてみて様子を見たり…。(対処療法的なので誉められた対応ではないのですがテストで(笑))
- 598 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 23:19:13 ID:6ptbDBuA]
- あけおめです。
>>594 DSの場合、Wi-Fiが使えるので無線経由でPCに接続したカメラや GPSの情報取得してもおもしろいかもね
- 599 名前:593 mailto:sage [2008/01/02(水) 00:19:35 ID:xkC7Ea9V]
- >>597
添削ありがとうございます。 再生データの形式を書き忘れていたのですが、16384Hz/モノラル/16ビットで正解です。 割り込みと処理落ちというキーワードから見直しをしてみました。 FIFOハンドラのループで複数のコマンドがキューに乗ったときに連続して処理して、 間髪入れずに鳴らすコマンドを投げてしまいます(と、指差ししながら脳内検証)。 デコードの処理をハンドラから出してみたところ、現象は収まりました。 ただ、初回デコードが時間がかかってる感じが少しします。 対策として、 ダミーのデコード(鳴らさない) ↓ ov_*_seek系のAPIで先頭シークに戻す ↓ 改めて再生 ってなことをしようと思ったんですが、ov_pcm_seek( &vf, 0 )が効いてる気がしない様子。 あしたもがんばるぞorz
- 600 名前:名前は開発中のものです。 mailto:sage [2008/01/02(水) 08:06:49 ID:tTTSdt9O]
- みなさんいろいろとありがとう。
実は加古英児さんのサイトを見ていて触発されたんです。 www.kako.com/neta/ このページを見て、小学生のころ電子工作(とは名ばかりのはんだ付けキット)を やっていた記憶が鮮やかによみがえり、本格的にやりたくなりました。 だからARM系やCPLDだけじゃなくて、1から回路を作って楽しみたいんです。 そういうときの入門スレってどこだろう?? (それはそれとしてWi-Fiは面白そう、ありがとう!)
- 601 名前:名前は開発中のものです。 mailto:sage [2008/01/02(水) 09:51:15 ID:6mZ1FxBS]
- このスレの住人は、向上心があっていいなw
- 602 名前:593 mailto:sage [2008/01/02(水) 11:10:58 ID:xkC7Ea9V]
- >>599の自己レスです。
libtremorのCFLAGSがおかしかった模様。 誤: $(INCLUDE) -DARM9 -DBYTE_ORDER=LITTLE_ENDIAN 正: $(INCLUDE) -DARM9 -DLITTLE_ENDIAN -DBYTE_ORDER=LITTLE_ENDIAN 正の状態でビルドしたライブラリをリンクしたら、ov_*_seek系APIが通るようになりました。 ov_*_seekが使えないと、ov_*_totalも使えないのでいろいろ困ってました。 oggはBGM途中でのリピートもできるので重宝できるはず。 てことで正月半分オワタorz
- 603 名前:Moonlight mailto:sage [2008/01/02(水) 14:11:11 ID:Af6IKbG3]
- 支離滅裂な横槍失礼。
>>602 なんかスタック壊れてておかしいなーと思っていたら、シークのコールバック関数の引数が32bitだったみたいです。 extern int ovs_seek( void *datasource, size_t offset, int whence ); じゃなくて、 extern int ovs_seek( void *datasource, ogg_int64_t offset, int whence ); だと思います…こういうのはエラーが出ないのかなぁ。 ここを修正すれば動くかなーと思っていたのですが、まだなにかおかしくて原因探索…していました。 御自分で修正してシークできるようになっていたんですね。おめでとです。参考までにどこらへんを直したのか教えてくださいです。 ところで、ovstream.cのovs_seek関数、pStream->srcseekの値がころころ変わったり、呼び出されるたびに0になっていたりしていませんでしたか? もう直っているとのことなので蛇足なのですがあっ64bitメモリから32bit変数をLittleEndianで読み込んだときにSigned/Unsigned不整合で0xffffffffと0x00000000が…。 独り言で長文書き込んですいませんです。ではまた。
- 604 名前:593 mailto:sage [2008/01/02(水) 15:49:48 ID:xkC7Ea9V]
- >>603
時系列に書いていきます。 まず、>>602のCFLAGS(誤)でlibtremorを作ります。 union magicはLITTLE_ENDIAN側を無条件に使用するようにします。 このライブラリで>>599まで進みます。 次に、ovs_seekのoffsetの問題を直します。 ソースを追跡していて、size_t型で受け取ると値がおかしくなりました。 これが原因でseekableが許可されませんでした。 ogg_int64_t型にすると正しい値になりました。 すると今度はvorvisfile.cの_get_next_page関数のループで抜けません。 ここで、lowmem_branchがあることを知ります。 lowmem_branchをビルドする際に、CFLAGS(正)で通すことできました。 これを通常ブランチに適用して、自分のプログラムに組み込みました。 その結果が>>602です。 64ビット値がスタックに乗ると、どうなるんだっけ?とうっすら考えたんですが、 明確な答えを見つけられなかったんですよね。 結論、ovs_seek直しましたorz
- 605 名前:名前は開発中のものです。 mailto:sage [2008/01/02(水) 15:57:05 ID:6ig8IlcH]
- NDS開発云々の前に凡ミスが多くね
- 606 名前:名前は開発中のものです。 mailto:sage [2008/01/02(水) 16:28:43 ID:3kcyZQN4]
- なれない環境なんてそんなもんだよ
- 607 名前:Moonlight mailto:sage [2008/01/02(水) 23:30:28 ID:w4bCClKX]
- >>604
あーフラグの偽でしたか。私もoggライブラリ移植するときに引っかかりました。charのsigned/unsignedとか。 misc.hを直接書き換えて、LittleEndianしか通らないようにしました。(手抜き(笑 私はlowmem_branchをマージしたのですがtrunkしかないしメモリリークバグもあるしであまり好きじゃないです。 ovs_seekを直す。結局それが一番近道だと思います。(笑 わざわざ開発状況の報告をさせてしまってどうもでした。またなにか躓いたら(役に立てるかは別としてっ!(笑))訊いてくださいね。でわでは。
- 608 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 00:43:36 ID:/+yjt+NH]
- pngを読み込んでspriteで表示する簡易なサンプルとかありませんでしょうか。
めらまん氏のwikiは見たのですが何をやっているのか理解できず。 サンプルのspritebitmapを弄ってますがどうにも・・・
- 609 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 00:50:22 ID:9PNTe7K3]
- pngじゃ無いとダメなの?
- 610 名前:608 mailto:sage [2008/01/05(土) 00:58:17 ID:/+yjt+NH]
- >>609
Tileでpng使ってたもので、そのまま使えるかなとか思っておりましたが spriteってやっぱりbmpでやるものなんでしょうか?
- 611 名前:608 mailto:sage [2008/01/05(土) 01:26:12 ID:9PNTe7K3]
- >>609
自分はbmpをCソースに書き出して使ってるのでどっちでもいいと思ってる。 pngは展開しないといけないので、特に理由が無い限り使わないです。面倒だし。
- 612 名前:名前は開発中のものです。 [2008/01/05(土) 11:34:13 ID:c8GGWOxF]
- >>611=609
お前の番号ずれてないか
- 613 名前:Moonlight mailto:sage [2008/01/05(土) 20:15:53 ID:j7N7Qhly]
- >>608
もし私なら、 ・画像ファイルからbinに変換した画像の扱いに慣れるまでビットマップでいじくってみる。スプライトのことはとりあえず忘れる。 ・DLDIドライバを組み込んで、半角英数10行くらいのテキストファイルを表示してみる。 ・色深度固定(例えば24bitとか)のbmpファイルをディスクから読み込んで、15bitに自前で変換して表示してみる。 ・色深度自由な汎用bmpライブラリを組んでみる。 ・libpngを組み込んで、色深度固定のpngファイルを読み込んで、15bitビットマップに変換して表示してみる。 ・色深度自由な(アルファチャネルとかを含む)pngライブラリを組むかどうかはやる気と気分次第。 ・この頃になるとビットマップの扱いに充分慣れていると思うので、スプライトで表示してみる。8bitパレットを扱うかはやる気次第。 という感じで、進んでいくと思います。あくまで、私ならですが参考になれば幸いです。
- 614 名前:あ mailto:あ [2008/01/08(火) 20:56:16 ID:m4lL5SxZ]
- >>1〜1000
おk
- 615 名前:名前は開発中のものです。 mailto:sage [2008/01/11(金) 16:48:48 ID:IDnFxZnm]
- 背景画像の上にフォントを表示させる場合、
フォントの一部の色を透過させて背景画像が見えるようにしたいのですが フォントの描画はスプライトで行うのが一般的でしょうか?
- 616 名前:名前は開発中のものです。 mailto:sage [2008/01/11(金) 17:00:08 ID:lysu1ST4]
- Check disk for NDS EWIN2でタッチパネルが動作しません。(T_T)
対応していただけないでしょうか・・・
- 617 名前:Moonlight mailto:sage [2008/01/11(金) 18:37:48 ID:858Jtf0V]
- >>615
もちろんスプライトでもできますが、背景BGと文字BGを重ねるほうが楽だと思います。日本語フォントを扱うならスプライトでどうこうできる量ではないので。 色を透過させるだけならこれでできますが、影を半透明でとかアンチエイリアスフォントだとかになったら、ビットマップモードしかないと思います。 最近わたしはもうめんどくさいので、ビットマップモード&自前合成ばっかりです。(Windowsと似た感覚で扱えるので) >>616 EWIN2は…。ごめんなさい、古すぎてもういいやって感じがしています。(不遜でごめんなさいです。 特にこの機能だけ使いたいからメニューでAボタン押したらこれ、Bボタンはこれにしてほしい、というくらいなら対応できます。
- 618 名前:名前は開発中のものです。 mailto:sage [2008/01/11(金) 20:34:41 ID:gV4ausxY]
- >>617
616です。 EWIN2の対応は諦めました。 カーソルキーで移動、Aボタンで選択というのは無理でしょうか? R4でもそれなら、もう少し使い易くなると思います。
- 619 名前:名前は開発中のものです。 mailto:sage [2008/01/11(金) 22:43:18 ID:gV4ausxY]
- ありゃ、表現が変ですね。
カーソルキーで移動・選択、Aボタンで実行です。 よろしくお願いします。m(__)m
- 620 名前:615 mailto:sage [2008/01/14(月) 14:36:28 ID:gI9YVpPo]
- >>617
ありがとうございます。 とりあえずBGを2枚重ねて処理する方法を試してみます。
- 621 名前:615 mailto:sage [2008/01/15(火) 21:21:10 ID:lG1M2LiD]
- 背景をBG2にして、その上に表示させたいものをBG3に設定したつもりなのですが、やり方が間違ってるようで
BG3に書き込んだキャラクタの座標や、透過設定した色が反映されませんでした。 drawBackgroundは256*192のすべてに緑で塗りつぶしており、drawCharacterは16*16のビットマップデータを書き込んでいます。 キャラクタデータの背景は15ビット目を0にしているので透過させているつもりなので、緑色が表示されてほしかったのですが、黒色が表示されている 状態です。 BG_BMP_BASE()とBG_BMP_RAMの対応が間違っているんでしょうか? ------------ videoSetMode( MODE_5_2D | DISPLAY_BG2_ACTIVE | DISPLAY_BG3_ACTIVE ); vramSetBankA( VRAM_A_MAIN_BG_0x06000000 ); BG2_CR = BG_BMP16_256x256 | BG_BMP_BASE(0) | BG_PRIORITY(0); BG2_YDX = 0; BG2_XDX = 1 << 8; BG2_XDY = 0; BG2_YDY = 1 << 8; BG2_CX = 0; BG2_CY = 0; BG3_CR = BG_BMP16_256x256 | BG_BMP_BASE(64) | BG_PRIORITY(1); BG3_YDX = 0; BG3_XDX = 1 << 8; BG3_XDY = 0; BG3_YDY = 1 << 8; BG3_CX = 0; BG3_CY = 0; drawBackground( (u16*)BG_BMP_RAM(0) ); drawCharacter( (u16*)BG_BMP_RAM(1) );
- 622 名前:615 mailto:sage [2008/01/15(火) 22:24:27 ID:lG1M2LiD]
- memcpyで描画していた部分を修正して1ドットずつ描きこんだらうまくいきました。
ただ、BG_BMP_BASE(n)とBG_BMP_RAM(n)の意味でよくわからないところがあります。 定義では #define BG_BMP_BASE(base) ((base) << 8) #define BG_BMP_RAM(base) (((base)*0x4000) + 0x06000000) となっているのですが、BG_BMP_BASEは0x06000000を基準に(base)<<8した位置を BGxで使用する、という意味なのでしょうか? そうなると、BG_BMP_BASE(n)のnと、BG_BMP_RAM(n)のnを同じにするのではなく、 上記の定義からアドレスを計算して、二つのアドレスが一致するように設定すれば よいということでしょうか? 今は同じnを使用してうまくいっているのですが、アドレスをあわせようと、 BG_BMP_BASE(64) = 64<<8 = 0x4000, BG_BMP_RAM(1) = 1*0x4000+0x06000000 にしたのですが、こうすると逆に背景が少し下にずれて描画されてしまいました。
- 623 名前:615 mailto:sage [2008/01/15(火) 22:31:45 ID:lG1M2LiD]
- スレ汚しすいません・・・
baseは0..31あって、1が0x0600 4000に対応して、 以降そのまま番号ごとに対応しているのですね。 NDS/Tutorialsをもっと読んできます・・
- 624 名前:Moonlight mailto:sage [2008/01/15(火) 23:29:54 ID:r+7lzlIg]
- >>620
えーっと、よくわかりませんが16bit単位で書き込んだときにBG2/BG3両方に普通の画像を表示できましたか? 前景(人物とか)をBG2、背景をBG3に描いたとのことですが、コードを見ると優先順位の設定が逆のように見えました。 優先順位は0が最も前で、3が一番下です。よくあるADVに適当に割り当てると、BG_PRIORITY(3)に背景、BG_PRIORITY(2)に人物レイヤー、BG_PRIORITY(1)にテキストフレーム、BG_PRIORITY(0)にテキスト、という感じとか。ニュアンスが伝わればいいのですが。 ちなみに、同じBG_PRIORITY(n)のときは、BGよりもOBJ(スプライト)が前に来ます。 BG二枚両方に同じBG_PRIORITY(n)を設定したときの挙動は分かりません。BG0が前に来そうな気がします。 BASEとRAMの設定値の関係は、お察しの通りで合ってます。BG設定レジスタのBIT8〜BIT12がアドレス指定フラグです。 256x192x16bitで96kbyte使うので、二枚使うときは背景がbase0(0〜5)で、人物がbase6(6〜11)、という風に割り当てる感じになると思います。 ちなみに二枚使うと192kbyteになるので、128kbyteバンクを二枚使うようにBank割り当てを変えたほうがって蛇足過ぎですね私。 ビデオ周りはほんとめんどくさくてわかりづらいのですが、めげずに頑張ってくださいませ。それでは。
- 625 名前:Moonlight mailto:sage [2008/01/15(火) 23:36:50 ID:LHI5s0tv]
- >>624
ごめんなさい書き間違えました。 >前景(人物とか)をBG2、背景をBG3に を修正、 >背景をBG2、前景(人物とか)をBG3に ですね。 で、ソースだとBG2の優先度が0でBG3が1なので、BG2を1でBG3を0にすると重ねる順番が直るかも直らないかも私が数字を勘違いしてるかも。 一度動いたらもうBG/OBJ周りは手を加えたくない…(苦笑
- 626 名前:Moonlight mailto:sage [2008/01/15(火) 23:53:22 ID:h1DkvG7e]
- 私も質問したいです。
ARMアセンブラで、RNでエイリアスしたレジスタを解除するにはどうしたらいいでしょうか。 気持ちとしてはこんな風に書きたいです。 REG_tmp RN r1 ldr REG_tmp,[sp] add REG_tmp,#1 str REG_tmp,[sp] REG_tmp UNRN (とかundefRNとか…) 別にエイリアスしたままでも(プログラム的には)問題ないのですが、他のことに使ってるときに間違って使ってしまいそうなので解除したいです。 r15に再割り当てできれば、間違えて使う=即異常動作なのでわかりやすいのですが、もう宣言されてるよばかーと言われてしまいました。
- 627 名前:名前は開発中のものです。 [2008/01/16(水) 07:04:48 ID:zWJR+3di]
- >>622
memcpyは1バイトずつコピーするから奇数バイトのコピーでこけるんじゃないかな 自作の4バイトメモコピー関数作ればどう int* p1 = (int*)src; int* p2 = (int*)dst; len>>=2; for (i = 0; i < len; i++) { *p2++ = *p1++; }
- 628 名前:名前は開発中のものです。 mailto:sage [2008/01/16(水) 11:06:38 ID:zxUoql5e]
- >>626
確かに必要ないところでは使えなくしたいところですね で、マニュアルのRNの項目を見てみたんですが、 「違う名前で同じレジスタを重複して使わないように注意してね」って書いてあるだけですね これといって、RNの逆をしてくれる疑似命令はなさそうです 使いたくなければ、別ファイルに分けろってことでしょうかねぇ
- 629 名前:615 mailto:sage [2008/01/16(水) 16:18:34 ID:Rxj1FtFA]
- >>624, 627
ありがとうございます。ビデオまわりの部分は検索しても情報が少なく これまで馴染みがなかった概念があり手探り状態です。 ちょっとした情報でも大変参考になります。
- 630 名前:615 mailto:sage [2008/01/17(木) 01:37:04 ID:Z+jfE4TA]
- 実はセックスフレンドのコンバーターを作ってるのですが
なかなか上手く行かないものですね。
- 631 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 19:42:19 ID:CSwrgLBR]
- >>630
2点
- 632 名前:Moonlight mailto:sage [2008/01/17(木) 21:47:28 ID:daPJ8MZf]
- >>628
わざわざ調べてくださってありがとうございます。 注意してね、って書いてあって(危険性を認識していて)なおかつ対処法が書いてないということは、本当に無いんでしょうね。 同じレジスタを交差しながら使いまわして最適化しているので、簡単にはブロックごとに別ファイルにできなさそうです。 MACROだけだと不十分なので、プリプロセッサで#includeと#defineを使って、とも思ったのですが、コンパイル中に別のexe起動させるのもなんか面倒くさそうでやめました。 むー。全体的にほとんど十分なのですが、痒いところに手が届かない感じ…(苦笑
- 633 名前:名前は開発中のものです。 mailto:sage [2008/01/18(金) 21:10:46 ID:uKjx+lCO]
- >>632
チェックプログラムを作って、それに通してチェックさせるしかないんじゃないでしょうかね。 DOSアプリでチェックプログラムを作ってみました。 UNRN xxxと書いた所から先に、xxxが見つかったら行番号と名前を表示します。 (UNRNは実際にはない命令なので、先頭に;を付けてコメントとしてください) テストソースtest.sを同梱したので、通してみたら分かると思います。 まあ、面倒ですがw ttp://ud.gs/40dtl ちなみに、#defineはEQUのことでしょうか。レジスタにEQUは使えないんですよね。 REG_tmp EQU r1 とすると、見事にエラーになりました。
- 634 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 15:00:00 ID:lwFGyVi0]
- 画像をテクスチャにするdevkitproの3Dのサンプルにあるような
pcxファイルはどのようにして変換すればいいですか?
- 635 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 15:14:31 ID:9w9pPM+Z]
- 変換出来ませんか?
- 636 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 15:34:28 ID:lwFGyVi0]
- drunkenlogo.pcxをdrunkenlogo.pcx.oとdrunkenlogo_pcx.hに変換しているようで
そこで何を使っているのかがわかりません。
- 637 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 16:13:09 ID:PbX5b0Di]
- makefileを見たところbin2oをそのまま使ってますね
- 638 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 18:21:37 ID:Edl9lJvc]
- かみ合わなさすぎ笑った
けど俺は635と637を支持する
- 639 名前:名前は開発中のものです。 mailto:sage [2008/01/20(日) 05:31:33 ID:Tm5/geYl]
- いやかみ合ってるでしょ?
ちゃんと636の意図を汲んで回答したつもりですよ
- 640 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 06:25:28 ID:V51tZRX6]
- >>639
氏ねよ低脳^^
- 641 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 06:45:03 ID:RQWaaLj1]
- Cloros!を使ってみて思ったんだけど、液晶タブレット化ソフトって作れないかな
液タブって一番安いのでも10万近くするし、実現できたら入門用としていいなと
- 642 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 16:11:40 ID:jSedK63m]
- GBAをPCにUSBで繋いでジョイスティックにするドライバが
あったけど、PC側のドライバを作れれば、できそうな気はするが。
- 643 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 19:46:01 ID:DnoBdQO+]
- 解像度がなぁ・・・
- 644 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 21:01:50 ID:O1DPMOZH]
- >>641
液タブじゃなくてタッチパネル液晶なら3万ぐらいからあるよ 違いはペン交換負荷、筆圧感知なし もうちょい安くするなら、安いPDAって選択肢もあり? QVGAならDSと同じぐらいの値段だし
- 645 名前:名前は開発中のものです。 [2008/01/21(月) 21:36:18 ID:4X6pNulX]
- NDScripterってどこかにうpしてないですか?
再うpお願いしたいです。
- 646 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 21:37:58 ID:o5qLQIe2]
- >>645
探し方がほんの少し足りないんじゃないかな?
- 647 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 23:19:03 ID:ZIx41Zvj]
- 探し方が足りないと言うより、脳みそが足りないと言った方が(ry
- 648 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 00:11:48 ID:UXR2naSd]
- ちょっと質問なんですが、BG1は16色パレット、BG2は256色パレット、BG3は16色パレット・・・
って感じに使う事は可能なんでしょうか?
- 649 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 01:09:41 ID:UKSk6OUY]
- コンパイルしたプログラムをmicroSDに書き込んでマジコンに入れて
実機で動かすまでの差し替えが面倒になってきたので、1:1タイプの N-Cardを買いました。 で、プログラムを書き込んでみたのですが、音が出ません。 手持ちのソフトのイメージではきちんと音が出るのですが。 自作プログラムとROMイメージは同じ物ではないのでしょうか?
- 650 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 01:58:57 ID:PNF0vUM/]
- 俺エスパーじゃないからスルーするー
- 651 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 02:28:24 ID:UKSk6OUY]
- >>650
やっぱスルーされますかorz とりあえず自作プログラムがマジコンごとに動きが違うことって いうのが起きうるのか。 また、違いがあるのであれば、おかしい方は一律おかしい結果で あれば納得できるのですがROMイメージはおかしくないので、 情報をお持ちのエスパーがいれば、と思ったのですが・・・。 他にもサンプルを動かしてみました。 examples/nds/Graphics/3D/Misc/Picking ... タッチパネルでPickできない examples/nds/sound/SimpleSound ... 音(ry フリーズしてる模様
- 652 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 02:47:26 ID:QDQndHhu]
- >>649
他のマジコンでは音は出るの? あと、エミュで動かしたらどうなる? エスパーな俺に言わせれば、単なるバグだと思うけど。
- 653 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 04:46:34 ID:FTu8bsB4]
- たとえば仕様だと0で初期化されるような部分があったとして
そのマジコンがROM起動前に勝手に違う値で初期化してたら場合によっては他とは違う動作するよな 違うってことはあるんじゃないか?・・・というかあるだろ 他のマジコンあるなら試してみるのがいいだろな 動いた場合どっちのマジコンがおかしいのか調べるの大変そうだけど
- 654 名前:651 mailto:sage [2008/01/22(火) 08:52:26 ID:UKSk6OUY]
- >>652
今までEZ5使ってました。期待通りの動きをします。 エミュは、desmumeを使ってます。 音は出ない代わりにフリーズしません。 IPCを経由してARM7側で代入した値をARM9側で 表示するプログラムをおこしてみました。 ARM7側で指定した値になってない。 ARM7側が止まる/動いてないみたいな状態になってると憶測。 これが原因であれば、音も出ないしタッチパネルの座標も取れない。 こんなことってあるの?
- 655 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 12:07:32 ID:t/rMcNXw]
- ロクな知識もなしに口出しして悪いけど、DLDIの問題だったとかってオチじゃないよね?
- 656 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 12:33:25 ID:QDQndHhu]
- >>654
>こんなことってあるの? もちろんある。 開発の経験少ないとわからないかもしれんが、単なるバグだろうな。 >>653 の言うように初期化漏れである可能性もかなりある。 不具合が再現する環境で調査するのがいいよ。 あと、バグと認識した上で調査すること。
- 657 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 13:41:15 ID:gUHlGxAr]
- 対数(log)をとるのってどうすればいいかわかる?
devkitProにそういった関数がない以上、 自前でマクローリン展開をするか 対数テーブルでも作るしかないとは思うけど だれか実践している人はいますか?
- 658 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 14:02:36 ID:Ji00TJph]
- つ#include <math.h>
はダメ?
- 659 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 14:46:32 ID:QDQndHhu]
- >>657
devkitPro/devkitARM/arm-eabi/include/math.h
- 660 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 14:57:28 ID:gUHlGxAr]
- >>659
なんと… これを使うためにはどうすればいいの?
- 661 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 15:04:49 ID:PxbgiTbg]
- >>660
>>658
- 662 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 15:07:46 ID:gUHlGxAr]
- >>661
それだとlibndsのmathがインクルードされる。 インクルード自体は #include "devkitPro/devkitARM/arm-eabi/include/math.h" でいいんだけど、問題はリンクをどうすればいいのかということ。
- 663 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 15:15:42 ID:PxbgiTbg]
- >>662
> それだとlibndsのmathがインクルードされる。 パス通せばいいだけなのに。 > でいいんだけど、問題はリンクをどうすればいいのかということ。 同じ場所に lib があるだろ。
- 664 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 15:33:50 ID:yQKos8cm]
- >>663
よくわからんのだが、一部の関数は標準ライブラリの関数名とlibndsとで完全に被るんじゃない? printfとか
- 665 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 16:06:08 ID:gUHlGxAr]
- >>663
やってみたけどリンクされなくて困った。 多分makefileが悪いんだろうから夜に調べてから報告する
- 666 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 17:38:48 ID:+KuWPN/o]
- >>662
mathのライブラリはlibm.a LIBSに -lm を追加すればいいと思うよ。
- 667 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 18:17:13 ID:gUHlGxAr]
- >>666
ありがとう。lcやら色々ためして、lmでやっと上手く行きました。 結構速いし意外と容量食わないし、mathいいね
- 668 名前:636 mailto:sage [2008/01/22(火) 18:37:09 ID:shPt/KFF]
- 遅くなりましたが回答有難うございます。
oファイルを使っての描画はできたのですが、一々Makefileに書き足すのが面倒なので、 bmp2sprのようにデータをそのままcに書きだすツールはありませんか?
- 669 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 19:24:11 ID:Ji00TJph]
- >>668
Makefileにサフィックスルール書けばいいんじゃないの?
- 670 名前:名前は開発中のものです。 mailto:sage [2008/01/22(火) 21:40:43 ID:shPt/KFF]
- 自己解決しました。
24ビットbmpをAGBGFXConverterで65536colorで出力したものを loadPCX、image8to16を使わずにglTexImage2Dの最後の引数に渡せばいいようですね。
- 671 名前:651 mailto:sage [2008/01/24(木) 02:33:52 ID:BV5c63Qx]
- ちょこちょこ調べてます。
問題のマジコンはクライアントアプリがたくさんあって どれが正しいのかわかりません。 で、かき集めたクライアントに、「このファイルはクリーンロムじゃないよ」的な エラーメッセージが表示されました。 この違いか? と思ったのですが、特に解説しているところが無いのでよくわかりません。 クリーンロムと自作アプリの違いは具体的にどんな物があるのでしょうか? また、自作アプリはクリーンロムファイルに変換など出来るのでしょうか。
- 672 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 16:43:06 ID:2CVHVwGW]
- moonshellのUnicode対応版libfatを使って、
日本語のファイル名を取得し、拡張子を変更して新たにファイルを作成したい場合、 どうしたらいいでしょう? なんか、そのまま使ったら、へんてこなファイル名になっちゃいました…。
- 673 名前:672 mailto:sage [2008/01/24(木) 17:42:03 ID:2CVHVwGW]
- 具体的には、FAT_GetLongFilenameUnicodeで取得したファイル名はfopen出来ないので、FAT_GetLongFilenameを使って取得したファイル名です。
FAT_FindFirstFile、FAT_FindNextFileで取得したファイル名は、8.3文字ながら問題なかったんですが、Longnameでファイルを作成したいんです。
- 674 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 20:16:40 ID:UKSHK03N]
- 前スレ
mdxonline.dyndns.org/backupthread_2chgamedev1113780562.html でアップされていたNDScripterのムービー ttp://sakuratan.ddo.jp/uploader/source/date22211.avi や ttp://sakuratan.ddo.jp/uploader/source/date22360.avi 保存している人いませんか? どんなものかみてみたいのですが・・・
- 675 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 20:44:32 ID:IAUAIbHD]
- date22897.aviのはにはに勝手にうpしました、ダメなら消します。
ttp://sakuratan.ddo.jp/uploader/source/date67757.avi
- 676 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 22:24:01 ID:UKSHK03N]
- >>675
完成度たかい・・・ 画像の切り替えやエフェクトなんかもスムーズに動いていますね うpして頂いてありがとうございます。
- 677 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 18:09:42 ID:RtNuqPw4]
- libndsについてくるdswifiはアクセスポイントにアクセスする形式だけど、
ゲームなどで目の前の友人と通信対戦する場合はどうやって実現されているんだろう。 無線LANを利用しているとは思うんだけど、 dswifi9.hを見てもそれらしい記述はなかったので気になっています。 GBATEKは量が膨大すぎてわかりませんでした。 わかる人いますか?
- 678 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 18:56:51 ID:SWXxV0Hq]
- 適当にopenGLのモデリングソフトに読ませても形式が違うと言われたのですが、
devkitproのサンプルにあるteapotのようなディスプレイリストのファイルってどうやって作るんですか? あとサンプルにあるようにソース内でディスプレイリストを宣言する場合、 法線ベクトルの設定はどうすればいいのでしょうか。
- 679 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 19:30:30 ID:Z072p+T/]
- 私もよく知りませんが、dswifi ad-hoc modeでググってみると
少しだけ情報があるような
- 680 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 00:21:05 ID:78g3RWU1]
- gritで複数の画像からパレットを共有するにはどうすればいいの?
- 681 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 10:22:05 ID:fXwljVE8]
- >>674
sakuratan.ddo.jp/uploader/source/date67929.zip 結局DIDLにも対応無いまま、かつ一部のエフェクトとか未対応のままなんだよね・・・。 ちと残念、
- 682 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 11:59:07 ID:rKTLyX7Y]
- 680だけど、みんな複数のファイルのパレット共有について悩んでない?
自分でgritのソースにパレット共有を付け加えようかと思うけど、 他にいい方法があるなら教えてください。 やりたいのは、タイルモードのバックグラウンドを処理する時に、 タイルのベースとなる画像を複数枚用意したいだけなんだ。 そして、gritで出力されるファイルに使われているパレットを その複数枚で同じものにしてもらえれば、プログラムが楽になるよね。
- 683 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 12:36:55 ID:ICIFIctN]
- 画像の時点でパレットを共有させておく
gritを捨てて自分でコンバーターを作る 選びなさい
- 684 名前:名前は開発中のものです。 mailto:sage [2008/01/29(火) 02:47:40 ID:27IhKRFN]
- >>678
つ ndsFifo.py つ glNormal3f
- 685 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 12:44:06 ID:bzNJh7D5]
- R4からM3Realに変えて、マルチメディア系のファイル再生を色々試しているのですが、
R4ではフツーに使えていた、MoonShell Ver1.71+1のタッチパネルの操作感がどうもオカシイ。 で“M3 DS REAL みなサンきゅ〜”スレによると、Moonlight氏の非公式リリースによる、 Repair MoonShell for M3REALというパッチがあるとの事。 で、Moonlight氏のInfantile Paralysiserサイトを探してみましたが見当たりませんでした。 色々ググってみたんですが、このRepair MoonShell for M3REALって、Moonlight氏の今後の非公式リリースを 待つしかないみたいですね。 Moonlightさん!勝手なユーザの要望ですが、是非とも公開よろしくお願いします!
- 686 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 19:54:01 ID:VF7RA7Ye]
- 黙れカス
- 687 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 21:22:21 ID:7dD0QU5G]
- >>686
何いってんだ?
|

|