Decompile sub_A16C

This commit is contained in:
WhenGryphonsFly 2024-01-28 22:23:48 -06:00
parent ac529f5f01
commit 14346e4a54
3 changed files with 36 additions and 138 deletions

View File

@ -4,142 +4,6 @@
.text
thumb_func_start sub_A16C
sub_A16C: @ 0x0800A16C
push {r4, lr}
movs r2, #0x80
lsls r2, r2, #0x13
movs r0, #0
strh r0, [r2]
ldr r1, _0800A250 @ =0x04000008
movs r3, #0xcc
lsls r3, r3, #8
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #1
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0800A254 @ =0x0400000A
ldr r3, _0800A258 @ =0x0000DA01
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #2
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0800A25C @ =0x0400000E
ldr r3, _0800A260 @ =0x00001E03
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
ldr r0, _0800A264 @ =0x040000D4
ldr r1, _0800A268 @ =gUnknown_080D0700
str r1, [r0]
ldr r1, _0800A26C @ =0x06006000
str r1, [r0, #4]
ldr r2, _0800A270 @ =0x80001000
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _0800A274 @ =gUnknown_080D2700
str r1, [r0]
ldr r1, _0800A278 @ =0x0600D000
str r1, [r0, #4]
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _0800A27C @ =gUnknown_080CBEE0
str r1, [r0]
ldr r1, _0800A280 @ =0x0600F000
str r1, [r0, #4]
ldr r1, _0800A284 @ =0x80000400
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _0800A288 @ =gUnknown_080CC6E0
str r1, [r0]
movs r1, #0xc0
lsls r1, r1, #0x13
str r1, [r0, #4]
ldr r1, _0800A28C @ =0x80001E00
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _0800A290 @ =gUnknown_080CBCE0
str r1, [r0]
movs r1, #0xa0
lsls r1, r1, #0x13
str r1, [r0, #4]
ldr r1, _0800A294 @ =0x80000040
str r1, [r0, #8]
ldr r0, [r0, #8]
bl sub_A2A8
ldr r1, _0800A298 @ =gMain
ldr r3, _0800A29C @ =gUnknown_0202ADA0
ldrh r2, [r3]
movs r4, #0xba
lsls r4, r4, #2
adds r0, r1, r4
strh r2, [r0]
ldrh r2, [r3, #2]
adds r4, #2
adds r0, r1, r4
strh r2, [r0]
ldrh r2, [r3, #0xc]
adds r4, #2
adds r0, r1, r4
strh r2, [r0]
ldrh r2, [r3, #0xe]
adds r4, #2
adds r0, r1, r4
strh r2, [r0]
ldrh r2, [r3, #0x18]
adds r4, #6
adds r0, r1, r4
strh r2, [r0]
ldrh r0, [r3, #0x1a]
ldr r2, _0800A2A0 @ =0x000002F6
adds r1, r1, r2
strh r0, [r1]
bl sub_0CBC
bl sub_10424
ldr r1, _0800A2A4 @ =gUnknown_0202C790
ldrb r0, [r1]
adds r0, #2
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0800A250: .4byte 0x04000008
_0800A254: .4byte 0x0400000A
_0800A258: .4byte 0x0000DA01
_0800A25C: .4byte 0x0400000E
_0800A260: .4byte 0x00001E03
_0800A264: .4byte 0x040000D4
_0800A268: .4byte gUnknown_080D0700
_0800A26C: .4byte 0x06006000
_0800A270: .4byte 0x80001000
_0800A274: .4byte gUnknown_080D2700
_0800A278: .4byte 0x0600D000
_0800A27C: .4byte gUnknown_080CBEE0
_0800A280: .4byte 0x0600F000
_0800A284: .4byte 0x80000400
_0800A288: .4byte gUnknown_080CC6E0
_0800A28C: .4byte 0x80001E00
_0800A290: .4byte gUnknown_080CBCE0
_0800A294: .4byte 0x80000040
_0800A298: .4byte gMain
_0800A29C: .4byte gUnknown_0202ADA0
_0800A2A0: .4byte 0x000002F6
_0800A2A4: .4byte gUnknown_0202C790
thumb_func_start sub_A2A8
sub_A2A8: @ 0x0800A2A8
ldr r0, _0800A2D8 @ =gUnknown_0202ADA0

View File

@ -172,7 +172,7 @@ extern void sub_FF74(void (*func)(void));
extern void sub_1001C(int);
//extern ? sub_10170();
//extern ? sub_102A8();
//extern ? sub_10424();
extern void sub_10424(void);
extern void sub_10480(void);
extern void sub_1050C(void);
//extern ? sub_10528();
@ -209,7 +209,7 @@ extern void sub_9D70(void);
extern void sub_9E90(void);
//extern ? sub_A154();
//extern ? sub_A16C();
//extern ? sub_A2A8();
extern void sub_A2A8(void);
//extern ? nullsub_6();
//extern ? sub_A2F0();
//extern ? nullsub_7();

View File

@ -37,6 +37,12 @@ extern s32 gUnknown_0202BEF0;
extern s8 gUnknown_0202C5A8;
extern s8 gUnknown_0202C790;
extern u8 gUnknown_080CBEE0[];
extern u8 gUnknown_080CC6E0[];
extern u8 gUnknown_080CBCE0[];
extern u8 gUnknown_080D0700[];
extern u8 gUnknown_080D2700[];
typedef void (*OtherFunc)(void);
extern OtherFunc gUnknown_080792E0[10];
@ -933,3 +939,31 @@ void sub_A154(void)
sub_0518();
gUnknown_0202C790++;
}
void sub_A16C(void)
{
// TODO use proper constants - see LoadEReaderGraphics?
REG_DISPCNT = 0;
REG_BG0CNT = 0xCC00;
REG_DISPCNT |= 0x100;
REG_BG1CNT = 0xDA01;
REG_DISPCNT |= 0x200;
REG_BG3CNT = 0x1E03;
REG_DISPCNT |= 0x800;
DmaCopy16(3, gUnknown_080D0700, (void*) 0x06006000, 0x2000);
DmaCopy16(3, gUnknown_080D2700, (void*) 0x0600D000, 0x2000);
DmaCopy16(3, gUnknown_080CBEE0, (void*) 0x0600F000, 0x800);
DmaCopy16(3, gUnknown_080CC6E0, (void*) 0x06000000, 0x3C00);
DmaCopy16(3, gUnknown_080CBCE0, (void*) PLTT, 0x80);
sub_A2A8();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0xD];
sub_0CBC();
sub_10424();
gUnknown_0202C790 += 2;
}