summaryrefslogtreecommitdiff
path: root/src/scene
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2018-02-14 14:16:26 -0600
committercamthesaxman <cameronghall@cox.net>2018-02-14 14:16:26 -0600
commitfc0097606ddc8b90ed2c904baf01f5a699daa03b (patch)
tree7c380799b573fc5c977fe73da394cf2823cb8189 /src/scene
parent1dd9be3869f99ae7256c6f7a04e78322d4f9a0cd (diff)
parent28987bb1cd0e6864257ff0434508dddcddb22e98 (diff)
Merge branch 'master' into decompile_debug
Diffstat (limited to 'src/scene')
-rw-r--r--src/scene/berry_blender.c321
-rw-r--r--src/scene/cable_car.c9
-rw-r--r--src/scene/intro.c206
-rw-r--r--src/scene/intro_credits_graphics.c140
4 files changed, 38 insertions, 638 deletions
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index 24cbcb9c0..6eccca047 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -2015,36 +2015,32 @@ s16 unref_sub_8050514(void)
return gUnknown_0300052E;
}
-#ifdef NONMATCHING
-
static void Blender_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 playersNo, u8* flavours, u16 maxRPM)
{
s32 i;
s32 j;
- s32 savedEntry;
s32 var3;
s32 var4;
- u32 var6;
- s32 var11;
- u16 rand;
+ s32 var6;
+ u8 r10;
for (i = 0; i < 6; i++)
gUnknown_03000510[i] = 0;
for (i = 0; i < playersNo; i++)
{
- for (j = 0; j < 5; j++)
+ for (j = 0; j < 6; j++)
gUnknown_03000510[j] += berries[i].flavours[j];
}
- savedEntry = gUnknown_03000510[0];
+ var6 = gUnknown_03000510[0];
gUnknown_03000510[0] -= gUnknown_03000510[1];
gUnknown_03000510[1] -= gUnknown_03000510[2];
gUnknown_03000510[2] -= gUnknown_03000510[3];
gUnknown_03000510[3] -= gUnknown_03000510[4];
- gUnknown_03000510[4] -= savedEntry;
+ gUnknown_03000510[4] -= var6;
var6 = 0;
- for (i = 0; i < 6; i++)
+ for (i = 0; i < 5; i++)
{
if (gUnknown_03000510[i] < 0)
{
@@ -2052,6 +2048,7 @@ static void Blender_CalculatePokeblock(struct BlenderBerry* berries, struct Poke
var6++;
}
}
+ r10 = var6;
for (i = 0; i < 5; i++)
{
if (gUnknown_03000510[i] > 0)
@@ -2067,13 +2064,13 @@ static void Blender_CalculatePokeblock(struct BlenderBerry* berries, struct Poke
gUnknown_03000530[i] = gUnknown_03000510[i];
}
- var11 = maxRPM / 333 + 100;
- gUnknown_0300055C = ((var11));
+ var6 = maxRPM / 333 + 100;
+ gUnknown_0300055C = var6;
for (i = 0; i < 5; i++)
{
var3 = gUnknown_03000510[i];
- var3 = ((var11) * var3) / 10;
+ var3 = (var3 * var6) / 10;
var4 = var3 % 10;
var3 /= 10;
if (var4 > 4)
@@ -2084,16 +2081,16 @@ static void Blender_CalculatePokeblock(struct BlenderBerry* berries, struct Poke
{
gUnknown_03000548[i] = gUnknown_03000510[i];
}
- pokeblock->color = Blender_GetPokeblockColor(berries, &gUnknown_03000510[0], playersNo, var6);
+ pokeblock->color = Blender_GetPokeblockColor(berries, &gUnknown_03000510[0], playersNo, r10);
gUnknown_03000510[5] = (gUnknown_03000510[5] / playersNo) - playersNo;
if (gUnknown_03000510[5] < 0)
gUnknown_03000510[5] = 0;
if (pokeblock->color == 12)
{
- rand = Random() % 10;
- for (i = 0; i < 6; i++)
+ var6 = Random() % 10;
+ for (i = 0; i < 5; i++)
{
- if ((gUnknown_082165DF[rand] >> i) & 1)
+ if ((gUnknown_082165DF[var6] >> i) & 1)
gUnknown_03000510[i] = 2;
else
gUnknown_03000510[i] = 0;
@@ -2116,296 +2113,6 @@ static void Blender_CalculatePokeblock(struct BlenderBerry* berries, struct Poke
}
}
-#else
-__attribute__((naked))
-static void Blender_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 a2, u8* flavours, u16 a4)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x10\n\
- str r0, [sp]\n\
- mov r8, r1\n\
- str r3, [sp, 0x4]\n\
- ldr r0, [sp, 0x30]\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- mov r9, r2\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- str r0, [sp, 0x8]\n\
- ldr r7, _080505DC @ =gUnknown_03000510\n\
- adds r2, r7, 0\n\
- movs r1, 0\n\
- adds r0, r7, 0\n\
- adds r0, 0xA\n\
-_0805054A:\n\
- strh r1, [r0]\n\
- subs r0, 0x2\n\
- cmp r0, r2\n\
- bge _0805054A\n\
- movs r6, 0\n\
- cmp r6, r9\n\
- bge _08050580\n\
- ldr r0, _080505DC @ =gUnknown_03000510\n\
- mov r12, r0\n\
- ldr r5, [sp]\n\
- adds r5, 0x9\n\
-_08050560:\n\
- movs r3, 0\n\
- adds r4, r5, 0\n\
- mov r2, r12\n\
-_08050566:\n\
- adds r1, r4, r3\n\
- ldrh r0, [r2]\n\
- ldrb r1, [r1]\n\
- adds r0, r1\n\
- strh r0, [r2]\n\
- adds r2, 0x2\n\
- adds r3, 0x1\n\
- cmp r3, 0x5\n\
- ble _08050566\n\
- adds r5, 0x10\n\
- adds r6, 0x1\n\
- cmp r6, r9\n\
- blt _08050560\n\
-_08050580:\n\
- movs r1, 0\n\
- ldrsh r3, [r7, r1]\n\
- ldrh r0, [r7]\n\
- ldrh r1, [r7, 0x2]\n\
- subs r0, r1\n\
- strh r0, [r7]\n\
- ldrh r0, [r7, 0x4]\n\
- subs r1, r0\n\
- strh r1, [r7, 0x2]\n\
- ldrh r1, [r7, 0x6]\n\
- subs r0, r1\n\
- strh r0, [r7, 0x4]\n\
- ldrh r0, [r7, 0x8]\n\
- subs r1, r0\n\
- strh r1, [r7, 0x6]\n\
- subs r0, r3\n\
- strh r0, [r7, 0x8]\n\
- movs r3, 0\n\
- movs r2, 0\n\
- adds r1, r7, 0\n\
- movs r6, 0x4\n\
-_080505AA:\n\
- movs r4, 0\n\
- ldrsh r0, [r1, r4]\n\
- cmp r0, 0\n\
- bge _080505B6\n\
- strh r2, [r1]\n\
- adds r3, 0x1\n\
-_080505B6:\n\
- adds r1, 0x2\n\
- subs r6, 0x1\n\
- cmp r6, 0\n\
- bge _080505AA\n\
- lsls r0, r3, 24\n\
- lsrs r0, 24\n\
- mov r10, r0\n\
- movs r4, 0\n\
- ldr r1, _080505DC @ =gUnknown_03000510\n\
- movs r6, 0x4\n\
-_080505CA:\n\
- ldrh r2, [r1]\n\
- movs r5, 0\n\
- ldrsh r0, [r1, r5]\n\
- cmp r0, 0\n\
- ble _080505E4\n\
- cmp r0, r3\n\
- bge _080505E0\n\
- strh r4, [r1]\n\
- b _080505E4\n\
- .align 2, 0\n\
-_080505DC: .4byte gUnknown_03000510\n\
-_080505E0:\n\
- subs r0, r2, r3\n\
- strh r0, [r1]\n\
-_080505E4:\n\
- adds r1, 0x2\n\
- subs r6, 0x1\n\
- cmp r6, 0\n\
- bge _080505CA\n\
- ldr r1, _080506C4 @ =gUnknown_03000510\n\
- ldr r2, _080506C8 @ =gUnknown_03000530\n\
- movs r6, 0x4\n\
-_080505F2:\n\
- movs r3, 0\n\
- ldrsh r0, [r1, r3]\n\
- stm r2!, {r0}\n\
- adds r1, 0x2\n\
- subs r6, 0x1\n\
- cmp r6, 0\n\
- bge _080505F2\n\
- ldr r1, _080506CC @ =0x0000014d\n\
- ldr r0, [sp, 0x8]\n\
- bl __udivsi3\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- adds r3, r0, 0\n\
- adds r3, 0x64\n\
- ldr r4, _080506D0 @ =gUnknown_0300055C\n\
- str r3, [r4]\n\
- movs r6, 0x4\n\
-_08050616:\n\
- movs r0, 0\n\
- ldrsh r5, [r7, r0]\n\
- adds r0, r5, 0\n\
- muls r0, r3\n\
- movs r1, 0xA\n\
- str r3, [sp, 0xC]\n\
- bl __divsi3\n\
- adds r5, r0, 0\n\
- movs r1, 0xA\n\
- bl __modsi3\n\
- adds r4, r0, 0\n\
- adds r0, r5, 0\n\
- movs r1, 0xA\n\
- bl __divsi3\n\
- adds r5, r0, 0\n\
- ldr r3, [sp, 0xC]\n\
- cmp r4, 0x4\n\
- ble _08050642\n\
- adds r5, 0x1\n\
-_08050642:\n\
- strh r5, [r7]\n\
- adds r7, 0x2\n\
- subs r6, 0x1\n\
- cmp r6, 0\n\
- bge _08050616\n\
- ldr r1, _080506C4 @ =gUnknown_03000510\n\
- ldr r2, _080506D4 @ =gUnknown_03000548\n\
- movs r6, 0x4\n\
-_08050652:\n\
- movs r3, 0\n\
- ldrsh r0, [r1, r3]\n\
- stm r2!, {r0}\n\
- adds r1, 0x2\n\
- subs r6, 0x1\n\
- cmp r6, 0\n\
- bge _08050652\n\
- ldr r4, _080506C4 @ =gUnknown_03000510\n\
- ldr r0, [sp]\n\
- adds r1, r4, 0\n\
- mov r2, r9\n\
- mov r3, r10\n\
- bl Blender_GetPokeblockColor\n\
- mov r5, r8\n\
- strb r0, [r5]\n\
- movs r1, 0xA\n\
- ldrsh r0, [r4, r1]\n\
- mov r1, r9\n\
- bl __divsi3\n\
- mov r3, r9\n\
- subs r0, r3\n\
- strh r0, [r4, 0xA]\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- bge _0805068C\n\
- movs r0, 0\n\
- strh r0, [r4, 0xA]\n\
-_0805068C:\n\
- mov r5, r8\n\
- ldrb r0, [r5]\n\
- cmp r0, 0xC\n\
- bne _080506E6\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0xA\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- lsrs r3, r0, 16\n\
- movs r6, 0\n\
- ldr r0, _080506D8 @ =gUnknown_082165DF\n\
- adds r0, r3, r0\n\
- ldrb r0, [r0]\n\
- adds r1, r4, 0\n\
- movs r4, 0x1\n\
- movs r3, 0x2\n\
-_080506B4:\n\
- adds r2, r0, 0\n\
- asrs r2, r6\n\
- ands r2, r4\n\
- cmp r2, 0\n\
- beq _080506DC\n\
- strh r3, [r1]\n\
- b _080506DE\n\
- .align 2, 0\n\
-_080506C4: .4byte gUnknown_03000510\n\
-_080506C8: .4byte gUnknown_03000530\n\
-_080506CC: .4byte 0x0000014d\n\
-_080506D0: .4byte gUnknown_0300055C\n\
-_080506D4: .4byte gUnknown_03000548\n\
-_080506D8: .4byte gUnknown_082165DF\n\
-_080506DC:\n\
- strh r2, [r1]\n\
-_080506DE:\n\
- adds r1, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x4\n\
- ble _080506B4\n\
-_080506E6:\n\
- ldr r7, _08050740 @ =gUnknown_03000510\n\
- movs r2, 0xFF\n\
- adds r1, r7, 0\n\
- movs r6, 0x5\n\
-_080506EE:\n\
- movs r3, 0\n\
- ldrsh r0, [r1, r3]\n\
- cmp r0, 0xFF\n\
- ble _080506F8\n\
- strh r2, [r1]\n\
-_080506F8:\n\
- adds r1, 0x2\n\
- subs r6, 0x1\n\
- cmp r6, 0\n\
- bge _080506EE\n\
- ldrh r0, [r7]\n\
- mov r4, r8\n\
- strb r0, [r4, 0x1]\n\
- ldrh r0, [r7, 0x2]\n\
- strb r0, [r4, 0x2]\n\
- ldrh r0, [r7, 0x4]\n\
- strb r0, [r4, 0x3]\n\
- ldrh r0, [r7, 0x6]\n\
- strb r0, [r4, 0x4]\n\
- ldrh r0, [r7, 0x8]\n\
- strb r0, [r4, 0x5]\n\
- ldrh r0, [r7, 0xA]\n\
- strb r0, [r4, 0x6]\n\
- movs r6, 0\n\
- adds r2, r7, 0\n\
-_0805071E:\n\
- ldr r5, [sp, 0x4]\n\
- adds r1, r5, r6\n\
- ldrh r0, [r2]\n\
- strb r0, [r1]\n\
- adds r2, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _0805071E\n\
- add sp, 0x10\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08050740: .4byte gUnknown_03000510\n\
- .syntax divided");
-}
-
-#endif // NONMATCHING
-
static void BlenderDebug_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 playersNo, u8* flavours, u16 a4)
{
Blender_CalculatePokeblock(berries, pokeblock, playersNo, flavours, a4);
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
index 114505e4d..60efee67d 100644
--- a/src/scene/cable_car.c
+++ b/src/scene/cable_car.c
@@ -23,15 +23,6 @@
// Static type declarations
-// Credits to Made (dolphin emoji)
-#define S16TOPOSFLOAT(val) \
-({ \
- s16 v = (val); \
- float f = (float)v; \
- if(v < 0) f += 65536.0f; \
- f; \
-})
-
struct CableCarEwramStruct1 {
u8 unk_0000;
u8 unk_0001;
diff --git a/src/scene/intro.c b/src/scene/intro.c
index 4da341744..3e4bd5bf4 100644
--- a/src/scene/intro.c
+++ b/src/scene/intro.c
@@ -1501,7 +1501,6 @@ static void intro_reset_and_hide_bgs(void)
REG_BLDY = 0;
}
-#ifdef NONMATCHING
static void sub_813CCE8(u8 taskId)
{
switch (gTasks[taskId].data[0])
@@ -1513,18 +1512,15 @@ static void sub_813CCE8(u8 taskId)
REG_BLDY = 0;
gTasks[taskId].data[1] = 0x40;
gTasks[taskId].data[0] = 1;
- return;
+ break;
case 1:
if (gTasks[taskId].data[1] != 0)
{
- u32 foo;
- u32 bar asm("r2");
+ u8 foo;
gTasks[taskId].data[1]--;
- //tail merge at _0813CDC2
- foo = gTasks[taskId].data[1] + (gTasks[taskId].data[1] < 0);
- bar = 0x1FE;
- REG_BLDALPHA = gUnknown_08393E64[(foo & bar) / 2];
+ foo = gTasks[taskId].data[1] / 2;
+ REG_BLDALPHA = gUnknown_08393E64[foo];
}
else
{
@@ -1532,7 +1528,7 @@ static void sub_813CCE8(u8 taskId)
gTasks[taskId].data[1] = 0x80;
gTasks[taskId].data[0]++;
}
- return;
+ break;
case 2:
if (gTasks[taskId].data[1] != 0)
{
@@ -1544,18 +1540,15 @@ static void sub_813CCE8(u8 taskId)
gTasks[taskId].data[1] = 0; //redundant?
gTasks[taskId].data[0]++;
}
- return;
+ break;
case 3:
if (gTasks[taskId].data[1] <= 0x3D)
{
- u32 foo;
- u32 bar asm("r2");
+ u8 foo;
gTasks[taskId].data[1]++;
- //_0813CDC2
- foo = gTasks[taskId].data[1] + (gTasks[taskId].data[1] < 0);
- bar = 0x1FE;
- REG_BLDALPHA = gUnknown_08393E64[(foo & bar) / 2];
+ foo = gTasks[taskId].data[1] / 2;
+ REG_BLDALPHA = gUnknown_08393E64[foo];
}
else
{
@@ -1564,7 +1557,7 @@ static void sub_813CCE8(u8 taskId)
gTasks[taskId].data[1] = 0x10;
gTasks[taskId].data[0]++;
}
- return;
+ break;
case 4:
if (gTasks[taskId].data[1] != 0)
{
@@ -1577,186 +1570,9 @@ static void sub_813CCE8(u8 taskId)
REG_BLDY = 0;
DestroyTask(taskId);
}
- return;
+ break;
}
}
-#else
-__attribute__((naked))
-static void sub_813CCE8(u8 taskId)
-{
- asm("\n\
- .equ REG_BLDCNT, 0x4000050\n\
- .equ REG_BLDALPHA, 0x4000052\n\
- .syntax unified\n\
- push {r4,lr}\n\
- lsls r0, 24\n\
- lsrs r3, r0, 24\n\
- ldr r1, _0813CD0C @ =gTasks\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- movs r2, 0x8\n\
- ldrsh r0, [r0, r2]\n\
- adds r2, r1, 0\n\
- cmp r0, 0x4\n\
- bhi _0813CD28\n\
- lsls r0, 2\n\
- ldr r1, _0813CD10 @ =_0813CD14\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_0813CD0C: .4byte gTasks\n\
-_0813CD10: .4byte _0813CD14\n\
- .align 2, 0\n\
-_0813CD14:\n\
- .4byte _0813CD28\n\
- .4byte _0813CD5C\n\
- .4byte _0813CD8C\n\
- .4byte _0813CDA8\n\
- .4byte _0813CDFC\n\
-_0813CD28:\n\
- ldr r1, _0813CD54 @ =REG_BLDCNT\n\
- ldr r4, _0813CD58 @ =0x00003f50\n\
- adds r0, r4, 0\n\
- strh r0, [r1]\n\
- adds r1, 0x2\n\
- movs r4, 0x80\n\
- lsls r4, 5\n\
- adds r0, r4, 0\n\
- strh r0, [r1]\n\
- adds r1, 0x2\n\
- movs r0, 0\n\
- strh r0, [r1]\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r0, 3\n\
- adds r0, r2\n\
- movs r1, 0x40\n\
- strh r1, [r0, 0xA]\n\
- movs r1, 0x1\n\
- strh r1, [r0, 0x8]\n\
- b _0813CE26\n\
- .align 2, 0\n\
-_0813CD54: .4byte REG_BLDCNT\n\
-_0813CD58: .4byte 0x00003f50\n\
-_0813CD5C:\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r0, 3\n\
- adds r2, r0, r2\n\
- ldrh r1, [r2, 0xA]\n\
- movs r3, 0xA\n\
- ldrsh r0, [r2, r3]\n\
- cmp r0, 0\n\
- beq _0813CD78\n\
- subs r0, r1, 0x1\n\
- strh r0, [r2, 0xA]\n\
- movs r4, 0xA\n\
- ldrsh r0, [r2, r4]\n\
- b _0813CDC2\n\
-_0813CD78:\n\
- ldr r1, _0813CD84 @ =REG_BLDALPHA\n\
- ldr r0, _0813CD88 @ =gUnknown_08393E64\n\
- ldrh r0, [r0]\n\
- strh r0, [r1]\n\
- movs r0, 0x80\n\
- b _0813CDEA\n\
- .align 2, 0\n\
-_0813CD84: .4byte REG_BLDALPHA\n\
-_0813CD88: .4byte gUnknown_08393E64\n\
-_0813CD8C:\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r0, 3\n\
- adds r1, r0, r2\n\
- ldrh r0, [r1, 0xA]\n\
- movs r3, 0xA\n\
- ldrsh r2, [r1, r3]\n\
- cmp r2, 0\n\
- bne _0813CE0E\n\
- strh r2, [r1, 0xA]\n\
- ldrh r0, [r1, 0x8]\n\
- adds r0, 0x1\n\
- strh r0, [r1, 0x8]\n\
- b _0813CE26\n\
-_0813CDA8:\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r0, 3\n\
- adds r2, r0, r2\n\
- ldrh r1, [r2, 0xA]\n\
- movs r4, 0xA\n\
- ldrsh r0, [r2, r4]\n\
- cmp r0, 0x3D\n\
- bgt _0813CDE0\n\
- adds r0, r1, 0x1\n\
- strh r0, [r2, 0xA]\n\
- movs r1, 0xA\n\
- ldrsh r0, [r2, r1]\n\
-_0813CDC2:\n\
- lsrs r1, r0, 31\n\
- adds r0, r1\n\
- movs r2, 0xFF\n\
- lsls r2, 1\n\
- ldr r3, _0813CDD8 @ =REG_BLDALPHA\n\
- ldr r1, _0813CDDC @ =gUnknown_08393E64\n\
- ands r0, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- strh r0, [r3]\n\
- b _0813CE26\n\
- .align 2, 0\n\
-_0813CDD8: .4byte REG_BLDALPHA\n\
-_0813CDDC: .4byte gUnknown_08393E64\n\
-_0813CDE0:\n\
- ldr r1, _0813CDF4 @ =REG_BLDALPHA\n\
- ldr r0, _0813CDF8 @ =gUnknown_08393E64\n\
- ldrh r0, [r0, 0x3E]\n\
- strh r0, [r1]\n\
- movs r0, 0x10\n\
-_0813CDEA:\n\
- strh r0, [r2, 0xA]\n\
- ldrh r0, [r2, 0x8]\n\
- adds r0, 0x1\n\
- strh r0, [r2, 0x8]\n\
- b _0813CE26\n\
- .align 2, 0\n\
-_0813CDF4: .4byte REG_BLDALPHA\n\
-_0813CDF8: .4byte gUnknown_08393E64\n\
-_0813CDFC:\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r0, 3\n\
- adds r1, r0, r2\n\
- ldrh r0, [r1, 0xA]\n\
- movs r4, 0xA\n\
- ldrsh r2, [r1, r4]\n\
- cmp r2, 0\n\
- beq _0813CE14\n\
-_0813CE0E:\n\
- subs r0, 0x1\n\
- strh r0, [r1, 0xA]\n\
- b _0813CE26\n\
-_0813CE14:\n\
- ldr r0, _0813CE2C @ =REG_BLDCNT\n\
- strh r2, [r0]\n\
- adds r0, 0x2\n\
- strh r2, [r0]\n\
- adds r0, 0x2\n\
- strh r2, [r0]\n\
- adds r0, r3, 0\n\
- bl DestroyTask\n\
-_0813CE26:\n\
- pop {r4}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0813CE2C: .4byte REG_BLDCNT\n\
- .syntax divided\n");
-}
-#endif
void sub_813CE30(u16 scrX, u16 scrY, u16 zoom, u16 alpha)
{
diff --git a/src/scene/intro_credits_graphics.c b/src/scene/intro_credits_graphics.c
index 7f6765ef6..6aadafc58 100644
--- a/src/scene/intro_credits_graphics.c
+++ b/src/scene/intro_credits_graphics.c
@@ -436,161 +436,47 @@ u8 sub_8148EC0(u8 a, u16 b, u16 c, u16 d)
return taskId;
}
-#ifdef NONMATCHING
void sub_8148F3C(u8 taskId)
{
- register u32 r4 asm("r4");
+ s16 r4;
s32 r2;
- r4 = (u16)gTasks[taskId].data[1] << 16;
+ r4 = gTasks[taskId].data[1];
if (r4 != 0)
{
- r2 = (gTasks[taskId].data[2] << 16) + (u16)gTasks[taskId].data[3] - (r4 >> 12);
+ r2 = (gTasks[taskId].data[2] << 16) + (u16)gTasks[taskId].data[3];
+ r2 -= 16 * (u16)r4;
gTasks[taskId].data[2] = r2 >> 16;
gTasks[taskId].data[3] = r2;
REG_BG1HOFS = gTasks[taskId].data[2];
- REG_BG1VOFS = gUnknown_0203935A + gUnknown_02039358;
+ REG_BG1VOFS = gUnknown_02039358 + gUnknown_0203935A;
}
- r4 = (u16)gTasks[taskId].data[4] << 16;
+ r4 = gTasks[taskId].data[4];
if (r4 != 0)
{
- r2 = (gTasks[taskId].data[5] << 16) + (u16)gTasks[taskId].data[6] - (r4 >> 12);
+ r2 = (gTasks[taskId].data[5] << 16) + (u16)gTasks[taskId].data[6];
+ r2 -= 16 * (u16)r4;
gTasks[taskId].data[5] = r2 >> 16;
- gTasks[taskId].data[3] = r2;
+ gTasks[taskId].data[6] = r2;
REG_BG2HOFS = gTasks[taskId].data[5];
if (gTasks[taskId].data[0] != 0)
- REG_BG2VOFS = gUnknown_0203935A + gUnknown_02039358;
+ REG_BG2VOFS = gUnknown_02039358 + gUnknown_0203935A;
else
REG_BG2VOFS = gUnknown_02039358;
}
- r4 = (u16)gTasks[taskId].data[7] << 16;
+ r4 = gTasks[taskId].data[7];
if (r4 != 0)
{
- r2 = (gTasks[taskId].data[8] << 16) + (u16)gTasks[taskId].data[9] - (r4 >> 12);;
+ r2 = (gTasks[taskId].data[8] << 16) + (u16)gTasks[taskId].data[9];
+ r2 -= 16 * (u16)r4;
gTasks[taskId].data[8] = r2 >> 16;
gTasks[taskId].data[9] = r2;
REG_BG3HOFS = gTasks[taskId].data[8];
REG_BG3VOFS = gUnknown_02039358;
}
}
-#else
-__attribute__((naked))
-void sub_8148F3C(u8 taskId)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- ldr r1, _08148FB4 @ =gTasks\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r3, r0, r1\n\
- ldrh r0, [r3, 0xA]\n\
- lsls r4, r0, 16\n\
- adds r6, r1, 0\n\
- cmp r4, 0\n\
- beq _08148F7C\n\
- movs r1, 0xC\n\
- ldrsh r0, [r3, r1]\n\
- lsls r0, 16\n\
- ldrh r1, [r3, 0xE]\n\
- adds r2, r0, r1\n\
- lsrs r0, r4, 12\n\
- subs r2, r0\n\
- asrs r1, r2, 16\n\
- strh r1, [r3, 0xC]\n\
- strh r2, [r3, 0xE]\n\
- ldr r0, _08148FB8 @ =REG_BG1HOFS\n\
- strh r1, [r0]\n\
- ldr r2, _08148FBC @ =REG_BG1VOFS\n\
- ldr r1, _08148FC0 @ =gUnknown_02039358\n\
- ldr r0, _08148FC4 @ =gUnknown_0203935A\n\
- ldrh r0, [r0]\n\
- ldrh r1, [r1]\n\
- adds r0, r1\n\
- strh r0, [r2]\n\
-_08148F7C:\n\
- ldrh r0, [r3, 0x10]\n\
- lsls r4, r0, 16\n\
- cmp r4, 0\n\
- beq _08148FD8\n\
- movs r1, 0x12\n\
- ldrsh r0, [r3, r1]\n\
- lsls r0, 16\n\
- ldrh r1, [r3, 0x14]\n\
- adds r2, r0, r1\n\
- lsrs r0, r4, 12\n\
- subs r2, r0\n\
- asrs r1, r2, 16\n\
- strh r1, [r3, 0x12]\n\
- strh r2, [r3, 0x14]\n\
- ldr r0, _08148FC8 @ =REG_BG2HOFS\n\
- strh r1, [r0]\n\
- movs r1, 0x8\n\
- ldrsh r0, [r3, r1]\n\
- cmp r0, 0\n\
- beq _08148FD0\n\
- ldr r2, _08148FCC @ =REG_BG2VOFS\n\
- ldr r1, _08148FC0 @ =gUnknown_02039358\n\
- ldr r0, _08148FC4 @ =gUnknown_0203935A\n\
- ldrh r0, [r0]\n\
- ldrh r1, [r1]\n\
- adds r0, r1\n\
- strh r0, [r2]\n\
- b _08148FD8\n\
- .align 2, 0\n\
-_08148FB4: .4byte gTasks\n\
-_08148FB8: .4byte REG_BG1HOFS\n\
-_08148FBC: .4byte REG_BG1VOFS\n\
-_08148FC0: .4byte gUnknown_02039358\n\
-_08148FC4: .4byte gUnknown_0203935A\n\
-_08148FC8: .4byte REG_BG2HOFS\n\
-_08148FCC: .4byte REG_BG2VOFS\n\
-_08148FD0:\n\
- ldr r0, _08149010 @ =REG_BG2VOFS\n\
- ldr r1, _08149014 @ =gUnknown_02039358\n\
- ldrh r1, [r1]\n\
- strh r1, [r0]\n\
-_08148FD8:\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r3, r0, r6\n\
- ldrh r0, [r3, 0x16]\n\
- lsls r4, r0, 16\n\
- cmp r4, 0\n\
- beq _08149008\n\
- movs r1, 0x18\n\
- ldrsh r0, [r3, r1]\n\
- lsls r0, 16\n\
- ldrh r1, [r3, 0x1A]\n\
- adds r2, r0, r1\n\
- lsrs r0, r4, 12\n\
- subs r2, r0\n\
- asrs r1, r2, 16\n\
- strh r1, [r3, 0x18]\n\
- strh r2, [r3, 0x1A]\n\
- ldr r0, _08149018 @ =REG_BG3HOFS\n\
- strh r1, [r0]\n\
- ldr r1, _0814901C @ =REG_BG3VOFS\n\
- ldr r0, _08149014 @ =gUnknown_02039358\n\
- ldrh r0, [r0]\n\
- strh r0, [r1]\n\
-_08149008:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08149010: .4byte REG_BG2VOFS\n\
-_08149014: .4byte gUnknown_02039358\n\
-_08149018: .4byte REG_BG3HOFS\n\
-_0814901C: .4byte REG_BG3VOFS\n\
- .syntax divided\n");
-}
-#endif
void sub_8149020(u8 mode)
{