2004年1月4日の日記の1番目の記事へのコメント
■DirectSound
今日はほぼ一日,DirectSoundでどっぱまりでした.DirectSoundといってもWindowsのあれではなくてGBAの方なわけなんですが.タイマ動かしつつサウンドデータをDMAでFIFOに叩き込んで,DMAコントローラの割り込みで転送済みデータサイズを減らして,0になったらDMAとタイマ止めて・・・,と「Linuxから目覚める〜」と全く同じようにコーディングしたつもりなのに,何故か前の方のデータを再生すると,ちょっとだけはみ出て続きの領域に格納されたデータが一緒に再生されてしまう・・・.
色々調べた結果,どうもDMA終了割り込み時に転送済みサイズを16しか減らしていないのがダメらしく,ここを20にしたら(要するに早目にDMA転送を切り上げるようにしたら)きれいに音が出るようになったんですが,なんでFIFOのサイズより多く転送されてしまうのか,わけがわかりません.サンプリングレートもデータサイズもちゃんとあってるはずなのに・・・.というか,16byte転送につき1回割り込みかかるって,本当なのか???
[コメントを書く]
2004年1月4日の日記の1番目の記事へのコメント
[コメントを書く]