今日の作業

3:36

SDLをゴリゴリ。

SDLに入ってるtestが一通り問題無く動くようになった。あとはダブルバッファリング。

ハードウェアカーソルはどうしようかな。要らんかな。

5:39

ダブルバッファリングも完成。うーん、ティアリングが無いってのはいいもんですなぁ。testspriteが少しおかしくなったけど、他のtestやznesterでは再現しないから放置。

これでSDLは終了かな。bvdd-0.3.1からかなりインターフェースを変更したので、MPlayerのほうも追随させないと。

6:13

ためしにPrBoomを動かしてみる。うわぁ、気持ち悪いぐらいヌルヌル動くなぁ。ていうか酔う。

よく考えたら、ザウルスってDoomが出た当時のAT互換機より速いんだよね。そりゃヌルヌル動いて当然だ。

8:07

MPlayerの修正も完了。

vo_w100のほうは、vo_bvddと同じようにビデオサイズの扱いを修正して最終版にするかな。んで、SL-C760を売りに出す。

8:40

んんん? アセンブラにバグがあるような? iWMMXtのWLDR/WSTRはARMのLDR/STRと同じようにwstrd wr0, [r0], r1などのレジスタによるプリ/ポストインデックスやアドレッシングが使えるはずなんだけど、即値しか受け付けてくれない。うーむ、修正できるかなぁ……。

9:30

binutilsのソースを調べてみたところ、ARMのLDRiWMMXtLDRのパーザの行数が全然違う。どうもサポートされていないっぽい。

rotate blitterは1サイクル削るだけで(RL_XQの場合は)秒単位で速度が変わってくるから、あの豊富なアドレッシングモードが使えないのは痛い。頑張って修正するか。

ちなみに、rotate blitterをこんなふうに数行いじっただけで……

$ mplayer-1.0.3
BENCHMARKs: VC:  58.095s VO:   0.099s A:   0.000s Sys:   0.771s =   58.965s
$ mplayer-trunk
BENCHMARKs: VC:  55.260s VO:   0.100s A:   0.000s Sys:   0.771s =   56.131s

こんなに変わったりする。こりゃあ動き補償のほうも見直さないといかんな。