あーさん日記

https://akkera102.sakura.ne.jp/gbadev/ の中の人

リハビリ8

エフェクト処理で1フレームごとに呼び出す関数なんですけど・・・。

// 引数sx 0-7
IWRAM_CODE void Mode3DrawCopyH(s32 sx)
{
	u16* d = (u16*)VRAM + sx;
	u16* s = Mode3.buf  + sx;
	s32  x, y;

	for(y=0; y<SCREEN_CY; y++)
	{
		for(x=0; x<SCREEN_CX/8; x++)
		{
			// 167 -> 227
			*d = *s;

			// 167 -> 19
			// dmaCopy(s, d, 2);

			d += 8;
			s += 8;
		}
	}
}

この関数前後のVCOUNT値を調べてみます。

VCOUNT 167 -> 227

結果ぎりぎり。素直に書いてこれですかーい(血吐き)と愚痴らせて頂きます。
さすがGBAプログラミングです(泣。


追記:
f:id:akkera102:20181021234155p:plain
黒背景→玄関を表示。8フレームで完了で、スクショは7フレーム目です。