This commit is contained in:
theo3 2020-07-18 22:53:42 -07:00
parent 292014b1de
commit a4a0193480
19 changed files with 2208 additions and 3354 deletions

View File

@ -59,8 +59,8 @@ sub_08000E92: @ 0x08000E92
movs r3, #1
b _08000E98
non_word_aligned_thumb_func_start sub_08000E96
sub_08000E96: @ 0x08000E96
non_word_aligned_thumb_func_start LoadAssetAsync
LoadAssetAsync: @ 0x08000E96
movs r3, #0
_08000E98:
push {r4, r5}

View File

@ -803,7 +803,7 @@ sub_0801DD88: @ 0x0801DD88
ldr r1, _0801DD9C @ =0x06006000
movs r2, #0x80
lsls r2, r2, #6
bl sub_08000E96
bl LoadAssetAsync
pop {pc}
.align 2, 0
_0801DD98: .4byte gUnk_0201AEE0

File diff suppressed because it is too large Load Diff

View File

@ -1468,7 +1468,7 @@ sub_08056F70: @ 0x08056F70
ldr r1, _08056F84 @ =0x0600D040
movs r2, #0xd0
lsls r2, r2, #4
bl sub_08000E96
bl LoadAssetAsync
pop {pc}
.align 2, 0
_08056F80: .4byte gUnk_02000D00

View File

@ -2483,7 +2483,7 @@ _0805F962:
ldr r0, _0805F990 @ =gUnk_02036AD8
mov r1, sl
movs r2, #0xe0
bl sub_08000E96
bl LoadAssetAsync
pop {r3, r4, r5}
mov r8, r3
mov sb, r4

View File

@ -1983,7 +1983,7 @@ _080A4B2C: .4byte gUnk_081281A8
_080A4B30: .4byte 0x06014000
_080A4B34:
ldr r1, _080A4B40 @ =0x06014000
bl sub_08000E96
bl LoadAssetAsync
_080A4B3A:
pop {r3}
mov r8, r3

View File

@ -342,7 +342,7 @@ _08059800:
ldr r1, _08059820 @ =0x0600E800
adds r0, r4, #0
adds r2, r5, #0
bl sub_08000E96
bl LoadAssetAsync
b _08059838
.align 2, 0
_0805981C: .4byte gUnk_02001A40

View File

