#10 とにかく開発日記(2006-02/10)
「A14」になって、0.5~1グライはのびたらしい。(多分)
主な変更点は、「FM.C」の
#if 1
UINT8 YM2612Read(void){ return F2612_ST.status;}
#else
/*かなりアフォ*/
UINT8 YM2612Read(int a)ここにくるのは0から3しか来ない。(呼ぶ前にマスクしてる)
{
//YM2612 *F2612 = &g_YM2612 ;
// switch(a&3){ ここがあれば最適化で吸収される可能性がある。
switch( a ){ こうなると却って最適化出来なくなる。
case 0: /* status 0 */
//return FM_STATUS_FLAG(&/*F2612->OPN.*/F2612_ST);
return F2612_ST.status ; 同じ
case 1:
case 2:
case 3:
//return FM_STATUS_FLAG(&/*F2612->OPN.*/F2612_ST);
return F2612_ST.status ; 同じ
}
return 0; ←ここに来る事はありえない。(が、最適化ではきっと残るだろう)
}
#endif
だな。他は微差だろし。
こういうのは、直すのは簡単だけど、見つけるのは大変なんだよ。
(ソース眺めて発見した訳ではない。地道に特性から詰めた)
■もっとアフォな話。
管理人今日半日、ミキサー弄ってたんですが、コンパイルエラーでないし。
PSPに持ってくと、動いたり暴走したり。(例の電源スイッチ長押し)
コメントの中を弄ってた
アフォ.....
やっぱり、Lに接続してんのは、単なるバグですな。
でも、お陰でもちっと速くなりそう。
ミキサーは最大でも昨日のFMのみ程度にしかならんよ。
その為のチェックだわ、でも-1ぐらいで収まりそう。
現状こちらの「A15」では、FMとDACのみで、76496が鳴りませんが(殺してある)
「BF03」チェックで、
OFF,85fps
5512、79fps
11025、76-77fps
22050、71-72fps
44100、63-63fps
グライ。
やっとミキサーなんとかなりそうだわ。