Tako can fry!

とほほ・・・

DsDsRevolution v0.4.4 リリース

ogg 再生を盛り込んだものをリリース。


問題になったのが曲再生開始のタイミングで、mp3 と ogg とで開始されるタイミングが異なるのである。
曲の再生が始まって何秒経過したか返してくれる API でもあれば楽だったんだけど、それもないので「なんとなく合ってる」というタイミングで処理している。
これまでは自分の主観で再生開始に 0.25 秒かかるとして処理してたけど、他のカードではもたついたりするとの書き込みも見られたので、ここはひとつ、曲の再生開始をちゃんと拾ってみようかと健闘してみた。


PCM ストリームを更新する箇所があり、最初にそこを呼んだときが曲の再生開始だと見込んで、その時間を測ってみたところ、mp3 だと 0.1 〜 0.2 秒、ogg だと 0.3 〜 0.4 秒の遅れが出ることが分かった。
しかし、mp3 の主観データである 0.25 秒に足りなくて首を捻るばかり。
結局、0.1 秒足すことで誤魔化したけど、そのうちちゃんと見直さないとなあ。
(若干速すぎるような気がして、気になる・・・)


あと、ゲーム中の時間経過として vsync を元に計算していて、なんで vsync なんて使ったのかと自分でも不思議に思ってたけど、どうも GBA の頃の経験からタイマーの精度があまりよくなかったと思い込んでた所為だった。
改めてタイマーでの計測結果と vsync とを比べてみると、やはりズレがあるので、これについてもタイマーに置き換えていかないとやばい。
海外の掲示板で見かけたけど、10 分以上の楽曲をやっていると最後のほうで譜面が曲より速く流れるという話だし。