2004年1月4日の日記を表示中
2004年 1月 4日 (日)
■DirectSound
今日はほぼ一日,DirectSoundでどっぱまりでした.DirectSoundといってもWindowsのあれではなくてGBAの方なわけなんですが.タイマ動かしつつサウンドデータをDMAでFIFOに叩き込んで,DMAコントローラの割り込みで転送済みデータサイズを減らして,0になったらDMAとタイマ止めて・・・,と「Linuxから目覚める〜」と全く同じようにコーディングしたつもりなのに,何故か前の方のデータを再生すると,ちょっとだけはみ出て続きの領域に格納されたデータが一緒に再生されてしまう・・・.
色々調べた結果,どうもDMA終了割り込み時に転送済みサイズを16しか減らしていないのがダメらしく,ここを20にしたら(要するに早目にDMA転送を切り上げるようにしたら)きれいに音が出るようになったんですが,なんでFIFOのサイズより多く転送されてしまうのか,わけがわかりません.サンプリングレートもデータサイズもちゃんとあってるはずなのに・・・.というか,16byte転送につき1回割り込みかかるって,本当なのか???
[コメントを書く]
■というわけで
一応休み終わりなんで,正月休みの成果ということで,GBAのテトリスです.bzip2で圧縮されてるんで,適当に解凍してください.解凍後は,実機に転送するか,VBAで動かせます.背景は具満タン8についてたのを使ってます.効果音はザ・マッチメイカァズさんの物を利用させていただいてます.何の役に立つかもわかりませんが,一応近々ソースその他を含めてがらくた置場に置く予定です.今は,激しく汚くて・・・,ちょっと・・・.
で,「Linuxから目覚める〜」ですが,色々勉強になったものの,あれだけだとやっぱつらいですね.特にレジスタのアドレスとか,まとめて掲載したページが無いのが痛い.あと,やっぱ筆者さんがあっさりPhotoshop使って作業しちゃったりしてるのが萎えます.「Linuxから」とタイトルにつけたなら,画像変換はgimp+自作プログラムで,音声変換はsox+自作プログラムでという具合に,KNOPPIX上で気合いで完結させて欲しかった・・・.これなら最初からWindows+Cygwinとかの方が良くない?
[コメントを書く]
[コメントを書く]
2004年1月4日の日記を表示中
[コメントを書く]