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 要らなくなりました。

Xkanon

Posted by sirius