あーさん日記

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

バグが取れない問題

うーん完全にお手上げ状態。テンポが高速になっていて計算式がおかしい、ということはわかります。
ではその計算式を見ると以下になっていて問題はず・・・。

	// GBA timer2,3(cascade) = (GBA clock / samples rate) * samples
	uint32_t time = 0x100000000 - (16800000 / 44100) * ((d3 << 8) | d2);

	fputc(0x61, fp);
	fputc((uint8_t)(time >>  0), fp);
	fputc((uint8_t)(time >>  8), fp);
	fputc((uint8_t)(time >> 16), fp);
	fputc((uint8_t)(time >> 24), fp);
	fputcCnt += 5;

	continue;

GBA側への受け渡しも問題ないし。タイマーのカスケードの仕様か何かハードウェア的問題か・・・。
取っ掛かりがないものですからダメかもしれません。