#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
グライ。
やっとミキサーなんとかなりそうだわ。