This commit is contained in:
theo 2020-05-24 21:34:18 -07:00
parent e0e05b1728
commit bf919c8006
33 changed files with 104328 additions and 104020 deletions

View File

@ -38,7 +38,7 @@ MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR)
ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(REVISION) --defsym $(GAME_LANGUAGE)=1 ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(REVISION) --defsym $(GAME_LANGUAGE)=1
CC1 := tools/agbcc/bin/agbcc CC1 := tools/agbcc/bin/agbcc
override CFLAGS += -Wimplicit -Wparentheses -Werror -O2 override CFLAGS += -Wimplicit -Wparentheses -Werror -O2
# -fhex-asm # -fhex-asm
ifeq ($(DINFO),1) ifeq ($(DINFO),1)

View File

@ -18,7 +18,7 @@ InitializeLink: @ 0x080524A8
adds r1, r6, #0 adds r1, r6, #0
adds r1, #0x40 adds r1, #0x40
movs r2, #0x40 movs r2, #0x40
bl sub_0801D610 bl _DmaFill32
ldr r4, _08052518 @ =gLinkEntity ldr r4, _08052518 @ =gLinkEntity
adds r0, r4, #0 adds r0, r4, #0
movs r1, #0x88 movs r1, #0x88

295
asm/code_080041E8.s Normal file
View File

@ -0,0 +1,295 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080041E8
sub_080041E8: @ 0x080041E8
subs r0, r0, r2
subs r1, r1, r3
thumb_func_start sub_080041EC
sub_080041EC: @ 0x080041EC
adds r2, r0, #0
muls r0, r2, r0
adds r3, r1, #0
muls r1, r3, r1
push {lr}
adds r0, r0, r1
lsls r0, r0, #8
bl Sqrt
pop {r3}
bx r3
non_word_aligned_thumb_func_start sub_08004202
sub_08004202: @ 0x08004202
push {r1, lr}
ldrb r1, [r0, #0x14]
bl sub_08004212
pop {r0}
str r1, [r0]
adds r0, r2, #0
pop {pc}
non_word_aligned_thumb_func_start sub_08004212
sub_08004212: @ 0x08004212
push {r4}
adds r4, r1, #0
movs r3, #3
tst r4, r3
beq _08004226
movs r3, #2
lsrs r4, r4, #3
blo _08004224
rsbs r3, r3, #0
_08004224:
adds r2, r2, r3
_08004226:
adds r4, r1, #0
movs r3, #3
ands r4, r3
cmp r4, #2
beq _0800423C
movs r3, #0x80
adds r1, #1
lsrs r1, r1, #3
bhs _0800423A
rsbs r3, r3, #0
_0800423A:
adds r2, r2, r3
_0800423C:
ldr r3, _08004390 @ =0x00001FFF
ands r2, r3
movs r4, #0x38
ldrb r4, [r0, r4]
lsls r4, r4, #3
ldr r3, _08004394 @ =gUnk_08000228
adds r3, r3, r4
ldr r4, [r3]
ldrh r1, [r4, r2]
ldr r4, _08004398 @ =0x00004000
tst r1, r4
bne _0800425C
lsls r1, r1, #0x11
lsrs r1, r1, #0x10
ldr r4, [r3, #4]
ldrh r1, [r4, r1]
_0800425C:
pop {r4}
bx lr
thumb_func_start sub_08004260
sub_08004260: @ 0x08004260
movs r2, #0x58
strb r1, [r0, r2]
ldrh r3, [r0, #0x12]
lsls r3, r3, #4
ldr r2, _0800439C @ =gUnk_080029B4
ldr r2, [r2, r3]
lsls r1, r1, #2
ldr r1, [r2, r1]
str r1, [r0, #0x5c]
b _0800432A
thumb_func_start sub_08004274
sub_08004274: @ 0x08004274
movs r1, #1
non_word_aligned_thumb_func_start sub_08004276
sub_08004276: @ 0x08004276
movs r3, #0x59
ldrb r2, [r0, r3]
subs r2, r2, r1
beq _0800432A
ble _08004284
strb r2, [r0, r3]
bx lr
_08004284:
ldr r1, [r0, #0x5c]
_08004286:
ldrb r3, [r1, #1]
adds r2, r2, r3
bgt _0800429C
ldrb r3, [r1, #3]
adds r1, #4
lsrs r3, r3, #8
blo _08004286
ldrb r3, [r1]
lsls r3, r3, #2
subs r1, r1, r3
b _08004286
_0800429C:
str r1, [r0, #0x5c]
push {r2, lr}
bl _0800432A
pop {r2, r3}
movs r1, #0x59
strb r2, [r0, r1]
bx r3
thumb_func_start sub_080042AC
sub_080042AC: @ 0x080042AC
push {lr}
bl sub_08004260
movs r2, #0xff
strb r2, [r0, #0x1f]
b _080042C0
thumb_func_start sub_080042B8
sub_080042B8: @ 0x080042B8
movs r1, #1
non_word_aligned_thumb_func_start sub_080042BA
sub_080042BA: @ 0x080042BA
push {lr}
bl sub_08004276
_080042C0:
pop {r1}
mov lr, r1
ldrb r1, [r0, #0x1e]
ldrb r3, [r0, #0x1f]
strb r1, [r0, #0x1f]
cmp r1, r3
beq _08004328
ldrh r2, [r0, #0x12]
thumb_func_start sub_080042D0
sub_080042D0: @ 0x080042D0
cmp r1, #0xff
beq _08004328
lsls r2, r2, #4
lsls r3, r1, #2
ldr r1, _080043A0 @ =gUnk_080029B4
adds r1, r1, r2
ldr r2, [r1, #4]
cmp r2, #0
beq _08004328
ldr r1, [r1, #8]
adds r2, r2, r3
ldrb r3, [r2]
cmp r3, #0
beq _08004328
push {r4, r5}
movs r3, #0x26
ldrb r3, [r0, r3]
movs r4, #0xc
muls r3, r4, r3
ldr r4, _080043A4 @ =gUnk_02024494
adds r4, r4, r3
ldrb r3, [r4]
movs r5, #0xf
ands r3, r5
cmp r3, #5
blo _08004326
ldrb r5, [r4, #6]
ldrb r3, [r2]
strb r3, [r4, #6]
subs r5, r5, r3
ldrh r3, [r2, #2]
lsls r3, r3, #5
adds r1, r1, r3
ldr r2, [r4, #8]
str r1, [r4, #8]
subs r2, r2, r1
orrs r5, r2
beq _08004326
movs r2, #0xf0
ldrb r1, [r4]
bics r1, r2
adds r1, #0x30
strb r1, [r4]
_08004326:
pop {r4, r5}
_08004328:
bx lr
_0800432A:
ldrb r3, [r0, #0x1e]
strb r3, [r0, #0x1f]
ldr r1, [r0, #0x5c]
ldrb r3, [r1]
strb r3, [r0, #0x1e]
ldrb r3, [r1, #1]
movs r2, #0x59
strb r3, [r0, r2]
ldrb r3, [r1, #2]
movs r2, #0x5b
strb r3, [r0, r2]
ldrb r3, [r1, #3]
movs r2, #0x5a
strb r3, [r0, r2]
adds r1, #4
lsrs r3, r3, #8
blo _08004352
ldrb r3, [r1]
lsls r3, r3, #2
subs r1, r1, r3
_08004352:
str r1, [r0, #0x5c]
bx lr
.align 2, 0
_08004358: .4byte gUnk_081326EC
_0800435C: .4byte gUnk_02024048
_08004360: .4byte gUnk_02021F20
_08004364: .4byte gUnk_02024048
_08004368: .4byte gUnk_03000BF0
_0800436C: .4byte 0x0000016E
_08004370: .4byte 0x0000011E
_08004374: .4byte gUnk_03000BF6
_08004378: .4byte gUnk_03000BF8
_0800437C: .4byte 0x000003F0
_08004380: .4byte gUnk_08000248
_08004384: .4byte 0x000FFFFF
_08004388: .4byte 0x00080000
_0800438C: .4byte 0x0000EE00
_08004390: .4byte 0x00001FFF
_08004394: .4byte gUnk_08000228
_08004398: .4byte 0x00004000
_0800439C: .4byte gUnk_080029B4
_080043A0: .4byte gUnk_080029B4
_080043A4: .4byte gUnk_02024494
thumb_func_start sub_080043A8
sub_080043A8: @ 0x080043A8
movs r1, #0xb
b _080043B6
thumb_func_start sub_080043AC
sub_080043AC: @ 0x080043AC
movs r1, #0xc
b _080043B6
thumb_func_start sub_080043B0
sub_080043B0: @ 0x080043AC
movs r1, #0x52
b _080043B6
thumb_func_start sub_080043B4
sub_080043B4: @ 0x080043B4
movs r1, #0
_080043B6:
push {r4, lr}
adds r4, r0, #0
movs r0, #0xf
movs r2, #0
bl CreateObject
cmp r0, #0
beq _080043E0
movs r1, #0x48
ldr r1, [r4, r1]
ldrh r3, [r4, #0x2e]
strh r3, [r0, #0x2e]
ldrh r3, [r4, #0x32]
strh r3, [r0, #0x32]
ldrh r3, [r4, #0x36]
strh r3, [r0, #0x36]
ldrb r3, [r4, #8]
cmp r3, #3
bne _080043E0
movs r1, #1
strb r1, [r0, #0xb]
_080043E0:
adds r0, r4, #0
bl sub_0805E7BC
pop {r4, pc}

View File

@ -1425,7 +1425,7 @@ _080178AE:
movs r1, #1 movs r1, #1
_080178B4: _080178B4:
rsbs r0, r1, #0 rsbs r0, r1, #0
bl sub_080526A0 bl ModHealth
adds r5, r0, #0 adds r5, r0, #0
adds r0, r4, #0 adds r0, r4, #0
movs r1, #0x7a movs r1, #0x7a

View File

@ -2,7 +2,7 @@
.include "constants/constants.inc" .include "constants/constants.inc"
.syntax unified .syntax unified
.text .text
thumb_func_start sub_08018500 thumb_func_start sub_08018500
@ -7308,7 +7308,7 @@ _0801BC7A:
bl sub_080A3268 bl sub_080A3268
_0801BC98: _0801BC98:
adds r0, r5, #0 adds r0, r5, #0
bl sub_080526A0 bl ModHealth
adds r0, r4, #0 adds r0, r4, #0
adds r0, #0x68 adds r0, #0x68
ldrb r1, [r0] ldrb r1, [r0]
@ -7386,7 +7386,7 @@ _0801BD40:
movs r3, #2 movs r3, #2
bl sub_080A2988 bl sub_080A2988
movs r0, #0x20 movs r0, #0x20
bl sub_080526A0 bl ModHealth
b _0801BD6C b _0801BD6C
_0801BD54: _0801BD54:
ldr r1, _0801BD88 @ =gUnk_02002A40 ldr r1, _0801BD88 @ =gUnk_02002A40

File diff suppressed because it is too large Load Diff

96392
asm/code_0801D79C.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7841,7 +7841,7 @@ sub_0804E864: @ 0x0804E864
movs r1, #6 movs r1, #6
bl sub_080751E8 bl sub_080751E8
movs r0, #0xa0 movs r0, #0xa0
bl sub_080526A0 bl ModHealth
pop {pc} pop {pc}
.align 2, 0 .align 2, 0
_0804E888: .4byte gLinkEntity _0804E888: .4byte gLinkEntity

File diff suppressed because it is too large Load Diff

7148
asm/code_080526CC.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1594,7 +1594,7 @@ sub_08056BDC: @ 0x08056BDC
ldr r1, _08056C28 @ =gUnk_02000D00 ldr r1, _08056C28 @ =gUnk_02000D00
movs r2, #0xd0 movs r2, #0xd0
lsls r2, r2, #4 lsls r2, r2, #4
bl sub_0801D610 bl _DmaFill32
bl sub_08056F70 bl sub_08056F70
adds r1, r4, #0 adds r1, r4, #0
adds r1, #0x9e adds r1, #0x9e
@ -17052,26 +17052,3 @@ _0805E364: .4byte 0x00000275
_0805E368: .4byte 0x0000026F _0805E368: .4byte 0x0000026F
_0805E36C: .4byte 0x00000272 _0805E36C: .4byte 0x00000272
_0805E370: .4byte gUnk_02000070 _0805E370: .4byte gUnk_02000070
thumb_func_start sub_0805E374
sub_0805E374: @ 0x0805E374
push {lr}
adds r2, r0, #0
ldr r0, _0805E394 @ =gUnk_030010A0
adds r0, #0x2c
ldrb r0, [r0]
ldr r1, _0805E398 @ =gUnk_081091F8
cmp r0, #2
beq _0805E386
ldr r1, _0805E39C @ =gUnk_081091EE
_0805E386:
ldrb r0, [r2, #8]
adds r0, r1, r0
ldrb r1, [r0]
adds r0, r2, #0
bl sub_0805E3A0
pop {pc}
.align 2, 0
_0805E394: .4byte gUnk_030010A0
_0805E398: .4byte gUnk_081091F8
_0805E39C: .4byte gUnk_081091EE

View File

@ -2001,7 +2001,7 @@ sub_0805F5CC: @ 0x0805F5CC
lsls r3, r3, #1 lsls r3, r3, #1
ands r2, r3 ands r2, r3
lsls r2, r2, #3 lsls r2, r2, #3
bl sub_0801D610 bl _DmaFill32
adds r0, r6, #0 adds r0, r6, #0
movs r1, #0 movs r1, #0
bl sub_0805F324 bl sub_0805F324
@ -2444,7 +2444,7 @@ sub_0805F918: @ 0x0805F918
bl sub_0805F8F8 bl sub_0805F8F8
ldr r1, _0805F990 @ =gUnk_02036AD8 ldr r1, _0805F990 @ =gUnk_02036AD8
movs r2, #0xe0 movs r2, #0xe0
bl sub_0801D610 bl _DmaFill32
ldr r0, _0805F994 @ =gUnk_081092AC ldr r0, _0805F994 @ =gUnk_081092AC
lsls r4, r4, #2 lsls r4, r4, #2
adds r4, r4, r0 adds r4, r4, r0
@ -22362,16 +22362,16 @@ sub_08068F14: @ 0x08068F14
cmp r0, #5 cmp r0, #5
bne _08068F24 bne _08068F24
movs r0, #0xa0 movs r0, #0xa0
bl sub_080526A0 bl ModHealth
_08068F24: _08068F24:
ldrb r0, [r4, #0xe] ldrb r0, [r4, #0xe]
cmp r0, #6 cmp r0, #6
bne _08068F38 bne _08068F38
movs r0, #0xa0 movs r0, #0xa0
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
movs r0, #2 movs r0, #2
bl sub_080526A0 bl ModHealth
_08068F38: _08068F38:
pop {r4, pc} pop {r4, pc}
.align 2, 0 .align 2, 0
@ -22383,7 +22383,7 @@ sub_08068F3C: @ 0x08068F3C
cmp r0, #6 cmp r0, #6
bne _08068F4A bne _08068F4A
movs r0, #0xa0 movs r0, #0xa0
bl sub_080526A0 bl ModHealth
_08068F4A: _08068F4A:
pop {pc} pop {pc}
@ -36607,47 +36607,3 @@ _0806F9E6:
pop {r4, pc} pop {r4, pc}
.align 2, 0 .align 2, 0
thumb_func_start sub_0806F9EC
sub_0806F9EC: @ 0x0806F9EC
push {lr}
lsls r0, r0, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #0x10
asrs r1, r1, #0x10
muls r0, r1, r0
cmp r0, #0
bge _0806F9FE
adds r0, #0xff
_0806F9FE:
lsls r0, r0, #8
asrs r0, r0, #0x10
pop {pc}
thumb_func_start sub_0806FA04
sub_0806FA04: @ 0x0806FA04
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0
beq _0806FA20
lsls r0, r0, #0x10
asrs r0, r0, #8
bl __divsi3
lsls r0, r0, #0x10
asrs r0, r0, #0x10
b _0806FA22
_0806FA20:
movs r0, #0
_0806FA22:
pop {pc}
thumb_func_start sub_0806FA24
sub_0806FA24: @ 0x0806FA24
push {lr}
movs r2, #0
movs r3, #0
bl PositionRelative
pop {pc}

View File

@ -2458,7 +2458,7 @@ _08070CFC:
movs r0, #0x20 movs r0, #0x20
strb r0, [r1] strb r0, [r1]
subs r0, #0x22 subs r0, #0x22
bl sub_080526A0 bl ModHealth
_08070D1A: _08070D1A:
pop {r4, r5, pc} pop {r4, r5, pc}
.align 2, 0 .align 2, 0
@ -4574,7 +4574,7 @@ _08071D3A:
cmp r4, #0 cmp r4, #0
beq _08071D74 beq _08071D74
adds r0, r4, #0 adds r0, r4, #0
bl sub_080526A0 bl ModHealth
movs r2, #0 movs r2, #0
movs r0, #3 movs r0, #3
strb r0, [r5, #0xd] strb r0, [r5, #0xd]
@ -5458,7 +5458,7 @@ sub_080723D0: @ 0x080723D0
movs r0, #0x14 movs r0, #0x14
strb r0, [r1] strb r0, [r1]
subs r0, #0x16 subs r0, #0x16
bl sub_080526A0 bl ModHealth
bl sub_08079458 bl sub_08079458
_0807240A: _0807240A:
pop {r4, pc} pop {r4, pc}
@ -5491,7 +5491,7 @@ sub_0807240C: @ 0x0807240C
str r0, [r2, #0x30] str r0, [r2, #0x30]
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
bl sub_08079458 bl sub_08079458
_08072448: _08072448:
pop {pc} pop {pc}
@ -5553,7 +5553,7 @@ _080724AE:
strb r1, [r0] strb r1, [r0]
movs r0, #8 movs r0, #8
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
bl sub_080791D0 bl sub_080791D0
_080724C2: _080724C2:
pop {pc} pop {pc}
@ -8930,7 +8930,7 @@ _08073E9E:
strb r0, [r1] strb r0, [r1]
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
movs r0, #0x7a movs r0, #0x7a
bl sub_080A3268 bl sub_080A3268
_08073EDC: _08073EDC:
@ -9798,7 +9798,7 @@ sub_0807450C: @ 0x0807450C
bne _08074568 bne _08074568
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
movs r0, #0x7a movs r0, #0x7a
bl sub_080A3268 bl sub_080A3268
movs r0, #0x18 movs r0, #0x18
@ -10107,7 +10107,7 @@ _0807476C:
movs r0, #0x20 movs r0, #0x20
strb r0, [r1] strb r0, [r1]
subs r0, #0x24 subs r0, #0x24
bl sub_080526A0 bl ModHealth
bl sub_08079458 bl sub_08079458
_08074792: _08074792:
pop {r4, pc} pop {r4, pc}
@ -17430,7 +17430,7 @@ _08077F20: .4byte gUnk_03003F80
thumb_func_start sub_08077F24 thumb_func_start sub_08077F24
sub_08077F24: @ 0x08077F24 sub_08077F24: @ 0x08077F24
push {lr} push {lr}
ldr r2, _08077F34 @ =gUnk_02002AE8 ldr r2, _08077F34 @ =gStats
ldrb r3, [r0, #1] ldrb r3, [r0, #1]
ldrb r0, [r2, #0xc] ldrb r0, [r2, #0xc]
cmp r0, r3 cmp r0, r3
@ -17438,7 +17438,7 @@ sub_08077F24: @ 0x08077F24
movs r2, #1 movs r2, #1
b _08077F42 b _08077F42
.align 2, 0 .align 2, 0
_08077F34: .4byte gUnk_02002AE8 _08077F34: .4byte gStats
_08077F38: _08077F38:
ldrb r0, [r2, #0xd] ldrb r0, [r2, #0xd]
movs r2, #0 movs r2, #0
@ -19183,7 +19183,7 @@ sub_08078C24: @ 0x08078C24
rsbs r0, r0, #0 rsbs r0, r0, #0
adds r1, #4 adds r1, #4
movs r2, #0x40 movs r2, #0x40
bl sub_0801D610 bl _DmaFill32
ldr r0, _08078CB0 @ =gUnk_03003DF0 ldr r0, _08078CB0 @ =gUnk_03003DF0
movs r1, #0xc4 movs r1, #0xc4
lsls r1, r1, #1 lsls r1, r1, #1
@ -19799,7 +19799,7 @@ sub_080790E4: @ 0x080790E4
strb r0, [r1] strb r0, [r1]
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
movs r0, #0x7a movs r0, #0x7a
bl sub_080A3268 bl sub_080A3268
b _08079182 b _08079182
@ -23733,7 +23733,7 @@ _0807AE74:
strb r0, [r1] strb r0, [r1]
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
movs r0, #0x7a movs r0, #0x7a
bl sub_080A3268 bl sub_080A3268
_0807AEA8: _0807AEA8:
@ -27149,117 +27149,4 @@ _0807C98C:
bl LZ77UnCompWram bl LZ77UnCompWram
_0807C994: _0807C994:
pop {pc} pop {pc}
.align 2, 0 .align 2, 0
thumb_func_start sub_0807C998
sub_0807C998: @ 0x0807C998
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _0807C9CC @ =gUnk_0202CEB4
ldr r1, [r5]
adds r0, r4, #0
bl sub_0807C960
ldr r0, _0807C9D0 @ =0xFFFFE000
adds r4, r4, r0
ldr r1, [r5, #4]
adds r0, r4, #0
bl sub_0807C960
ldr r4, _0807C9D4 @ =gUnk_02012654
ldr r1, [r5, #8]
adds r0, r4, #0
bl sub_0807C960
ldr r0, _0807C9D0 @ =0xFFFFE000
adds r4, r4, r0
ldr r1, [r5, #0xc]
adds r0, r4, #0
bl sub_0807C960
pop {r4, r5, pc}
.align 2, 0
_0807C9CC: .4byte gUnk_0202CEB4
_0807C9D0: .4byte 0xFFFFE000
_0807C9D4: .4byte gUnk_02012654
thumb_func_start sub_0807C9D8
sub_0807C9D8: @ 0x0807C9D8
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0807CA0C @ =0x06004000
ldr r1, [r5]
bl sub_0807C960
movs r0, #0xc0
lsls r0, r0, #0x13
ldr r1, [r5, #4]
bl sub_0807C960
ldr r0, _0807CA10 @ =0x06008000
ldr r1, [r5, #8]
bl sub_0807C960
ldr r4, _0807CA14 @ =gUnk_020176E0
ldr r1, [r5, #0xc]
adds r0, r4, #0
bl sub_0807C960
adds r0, r4, #0
movs r1, #2
movs r2, #0xd
bl sub_0801D754
pop {r4, r5, pc}
.align 2, 0
_0807CA0C: .4byte 0x06004000
_0807CA10: .4byte 0x06008000
_0807CA14: .4byte gUnk_020176E0
thumb_func_start sub_0807CA18
sub_0807CA18: @ 0x0807CA18
push {lr}
ldr r0, _0807CA7C @ =gUnk_02002A40
mov ip, r0
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
beq _0807CA66
movs r2, #0
mov r0, ip
strb r2, [r0]
movs r3, #1
strb r3, [r0, #1]
strb r3, [r0, #8]
mov r1, ip
adds r1, #0xaa
movs r0, #0x18
strb r0, [r1]
adds r1, #1
strb r0, [r1]
subs r1, #0x23
movs r0, #0x22
strb r0, [r1]
adds r1, #1
movs r0, #0x15
strb r0, [r1]
mov r0, ip
adds r0, #0x8a
strb r2, [r0]
adds r0, #1
strb r2, [r0]
adds r0, #5
strb r3, [r0]
adds r1, #3
movs r0, #0x90
strh r0, [r1]
adds r1, #2
movs r0, #0x38
strh r0, [r1]
_0807CA66:
mov r1, ip
adds r1, #0x80
ldrb r0, [r1]
cmp r0, #0
bne _0807CA78
ldr r0, _0807CA80 @ =gUnk_0811E470
movs r2, #5
bl sub_0801D66C
_0807CA78:
movs r0, #1
pop {pc}
.align 2, 0
_0807CA7C: .4byte gUnk_02002A40
_0807CA80: .4byte gUnk_0811E470

View File

@ -5069,7 +5069,7 @@ sub_0807F004: @ 0x0807F004
push {lr} push {lr}
ldr r0, [r1] ldr r0, [r1]
ldrh r0, [r0, #2] ldrh r0, [r0, #2]
bl sub_080526A0 bl ModHealth
pop {pc} pop {pc}
thumb_func_start sub_0807F010 thumb_func_start sub_0807F010
@ -7152,7 +7152,7 @@ sub_0807FEC8: @ 0x0807FEC8
ldr r4, _0807FEEC @ =gUnk_03003FC0 ldr r4, _0807FEEC @ =gUnk_03003FC0
adds r1, r4, #0 adds r1, r4, #0
movs r2, #0x40 movs r2, #0x40
bl sub_0801D610 bl _DmaFill32
subs r4, #0x40 subs r4, #0x40
ldr r1, [r5, #0x30] ldr r1, [r5, #0x30]
ldrh r0, [r1, #0x2e] ldrh r0, [r1, #0x2e]
@ -15301,7 +15301,7 @@ _08083D60:
cmp r0, #0x63 cmp r0, #0x63
bne _08083DD0 bne _08083DD0
movs r0, #0xa0 movs r0, #0xa0
bl sub_080526A0 bl ModHealth
ldr r0, _08083DA8 @ =gUnk_02002A40 ldr r0, _08083DA8 @ =gUnk_02002A40
adds r1, r0, #0 adds r1, r0, #0
adds r1, #0xa9 adds r1, #0xa9
@ -15329,7 +15329,7 @@ _08083D88:
strb r0, [r1] strb r0, [r1]
_08083DA0: _08083DA0:
movs r0, #0xa0 movs r0, #0xa0
bl sub_080526A0 bl ModHealth
b _08083DD0 b _08083DD0
.align 2, 0 .align 2, 0
_08083DA8: .4byte gUnk_02002A40 _08083DA8: .4byte gUnk_02002A40
@ -67832,7 +67832,7 @@ _0809CD56:
strb r0, [r4, #0xf] strb r0, [r4, #0xf]
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
adds r0, r5, #0 adds r0, r5, #0
movs r1, #0x7a movs r1, #0x7a
bl sub_0800449C bl sub_0800449C
@ -79691,161 +79691,4 @@ _080A2820:
_080A2828: .4byte gLinkEntity _080A2828: .4byte gLinkEntity
_080A282C: .4byte gUnk_03003DC0 _080A282C: .4byte gUnk_03003DC0
_080A2830: .4byte gUnk_02034490 _080A2830: .4byte gUnk_02034490
_080A2834: .4byte gUnk_03003F80 _080A2834: .4byte gUnk_03003F80
thumb_func_start sub_080A2838
sub_080A2838: @ 0x080A2838
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #9]
lsls r2, r2, #3
ldr r0, _080A2858 @ =gUnk_08126798
adds r2, r2, r0
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_080A285C
cmp r0, #2
bne _080A2856
adds r0, r4, #0
bl sub_08016A04
_080A2856:
pop {r4, pc}
.align 2, 0
_080A2858: .4byte gUnk_08126798
thumb_func_start sub_080A285C
sub_080A285C: @ 0x080A285C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r2, #0
ldrb r3, [r4, #0x10]
movs r0, #1
ands r0, r3
cmp r0, #0
beq _080A2870
movs r0, #1
b _080A2958
_080A2870:
ldrb r2, [r5]
movs r0, #3
ands r0, r2
cmp r0, #0
bne _080A288C
lsls r0, r2, #0x1c
lsrs r0, r0, #0x1e
lsls r0, r0, #2
movs r1, #1
orrs r0, r1
orrs r0, r3
strb r0, [r4, #0x10]
movs r0, #1
b _080A2958
_080A288C:
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _080A289C
lsls r1, r1, #3
ldr r0, [r5, #4]
adds r5, r0, r1
_080A289C:
ldrh r0, [r5, #2]
lsls r0, r0, #0x16
lsrs r2, r0, #0x16
adds r1, r2, #0
ldrb r0, [r5, #3]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1e
cmp r0, #1
beq _080A28BA
cmp r0, #2
bne _080A28C4
adds r0, r4, #0
adds r0, #0x60
strh r2, [r0]
b _080A28D2
_080A28BA:
adds r0, r4, #0
movs r2, #0
bl sub_080AE008
b _080A28CA
_080A28C4:
adds r0, r4, #0
bl sub_080ADF80
_080A28CA:
cmp r0, #0
bne _080A28D2
movs r0, #0
b _080A2958
_080A28D2:
ldrh r0, [r5, #4]
lsls r0, r0, #0x16
lsrs r1, r0, #0x16
adds r0, r4, #0
bl sub_0801D040
movs r1, #0xff
adds r0, r4, #0
adds r0, #0x58
strb r1, [r0]
adds r1, r4, #0
adds r1, #0x40
movs r0, #0x48
strb r0, [r1]
ldrh r0, [r5, #6]
lsls r0, r0, #0x16
lsrs r0, r0, #0x16
strh r0, [r4, #0x12]
ldrb r0, [r5, #5]
movs r3, #3
movs r1, #0x30
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r5, #7]
lsls r1, r1, #0x1b
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
lsrs r1, r1, #0x1d
lsls r1, r1, #3
ldrb r2, [r0]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r1, [r5, #7]
lsrs r1, r1, #5
ands r1, r3
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r1, _080A295C @ =gUnk_08125104
ldrb r0, [r5, #1]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
ldrb r0, [r5]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1e
lsls r0, r0, #2
movs r1, #1
orrs r0, r1
ldrb r1, [r4, #0x10]
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #2
_080A2958:
pop {r4, r5, pc}
.align 2, 0
_080A295C: .4byte gUnk_08125104

View File

@ -12219,7 +12219,7 @@ sub_080A881C: @ 0x080A881C
strb r1, [r0, #0xf] strb r1, [r0, #0xf]
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
_080A884A: _080A884A:
bl sub_0805E780 bl sub_0805E780
b _080A8866 b _080A8866
@ -13676,7 +13676,7 @@ sub_080A9334: @ 0x080A9334
beq _080A9368 beq _080A9368
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
adds r0, r4, #0 adds r0, r4, #0
bl sub_080A9488 bl sub_080A9488
adds r0, r4, #0 adds r0, r4, #0
@ -15038,7 +15038,7 @@ sub_080A9D2C: @ 0x080A9D2C
bne _080A9D56 bne _080A9D56
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
ldr r0, _080A9D68 @ =gLinkEntity ldr r0, _080A9D68 @ =gLinkEntity
movs r1, #0x7a movs r1, #0x7a
bl sub_0800449C bl sub_0800449C
@ -15252,7 +15252,7 @@ sub_080A9EBC: @ 0x080A9EBC
movs r0, #0 movs r0, #0
strb r0, [r4, #0xf] strb r0, [r4, #0xf]
subs r0, #2 subs r0, #2
bl sub_080526A0 bl ModHealth
adds r0, r4, #0 adds r0, r4, #0
bl sub_080AF090 bl sub_080AF090
adds r0, r4, #0 adds r0, r4, #0
@ -17487,7 +17487,7 @@ _080AAF94:
movs r0, #8 movs r0, #8
strb r0, [r1] strb r0, [r1]
subs r0, #0xc subs r0, #0xc
bl sub_080526A0 bl ModHealth
adds r0, r4, #0 adds r0, r4, #0
movs r1, #0x7a movs r1, #0x7a
bl sub_0800449C bl sub_0800449C
@ -17935,7 +17935,7 @@ sub_080AB2DC: @ 0x080AB2DC
bne _080AB314 bne _080AB314
movs r0, #4 movs r0, #4
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
_080AB314: _080AB314:
pop {r4, r5, pc} pop {r4, r5, pc}
.align 2, 0 .align 2, 0
@ -19169,7 +19169,7 @@ _080ABC24:
_080ABC2A: _080ABC2A:
movs r0, #4 movs r0, #4
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
_080ABC32: _080ABC32:
adds r0, r4, #0 adds r0, r4, #0
bl sub_080A29BC bl sub_080A29BC
@ -19182,7 +19182,7 @@ _080ABC3E:
bne _080ABC52 bne _080ABC52
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
bl sub_0805E780 bl sub_0805E780
_080ABC52: _080ABC52:
pop {r4, pc} pop {r4, pc}
@ -19232,7 +19232,7 @@ sub_080ABC90: @ 0x080ABC90
beq _080ABCBE beq _080ABCBE
movs r0, #2 movs r0, #2
rsbs r0, r0, #0 rsbs r0, r0, #0
bl sub_080526A0 bl ModHealth
ldr r0, _080ABCC0 @ =gLinkEntity ldr r0, _080ABCC0 @ =gLinkEntity
movs r1, #0x7a movs r1, #0x7a
bl sub_0800449C bl sub_0800449C

View File

@ -23,7 +23,7 @@ sub_0801D630: @ 0x0801D630
_0801D64A: _0801D64A:
movs r0, #0 movs r0, #0
adds r1, r3, #0 adds r1, r3, #0
bl sub_0801D610 bl _DmaFill32
b _0801D668 b _0801D668
_0801D654: _0801D654:
movs r0, #0 movs r0, #0
@ -38,4 +38,5 @@ _0801D65E:
bne _0801D65E bne _0801D65E
_0801D668: _0801D668:
pop {r4, pc} pop {r4, pc}
.align 2, 0 .align 2, 0

31
asm/sub_0804AA30.s Normal file
View File

@ -0,0 +1,31 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0804AA30
sub_0804AA30: @ 0x0804AA30
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r4, #0
adds r6, #0x41
ldrb r1, [r6]
movs r0, #0x7f
ands r0, r1
strb r0, [r6]
adds r0, r4, #0
bl sub_0800279C
ldrb r2, [r6]
movs r1, #0x80
orrs r1, r2
strb r1, [r6]
lsls r0, r0, #2
adds r0, r0, r5
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
pop {r4, r5, r6, pc}
.align 2, 0

63
asm/sub_0807CA18.s Normal file
View File

@ -0,0 +1,63 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0807CA18
sub_0807CA18: @ 0x0807CA18
push {lr}
ldr r0, _0807CA7C @ =gUnk_02002A40
mov ip, r0
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
beq _0807CA66
movs r2, #0
mov r0, ip
strb r2, [r0]
movs r3, #1
strb r3, [r0, #1]
strb r3, [r0, #8]
mov r1, ip
adds r1, #0xaa
movs r0, #0x18
strb r0, [r1]
adds r1, #1
strb r0, [r1]
subs r1, #0x23
movs r0, #0x22
strb r0, [r1]
adds r1, #1
movs r0, #0x15
strb r0, [r1]
mov r0, ip
adds r0, #0x8a
strb r2, [r0]
adds r0, #1
strb r2, [r0]
adds r0, #5
strb r3, [r0]
adds r1, #3
movs r0, #0x90
strh r0, [r1]
adds r1, #2
movs r0, #0x38
strh r0, [r1]
_0807CA66:
mov r1, ip
adds r1, #0x80
ldrb r0, [r1]
cmp r0, #0
bne _0807CA78
ldr r0, _0807CA80 @ =gUnk_0811E470
movs r2, #5
bl sub_0801D66C
_0807CA78:
movs r0, #1
pop {pc}
.align 2, 0
_0807CA7C: .4byte gUnk_02002A40
_0807CA80: .4byte gUnk_0811E470

27
asm/sub_080A2838.s Normal file
View File

@ -0,0 +1,27 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080A2838
sub_080A2838: @ 0x080A2838
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #9]
lsls r2, r2, #3
ldr r0, _080A2858 @ =gUnk_08126798
adds r2, r2, r0
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_080A285C
cmp r0, #2
bne _080A2856
adds r0, r4, #0
bl sub_08016A04
_080A2856:
pop {r4, pc}
.align 2, 0
_080A2858: .4byte gUnk_08126798

144
asm/sub_080A285C.s Normal file
View File

@ -0,0 +1,144 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080A285C
sub_080A285C: @ 0x080A285C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r2, #0
ldrb r3, [r4, #0x10]
movs r0, #1
ands r0, r3
cmp r0, #0
beq _080A2870
movs r0, #1
b _080A2958
_080A2870:
ldrb r2, [r5]
movs r0, #3
ands r0, r2
cmp r0, #0
bne _080A288C
lsls r0, r2, #0x1c
lsrs r0, r0, #0x1e
lsls r0, r0, #2
movs r1, #1
orrs r0, r1
orrs r0, r3
strb r0, [r4, #0x10]
movs r0, #1
b _080A2958
_080A288C:
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _080A289C
lsls r1, r1, #3
ldr r0, [r5, #4]
adds r5, r0, r1
_080A289C:
ldrh r0, [r5, #2]
lsls r0, r0, #0x16
lsrs r2, r0, #0x16
adds r1, r2, #0
ldrb r0, [r5, #3]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1e
cmp r0, #1
beq _080A28BA
cmp r0, #2
bne _080A28C4
adds r0, r4, #0
adds r0, #0x60
strh r2, [r0]
b _080A28D2
_080A28BA:
adds r0, r4, #0
movs r2, #0
bl sub_080AE008
b _080A28CA
_080A28C4:
adds r0, r4, #0
bl sub_080ADF80
_080A28CA:
cmp r0, #0
bne _080A28D2
movs r0, #0
b _080A2958
_080A28D2:
ldrh r0, [r5, #4]
lsls r0, r0, #0x16
lsrs r1, r0, #0x16
adds r0, r4, #0
bl sub_0801D040
movs r1, #0xff
adds r0, r4, #0
adds r0, #0x58
strb r1, [r0]
adds r1, r4, #0
adds r1, #0x40
movs r0, #0x48
strb r0, [r1]
ldrh r0, [r5, #6]
lsls r0, r0, #0x16
lsrs r0, r0, #0x16
strh r0, [r4, #0x12]
ldrb r0, [r5, #5]
movs r3, #3
movs r1, #0x30
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r5, #7]
lsls r1, r1, #0x1b
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
lsrs r1, r1, #0x1d
lsls r1, r1, #3
ldrb r2, [r0]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r1, [r5, #7]
lsrs r1, r1, #5
ands r1, r3
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r1, _080A295C @ =gUnk_08125104
ldrb r0, [r5, #1]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
ldrb r0, [r5]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1e
lsls r0, r0, #2
movs r1, #1
orrs r0, r1
ldrb r1, [r4, #0x10]
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #2
_080A2958:
pop {r4, r5, pc}
.align 2, 0
_080A295C: .4byte gUnk_08125104

View File

@ -2,7 +2,7 @@
#ifndef ITEM_H #ifndef ITEM_H
#define ITEM_H #define ITEM_H
enum ItemType enum
{ {
Untyped, Untyped,
SmithSword = 0x01, SmithSword = 0x01,
@ -122,5 +122,5 @@
FastSpin = 0x73, FastSpin = 0x73,
FastSplit = 0x74, FastSplit = 0x74,
LongSpin = 0x75 LongSpin = 0x75
} } ItemType;
#endif #endif

20
include/stats.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef STATS_H
#define STATS_H
#include "global.h"
#include "item.h"
typedef struct {
u8 walletType;
u8 heartPieces;
u8 health;
u8 maxHealth;
u8 filler[8];
u8 itemOnA;
u8 itemonB;
u8 filler2[10];
u16 rupees;
u8 filler3[12];
} Stats;
#endif

View File

@ -30,7 +30,7 @@ SECTIONS {
. = 0x00002AA0; gUnk_02002AA0 = .; . = 0x00002AA0; gUnk_02002AA0 = .;
. = 0x00002AC0; gUnk_02002AC0 = .; . = 0x00002AC0; gUnk_02002AC0 = .;
. = 0x00002AC8; gUnk_02002AC8 = .; . = 0x00002AC8; gUnk_02002AC8 = .;
. = 0x00002AE8; gUnk_02002AE8 = .; . = 0x00002AE8; gStats = .;
. = 0x00002B0E; gUnk_02002B0E = .; . = 0x00002B0E; gUnk_02002B0E = .;
. = 0x00002B32; gUnk_02002B32 = .; . = 0x00002B32; gUnk_02002B32 = .;
. = 0x00002B54; gUnk_02002B54 = .; . = 0x00002B54; gUnk_02002B54 = .;
@ -299,11 +299,13 @@ SECTIONS {
/* C source compiled without interworking */ /* C source compiled without interworking */
asm/code_08018500.o(.text); asm/code_08018500.o(.text);
src/sub_0801D5EC.o(.text); src/sub_0801D5EC.o(.text);
src/sub_0801D610.o(.text); src/_dmaFill32.o(.text);
asm/sub_0801D630.o(.text); asm/sub_0801D630.o(.text);
asm/sub_0801D66C.o(.text); asm/sub_0801D66C.o(.text);
asm/readKeyInput.o(.text); asm/readKeyInput.o(.text);
asm/code_0801D714.o(.text); asm/code_0801D714.o(.text);
asm/code_0801D79C.o(.text);
asm/sub_0804AA30.o(.text);
src/createEnemy.o(.text); src/createEnemy.o(.text);
src/sub_0804AA84.o(.text); /* wip */ src/sub_0804AA84.o(.text); /* wip */
asm/code_0804AA84.o(.text); asm/code_0804AA84.o(.text);
@ -320,22 +322,34 @@ SECTIONS {
asm/code_08050038.o(.text); asm/code_08050038.o(.text);
asm/initializeLink.o(.text); asm/initializeLink.o(.text);
asm/code_08052620.o(.text); asm/code_08052620.o(.text);
src/bitGetters.o(.text);
src/modHealth.o(.text);
asm/code_080526CC.o(.text);
src/sub_08055E08.o(.text); src/sub_08055E08.o(.text);
asm/sub_08055E24.o(.text); asm/sub_08055E24.o(.text);
asm/mainLoop.o(.text); asm/mainLoop.o(.text);
asm/sub_08055F70.o(.text); asm/sub_08055F70.o(.text);
asm/code_08055FF4.o(.text); asm/code_08055FF4.o(.text);
src/sub_0805E374.o(.text);
src/sub_0805E3A0.o(.text); src/sub_0805E3A0.o(.text);
asm/code_0805E3B0.o(.text); asm/code_0805E3B0.o(.text);
asm/getEmptyEntity.o(.text); asm/getEmptyEntity.o(.text);
asm/code_0805E744.o(.text); asm/code_0805E744.o(.text);
src/sub_0806F9EC.o(.text);
src/sub_0806FA04.o(.text);
src/sub_0806FA24.o(.text);
src/sub_0806FA30.o(.text); src/sub_0806FA30.o(.text);
src/positionRelative.o(.text); src/positionRelative.o(.text);
asm/code_0806FA6C.o(.text); asm/code_0806FA6C.o(.text);
src/sub_0807C998.o(.text);
src/sub_0801D754.o(.text);
asm/sub_0807CA18.o(.text);
asm/getInventoryValue.o(.text); asm/getInventoryValue.o(.text);
asm/code_0807CAA0.o(.text); asm/code_0807CAA0.o(.text);
src/getProgressFlag.o(.text); src/getProgressFlag.o(.text);
asm/code_0807CC3C.o(.text); asm/code_0807CC3C.o(.text);
asm/sub_080A2838.o(.text);
asm/sub_080A285C.o(.text);
src/createObject.o(.text); src/createObject.o(.text);
asm/sub_080A2988.o(.text); asm/sub_080A2988.o(.text);
asm/createFx.o(.text); asm/createFx.o(.text);

View File

@ -1,6 +1,6 @@
#include "global.h" #include "global.h"
void sub_0801D610(u32 a1, u32 a2, u32 a3) void _DmaFill32(u32 a1, u32 a2, u32 a3)
{ {
DmaFill32(3, a1, a2, a3); DmaFill32(3, a1, a2, a3);
} }

32
src/bitGetters.c Normal file
View File

@ -0,0 +1,32 @@
#include "global.h"
extern u8 gUnk_02033A90;
#include "global.h"
extern u8 gUnk_02033A90;
u32 sub_08052654()
{
return (gUnk_02033A90 >> 7) & 1;
}
u32 sub_08052660()
{
return (gUnk_02033A90 >> 2) & 1;
}
u32 sub_08052670()
{
return (gUnk_02033A90 >> 4) & 1;
}
u32 sub_08052680()
{
return (gUnk_02033A90 >> 6) & 1;
}
u32 sub_08052690()
{
return (gUnk_02033A90 >> 3) & 1;
}

View File

@ -1,8 +1,8 @@
#include "global.h" #include "global.h"
/* called when loading any room */ /* called when loading any room */
extern void LoadRoomEntityList(); void LoadRoomEntityList();
extern s32 GetProgressFlag(u32 flag); s32 GetProgressFlag(u32 flag);
extern s32* sub_0804B128(u8 unk); extern s32* sub_0804B128(u8 unk);
extern void sub_0804B058(s32 *unk); extern void sub_0804B058(s32 *unk);
extern void sub_0804B1AC(); extern void sub_0804B1AC();

22
src/modHealth.c Normal file
View File

@ -0,0 +1,22 @@
#include "global.h"
#include "entity.h"
#include "stats.h"
extern Stats gStats;
extern Entity gLinkEntity;
s32 ModHealth(s32 deltaHealth)
{
s32 newHealth;
newHealth = gStats.health + deltaHealth;
if (newHealth < 0) {
newHealth = 0;
}
if (gStats.maxHealth < newHealth) {
newHealth = (u32)gStats.maxHealth;
}
gStats.health = newHealth;
gLinkEntity.currentHealth = newHealth;
return newHealth;
}

16
src/sub_0801D754.c Normal file
View File

@ -0,0 +1,16 @@
#include "global.h"
extern void sub_0807C960();
extern u32 sub_0801D754(u32, u8, u8);
u32 sub_0807C9D8(u32 *a1)
{
u32 *v1; // r5@1
v1 = a1;
sub_0807C960(0x6004000, *a1);
sub_0807C960(0x6000000, v1[1]);
sub_0807C960(0x6008000, v1[2]);
sub_0807C960(0x20176E0, v1[3]);
return sub_0801D754(0x20176E0, 2, 13);
}

15
src/sub_0805E374.c Normal file
View File

@ -0,0 +1,15 @@
#include "entity.h"
extern Entity * sub_0805E3A0(Entity *, u32);
extern u8 gUnk_030010A0[];
extern u8 gUnk_081091F8[];
extern u8 gUnk_081091EE[];
Entity * sub_0805E374(Entity *param_1)
{
u8 r3 = gUnk_030010A0[0x2C];
u8 *array = gUnk_081091F8;
if ( r3 != '\x02') {
array = gUnk_081091EE;
}
return sub_0805E3A0(param_1,array[(param_1->entityType).type]);
}

13
src/sub_0806F9EC.c Normal file
View File

@ -0,0 +1,13 @@
#include "global.h"
s32 sub_0806F9EC(s16 param_1,s16 param_2)
{
int iVar1;
iVar1 = (s32)param_1 * (s32)param_2;
if (iVar1 < 0) {
iVar1 = iVar1 + 255;
}
return (iVar1 << 8) >> 16;
}

19
src/sub_0806FA04.c Normal file
View File

@ -0,0 +1,19 @@
#include "global.h"
extern s32 __divsi3(s32, s32);
s16 sub_0806FA04(s16 param_1,s16 param_2)
{
s16 sVar1;
s32 iVar2;
if (param_2 != 0) {
sVar1 = __divsi3( (param_1 << 16) >> 8 ,param_2);
iVar2 = sVar1;
}
else {
iVar2 = 0;
}
return iVar2;
}

10
src/sub_0806FA24.c Normal file
View File

@ -0,0 +1,10 @@
#include "global.h"
#include "entity.h"
void PositionRelative(Entity *, Entity *, s32, s32);
void sub_0806FA24(Entity *param_1,Entity *param_2)
{
PositionRelative(param_1, param_2, 0, 0);
}

13
src/sub_0807C998.c Normal file
View File

@ -0,0 +1,13 @@
#include "global.h"
extern void sub_0807C960();
extern u32 gUnk_0202CEB4;
extern u32 gUnk_02012654;
void sub_0807C998(u32 *a1)
{
sub_0807C960(&gUnk_0202CEB4, a1[0]);
sub_0807C960(&gUnk_0202CEB4 - 0x800, a1[1]);
sub_0807C960(&gUnk_02012654, a1[2]);
sub_0807C960(&gUnk_02012654 - 0x800, a1[3]);
}