@ -245,7 +245,7 @@ _08059B94:
ldr r1, _08059BE8 @ =0x06001800
movs r2, #0x80
lsls r2, r2, #4
bl sub_08000E96
bl LoadAssetAsync
b _08059C5E
.align 2, 0
_08059BD8: .4byte 0x000004AB
@ -384,12 +384,12 @@ _08059CEC:
movs r5, #0x80
lsls r5, r5, #5
adds r2, r5, #0
bl sub_08000E96
bl LoadAssetAsync
ldr r0, [r6, #8]
adds r0, r0, r4
ldr r1, [r6, #0xc]
adds r2, r5, #0
bl sub_08000E96
bl LoadAssetAsync
pop {r4, r5, r6, pc}
.align 2, 0
_08059D10: .4byte gUnk_08108468

View File

@ -424,7 +424,7 @@ sub_0805B328: @ 0x0805B328
movs r4, #0x80
lsls r4, r4, #4
adds r2, r4, #0
bl sub_08000E96
bl LoadAssetAsync
ldr r1, _0805B380 @ =gScreen
ldr r0, _0805B384 @ =0x00001E07
strh r0, [r1, #0x2c]

View File

@ -81,7 +81,7 @@ _08057DD6:
ldr r1, [r2, #4]
movs r2, #0x80
lsls r2, r2, #5
bl sub_08000E96
bl LoadAssetAsync
ldr r0, _08057E00 @ =gUnk_081081E4
adds r0, r5, r0
ldrb r0, [r0]
@ -100,7 +100,7 @@ _08057E04:
ldr r1, [r1, #4]
movs r2, #0x80
lsls r2, r2, #5
bl sub_08000E96
bl LoadAssetAsync
b _08057E24
.align 2, 0
_08057E1C: .4byte gUnk_085A2E80

View File

@ -560,7 +560,7 @@ sub_080592EC: @ 0x080592EC
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
bl sub_08059340
bl SetDirtTile
pop {pc}
thumb_func_start sub_0805930C
@ -592,8 +592,8 @@ _0805933A:
.align 2, 0
_0805933C: .4byte gRoomControls
thumb_func_start sub_08059340
sub_08059340: @ 0x08059340
thumb_func_start SetDirtTile
SetDirtTile: @ 0x08059340
push {r4, lr}
adds r4, r0, #0
movs r0, #0x1d

View File

@ -0,0 +1,111 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, [r1, #4]
lsls r0, r0, #4
ldr r1, _0804C000 @ =gUnk_080D8E50
adds r4, r0, r1
ldr r0, [r4]
ldrh r1, [r4, #4]
lsrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
ldrh r2, [r4, #6]
lsrs r2, r2, #4
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
movs r2, #1
bl sub_0807BB68
ldrh r0, [r4, #8]
mov r8, r0
movs r5, #0
cmp r5, r8
bhs _0804BFE8
ldr r7, _0804C004 @ =gRoomControls
movs r1, #0
mov sl, r1
movs r6, #0
movs r3, #1
mov sb, r3
_0804BF7A:
movs r0, #0xf
movs r1, #0xf
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0804BFA6
ldrh r0, [r7, #6]
ldrh r1, [r4, #4]
adds r0, r0, r1
adds r0, r0, r6
strh r0, [r2, #0x2e]
ldrh r1, [r7, #8]
ldrh r3, [r4, #6]
adds r1, r1, r3
adds r0, r5, #0
mov r3, sb
ands r0, r3
lsls r0, r0, #3
adds r1, r1, r0
strh r1, [r2, #0x32]
_0804BFA6:
movs r0, #0xf
movs r1, #0x54
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0804BFE0
ldrh r0, [r7, #6]
ldrh r1, [r4, #4]
adds r0, r0, r1
adds r0, r0, r6
strh r0, [r2, #0x2e]
ldrh r1, [r7, #8]
ldrh r3, [r4, #6]
adds r1, r1, r3
ldr r0, _0804C008 @ =0x0000FFF4
adds r1, r1, r0
adds r0, r5, #0
mov r3, sb
ands r0, r3
lsls r0, r0, #3
adds r1, r1, r0
strh r1, [r2, #0x32]
mov r0, sl
strb r0, [r2, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r2, #0x24]
_0804BFE0:
adds r6, #0x10
adds r5, #1
cmp r5, r8
blo _0804BF7A
_0804BFE8:
ldrh r0, [r4, #0xa]
ldrh r1, [r4, #0xc]
bl sub_08080964
ldrh r0, [r4, #0xe]
bl PlaySFX
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0804C000: .4byte gUnk_080D8E50
_0804C004: .4byte gRoomControls
_0804C008: .4byte 0x0000FFF4
.syntax divided

View File

@ -0,0 +1,148 @@
.syntax unified
push {r4, r5, lr}
movs r0, #0
bl sub_080AF250
ldr r0, _0804C15C @ =gRoomVars
ldrb r0, [r0]
cmp r0, #0
bne _0804C13A
b _0804C24C
_0804C13A:
ldr r1, _0804C160 @ =gArea
ldrb r3, [r1, #0xd]
movs r0, #0xe
ands r0, r3
adds r5, r1, #0
cmp r0, #0
bne _0804C164
movs r0, #0xf0
ands r0, r3
cmp r0, #0
bne _0804C19C
movs r0, #0xf
rsbs r0, r0, #0
ands r0, r3
movs r1, #2
orrs r0, r1
b _0804C19A
.align 2, 0
_0804C15C: .4byte gRoomVars
_0804C160: .4byte gArea
_0804C164:
ldr r2, _0804C18C @ =gRoomControls
ldr r1, _0804C190 @ =gUnk_080D9338
lsls r4, r3, #0x1c
lsrs r0, r4, #0x1d
adds r0, r0, r1
ldrb r1, [r2, #0x10]
ldrb r0, [r0]
cmp r1, r0
bne _0804C194
lsrs r0, r4, #0x1d
adds r0, #1
movs r1, #7
ands r0, r1
lsls r0, r0, #1
movs r1, #0xf
rsbs r1, r1, #0
ands r1, r3
orrs r1, r0
strb r1, [r5, #0xd]
b _0804C19C
.align 2, 0
_0804C18C: .4byte gRoomControls
_0804C190: .4byte gUnk_080D9338
_0804C194:
movs r0, #0xf
rsbs r0, r0, #0
ands r0, r3
_0804C19A:
strb r0, [r5, #0xd]
_0804C19C:
ldrb r3, [r5, #0xd]
movs r0, #0xe
ands r0, r3
cmp r0, #0
bne _0804C1DE
ldr r2, _0804C1D0 @ =gRoomControls
ldr r1, _0804C1D4 @ =gUnk_080D9340
lsls r4, r3, #0x18
lsrs r0, r4, #0x1c
adds r0, r0, r1
ldrb r1, [r2, #0x10]
ldrb r0, [r0]
cmp r1, r0
bne _0804C1D8
lsrs r0, r4, #0x1c
adds r0, #1
lsls r0, r0, #4
movs r1, #0xf
ands r1, r3
orrs r1, r0
movs r0, #0xf
rsbs r0, r0, #0
ands r1, r0
strb r1, [r5, #0xd]
b _0804C1DE
.align 2, 0
_0804C1D0: .4byte gRoomControls
_0804C1D4: .4byte gUnk_080D9340
_0804C1D8:
movs r0, #0xf
ands r0, r3
strb r0, [r5, #0xd]
_0804C1DE:
adds r4, r5, #0
ldrb r1, [r4, #0xd]
movs r0, #0xe
ands r0, r1
cmp r0, #0xc
bne _0804C206
movs r0, #1
bl sub_080AF250
movs r0, #0x62
bl SetGlobalFlag
bl sub_0804C290
ldrb r1, [r4, #0xd]
movs r0, #0xf
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0xd]
b _0804C254
_0804C206:
movs r0, #0xf0
ands r0, r1
cmp r0, #0x60
bne _0804C250
movs r0, #1
bl sub_080AF250
movs r0, #0x5c
bl CheckLocalFlag
cmp r0, #0
bne _0804C228
ldr r1, _0804C244 @ =0x00000107
movs r0, #0x73
movs r2, #1
bl SetTileType
_0804C228:
ldr r0, _0804C248 @ =gUnk_080D9328
bl sub_0804B1AC
movs r0, #0x62
bl SetGlobalFlag
bl sub_0804C290
ldrb r1, [r5, #0xd]
movs r0, #0xf
ands r0, r1
strb r0, [r5, #0xd]
b _0804C254
.align 2, 0
_0804C244: .4byte 0x00000107
_0804C248: .4byte gUnk_080D9328
_0804C24C:
bl sub_0804C258
_0804C250:
bl sub_0804C290
_0804C254:
pop {r4, r5, pc}
.align 2, 0
.syntax divided

View File

@ -0,0 +1,28 @@
.syntax unified
push {lr}
ldr r3, _0804C288 @ =gArea
ldrb r0, [r3, #0xd]
movs r2, #0xf
rsbs r2, r2, #0
ands r2, r0
movs r0, #2
orrs r2, r0
movs r0, #0xf
ands r2, r0
strb r2, [r3, #0xd]
ldr r0, _0804C28C @ =gUnk_030010A0
ldrb r0, [r0, #0xe]
cmp r0, #4
bne _0804C284
movs r1, #0xe
adds r0, r2, #0
orrs r0, r1
strb r0, [r3, #0xd]
movs r0, #1
bl sub_080AF250
_0804C284:
pop {pc}
.align 2, 0
_0804C288: .4byte gArea
_0804C28C: .4byte gUnk_030010A0
.syntax divided

View File

@ -0,0 +1,23 @@
.syntax unified
push {lr}
ldr r0, _0804C2B4 @ =gArea
ldrb r1, [r0, #0xd]
movs r0, #0xe
ands r0, r1
cmp r0, #0
beq _0804C2B2
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1d
lsls r1, r1, #2
ldr r0, _0804C2B8 @ =gUnk_080D9348
adds r1, r1, r0
ldrh r0, [r1]
ldrh r1, [r1, #2]
movs r2, #1
bl SetTileType
_0804C2B2:
pop {pc}
.align 2, 0
_0804C2B4: .4byte gArea
_0804C2B8: .4byte gUnk_080D9348
.syntax divided

View File

@ -3,6 +3,7 @@
#include "global.h"
typedef struct {
u8 areaMetadata;
u8 locationIndex;
@ -13,6 +14,9 @@ typedef struct {
u8 filler3[7];
u8 fadeOut;
u8 filler2[14];
u8 filler4[0x835];
u32 musicIndex;
u32 pMusicIndex;
} Area;
extern Area gArea;

View File

@ -31,6 +31,8 @@ extern Entity* GetEmptyEntity(void);
extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer);
extern void _DmaZero(void* src, u32 count);
extern void EraseAllEntities(void);
extern void SetTile(u32, u32, u32);
extern void SetDirtTile(u32);
// Unidentified
extern void sub_0806ED78(Entity*);
@ -112,4 +114,23 @@ extern void sub_080575C8(u32);
extern void sub_08057688(void);
extern void sub_080580B0(u32);
extern void sub_080751E8(u32, u32, void*);
extern void sub_08052CA4(u32, u32, u32, u32);
extern void sub_08052878(void);
extern void sub_0808091C(u32*, u32);
extern void sub_0805BC4C(void);
extern void sub_0807BB68(u32*, u32, u32);
extern void sub_08054570(void);
extern void sub_08059278(void);
extern void sub_0804C128(u32);
extern void sub_08058324(u32);
extern void sub_0804C2F0(void);
extern void sub_0801AFE4(void);
extern u32 sub_08060354(void);
extern void sub_08057E64(void);
extern void LoadAssetAsync(void*, u32, u32);
extern void LoadPalettesByPaletteGroupIndex(u32);
extern void sub_0809F814(u32);
extern void sub_080300E8(void);
extern void sub_0801DA90(u32);
extern void sub_08058D34(void);
#endif

View File

@ -44,10 +44,13 @@ typedef struct {
u8 filler4[48];
u8 filler5[28];
u32 greatFairyState;
u8 field_0x68[9];
u32* field_0x6c;
u32 field_0x70;
u32 field_0x74;
u32 field_0x78;
} RoomVars;
//Packets used to store which entities to load in a room
typedef struct {
u8 entityType;

1917
src/room.c

File diff suppressed because it is too large Load Diff