through sub_812CA1C
This commit is contained in:
@@ -5,246 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_812C8F8
|
|
||||||
sub_812C8F8: @ 812C8F8
|
|
||||||
push {r4,r5,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 3
|
|
||||||
ldr r0, _0812C91C @ =gTasks
|
|
||||||
adds r4, r1, r0
|
|
||||||
ldr r5, _0812C920 @ =gUnknown_203B0FC
|
|
||||||
ldr r0, [r5]
|
|
||||||
ldrb r1, [r0, 0x7]
|
|
||||||
movs r3, 0x2
|
|
||||||
adds r0, r3, 0
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0812C924
|
|
||||||
movs r0, 0
|
|
||||||
b _0812C982
|
|
||||||
.align 2, 0
|
|
||||||
_0812C91C: .4byte gTasks
|
|
||||||
_0812C920: .4byte gUnknown_203B0FC
|
|
||||||
_0812C924:
|
|
||||||
ldr r2, _0812C988 @ =gSprites
|
|
||||||
movs r0, 0xC
|
|
||||||
ldrsh r1, [r4, r0]
|
|
||||||
lsls r0, r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
strh r3, [r0, 0x2E]
|
|
||||||
movs r0, 0xC
|
|
||||||
ldrsh r1, [r4, r0]
|
|
||||||
lsls r0, r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
ldrh r1, [r0, 0x24]
|
|
||||||
adds r1, 0xA
|
|
||||||
strh r1, [r0, 0x24]
|
|
||||||
movs r0, 0xE
|
|
||||||
ldrsh r1, [r4, r0]
|
|
||||||
lsls r0, r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
strh r3, [r0, 0x2E]
|
|
||||||
movs r0, 0xE
|
|
||||||
ldrsh r1, [r4, r0]
|
|
||||||
lsls r0, r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
ldrh r1, [r0, 0x24]
|
|
||||||
adds r1, 0xA
|
|
||||||
strh r1, [r0, 0x24]
|
|
||||||
bl sub_812CE9C
|
|
||||||
ldr r0, _0812C98C @ =sub_812CA1C
|
|
||||||
str r0, [r4]
|
|
||||||
bl sub_812C990
|
|
||||||
ldr r1, [r5]
|
|
||||||
adds r1, 0x23
|
|
||||||
ldrb r2, [r1]
|
|
||||||
movs r0, 0x5
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r0, 0x1
|
|
||||||
_0812C982:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_0812C988: .4byte gSprites
|
|
||||||
_0812C98C: .4byte sub_812CA1C
|
|
||||||
thumb_func_end sub_812C8F8
|
|
||||||
|
|
||||||
thumb_func_start sub_812C990
|
|
||||||
sub_812C990: @ 812C990
|
|
||||||
push {lr}
|
|
||||||
sub sp, 0x10
|
|
||||||
ldr r2, _0812C9B8 @ =gUnknown_84181E4
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r3, 0
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0812C9B8: .4byte gUnknown_84181E4
|
|
||||||
thumb_func_end sub_812C990
|
|
||||||
|
|
||||||
thumb_func_start sub_812C9BC
|
|
||||||
sub_812C9BC: @ 812C9BC
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 3
|
|
||||||
ldr r0, _0812C9F8 @ =gTasks
|
|
||||||
adds r4, r1, r0
|
|
||||||
ldr r2, _0812C9FC @ =gSprites
|
|
||||||
movs r0, 0xC
|
|
||||||
ldrsh r1, [r4, r0]
|
|
||||||
lsls r0, r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
movs r1, 0x2E
|
|
||||||
ldrsh r0, [r0, r1]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0812CA08
|
|
||||||
bl sub_812CD3C
|
|
||||||
ldr r0, _0812CA00 @ =gUnknown_203B0FC
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldrb r0, [r2, 0x7]
|
|
||||||
movs r1, 0x2
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r2, 0x7]
|
|
||||||
ldr r0, _0812CA04 @ =sub_812C694
|
|
||||||
str r0, [r4]
|
|
||||||
b _0812CA14
|
|
||||||
.align 2, 0
|
|
||||||
_0812C9F8: .4byte gTasks
|
|
||||||
_0812C9FC: .4byte gSprites
|
|
||||||
_0812CA00: .4byte gUnknown_203B0FC
|
|
||||||
_0812CA04: .4byte sub_812C694
|
|
||||||
_0812CA08:
|
|
||||||
movs r1, 0xA0
|
|
||||||
lsls r1, 4
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r2, 0x1
|
|
||||||
bl ChangeBgX
|
|
||||||
_0812CA14:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_812C9BC
|
|
||||||
|
|
||||||
thumb_func_start sub_812CA1C
|
|
||||||
sub_812CA1C: @ 812CA1C
|
|
||||||
push {r4-r7,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
lsls r0, r4, 2
|
|
||||||
adds r0, r4
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, _0812CA44 @ =gTasks
|
|
||||||
adds r5, r0, r1
|
|
||||||
movs r0, 0x1
|
|
||||||
bl GetBgX
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0812CA48
|
|
||||||
movs r1, 0xA0
|
|
||||||
lsls r1, 4
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r2, 0x2
|
|
||||||
bl ChangeBgX
|
|
||||||
b _0812CA52
|
|
||||||
.align 2, 0
|
|
||||||
_0812CA44: .4byte gTasks
|
|
||||||
_0812CA48:
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl ChangeBgX
|
|
||||||
_0812CA52:
|
|
||||||
ldr r7, _0812CAC8 @ =gSprites
|
|
||||||
movs r1, 0xC
|
|
||||||
ldrsh r0, [r5, r1]
|
|
||||||
lsls r1, r0, 4
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r7
|
|
||||||
movs r2, 0x2E
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0812CAC0
|
|
||||||
ldr r6, _0812CACC @ =gUnknown_203B0FC
|
|
||||||
ldr r0, [r6]
|
|
||||||
ldrb r1, [r0, 0x7]
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0812CA7C
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_812D0F4
|
|
||||||
_0812CA7C:
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r1, 0x4
|
|
||||||
bl sub_812E178
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r1, 0x2
|
|
||||||
bl sub_812E178
|
|
||||||
ldr r2, [r6]
|
|
||||||
ldrb r1, [r2, 0x7]
|
|
||||||
movs r0, 0x3
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r2, 0x7]
|
|
||||||
bl sub_812E064
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_812D9A8
|
|
||||||
ldr r0, _0812CAD0 @ =sub_812C694
|
|
||||||
str r0, [r5]
|
|
||||||
movs r0, 0xE
|
|
||||||
ldrsh r1, [r5, r0]
|
|
||||||
lsls r0, r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r7, 0
|
|
||||||
adds r1, 0x1C
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, _0812CAD4 @ =sub_812D800
|
|
||||||
str r1, [r0]
|
|
||||||
_0812CAC0:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0812CAC8: .4byte gSprites
|
|
||||||
_0812CACC: .4byte gUnknown_203B0FC
|
|
||||||
_0812CAD0: .4byte sub_812C694
|
|
||||||
_0812CAD4: .4byte sub_812D800
|
|
||||||
thumb_func_end sub_812CA1C
|
|
||||||
|
|
||||||
thumb_func_start sub_812CAD8
|
thumb_func_start sub_812CAD8
|
||||||
sub_812CAD8: @ 812CAD8
|
sub_812CAD8: @ 812CAD8
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
|
|||||||
+64
-1
@@ -2,6 +2,7 @@
|
|||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "bg.h"
|
#include "bg.h"
|
||||||
#include "graphics.h"
|
#include "graphics.h"
|
||||||
|
#include "new_menu_helpers.h"
|
||||||
#include "item_menu.h"
|
#include "item_menu.h"
|
||||||
#include "list_menu.h"
|
#include "list_menu.h"
|
||||||
#include "gpu_regs.h"
|
#include "gpu_regs.h"
|
||||||
@@ -29,7 +30,8 @@ struct FameCheckerData
|
|||||||
u8 unk_0C[17];
|
u8 unk_0C[17];
|
||||||
u8 unk_1D[6];
|
u8 unk_1D[6];
|
||||||
u8 unk_23_0:1;
|
u8 unk_23_0:1;
|
||||||
u8 unk_23_1:7;
|
u8 unk_23_1:1;
|
||||||
|
u8 unk_23_2:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FameCheckerData2
|
struct FameCheckerData2
|
||||||
@@ -52,7 +54,9 @@ void sub_812C648(void);
|
|||||||
void sub_812C664(u8 taskId);
|
void sub_812C664(u8 taskId);
|
||||||
void sub_812C694(u8 taskId);
|
void sub_812C694(u8 taskId);
|
||||||
bool8 sub_812C8F8(u8 taskId);
|
bool8 sub_812C8F8(u8 taskId);
|
||||||
|
void sub_812C990(void);
|
||||||
void sub_812C9BC(u8 taskId);
|
void sub_812C9BC(u8 taskId);
|
||||||
|
void sub_812CA1C(u8 taskId);
|
||||||
void sub_812CAD8(u8 taskId);
|
void sub_812CAD8(u8 taskId);
|
||||||
void sub_812CD3C(void);
|
void sub_812CD3C(void);
|
||||||
void sub_812CE04(u8 taskId);
|
void sub_812CE04(u8 taskId);
|
||||||
@@ -70,7 +74,9 @@ void sub_812D594(void);
|
|||||||
bool8 sub_812D6B4(void);
|
bool8 sub_812D6B4(void);
|
||||||
u8 sub_812D724(s16 a0);
|
u8 sub_812D724(s16 a0);
|
||||||
u8 sub_812D7E4(void);
|
u8 sub_812D7E4(void);
|
||||||
|
void sub_812D800(struct Sprite *sprite);
|
||||||
u8 sub_812D888(u8 a0);
|
u8 sub_812D888(u8 a0);
|
||||||
|
void sub_812D9A8(u8 a0, u16 a1);
|
||||||
void sub_812DA14(u8 a0);
|
void sub_812DA14(u8 a0);
|
||||||
void sub_812DB28(void);
|
void sub_812DB28(void);
|
||||||
void sub_812E000(void);
|
void sub_812E000(void);
|
||||||
@@ -80,6 +86,7 @@ void sub_812E110(u8 taskId);
|
|||||||
void sub_812E178(u8 a0, s16 a1);
|
void sub_812E178(u8 a0, s16 a1);
|
||||||
void sub_812E4A4(u8 a0);
|
void sub_812E4A4(u8 a0);
|
||||||
|
|
||||||
|
extern const u8 gUnknown_84181E4[];
|
||||||
|
|
||||||
extern const u16 gUnknown_845C600[];
|
extern const u16 gUnknown_845C600[];
|
||||||
extern const struct BgTemplate gUnknown_845FBF4[4];
|
extern const struct BgTemplate gUnknown_845FBF4[4];
|
||||||
@@ -281,3 +288,59 @@ void sub_812C694(u8 taskId)
|
|||||||
ListMenuHandleInput(0);
|
ListMenuHandleInput(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool8 sub_812C8F8(u8 taskId)
|
||||||
|
{
|
||||||
|
struct Task *task = &gTasks[taskId];
|
||||||
|
if (gUnknown_203B0FC->unk_07_1)
|
||||||
|
{
|
||||||
|
gSprites[task->data[2]].data[0] = 2;
|
||||||
|
gSprites[task->data[2]].pos2.x += 10;
|
||||||
|
gSprites[task->data[3]].data[0] = 2;
|
||||||
|
gSprites[task->data[3]].pos2.x += 10;
|
||||||
|
sub_812CE9C();
|
||||||
|
task->func = sub_812CA1C;
|
||||||
|
sub_812C990();
|
||||||
|
gUnknown_203B0FC->unk_23_2 = FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_812C990(void)
|
||||||
|
{
|
||||||
|
AddTextPrinterParametrized(2, 2, gUnknown_84181E4, 0, NULL, 2, 1, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_812C9BC(u8 taskId)
|
||||||
|
{
|
||||||
|
struct Task *task = &gTasks[taskId];
|
||||||
|
if (gSprites[task->data[2]].data[0] == 0)
|
||||||
|
{
|
||||||
|
sub_812CD3C();
|
||||||
|
gUnknown_203B0FC->unk_07_1 = TRUE;
|
||||||
|
task->func = sub_812C694;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ChangeBgX(1, 0xA00, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_812CA1C(u8 taskId)
|
||||||
|
{
|
||||||
|
struct Task *task = &gTasks[taskId];
|
||||||
|
if (GetBgX(1) != 0)
|
||||||
|
ChangeBgX(1, 0xA00, 2);
|
||||||
|
else
|
||||||
|
ChangeBgX(1, 0x000, 0);
|
||||||
|
if (gSprites[task->data[2]].data[0] == 0)
|
||||||
|
{
|
||||||
|
if (gUnknown_203B0FC->unk_07_0)
|
||||||
|
sub_812D0F4(0);
|
||||||
|
sub_812E178(1, 4);
|
||||||
|
sub_812E178(2, 2);
|
||||||
|
gUnknown_203B0FC->unk_07_1 = FALSE;
|
||||||
|
sub_812D9A8(taskId, sub_812E064());
|
||||||
|
task->func = sub_812C694;
|
||||||
|
gSprites[task->data[3]].callback = sub_812D800;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user