Xkanon(13)
Xkanon を alsa で動かす。
xsys3 は諦めたので、暇になりました。(動かしたゲームやれよ、俺)
Xkanon が alsa でブツブツなるのが気になったのでソース (audioIO_alsa.c) を眺めていました。
オーディオの部分は、xsystem35 から引っ張ってきているのは以前に見たときにわかっていました。ほぼ、xsystem35 と同様に入出力しています。ふと気になって、snd_pcm_hw_params_get_buffer_size を調べてみました。
ふうん、snd_pcm_hw_params_get_buffer_size_min と snd_pcm_hw_params_get_buffer_size_max もあるのか。
試しに、どんなサイズを返すのか print してみたら、1536 でした。ちょっと小さいかな。と思ったのと同時に、見たことがある数字だと感じました。ソースを見ると
#define BUFFERSIZE 1536
と定義されていて、BUFFERSIZE を探すと
snd_pcm_hw_params_set_buffer_size(pcm_handle, hwparams, BUFFERSIZE)
がありました。
#define BUFFERSIZE 1536*2
にしてコンパイルしてみました。
なんと、ぶつぶつが消えました。効果音とかボイスも大丈夫でした。あれれー。バッファサイズの問題だったのかー。解決してしまいました。実際は念の為 2 倍ではなく 4 倍することにしました。
ついでにどうせミキサーは使えないんだから、ダミーに変えてしまいましょう。ソースの最後にある
#include “audioMix_OSS.c"
を
#include “audioMix_dmy.c"
に変えました。
–enable-alsa –with-alsa-pcmdev=default を付けて configure を実行して make すればいいです。
aoss 要らなくなりました。
ディスカッション
コメント一覧
まだ、コメントがありません