code_0804AA84.c

This commit is contained in:
theo3 2020-07-16 12:50:59 -07:00
parent 18069fcd80
commit 0f07e1ab9b
22 changed files with 132 additions and 184 deletions

View File

@ -675,7 +675,7 @@ _0809D454:
str r1, [r0, #0x40]
movs r0, #9
movs r1, #0
bl sub_080A7138
bl MenuFadeIn
_0809D478:
ldr r4, [r5, #0x54]
cmp r4, #0

View File

@ -434,7 +434,7 @@ sub_080197A0: @ 0x080197A0
push {lr}
movs r0, #2
movs r1, #0xb
bl sub_080A7138
bl MenuFadeIn
pop {pc}
thumb_func_start sub_080197AC

View File

@ -1178,7 +1178,7 @@ sub_0801E044: @ 0x0801E044
bne _0801E06A
movs r0, #4
movs r1, #0
bl sub_080A7138
bl MenuFadeIn
ldr r0, _0801E070 @ =gUnk_02022740
movs r1, #4
strb r1, [r0]

View File

@ -4,127 +4,6 @@
.syntax unified
.text
thumb_func_start sub_0804AA84
sub_0804AA84: @ 0x0804AA84
push {lr}
ldr r3, _0804AA98 @ =gArea
ldrb r0, [r3, #0x19]
cmp r0, #0
bne _0804AA9C
strb r0, [r3, #0x18]
strb r0, [r3, #0x19]
movs r0, #0
b _0804AAB0
.align 2, 0
_0804AA98: .4byte gArea
_0804AA9C:
ldr r2, _0804AAB4 @ =gUnk_03001000
movs r1, #0
movs r0, #4
strb r0, [r2, #4]
strb r1, [r3, #0xe]
strb r1, [r3, #0xf]
strh r1, [r3, #0x10]
bl sub_0805E5A8
movs r0, #1
_0804AAB0:
pop {pc}
.align 2, 0
_0804AAB4: .4byte gUnk_03001000
thumb_func_start sub_0804AAB8
sub_0804AAB8: @ 0x0804AAB8
push {lr}
ldr r1, _0804AACC @ =gUnk_080D4120
ldr r0, _0804AAD0 @ =gArea
ldrb r0, [r0, #0xe]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_0804AACC: .4byte gUnk_080D4120
_0804AAD0: .4byte gArea
thumb_func_start sub_0804AAD4
sub_0804AAD4: @ 0x0804AAD4
push {r4, lr}
ldr r4, _0804AAFC @ =gUnk_02018EB0
adds r0, r4, #0
movs r1, #0x28
bl _DmaZero
movs r0, #0
str r0, [r4, #0x14]
bl sub_0805E60C
ldr r4, _0804AB00 @ =gArea
ldrb r1, [r4, #0x17]
movs r0, #0x3d
movs r2, #0
bl CreateObject
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
pop {r4, pc}
.align 2, 0
_0804AAFC: .4byte gUnk_02018EB0
_0804AB00: .4byte gArea
thumb_func_start sub_0804AB04
sub_0804AB04: @ 0x0804AB04
push {lr}
bl sub_0805E5C0
ldr r0, _0804AB20 @ =gArea
ldrh r0, [r0, #0x10]
cmp r0, #0
beq _0804AB1E
bl sub_080AD90C
bl sub_080AD9B0
bl sub_080AD918
_0804AB1E:
pop {pc}
.align 2, 0
_0804AB20: .4byte gArea
thumb_func_start sub_0804AB24
sub_0804AB24: @ 0x0804AB24
push {r4, r5, lr}
ldr r5, _0804AB48 @ =gUnk_03000FD0
ldrb r1, [r5]
cmp r1, #0
bne _0804AB46
ldr r0, _0804AB4C @ =gScreen
movs r4, #0
strh r1, [r0]
bl sub_0801E104
ldr r0, _0804AB50 @ =gArea
strb r4, [r0, #0xe]
movs r0, #6
movs r1, #0
bl sub_080A7138
strb r4, [r5]
_0804AB46:
pop {r4, r5, pc}
.align 2, 0
_0804AB48: .4byte gUnk_03000FD0
_0804AB4C: .4byte gScreen
_0804AB50: .4byte gArea
thumb_func_start sub_0804AB54
sub_0804AB54: @ 0x0804AB54
push {lr}
ldr r1, _0804AB68 @ =gUnk_080D412C
ldr r0, _0804AB6C @ =gArea
ldrb r0, [r0, #0xe]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {pc}
.align 2, 0
_0804AB68: .4byte gUnk_080D412C
_0804AB6C: .4byte gArea
thumb_func_start sub_0804AB70
sub_0804AB70: @ 0x0804AB70
@ -173,7 +52,7 @@ _0804ABA4:
lsls r1, r1, #0xe
orrs r0, r1
str r0, [r2]
bl sub_0805E60C
bl EraseAllEntities
ldr r1, _0804AC18 @ =gUnk_080D4110
lsls r0, r5, #2
adds r0, r0, r1

View File

@ -3176,7 +3176,7 @@ sub_0804CD48: @ 0x0804CD48
bl SetLocalFlag
movs r0, #5
movs r1, #0
bl sub_080A7138
bl MenuFadeIn
ldr r0, _0804CD94 @ =gUnk_02000070
strb r4, [r0]
ldr r0, _0804CD98 @ =gUnk_03000FD0

View File

@ -634,7 +634,7 @@ sub_080504F4: @ 0x080504F4
movs r1, #0x80
bl _DmaZero
bl sub_08056418
bl sub_0805E60C
bl EraseAllEntities
bl sub_08080668
bl sub_080ADD30
movs r0, #0
@ -3331,7 +3331,7 @@ sub_08051A14: @ 0x08051A14
movs r1, #0xed
lsls r1, r1, #2
bl _DmaZero
bl sub_0805E60C
bl EraseAllEntities
bl sub_080197AC
bl sub_08080668
bl sub_080ADD30
@ -3881,7 +3881,7 @@ sub_08051F40: @ 0x08051F40
beq _08051F68
lsrs r1, r1, #4
movs r0, #2
bl sub_080A7138
bl MenuFadeIn
b _08051F76
.align 2, 0
_08051F60: .4byte gUnk_080FCA20

View File

@ -1712,7 +1712,7 @@ sub_08053434: @ 0x08053434
bl sub_08053460
movs r0, #5
movs r1, #6
bl sub_080A7138
bl MenuFadeIn
_0805345A:
pop {pc}
.align 2, 0

View File

@ -85,7 +85,7 @@ sub_08054920: @ 0x08054920
ldr r0, _08054950 @ =gUnk_02032EC0
ldrb r1, [r0, #3]
movs r0, #0xa
bl sub_080A7138
bl MenuFadeIn
b _08054962
.align 2, 0
_08054948: .4byte gUnk_080C9CBC

View File

@ -354,8 +354,8 @@ sub_0805E5F8: @ 0x0805E5F8
.align 2, 0
_0805E608: .4byte gUnk_03005F40
thumb_func_start sub_0805E60C
sub_0805E60C: @ 0x0805E60C
thumb_func_start EraseAllEntities
EraseAllEntities: @ 0x0805E60C
push {lr}
bl sub_0805E89C
ldr r0, _0805E654 @ =gUnk_03003DC0

View File

@ -5472,7 +5472,7 @@ sub_0807F420: @ 0x0807F420
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
adds r1, r2, #0
bl sub_080A7138
bl MenuFadeIn
pop {pc}
thumb_func_start sub_0807F434

View File

@ -264,7 +264,7 @@ sub_080A3DB8: @ 0x080A3DB8
cmp r0, #0
beq _080A3DE8
ldrb r1, [r1, #4]
bl sub_080A7138
bl MenuFadeIn
b _080A3DF8
.align 2, 0
_080A3DDC: .4byte gMenu
@ -2288,7 +2288,7 @@ sub_080A4D88: @ 0x080A4D88
bl _DmaZero
movs r0, #1
movs r1, #0
bl sub_080A7138
bl MenuFadeIn
movs r0, #0x80
bl sub_080A3248
pop {pc}

View File

@ -3540,8 +3540,8 @@ sub_080A7124: @ 0x080A7124
.align 2, 0
_080A7134: .4byte gUnk_02032EC0
thumb_func_start sub_080A7138
sub_080A7138: @ 0x080A7138
thumb_func_start MenuFadeIn
MenuFadeIn: @ 0x080A7138
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
@ -3608,7 +3608,7 @@ _080A71B8:
strb r2, [r3, #0xf]
_080A71BA:
adds r0, r4, #0
bl sub_080A7138
bl MenuFadeIn
pop {r4, pc}
.align 2, 0
@ -3617,7 +3617,7 @@ sub_080A71C4: @ 0x080A71C4
push {r4, r5, lr}
adds r4, r2, #0
adds r5, r3, #0
bl sub_080A7138
bl MenuFadeIn
ldr r0, _080A71D8 @ =gUnk_02032EC0
strh r4, [r0, #8]
strh r5, [r0, #0xa]

View File

@ -173,7 +173,7 @@ _08087CCA:
bl SetRoomFlag
movs r0, #7
movs r1, #0xff
bl sub_080A7138
bl MenuFadeIn
b _08087D1A
_08087CFA:
movs r0, #5
@ -332,7 +332,7 @@ _08087E10:
bl SetRoomFlag
ldrb r1, [r4, #0xf]
movs r0, #7
bl sub_080A7138
bl MenuFadeIn
b _08087E5A
_08087E3C:
movs r0, #2

View File

@ -199,7 +199,7 @@ _08059034:
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xd]
movs r0, #5
bl sub_080A7138
bl MenuFadeIn
b _08059060
.align 2, 0
_0805904C: .4byte gLinkEntity

View File

@ -382,7 +382,7 @@ sub_08065314: @ 0x08065314
strb r0, [r2, #0xd]
movs r0, #3
movs r1, #3
bl sub_080A7138
bl MenuFadeIn
_08065332:
pop {pc}
.align 2, 0

View File

@ -40,7 +40,7 @@ _080AD49C:
strh r0, [r5, #8]
movs r0, #7
strb r0, [r5, #4]
bl sub_0805E60C
bl EraseAllEntities
movs r0, #0
bl sub_0801CFA8
bl sub_080ADD30

View File

@ -8,7 +8,9 @@ typedef struct {
u8 locationIndex;
u8 unk;
u16 localFlagOffset;
u8 filler[19];
u8 filler[10];
u16 field_0x10;
u8 filler3[7];
u8 fadeOut;
u8 filler2[14];
} Area;

View File

@ -29,6 +29,8 @@ extern u32 GetFacingDirection(Entity*, Entity*);
extern Entity* CreatePlayerItem(u32, u32, u32, u32);
extern Entity* GetEmptyEntity(void);
extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer);
extern void _DmaZero(void* src, u32 count);
extern void EraseAllEntities(void);
// Unidentified
extern void sub_0806ED78(Entity*);
@ -96,4 +98,11 @@ extern void sub_08077F50(ItemBehavior *beh, u32 arg1);
extern void sub_0807AA80(Entity*);
extern s32 sub_0807887C(Entity*, u32, u32);
extern s32 sub_08078904();
extern void sub_0805E5A8(void);
extern void sub_0805E5C0(void);
extern void sub_080AD90C(void);
extern void sub_080AD9B0(void);
extern void sub_080AD918(void);
extern void sub_0801E104(void);
extern void MenuFadeIn(u32, u32);
#endif

View File

@ -5,6 +5,7 @@
typedef struct {
u16 lcdControl2;
u16 unk2;
u32 unk;
u16 lcdControl1;
} LcdControls;

View File

@ -433,7 +433,7 @@ SECTIONS {
asm/code_08049CD4.o(.text);
asm/sub_0804AA30.o(.text);
src/createEnemy.o(.text);
src/sub_0804AA84.o(.text);
src/code_0804AA84.o(.text);
asm/code_0804AA84.o(.text);
src/loadRoomEntityList.o(.text);
asm/createEntity.o(.text);

94
src/code_0804AA84.c Normal file
View File

@ -0,0 +1,94 @@
#include "global.h"
#include "entity.h"
#include "area.h"
#include "functions.h"
#include "screen.h"
typedef struct {
u8 interruptFlag;
u8 field_0x1;
u8 loadType;
u8 funcIndex;
u8 transition;
u16 field_0x5;
u8 muteAudio;
u8 field_0x8;
u8 countdown;
u8 field_0xa;
u8 field_0xb;
u8 ticks;
u8 field_0xe;
u8 field_0xf;
} Main;
typedef struct {
u8 filler [18];
u32 unk;
} struct_02018EB0;
extern void sub_0805E5A8();
extern void (*const gUnk_080D4120[])();
extern void (*const gUnk_080D412C[])();
extern Main gUnk_03001000;
extern struct_02018EB0 gUnk_02018EB0;
extern u8 gUnk_03000FD0;
u32 sub_0804AA84(void)
{
if (gArea.fadeOut != 0) {
gUnk_03001000.transition = 4;
gArea.filler[8] = 0;
gArea.filler[9] = 0;
*(u16*)&gArea.filler[10] = 0;
sub_0805E5A8();
return 1;
}
else {
gArea.filler[18] = gArea.fadeOut;
*(vu8*)&gArea.fadeOut = gArea.fadeOut;
return 0;
}
}
void sub_0804AAB8(void)
{
gUnk_080D4120[gArea.filler[8]]();
}
void sub_0804AAD4(void)
{
_DmaZero((void *)&gUnk_02018EB0, 0x28);
gUnk_02018EB0.unk = 0;
EraseAllEntities();
CreateObject(0x3d, gArea.filler3[5], 0);
gArea.filler[8]++;
}
void sub_0804AB04(void)
{
sub_0805E5C0();
if (gArea.field_0x10 != 0) {
sub_080AD90C();
sub_080AD9B0();
sub_080AD918();
}
}
void sub_0804AB24(void)
{
if (gUnk_03000FD0 == 0) {
gScreen.lcd.lcdControl2 = 0;
sub_0801E104();
gArea.filler[8] = 0;
MenuFadeIn(6, 0);
gUnk_03000FD0 = 0;
}
}
void sub_0804AB54(void)
{
gUnk_080D412C[gArea.filler[8]]();
}

View File

@ -1,37 +0,0 @@
#include "global.h"
// Very close!
/* extern void sub_0805E5A8();
extern u8 gArea;
extern u8 gUnk_03001000;
u32 sub_0804AA84(void)
{
u8 * r3 = &gArea;
u8 * r2;
u8 r0 = *(u8 *)(r3 + 0x19);
u8 r1;
if (!r0) {
*(r3 + 0x18) = r0;
*(r3 + 0x19) = r0;
r0 = 0;
}
else {
r2 = &gUnk_03001000;
r1 = 0;
r0 = 4;
*(r2 + 0x4) = r0;
*(r3 + 0xe) = r1;
*(r3 + 0xf) = r1;
*(u16*)(r3 + 0x10) = r1;
sub_0805E5A8();
r0 = 1;
}
return r0;
} */
// void sub_0804AA9C() {