NintendoDS(NDS)非公式開発 Part1at GAMEDEV
NintendoDS(NDS)非公式開発 Part1 - 暇つぶし2ch278:Moonlight
06/08/22 03:22:21 ifxxTdvS
>>277
音出さないでoggデコードだけするシンプルなサンプルなら、mspv10_oggのソースがわかりやすいかもしれません。
MoonShell 1.31のダウンロードページのMSPV40SDKに入ってます。
ストリームPCM周りは全部MoonShellに依託するので音は出ませんが。
main.cppのStart関数が始めにファイルハンドル付きで呼ばれて、あとは定期的にUpdate関数が呼び出されるだけです。で、最後にFree関数で解放。
ov_open_callbacks使ってますが、別段問題ありませんでした。

メインメモリに直接マッピングされたoggバイナリを展開するなら、

size_t callbacks_read_func (void *ptr, size_t size, size_t nmemb, void *datasource){
s32 len=size*nmemb;
if((FileSize<=FileOffset)||(len<=0)) return(0);
if(len>(FileSize-FileOffset)) len=FileSize-FileOffset;
u8 *pu8=(u8*)ptr;
for(s32 cnt=0;cnt<len;cnt++){
pu8[cnt]=FileBuf[FileOffset];
FileOffset++;
}
return(len);
} // 開業多すぎと怒られたので詰めました…見づらい

ってな感じで。(上のは適当に書いたので動かないと思います。雰囲気だけ)

また、oggライブラリはoggTremorじゃないとCPUが間に合わなかった記憶があります。
-DLOW_ACCURACYしないとoggTremorでも音飛びしましたが、これは私の最適化技術の低さの成せる技だと思います。
あと蛇足ですが、-fsigned-charもやっとかないとダメだったような気がします。
とりあえず、いま192さんが作っているプロジェクトのMakefileに-fsigned-charを追加してみてはいかがでしょうか。

わたしも否定的なレスばかりにならないように心掛けたいです。(ほんとに(苦笑



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch