more refining

This commit is contained in:
theo 2020-05-19 00:27:11 -07:00
parent cfc757cd58
commit b6b0248051
29 changed files with 84683 additions and 84613 deletions

View File

@ -49,7 +49,7 @@ CPPFLAGS := -I tools/agbcc -I tools/agbcc/include -iquote include -nostdinc -und
LDFLAGS = -Map ../../$(MAP)
LIB := -L ../../tools/agbcc/lib -lc
LIB := -L ../../tools/agbcc/lib -lc
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx
@ -120,6 +120,8 @@ endif
tools: $(TOOLDIRS)
$(TOOLDIRS):
@$(MAKE) -C $@
# For contributors to make sure a change didn't affect the contents of the ROM.
compare:

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.text
.syntax unified
thumb_func_start GetProgressFlag
GetProgressFlag: @ 0x0807CC30
push {lr}
adds r1, r0, #0
movs r0, #0
bl GetProgressFlagWithOffset
pop {pc}

View File

@ -475,7 +475,7 @@ _0801889A:
ldr r1, _080188AC @ =gUnk_080FECC8
_080188A4:
adds r0, r0, r1
bl sub_0804ADF8
bl CreateEntity
b _080189E4
.align 2, 0
_080188AC: .4byte gUnk_080FECC8
@ -488,7 +488,7 @@ _080188B8:
lsls r0, r0, #4
ldr r1, _080188DC @ =gUnk_080FED18
adds r0, r0, r1
bl sub_0804ADF8
bl CreateEntity
adds r2, r0, #0
cmp r2, #0
bne _080188CC
@ -527,7 +527,7 @@ _080188FE:
lsls r0, r0, #4
ldr r1, _08018924 @ =gUnk_080FED58
adds r0, r0, r1
bl sub_0804ADF8
bl CreateEntity
ldr r2, _08018928 @ =gUnk_02034350
ldrb r0, [r5, #1]
lsls r0, r0, #2
@ -549,7 +549,7 @@ _08018930:
lsls r0, r0, #4
ldr r1, _08018974 @ =gUnk_080FEE78
adds r0, r0, r1
bl sub_0804ADF8
bl CreateEntity
adds r2, r0, #0
cmp r2, #0
beq _08018958
@ -604,7 +604,7 @@ _080189A4:
cmp r4, #0
beq _080189E4
ldr r0, _080189B0 @ =gUnk_080FEE18
bl sub_0804ADDC
bl LoadRoomEntityList
b _080189E4
.align 2, 0
_080189B0: .4byte gUnk_080FEE18
@ -612,13 +612,13 @@ _080189B4:
cmp r4, #0
beq _080189C4
ldr r0, _080189C0 @ =gUnk_080FEE58
bl sub_0804ADF8
bl CreateEntity
b _080189E4
.align 2, 0
_080189C0: .4byte gUnk_080FEE58
_080189C4:
ldr r0, _080189CC @ =gUnk_080FEE48
bl sub_0804ADF8
bl CreateEntity
b _080189E4
.align 2, 0
_080189CC: .4byte gUnk_080FEE48
@ -630,7 +630,7 @@ _080189D0:
movs r1, #0x79
bl sub_0807CC9C
ldr r0, _080189E8 @ =gUnk_080FEE38
bl sub_0804ADDC
bl LoadRoomEntityList
_080189E4:
pop {r4, r5, pc}
.align 2, 0

File diff suppressed because it is too large Load Diff

3101
asm/code_08016DF8.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

419
asm/code_0804AA84.s Normal file
View File

@ -0,0 +1,419 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0804AA84
sub_0804AA84: @ 0x0804AA84
push {lr}
ldr r3, _0804AA98 @ =gUnk_02033A90
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 gUnk_02033A90
_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 @ =gUnk_02033A90
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 gUnk_02033A90
thumb_func_start sub_0804AAD4
sub_0804AAD4: @ 0x0804AAD4
push {r4, lr}
ldr r4, _0804AAFC @ =gUnk_02018EB0
adds r0, r4, #0
movs r1, #0x28
bl sub_0801D630
movs r0, #0
str r0, [r4, #0x14]
bl sub_0805E60C
ldr r4, _0804AB00 @ =gUnk_02033A90
ldrb r1, [r4, #0x17]
movs r0, #0x3d
movs r2, #0
bl sub_080A2960
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
pop {r4, pc}
.align 2, 0
_0804AAFC: .4byte gUnk_02018EB0
_0804AB00: .4byte gUnk_02033A90
thumb_func_start sub_0804AB04
sub_0804AB04: @ 0x0804AB04
push {lr}
bl sub_0805E5C0
ldr r0, _0804AB20 @ =gUnk_02033A90
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 gUnk_02033A90
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 @ =gUnk_03000F50
movs r4, #0
strh r1, [r0]
bl sub_0801E104
ldr r0, _0804AB50 @ =gUnk_02033A90
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 gUnk_03000F50
_0804AB50: .4byte gUnk_02033A90
thumb_func_start sub_0804AB54
sub_0804AB54: @ 0x0804AB54
push {lr}
ldr r1, _0804AB68 @ =gUnk_080D412C
ldr r0, _0804AB6C @ =gUnk_02033A90
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 gUnk_02033A90
thumb_func_start sub_0804AB70
sub_0804AB70: @ 0x0804AB70
push {r4, r5, lr}
movs r0, #0
bl sub_0801DA90
ldr r1, _0804ABF8 @ =gUnk_03000F50
movs r2, #0
movs r0, #0x92
lsls r0, r0, #5
strh r0, [r1]
ldr r0, _0804ABFC @ =0x00009E83
strh r0, [r1, #0x14]
ldr r0, _0804AC00 @ =gUnk_03000BF0
strh r2, [r1, #0x16]
strh r2, [r0, #0xa]
strh r2, [r1, #0x18]
strh r2, [r0, #0xc]
ldr r0, _0804AC04 @ =gUnk_02033A90
ldrb r5, [r0, #0x17]
cmp r5, #2
bne _0804ABA4
ldr r0, _0804AC08 @ =gUnk_02032EC0
adds r0, #0x20
ldrb r0, [r0]
cmp r0, #2
beq _0804ABA4
movs r5, #3
_0804ABA4:
lsls r4, r5, #1
ldr r0, _0804AC0C @ =gUnk_080D4138
adds r4, r4, r0
ldrb r0, [r4]
bl sub_0801D714
ldrb r0, [r4, #1]
bl sub_0801D7EC
ldr r0, _0804AC10 @ =gUnk_02017700
movs r2, #0x90
lsls r2, r2, #2
adds r1, r0, r2
movs r2, #0x20
bl sub_0801D66C
ldr r2, _0804AC14 @ =gUnk_0200B644
ldr r0, [r2]
movs r1, #0x80
lsls r1, r1, #0xe
orrs r0, r1
str r0, [r2]
bl sub_0805E60C
ldr r1, _0804AC18 @ =gUnk_080D4110
lsls r0, r5, #2
adds r0, r0, r1
ldr r0, [r0]
bl LoadRoomEntityList
bl sub_0805E5B4
ldr r1, _0804AC04 @ =gUnk_02033A90
ldrb r0, [r1, #0xe]
adds r0, #1
strb r0, [r1, #0xe]
movs r0, #4
movs r1, #8
bl sub_08050054
pop {r4, r5, pc}
.align 2, 0
_0804ABF8: .4byte gUnk_03000F50
_0804ABFC: .4byte 0x00009E83
_0804AC00: .4byte gUnk_03000BF0
_0804AC04: .4byte gUnk_02033A90
_0804AC08: .4byte gUnk_02032EC0
_0804AC0C: .4byte gUnk_080D4138
_0804AC10: .4byte gUnk_02017700
_0804AC14: .4byte gUnk_0200B644
_0804AC18: .4byte gUnk_080D4110
thumb_func_start sub_0804AC1C
sub_0804AC1C: @ 0x0804AC1C
push {r4, lr}
bl sub_0805E5C0
ldr r0, _0804AC98 @ =gUnk_02018EB0
ldr r2, [r0, #0x14]
cmp r2, #0
beq _0804AC5E
ldr r3, _0804AC9C @ =gUnk_03000BF0
movs r1, #0xc
ldrsh r0, [r3, r1]
movs r4, #0x32
ldrsh r1, [r2, r4]
subs r1, #0x50
subs r0, r0, r1
movs r4, #0x36
ldrsh r1, [r2, r4]
subs r1, r0, r1
cmp r1, #0
beq _0804AC5E
ldrh r0, [r3, #0xc]
subs r0, r0, r1
strh r0, [r3, #0xc]
lsls r0, r0, #0x10
cmp r0, #0
bge _0804AC52
movs r0, #0
strh r0, [r3, #0xc]
_0804AC52:
movs r1, #0xc
ldrsh r0, [r3, r1]
cmp r0, #0x9f
ble _0804AC5E
movs r0, #0x9f
strh r0, [r3, #0xc]
_0804AC5E:
ldr r2, _0804ACA0 @ =gUnk_03000F50
ldr r1, _0804AC9C @ =gUnk_03000BF0
ldrh r0, [r1, #0xa]
strh r0, [r2, #0x16]
ldrh r0, [r1, #0xc]
strh r0, [r2, #0x18]
bl sub_080AD90C
bl sub_080AD9B0
bl sub_080AD918
ldr r0, _0804AC98 @ =gUnk_02018EB0
ldrb r0, [r0, #0x1b]
cmp r0, #0
bne _0804AC86
bl sub_0804ACA8
cmp r0, #0
beq _0804AC96
_0804AC86:
ldr r1, _0804ACA4 @ =gUnk_02033A90
ldrb r0, [r1, #0xe]
adds r0, #1
strb r0, [r1, #0xe]
movs r0, #7
movs r1, #0x10
bl sub_08050054
_0804AC96:
pop {r4, pc}
.align 2, 0
_0804AC98: .4byte gUnk_02018EB0
_0804AC9C: .4byte gUnk_03000BF0
_0804ACA0: .4byte gUnk_03000F50
_0804ACA4: .4byte gUnk_02033A90
thumb_func_start sub_0804ACA8
sub_0804ACA8: @ 0x0804ACA8
push {lr}
ldr r0, _0804ACC0 @ =gUnk_03000FF0
ldrh r1, [r0, #2]
movs r0, #0x81
lsls r0, r0, #1
ands r0, r1
cmp r0, #0
beq _0804ACC4
bl sub_0804AD18
b _0804ACC6
.align 2, 0
_0804ACC0: .4byte gUnk_03000FF0
_0804ACC4:
movs r0, #0
_0804ACC6:
pop {pc}
thumb_func_start sub_0804ACC8
sub_0804ACC8: @ 0x0804ACC8
push {lr}
ldr r0, _0804ACEC @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _0804ACE8
ldr r0, _0804ACF0 @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
adds r0, #0x5e
bl sub_0807CD04
ldr r0, _0804ACF4 @ =gUnk_02032EDC
bl sub_0804AD6C
movs r0, #0
bl sub_080A71F4
_0804ACE8:
pop {pc}
.align 2, 0
_0804ACEC: .4byte gUnk_03000FD0
_0804ACF0: .4byte gUnk_02033A90
_0804ACF4: .4byte gUnk_02032EDC
thumb_func_start sub_0804ACF8
sub_0804ACF8: @ 0x0804ACF8
push {lr}
bl sub_0804AD18
cmp r0, #0
beq _0804AD12
ldr r0, _0804AD14 @ =gUnk_03000BF0
bl sub_0804AD6C
bl sub_0805E5A8
movs r0, #0xf8
bl sub_080A3268
_0804AD12:
pop {pc}
.align 2, 0
_0804AD14: .4byte gUnk_03000BF0
thumb_func_start sub_0804AD18
sub_0804AD18: @ 0x0804AD18
push {lr}
ldr r0, _0804AD30 @ =gUnk_02033A90
ldrb r1, [r0, #0x17]
adds r2, r0, #0
cmp r1, #6
bhi _0804AD66
lsls r0, r1, #2
ldr r1, _0804AD34 @ =_0804AD38
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804AD30: .4byte gUnk_02033A90
_0804AD34: .4byte _0804AD38
_0804AD38: @ jump table
.4byte _0804AD54 @ case 0
.4byte _0804AD54 @ case 1
.4byte _0804AD54 @ case 2
.4byte _0804AD66 @ case 3
.4byte _0804AD66 @ case 4
.4byte _0804AD66 @ case 5
.4byte _0804AD62 @ case 6
_0804AD54:
ldrb r0, [r2, #0x17]
adds r0, #0x5e
bl GetProgressFlag
adds r1, r0, #0
cmp r1, #0
bne _0804AD68
_0804AD62:
movs r0, #0
b _0804AD68
_0804AD66:
movs r0, #0
_0804AD68:
pop {pc}
.align 2, 0
thumb_func_start sub_0804AD6C
sub_0804AD6C: @ 0x0804AD6C
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
ldr r3, _0804ADD0 @ =gUnk_030010A0
movs r1, #0
movs r6, #1
strb r6, [r3, #8]
strb r1, [r3, #9]
ldr r4, _0804ADD4 @ =gUnk_02033A90
ldr r5, _0804ADD8 @ =gUnk_080D4140
ldrb r1, [r4, #0x16]
lsls r1, r1, #2
adds r1, r1, r5
ldrh r1, [r1]
ldrh r2, [r4, #0x12]
adds r1, r1, r2
ldrh r2, [r0, #6]
subs r1, r1, r2
movs r2, #0
mov r8, r2
strh r1, [r3, #0x10]
ldrb r1, [r4, #0x16]
lsls r1, r1, #1
adds r1, #1
lsls r1, r1, #1
adds r1, r1, r5
ldrh r1, [r1]
ldrh r2, [r4, #0x14]
adds r1, r1, r2
ldrh r2, [r0, #8]
subs r1, r1, r2
strh r1, [r3, #0x12]
ldrb r1, [r4, #0x16]
lsls r1, r1, #1
strb r1, [r3, #0xe]
strb r6, [r3, #0xf]
ldrb r1, [r0, #4]
strb r1, [r3, #0xc]
ldrb r0, [r0, #5]
strb r0, [r3, #0xd]
mov r0, r8
strb r0, [r3, #0x14]
bl sub_080300AC
bl sub_080300C4
pop {r3}
mov r8, r3
pop {r4, r5, r6, pc}
.align 2, 0
_0804ADD0: .4byte gUnk_030010A0
_0804ADD4: .4byte gUnk_02033A90
_0804ADD8: .4byte gUnk_080D4140

198
asm/code_0804AEB0.s Normal file
View File

@ -0,0 +1,198 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0804AEB0
sub_0804AEB0: @ 0x0804AEB0
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
ldrb r0, [r6, #1]
movs r1, #0xf
adds r2, r1, #0
ands r2, r0
ldrb r0, [r6]
adds r4, r1, #0
ands r4, r0
ldr r0, [r5]
cmp r0, #0
bne _0804AEF6
cmp r2, #0xf
bne _0804AEE0
ldr r0, _0804AEDC @ =gUnk_081091E4
adds r0, r4, r0
ldrb r1, [r0]
adds r0, r5, #0
bl sub_0805EA2C
b _0804AEF6
.align 2, 0
_0804AEDC: .4byte gUnk_081091E4
_0804AEE0:
cmp r2, #8
bne _0804AEEE
adds r0, r5, #0
movs r1, #8
bl sub_0805EA2C
b _0804AEF6
_0804AEEE:
adds r0, r5, #0
adds r1, r2, #0
bl sub_0805EA2C
_0804AEF6:
adds r1, r5, #0
adds r1, #0x78
cmp r4, #9
bne _0804AF00
subs r1, #0x48
_0804AF00:
adds r0, r6, #0
movs r2, #0x10
bl sub_0801D66C
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0804AF0C
sub_0804AF0C: @ 0x0804AF0C
push {r4, lr}
adds r4, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #1]
movs r1, #0xf0
ands r1, r0
cmp r1, #0x20
beq _0804AF40
cmp r1, #0x20
bgt _0804AF26
cmp r1, #0
beq _0804AF2C
b _0804AF88
_0804AF26:
cmp r1, #0x40
beq _0804AF64
b _0804AF88
_0804AF2C:
ldr r0, _0804AF3C @ =gUnk_03000BF0
ldrh r1, [r0, #6]
ldrh r3, [r2, #8]
adds r1, r1, r3
strh r1, [r4, #0x2e]
ldrh r0, [r0, #8]
b _0804AF58
.align 2, 0
_0804AF3C: .4byte gUnk_03000BF0
_0804AF40:
adds r3, r4, #0
adds r3, #0x6d
ldrb r1, [r3]
movs r0, #0x20
orrs r0, r1
strb r0, [r3]
ldr r1, _0804AF60 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r2, #8]
adds r0, r0, r3
strh r0, [r4, #0x2e]
ldrh r0, [r1, #8]
_0804AF58:
ldrh r2, [r2, #0xa]
adds r0, r0, r2
strh r0, [r4, #0x32]
b _0804AF88
.align 2, 0
_0804AF60: .4byte gUnk_03000BF0
_0804AF64:
ldr r1, _0804AF8C @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r2, #8]
adds r0, r0, r3
strh r0, [r4, #0x2e]
ldrh r0, [r1, #8]
ldrh r1, [r2, #0xa]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldr r1, [r2, #0xc]
adds r0, r4, #0
bl sub_0807DAD0
cmp r0, #0
bne _0804AF88
adds r0, r4, #0
bl sub_0805E7BC
_0804AF88:
pop {r4, pc}
.align 2, 0
_0804AF8C: .4byte gUnk_03000BF0
thumb_func_start sub_0804AF90
sub_0804AF90: @ 0x0804AF90
push {lr}
ldr r0, _0804AFA8 @ =gUnk_02033A90
ldr r1, _0804AFAC @ =0x0000085C
adds r0, r0, r1
ldr r0, [r0]
ldr r0, [r0, #0x1c]
bl sub_0804AFB0
bl sub_080A7C7C
pop {pc}
.align 2, 0
_0804AFA8: .4byte gUnk_02033A90
_0804AFAC: .4byte 0x0000085C
thumb_func_start sub_0804AFB0
sub_0804AFB0: @ 0x0804AFB0
push {r4, lr}
ldr r1, _0804AFD4 @ =gUnk_02017654
str r0, [r1]
movs r2, #0
ldr r0, _0804AFD8 @ =gUnk_02034350
adds r3, r1, #0
adds r4, r0, #0
adds r4, #0x6c
_0804AFC0:
lsls r0, r2, #2
ldr r1, [r3]
adds r0, r0, r1
ldr r0, [r0]
stm r4!, {r0}
adds r2, #1
cmp r2, #7
bls _0804AFC0
pop {r4, pc}
.align 2, 0
_0804AFD4: .4byte gUnk_02017654
_0804AFD8: .4byte gUnk_02034350
thumb_func_start sub_0804AFDC
sub_0804AFDC: @ 0x0804AFDC
push {r4, lr}
movs r4, #1
movs r0, #6
bl sub_0804B128
cmp r0, #0
beq _0804AFF0
bl _call_via_r0
adds r4, r0, #0
_0804AFF0:
adds r0, r4, #0
pop {r4, pc}
thumb_func_start sub_0804AFF4
sub_0804AFF4: @ 0x0804AFF4
push {lr}
bl sub_080186EC
movs r0, #5
bl sub_0804B128
cmp r0, #0
beq _0804B008
bl _call_via_r0
_0804B008:
movs r0, #7
bl sub_0804B128
cmp r0, #0
beq _0804B016
bl _call_via_r0
_0804B016:
bl sub_0804B16C
pop {pc}

File diff suppressed because it is too large Load Diff

16036
asm/code_0804B9F8.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2040,7 +2040,7 @@ sub_080535AC: @ 0x080535AC
ands r0, r1
strh r0, [r2]
ldr r0, _080535F0 @ =gUnk_080FCB94
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #6
movs r1, #8
bl sub_08050054
@ -2222,7 +2222,7 @@ sub_0805370C: @ 0x0805370C
strb r0, [r1]
bl sub_08051FF0
ldr r0, _08053738 @ =gUnk_080FCC54
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #4
movs r1, #0x10
bl sub_08050054
@ -2517,7 +2517,7 @@ sub_08053974: @ 0x08053974
bl sub_080197AC
bl sub_08051F78
ldr r0, _080539B0 @ =gUnk_080FCBC4
bl sub_0804ADDC
bl LoadRoomEntityList
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
@ -2552,7 +2552,7 @@ sub_080539BC: @ 0x080539BC
movs r1, #0x11
bl sub_0804B0B0
ldr r0, _080539EC @ =gUnk_080FCC14
bl sub_0804ADDC
bl LoadRoomEntityList
ldr r1, _080539F0 @ =gUnk_02000080
ldrb r0, [r1, #6]
adds r0, #1
@ -2687,7 +2687,7 @@ sub_08053ACC: @ 0x08053ACC
strb r0, [r1]
bl sub_08051FF0
ldr r0, _08053AFC @ =gUnk_080FCD84
bl sub_0804ADDC
bl LoadRoomEntityList
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
@ -2771,7 +2771,7 @@ sub_08053B74: @ 0x08053B74
movs r0, #1
strb r0, [r1]
ldr r0, _08053BA8 @ =gUnk_080FCDE0
bl sub_0804ADDC
bl LoadRoomEntityList
bl sub_0805E5B4
bl sub_0805E470
movs r1, #0x80
@ -2860,7 +2860,7 @@ sub_08053C20: @ 0x08053C20
movs r0, #4
bl sub_0805B4D0
ldr r0, _08053C58 @ =gUnk_080FCEBC
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #4
movs r1, #0x10
bl sub_08050054
@ -2944,17 +2944,17 @@ sub_08053CC8: @ 0x08053CC8
adds r0, #8
str r0, [r6, #0xc]
ldr r0, [r4]
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #1
bl sub_0804B0FC
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #2
bl sub_0804B0FC
bl sub_0804ADDC
bl LoadRoomEntityList
movs r5, #1
strb r5, [r6, #6]
ldr r2, _08053D28 @ =gUnk_03000F50
@ -3075,17 +3075,17 @@ sub_08053DB4: @ 0x08053DB4
adds r0, r0, r2
strh r0, [r1, #0xc]
ldr r0, [r4]
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #1
bl sub_0804B0FC
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
ldrb r1, [r4, #5]
movs r2, #2
bl sub_0804B0FC
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #0x78
strh r0, [r5, #8]
ldrb r0, [r5, #6]
@ -3146,7 +3146,7 @@ sub_08053E74: @ 0x08053E74
ldr r4, _08053EB4 @ =gUnk_02000080
str r0, [r4, #0xc]
ldr r0, [r0]
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #0x78
strh r0, [r4, #8]
movs r0, #0x3c
@ -3194,7 +3194,7 @@ sub_08053EC4: @ 0x08053EC4
adds r0, #0xc
str r0, [r4, #0xc]
ldr r0, [r1, #4]
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
@ -3253,7 +3253,7 @@ sub_08053F20: @ 0x08053F20
adds r0, r0, r2
strh r0, [r1, #0xc]
ldr r0, [r4]
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #0x78
strh r0, [r5, #8]
movs r0, #0x3c
@ -4441,7 +4441,7 @@ _08054838:
_08054842:
movs r0, #7
movs r1, #0
bl sub_0804AA60
bl CreateEnemy
adds r2, r0, #0
cmp r2, #0
beq _0805486A
@ -5133,7 +5133,7 @@ sub_08054DAC: @ 0x08054DAC
ldrb r1, [r1, #3]
bl sub_0804B0B0
ldr r0, _08054DF4 @ =gUnk_080FEED4
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #2
bl sub_0805B4D0
movs r0, #0
@ -5394,7 +5394,7 @@ sub_08054FAC: @ 0x08054FAC
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r5, #1]
movs r1, #0
cmp r0, #0
@ -5472,7 +5472,7 @@ _08055050: .4byte gUnk_02000080
sub_08055054: @ 0x08055054
push {r4, lr}
ldr r0, _08055080 @ =gUnk_080FF128
bl sub_0804ADDC
bl LoadRoomEntityList
ldr r4, _08055084 @ =gUnk_02000080
ldrb r0, [r4, #4]
movs r1, #2
@ -5528,7 +5528,7 @@ sub_080550B0: @ 0x080550B0
ldrb r1, [r1, #3]
bl sub_0804B0B0
ldr r0, _080550EC @ =gUnk_080FF154
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
movs r1, #0
movs r2, #0
@ -5573,7 +5573,7 @@ _08055110: .4byte gUnk_02000080
sub_08055114: @ 0x08055114
push {r4, lr}
ldr r0, _08055150 @ =gUnk_080FF17C
bl sub_0804ADDC
bl LoadRoomEntityList
ldr r0, _08055154 @ =gUnk_02002A40
ldrb r0, [r0, #8]
cmp r0, #9
@ -6308,7 +6308,7 @@ sub_080556AC: @ 0x080556AC
ldrb r1, [r1, #3]
bl sub_0804B0B0
ldr r0, _080556EC @ =gUnk_080FF264
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
movs r1, #0
movs r2, #0
@ -6352,7 +6352,7 @@ sub_08055710: @ 0x08055710
ldrb r1, [r1, #3]
bl sub_0804B0B0
ldr r0, _08055760 @ =gUnk_080FEE48
bl sub_0804ADF8
bl CreateEntity
adds r1, r0, #0
cmp r1, #0
beq _08055734
@ -6456,7 +6456,7 @@ sub_080557D0: @ 0x080557D0
ldrb r1, [r1, #3]
bl sub_0804B0B0
ldr r0, _08055810 @ =gUnk_080FF298
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
movs r1, #0
movs r2, #0
@ -6495,7 +6495,7 @@ _08055830: .4byte gUnk_02000080
sub_08055834: @ 0x08055834
push {r4, lr}
ldr r0, _08055870 @ =gUnk_080FF2C0
bl sub_0804ADDC
bl LoadRoomEntityList
ldr r0, _08055874 @ =gUnk_02002A40
ldrb r0, [r0, #8]
cmp r0, #9
@ -6555,7 +6555,7 @@ sub_080558A4: @ 0x080558A4
ldrb r1, [r1, #3]
bl sub_0804B0B0
ldr r0, _080558E0 @ =gUnk_080FF308
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
movs r1, #0
movs r2, #0
@ -6730,7 +6730,7 @@ sub_080559FC: @ 0x080559FC
cmp r0, #0
beq _08055A0E
ldr r0, _08055A34 @ =gUnk_080FF33C
bl sub_0804ADDC
bl LoadRoomEntityList
_08055A0E:
ldrb r0, [r4, #4]
movs r1, #0
@ -6857,7 +6857,7 @@ sub_08055AEC: @ 0x08055AEC
lsls r0, r0, #4
ldr r1, _08055B30 @ =gUnk_080FED18
adds r0, r0, r1
bl sub_0804ADF8
bl CreateEntity
adds r1, r0, #0
cmp r1, #0
beq _08055B14
@ -6924,7 +6924,7 @@ sub_08055B70: @ 0x08055B70
lsls r0, r0, #4
ldr r1, _08055BA8 @ =gUnk_080FF378
adds r0, r0, r1
bl sub_0804ADF8
bl CreateEntity
adds r3, r0, #0
cmp r3, #0
beq _08055BA2
@ -7283,7 +7283,7 @@ sub_08055E24: @ 0x08055E24
ldrb r1, [r1, #3]
bl sub_0804B0B0
ldr r0, _08055E64 @ =gUnk_080FF400
bl sub_0804ADDC
bl LoadRoomEntityList
ldrb r0, [r4, #4]
movs r1, #0
movs r2, #0

File diff suppressed because it is too large Load Diff

64159
asm/code_0805E744.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2949,7 +2949,7 @@ sub_0807E148: @ 0x0807E148
push {lr}
ldr r0, [r1]
bl sub_08016998
bl sub_0804ADDC
bl LoadRoomEntityList
pop {pc}
.align 2, 0
@ -63425,7 +63425,7 @@ sub_0809AB04: @ 0x0809AB04
_0809AB22:
movs r0, #0x36
movs r1, #0
bl sub_0804AA60
bl CreateEnemy
adds r4, r0, #0
cmp r4, #0
beq _0809AB9C
@ -63739,14 +63739,14 @@ sub_0809AD68: @ 0x0809AD68
adds r4, r0, #0
ldrb r0, [r4, #0xa]
bl sub_0804B128
bl sub_0804ADDC
bl LoadRoomEntityList
movs r0, #0x17
bl sub_0807CA84
cmp r0, #0
beq _0809AD8A
ldrb r0, [r4, #0xb]
bl sub_0804B128
bl sub_0804ADDC
bl LoadRoomEntityList
_0809AD8A:
pop {r4, pc}
@ -73042,7 +73042,7 @@ sub_0809F5B0: @ 0x0809F5B0
movs r0, #0x24
bl sub_0807CD04
ldr r0, _0809F5D8 @ =gUnk_080DD750
bl sub_0804ADDC
bl LoadRoomEntityList
bl sub_0805E780
_0809F5D4:
pop {pc}
@ -77290,7 +77290,7 @@ _080A15BC:
ldrsh r1, [r5, r0]
subs r1, #1
movs r0, #0x41
bl sub_0804AA60
bl CreateEnemy
adds r4, r0, #0
cmp r4, #0
beq _080A15E6
@ -77479,13 +77479,13 @@ _080A171E:
str r0, [r7]
movs r0, #0x5c
movs r1, #0
bl sub_0804AA60
bl CreateEnemy
adds r1, r0, #0
str r7, [r1, #0x64]
str r1, [r7, #4]
movs r0, #0x5d
movs r1, #0
bl sub_0804AA60
bl CreateEnemy
adds r1, r0, #0
ldr r4, _080A182C @ =gUnk_03000BF0
movs r2, #0x80
@ -77504,7 +77504,7 @@ _080A171E:
str r1, [r7, #8]
movs r0, #0x5d
movs r1, #1
bl sub_0804AA60
bl CreateEnemy
adds r1, r0, #0
movs r2, #0x98
lsls r2, r2, #2
@ -78485,7 +78485,7 @@ sub_080A1ED0: @ 0x080A1ED0
_080A1F1C:
movs r0, #0x60
mov r1, sb
bl sub_0804AA60
bl CreateEnemy
adds r2, r0, #0
cmp r2, #0
beq _080A1FA6

View File

@ -3581,7 +3581,7 @@ _080A4544:
bne _080A45A2
ldrb r0, [r2, #9]
ldrb r1, [r2, #0xa]
bl sub_0804AA60
bl CreateEnemy
_080A4550:
adds r4, r0, #0
cmp r4, #0
@ -16248,7 +16248,7 @@ sub_080AA654: @ 0x080AA654
adds r0, #8
strh r0, [r4, #0xa]
adds r0, r4, #0
bl sub_0804ADF8
bl CreateEntity
pop {r4, r5, pc}
.align 2, 0
_080AA688: .4byte gUnk_0812A004

101
asm/createEntity.s Normal file
View File

@ -0,0 +1,101 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start CreateEntity
CreateEntity: @ 0x0804ADF8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r0, [r4]
movs r6, #0xf
ands r6, r0
ldrb r1, [r4, #1]
movs r0, #0xf0
ands r0, r1
cmp r0, #0x50
bne _0804AE1C
ldrb r1, [r4, #2]
adds r0, r6, #0
bl sub_0805EB9C
cmp r0, #0
beq _0804AE1C
movs r0, #0
b _0804AEAC
_0804AE1C:
adds r0, r6, #0
bl sub_0805E768
adds r5, r0, #0
cmp r5, #0
beq _0804AEAA
strb r6, [r5, #8]
ldrb r0, [r4, #2]
strb r0, [r5, #9]
ldrb r0, [r4, #3]
strb r0, [r5, #0xa]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0804AEB0
ldrb r1, [r4, #1]
movs r7, #0xf0
adds r0, r7, #0
ands r0, r1
cmp r0, #0x10
beq _0804AEAA
ldrb r0, [r4, #4]
strb r0, [r5, #0xb]
ldr r0, [r4, #4]
movs r1, #0xff
lsls r1, r1, #8
ands r0, r1
lsrs r0, r0, #8
strb r0, [r5, #0xe]
cmp r6, #9
beq _0804AEAA
adds r0, r5, #0
adds r1, r4, #0
bl sub_0804AF0C
ldr r0, [r5, #4]
cmp r0, #0
beq _0804AEAA
ldrb r0, [r4]
adds r2, r7, #0
ands r2, r0
movs r0, #0x10
ands r0, r2
cmp r0, #0
bne _0804AE94
movs r0, #0x20
ands r2, r0
cmp r2, #0
beq _0804AE88
adds r1, r5, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
b _0804AEAA
_0804AE88:
ldr r0, _0804AEA0 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0804AEA4
_0804AE94:
adds r1, r5, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
b _0804AEAA
.align 2, 0
_0804AEA0: .4byte gUnk_03000BF0
_0804AEA4:
adds r0, r5, #0
bl sub_08016A30
_0804AEAA:
adds r0, r5, #0
_0804AEAC:
pop {r4, r5, r6, r7, pc}
.align 2, 0

113
asm/getEmptyEntity.s Normal file
View File

@ -0,0 +1,113 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0805E678
sub_0805E678: @ 0x0805E678
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _0805E698 @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x46
bhi _0805E6A6
ldr r4, _0805E69C @ =gUnk_030015A0
movs r0, #0x99
lsls r0, r0, #6
adds r1, r4, r0
_0805E68E:
ldr r0, [r4]
cmp r0, #0
bne _0805E6A0
adds r0, r4, #0
b _0805E730
.align 2, 0
_0805E698: .4byte gUnk_03003DBC
_0805E69C: .4byte gUnk_030015A0
_0805E6A0:
adds r4, #0x88
cmp r4, r1
blo _0805E68E
_0805E6A6:
ldr r4, _0805E6CC @ =gLinkEntity
_0805E6A8:
ldr r0, [r4]
cmp r0, #0
bge _0805E6D4
ldrb r1, [r4, #0x10]
movs r0, #0xc
ands r0, r1
cmp r0, #0
beq _0805E6D4
ldr r0, _0805E6D0 @ =gUnk_03003DD0
ldr r0, [r0, #8]
cmp r4, r0
beq _0805E6D4
adds r0, r4, #0
bl sub_0805E870
adds r0, r4, #0
b _0805E730
.align 2, 0
_0805E6CC: .4byte gLinkEntity
_0805E6D0: .4byte gUnk_03003DD0
_0805E6D4:
adds r4, #0x88
ldr r0, _0805E738 @ =gUnk_03003BE0
cmp r4, r0
blo _0805E6A8
movs r0, #0
mov ip, r0
movs r5, #0
ldr r2, _0805E73C @ =gUnk_03003D70
movs r0, #0x48
adds r0, r0, r2
mov r8, r0
_0805E6EA:
ldr r4, [r2, #4]
adds r3, r2, #0
adds r3, #8
cmp r4, r2
beq _0805E718
movs r7, #0x1c
ldr r6, _0805E740 @ =gUnk_03003DD0
_0805E6F8:
ldrb r0, [r4, #8]
cmp r0, #9
beq _0805E712
ldrb r0, [r4, #0x10]
adds r1, r7, #0
ands r1, r0
cmp ip, r1
bhs _0805E712
ldr r0, [r6, #8]
cmp r0, r4
beq _0805E712
mov ip, r1
adds r5, r4, #0
_0805E712:
ldr r4, [r4, #4]
cmp r4, r2
bne _0805E6F8
_0805E718:
adds r2, r3, #0
cmp r2, r8
blo _0805E6EA
cmp r5, #0
beq _0805E72E
adds r0, r5, #0
bl sub_0805E7BC
adds r0, r5, #0
bl sub_0805E870
_0805E72E:
adds r0, r5, #0
_0805E730:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805E738: .4byte gUnk_03003BE0
_0805E73C: .4byte gUnk_03003D70
_0805E740: .4byte gUnk_03003DD0

View File

@ -19,3 +19,36 @@ ReadKeyInput: @ 0x0801D6C0
_0801D6D4: .4byte 0x04000130
_0801D6D8: .4byte 0x000003FF
_0801D6DC: .4byte gUnk_03000FF0
thumb_func_start sub_0801D6E0
sub_0801D6E0: @ 0x0801D6E0
push {lr}
adds r2, r0, #0
ldrh r0, [r2]
adds r3, r1, #0
bics r3, r0
strh r3, [r2, #2]
cmp r1, r0
bne _0801D70A
ldrb r0, [r2, #7]
subs r0, #1
strb r0, [r2, #7]
lsls r0, r0, #0x18
cmp r0, #0
bne _0801D704
movs r0, #4
strb r0, [r2, #7]
strh r1, [r2, #4]
b _0801D710
_0801D704:
movs r0, #0
strh r0, [r2, #4]
b _0801D710
_0801D70A:
movs r0, #0x14
strb r0, [r2, #7]
strh r3, [r2, #4]
_0801D710:
strh r1, [r2]
pop {pc}

View File

@ -0,0 +1,138 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08016CF4
sub_08016CF4: @ 0x08016CF4
ldr r3, _08016DF0 @ =gUnk_03000F50
ldrh r1, [r3]
ldrh r0, [r3, #6]
ands r0, r1
movs r1, #0x80
lsls r1, r1, #0x13
strh r0, [r1]
adds r1, #8
ldrh r0, [r3, #8]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x14]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x20]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x2c]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0xa]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0xc]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x16]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x18]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x22]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x24]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x2e]
strh r0, [r1]
adds r1, #2
ldrh r0, [r3, #0x30]
strh r0, [r1]
adds r1, r3, #0
adds r1, #0x38
ldr r2, _08016DF4 @ =0x04000020
ldrh r0, [r3, #0x38]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #2]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #4]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #6]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #8]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xa]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xc]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xe]
strh r0, [r2]
adds r1, #0x10
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #2]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #4]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #6]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #8]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xa]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xc]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xe]
strh r0, [r2]
adds r1, #0x10
adds r2, #2
ldrh r0, [r1]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #2]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #4]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #6]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #8]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xa]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0xc]
strh r0, [r2]
adds r2, #4
ldrh r0, [r1, #0xe]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0x10]
strh r0, [r2]
adds r2, #2
ldrh r0, [r1, #0x12]
strh r0, [r2]
bx lr
.align 2, 0
_08016DF0: .4byte gUnk_03000F50
_08016DF4: .4byte 0x04000020

96
asm/upperInn.s Normal file
View File

@ -0,0 +1,96 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0804B938
sub_0804B938: @ 0x0804B938
push {lr}
ldr r0, _0804B968 @ =gUnk_02002A40
ldrb r0, [r0, #8]
cmp r0, #3
bls _0804B9F2
movs r0, #0x2b
bl GetProgressFlag
cmp r0, #0
beq _0804B970
movs r0, #0x2f
bl GetProgressFlag
cmp r0, #0
bne _0804B984
movs r0, #0x30
bl GetProgressFlag
cmp r0, #0
bne _0804B9BC
ldr r0, _0804B96C @ =gUnk_080D6C64
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B968: .4byte gUnk_02002A40
_0804B96C: .4byte gUnk_080D6C64
_0804B970:
movs r0, #0x2c
bl GetProgressFlag
cmp r0, #0
beq _0804B9A8
movs r0, #0x2e
bl GetProgressFlag
cmp r0, #0
beq _0804B990
_0804B984:
ldr r0, _0804B98C @ =gUnk_080D6D04
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B98C: .4byte gUnk_080D6D04
_0804B990:
movs r0, #0x30
bl GetProgressFlag
cmp r0, #0
bne _0804B9D2
ldr r0, _0804B9A4 @ =gUnk_080D6C94
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9A4: .4byte gUnk_080D6C94
_0804B9A8:
movs r0, #0x2d
bl GetProgressFlag
cmp r0, #0
beq _0804B9EC
movs r0, #0x2e
bl GetProgressFlag
cmp r0, #0
beq _0804B9C8
_0804B9BC:
ldr r0, _0804B9C4 @ =gUnk_080D6CE4
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9C4: .4byte gUnk_080D6CE4
_0804B9C8:
movs r0, #0x2f
bl GetProgressFlag
cmp r0, #0
beq _0804B9E0
_0804B9D2:
ldr r0, _0804B9DC @ =gUnk_080D6CC4
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9DC: .4byte gUnk_080D6CC4
_0804B9E0:
ldr r0, _0804B9E8 @ =gUnk_080D6C34
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9E8: .4byte gUnk_080D6C34
_0804B9EC:
ldr r0, _0804B9F4 @ =gUnk_080D6BF4
bl LoadRoomEntityList
_0804B9F2:
pop {pc}
.align 2, 0
_0804B9F4: .4byte gUnk_080D6BF4

1
include/createEnemy.h Normal file
View File

@ -0,0 +1 @@
Entity * CreateEnemy(u8, u8);

View File

@ -1,6 +1,12 @@
struct Entity {
void *field_0x0;
struct Entity * field_0x4;
#ifndef ENTITY_H
#define ENTITY_H
#include "global.h"
typedef struct
{
u32 *field_0x0;
u32 * field_0x4;
u8 type;
u8 subtype;
u8 parameter1;
@ -21,7 +27,7 @@ struct Entity {
u8 palette;
u8 spriteOrientation[3];
u16 spritePointer;
uint field_0x20;
u16 field_0x20;
s16 nonPlanarMovement;
u8 spriteAnimation[3];
u8 ticks;
@ -48,13 +54,13 @@ struct Entity {
u8 field_0x44;
u8 currentHealth;
s16 field_0x46;
void * boundingBox;
u32 * boundingBox;
u8 field_0x4c;
u8 field_0x4d;
u8 field_0x4e;
u8 field_0x4f;
void * spritePtr;
struct Entity * attachedEntity;
u32 * spritePtr;
u32 * attachedEntity;
u8 field_0x58;
u8 field_0x59;
u8 frames;
@ -67,27 +73,10 @@ struct Entity {
u8 spriteRenderPositionOffset;
u8 field_0x63;
u8 * field_0x64;
struct Entity * otherEntity;
u8 field_0x6c;
u8 field_0x6d;
u8 field_0x6e;
u8 field_0x6f;
u8 field_0x70;
u8 field_0x71;
u8 field_0x72;
u8 field_0x73;
struct Entity * heldObjectPtr;
u8 field_0x78;
u8 field_0x79;
u8 field_0x7a;
u8 field_0x7b;
u8 field_0x7c;
u8 field_0x7d;
u8 field_0x7e;
u8 field_0x7f;
u8 field_0x80;
u8 field_0x81;
u8 field_0x82;
u8 field_0x83;
int * field_0x84;
};
u32 * otherEntity;
u8 filler2[8];
u32 * heldObjectPtr;
u8 filler[12];
u32 * field_0x84;
} Entity;
#endif

14
include/entityData.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef ENTITYDATA_H
#define ENTITYDATA_H
#include "global.h"
typedef struct {
u8 entityType;
u8 unk;
u8 entitySubtype;
u8 entityParameter1;
u32 entityParameter2;
u16 xPos;
u16 yPos;
u32 spritePtr;
} EntityData;
#endif

9
include/readKeyInput.h Normal file
View File

@ -0,0 +1,9 @@
struct Input {
u16 unk0;
u16 unk1;
u16 unk2;
u8 unk3;
u8 unk4;
};
//void ReadKeyInput(void);

View File

@ -293,17 +293,29 @@ SECTIONS {
/* C source compiled with interworking */
asm/code_08016B30.o(.text);
asm/updateBackgroundRegisters.o(.text);
asm/code_08016DF8.o(.text);
/* C source compiled without interworking */
asm/code.o(.text);
src/readKeyInput.o(.text);
asm/readKeyInput.o(.text);
asm/code_0801D6E0.o(.text);
asm/code_0801D714.o(.text);
src/createEnemy.o(.text);
asm/code_0804AA84.o(.text);
src/loadRoomEntityList.o(.text);
asm/createEntity.o(.text);
asm/code_0804AEB0.o(.text);
src/loadRoom.o(.text);
asm/code_0804B058.o(.text);
asm/InitializeLink.o(.text);
asm/upperInn.o(.text);
asm/code_0804B9F8.o(.text);
asm/initializeLink.o(.text);
asm/code_08052620.o(.text);
asm/mainLoop.o(.text);
asm/code_08055FF4.o(.text);
asm/GetProgressFlag.o(.text);
asm/getEmptyEntity.o(.text);
asm/code_0805E744.o(.text);
src/getProgressFlag.o(.text);
asm/code_0807CC3C.o(.text);
asm/createFx.o(.text);
asm/code_080A29BC.o(.text);

19
src/createEnemy.c Normal file
View File

@ -0,0 +1,19 @@
#include "entity.h"
#include "global.h"
extern Entity * sub_0805E678();
extern void sub_0805EA2C(Entity *, u8);
Entity * CreateEnemy(u32 subtype, u32 param1)
{
Entity *enemy;
enemy = sub_0805E678();
if (enemy != NULL) {
enemy->type = 3;
enemy->subtype = subtype;
enemy->parameter1 = param1;
sub_0805EA2C(enemy,4);
}
return enemy;
}

7
src/getProgressFlag.c Normal file
View File

@ -0,0 +1,7 @@
#include "global.h"
u32 extern GetProgressFlagWithOffset(u32, u32);
u32 GetProgressFlag (u32 index) {
return GetProgressFlagWithOffset(0, index);
}

View File

@ -1,7 +1,7 @@
#include "global.h"
/* called when loading any room */
extern void sub_0804ADDC();
extern void LoadRoomEntityList();
extern s32 GetProgressFlag(u32 flag);
extern s32* sub_0804B128(u8 unk);
extern void sub_0804B058(s32 *unk);
@ -16,9 +16,9 @@ void LoadRoom(void)
s32 *dat;
sub_0804B128(1);
sub_0804ADDC();
LoadRoomEntityList();
sub_0804B128(0);
sub_0804ADDC();
LoadRoomEntityList();
iVar1 = GetProgressFlag(21);
if (iVar1 != 0) {

12
src/loadRoomEntityList.c Normal file
View File

@ -0,0 +1,12 @@
#include "global.h"
#include "entityData.h"
void extern CreateEntity(EntityData *);
void LoadRoomEntityList(EntityData *listPtr) {
if (listPtr != NULL) {
while (listPtr->entityType != 0xFF) {
CreateEntity(listPtr++);
}
}
}