X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fgamescr.c;h=cf3b9161cdaf555320f5bfee21fc000a4050260d;hb=3c6883b3d1448694c8b40c7e3c534471d389d11b;hp=a6ae3fa6215099c2eafa22a098652bb9485e9111;hpb=d287cb5711617ee224f307c3408f19978ca8e172;p=gbajam22 diff --git a/src/gamescr.c b/src/gamescr.c index a6ae3fa..cf3b916 100644 --- a/src/gamescr.c +++ b/src/gamescr.c @@ -204,13 +204,19 @@ static void draw(void) ARM_IWRAM static void gamescr_vblank(void) { - static int bank, bankdir, theta, scale; + static int bank, bankdir, theta, s; int32_t sa, ca; theta = -(bank << 3); - scale = MAXBANK + (abs(bank) >> 3); - sa = SIN(theta) / scale; - ca = COS(theta) / scale; +#if 0 + s = 0x100000 / (MAXBANK + (abs(bank) >> 3)); + sa = ((SIN(theta) >> 8) * s) >> 12; + ca = ((COS(theta) >> 8) * s) >> 12; +#else + s = (MAXBANK + (abs(bank) >> 3)); + sa = SIN(theta) / s; + ca = COS(theta) / s; +#endif REG_BG2X = -ca * 120 - sa * 80 + (120 << 8); REG_BG2Y = sa * 120 - ca * 80 + (80 << 8);