GBA の DirectSound でサウンド再生
■ GBA の DirectSound でサウンド再生
GBA の DirectSound で wav を再生させる方法のメモ。
■ サウンドファイルの準備
SoX で Mono 8bit signed なデータを作成します。
% sox nocturne.wav -r 11025 -c 1 -b -s audio.raw
objcopy で *.o に変換。
% arm-elf-objcopy --rename-section .data=.rodata -I binary -O elf32-littlearm -B ARM audio.raw audio.o
■ あとは
DMA と Timer を回して再生させます。
■ 注意点
サウンドの FIFO が不特定のタイミングでストールする現象を回避するために
以下の処理が必要です。
- サウンドのために DMA をセットし直すときは必ず FIFO をリセットする
- サウンドを止めた際は DMA やタイマーを止めるだけでなく、 REG_SOUNDCNT_H の ENABLE フラグを落とす
Comments for This Page. Date: 2007-07-24 11:10 (JST)