[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 03/03 08:20 / Filesize : 236 KB / Number-of Response : 805
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

NintendoDS(NDS)非公式開発 Part2



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/

385 名前:Moonlight mailto:sage [2007/11/19(月) 04:04:16 ID:m1125lP2]
>>379

長文失礼します。
単にある区切りの時間を調べるだけなら、次のような感じでどうでしょうか。

__attribute__((noinline)) static void PrfStart(void)
{
TIMER0_CR=0;
TIMER0_DATA=0;
TIMER0_CR=TIMER_ENABLE | TIMER_DIV_1;
TIMER1_CR=0;
TIMER1_DATA=0;
TIMER1_CR=TIMER_ENABLE | TIMER_CASCADE;
}

__attribute__((noinline)) static u32 PrfEnd(void)
{
vu32 t0d=TIMER0_DATA;
vu32 t1d=TIMER1_DATA;
u32 clk=(t1d<<16) | t0d;
double dus=clk/((double)33513982/1000/1000);

_consolePrintf("prf %6dus %dclk.\n",(u32)dus,clk);
return(clk);
}

(改行多すぎで怒られたのでもう一つ追加します)


386 名前:Moonlight mailto:sage [2007/11/19(月) 04:05:11 ID:m1125lP2]
>>379

TIMER_DIV_1で長時間だと16bitオーバーフローするのでカスケードで使いました。最長約128秒まで計測できるはずです。
時間表示はマイクロ秒(1/1000000秒)単位で、ベースクロックは約33MHz単位です。
たぶん50クロック分くらいオーバーヘッドがあると思いますので、BIASは+2マイクロ秒くらいになると思います。

全ての関数の出入りをトラップして入れ子OKなプロファイラも作ってみたのですが、それなりな規模でギリギリまで最適化しなきゃいけないプロジェクトがないので使いませんでした。
様子見だけなら次のURLを流し読みしてみて下さい。使い道がありそうならソース公開します。
mdxonline.dyndns.org/archives/2007/10/post_1964.shtml







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<236KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef