divide and conquer

This commit is contained in:
theo 2020-05-20 23:36:05 -07:00
parent c0ce9ad010
commit e7470cdedd
40 changed files with 38463 additions and 38171 deletions

View File

@ -110,7 +110,7 @@ _080185C2:
cmp r0, #0xfe
bne _080185D4
ldrb r0, [r2, #1]
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _080185F6
movs r0, #1
@ -436,7 +436,7 @@ _08018858:
b _080189E4
_0801885E:
ldrh r0, [r5, #0x12]
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _0801886A
b _080189E4
@ -1612,7 +1612,7 @@ _080190FC:
ldrb r1, [r4, #0xa]
movs r0, #0x43
movs r2, #1
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08019172
@ -2330,7 +2330,7 @@ sub_08019698: @ 0x08019698
movs r0, #0x2c
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08019700
@ -3544,7 +3544,7 @@ _0801A018:
movs r0, #7
mov r1, r8
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r5, r0, #0
cmp r5, #0
bne _0801A02A
@ -4185,7 +4185,7 @@ sub_0801A4F8: @ 0x0801A4F8
cmp r0, #0
beq _0801A544
movs r0, #0x45
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #1
bne _0801A564
ldrb r1, [r4, #0xd]
@ -4932,7 +4932,7 @@ _0801AA94:
movs r0, #7
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0801AB00
@ -5320,7 +5320,7 @@ sub_0801AD6C: @ 0x0801AD6C
ldrh r0, [r4, #2]
cmp r0, #9
beq _0801ADDC
bl sub_0805E678
bl GetEmptyEntity
adds r5, r0, #0
cmp r5, #0
beq _0801AE26

File diff suppressed because it is too large Load Diff

1852
asm/code_080043E8.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -358,7 +358,7 @@ _080087F6:
bne _080087FE
movs r2, #0x80
_080087FE:
bl sub_080A2960
bl CreateObject
cmp r0, #0
beq _0800883A
ldrb r1, [r5, #2]

View File

@ -1613,7 +1613,7 @@ sub_080179EC: @ 0x080179EC
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
@ -1677,7 +1677,7 @@ sub_08017A90: @ 0x08017A90
movs r0, #0x99
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
bne _08017AAA
@ -1854,7 +1854,7 @@ sub_08017BBC: @ 0x08017BBC
movs r0, #0x42
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
cmp r0, #0
beq _08017BF2
str r4, [r0, #0x54]
@ -2374,7 +2374,7 @@ _08017F9A:
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
b _08017FC2
.align 2, 0
_08017FAC: .4byte gLinkEntity
@ -2385,7 +2385,7 @@ _08017FB4:
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
_08017FC2:
ldrb r1, [r4, #0x10]
movs r0, #0x7f

View File

@ -2513,7 +2513,7 @@ sub_0801E99C: @ 0x0801E99C
adds r0, r0, r1
ldr r7, [r0]
movs r0, #0x67
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _0801EA56
ldr r1, _0801E9E8 @ =gUnk_02002A40
@ -12666,7 +12666,7 @@ _0802355A:
adds r0, r7, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
ldrb r0, [r7, #0x14]
ands r4, r0
adds r4, r4, r6
@ -13873,7 +13873,7 @@ sub_08023E54: @ 0x08023E54
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA48
bl PositionRelative
_08023E94:
pop {r4, r5, pc}
.align 2, 0
@ -16067,7 +16067,7 @@ _08024ECC:
adds r0, r4, #0
adds r1, r6, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r1, r6, #0
adds r1, #0x63
movs r0, #0x1a
@ -16304,7 +16304,7 @@ _080250C2:
movs r0, #0x21
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08025104
@ -17699,7 +17699,7 @@ _08025B52:
movs r0, #0x21
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08025BB4
@ -17711,7 +17711,7 @@ _08025B52:
lsls r3, r3, #0x10
adds r0, r6, #0
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
ldrh r1, [r4, #0x2e]
mov r0, sb
ands r0, r1
@ -17758,7 +17758,7 @@ sub_08025BD4: @ 0x08025BD4
movs r0, #0x21
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08025C22
@ -17776,7 +17776,7 @@ sub_08025BD4: @ 0x08025BD4
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
ldr r0, _08025C28 @ =0x0000FFF6
strh r0, [r4, #0x36]
_08025C22:
@ -22641,7 +22641,7 @@ _0802809C:
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
ldrh r0, [r5, #0x12]
ldrb r1, [r5, #0x1e]
bl sub_080700C8
@ -22799,7 +22799,7 @@ sub_080281E0: @ 0x080281E0
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
movs r4, #0
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #1
bne _0802821A
ldr r6, _08028220 @ =gUnk_02002A40
@ -24861,7 +24861,7 @@ _08029174:
b _08029194
_0802917E:
movs r0, #0x44
bl sub_0807CA84
bl GetInventoryValue
b _0802918C
_08029186:
movs r0, #0x5a
@ -24903,7 +24903,7 @@ _080291BC:
bl GetProgressFlag
b _080291D0
_080291C4:
bl sub_0807CA84
bl GetInventoryValue
b _080291D0
_080291CA:
ldrh r0, [r2, #0xa]
@ -25415,7 +25415,7 @@ _08029584:
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
ldrh r0, [r5, #0x12]
ldrb r1, [r5, #0x1e]
bl sub_080700C8
@ -25932,7 +25932,7 @@ sub_0802999C: @ 0x0802999C
adds r1, r4, #0
movs r2, #0
movs r3, #5
bl sub_0806FA48
bl PositionRelative
str r4, [r7, #0x54]
movs r0, #0x18
movs r1, #2
@ -25943,7 +25943,7 @@ sub_0802999C: @ 0x0802999C
adds r1, r5, #0
movs r2, #0
movs r3, #4
bl sub_0806FA48
bl PositionRelative
str r5, [r4, #0x54]
movs r0, #0x18
movs r1, #3
@ -25954,7 +25954,7 @@ sub_0802999C: @ 0x0802999C
adds r1, r4, #0
movs r2, #0
movs r3, #3
bl sub_0806FA48
bl PositionRelative
str r4, [r5, #0x54]
movs r0, #0x18
movs r1, #4
@ -25965,7 +25965,7 @@ sub_0802999C: @ 0x0802999C
adds r1, r5, #0
movs r2, #0
movs r3, #2
bl sub_0806FA48
bl PositionRelative
str r5, [r4, #0x54]
movs r0, #0x18
movs r1, #5
@ -25976,7 +25976,7 @@ sub_0802999C: @ 0x0802999C
adds r1, r6, #0
movs r2, #0
movs r3, #1
bl sub_0806FA48
bl PositionRelative
str r6, [r5, #0x54]
movs r0, #0x18
movs r1, #6
@ -25988,7 +25988,7 @@ sub_0802999C: @ 0x0802999C
adds r1, r4, #0
movs r2, #0
movs r3, #0
bl sub_0806FA48
bl PositionRelative
str r4, [r6, #0x54]
movs r4, #1
strb r4, [r7, #0xc]
@ -27105,7 +27105,7 @@ sub_0802A250: @ 0x0802A250
movs r0, #0x66
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
cmp r0, #0
beq _0802A2A6
str r5, [r0, #0x50]
@ -31339,7 +31339,7 @@ sub_0802C18C: @ 0x0802C18C
movs r0, #0xf
movs r1, #0x11
movs r2, #0x40
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0802C1BC
@ -31347,7 +31347,7 @@ sub_0802C18C: @ 0x0802C18C
lsls r3, r3, #9
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
_0802C1BC:
pop {r4, pc}
.align 2, 0
@ -38164,7 +38164,7 @@ _0802F4F8:
movs r0, #0x2a
movs r1, #3
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0802F536
@ -39360,7 +39360,7 @@ _0802FE2C:
movs r0, #0x2a
movs r1, #3
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0802FE6A
@ -41552,7 +41552,7 @@ sub_08030E80: @ 0x08030E80
movs r0, #0xf
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08030EC0
@ -41579,7 +41579,7 @@ _08030EC0:
movs r0, #0xf
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08030EFA
@ -44930,7 +44930,7 @@ sub_08032794: @ 0x08032794
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA48
bl PositionRelative
_080327C2:
pop {r4, r5, pc}
.align 2, 0
@ -46698,7 +46698,7 @@ _080334E0:
movs r0, #0x20
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _080334F6
@ -47268,7 +47268,7 @@ sub_08033890: @ 0x08033890
ldrb r1, [r6, #0xa]
movs r0, #0x7d
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
bne _08033928
@ -48143,7 +48143,7 @@ _08033F70:
movs r0, #0x7e
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
str r4, [r0, #0x50]
ldr r0, _08033FD0 @ =gUnk_030010A0
adds r0, #0x39
@ -49667,7 +49667,7 @@ sub_08034AC4: @ 0x08034AC4
lsls r3, r3, #9
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
ldr r1, _08034AE8 @ =gUnk_080CED74
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
@ -49772,7 +49772,7 @@ _08034B7C:
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA48
bl PositionRelative
_08034B9A:
pop {r4, r5, pc}
.align 2, 0
@ -56084,7 +56084,7 @@ sub_08037B48: @ 0x08037B48
movs r0, #0x2a
movs r1, #3
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _08037B88
@ -56117,7 +56117,7 @@ _08037B88:
movs r0, #0x2a
movs r1, #3
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _08037BCA
@ -56150,7 +56150,7 @@ _08037BCA:
movs r0, #0x2a
movs r1, #3
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _08037C06
@ -61281,7 +61281,7 @@ sub_0803A274: @ 0x0803A274
movs r0, #0x7e
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
str r4, [r1, #0x50]
ldr r0, [r4, #0x54]
@ -61292,7 +61292,7 @@ sub_0803A274: @ 0x0803A274
movs r3, #0x80
lsls r3, r3, #0xe
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
b _0803A310
.align 2, 0
_0803A2C8: .4byte gUnk_03003DBC
@ -61312,7 +61312,7 @@ _0803A2CC:
movs r0, #0x7e
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
str r4, [r1, #0x50]
ldr r0, [r4, #0x54]
@ -61326,7 +61326,7 @@ _0803A2CC:
movs r3, #0x80
lsls r3, r3, #0xe
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
_0803A310:
ldr r0, _0803A350 @ =gUnk_030010A0
adds r0, #0x38
@ -63329,7 +63329,7 @@ _0803B23A:
movs r0, #0
movs r1, #0x5e
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0803B268
@ -63346,7 +63346,7 @@ _0803B23A:
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
_0803B268:
ldr r4, [r5, #0x74]
adds r1, r4, #0
@ -63650,7 +63650,7 @@ sub_0803B480: @ 0x0803B480
movs r0, #0x2d
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0803B4B6
@ -63663,7 +63663,7 @@ sub_0803B480: @ 0x0803B480
adds r0, r4, #0
adds r1, r3, #0
movs r3, #0
bl sub_0806FA48
bl PositionRelative
_0803B4B6:
adds r1, r4, #0
adds r1, #0x7e
@ -63741,12 +63741,12 @@ sub_0803B538: @ 0x0803B538
ldr r1, [r4, #0x54]
ldr r3, _0803B554 @ =0xFFFF0000
movs r2, #0
bl sub_0806FA48
bl PositionRelative
ldr r1, [r4, #0x74]
ldr r3, _0803B558 @ =0xFFFE0000
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
pop {r4, pc}
.align 2, 0
_0803B554: .4byte 0xFFFF0000
@ -65327,7 +65327,7 @@ _0803C100:
movs r0, #0x1a
adds r1, r6, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0803C116
@ -66151,7 +66151,7 @@ sub_0803C714: @ 0x0803C714
lsls r3, r3, #0x18
asrs r3, r3, #0x18
lsls r3, r3, #0x10
bl sub_0806FA48
bl PositionRelative
pop {pc}
.align 2, 0
_0803C734: .4byte gUnk_080CFFC4
@ -66748,7 +66748,7 @@ sub_0803CB64: @ 0x0803CB64
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA48
bl PositionRelative
ldr r0, _0803CBA8 @ =0x00000193
bl sub_08004488
_0803CBA0:
@ -67644,7 +67644,7 @@ _0803D210:
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
adds r6, #1
cmp r6, #1
ble _0803D210
@ -68493,7 +68493,7 @@ _0803D870:
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
str r5, [r4, #0x50]
b _0803D8EE
.align 2, 0
@ -68623,7 +68623,7 @@ sub_0803D974: @ 0x0803D974
lsls r3, r3, #9
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
movs r0, #0x4a
movs r1, #2
bl CreateEnemy
@ -68755,7 +68755,7 @@ _0803DA72:
lsls r3, r3, #9
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
@ -68785,7 +68785,7 @@ sub_0803DAA8: @ 0x0803DAA8
lsls r3, r3, #0xa
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r0, r4, #0
movs r1, #2
bl sub_080042AC
@ -68872,7 +68872,7 @@ _0803DB54:
lsls r3, r3, #0xa
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
@ -68979,7 +68979,7 @@ sub_0803DC0C: @ 0x0803DC0C
adds r3, #1
lsls r3, r3, #0x10
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
@ -69769,7 +69769,7 @@ _0803E1F8:
ldr r3, _0803E254 @ =0xFFFF0000
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r0, r5, #0
movs r1, #1
bl sub_08004260
@ -69992,7 +69992,7 @@ _0803E3E4:
ldr r3, _0803E3F8 @ =0xFFFF0000
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
@ -73033,7 +73033,7 @@ _0803FA42:
movs r0, #0x9b
movs r1, #0
str r3, [sp]
bl sub_080A2960
bl CreateObject
adds r6, r0, #0
ldr r3, [sp]
cmp r6, #0
@ -73333,7 +73333,7 @@ _0803FCA8:
movs r0, #0x9b
movs r1, #1
movs r2, #0xff
bl sub_080A2960
bl CreateObject
adds r6, r0, #0
cmp r6, #0
beq _0803FD32
@ -76882,7 +76882,7 @@ _08041748:
movs r0, #0xb5
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _080417AA
@ -77616,13 +77616,13 @@ _08041D40:
movs r0, #0xb6
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
str r4, [r0, #0x50]
str r0, [r4, #0x54]
movs r0, #0xb6
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
str r4, [r0, #0x50]
movs r0, #3
strb r0, [r4, #0xd]
@ -79532,7 +79532,7 @@ _08042B68:
movs r0, #0xaf
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08042B9C
@ -79546,7 +79546,7 @@ _08042B9C:
movs r0, #0xaf
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08042BBA
@ -79768,7 +79768,7 @@ sub_08042D24: @ 0x08042D24
movs r0, #0xaf
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08042D5E
@ -79812,7 +79812,7 @@ _08042D8E:
movs r0, #0xaf
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08042DB4
@ -81460,7 +81460,7 @@ _080439BC:
add r0, ip
ldr r0, [r0]
adds r1, r5, #0
bl sub_0806FA48
bl PositionRelative
ldr r0, [r5, #0x34]
add r0, r8
str r0, [r5, #0x34]
@ -82239,7 +82239,7 @@ _08043F94:
movs r0, #0xaf
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _08043FCA
@ -82851,7 +82851,7 @@ _080443EA:
adds r3, #8
lsls r3, r3, #0x10
adds r0, r5, #0
bl sub_0806FA48
bl PositionRelative
_08044440:
ldr r0, [r5, #0x64]
ldrb r0, [r0]
@ -82974,7 +82974,7 @@ _0804450C:
movs r0, #0xf
movs r1, #0x11
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0804454C
@ -83057,7 +83057,7 @@ sub_080445C0: @ 0x080445C0
movs r0, #0x21
movs r1, #1
movs r2, #1
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _080445DA
@ -83223,7 +83223,7 @@ _080446C8:
subs r3, #0x10
lsls r3, r3, #0x10
adds r1, r4, #0
bl sub_0806FA48
bl PositionRelative
ldr r0, [r4, #0x50]
ldrh r0, [r0, #0x36]
strh r0, [r4, #0x36]
@ -84070,7 +84070,7 @@ _08044D10:
adds r0, r6, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _08044DE6
@ -84231,7 +84231,7 @@ _08044E26:
ldr r3, _08044E70 @ =0xFFF00000
mov r1, ip
movs r2, #0
bl sub_0806FA48
bl PositionRelative
pop {pc}
.align 2, 0
_08044E6C: .4byte gUnk_080D1628
@ -84266,7 +84266,7 @@ sub_08044E74: @ 0x08044E74
ldr r3, _08044ED0 @ =0xFFF00000
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
movs r0, #0xc0
lsls r0, r0, #6
strh r0, [r5, #0x24]
@ -85800,7 +85800,7 @@ sub_08045A00: @ 0x08045A00
asrs r3, r3, #0x18
adds r3, #3
lsls r3, r3, #0x10
bl sub_0806FA48
bl PositionRelative
pop {pc}
.align 2, 0
_08045A24: .4byte gUnk_080D18B4
@ -85927,7 +85927,7 @@ _08045AF8:
ldr r3, _08045B18 @ =0xFFFF0000
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r2, r5, #0
adds r2, #0x83
ldrb r0, [r2]
@ -91490,7 +91490,7 @@ _080484BC:
lsls r3, r3, #0xc
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
_080484E6:
pop {r4, pc}
@ -94486,7 +94486,7 @@ _08049B9C:
cmp r0, #7
bhi _08049BB0
movs r0, #0x67
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _08049BB0
movs r0, #8
@ -94508,7 +94508,7 @@ _08049BB0:
movs r0, #0x40
movs r1, #0x60
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08049C16
@ -94526,7 +94526,7 @@ _08049BF0:
ldrb r2, [r0]
movs r0, #0x96
movs r1, #7
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08049C16
@ -95950,7 +95950,7 @@ _0804A638:
subs r1, r2, #1
movs r0, #0xa9
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0804A6B6
@ -96182,7 +96182,7 @@ _0804A80A:
ldrb r1, [r5, #9]
movs r0, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
bne _0804A81C
@ -96194,7 +96194,7 @@ _0804A81C:
adds r1, r4, #0
movs r2, #0
movs r3, #1
bl sub_0806FA48
bl PositionRelative
str r5, [r4, #0x50]
ldrb r1, [r6]
movs r0, #2
@ -96248,7 +96248,7 @@ _0804A864:
ldrb r1, [r5, #9]
movs r0, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0804A8CA

View File

@ -5,7 +5,7 @@
.text
thumb_func_start sub_0804AA84
thumb_func_start sub_0804AA84
sub_0804AA84: @ 0x0804AA84
push {lr}
ldr r3, _0804AA98 @ =gUnk_02033A90
@ -62,7 +62,7 @@ sub_0804AAD4: @ 0x0804AAD4
ldrb r1, [r4, #0x17]
movs r0, #0x3d
movs r2, #0
bl sub_080A2960
bl CreateObject
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]

View File

@ -177,22 +177,3 @@ sub_0804AFDC: @ 0x0804AFDC
_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}

View File

@ -348,7 +348,7 @@ _0804B2A4:
ldrb r1, [r4, #1]
movs r0, #0x52
movs r2, #0
bl sub_080A2960
bl CreateObject
cmp r0, #0
beq _0804B2FC
ldrh r1, [r4, #4]
@ -454,7 +454,7 @@ _0804B396:
movs r0, #0xf
movs r1, #2
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0804B3BA
@ -697,7 +697,7 @@ sub_0804B4E4: @ 0x0804B4E4
movs r0, #0x22
bl sub_080580B0
movs r0, #2
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _0804B4FC
movs r0, #0x56
@ -874,7 +874,7 @@ _0804B5EE:
_0804B5F4:
ldrh r0, [r4]
adds r4, #2
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _0804B602
adds r6, #1
@ -986,7 +986,7 @@ sub_0804B6EC: @ 0x0804B6EC
sub_0804B6F0: @ 0x0804B6F0
push {lr}
movs r0, #0x46
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _0804B71C
ldr r0, _0804B714 @ =gUnk_080D6578
@ -1029,7 +1029,7 @@ sub_0804B738: @ 0x0804B738
bl LoadRoomEntityList
_0804B748:
movs r0, #0x46
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _0804B77C
movs r0, #0x29

File diff suppressed because it is too large Load Diff

4537
asm/code_08050038.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1745,7 +1745,7 @@ _0805338C: .4byte gUnk_03000BF0
sub_08053390: @ 0x08053390
push {lr}
movs r0, #8
bl sub_0807CA84
bl GetInventoryValue
movs r1, #0x19
cmp r0, #0
beq _080533A0
@ -1754,14 +1754,14 @@ _080533A0:
adds r0, r1, #0
bl sub_0801D7EC
movs r0, #0xa
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _080533B6
movs r0, #0x1d
bl sub_0801D7EC
_080533B6:
movs r0, #0xc
bl sub_0807CA84
bl GetInventoryValue
movs r1, #0x1b
cmp r0, #0
beq _080533C4
@ -1961,21 +1961,21 @@ sub_08053518: @ 0x08053518
bl sub_0807CD80
_08053534:
movs r0, #0x40
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _08053544
movs r0, #2
bl sub_0807CD80
_08053544:
movs r0, #0x41
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _08053554
movs r0, #3
bl sub_0807CD80
_08053554:
movs r0, #0x42
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _08053564
movs r0, #5
@ -2108,7 +2108,7 @@ sub_08053648: @ 0x08053648
movs r0, #0x2d
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08053674
@ -3337,7 +3337,7 @@ sub_08053FF0: @ 0x08053FF0
push {r7}
adds r6, r0, #0
adds r7, r1, #0
bl sub_0807CA84
bl GetInventoryValue
adds r5, r0, #0
lsls r1, r6, #3
ldr r0, _08054010 @ =gUnk_080FD5B4
@ -3428,7 +3428,7 @@ _080540CA:
b _0805427C
_080540D0:
adds r0, r4, #0
bl sub_0807CA84
bl GetInventoryValue
adds r1, r4, #0
cmp r0, #0
bne _080540C6
@ -3574,7 +3574,7 @@ _080541F0:
b _0805424E
_080541F8:
movs r0, #0x66
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _0805420A
movs r0, #0x66
@ -4345,7 +4345,7 @@ _08054782:
_08054786:
movs r0, #9
_08054788:
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
bne _080547DA
_08054790:
@ -4353,7 +4353,7 @@ _08054790:
b _0805486C
_08054794:
movs r0, #0x40
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _08054790
cmp r5, #0
@ -4362,7 +4362,7 @@ _08054794:
b _080547DA
_080547A6:
movs r0, #0x67
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _08054790
ldr r0, _080547FC @ =gUnk_02034350
@ -4393,7 +4393,7 @@ _080547DA:
movs r0, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805486A
@ -4855,7 +4855,7 @@ _08054B68:
movs r0, #0x45
movs r1, #0
movs r2, #0x10
bl sub_080A2960
bl CreateObject
adds r5, r0, #0
cmp r5, #0
beq _08054BE8
@ -4864,7 +4864,7 @@ _08054B68:
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
bl PositionRelative
adds r0, r4, #0
adds r0, #0x29
ldrb r1, [r0]
@ -5933,7 +5933,7 @@ sub_080553E0: @ 0x080553E0
movs r0, #0xf
movs r1, #0x43
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08055408
@ -6235,7 +6235,7 @@ sub_08055634: @ 0x08055634
movs r0, #0x2c
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805565C

View File

@ -3142,7 +3142,7 @@ sub_080577AC: @ 0x080577AC
movs r0, #0xf
movs r1, #0x26
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08057808
@ -6222,7 +6222,7 @@ sub_08058F84: @ 0x08058F84
movs r0, #0x21
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08058FA8
@ -6337,7 +6337,7 @@ sub_08059064: @ 0x08059064
movs r0, #0
movs r1, #0x53
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805908E
@ -6687,7 +6687,7 @@ sub_0805930C: @ 0x0805930C
movs r0, #0xf
movs r1, #0x43
movs r2, #0x40
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805933A
@ -6845,7 +6845,7 @@ _08059436:
movs r0, #0xf
movs r1, #0x35
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08059476
@ -6931,7 +6931,7 @@ sub_080594DC: @ 0x080594DC
strb r0, [r4, #0xc]
_080594F2:
movs r0, #6
bl sub_0807CA84
bl GetInventoryValue
cmp r0, #0
beq _08059540
movs r0, #0x8c
@ -8064,7 +8064,7 @@ _08059DD4:
ldrb r1, [r4, #4]
movs r0, #0x1c
adds r2, r7, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08059E38
@ -8938,7 +8938,7 @@ sub_0805A4CC: @ 0x0805A4CC
adds r4, r0, #0
movs r0, #0x8e
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805A4F8
@ -9944,7 +9944,7 @@ _0805AC60:
ldrb r0, [r4]
ldrb r1, [r4, #1]
ldrb r2, [r4, #2]
bl sub_080A2960
bl CreateObject
_0805AC6A:
adds r3, r0, #0
mov r2, r8
@ -10104,7 +10104,7 @@ sub_0805AD80: @ 0x0805AD80
ldrb r1, [r4, #0xa]
ldrb r2, [r4, #0xb]
movs r0, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805ADCC
@ -10532,7 +10532,7 @@ _0805B0FC:
ldrb r1, [r0]
ldrb r2, [r0, #1]
movs r0, #0x28
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805B128
@ -10558,7 +10558,7 @@ _0805B128:
movs r0, #0x28
movs r1, #3
movs r2, #3
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805B15E
@ -11419,7 +11419,7 @@ sub_0805B7A0: @ 0x0805B7A0
ldrb r0, [r5, #0xe]
ldrb r1, [r5, #0xa]
ldrb r2, [r5, #0xb]
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0805B81A
@ -11522,7 +11522,7 @@ _0805B848:
movs r0, #0x4e
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0805B8B6
@ -12340,7 +12340,7 @@ sub_0805BEC4: @ 0x0805BEC4
movs r0, #0x2a
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805BF10
@ -12588,7 +12588,7 @@ sub_0805C050: @ 0x0805C050
movs r0, #0x4f
movs r1, #0xe
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C0E0
@ -12658,7 +12658,7 @@ _0805C11C:
adds r1, r0, #0
movs r0, #0x4f
movs r2, #6
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C16E
@ -12727,7 +12727,7 @@ sub_0805C178: @ 0x0805C178
movs r0, #0x4f
movs r1, #0xe
movs r2, #1
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C204
@ -12794,7 +12794,7 @@ _0805C23E:
adds r1, r0, #0
movs r0, #0x4f
movs r2, #7
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C28E
@ -12860,7 +12860,7 @@ sub_0805C294: @ 0x0805C294
movs r0, #0x4f
movs r1, #0xe
movs r2, #2
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C320
@ -12928,7 +12928,7 @@ _0805C35C:
adds r1, r0, #0
movs r0, #0x4f
movs r2, #8
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C3AC
@ -12995,7 +12995,7 @@ sub_0805C3B4: @ 0x0805C3B4
movs r0, #0x4f
movs r1, #0xe
movs r2, #3
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C448
@ -13064,7 +13064,7 @@ _0805C482:
adds r1, r0, #0
movs r0, #0x4f
movs r2, #9
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C4D4
@ -13132,7 +13132,7 @@ sub_0805C4E0: @ 0x0805C4E0
movs r0, #0x4f
movs r1, #0xe
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C570
@ -13202,7 +13202,7 @@ _0805C5AC:
adds r1, r0, #0
movs r0, #0x4f
movs r2, #6
bl sub_080A2960
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C5FE
@ -13375,7 +13375,7 @@ _0805C716:
ldrb r2, [r4, #2]
movs r0, #0x4c
str r3, [sp]
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
ldr r3, [sp]
cmp r2, #0
@ -14579,7 +14579,7 @@ _0805D068:
ldrh r1, [r5, #4]
movs r0, #0xa0
adds r2, r7, #0
bl sub_080A2960
bl CreateObject
adds r4, r0, #0
mov r1, r8
ldrh r0, [r1, #6]
@ -15436,7 +15436,7 @@ _0805D700:
adds r2, r2, r0
movs r0, #2
movs r1, #0x5c
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805D760
@ -16010,7 +16010,7 @@ _0805DB58:
movs r0, #0x96
movs r1, #1
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0805DB84
@ -16228,7 +16228,7 @@ _0805DCEC:
movs r0, #0x69
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0805DD1E
@ -16503,7 +16503,7 @@ sub_0805DEB8: @ 0x0805DEB8
movs r0, #0x64
movs r1, #0
movs r2, #0
bl sub_080A2960
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805DF1A

File diff suppressed because it is too large Load Diff

27265
asm/code_0806FA6C.s Normal file

File diff suppressed because it is too large Load Diff

205
asm/code_0807CAA0.s Normal file
View File

@ -0,0 +1,205 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0807CAA0
sub_0807CAA0: @ 0x0807CAA0
push {r4, lr}
adds r3, r0, #0
lsrs r4, r3, #2
ldr r0, _0807CAC4 @ =gUnk_02002B32
adds r4, r4, r0
movs r0, #3
ands r3, r0
lsls r3, r3, #1
lsls r1, r3
ldrb r2, [r4]
lsls r0, r3
ands r0, r2
eors r2, r0
orrs r2, r1
strb r2, [r4]
lsrs r0, r3
pop {r4, pc}
.align 2, 0
_0807CAC4: .4byte gUnk_02002B32
thumb_func_start sub_0807CAC8
sub_0807CAC8: @ 0x0807CAC8
ldr r2, _0807CAE0 @ =gUnk_02002A40
ldr r1, _0807CAE4 @ =gUnk_02033A90
ldr r3, _0807CAE8 @ =0x0000047C
adds r2, r2, r3
ldrb r1, [r1, #3]
adds r2, r2, r1
movs r1, #1
lsls r1, r0
ldrb r0, [r2]
orrs r1, r0
strb r1, [r2]
bx lr
.align 2, 0
_0807CAE0: .4byte gUnk_02002A40
_0807CAE4: .4byte gUnk_02033A90
_0807CAE8: .4byte 0x0000047C
thumb_func_start sub_0807CAEC
sub_0807CAEC: @ 0x0807CAEC
adds r2, r0, #0
ldr r0, _0807CB04 @ =gUnk_02002A40
ldr r1, _0807CB08 @ =gUnk_02033A90
ldr r3, _0807CB0C @ =0x0000047C
adds r0, r0, r3
ldrb r1, [r1, #3]
adds r0, r0, r1
ldrb r0, [r0]
asrs r0, r2
movs r1, #1
ands r0, r1
bx lr
.align 2, 0
_0807CB04: .4byte gUnk_02002A40
_0807CB08: .4byte gUnk_02033A90
_0807CB0C: .4byte 0x0000047C
thumb_func_start GetProgressFlagWithOffset
GetProgressFlagWithOffset: @ 0x0807CB10
push {lr}
adds r2, r0, #0
ldr r0, _0807CB20 @ =gUnk_02002C9C
adds r2, r2, r1
adds r1, r2, #0
bl sub_0801D5A8
pop {pc}
.align 2, 0
_0807CB20: .4byte gUnk_02002C9C
thumb_func_start sub_0807CB24
sub_0807CB24: @ 0x0807CB24
push {lr}
adds r2, r0, #0
adds r3, r1, #0
cmp r2, #0x11
bhi _0807CB84
lsls r0, r2, #2
ldr r1, _0807CB38 @ =_0807CB3C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807CB38: .4byte _0807CB3C
_0807CB3C: @ jump table
.4byte _0807CB84 @ case 0
.4byte _0807CB88 @ case 1
.4byte _0807CB88 @ case 2
.4byte _0807CB88 @ case 3
.4byte _0807CB88 @ case 4
.4byte _0807CB88 @ case 5
.4byte _0807CB88 @ case 6
.4byte _0807CB88 @ case 7
.4byte _0807CB88 @ case 8
.4byte _0807CB88 @ case 9
.4byte _0807CB88 @ case 10
.4byte _0807CB88 @ case 11
.4byte _0807CB88 @ case 12
.4byte _0807CB88 @ case 13
.4byte _0807CB84 @ case 14
.4byte _0807CBA0 @ case 15
.4byte _0807CBAE @ case 16
.4byte _0807CBBC @ case 17
_0807CB84:
movs r1, #0
b _0807CBCA
_0807CB88:
ldr r0, _0807CB9C @ =gUnk_0811E454
lsls r1, r2, #1
adds r1, r1, r0
ldrh r0, [r1]
adds r1, r3, #0
bl GetProgressFlagWithOffset
_0807CB96:
adds r1, r0, #0
b _0807CBCA
.align 2, 0
_0807CB9C: .4byte gUnk_0811E454
_0807CBA0:
adds r0, r3, #0
bl GetInventoryValue
cmp r0, #0
beq _0807CB96
movs r0, #1
b _0807CB96
_0807CBAE:
adds r0, r3, #0
bl GetInventoryValue
movs r1, #0
cmp r0, #1
bne _0807CBCA
b _0807CBC8
_0807CBBC:
adds r0, r3, #0
bl GetInventoryValue
movs r1, #0
cmp r0, #2
bne _0807CBCA
_0807CBC8:
movs r1, #1
_0807CBCA:
adds r0, r1, #0
pop {pc}
.align 2, 0
thumb_func_start sub_0807CBD0
sub_0807CBD0: @ 0x0807CBD0
push {lr}
adds r1, r0, #0
ldr r0, _0807CBE0 @ =gUnk_02033A90
ldrh r0, [r0, #4]
bl GetProgressFlagWithOffset
pop {pc}
.align 2, 0
_0807CBE0: .4byte gUnk_02033A90
thumb_func_start sub_0807CBE4
sub_0807CBE4: @ 0x0807CBE4
push {lr}
ldr r3, _0807CC14 @ =0x000003FF
ands r3, r0
movs r1, #0xf0
lsls r1, r1, #6
ands r1, r0
lsrs r1, r1, #0xa
adds r2, r1, #1
movs r1, #0xc0
lsls r1, r1, #8
ands r1, r0
lsrs r1, r1, #0xe
cmp r1, #1
beq _0807CC22
cmp r1, #1
blo _0807CC18
cmp r1, #2
bne _0807CC2C
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807CC88
b _0807CC2E
.align 2, 0
_0807CC14: .4byte 0x000003FF
_0807CC18:
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807CC60
b _0807CC2E
_0807CC22:
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807CC78
b _0807CC2E
_0807CC2C:
movs r0, #0
_0807CC2E:
pop {pc}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3530
asm/code_080AD90C.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,8 @@
.text
thumb_func_start sub_0805E678
sub_0805E678: @ 0x0805E678
thumb_func_start GetEmptyEntity
GetEmptyEntity: @ 0x0805E678
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}

23
asm/getInventoryValue.s Normal file
View File

@ -0,0 +1,23 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start GetInventoryValue
GetInventoryValue: @ 0x0807CA84
adds r2, r0, #0
lsrs r0, r2, #2
ldr r1, _0807CA9C @ =gUnk_02002B32
adds r0, r0, r1
ldrb r0, [r0]
movs r1, #3
ands r2, r1
lsls r2, r2, #1
asrs r0, r2
ands r0, r1
bx lr
.align 2, 0
_0807CA9C: .4byte gUnk_02002B32

View File

@ -114,57 +114,3 @@ _08055F64:
b _08055EC8
.align 2, 0
_08055F6C: .4byte gUnk_08100CBC
thumb_func_start sub_08055F70
sub_08055F70: @ 0x08055F70
push {lr}
bl sub_08056020
movs r0, #0xfe
bl RegisterRamReset
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r2, _08055FC8 @ =0x00007FFF
adds r0, r2, #0
strh r0, [r1]
ldr r1, _08055FCC @ =0x04000204
ldr r2, _08055FD0 @ =0x00004014
adds r0, r2, #0
strh r0, [r1]
ldr r2, _08055FD4 @ =0x0003FFD0
ldr r0, _08055FD8 @ =gUnk_02000030
adds r1, r2, #0
bl sub_0801D630
ldr r0, _08055FDC @ =gUnk_080B2CD8
ldr r3, _08055FE0 @ =sub_080B197C
subs r2, r0, r3
cmp r2, #0
beq _08055FAA
ldr r1, _08055FE4 @ =gUnk_030056F0
adds r0, r3, #0
bl sub_0801D66C
_08055FAA:
ldr r0, _08055FE8 @ =gUnk_080B2CD8
ldr r3, _08055FEC @ =gUnk_080B2CD8
subs r2, r0, r3
cmp r2, #0
beq _08055FBC
ldr r1, _08055FF0 @ =gUnk_02038560
adds r0, r3, #0
bl sub_0801D66C
_08055FBC:
movs r0, #0
bl sub_0801DA90
bl sub_08016B34
pop {pc}
.align 2, 0
_08055FC8: .4byte 0x00007FFF
_08055FCC: .4byte 0x04000204
_08055FD0: .4byte 0x00004014
_08055FD4: .4byte 0x0003FFD0
_08055FD8: .4byte gUnk_02000030
_08055FDC: .4byte gUnk_080B2CD8
_08055FE0: .4byte sub_080B197C
_08055FE4: .4byte gUnk_030056F0
_08055FE8: .4byte gUnk_080B2CD8
_08055FEC: .4byte gUnk_080B2CD8
_08055FF0: .4byte gUnk_02038560

60
asm/sub_08055F70.s Normal file
View File

@ -0,0 +1,60 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08055F70
sub_08055F70: @ 0x08055F70
push {lr}
bl sub_08056020
movs r0, #0xfe
bl RegisterRamReset
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r2, _08055FC8 @ =0x00007FFF
adds r0, r2, #0
strh r0, [r1]
ldr r1, _08055FCC @ =0x04000204
ldr r2, _08055FD0 @ =0x00004014
adds r0, r2, #0
strh r0, [r1]
ldr r2, _08055FD4 @ =0x0003FFD0
ldr r0, _08055FD8 @ =gUnk_02000030
adds r1, r2, #0
bl sub_0801D630
ldr r0, _08055FDC @ =gUnk_080B2CD8
ldr r3, _08055FE0 @ =sub_080B197C
subs r2, r0, r3
cmp r2, #0
beq _08055FAA
ldr r1, _08055FE4 @ =gUnk_030056F0
adds r0, r3, #0
bl sub_0801D66C
_08055FAA:
ldr r0, _08055FE8 @ =gUnk_080B2CD8
ldr r3, _08055FEC @ =gUnk_080B2CD8
subs r2, r0, r3
cmp r2, #0
beq _08055FBC
ldr r1, _08055FF0 @ =gUnk_02038560
adds r0, r3, #0
bl sub_0801D66C
_08055FBC:
movs r0, #0
bl sub_0801DA90
bl sub_08016B34
pop {pc}
.align 2, 0
_08055FC8: .4byte 0x00007FFF
_08055FCC: .4byte 0x04000204
_08055FD0: .4byte 0x00004014
_08055FD4: .4byte 0x0003FFD0
_08055FD8: .4byte gUnk_02000030
_08055FDC: .4byte gUnk_080B2CD8
_08055FE0: .4byte sub_080B197C
_08055FE4: .4byte gUnk_030056F0
_08055FE8: .4byte gUnk_080B2CD8
_08055FEC: .4byte gUnk_080B2CD8
_08055FF0: .4byte gUnk_02038560

26
asm/sub_080A2988.s Normal file
View File

@ -0,0 +1,26 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080A2988
sub_080A2988: @ 0x080A2988
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
adds r1, r2, #0
adds r2, r3, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _080A29A6
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
_080A29A6:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0

22
asm/sub_080AD8F0.s Normal file
View File

@ -0,0 +1,22 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080AD8F0
sub_080AD8F0: @ 0x080AD8F0
ldr r2, _080AD908 @ =gUnk_082F3D74
lsls r0, r0, #2
adds r0, r0, r2
ldr r0, [r0]
lsls r1, r1, #2
adds r0, r0, r2
adds r1, r1, r0
ldr r0, [r1]
adds r2, r0, r2
adds r0, r2, #0
bx lr
.align 2, 0
_080AD908: .4byte gUnk_082F3D74

View File

@ -1,7 +1,11 @@
#include "global.h"
#ifndef ENTITY_H
#define ENTITY_H
#include "global.h"
typedef struct {
u8 type;
u8 subtype;
@ -9,6 +13,11 @@ typedef struct {
u8 parameter2;
} EntityType;
union SplitWord {
u32 WORD;
u16 LO, HI;
};
typedef struct
{
u32 *field_0x0;
@ -35,13 +44,9 @@ typedef struct
u8 spriteAnimation[3];
u8 ticks;
u16 collisions;
s16 xPosSubPixel;
s16 xPos;
s16 yPosSubPixel;
s16 yPos;
u8 field_0x34;
u8 field_0x35;
s16 height;
union SplitWord x;
union SplitWord y;
union SplitWord height; // todo
u8 collisionLayer;
u8 field_0x39;
u8 field_0x3a;
@ -81,6 +86,7 @@ typedef struct
u32 * heldObjectPtr;
u8 filler[12];
u32 * field_0x84;
} Entity;
#endif

44
include/mainLoop.h Normal file
View File

@ -0,0 +1,44 @@
#ifndef MAIN_H
#define MAIN_H
typedef struct { //0x03001000
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 field_0x4;
u16 field_0x6;
u8 field_0x8;
u8 field_0x9;
u8 field_0xa;
u8 field_0xb;
u32 ticks;
} MainStruct;
extern s32 sub_08055F70();
extern s32 sub_080A3204(s32);
extern s32 sub_0805616C(s32);
extern s32 sub_0807CE90(s32);
extern s32 sub_080560B8(s32);
extern void sub_08056208(s32);
extern void sub_0804FFE4();
extern s32 sub_0804FF84(s32);
extern s32 sub_08056418(s32);
extern void sub_080ADD30(s32);
extern s32 sub_0801D630(s32, u32, u32);
extern s32 sub_08056010(s32);
extern s32 sub_08016E78(s32);
extern s32 ReadKeyInput();
extern s32 sub_08055FF4(u8);
extern void sub_080560A8();
extern s32 sub_08056260();
extern void VBlankIntrWait();
extern s32 _call_via_r0(s32);
extern s32 sub_08056458(s32);
extern s32 sub_08050154(s32);
extern s32 sub_080A3480(s32);
extern s32 gUnk_02000010;
extern s32 gUnk_03001150;
extern MainStruct gUnk_03001000;
extern s32 gUnk_08100CBC;
#endif

0
include/sprite.h Normal file
View File

View File

@ -287,6 +287,7 @@ SECTIONS {
asm/code_080011C4.o(.text);
data/data_4.o(.rodata);
asm/code_08003FC4.o(.text);
asm/code_080043E8.o(.text);
data/data_6.o(.rodata);
asm/code_0800857C.o(.text);
@ -301,24 +302,39 @@ SECTIONS {
asm/readKeyInput.o(.text);
asm/code_0801D714.o(.text);
src/createEnemy.o(.text);
src/sub_0804AA84.o(.text); /* wip */
asm/code_0804AA84.o(.text);
src/loadRoomEntityList.o(.text);
asm/createEntity.o(.text);
asm/code_0804AEB0.o(.text);
src/sub_0804AFF4.o(.text);
src/loadRoom.o(.text);
asm/code_0804B058.o(.text);
asm/upperInn.o(.text);
asm/code_0804B9F8.o(.text);
src/sub_08050008.o(.text);
src/sub_08050024.o(.text);
asm/code_08050038.o(.text);
asm/initializeLink.o(.text);
asm/code_08052620.o(.text);
asm/mainLoop.o(.text);
asm/sub_08055F70.o(.text);
asm/code_08055FF4.o(.text);
asm/getEmptyEntity.o(.text);
asm/code_0805E744.o(.text);
src/sub_0806FA30.o(.text);
src/positionRelative.o(.text);
asm/code_0806FA6C.o(.text);
asm/getInventoryValue.o(.text);
asm/code_0807CAA0.o(.text);
src/getProgressFlag.o(.text);
asm/code_0807CC3C.o(.text);
src/createObject.o(.text);
asm/sub_080A2988.o(.text);
asm/createFx.o(.text);
asm/code_080A29BC.o(.text);
asm/sub_080AD8F0.o(.text);
asm/code_080AD90C.o(.text);
/* library functions */
asm/m4a_asm.o(.text);
asm/m4a.o(.text);

View File

@ -1,14 +1,14 @@
#include "entity.h"
#include "global.h"
extern Entity * sub_0805E678();
extern Entity * GetEmptyEntity();
extern void sub_0805EA2C(Entity *, u8);
Entity * CreateEnemy(u32 subtype, u32 param1)
{
Entity *enemy;
enemy = sub_0805E678();
enemy = GetEmptyEntity();
if (enemy != NULL) {
(enemy->entityType).type = 3;
(enemy->entityType).subtype = subtype;

View File

@ -1,51 +1,51 @@
#include "entity.h"
#include "entityData.h"
#include "global.h"
// #include "entity.h"
// #include "entityData.h"
// #include "global.h"
extern Entity * sub_0805EB9C(u32, u32);
extern Entity * sub_0805E768();
extern void sub_0804AEB0(Entity *, EntityData *);
extern u32 sub_0804AF0C(Entity *, EntityData *);
extern void sub_08016A30(Entity *);
extern u32 gUnk_03000BF0;
// extern Entity * sub_0805EB9C(u32, u32);
// extern Entity * sub_0805E768();
// extern void sub_0804AEB0(Entity *, EntityData *);
// extern u32 sub_0804AF0C(Entity *, EntityData *);
// extern void sub_08016A30(Entity *);
// extern u32 gUnk_03000BF0;
Entity * CreateEntity(EntityData *param_1)
{
Entity *preexisting;
Entity *entity;
s32 type;
// Entity * CreateEntity(EntityData *param_1)
// {
// Entity *preexisting;
// Entity *entity;
// s32 type;
type = param_1->entityType & 15;
if (((param_1->field_0x1 & 240) == 80) &&
(preexisting = sub_0805EB9C(type,param_1->entitySubtype), preexisting != NULL)) {
entity = NULL;
}
else {
entity = sub_0805E768(); //Get empty entity
if (entity != NULL) {
(entity->entityType).type = type;
(entity->entityType).subtype = param_1->entitySubtype;
(entity->entityType).parameter1 = param_1->entityParameter1;
sub_0804AEB0(entity,param_1);
if ((param_1->field_0x1 & 240) != 16) {
(entity->entityType).parameter2 = *(u8 *)&param_1->entityParameter2;
/* i suspect this is where the entity's behavior is defined. Not sure. */
entity->parameter3 = (u8)((u32)param_1->entityParameter2 >> 8);
if ((type != 9) && (sub_0804AF0C(entity,param_1), entity->field_0x4 != NULL)) {
if ((param_1->entityType & 16) == 0) {
if ((param_1->entityType & 32) != 0) {
entity->collisionLayer = 2;
return entity;
}
if ((gUnk_03000BF0 & 2) == 0) {
sub_08016A30(entity);
return entity;
}
}
entity->collisionLayer = 1;
}
}
}
}
return entity;
}
// type = param_1->entityType & 15;
// if (((param_1->field_0x1 & 240) == 80) &&
// (preexisting = sub_0805EB9C(type,param_1->entitySubtype), preexisting != NULL)) {
// entity = NULL;
// }
// else {
// entity = sub_0805E768(); //Get empty entity
// if (entity != NULL) {
// (entity->entityType).type = type;
// (entity->entityType).subtype = param_1->entitySubtype;
// (entity->entityType).parameter1 = param_1->entityParameter1;
// sub_0804AEB0(entity,param_1);
// if ((param_1->field_0x1 & 240) != 16) {
// (entity->entityType).parameter2 = *(u8 *)&param_1->entityParameter2;
// /* i suspect this is where the entity's behavior is defined. Not sure. */
// entity->parameter3 = (u8)((u32)param_1->entityParameter2 >> 8);
// if ((type != 9) && (sub_0804AF0C(entity,param_1), entity->field_0x4 != NULL)) {
// if ((param_1->entityType & 16) == 0) {
// if ((param_1->entityType & 32) != 0) {
// entity->collisionLayer = 2;
// return entity;
// }
// if ((gUnk_03000BF0 & 2) == 0) {
// sub_08016A30(entity);
// return entity;
// }
// }
// entity->collisionLayer = 1;
// }
// }
// }
// }
// return entity;
// }

21
src/createObject.c Normal file
View File

@ -0,0 +1,21 @@
#include "global.h"
#include "entity.h"
extern Entity * GetEmptyEntity();
extern void sub_0805EA2C(Entity *,u8);
Entity * CreateObject(u32 subtype,u32 param1,u32 param2)
{
Entity *newEnt;
newEnt = GetEmptyEntity();
if (newEnt != NULL) {
(newEnt->entityType).type = 6;
(newEnt->entityType).subtype = subtype;
(newEnt->entityType).parameter1 = param1;
(newEnt->entityType).parameter2 = param2;
sub_0805EA2C(newEnt,6);
}
return newEnt;
}

76
src/mainLoop.c Normal file
View File

@ -0,0 +1,76 @@
/*
#include "global.h"
#include "mainLoop.h"
void MainLoop()
{
s32 v0; // r0@1
s32 v1; // r0@1
s32 v2; // r0@1
s32 v3; // r0@1
s32 v4; // r0@1
s32 v5; // r0@1
s32 v6; // r0@1
s32 i; // r0@1
s32 v8; // r0@2
s32 v9; // r0@6
s32 v10; // r4@10
s32 v11; // r0@12
s32 v12; // r0@13
s32 v13; // r0@13
s32 v14; // r0@13
s32 * v15;
u32 in_r2;
v0 = sub_08055F70();
v1 = sub_080A3204(v0);
v2 = sub_0805616C(v1);
v3 = sub_0807CE90(v2);
v4 = sub_080560B8(v3);
sub_08056208(v4);
v15 = &gUnk_02000010;
*(u8 *)(v15 + 1) = 193;
sub_0804FFE4();
DmaSet(3, 83886080, 33650336, -2080374656);
v5 = sub_0804FF84(1);
v6 = sub_08056418(v5);
sub_080ADD30(v6);
gUnk_03001150 = 19088743;
v9 = sub_0801D630(50335744, in_r2, 16);
for ( i = sub_08056010(0); ; i = sub_08016E78(v9) )
{
v8 = ReadKeyInput();
if ( sub_08055FF4(v8) )
sub_080560A8();
if ( gUnk_03001000.field_0x1 && gUnk_03001000.field_0x1 == 1 )
{
v9 = sub_08056260();
}
else
{
for ( ; gUnk_03001000.field_0x8; --gUnk_03001000.field_0x8 )
VBlankIntrWait();
if ( gUnk_03001000.field_0x9 )
{
--gUnk_03001000.field_0x9;
v10 = gUnk_03001000.field_0xa;
while ( 1 )
{
v11 = v10--;
if ( v11 <= 0 )
break;
VBlankIntrWait();
}
}
++gUnk_03001000.ticks;
v12 = _call_via_r0((u32)*(&gUnk_08100CBC + gUnk_03001000.field_0x2));
v13 = sub_08056458(v12);
v14 = sub_08050154(v13);
v9 = sub_080A3480(v14);
}
}
}
*/

19
src/positionRelative.c Normal file
View File

@ -0,0 +1,19 @@
#include "global.h"
#include "entity.h"
extern void sub_08016A04(Entity *);
void PositionRelative(Entity *source, Entity *target, s32 offsetX, s32 offsetY) { //r0, r1, r2, r3
s32 x;
s32 y;
x = source->x.WORD;
target->x.WORD = x + offsetX;
y = source->y.WORD;
target->y.WORD = y + offsetY;
target->height = source->height; //ldr
target->collisionLayer = source->collisionLayer;
sub_08016A04(target);
}

39
src/sub_0804AA84.c Normal file
View File

@ -0,0 +1,39 @@
#include "global.h"
// Very close!
/* extern void sub_0805E5A8();
extern u8 gUnk_02033A90;
extern u8 gUnk_03001000;
u32 sub_0804AA84(void)
{
u8 * r3 = &gUnk_02033A90;
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() {

45
src/sub_0804AFF4.c Normal file
View File

@ -0,0 +1,45 @@
#include "global.h"
extern void sub_080186EC();
extern u32 * sub_0804B128(u8);
extern u32 _call_via_r0(u32 *);
extern void sub_0804B16C();
void sub_0804AFF4(void)
{
u32 *func;
sub_080186EC();
func = sub_0804B128(5);
if (func != NULL) {
_call_via_r0(func);
}
func = sub_0804B128(7);
if (func != NULL) {
_call_via_r0(func);
}
sub_0804B16C();
return;
}
/*
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}
*/

17
src/sub_08050008.c Normal file
View File

@ -0,0 +1,17 @@
#include "global.h"
extern u32 gUnk_020354C0;
extern s32 gUnk_03000FD0;
extern void sub_0801D630(u32, u32, u32);
void sub_08050008(u32 param_1,u32 param_2,u32 param_3)
{
s32 * unk;
sub_0801D630((u32)&gUnk_020354C0,128,param_3);
unk = &gUnk_03000FD0;
*(unk + 1) = -1;
return;
}

24
src/sub_08050024.c Normal file
View File

@ -0,0 +1,24 @@
#include "global.h"
extern void sub_0801E104();
extern void sub_08050054(u32, u32);
void sub_08050024()
{
sub_0801E104();
sub_08050054(5, 0x80 << 1);
return;
}
/* thumb_func_start sub_08050024
sub_08050024: @ 0x08050024
push {lr}
bl sub_0801E104
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl sub_08050054
pop {pc}
.align 2, 0
*/

23
src/sub_0806FA30.c Normal file
View File

@ -0,0 +1,23 @@
#include "global.h"
#include "entity.h"
extern void PositionRelative(Entity *, Entity *, s32, s32);
extern void sub_0806FAB0(Entity *, Entity *);
void sub_0806FA30(Entity * ent, Entity * ent2) {
PositionRelative(ent, ent2, 0, 0);
sub_0806FAB0(ent, ent2);
}
/*
thumb_func_start sub_0806FA30
sub_0806FA30: @ 0x0806FA30
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r2, #0
movs r3, #0
bl PositionRelative
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FAB0
pop {r4, r5, pc}
*/