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/
0585名前は開発中のものです。
2007/12/31(月) 01:52:33ID:rN7PTsQ5libnds-20071023使ってるけど、BG_BMP16_256x256の値がこうなってました。
---
#define BG_BMP16_256x256 (BG_RS_32x32 | BG_256_COLOR | BIT(2))
---
BG_256_COLORが入ってます。
あと、16ビットカラーだったら、dmaCopyの3番目の引数は256x256x2になると思います。
0586584
2007/12/31(月) 01:54:38ID:M5kyCS2VdmaCopy(foo_bin, BG_GFX, 512*256);
dmaCopyの3番目の引数はファイルサイズでしたorz
BG3_CR = BG_BMP16_256x256;
こっちの256x256は画像の解像度ということでよいのでしょうか?
また、画像を利用するに当たりbmpをbinにするのと、
png+gritを変換する方法がありますが、これに何か違いってありますか?
0587584
2007/12/31(月) 02:03:40ID:M5kyCS2Vすいません。上書き込んでるときにレスがあったみたいで
一部コメントの内容が重複してしまいました。
>256*256*2の部分、わかりました。ありがとうございますm(_ _)m
ところで、
>BG_256_COLORが入ってます。
はどういった意味があるんでしょうか?
#define BG_256_COLOR (bit(7))
となってますが、(BG_RS_32x32 | BG_256_COLOR | BIT(2)) が
16bitsの解像度が256x256の画像を使う宣言みたいなものと
覚えておけばよいでしょうか?
0588584
2007/12/31(月) 02:07:44ID:M5kyCS2V2バイトなのでさらにx2したから256*256*2ですね
0589Moonlight
2007/12/31(月) 04:45:20ID:GrGVceoQsndtest.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サンプル以下の累積誤差補正コードを自前で書くなら大丈夫だと思いますがめんどくさくてやってられなーい。(笑))
なにはともあれ、ソースが役に立ったみたいで本当に嬉しいです。
0590Moonlight
2007/12/31(月) 04:45:55ID:GrGVceoQ私もあまり詳しくはないのですが、BG設定は同じビットでも他のビットの設定によって意味が変わってくることがありました。
GBAからむりやり拡張したって感じがします。
8bitカラーモードのときと15bitカラーモードのときでは、同じビットでも意味が違うという感じで。(BGサイズと拡張パレットの設定ビットとかめちゃくちゃだと思うんですけどどうなんでしょうか(苦笑
ちなみに、例えばビットマップBGに256x256画像を読み込んでも実際には256x192分しか見えませんが、縦オフセットを徐々に変えると手軽にスクロール効果を表現できたりします。ランダムに細かく変えると地震っぽいとか。
チラ裏というか余談失礼しましたです。
0591583
2007/12/31(月) 17:46:55ID:rN7PTsQ5libogg+libvorbisが重い。
↓
tremorのことを思い出す。早速導入。
↓
再生の始めが早送りに聞こえる。後に期待した音が流れる。
↓
日暮れ。←いまここ
↓
そば食べる。
今まで、ぶちぶち言ってたのに困ってたんですが、今度は逆に早送り・・・。
誰か他にogg(tremor)いじってませんか?
0593583
2008/01/01(火) 10:45:53ID:NNk1mtuattp://www.uploda.org/uporg1183384.zip.html
遅くなりました。よろしくお願いします。
0594名前は開発中のものです。
2008/01/01(火) 15:24:49ID:T3NYT7jtDSのプログラムを初めて思ったのは、面白いことをするためには
どうしてもハードウェアの制作が必要になるんだな、ということです。
例えばGPSとかカメラとか、そういったのをDSに付けたくなってしまう。
俺はずっとソフトウェアしかやってこなかったので、
初心者の気分でハードウェアの勉強をしてみようかと思うんだけど
そういうときに最初に行くべきスレッドってどこでしょう?
今年、DSの自作プログラムの幅が広がれば嬉しいな
0595名前は開発中のものです。
2008/01/01(火) 21:24:21ID:+s8QW2Sxhttp://science6.2ch.net/test/read.cgi/denki/1072102432/
0596名前は開発中のものです。
2008/01/01(火) 22:38:14ID:Rbh21JyU0597Moonlight
2008/01/01(火) 23:06:37ID:Ftb+OQMO割り込み内で直接デコードしちゃうのは危険ですー。
っていうほど危険じゃないのかも…。私が調べたときは、割り込み時にユーザスタックに切り替えてくれない割り込みハンドラだったので、スタックが極端に少なかったです。(今は大丈夫なのかも…)
とりあえずデコードはできているみたいなので大丈夫と仮定して次に。
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フレームだけ極端に重いので、リングバッファじゃなくダブルバッファだけでも入れてみて様子を見たり…。(対処療法的なので誉められた対応ではないのですがテストで(笑))
0598名前は開発中のものです。
2008/01/01(火) 23:19:13ID:6ptbDBuA>>594
DSの場合、Wi-Fiが使えるので無線経由でPCに接続したカメラや
GPSの情報取得してもおもしろいかもね
0599593
2008/01/02(水) 00:19:35ID:xkC7Ea9V添削ありがとうございます。
再生データの形式を書き忘れていたのですが、16384Hz/モノラル/16ビットで正解です。
割り込みと処理落ちというキーワードから見直しをしてみました。
FIFOハンドラのループで複数のコマンドがキューに乗ったときに連続して処理して、
間髪入れずに鳴らすコマンドを投げてしまいます(と、指差ししながら脳内検証)。
デコードの処理をハンドラから出してみたところ、現象は収まりました。
ただ、初回デコードが時間がかかってる感じが少しします。
対策として、
ダミーのデコード(鳴らさない)
↓
ov_*_seek系のAPIで先頭シークに戻す
↓
改めて再生
ってなことをしようと思ったんですが、ov_pcm_seek( &vf, 0 )が効いてる気がしない様子。
あしたもがんばるぞorz
0600名前は開発中のものです。
2008/01/02(水) 08:06:49ID:tTTSdt9O実は加古英児さんのサイトを見ていて触発されたんです。
http://www.kako.com/neta/
このページを見て、小学生のころ電子工作(とは名ばかりのはんだ付けキット)を
やっていた記憶が鮮やかによみがえり、本格的にやりたくなりました。
だからARM系やCPLDだけじゃなくて、1から回路を作って楽しみたいんです。
そういうときの入門スレってどこだろう??
(それはそれとしてWi-Fiは面白そう、ありがとう!)
0601名前は開発中のものです。
2008/01/02(水) 09:51:15ID:6mZ1FxBS0602593
2008/01/02(水) 11:10:58ID:xkC7Ea9Vlibtremorの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
0603Moonlight
2008/01/02(水) 14:11:11ID: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が…。
独り言で長文書き込んですいませんです。ではまた。
0604593
2008/01/02(水) 15:49:48ID:xkC7Ea9V時系列に書いていきます。
まず、>>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
0605名前は開発中のものです。
2008/01/02(水) 15:57:05ID:6ig8IlcH0606名前は開発中のものです。
2008/01/02(水) 16:28:43ID:3kcyZQN40607Moonlight
2008/01/02(水) 23:30:28ID:w4bCClKXあーフラグの偽でしたか。私もoggライブラリ移植するときに引っかかりました。charのsigned/unsignedとか。
misc.hを直接書き換えて、LittleEndianしか通らないようにしました。(手抜き(笑
私はlowmem_branchをマージしたのですがtrunkしかないしメモリリークバグもあるしであまり好きじゃないです。
ovs_seekを直す。結局それが一番近道だと思います。(笑
わざわざ開発状況の報告をさせてしまってどうもでした。またなにか躓いたら(役に立てるかは別としてっ!(笑))訊いてくださいね。でわでは。
0608名前は開発中のものです。
2008/01/05(土) 00:43:36ID:/+yjt+NHめらまん氏のwikiは見たのですが何をやっているのか理解できず。
サンプルのspritebitmapを弄ってますがどうにも・・・
0609名前は開発中のものです。
2008/01/05(土) 00:50:22ID:9PNTe7K30610608
2008/01/05(土) 00:58:17ID:/+yjt+NHTileでpng使ってたもので、そのまま使えるかなとか思っておりましたが
spriteってやっぱりbmpでやるものなんでしょうか?
0611608
2008/01/05(土) 01:26:12ID:9PNTe7K3自分はbmpをCソースに書き出して使ってるのでどっちでもいいと思ってる。
pngは展開しないといけないので、特に理由が無い限り使わないです。面倒だし。
0612名前は開発中のものです。
2008/01/05(土) 11:34:13ID:c8GGWOxFお前の番号ずれてないか
0613Moonlight
2008/01/05(土) 20:15:53ID:j7N7Qhlyもし私なら、
・画像ファイルからbinに変換した画像の扱いに慣れるまでビットマップでいじくってみる。スプライトのことはとりあえず忘れる。
・DLDIドライバを組み込んで、半角英数10行くらいのテキストファイルを表示してみる。
・色深度固定(例えば24bitとか)のbmpファイルをディスクから読み込んで、15bitに自前で変換して表示してみる。
・色深度自由な汎用bmpライブラリを組んでみる。
・libpngを組み込んで、色深度固定のpngファイルを読み込んで、15bitビットマップに変換して表示してみる。
・色深度自由な(アルファチャネルとかを含む)pngライブラリを組むかどうかはやる気と気分次第。
・この頃になるとビットマップの扱いに充分慣れていると思うので、スプライトで表示してみる。8bitパレットを扱うかはやる気次第。
という感じで、進んでいくと思います。あくまで、私ならですが参考になれば幸いです。
0615名前は開発中のものです。
2008/01/11(金) 16:48:48ID:IDnFxZnmフォントの一部の色を透過させて背景画像が見えるようにしたいのですが
フォントの描画はスプライトで行うのが一般的でしょうか?
0616名前は開発中のものです。
2008/01/11(金) 17:00:08ID:lysu1ST4対応していただけないでしょうか・・・
0617Moonlight
2008/01/11(金) 18:37:48ID:858Jtf0Vもちろんスプライトでもできますが、背景BGと文字BGを重ねるほうが楽だと思います。日本語フォントを扱うならスプライトでどうこうできる量ではないので。
色を透過させるだけならこれでできますが、影を半透明でとかアンチエイリアスフォントだとかになったら、ビットマップモードしかないと思います。
最近わたしはもうめんどくさいので、ビットマップモード&自前合成ばっかりです。(Windowsと似た感覚で扱えるので)
>>616
EWIN2は…。ごめんなさい、古すぎてもういいやって感じがしています。(不遜でごめんなさいです。
特にこの機能だけ使いたいからメニューでAボタン押したらこれ、Bボタンはこれにしてほしい、というくらいなら対応できます。
0618名前は開発中のものです。
2008/01/11(金) 20:34:41ID:gV4ausxY616です。
EWIN2の対応は諦めました。
カーソルキーで移動、Aボタンで選択というのは無理でしょうか?
R4でもそれなら、もう少し使い易くなると思います。
0619名前は開発中のものです。
2008/01/11(金) 22:43:18ID:gV4ausxYカーソルキーで移動・選択、Aボタンで実行です。
よろしくお願いします。m(__)m
0621615
2008/01/15(火) 21:21:10ID:lG1M2LiDBG3に書き込んだキャラクタの座標や、透過設定した色が反映されませんでした。
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) );
0622615
2008/01/15(火) 22:24:27ID:lG1M2LiDただ、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
にしたのですが、こうすると逆に背景が少し下にずれて描画されてしまいました。
0623615
2008/01/15(火) 22:31:45ID:lG1M2LiDbaseは0..31あって、1が0x0600 4000に対応して、
以降そのまま番号ごとに対応しているのですね。
NDS/Tutorialsをもっと読んできます・・
0624Moonlight
2008/01/15(火) 23:29:54ID:r+7lzlIgえーっと、よくわかりませんが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割り当てを変えたほうがって蛇足過ぎですね私。
ビデオ周りはほんとめんどくさくてわかりづらいのですが、めげずに頑張ってくださいませ。それでは。
0625Moonlight
2008/01/15(火) 23:36:50ID:LHI5s0tvごめんなさい書き間違えました。
>前景(人物とか)をBG2、背景をBG3に
を修正、
>背景をBG2、前景(人物とか)をBG3に
ですね。
で、ソースだとBG2の優先度が0でBG3が1なので、BG2を1でBG3を0にすると重ねる順番が直るかも直らないかも私が数字を勘違いしてるかも。
一度動いたらもうBG/OBJ周りは手を加えたくない…(苦笑
0626Moonlight
2008/01/15(火) 23:53:22ID:h1DkvG7eARMアセンブラで、RNでエイリアスしたレジスタを解除するにはどうしたらいいでしょうか。
気持ちとしてはこんな風に書きたいです。
REG_tmp RN r1
ldr REG_tmp,[sp]
add REG_tmp,#1
str REG_tmp,[sp]
REG_tmp UNRN (とかundefRNとか…)
別にエイリアスしたままでも(プログラム的には)問題ないのですが、他のことに使ってるときに間違って使ってしまいそうなので解除したいです。
r15に再割り当てできれば、間違えて使う=即異常動作なのでわかりやすいのですが、もう宣言されてるよばかーと言われてしまいました。
0627名前は開発中のものです。
2008/01/16(水) 07:04:48ID:zWJR+3dimemcpyは1バイトずつコピーするから奇数バイトのコピーでこけるんじゃないかな
自作の4バイトメモコピー関数作ればどう
int* p1 = (int*)src;
int* p2 = (int*)dst;
len>>=2;
for (i = 0; i < len; i++)
{
*p2++ = *p1++;
}
0628名前は開発中のものです。
2008/01/16(水) 11:06:38ID:zxUoql5e確かに必要ないところでは使えなくしたいところですね
で、マニュアルのRNの項目を見てみたんですが、
「違う名前で同じレジスタを重複して使わないように注意してね」って書いてあるだけですね
これといって、RNの逆をしてくれる疑似命令はなさそうです
使いたくなければ、別ファイルに分けろってことでしょうかねぇ
0629615
2008/01/16(水) 16:18:34ID:Rxj1FtFAありがとうございます。ビデオまわりの部分は検索しても情報が少なく
これまで馴染みがなかった概念があり手探り状態です。
ちょっとした情報でも大変参考になります。
0630615
2008/01/17(木) 01:37:04ID:Z+jfE4TAなかなか上手く行かないものですね。
0631名前は開発中のものです。
2008/01/17(木) 19:42:19ID:CSwrgLBR2点
0632Moonlight
2008/01/17(木) 21:47:28ID:daPJ8MZfわざわざ調べてくださってありがとうございます。
注意してね、って書いてあって(危険性を認識していて)なおかつ対処法が書いてないということは、本当に無いんでしょうね。
同じレジスタを交差しながら使いまわして最適化しているので、簡単にはブロックごとに別ファイルにできなさそうです。
MACROだけだと不十分なので、プリプロセッサで#includeと#defineを使って、とも思ったのですが、コンパイル中に別のexe起動させるのもなんか面倒くさそうでやめました。
むー。全体的にほとんど十分なのですが、痒いところに手が届かない感じ…(苦笑
0633名前は開発中のものです。
2008/01/18(金) 21:10:46ID:uKjx+lCOチェックプログラムを作って、それに通してチェックさせるしかないんじゃないでしょうかね。
DOSアプリでチェックプログラムを作ってみました。
UNRN xxxと書いた所から先に、xxxが見つかったら行番号と名前を表示します。
(UNRNは実際にはない命令なので、先頭に;を付けてコメントとしてください)
テストソースtest.sを同梱したので、通してみたら分かると思います。
まあ、面倒ですがw
ttp://ud.gs/40dtl
ちなみに、#defineはEQUのことでしょうか。レジスタにEQUは使えないんですよね。
REG_tmp EQU r1
とすると、見事にエラーになりました。
0634名前は開発中のものです。
2008/01/19(土) 15:00:00ID:lwFGyVi0pcxファイルはどのようにして変換すればいいですか?
0635名前は開発中のものです。
2008/01/19(土) 15:14:31ID:9w9pPM+Z0636名前は開発中のものです。
2008/01/19(土) 15:34:28ID:lwFGyVi0そこで何を使っているのかがわかりません。
0637名前は開発中のものです。
2008/01/19(土) 16:13:09ID:PbX5b0Di0638名前は開発中のものです。
2008/01/19(土) 18:21:37ID:Edl9lJvcけど俺は635と637を支持する
0639名前は開発中のものです。
2008/01/20(日) 05:31:33ID:Tm5/geYlちゃんと636の意図を汲んで回答したつもりですよ
0640名前は開発中のものです。
2008/01/21(月) 06:25:28ID:V51tZRX6氏ねよ低脳^^
0641名前は開発中のものです。
2008/01/21(月) 06:45:03ID:RQWaaLj1液タブって一番安いのでも10万近くするし、実現できたら入門用としていいなと
0642名前は開発中のものです。
2008/01/21(月) 16:11:40ID:jSedK63mあったけど、PC側のドライバを作れれば、できそうな気はするが。
0643名前は開発中のものです。
2008/01/21(月) 19:46:01ID:DnoBdQO+0644名前は開発中のものです。
2008/01/21(月) 21:01:50ID:O1DPMOZH液タブじゃなくてタッチパネル液晶なら3万ぐらいからあるよ
違いはペン交換負荷、筆圧感知なし
もうちょい安くするなら、安いPDAって選択肢もあり?
QVGAならDSと同じぐらいの値段だし
0645名前は開発中のものです。
2008/01/21(月) 21:36:18ID:4X6pNulX再うpお願いしたいです。
0646名前は開発中のものです。
2008/01/21(月) 21:37:58ID:o5qLQIe2探し方がほんの少し足りないんじゃないかな?
0647名前は開発中のものです。
2008/01/21(月) 23:19:03ID:ZIx41Zvj0648名前は開発中のものです。
2008/01/22(火) 00:11:48ID:UXR2naSdって感じに使う事は可能なんでしょうか?
0649名前は開発中のものです。
2008/01/22(火) 01:09:41ID:UKSk6OUY実機で動かすまでの差し替えが面倒になってきたので、1:1タイプの
N-Cardを買いました。
で、プログラムを書き込んでみたのですが、音が出ません。
手持ちのソフトのイメージではきちんと音が出るのですが。
自作プログラムとROMイメージは同じ物ではないのでしょうか?
0650名前は開発中のものです。
2008/01/22(火) 01:58:57ID:PNF0vUM/0651名前は開発中のものです。
2008/01/22(火) 02:28:24ID:UKSk6OUYやっぱスルーされますかorz
とりあえず自作プログラムがマジコンごとに動きが違うことって
いうのが起きうるのか。
また、違いがあるのであれば、おかしい方は一律おかしい結果で
あれば納得できるのですがROMイメージはおかしくないので、
情報をお持ちのエスパーがいれば、と思ったのですが・・・。
他にもサンプルを動かしてみました。
examples/nds/Graphics/3D/Misc/Picking ... タッチパネルでPickできない
examples/nds/sound/SimpleSound ... 音(ry フリーズしてる模様
0652名前は開発中のものです。
2008/01/22(火) 02:47:26ID:QDQndHhu他のマジコンでは音は出るの?
あと、エミュで動かしたらどうなる?
エスパーな俺に言わせれば、単なるバグだと思うけど。
0653名前は開発中のものです。
2008/01/22(火) 04:46:34ID:FTu8bsB4そのマジコンがROM起動前に勝手に違う値で初期化してたら場合によっては他とは違う動作するよな
違うってことはあるんじゃないか?・・・というかあるだろ
他のマジコンあるなら試してみるのがいいだろな
動いた場合どっちのマジコンがおかしいのか調べるの大変そうだけど
0654651
2008/01/22(火) 08:52:26ID:UKSk6OUY今までEZ5使ってました。期待通りの動きをします。
エミュは、desmumeを使ってます。
音は出ない代わりにフリーズしません。
IPCを経由してARM7側で代入した値をARM9側で
表示するプログラムをおこしてみました。
ARM7側で指定した値になってない。
ARM7側が止まる/動いてないみたいな状態になってると憶測。
これが原因であれば、音も出ないしタッチパネルの座標も取れない。
こんなことってあるの?
0655名前は開発中のものです。
2008/01/22(火) 12:07:32ID:t/rMcNXw0656名前は開発中のものです。
2008/01/22(火) 12:33:25ID:QDQndHhu>こんなことってあるの?
もちろんある。
開発の経験少ないとわからないかもしれんが、単なるバグだろうな。
>>653 の言うように初期化漏れである可能性もかなりある。
不具合が再現する環境で調査するのがいいよ。
あと、バグと認識した上で調査すること。
0657名前は開発中のものです。
2008/01/22(火) 13:41:15ID:gUHlGxArdevkitProにそういった関数がない以上、
自前でマクローリン展開をするか
対数テーブルでも作るしかないとは思うけど
だれか実践している人はいますか?
0658名前は開発中のものです。
2008/01/22(火) 14:02:36ID:Ji00TJphはダメ?
0659名前は開発中のものです。
2008/01/22(火) 14:46:32ID:QDQndHhudevkitPro/devkitARM/arm-eabi/include/math.h
0660名前は開発中のものです。
2008/01/22(火) 14:57:28ID:gUHlGxArなんと…
これを使うためにはどうすればいいの?
0661名前は開発中のものです。
2008/01/22(火) 15:04:49ID:PxbgiTbg>>658
0662名前は開発中のものです。
2008/01/22(火) 15:07:46ID:gUHlGxArそれだとlibndsのmathがインクルードされる。
インクルード自体は
#include "devkitPro/devkitARM/arm-eabi/include/math.h"
でいいんだけど、問題はリンクをどうすればいいのかということ。
0663名前は開発中のものです。
2008/01/22(火) 15:15:42ID:PxbgiTbg> それだとlibndsのmathがインクルードされる。
パス通せばいいだけなのに。
> でいいんだけど、問題はリンクをどうすればいいのかということ。
同じ場所に lib があるだろ。
0664名前は開発中のものです。
2008/01/22(火) 15:33:50ID:yQKos8cmよくわからんのだが、一部の関数は標準ライブラリの関数名とlibndsとで完全に被るんじゃない?
printfとか
0665名前は開発中のものです。
2008/01/22(火) 16:06:08ID:gUHlGxArやってみたけどリンクされなくて困った。
多分makefileが悪いんだろうから夜に調べてから報告する
0666名前は開発中のものです。
2008/01/22(火) 17:38:48ID:+KuWPN/omathのライブラリはlibm.a
LIBSに
-lm
を追加すればいいと思うよ。
0667名前は開発中のものです。
2008/01/22(火) 18:17:13ID:gUHlGxArありがとう。lcやら色々ためして、lmでやっと上手く行きました。
結構速いし意外と容量食わないし、mathいいね
0668636
2008/01/22(火) 18:37:09ID:shPt/KFFoファイルを使っての描画はできたのですが、一々Makefileに書き足すのが面倒なので、
bmp2sprのようにデータをそのままcに書きだすツールはありませんか?
0669名前は開発中のものです。
2008/01/22(火) 19:24:11ID:Ji00TJphMakefileにサフィックスルール書けばいいんじゃないの?
0670名前は開発中のものです。
2008/01/22(火) 21:40:43ID:shPt/KFF24ビットbmpをAGBGFXConverterで65536colorで出力したものを
loadPCX、image8to16を使わずにglTexImage2Dの最後の引数に渡せばいいようですね。
0671651
2008/01/24(木) 02:33:52ID:BV5c63Qx問題のマジコンはクライアントアプリがたくさんあって
どれが正しいのかわかりません。
で、かき集めたクライアントに、「このファイルはクリーンロムじゃないよ」的な
エラーメッセージが表示されました。
この違いか? と思ったのですが、特に解説しているところが無いのでよくわかりません。
クリーンロムと自作アプリの違いは具体的にどんな物があるのでしょうか?
また、自作アプリはクリーンロムファイルに変換など出来るのでしょうか。
0672名前は開発中のものです。
2008/01/24(木) 16:43:06ID:2CVHVwGW日本語のファイル名を取得し、拡張子を変更して新たにファイルを作成したい場合、
どうしたらいいでしょう?
なんか、そのまま使ったら、へんてこなファイル名になっちゃいました…。
0673672
2008/01/24(木) 17:42:03ID:2CVHVwGWFAT_FindFirstFile、FAT_FindNextFileで取得したファイル名は、8.3文字ながら問題なかったんですが、Longnameでファイルを作成したいんです。
0674名前は開発中のものです。
2008/01/24(木) 20:16:40ID:UKSHK03Nhttp://mdxonline.dyndns.org/backupthread_2chgamedev1113780562.html
でアップされていたNDScripterのムービー
ttp://sakuratan.ddo.jp/uploader/source/date22211.avi や
ttp://sakuratan.ddo.jp/uploader/source/date22360.avi
保存している人いませんか?
どんなものかみてみたいのですが・・・
0675名前は開発中のものです。
2008/01/24(木) 20:44:32ID:IAUAIbHDttp://sakuratan.ddo.jp/uploader/source/date67757.avi
0676名前は開発中のものです。
2008/01/24(木) 22:24:01ID:UKSHK03N完成度たかい・・・
画像の切り替えやエフェクトなんかもスムーズに動いていますね
うpして頂いてありがとうございます。
0677名前は開発中のものです。
2008/01/25(金) 18:09:42ID:RtNuqPw4ゲームなどで目の前の友人と通信対戦する場合はどうやって実現されているんだろう。
無線LANを利用しているとは思うんだけど、
dswifi9.hを見てもそれらしい記述はなかったので気になっています。
GBATEKは量が膨大すぎてわかりませんでした。
わかる人いますか?
0678名前は開発中のものです。
2008/01/25(金) 18:56:51ID:SWXxV0Hqdevkitproのサンプルにあるteapotのようなディスプレイリストのファイルってどうやって作るんですか?
あとサンプルにあるようにソース内でディスプレイリストを宣言する場合、
法線ベクトルの設定はどうすればいいのでしょうか。
0679名前は開発中のものです。
2008/01/25(金) 19:30:30ID:Z072p+T/少しだけ情報があるような
0680名前は開発中のものです。
2008/01/26(土) 00:21:05ID:78g3RWU10681名前は開発中のものです。
2008/01/26(土) 10:22:05ID:fXwljVE8http://sakuratan.ddo.jp/uploader/source/date67929.zip
結局DIDLにも対応無いまま、かつ一部のエフェクトとか未対応のままなんだよね・・・。
ちと残念、
0682名前は開発中のものです。
2008/01/27(日) 11:59:07ID:rKTLyX7Y自分でgritのソースにパレット共有を付け加えようかと思うけど、
他にいい方法があるなら教えてください。
やりたいのは、タイルモードのバックグラウンドを処理する時に、
タイルのベースとなる画像を複数枚用意したいだけなんだ。
そして、gritで出力されるファイルに使われているパレットを
その複数枚で同じものにしてもらえれば、プログラムが楽になるよね。
0683名前は開発中のものです。
2008/01/27(日) 12:36:55ID:ICIFIctNgritを捨てて自分でコンバーターを作る
選びなさい
0684名前は開発中のものです。
2008/01/29(火) 02:47:40ID:27IhKRFNつ ndsFifo.py
つ glNormal3f
■ このスレッドは過去ログ倉庫に格納されています