summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-02-15 21:25:29 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-02-15 21:25:29 -0500
commit85b1f82d2c0626f533a9e29234328b91ade55c2c (patch)
tree50bced07c18cd8fcb225bd5acd40b43a852e3b5f /src
parent28987bb1cd0e6864257ff0434508dddcddb22e98 (diff)
Match sub_813DA64
Diffstat (limited to 'src')
-rw-r--r--src/scene/intro.c202
1 files changed, 13 insertions, 189 deletions
diff --git a/src/scene/intro.c b/src/scene/intro.c
index 3e4bd5bf4..5c0e7a67d 100644
--- a/src/scene/intro.c
+++ b/src/scene/intro.c
@@ -2002,7 +2002,6 @@ static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c)
return spriteId;
}
-#ifdef NONMATCHING
static void sub_813DA64(struct Sprite *sprite)
{
sprite->data[7]++;
@@ -2022,14 +2021,13 @@ static void sub_813DA64(struct Sprite *sprite)
break;
case 1:
{
- s16 r3;
- s16 sin1;
- s16 r6;
- s16 foo;
- s16 r5;
- s16 r2;
+ s16 sin;
+ s16 cos;
+ s16 a;
+ s16 b;
+ s16 c;
+ s16 d;
- //_0813DAC0
if (sprite->data[3] < 0x50)
{
sprite->pos2.y = -Sin((u8)sprite->data[3], 0x78);
@@ -2037,15 +2035,14 @@ static void sub_813DA64(struct Sprite *sprite)
if (sprite->data[3] > 64)
sprite->oam.priority = 3;
}
- //_0813DAF8
- r3 = gSineTable[(u8)sprite->data[2]];
- sin1 = gSineTable[(u8)(sprite->data[2] + 64)];
- r6 = sin1 * sprite->data[1] / 256;
- foo = sin1 * sprite->data[1] / 256;
- r5 = -r3 * sprite->data[1] / 256;
- r2 = r3 * sprite->data[1] / 256;
+ sin = gSineTable[(u8)sprite->data[2]];
+ cos = gSineTable[(u8)(sprite->data[2] + 64)];
+ d = cos * sprite->data[1] / 256;
+ c = -sin * sprite->data[1] / 256;
+ b = sin * sprite->data[1] / 256;
+ a = cos * sprite->data[1] / 256;
- SetOamMatrix(1, r6, r2, r5, foo);
+ SetOamMatrix(1, a, b, c, d);
if (sprite->data[1] < 0x100)
sprite->data[1] += 8;
@@ -2060,180 +2057,7 @@ static void sub_813DA64(struct Sprite *sprite)
break;
}
}
- //_0813DB92
}
-#else
-__attribute__((naked))
-static void sub_813DA64(struct Sprite *sprite)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- sub sp, 0x4\n\
- adds r4, r0, 0\n\
- ldrh r0, [r4, 0x3C]\n\
- adds r0, 0x1\n\
- strh r0, [r4, 0x3C]\n\
- movs r1, 0x2E\n\
- ldrsh r0, [r4, r1]\n\
- cmp r0, 0\n\
- beq _0813DA7C\n\
- cmp r0, 0x1\n\
- beq _0813DAC0\n\
-_0813DA7C:\n\
- ldrb r0, [r4, 0x1]\n\
- movs r1, 0x3\n\
- orrs r0, r1\n\
- strb r0, [r4, 0x1]\n\
- ldrb r1, [r4, 0x3]\n\
- movs r0, 0x3F\n\
- negs r0, r0\n\
- ands r0, r1\n\
- movs r1, 0x2\n\
- orrs r0, r1\n\
- strb r0, [r4, 0x3]\n\
- adds r0, r4, 0\n\
- movs r1, 0x1\n\
- movs r2, 0x3\n\
- movs r3, 0x3\n\
- bl CalcCenterToCornerVec\n\
- adds r2, r4, 0\n\
- adds r2, 0x3E\n\
- ldrb r1, [r2]\n\
- movs r0, 0x5\n\
- negs r0, r0\n\
- ands r0, r1\n\
- strb r0, [r2]\n\
- movs r0, 0x1\n\
- strh r0, [r4, 0x2E]\n\
- movs r0, 0x80\n\
- strh r0, [r4, 0x30]\n\
- ldr r0, _0813DABC @ =0x0000ffe8\n\
- strh r0, [r4, 0x32]\n\
- movs r0, 0\n\
- b _0813DB92\n\
- .align 2, 0\n\
-_0813DABC: .4byte 0x0000ffe8\n\
-_0813DAC0:\n\
- ldrh r1, [r4, 0x34]\n\
- movs r2, 0x34\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0x4F\n\
- bgt _0813DAF8\n\
- lsls r0, r1, 24\n\
- lsrs r0, 24\n\
- movs r1, 0x78\n\
- bl Sin\n\
- negs r0, r0\n\
- strh r0, [r4, 0x26]\n\
- ldrh r0, [r4, 0x34]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- movs r1, 0x8C\n\
- bl Sin\n\
- negs r0, r0\n\
- strh r0, [r4, 0x24]\n\
- movs r1, 0x34\n\
- ldrsh r0, [r4, r1]\n\
- cmp r0, 0x40\n\
- ble _0813DAF8\n\
- ldrb r0, [r4, 0x5]\n\
- movs r1, 0xC\n\
- orrs r0, r1\n\
- strb r0, [r4, 0x5]\n\
-_0813DAF8:\n\
- ldr r2, _0813DB60 @ =gSineTable\n\
- ldrh r1, [r4, 0x32]\n\
- lsls r0, r1, 24\n\
- lsrs r0, 23\n\
- adds r0, r2\n\
- ldrh r3, [r0]\n\
- adds r1, 0x40\n\
- lsls r1, 24\n\
- lsrs r1, 23\n\
- adds r1, r2\n\
- movs r2, 0\n\
- ldrsh r0, [r1, r2]\n\
- movs r1, 0x30\n\
- ldrsh r2, [r4, r1]\n\
- adds r1, r0, 0\n\
- muls r1, r2\n\
- adds r0, r1, 0\n\
- cmp r1, 0\n\
- bge _0813DB20\n\
- adds r0, 0xFF\n\
-_0813DB20:\n\
- lsls r0, 8\n\
- lsrs r6, r0, 16\n\
- lsls r0, r3, 16\n\
- asrs r3, r0, 16\n\
- negs r0, r3\n\
- muls r0, r2\n\
- cmp r0, 0\n\
- bge _0813DB32\n\
- adds r0, 0xFF\n\
-_0813DB32:\n\
- lsls r0, 8\n\
- lsrs r5, r0, 16\n\
- adds r0, r3, 0\n\
- muls r0, r2\n\
- cmp r0, 0\n\
- bge _0813DB40\n\
- adds r0, 0xFF\n\
-_0813DB40:\n\
- lsls r0, 8\n\
- lsrs r2, r0, 16\n\
- adds r1, r6, 0\n\
- adds r3, r5, 0\n\
- str r1, [sp]\n\
- movs r0, 0x1\n\
- bl SetOamMatrix\n\
- ldrh r1, [r4, 0x30]\n\
- movs r2, 0x30\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0xFF\n\
- bgt _0813DB64\n\
- adds r0, r1, 0\n\
- adds r0, 0x8\n\
- b _0813DB68\n\
- .align 2, 0\n\
-_0813DB60: .4byte gSineTable\n\
-_0813DB64:\n\
- adds r0, r1, 0\n\
- adds r0, 0x20\n\
-_0813DB68:\n\
- strh r0, [r4, 0x30]\n\
- ldrh r1, [r4, 0x32]\n\
- movs r2, 0x32\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0x17\n\
- bgt _0813DB78\n\
- adds r0, r1, 0x1\n\
- strh r0, [r4, 0x32]\n\
-_0813DB78:\n\
- ldrh r2, [r4, 0x34]\n\
- movs r1, 0x34\n\
- ldrsh r0, [r4, r1]\n\
- cmp r0, 0x3F\n\
- bgt _0813DB86\n\
- adds r0, r2, 0x2\n\
- b _0813DB92\n\
-_0813DB86:\n\
- ldrh r1, [r4, 0x3C]\n\
- movs r0, 0x3\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0813DB94\n\
- adds r0, r2, 0x1\n\
-_0813DB92:\n\
- strh r0, [r4, 0x34]\n\
-_0813DB94:\n\
- add sp, 0x4\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
-}
-#endif
static void sub_813DB9C(struct Sprite *sprite)
{