以前もやったことなんだけど、GBAプログラムをGCCコンパイルする時の最適化オプションのレベルを上げてみた。すると-O2や-O3を指定したときはやっぱりというか音(DirectSound)がならなくなる。割り込みルーチン内で使うグローバル変数に全てvolatileをつけてみてもダメ。試しに音をDMA転送を使ってならす部分だけを抽出したプログラムで試してみたけど、やはり最適化オプションのレベルを上げると鳴らなくなる。うーん謎だ。ラスタースクロールなど、他の割り込みを使う処理は問題なく動くのだが...。
他の人はどうしているんだろう?GCCGBAの開発している人はあんまりいないのかなぁ?