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


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

NintendoDS(NDS)非公式開発 Part1



281 名前:Moonlight mailto:sage [2006/08/23(水) 02:46:26 ID:tj4Pgmzc]
>>280
Dualisで音が出るか知らないのですが、とりあえずデコードができた(ような気がする)ので報告しまーす。
DevKitARMr19aで、oggライブラリはUPしてくださったlibogg7/9.aとlibvorbis7/9.aをそのまま使いました。

main.cから。TransferSound*snd = NULL; snd = IPC->soundData;
を、static TransferSound StaticTransferSound; snd = &StaticTransferSound;
に変更。(IPCサウンド処理を飛ばしているだけです)

vc.read_func = ovs_read;
とかを、ov_callbacks vc = {ovs_read,ovs_seek,ovs_close,ovs_tell};
に変更。(多分関係ないです)

if( snd->data[ 15 ].len == 0 ){
の前の行に、snd->data[ 15 ].len=0;
を追加。(IPCサウンド再生完了を待たないだけです)

次、ovstream.cの変更。
if( (readseek + readsize) >= pStream->srcsize ) readsize -= (readseek - pStream->srcsize); // 詰めました。
を、if( (readseek + readsize) > pStream->srcsize ) readsize=pStream->srcsize-readseek;
に変更。

case SEEK_END: seek = pStream->srcsize + offset; break;
を、case SEEK_END: seek=pStream->srcsize-offset; break;
に変更。

で、for(idx=0;idx<read/4;idx+=2) iprintf( "%04x", ((u16*)buffer)[idx]); でそれっぽい波形がでたので大丈夫かも。(音出ししてないので自信がないw
ちょっと気になったのは、IPCにreadではなくBUFFER_SIZEを渡していますが、oggライブラリは常に要求した分だけデコードしてくれる訳じゃないので注意です。BUFFER_SIZEを超えないだけで少ないことはあります。(というか基本的にてきとーなサイズを返してくるみたいです)

いちお、動いた(かもしれない)ファイルをアップしておきます。参考になればいいのですが…。
mdxonlinemirror.dyndns.org/oggtest200608230244.zip








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

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

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