diff --git a/Makefile b/Makefile index 4e9ab197..6887aebb 100644 --- a/Makefile +++ b/Makefile @@ -89,7 +89,7 @@ $(C_BUILDDIR)/eeprom.o: CFLAGS = -O1 -mthumb-interwork -Wimplicit -Wparentheses C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) -ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) +ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s $(ASM_SUBDIR)/*/*.s) ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s $(DATA_ASM_SUBDIR)/**/*.s $(DATA_ASM_SUBDIR)/**/**/*.s) diff --git a/asm/bowUse.s b/asm/bowUse.s index 709ff5be..0d8cf868 100644 --- a/asm/bowUse.s +++ b/asm/bowUse.s @@ -6,334 +6,3 @@ .text - thumb_func_start sub_0801917C -sub_0801917C: @ 0x0801917C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - cmp r2, #0 - bne _08019188 - b _0801934A -_08019188: - ldr r0, [r4, #0x74] - subs r0, #1 - str r0, [r4, #0x74] - cmp r0, #0 - bne _0801919C - adds r0, r4, #0 - bl sub_08019468 - bl DeleteThisEntity -_0801919C: - adds r0, r4, #0 - bl GetNextFrame - ldr r0, [r4, #0x74] - cmp r0, #0x17 - bhi _080191BA - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080191BA: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x40 - ldrb r1, [r0] - movs r5, #4 - adds r6, r0, #0 - cmp r1, #0xe - bne _080191D0 - movs r5, #1 -_080191D0: - ldr r2, [r4, #0x6c] - ldr r3, [r4, #0x70] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08008782 - cmp r0, #0 - beq _080191EE - ldrb r0, [r6] - cmp r0, #0xe - beq _080191EA - bl DeleteThisEntity -_080191EA: - movs r7, #1 - b _080191F0 -_080191EE: - movs r7, #0 -_080191F0: - ldrb r0, [r6] - cmp r0, #0xe - bne _0801920E - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0801920E - adds r0, r4, #0 - movs r1, #0x14 - movs r2, #0 - bl CreateFx -_0801920E: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0801921A - adds r0, r4, #0 - bl sub_0800451C -_0801921A: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08019288 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0801928C @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _080192D0 - cmp r7, #0 - bne _080192D0 - ldr r1, _08019290 @ =gUnk_08003E44 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r5, #0x32 - ldrsh r3, [r4, r5] - adds r0, r4, #0 - bl sub_080040D8 - cmp r0, #0 - beq _080192D0 - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r6] - cmp r0, #0xe - bne _08019294 - adds r0, r4, #0 - bl sub_08019468 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #0xf - adds r0, r4, #0 - bl InitializeAnimation - b _080192A2 - .align 2, 0 -_08019288: .4byte gRoomControls -_0801928C: .4byte gPlayerEntity -_08019290: .4byte gUnk_08003E44 -_08019294: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl InitializeAnimation -_080192A2: - adds r0, r4, #0 - bl sub_08017744 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x10] - strh r0, [r4, #0x24] - ldr r0, [r4, #0x2c] - cmp r0, #0 - bge _080192BC - movs r0, #0 -_080192BC: - str r0, [r4, #0x2c] - ldr r0, [r4, #0x30] - cmp r0, #0 - bge _080192C6 - movs r0, #0 -_080192C6: - str r0, [r4, #0x30] - movs r0, #0xc5 - lsls r0, r0, #1 - bl SoundReq -_080192D0: - adds r5, r4, #0 - adds r5, #0x41 - ldrb r0, [r5] - cmp r0, #0 - bne _080192DC - b _08019402 -_080192DC: - cmp r7, #0 - beq _080192E2 - b _08019402 -_080192E2: - ldrb r0, [r6] - cmp r0, #0xe - bne _080192EE - adds r0, r4, #0 - bl sub_08019468 -_080192EE: - adds r0, r4, #0 - bl sub_08017744 - ldrb r1, [r5] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x42 - bne _08019336 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl InitializeAnimation - b _08019402 -_08019336: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - b _08019402 -_0801934A: - ldr r1, _0801938C @ =gPlayerState - ldr r0, [r1, #0x2c] - cmp r0, r4 - bne _0801935E - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _08019368 - str r0, [r1, #0x2c] -_0801935E: - adds r0, r1, #0 - adds r0, #0x21 - strb r2, [r0] - bl DeleteThisEntity -_08019368: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xa - bne _08019398 - ldr r0, _0801938C @ =gPlayerState - adds r2, r0, #0 - adds r2, #0x21 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - beq _08019398 - cmp r1, #0x77 - bhi _08019390 - adds r0, #1 - strb r0, [r2] - b _08019398 - .align 2, 0 -_0801938C: .4byte gPlayerState -_08019390: - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0xe - strb r0, [r1] -_08019398: - ldr r0, _08019404 @ =gSave - adds r0, #0xad - ldrb r5, [r0] - ldrb r1, [r4, #0x1e] - ldr r2, [r4, #0x78] - subs r1, r1, r2 - ldr r0, _08019408 @ =gPlayerEntity - ldrb r0, [r0, #0x1e] - cmp r1, r0 - beq _080193C2 - adds r0, r0, r2 - strb r0, [r4, #0x1e] - cmp r5, #0 - bne _080193B8 - adds r0, #0x2a - strb r0, [r4, #0x1e] -_080193B8: - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_080193C2: - ldr r0, _08019408 @ =gPlayerEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080193FA - cmp r5, #0 - beq _080193FA - adds r0, r4, #0 - adds r0, #0x40 - ldrb r2, [r0] - movs r0, #4 - movs r1, #1 - movs r3, #9 - bl CreatePlayerItem - cmp r0, #0 - beq _080193FA - ldr r2, _0801940C @ =gPlayerState - ldrb r1, [r2, #4] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #4] - movs r0, #1 - rsbs r0, r0, #0 - bl ModArrows -_080193FA: - ldr r1, _08019408 @ =gPlayerEntity - adds r0, r4, #0 - bl sub_08078E84 -_08019402: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08019404: .4byte gSave -_08019408: .4byte gPlayerEntity -_0801940C: .4byte gPlayerState diff --git a/asm/code_08019444.s b/asm/code_08019444.s index 722b084d..78e38e09 100644 --- a/asm/code_08019444.s +++ b/asm/code_08019444.s @@ -6,7 +6,7 @@ .text - thumb_func_start sub_08019444 + thumb_func_start sub_08019444 @ TODO bow sub_08019444: @ 0x08019444 push {r4, lr} adds r4, r0, #0 @@ -24,7 +24,7 @@ _08019464: pop {r4, pc} .align 2, 0 - thumb_func_start sub_08019468 + thumb_func_start sub_08019468 @ TODO bow? sub_08019468: @ 0x08019468 push {lr} adds r1, r0, #0 @@ -39,257 +39,8 @@ sub_08019468: @ 0x08019468 _0801947E: pop {pc} - thumb_func_start PlayerItemSwordBeam -PlayerItemSwordBeam: @ 0x08019480 - push {lr} - ldr r2, _08019494 @ =gUnk_080B43F4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08019494: .4byte gUnk_080B43F4 - - thumb_func_start sub_08019498 -sub_08019498: @ 0x08019498 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08019504 @ =gPlayerEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrb r0, [r5, #0xc] - adds r0, #1 - movs r2, #0 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r4, #0x3c - ldrb r0, [r4] - adds r0, #1 - adds r1, r5, #0 - adds r1, #0x3c - strb r0, [r1] - ldr r0, _08019508 @ =gUnk_080B4408 - str r0, [r5, #0x48] - movs r0, #0xe0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #2 - str r0, [r5, #0x74] - str r2, [r5, #0x70] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _080194E6 - movs r0, #1 - strb r0, [r5, #0xb] -_080194E6: - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r0, #0x3c - str r0, [r5, #0x6c] - ldrb r0, [r5, #0x14] - adds r2, r0, #0 - cmp r0, #2 - beq _08019534 - cmp r0, #2 - bgt _0801950C - cmp r0, #0 - beq _08019516 - b _0801954E - .align 2, 0 -_08019504: .4byte gPlayerEntity -_08019508: .4byte gUnk_080B4408 -_0801950C: - cmp r0, #4 - beq _0801952C - cmp r0, #6 - beq _08019542 - b _0801954E -_08019516: - ldrh r0, [r5, #0x2e] - subs r0, #3 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - subs r0, #8 - strh r0, [r5, #0x32] - ldrb r0, [r5, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x18] - b _0801954E -_0801952C: - ldrh r0, [r5, #0x2e] - adds r0, #2 - strh r0, [r5, #0x2e] - b _0801954E -_08019534: - ldrb r0, [r5, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrh r0, [r5, #0x2e] - adds r0, #1 - b _08019546 -_08019542: - ldrh r0, [r5, #0x2e] - subs r0, #1 -_08019546: - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - subs r0, #4 - strh r0, [r5, #0x32] -_0801954E: - ldr r1, _08019578 @ =gUnk_080B43FC - lsrs r0, r2, #1 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - bl InitializeAnimation - adds r0, r5, #0 - bl sub_0801766C - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - bl sub_08019580 - ldr r0, _0801957C @ =0x0000013F - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_08019578: .4byte gUnk_080B43FC -_0801957C: .4byte 0x0000013F - - thumb_func_start sub_08019580 -sub_08019580: @ 0x08019580 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x6c] - subs r0, #1 - str r0, [r4, #0x6c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _08019638 - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080195B0 - adds r0, r4, #0 - bl sub_0800451C -_080195B0: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0801962C @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _08019630 @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _08019602 - ldr r1, _08019634 @ =gUnk_08003E44 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r5, #0x32 - ldrsh r3, [r4, r5] - adds r0, r4, #0 - bl sub_080040D8 - cmp r0, #0 - beq _08019602 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_08019602: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _0801961A - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_0801961A: - adds r0, r4, #0 - movs r1, #0xc - bl sub_08008790 - cmp r0, #0 - beq _0801963C - bl DeleteThisEntity - b _0801963C - .align 2, 0 -_0801962C: .4byte gRoomControls -_08019630: .4byte gPlayerEntity -_08019634: .4byte gUnk_08003E44 -_08019638: - bl DeleteThisEntity -_0801963C: - adds r0, r4, #0 - bl sub_08019644 - pop {r4, r5, pc} - - thumb_func_start sub_08019644 -sub_08019644: @ 0x08019644 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x74] - subs r1, r0, #1 - str r1, [r2, #0x74] - cmp r1, #0 - bne _08019674 - movs r0, #2 - str r0, [r2, #0x74] - ldr r0, [r2, #0x70] - adds r0, #1 - str r0, [r2, #0x70] - ldr r3, _08019678 @ =gUnk_080B4400 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0xff - bne _08019668 - str r1, [r2, #0x70] -_08019668: - ldr r0, [r2, #0x70] - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_0801D2B4 -_08019674: - pop {pc} - .align 2, 0 -_08019678: .4byte gUnk_080B4400 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/playerItem/playerItemSwordBeam.inc" thumb_func_start sub_0801967C sub_0801967C: @ 0x0801967C @@ -3875,1749 +3626,12 @@ _0801B178: .align 2, 0 _0801B184: .4byte gUnk_02000CC0 - thumb_func_start PlayerItemBomb -PlayerItemBomb: @ 0x0801B188 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0801B1E0 @ =gUnk_080B77C8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl GetNextFrame - ldrb r2, [r4, #0xc] - cmp r2, #3 - beq _0801B24E - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _0801B1E4 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #7 - bne _0801B1BC - subs r0, r1, #1 - strb r0, [r4, #0xe] -_0801B1BC: - ldrb r1, [r4, #0xe] - cmp r1, #0 - bne _0801B24E - movs r0, #0x50 - strb r0, [r4, #0xf] - str r1, [r4, #0x68] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0801B24E - .align 2, 0 -_0801B1E0: .4byte gUnk_080B77C8 -_0801B1E4: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0801B24E - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0801B248 - cmp r2, #2 - bne _0801B204 - ldrb r0, [r4, #0xd] - cmp r0, #1 - bne _0801B204 - ldr r0, _0801B244 @ =gPlayerState - strb r1, [r0, #5] -_0801B204: - movs r0, #3 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3c - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0805EC60 - adds r0, r4, #0 - bl sub_08078954 - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r0, r4, #0 - bl sub_0801B418 - b _0801B24E - .align 2, 0 -_0801B244: .4byte gPlayerState -_0801B248: - adds r0, r4, #0 - bl sub_0801B3A4 -_0801B24E: - pop {r4, pc} + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/playerItem/playerItemBomb.inc" - thumb_func_start sub_0801B250 -sub_0801B250: @ 0x0801B250 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - movs r0, #1 - strb r0, [r2, #0xc] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x3a - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0xa] - adds r0, r1, #0 - cmp r0, #0xff - bne _0801B28A - movs r0, #0x3c - b _0801B29C -_0801B28A: - cmp r0, #0xfe - bne _0801B29A - movs r0, #0xf - strb r0, [r2, #0xe] - movs r0, #0xff - orrs r0, r1 - strb r0, [r2, #0xa] - b _0801B29E -_0801B29A: - movs r0, #0x96 -_0801B29C: - strb r0, [r2, #0xe] -_0801B29E: - ldr r0, _0801B2BC @ =gUnk_080B77F4 - str r0, [r2, #0x48] - movs r0, #0 - strb r0, [r2, #0x16] - adds r0, r2, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #7 - bne _0801B2C0 - adds r0, r2, #0 - movs r1, #5 - bl InitializeAnimation - b _0801B2C8 - .align 2, 0 -_0801B2BC: .4byte gUnk_080B77F4 -_0801B2C0: - adds r0, r2, #0 - movs r1, #0x15 - bl InitializeAnimation -_0801B2C8: - pop {pc} - .align 2, 0 + .include "asm/playerItem/playerItem3.inc" - thumb_func_start sub_0801B2CC -sub_0801B2CC: @ 0x0801B2CC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - bne _0801B2DE - adds r0, r4, #0 - bl sub_08078930 -_0801B2DE: - movs r0, #8 - bl IsItemEquipped - cmp r0, #1 - beq _0801B2F6 - cmp r0, #1 - blo _0801B2F2 - cmp r0, #2 - beq _0801B2FA - b _0801B2FC -_0801B2F2: - movs r5, #1 - b _0801B2FC -_0801B2F6: - movs r5, #2 - b _0801B2FC -_0801B2FA: - movs r5, #0 -_0801B2FC: - ldr r0, _0801B314 @ =gPlayerState - adds r0, #0x92 - ldrh r0, [r0] - ands r5, r0 - cmp r5, #0 - beq _0801B310 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] -_0801B310: - pop {r4, r5, pc} - .align 2, 0 -_0801B314: .4byte gPlayerState + .include "asm/playerItem/playerItemC.inc" - thumb_func_start sub_0801B318 -sub_0801B318: @ 0x0801B318 - push {lr} - ldr r2, _0801B32C @ =gUnk_080B77D8 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801B32C: .4byte gUnk_080B77D8 + .include "asm/playerItem/playerItemSwordSpin.inc" - thumb_func_start sub_0801B330 -sub_0801B330: @ 0x0801B330 - push {lr} - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - bl sub_08079BD8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B340 -sub_0801B340: @ 0x0801B340 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0801B354 -sub_0801B354: @ 0x0801B354 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0801B368 -sub_0801B368: @ 0x0801B368 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - subs r0, #1 - movs r1, #0 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldrb r0, [r2, #0xe] - cmp r0, #0x3c - bls _0801B380 - movs r0, #0x3c - strb r0, [r2, #0xe] -_0801B380: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B384 -sub_0801B384: @ 0x0801B384 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_0801B38C -sub_0801B38C: @ 0x0801B38C - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _0801B3A0 - bl DeleteThisEntity -_0801B3A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B3A4 -sub_0801B3A4: @ 0x0801B3A4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - movs r5, #8 - cmp r0, #0x28 - bhi _0801B3F4 - movs r5, #4 - ldr r1, [r4, #0x68] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0801B3C4 - adds r0, r1, #0 - subs r0, #0x10 - b _0801B3C8 -_0801B3C4: - adds r0, r1, #0 - adds r0, #0x10 -_0801B3C8: - str r0, [r4, #0x68] - ldr r1, [r4, #0x68] - movs r2, #0xf0 - adds r0, r1, #0 - ands r0, r2 - subs r0, #1 - cmp r0, #0x7f - bls _0801B3E0 - movs r0, #0x80 - lsls r0, r0, #8 - eors r1, r0 - str r1, [r4, #0x68] -_0801B3E0: - ldr r0, [r4, #0x68] - ands r0, r2 - movs r2, #0x98 - lsls r2, r2, #1 - subs r2, r2, r0 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0801B3F4: - ldrb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _0801B408 - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x1a] - b _0801B416 -_0801B408: - ldrb r0, [r4, #0x1a] - lsrs r2, r0, #4 - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1a] -_0801B416: - pop {r4, r5, pc} - - thumb_func_start sub_0801B418 -sub_0801B418: @ 0x0801B418 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - movs r6, #0x10 - movs r0, #0x10 - rsbs r0, r0, #0 - mov sb, r0 - mov r8, sb -_0801B42C: - movs r4, #0x10 - adds r7, r6, #0 - subs r7, #0x10 -_0801B432: - movs r0, #0x2e - ldrsh r2, [r5, r0] - adds r2, r2, r4 - movs r0, #0x32 - ldrsh r3, [r5, r0] - adds r3, r3, r6 - adds r0, r5, #0 - movs r1, #3 - bl sub_08008796 - subs r4, #0x10 - cmp r4, r8 - bge _0801B432 - adds r6, r7, #0 - cmp r6, sb - bge _0801B42C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start PlayerItem3 -PlayerItem3: @ 0x0801B45C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801B48C @ =gUnk_080B77FC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xb - beq _0801B4AC - ldrb r0, [r4, #0x14] - cmp r0, #6 - bne _0801B490 - adds r1, r4, #0 - adds r1, #0x86 - movs r2, #0x80 - lsls r2, r2, #6 - b _0801B496 - .align 2, 0 -_0801B48C: .4byte gUnk_080B77FC -_0801B490: - adds r1, r4, #0 - adds r1, #0x86 - ldr r2, _0801B4C4 @ =0xFFFFE000 -_0801B496: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_0801B4AC: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0801B4C0 - movs r0, #0xfb - bl EnqueueSFX -_0801B4C0: - pop {r4, pc} - .align 2, 0 -_0801B4C4: .4byte 0xFFFFE000 - - thumb_func_start sub_0801B4C8 -sub_0801B4C8: @ 0x0801B4C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _0801B52C @ =gPlayerState - str r4, [r3, #0x2c] - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0801B530 @ =gUnk_081271CC - str r0, [r4, #0x48] - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x58 - movs r0, #0xb - strb r0, [r1] - ldr r5, _0801B534 @ =gPlayerEntity - str r5, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x86 - strh r2, [r0] - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801B518 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - movs r1, #1 - bics r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0801B518: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xc - bne _0801B538 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x3c - b _0801B540 - .align 2, 0 -_0801B52C: .4byte gPlayerState -_0801B530: .4byte gUnk_081271CC -_0801B534: .4byte gPlayerEntity -_0801B538: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x1e -_0801B540: - strb r0, [r4, #0xe] - ldrb r1, [r3, #0xd] - movs r0, #0xd - ldrsb r0, [r3, r0] - cmp r0, #0 - blt _0801B550 - strb r1, [r4, #0x15] - b _0801B556 -_0801B550: - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_0801B556: - ldrb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _0801B56C - movs r0, #1 - strb r0, [r4, #0xb] -_0801B56C: - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - bl sub_0801B584 - pop {r4, r5, pc} - - thumb_func_start sub_0801B584 -sub_0801B584: @ 0x0801B584 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_0801B804 - ldr r1, _0801B5F8 @ =gPlayerState - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0801B5A8 - ldrb r0, [r1, #0x1a] - cmp r0, #0 - bne _0801B5A8 - ldr r0, [r1, #0x2c] - cmp r0, r6 - bne _0801B5B4 - ldr r0, _0801B5FC @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #1 - beq _0801B5B8 -_0801B5A8: - ldr r1, _0801B5F8 @ =gPlayerState - ldr r0, [r1, #0x2c] - cmp r0, r6 - bne _0801B5B4 - movs r0, #0 - str r0, [r1, #0x2c] -_0801B5B4: - bl DeleteThisEntity -_0801B5B8: - ldr r7, _0801B5FC @ =gPlayerEntity - adds r0, r7, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r3, #1 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801B600 - adds r0, r6, #0 - adds r0, #0x68 - ldrb r0, [r0] - movs r2, #0 - cmp r0, #0xc - bne _0801B5D8 - movs r2, #6 -_0801B5D8: - lsrs r0, r1, #4 - adds r1, r0, r2 - ldrb r0, [r6, #0x1e] - cmp r0, r1 - beq _0801B5EE - strb r1, [r6, #0x1e] - ldrb r1, [r6, #0x1e] - ldrh r2, [r6, #0x12] - adds r0, r6, #0 - bl sub_080042D0 -_0801B5EE: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08078E84 - b _0801B674 - .align 2, 0 -_0801B5F8: .4byte gPlayerState -_0801B5FC: .4byte gPlayerEntity -_0801B600: - movs r5, #0 - movs r0, #2 - strb r0, [r6, #0xc] - adds r1, r6, #0 - adds r1, #0x60 - movs r0, #0xd5 - strh r0, [r1] - ldrb r0, [r6, #0x10] - movs r4, #0x80 - orrs r0, r4 - strb r0, [r6, #0x10] - subs r1, #0x24 - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x3b - ldrb r0, [r0] - adds r2, r6, #0 - adds r2, #0x3b - strb r0, [r2] - movs r0, #0xa6 - strh r0, [r6, #0x12] - ldrb r1, [r6, #0x18] - subs r0, #0xe7 - ands r0, r1 - movs r1, #4 - rsbs r1, r1, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r6, #0x18] - ldrb r1, [r6, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - ldr r2, _0801B678 @ =gUnk_080B7826 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r6, #0x2e] - adds r0, r0, r3 - strh r0, [r6, #0x2e] - adds r1, #1 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r6, #0x32] - adds r0, r6, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _0801B67C @ =gPlayerState - str r5, [r0, #0x2c] - ldrb r1, [r0, #4] - orrs r4, r1 - strb r4, [r0, #4] -_0801B674: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801B678: .4byte gUnk_080B7826 -_0801B67C: .4byte gPlayerState - - thumb_func_start sub_0801B680 -sub_0801B680: @ 0x0801B680 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801B804 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xc - bne _0801B6DC - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0801B6DC - ldr r3, _0801B6C4 @ =gPlayerState - ldrb r1, [r3, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801B6DC - adds r2, r4, #0 - adds r2, #0x83 - ldrb r0, [r2] - ldrb r1, [r3, #0xd] - subs r0, r0, r1 - movs r3, #0x1f - ands r0, r3 - cmp r0, #0x10 - ble _0801B6C8 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, #0x40 - b _0801B6D0 - .align 2, 0 -_0801B6C4: .4byte gPlayerState -_0801B6C8: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - subs r0, #0x40 -_0801B6D0: - strh r0, [r1] - ldrb r1, [r2] - adds r0, r3, #0 - ands r0, r1 - strb r0, [r2] - strb r0, [r4, #0x15] -_0801B6DC: - adds r0, r4, #0 - bl sub_0806F69C - movs r5, #0 - adds r0, r4, #0 - bl sub_0801B864 - cmp r0, #0 - beq _0801B6FE - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - movs r0, #0xc - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r5, r0, #0x1f -_0801B6FE: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0801B780 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0801B784 @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _0801B73C - cmp r5, #0 - bne _0801B790 - ldr r1, _0801B788 @ =gUnk_08003E44 - adds r0, r4, #0 - bl sub_080040E2 - adds r5, r0, #0 -_0801B73C: - cmp r5, #0 - bne _0801B790 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb - bhi _0801B754 - ldrh r0, [r4, #0x24] - subs r0, #0x10 - strh r0, [r4, #0x24] -_0801B754: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0801B75C - movs r5, #1 -_0801B75C: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0801B76C - movs r5, #1 -_0801B76C: - cmp r5, #0 - beq _0801B7A4 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xc - bne _0801B78C - movs r0, #0x1e - b _0801B792 - .align 2, 0 -_0801B780: .4byte gRoomControls -_0801B784: .4byte gPlayerEntity -_0801B788: .4byte gUnk_08003E44 -_0801B78C: - movs r0, #0xc - b _0801B792 -_0801B790: - movs r0, #1 -_0801B792: - strb r0, [r4, #0xe] - cmp r5, #0 - beq _0801B7A4 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_0801B7A4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801B7A8 -sub_0801B7A8: @ 0x0801B7A8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0801B804 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0801B7BC - subs r0, #1 - strb r0, [r5, #0xe] - b _0801B7FA -_0801B7BC: - adds r0, r5, #0 - bl sub_0801B864 - ldrh r2, [r5, #0x24] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldr r0, _0801B7FC @ =0x0000027F - cmp r1, r0 - bgt _0801B7D4 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r5, #0x24] -_0801B7D4: - ldr r4, _0801B800 @ =gPlayerEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl GetFacingDirection - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_0800419C - cmp r0, #0 - beq _0801B7FA - bl DeleteThisEntity -_0801B7FA: - pop {r4, r5, pc} - .align 2, 0 -_0801B7FC: .4byte 0x0000027F -_0801B800: .4byte gPlayerEntity - - thumb_func_start sub_0801B804 -sub_0801B804: @ 0x0801B804 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xc - bl IsItemEquipped - cmp r0, #1 - beq _0801B820 - cmp r0, #1 - blo _0801B81C - cmp r0, #2 - beq _0801B824 - b _0801B826 -_0801B81C: - movs r4, #1 - b _0801B826 -_0801B820: - movs r4, #2 - b _0801B826 -_0801B824: - movs r4, #0 -_0801B826: - ldr r3, _0801B850 @ =gPlayerState - adds r0, r3, #0 - adds r0, #0x90 - ldrh r0, [r0] - ands r4, r0 - cmp r4, #0 - bne _0801B854 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - ldrb r2, [r3, #0xa] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - ands r1, r0 - strb r1, [r3, #0xb] - b _0801B862 - .align 2, 0 -_0801B850: .4byte gPlayerState -_0801B854: - ldrb r1, [r3, #0xa] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r3, #0xa] - ldrb r1, [r3, #0xb] - orrs r0, r1 - strb r0, [r3, #0xb] -_0801B862: - pop {r4, r5, pc} - - thumb_func_start sub_0801B864 -sub_0801B864: @ 0x0801B864 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0801B874 - adds r0, r4, #0 - bl sub_0800451C -_0801B874: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - lsls r0, r0, #1 - ldr r3, _0801B894 @ =gUnk_080B782E - adds r1, r0, r3 - movs r2, #0 - ldrsb r2, [r1, r2] - adds r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsb r3, [r0, r3] - adds r0, r4, #0 - movs r1, #2 - bl sub_08008782 - pop {r4, pc} - .align 2, 0 -_0801B894: .4byte gUnk_080B782E - - thumb_func_start PlayerItemC -PlayerItemC: @ 0x0801B898 - push {lr} - ldr r2, _0801B8AC @ =gUnk_080B7840 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801B8AC: .4byte gUnk_080B7840 - - thumb_func_start sub_0801B8B0 -sub_0801B8B0: @ 0x0801B8B0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801B8F0 @ =gPlayerState - ldrb r0, [r1, #0x1e] - cmp r0, #0 - beq _0801B8F4 - str r4, [r1, #0x2c] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_08079BD8 - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - bl sub_0801B8FC - b _0801B8F8 - .align 2, 0 -_0801B8F0: .4byte gPlayerState -_0801B8F4: - bl DeleteThisEntity -_0801B8F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801B8FC -sub_0801B8FC: @ 0x0801B8FC - push {lr} - ldr r1, _0801B90C @ =gPlayerState - ldr r2, [r1, #0x2c] - cmp r2, r0 - beq _0801B910 - bl DeleteThisEntity - b _0801B934 - .align 2, 0 -_0801B90C: .4byte gPlayerState -_0801B910: - ldrb r0, [r1, #0x1e] - cmp r0, #0 - bne _0801B91E - str r0, [r1, #0x2c] - bl DeleteThisEntity - b _0801B934 -_0801B91E: - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r1, r2, #0 - adds r1, #0x3c - movs r0, #0x21 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0801B938 -_0801B934: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B938 -sub_0801B938: @ 0x0801B938 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801B960 - ldr r3, _0801B95C @ =gPlayerEntity - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - subs r0, #0x42 - b _0801B96E - .align 2, 0 -_0801B95C: .4byte gPlayerEntity -_0801B960: - ldr r3, _0801B998 @ =gPlayerEntity - ldrb r0, [r3, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 -_0801B96E: - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r0, #0x68 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _0801B99C - ldrb r0, [r3, #0x1e] - adds r0, #0x2e - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 - b _0801B9A0 - .align 2, 0 -_0801B998: .4byte gPlayerEntity -_0801B99C: - movs r0, #0xff - strb r0, [r4, #0x1e] -_0801B9A0: - ldrb r3, [r4, #0x14] - lsrs r3, r3, #1 - lsls r0, r3, #3 - ldr r1, _0801B9E0 @ =gUnk_080B7850 - adds r0, r0, r1 - str r0, [r4, #0x48] - lsls r3, r3, #1 - ldr r0, _0801B9E4 @ =gUnk_080B7848 - adds r3, r3, r0 - ldr r0, _0801B9E8 @ =gPlayerState - adds r0, #0xac - ldrh r0, [r0] - movs r1, #8 - ands r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - rsbs r1, r1, #0 - lsrs r1, r1, #0x1f - movs r2, #0 - ldrsb r2, [r3, r2] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r0, r4, #0 - bl sub_08008782 - ldr r1, _0801B9EC @ =gPlayerEntity - adds r0, r4, #0 - bl sub_08078E84 - pop {r4, pc} - .align 2, 0 -_0801B9E0: .4byte gUnk_080B7850 -_0801B9E4: .4byte gUnk_080B7848 -_0801B9E8: .4byte gPlayerState -_0801B9EC: .4byte gPlayerEntity - - thumb_func_start sub_0801B9F0 -sub_0801B9F0: @ 0x0801B9F0 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - bl sub_08017744 - pop {pc} - - thumb_func_start PlayerItemSwordSpin -PlayerItemSwordSpin: @ 0x0801BA00 - push {lr} - ldr r2, _0801BA14 @ =gUnk_080B7870 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801BA14: .4byte gUnk_080B7870 - - thumb_func_start sub_0801BA18 -sub_0801BA18: @ 0x0801BA18 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - cmp r0, #0x36 - bne _0801BA2A - movs r0, #0x36 - b _0801BA34 -_0801BA2A: - ldrb r1, [r1] - ldr r0, _0801BA4C @ =gSave - adds r0, r0, r1 - adds r0, #0x9a - ldrb r0, [r0] -_0801BA34: - adds r1, r4, #0 - adds r1, #0x6f - strb r0, [r1] - subs r0, #0x20 - cmp r0, #0x11 - bhi _0801BB02 - lsls r0, r0, #2 - ldr r1, _0801BA50 @ =_0801BA54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BA4C: .4byte gSave -_0801BA50: .4byte _0801BA54 -_0801BA54: @ jump table - .4byte _0801BA9C @ case 0 - .4byte _0801BAF8 @ case 1 - .4byte _0801BAF8 @ case 2 - .4byte _0801BAF8 @ case 3 - .4byte _0801BAF8 @ case 4 - .4byte _0801BAF8 @ case 5 - .4byte _0801BB02 @ case 6 - .4byte _0801BB02 @ case 7 - .4byte _0801BB02 @ case 8 - .4byte _0801BAF8 @ case 9 - .4byte _0801BAF8 @ case 10 - .4byte _0801BAF8 @ case 11 - .4byte _0801BAF8 @ case 12 - .4byte _0801BAF8 @ case 13 - .4byte _0801BAF8 @ case 14 - .4byte _0801BB02 @ case 15 - .4byte _0801BB02 @ case 16 - .4byte _0801BB02 @ case 17 -_0801BA9C: - adds r0, r4, #0 - bl AllocMutableHitbox - cmp r0, #0 - beq _0801BB26 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r1, _0801BAF4 @ =gPlayerEntity - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - movs r2, #0x20 - adds r3, r4, #0 - adds r3, #0x3c - orrs r0, r2 - strb r0, [r3] - adds r1, #0x3b - ldrb r0, [r1] - adds r1, r4, #0 - adds r1, #0x3b - strb r0, [r1] - adds r1, #5 - movs r0, #0x1f - strb r0, [r1] - movs r0, #1 - strb r0, [r4, #0xa] - movs r0, #0x20 - strb r0, [r4, #0xb] - movs r0, #0x52 - strb r0, [r4, #0xe] - movs r0, #0x1b - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0801766C - movs r0, #0xee - lsls r0, r0, #1 - bl SoundReq - b _0801BB0A - .align 2, 0 -_0801BAF4: .4byte gPlayerEntity -_0801BAF8: - movs r0, #0xd5 - strb r0, [r4, #0xe] - movs r0, #0x3c - strb r0, [r4, #0xf] - b _0801BB0A -_0801BB02: - movs r1, #0 - movs r0, #0x37 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] -_0801BB0A: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldr r0, _0801BB28 @ =gPlayerState - str r4, [r0, #0x2c] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_0801BB2C -_0801BB26: - pop {r4, pc} - .align 2, 0 -_0801BB28: .4byte gPlayerState - - thumb_func_start sub_0801BB2C -sub_0801BB2C: @ 0x0801BB2C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0801BB88 @ =gPlayerState - ldr r0, [r0, #0x2c] - cmp r0, r5 - beq _0801BB68 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _0801BB64 - ldrb r0, [r5, #0xb] - cmp r0, #0x20 - beq _0801BB64 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r4, [r0] - subs r4, #0x1c - ldrb r0, [r5, #0xb] - adds r1, r4, #0 - bl SetBottleContents - ldrb r0, [r5, #0xb] - adds r1, r4, #0 - movs r2, #5 - bl sub_080A7C18 - ldr r0, _0801BB8C @ =0x00000109 - bl SoundReq -_0801BB64: - bl DeleteThisEntity -_0801BB68: - ldr r1, _0801BB90 @ =gPlayerEntity - adds r0, r5, #0 - bl sub_0801BDE8 - adds r0, r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0x11 - bhi _0801BC04 - lsls r0, r0, #2 - ldr r1, _0801BB94 @ =_0801BB98 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BB88: .4byte gPlayerState -_0801BB8C: .4byte 0x00000109 -_0801BB90: .4byte gPlayerEntity -_0801BB94: .4byte _0801BB98 -_0801BB98: @ jump table - .4byte _0801BBE0 @ case 0 - .4byte _0801BBE8 @ case 1 - .4byte _0801BBE8 @ case 2 - .4byte _0801BBE8 @ case 3 - .4byte _0801BBE8 @ case 4 - .4byte _0801BBE8 @ case 5 - .4byte _0801BC04 @ case 6 - .4byte _0801BC04 @ case 7 - .4byte _0801BC04 @ case 8 - .4byte _0801BBE8 @ case 9 - .4byte _0801BBE8 @ case 10 - .4byte _0801BBE8 @ case 11 - .4byte _0801BBE8 @ case 12 - .4byte _0801BBE8 @ case 13 - .4byte _0801BBE8 @ case 14 - .4byte _0801BC04 @ case 15 - .4byte _0801BC04 @ case 16 - .4byte _0801BC04 @ case 17 -_0801BBE0: - adds r0, r5, #0 - bl sub_0801BC0C - b _0801BC0A -_0801BBE8: - ldr r0, _0801BC00 @ =gPlayerEntity - adds r1, r0, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0801BC0A - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - bl sub_0801BC14 - b _0801BC0A - .align 2, 0 -_0801BC00: .4byte gPlayerEntity -_0801BC04: - adds r0, r5, #0 - bl sub_0801BCB4 -_0801BC0A: - pop {r4, r5, pc} - - thumb_func_start sub_0801BC0C -sub_0801BC0C: @ 0x0801BC0C - push {lr} - bl sub_0801BE38 - pop {pc} - - thumb_func_start sub_0801BC14 -sub_0801BC14: @ 0x0801BC14 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0x20 - movs r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - subs r0, #0x21 - cmp r0, #0xd - bhi _0801BC98 - lsls r0, r0, #2 - ldr r1, _0801BC30 @ =_0801BC34 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BC30: .4byte _0801BC34 -_0801BC34: @ jump table - .4byte _0801BC76 @ case 0 - .4byte _0801BC6C @ case 1 - .4byte _0801BC6E @ case 2 - .4byte _0801BC76 @ case 3 - .4byte _0801BC72 @ case 4 - .4byte _0801BC98 @ case 5 - .4byte _0801BC98 @ case 6 - .4byte _0801BC98 @ case 7 - .4byte _0801BC7A @ case 8 - .4byte _0801BC7A @ case 9 - .4byte _0801BC7A @ case 10 - .4byte _0801BC7A @ case 11 - .4byte _0801BC7A @ case 12 - .4byte _0801BC7A @ case 13 -_0801BC6C: - movs r6, #0x23 -_0801BC6E: - movs r5, #0x28 - b _0801BC98 -_0801BC72: - movs r5, #0x50 - b _0801BC98 -_0801BC76: - movs r5, #0xa0 - b _0801BC98 -_0801BC7A: - ldr r1, _0801BCB0 @ =gSave - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r2, r1, #0 - adds r2, #0xb3 - strb r0, [r2] - adds r1, #0xc6 - movs r0, #0xe1 - lsls r0, r0, #2 - strh r0, [r1] - movs r0, #0x88 - lsls r0, r0, #2 - bl SoundReq -_0801BC98: - adds r0, r5, #0 - bl ModHealth - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - subs r1, #0x1c - adds r0, r6, #0 - bl SetBottleContents - pop {r4, r5, r6, pc} - .align 2, 0 -_0801BCB0: .4byte gSave - - thumb_func_start sub_0801BCB4 -sub_0801BCB4: @ 0x0801BCB4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0801BCEC @ =gPlayerEntity - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _0801BD6C - adds r0, r4, #0 - adds r0, #0x6f - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x36 - beq _0801BCDA - subs r0, #7 - ldrb r1, [r0] - subs r1, #0x1c - movs r0, #0x20 - bl SetBottleContents -_0801BCDA: - ldrb r0, [r5] - subs r0, #0x26 - cmp r0, #0xb - bhi _0801BD6C - lsls r0, r0, #2 - ldr r1, _0801BCF0 @ =_0801BCF4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BCEC: .4byte gPlayerEntity -_0801BCF0: .4byte _0801BCF4 -_0801BCF4: @ jump table - .4byte _0801BD24 @ case 0 - .4byte _0801BD32 @ case 1 - .4byte _0801BD40 @ case 2 - .4byte _0801BD6C @ case 3 - .4byte _0801BD6C @ case 4 - .4byte _0801BD6C @ case 5 - .4byte _0801BD6C @ case 6 - .4byte _0801BD6C @ case 7 - .4byte _0801BD6C @ case 8 - .4byte _0801BD54 @ case 9 - .4byte _0801BD54 @ case 10 - .4byte _0801BD54 @ case 11 -_0801BD24: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - b _0801BD6C -_0801BD32: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #1 - movs r3, #1 - bl CreateObjectWithParent - b _0801BD6C -_0801BD40: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #2 - movs r3, #2 - bl CreateObjectWithParent - movs r0, #0x20 - bl ModHealth - b _0801BD6C -_0801BD54: - ldr r1, _0801BD88 @ =gSave - ldrb r0, [r5] - adds r2, r1, #0 - adds r2, #0xb2 - strb r0, [r2] - adds r1, #0xc4 - movs r0, #0xe1 - lsls r0, r0, #4 - strh r0, [r1] - ldr r0, _0801BD8C @ =0x000001CF - bl SoundReq -_0801BD6C: - ldr r0, _0801BD90 @ =gPlayerEntity - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #2 - bne _0801BDAE - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - cmp r0, #0x26 - beq _0801BD94 - cmp r0, #0x27 - beq _0801BDA2 - b _0801BDAE - .align 2, 0 -_0801BD88: .4byte gSave -_0801BD8C: .4byte 0x000001CF -_0801BD90: .4byte gPlayerEntity -_0801BD94: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - b _0801BDAE -_0801BDA2: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #1 - movs r3, #1 - bl CreateObjectWithParent -_0801BDAE: - ldr r0, _0801BDC8 @ =gPlayerEntity - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #3 - bne _0801BDE6 - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - cmp r0, #0x26 - beq _0801BDCC - cmp r0, #0x27 - beq _0801BDDA - b _0801BDE6 - .align 2, 0 -_0801BDC8: .4byte gPlayerEntity -_0801BDCC: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - b _0801BDE6 -_0801BDDA: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent -_0801BDE6: - pop {r4, r5, pc} - - thumb_func_start sub_0801BDE8 -sub_0801BDE8: @ 0x0801BDE8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x1e] - ldrb r1, [r4, #0xe] - subs r0, r0, r1 - ldrb r1, [r4, #0xf] - adds r0, r0, r1 - ldrb r1, [r4, #0x1e] - cmp r0, r1 - beq _0801BE0A - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_0801BE0A: - ldrb r1, [r5, #0x18] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - movs r2, #1 - ands r0, r2 - eors r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r1, _0801BE34 @ =gPlayerEntity - adds r0, r4, #0 - bl sub_08078E84 - pop {r4, r5, pc} - .align 2, 0 -_0801BE34: .4byte gPlayerEntity - - thumb_func_start sub_0801BE38 -sub_0801BE38: @ 0x0801BE38 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r0, [r2] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0x49 - beq _0801BE54 - cmp r1, #0x4d - beq _0801BE60 - movs r0, #0 - strb r0, [r2] - b _0801BE6A -_0801BE54: - movs r0, #0x28 - strb r0, [r4, #0xb] - adds r0, r4, #0 - bl sub_0801B9F0 - b _0801BE6A -_0801BE60: - movs r0, #0x27 - strb r0, [r4, #0xb] - adds r0, r4, #0 - bl sub_0801B9F0 -_0801BE6A: - ldrb r0, [r4, #0x1e] - subs r0, #0x1b - lsls r0, r0, #2 - ldr r1, _0801BE84 @ =gUnk_080B788A - adds r2, r0, r1 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0801BE88 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - rsbs r0, r0, #0 - b _0801BE8C - .align 2, 0 -_0801BE84: .4byte gUnk_080B788A -_0801BE88: - ldr r1, [r4, #0x48] - ldrb r0, [r2] -_0801BE8C: - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #2] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #3] - strb r0, [r1, #7] - ldr r0, _0801BEF0 @ =gPlayerEntity - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - beq _0801BEDE - ldrb r0, [r4, #0xb] - cmp r0, #0x20 - bne _0801BEE4 - subs r0, r1, #1 - lsls r0, r0, #1 - ldr r1, _0801BEF4 @ =gUnk_080B7878 - adds r2, r0, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0801BECA - rsbs r1, r1, #0 -_0801BECA: - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r0, r4, #0 - bl sub_080002B4 - cmp r0, #0x10 - bne _0801BEDE - movs r0, #0x26 - strb r0, [r4, #0xb] -_0801BEDE: - ldrb r0, [r4, #0xb] - cmp r0, #0x20 - beq _0801BEEE -_0801BEE4: - ldr r2, _0801BEF0 @ =gPlayerEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_0801BEEE: - pop {r4, pc} - .align 2, 0 -_0801BEF0: .4byte gPlayerEntity -_0801BEF4: .4byte gUnk_080B7878 diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index c311d49e..ddd2df0f 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -206,233 +206,9 @@ _08054A34: _08054A38: .4byte gUnk_080FE320 _08054A3C: .4byte gUnk_0811E454 - thumb_func_start PlayerItemLantern -PlayerItemLantern: @ 0x08054A40 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08054A5C @ =gUnk_080FEEA8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x41 - movs r0, #0 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08054A5C: .4byte gUnk_080FEEA8 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/playerItem/playerItemLantern.inc" - thumb_func_start sub_08054A60 -sub_08054A60: @ 0x08054A60 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0xa0 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - subs r1, #1 - movs r0, #0x80 - strb r0, [r1] - ldr r0, _08054AC4 @ =gPlayerEntity - ldrb r1, [r0, #0x14] - movs r0, #0xe - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl AllocMutableHitbox - cmp r0, #0 - bne _08054AAC - bl DeleteThisEntity -_08054AAC: - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_08054AC8 - pop {r4, pc} - .align 2, 0 -_08054AC4: .4byte gPlayerEntity - - thumb_func_start sub_08054AC8 -sub_08054AC8: @ 0x08054AC8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, _08054B14 @ =gPlayerEntity - ldrb r1, [r5, #0x14] - movs r0, #0xe - ands r0, r1 - strb r0, [r4, #0x14] - ldr r1, [r4, #0x48] - ldr r2, _08054B18 @ =gUnk_080FEEB0 - ldrb r0, [r4, #0x14] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r4, #0x14] - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1, #1] - ldr r0, [r4, #0x48] - movs r1, #4 - strb r1, [r0, #6] - ldr r0, [r4, #0x48] - strb r1, [r0, #7] - ldrb r7, [r5, #0x1e] - adds r6, r7, #0 - cmp r6, #0x36 - bhi _08054B06 - ldrh r0, [r5, #0x12] - cmp r0, #6 - beq _08054B1C -_08054B06: - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08054B68 - .align 2, 0 -_08054B14: .4byte gPlayerEntity -_08054B18: .4byte gUnk_080FEEB0 -_08054B1C: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r2, [r5, #0x18] - movs r1, #0x40 - ands r1, r2 - ldrb r3, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - lsrs r2, r2, #7 - lsls r2, r2, #7 - movs r1, #0x7f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0x1e] - cmp r6, r0 - beq _08054B52 - strb r7, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08054B52: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x5a - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] -_08054B68: - movs r0, #0x10 - bl IsItemEquipped - cmp r0, #1 - bhi _08054BFC - ldrb r0, [r4, #0x1e] - cmp r0, #0xff - beq _08054BE8 - ldr r0, _08054BF4 @ =gPlayerEntity - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08054BE8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08054BE8 - movs r0, #4 - strb r0, [r4, #0xe] - movs r0, #0x45 - movs r1, #0 - movs r2, #0x10 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _08054BE8 - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r3, r5, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldr r1, _08054BF8 @ =gUnk_080FEEB0 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r0, [r2] - ldrb r0, [r4, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] -_08054BE8: - ldr r1, _08054BF4 @ =gPlayerEntity - adds r0, r4, #0 - bl sub_08078E84 - b _08054C00 - .align 2, 0 -_08054BF4: .4byte gPlayerEntity -_08054BF8: .4byte gUnk_080FEEB0 -_08054BFC: - bl DeleteThisEntity -_08054C00: - pop {r4, r5, r6, r7, pc} - .align 2, 0 thumb_func_start sub_08054C04 sub_08054C04: @ 0x08054C04 diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index 8552f4f9..e99d327a 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -843,611 +843,11 @@ GetSpriteSubEntryOffsetDataPointer: @ 0x080700C8 bx lr .align 2, 0 _080700E4: .4byte gUnk_089FB780 + + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/playerItem/playerItem12.inc" - thumb_func_start PlayerItem12 -PlayerItem12: @ 0x080700E8 - push {lr} - ldr r2, _080700FC @ =gUnk_0811B98C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080700FC: .4byte gUnk_0811B98C - - thumb_func_start sub_08070100 -sub_08070100: @ 0x08070100 - push {r4, r5, lr} - adds r5, r0, #0 - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #0x40 - str r0, [r5, #0x74] - movs r0, #0xf0 - lsls r0, r0, #1 - str r0, [r5, #0x78] - ldr r2, _0807017C @ =gPlayerEntity - ldr r1, _08070180 @ =gUnk_0811B9A0 - ldrb r0, [r5, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r4, [r2, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] - ldrb r0, [r5, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - subs r1, #1 - movs r0, #0x8a - strb r0, [r1] - ldr r0, _08070184 @ =gUnk_0811B9D0 - str r0, [r5, #0x48] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _08070188 - strb r3, [r5, #0xa] - b _0807018C - .align 2, 0 -_0807017C: .4byte gPlayerEntity -_08070180: .4byte gUnk_0811B9A0 -_08070184: .4byte gUnk_0811B9D0 -_08070188: - movs r0, #0 - strb r0, [r5, #0xa] -_0807018C: - ldrb r1, [r2, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r3, [r5, #0x14] - lsrs r3, r3, #1 - lsls r3, r3, #3 - ldr r0, _080701F0 @ =gUnk_0811B9A8 - adds r3, r3, r0 - ldrb r1, [r3] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r5, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r1, [r3, #1] - lsls r1, r1, #7 - movs r2, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r3, #4] - adds r4, r5, #0 - adds r4, #0x58 - strb r0, [r4] - movs r0, #2 - ldrsb r0, [r3, r0] - str r0, [r5, #0x6c] - movs r0, #3 - ldrsb r0, [r3, r0] - str r0, [r5, #0x70] - adds r0, r5, #0 - bl sub_0801766C - ldrb r1, [r4] - adds r0, r5, #0 - bl InitializeAnimation - ldr r0, _080701F4 @ =0x000001DD - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_080701F0: .4byte gUnk_0811B9A8 -_080701F4: .4byte 0x000001DD - - thumb_func_start sub_080701F8 -sub_080701F8: @ 0x080701F8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, _08070244 @ =gUnk_0811B9C8 - ldrb r1, [r5, #0x14] - adds r2, r1, r0 - movs r6, #0 - ldrsb r6, [r2, r6] - adds r1, #1 - adds r1, r1, r0 - movs r7, #0 - ldrsb r7, [r1, r7] - adds r0, r5, #0 - movs r1, #0xa - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_08008782 - adds r4, r0, #0 - cmp r4, #0 - beq _08070248 - ldrb r1, [r4, #5] - ldrb r2, [r4, #2] - movs r0, #0x53 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08070260 - ldrb r0, [r4, #3] - strb r0, [r1, #0xe] - ldrh r0, [r5, #0x2e] - adds r0, r0, r6 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, r0, r7 - strh r0, [r1, #0x32] - b _08070260 - .align 2, 0 -_08070244: .4byte gUnk_0811B9C8 -_08070248: - ldr r0, [r5, #0x74] - subs r0, #1 - str r0, [r5, #0x74] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _08070260 - ldr r0, [r5, #0x78] - subs r0, #1 - str r0, [r5, #0x78] - cmp r0, r1 - bne _08070268 -_08070260: - adds r0, r5, #0 - bl sub_08070458 - b _0807037A -_08070268: - adds r0, r5, #0 - bl GetNextFrame - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08070280 - adds r0, r5, #0 - bl sub_0800451C -_08070280: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _08070354 @ =gRoomControls - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r6, #0x3f - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _08070358 @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _0807036A - ldr r1, _0807035C @ =gUnk_08003E44 - movs r3, #0x2e - ldrsh r2, [r5, r3] - movs r0, #0x32 - ldrsh r3, [r5, r0] - adds r0, r5, #0 - bl sub_080040D8 - cmp r0, #0 - bne _08070364 - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0x19 - bne _0807036A - movs r0, #4 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldrh r2, [r5, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - ands r1, r0 - orrs r1, r2 - strh r1, [r5, #0x32] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - str r0, [r5, #0x7c] - adds r0, r5, #0 - movs r1, #0x14 - bl InitializeAnimation - ldr r0, _08070360 @ =0x00004020 - movs r3, #0x2e - ldrsh r1, [r5, r3] - ldrh r2, [r7, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r5, r3] - ldrh r3, [r7, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r4] - bl SetTile - b _0807037A - .align 2, 0 -_08070354: .4byte gRoomControls -_08070358: .4byte gPlayerEntity -_0807035C: .4byte gUnk_08003E44 -_08070360: .4byte 0x00004020 -_08070364: - adds r0, r5, #0 - bl sub_08070458 -_0807036A: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _0807037A - adds r0, r5, #0 - bl sub_08070458 -_0807037A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807037C -sub_0807037C: @ 0x0807037C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08070394 - bl DeleteThisEntity -_08070394: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08070398 -sub_08070398: @ 0x08070398 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080703B8 - bl DeleteThisEntity -_080703B8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080703BC -sub_080703BC: @ 0x080703BC - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08070404 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _08070408 @ =0x00004021 - cmp r1, r0 - beq _0807042E - cmp r1, r0 - bhi _0807040C - subs r0, #1 - cmp r1, r0 - beq _08070420 - b _08070412 - .align 2, 0 -_08070404: .4byte gRoomControls -_08070408: .4byte 0x00004021 -_0807040C: - ldr r0, _08070418 @ =0x00004070 - cmp r1, r0 - beq _0807041C -_08070412: - movs r0, #0 - str r0, [r4, #0x7c] - b _0807042E - .align 2, 0 -_08070418: .4byte 0x00004070 -_0807041C: - movs r0, #0xff - str r0, [r4, #0x78] -_08070420: - ldr r0, [r4, #0x78] - subs r0, #1 - str r0, [r4, #0x78] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08070436 -_0807042E: - adds r0, r4, #0 - bl sub_08070458 - b _08070454 -_08070436: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - cmp r1, #0 - beq _08070454 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0807044E - ldrb r0, [r4, #0xc] - cmp r0, #0x1a - bne _08070454 -_0807044E: - adds r0, r4, #0 - bl sub_08070458 -_08070454: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08070458 -sub_08070458: @ 0x08070458 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] - ldr r5, [r4, #0x7c] - cmp r5, #0 - beq _0807049E - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080704B4 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl SetTile -_0807049E: - adds r0, r4, #0 - movs r1, #0x13 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_08017744 - ldr r0, _080704B8 @ =0x00000199 - bl SoundReq - pop {r4, r5, r6, pc} - .align 2, 0 -_080704B4: .4byte gRoomControls -_080704B8: .4byte 0x00000199 - - thumb_func_start PlayerItemPacciCane -PlayerItemPacciCane: @ 0x080704BC - push {lr} - ldr r2, _080704D0 @ =gUnk_0811B9D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080704D0: .4byte gUnk_0811B9D8 - - thumb_func_start sub_080704D4 -sub_080704D4: @ 0x080704D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - movs r0, #0x87 - lsls r0, r0, #1 - bl SoundReq - adds r0, r4, #0 - bl sub_080704FC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080704FC -sub_080704FC: @ 0x080704FC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0807052C @ =gPlayerEntity - adds r0, r5, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x80 - ands r0, r2 - ldr r1, _08070530 @ =gPlayerState - cmp r0, #0 - bne _08070518 - ldr r0, [r1, #0x2c] - cmp r4, r0 - beq _08070534 -_08070518: - ldr r0, [r1, #0x2c] - cmp r4, r0 - bne _08070522 - movs r0, #0 - str r0, [r1, #0x2c] -_08070522: - adds r0, r4, #0 - bl DeleteEntity - b _08070566 - .align 2, 0 -_0807052C: .4byte gPlayerEntity -_08070530: .4byte gPlayerState -_08070534: - movs r0, #0xf - ands r0, r2 - cmp r0, #0xf - beq _08070562 - ldrb r1, [r5, #0x1e] - adds r0, #0x91 - subs r0, r1, r0 - ldrb r2, [r4, #0x1e] - cmp r0, r2 - beq _08070558 - adds r0, r1, #0 - adds r0, #0x6f - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08070558: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078E84 - b _08070566 -_08070562: - movs r0, #0xff - strb r0, [r4, #0x1e] -_08070566: - ldr r2, _08070580 @ =gPlayerEntity - ldrb r1, [r2, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08070584 - ldrb r0, [r2, #0x18] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x1f - movs r0, #1 - eors r2, r0 - b _0807058A - .align 2, 0 -_08070580: .4byte gPlayerEntity -_08070584: - ldrb r0, [r2, #0x18] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x1f -_0807058A: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - pop {r4, r5, pc} - .align 2, 0 + .include "asm/playerItem/playerItemPacciCane.inc" thumb_func_start sub_0807059C sub_0807059C: @ 0x0807059C diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index 8fd960d9..e6d883b9 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -397,590 +397,10 @@ _080A2D6E: pop {r4, r5, r6, r7, pc} .align 2, 0 - thumb_func_start PlayerItemShield -PlayerItemShield: @ 0x080A2D74 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x6c] - cmp r0, #0 - beq _080A2D82 - subs r0, #1 - str r0, [r2, #0x6c] -_080A2D82: - ldr r0, _080A2D94 @ =gUnk_081271D4 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A2D94: .4byte gUnk_081271D4 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/playerItem/playerItemShield.inc" - thumb_func_start sub_080A2D98 -sub_080A2D98: @ 0x080A2D98 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080A2DD0 @ =gPlayerState - str r4, [r0, #0x2c] - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xe - bne _080A2DD8 - movs r0, #0x27 - str r0, [r4, #0x70] - ldr r1, _080A2DD4 @ =gUnk_081271DC - ldrb r0, [r1, #1] - str r0, [r4, #0x78] - str r2, [r4, #0x74] - str r1, [r4, #0x7c] - b _080A2DDA - .align 2, 0 -_080A2DD0: .4byte gPlayerState -_080A2DD4: .4byte gUnk_081271DC -_080A2DD8: - str r2, [r4, #0x70] -_080A2DDA: - ldr r0, _080A2DFC @ =gPlayerEntity - ldrb r1, [r0, #0x14] - movs r0, #0xe - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08079BD8 - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_080A2E00 - pop {r4, pc} - .align 2, 0 -_080A2DFC: .4byte gPlayerEntity - - thumb_func_start sub_080A2E00 -sub_080A2E00: @ 0x080A2E00 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _080A2E90 @ =gPlayerEntity - mov ip, r0 - mov r1, ip - adds r1, #0x3d - ldrb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A2E1A - lsrs r0, r0, #0x18 - cmp r0, #0x81 - bne _080A2E40 -_080A2E1A: - adds r5, r4, #0 - adds r5, #0x3d - ldrb r0, [r5] - movs r2, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - mov r1, ip - adds r1, #0x3e - strb r0, [r1] - adds r3, r4, #0 - adds r3, #0x42 - ldrb r1, [r3] - mov r0, ip - adds r0, #0x42 - strb r1, [r0] - strb r2, [r3] - strb r2, [r5] -_080A2E40: - ldr r0, _080A2E94 @ =gPlayerState - ldrb r3, [r0, #3] - adds r7, r0, #0 - cmp r3, #0 - beq _080A2F20 - ldr r0, [r7, #0x2c] - cmp r4, r0 - bne _080A2F20 - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _080A2E9C - ldr r1, _080A2E98 @ =gUnk_08127240 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - ldr r0, _080A2E90 @ =gPlayerEntity - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - movs r1, #0x20 - adds r2, r4, #0 - adds r2, #0x3c - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x7f - ands r0, r3 - strb r0, [r7, #3] - adds r0, r4, #0 - bl sub_080176E4 - b _080A2F30 - .align 2, 0 -_080A2E90: .4byte gPlayerEntity -_080A2E94: .4byte gPlayerState -_080A2E98: .4byte gUnk_08127240 -_080A2E9C: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080A2F30 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x42 - bne _080A2F06 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0xe - bne _080A2F06 - movs r0, #0x40 - ands r0, r3 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080A2F06 - ldrb r3, [r5] - movs r0, #0x15 - movs r1, #0 - movs r2, #0 - bl CreatePlayerItem - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _080A2EF4 - movs r0, #1 - strb r0, [r1, #0xf] - ldr r2, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] -_080A2EF4: - ldr r1, _080A2F1C @ =gUnk_08127220 - ldrb r0, [r1, #1] - str r0, [r4, #0x78] - str r6, [r4, #0x74] - str r1, [r4, #0x7c] - ldrb r0, [r7, #3] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r7, #3] -_080A2F06: - ldr r0, [r4, #0x6c] - cmp r0, #0 - bne _080A2F30 - movs r0, #0x8c - lsls r0, r0, #1 - bl SoundReq - movs r0, #8 - str r0, [r4, #0x6c] - b _080A2F30 - .align 2, 0 -_080A2F1C: .4byte gUnk_08127220 -_080A2F20: - movs r1, #0 - strb r1, [r7, #3] - ldr r0, [r7, #0x2c] - cmp r0, r4 - bne _080A2F2C - str r1, [r7, #0x2c] -_080A2F2C: - bl DeleteThisEntity -_080A2F30: - ldr r6, _080A301C @ =gPlayerEntity - ldrh r0, [r6, #0x12] - cmp r0, #1 - beq _080A2F3E - cmp r0, #4 - beq _080A2F3E - b _080A3064 -_080A2F3E: - ldrb r0, [r6, #0x1e] - subs r0, #0x25 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3e - bls _080A2F4C - b _080A3064 -_080A2F4C: - ldrb r2, [r6, #0x18] - movs r1, #0x40 - ands r1, r2 - ldrb r3, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - lsrs r2, r2, #7 - lsls r2, r2, #7 - movs r3, #0x7f - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r2, [r6, #0x1e] - ldr r1, [r4, #0x70] - adds r0, r1, #0 - subs r0, #0x25 - adds r0, r2, r0 - adds r5, r4, #0 - adds r5, #0x68 - ldrb r7, [r4, #0x1e] - cmp r0, r7 - beq _080A2FA2 - adds r0, r1, #0 - adds r0, #0xdb - adds r0, r2, r0 - strb r0, [r4, #0x1e] - ldrb r0, [r5] - cmp r0, #0xe - bne _080A2F98 - adds r0, r6, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _080A2FA2 -_080A2F98: - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_080A2FA2: - ldrb r0, [r5] - cmp r0, #0xe - bne _080A303E - ldr r0, _080A301C @ =gPlayerEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080A303E - ldr r0, [r4, #0x78] - subs r3, r0, #1 - str r3, [r4, #0x78] - cmp r3, #0 - bne _080A303E - ldr r0, [r4, #0x74] - adds r0, #1 - str r0, [r4, #0x74] - lsls r0, r0, #2 - ldr r1, [r4, #0x7c] - adds r2, r1, r0 - ldrb r0, [r2] - ldr r7, _080A3020 @ =gPlayerState - cmp r0, #0xff - bne _080A2FEC - ldrb r1, [r7, #3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A2FE8 - ldr r0, _080A3024 @ =gUnk_081271DC - str r0, [r4, #0x7c] - movs r0, #0xbf - ands r0, r1 - strb r0, [r7, #3] -_080A2FE8: - str r3, [r4, #0x74] - ldr r1, [r4, #0x7c] -_080A2FEC: - ldr r0, [r4, #0x74] - lsls r0, r0, #2 - adds r2, r1, r0 - ldrb r0, [r2, #1] - str r0, [r4, #0x78] - ldrb r1, [r7, #3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A3028 - ldr r0, _080A301C @ =gPlayerEntity - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - adds r1, #8 - ldrb r2, [r2] - adds r1, r1, r2 - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 - b _080A303E - .align 2, 0 -_080A301C: .4byte gPlayerEntity -_080A3020: .4byte gPlayerState -_080A3024: .4byte gUnk_081271DC -_080A3028: - ldr r0, _080A3060 @ =gPlayerEntity - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r2, [r2] - adds r1, r1, r2 - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_080A303E: - ldr r1, _080A3060 @ =gPlayerEntity - adds r0, r1, #0 - adds r0, #0x5a - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x5a - strb r0, [r2] - adds r0, r1, #0 - adds r0, #0x5b - ldrb r0, [r0] - adds r2, #1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08078E84 - b _080A3068 - .align 2, 0 -_080A3060: .4byte gPlayerEntity -_080A3064: - movs r0, #0xff - strb r0, [r4, #0x1e] -_080A3068: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start PlayerItem15 -PlayerItem15: @ 0x080A306C - push {lr} - ldr r2, _080A3080 @ =gUnk_08127270 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A3080: .4byte gUnk_08127270 - - thumb_func_start sub_080A3084 -sub_080A3084: @ 0x080A3084 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r5, #1 - strb r5, [r4, #0xc] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080A30F8 - ldr r0, _080A30EC @ =gPlayerEntity - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - adds r1, r4, #0 - adds r1, #0x3c - strb r0, [r1] - ldr r0, _080A30F0 @ =gUnk_08127278 - str r0, [r4, #0x48] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _080A30CC - strb r5, [r4, #0xb] -_080A30CC: - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - movs r0, #0x3c - str r0, [r4, #0x6c] - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _080A30F4 @ =0x0000013F - bl SoundReq - b _080A30FC - .align 2, 0 -_080A30EC: .4byte gPlayerEntity -_080A30F0: .4byte gUnk_08127278 -_080A30F4: .4byte 0x0000013F -_080A30F8: - movs r0, #6 - strb r0, [r4, #0xe] -_080A30FC: - adds r0, r4, #0 - movs r1, #0x18 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080A310C - pop {r4, r5, pc} - - thumb_func_start sub_080A310C -sub_080A310C: @ 0x080A310C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A312A - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A3200 - bl DeleteThisEntity - b _080A3200 -_080A312A: - adds r0, r4, #0 - bl GetNextFrame - ldr r0, [r4, #0x6c] - subs r0, #1 - str r0, [r4, #0x6c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _080A31FC - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080A315C - adds r0, r4, #0 - bl sub_0800451C -_080A315C: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _080A31F0 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _080A31F4 @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _080A31AE - ldr r1, _080A31F8 @ =gUnk_08003E44 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r5, #0x32 - ldrsh r3, [r4, r5] - adds r0, r4, #0 - bl sub_080040D8 - cmp r0, #0 - beq _080A31AE - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A31AE: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _080A31C6 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A31C6: - adds r0, r4, #0 - movs r1, #0xc - bl sub_08008790 - cmp r0, #0 - beq _080A31D6 - bl DeleteThisEntity -_080A31D6: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r3, [r0] - movs r0, #0x15 - movs r1, #1 - movs r2, #0 - bl CreatePlayerItem - str r0, [r4, #0x54] - cmp r0, #0 - beq _080A3200 - str r4, [r0, #0x50] - b _080A3200 - .align 2, 0 -_080A31F0: .4byte gRoomControls -_080A31F4: .4byte gPlayerEntity -_080A31F8: .4byte gUnk_08003E44 -_080A31FC: - bl DeleteThisEntity -_080A3200: - pop {r4, r5, pc} - .align 2, 0 + .include "asm/playerItem/playerItem15.inc" thumb_func_start InitSound InitSound: @ 0xInitSound diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index f5a9c67b..a3ce04d6 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -14698,1013 +14698,7 @@ _080ACBC6: .align 2, 0 _080ACBC8: .4byte 0x00000119 - thumb_func_start PlayerItem10 -PlayerItem10: @ 0x080ACBCC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080ACBFC @ =gPlayerState - ldrb r1, [r0, #0x1c] - movs r0, #0x7f - ands r0, r1 - cmp r0, #1 - beq _080ACBE0 - bl DeleteThisEntity -_080ACBE0: - ldr r1, _080ACC00 @ =gUnk_0812AA80 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_080ACBFC: .4byte gPlayerState -_080ACC00: .4byte gUnk_0812AA80 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/playerItem/playerItem10.inc" - thumb_func_start sub_080ACC04 -sub_080ACC04: @ 0x080ACC04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080ACC54 @ =gPlayerEntity - adds r0, #0x3b - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3b - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x10] - movs r0, #0xa0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #2 - strb r0, [r1] - ldr r1, _080ACC58 @ =gUnk_0812AAD8 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - movs r0, #0x10 - str r0, [r4, #0x70] - adds r0, r4, #0 - bl sub_080ACDB0 - adds r0, r4, #0 - bl sub_0801766C - pop {r4, pc} - .align 2, 0 -_080ACC54: .4byte gPlayerEntity -_080ACC58: .4byte gUnk_0812AAD8 - - thumb_func_start sub_080ACC5C -sub_080ACC5C: @ 0x080ACC5C - push {r4, lr} - adds r4, r0, #0 - bl sub_080ACDB0 - cmp r0, #0 - bne _080ACC74 - adds r0, r4, #0 - bl sub_080ACC78 - adds r0, r4, #0 - bl sub_080ACECC -_080ACC74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACC78 -sub_080ACC78: @ 0x080ACC78 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - ldr r0, _080ACD20 @ =gScreenTransition - ldr r0, [r0] - adds r0, r2, r0 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080ACCF8 - ldr r0, _080ACD24 @ =gUnk_0812AAAC - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r7, [r1] - ldr r0, [r4, #0x74] - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080ACCA4 - str r0, [r4, #0x74] -_080ACCA4: - ldr r0, [r4, #0x74] - adds r0, r7, r0 - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08008782 - adds r5, r0, #0 - cmp r5, #0 - beq _080ACCF2 - ldrb r1, [r5, #5] - ldrb r2, [r5, #2] - movs r0, #0x11 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _080ACCF2 - ldrb r0, [r5, #3] - strb r0, [r6, #0xe] - ldr r0, [r4, #0x74] - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - ldr r0, [r4, #0x74] - adds r0, r0, r7 - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r6, #0x32] -_080ACCF2: - ldr r0, [r4, #0x74] - adds r0, #2 - str r0, [r4, #0x74] -_080ACCF8: - ldr r2, [r4, #0x54] - cmp r2, #0 - bne _080ACD08 - ldr r0, [r4, #0x70] - cmp r0, #2 - bls _080ACD08 - movs r0, #1 - str r0, [r4, #0x70] -_080ACD08: - ldr r0, [r4, #0x70] - subs r0, #1 - str r0, [r4, #0x70] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080ACDAE - cmp r2, #0 - bne _080ACD28 - movs r0, #2 - b _080ACD32 - .align 2, 0 -_080ACD20: .4byte gScreenTransition -_080ACD24: .4byte gUnk_0812AAAC -_080ACD28: - ldr r0, _080ACD74 @ =gUnk_0812AABC - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] -_080ACD32: - str r0, [r4, #0x70] - movs r0, #0x17 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _080ACDAE - bl Random - adds r2, r0, #0 - movs r0, #0xf - ands r2, r0 - ldr r3, [r4, #0x48] - ldrb r1, [r3, #6] - cmp r1, r2 - bge _080ACD58 - adds r2, r1, #0 -_080ACD58: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080ACD62 - rsbs r2, r2, #0 -_080ACD62: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080ACD9C - cmp r0, #1 - bgt _080ACD78 - cmp r0, #0 - beq _080ACD82 - b _080ACDAE - .align 2, 0 -_080ACD74: .4byte gUnk_0812AABC -_080ACD78: - cmp r0, #2 - beq _080ACD8C - cmp r0, #3 - beq _080ACDA2 - b _080ACDAE -_080ACD82: - ldrb r0, [r3, #7] - ldrh r1, [r4, #0x32] - subs r1, r1, r0 - strh r1, [r6, #0x32] - b _080ACD94 -_080ACD8C: - ldrh r0, [r4, #0x32] - ldrb r3, [r3, #7] - adds r0, r0, r3 - strh r0, [r6, #0x32] -_080ACD94: - ldrh r0, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r6, #0x2e] - b _080ACDAE -_080ACD9C: - ldrh r0, [r4, #0x2e] - adds r0, r0, r1 - b _080ACDA6 -_080ACDA2: - ldrh r0, [r4, #0x2e] - subs r0, r0, r1 -_080ACDA6: - strh r0, [r6, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r6, #0x32] -_080ACDAE: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080ACDB0 -sub_080ACDB0: @ 0x080ACDB0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080ACDE8 - ldr r2, _080ACDE0 @ =gPlayerEntity - ldr r1, _080ACDE4 @ =gUnk_08126EE4 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r2, #0x32] - adds r0, r0, r2 - b _080ACEB4 - .align 2, 0 -_080ACDE0: .4byte gPlayerEntity -_080ACDE4: .4byte gUnk_08126EE4 -_080ACDE8: - ldrb r2, [r4, #0x14] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080ACE48 - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x32] - subs r1, #3 - strh r1, [r4, #0x32] - movs r1, #4 - ands r1, r2 - adds r3, r0, #0 - cmp r1, #0 - beq _080ACE20 - movs r0, #0x2e - ldrsh r7, [r3, r0] - movs r0, #0x2e - ldrsh r6, [r4, r0] - ldr r1, _080ACE1C @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r0, r2, r1 - ldrb r0, [r0] - rsbs r5, r0, #0 - adds r0, r1, #0 - b _080ACE30 - .align 2, 0 -_080ACE1C: .4byte gUnk_0812AAE8 -_080ACE20: - movs r0, #0x2e - ldrsh r6, [r3, r0] - movs r0, #0x2e - ldrsh r7, [r4, r0] - ldr r0, _080ACE44 @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r1, r2, r0 - ldrb r5, [r1] -_080ACE30: - subs r1, r7, r6 - str r1, [r4, #0x78] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r1 - bhi _080ACE90 - ldrh r0, [r3, #0x2e] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - b _080ACEB6 - .align 2, 0 -_080ACE44: .4byte gUnk_0812AAE8 -_080ACE48: - ldr r1, [r4, #0x50] - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - movs r0, #4 - ands r0, r2 - adds r3, r1, #0 - cmp r0, #0 - beq _080ACE70 - movs r0, #0x32 - ldrsh r6, [r3, r0] - movs r0, #0x32 - ldrsh r7, [r4, r0] - ldr r0, _080ACE6C @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r1, r2, r0 - ldrb r5, [r1] - b _080ACE84 - .align 2, 0 -_080ACE6C: .4byte gUnk_0812AAE8 -_080ACE70: - movs r0, #0x32 - ldrsh r7, [r3, r0] - movs r0, #0x32 - ldrsh r6, [r4, r0] - ldr r1, _080ACEAC @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r0, r2, r1 - ldrb r0, [r0] - rsbs r5, r0, #0 - adds r0, r1, #0 -_080ACE84: - subs r1, r7, r6 - str r1, [r4, #0x78] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r1 - bls _080ACEB0 -_080ACE90: - subs r0, r0, r1 - lsls r1, r0, #8 - strh r1, [r4, #0x24] - lsls r0, r0, #0x18 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #2 - cmp r0, r1 - ble _080ACEA4 - strh r1, [r4, #0x24] -_080ACEA4: - adds r0, r4, #0 - bl sub_080AEFB4 - b _080ACEB6 - .align 2, 0 -_080ACEAC: .4byte gUnk_0812AAE8 -_080ACEB0: - ldrh r0, [r3, #0x32] - adds r0, r0, r5 -_080ACEB4: - strh r0, [r4, #0x32] -_080ACEB6: - ldr r0, _080ACEC8 @ =gPlayerEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - movs r0, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080ACEC8: .4byte gPlayerEntity - - thumb_func_start sub_080ACECC -sub_080ACECC: @ 0x080ACECC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bhi _080ACF0C - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _080ACF0C - ldr r2, [r4, #0x78] - cmp r2, #0 - blt _080ACF0C - ldr r0, _080ACF10 @ =gUnk_0812AAE8 - ldrb r1, [r4, #0xa] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, r2 - bhi _080ACF0C - adds r1, #1 - movs r0, #0x10 - movs r2, #0 - movs r3, #0 - bl CreatePlayerItem - adds r1, r0, #0 - cmp r1, #0 - beq _080ACF0C - str r4, [r1, #0x50] - str r1, [r4, #0x54] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_080ACF0C: - pop {r4, pc} - .align 2, 0 -_080ACF10: .4byte gUnk_0812AAE8 - - thumb_func_start PlayerItem13 -PlayerItem13: @ 0x080ACF14 - push {lr} - ldr r2, _080ACF28 @ =gUnk_081320A8 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ACF28: .4byte gUnk_081320A8 - - thumb_func_start sub_080ACF2C -sub_080ACF2C: @ 0x080ACF2C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldr r0, _080ACF60 @ =gUnk_081320E4 - str r0, [r4, #0x48] - ldr r5, [r4, #0x54] - adds r6, r5, #0 - cmp r5, #0 - beq _080ACF64 - ldr r0, [r5, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r5, #0x30] - str r0, [r4, #0x30] - ldr r0, [r5, #0x34] - str r0, [r4, #0x34] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r0, [r5, #0x16] - strb r0, [r4, #0x16] - b _080ACFB6 - .align 2, 0 -_080ACF60: .4byte gUnk_081320E4 -_080ACF64: - adds r5, r4, #0 - str r4, [r4, #0x54] - movs r0, #2 - strb r0, [r4, #0xc] - ldr r3, _080ACFC8 @ =gUnk_081320B8 - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r6, [r4, #0x16] - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #2] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation - bl sub_08078D60 -_080ACFB6: - ldrb r1, [r5, #8] - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - ldrb r1, [r5, #9] - adds r0, #2 - strh r1, [r0] - pop {r4, r5, r6, pc} - .align 2, 0 -_080ACFC8: .4byte gUnk_081320B8 - - thumb_func_start sub_080ACFCC -sub_080ACFCC: @ 0x080ACFCC - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - adds r0, #0x6c - ldrh r0, [r0] - ldrb r2, [r1, #8] - cmp r0, r2 - beq _080ACFE8 - adds r0, r4, #0 - adds r0, #0x6e - ldrh r0, [r0] - ldrb r2, [r1, #9] - cmp r0, r2 - bne _080AD034 -_080ACFE8: - ldrb r0, [r1, #0xc] - cmp r0, #2 - beq _080ACFF8 - bl sub_08079184 - bl DeleteThisEntity - b _080AD03C -_080ACFF8: - ldr r0, _080AD02C @ =gPlayerState - ldrb r0, [r0, #5] - cmp r0, #0 - beq _080AD00E - ldr r0, _080AD030 @ =gPlayerEntity - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080AD03C -_080AD00E: - adds r0, r4, #0 - bl sub_080AD27C - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r4, #0x15] - str r2, [r4, #0x20] - b _080AD03C - .align 2, 0 -_080AD02C: .4byte gPlayerState -_080AD030: .4byte gPlayerEntity -_080AD034: - bl sub_08079184 - bl DeleteThisEntity -_080AD03C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AD040 -sub_080AD040: @ 0x080AD040 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - ldrb r0, [r5, #0xc] - cmp r0, #2 - beq _080AD050 - bl DeleteThisEntity -_080AD050: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080AD064 - movs r0, #0 - str r0, [r4, #0x34] -_080AD064: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080AD06E - b _080AD220 -_080AD06E: - adds r2, r4, #0 - adds r2, #0x42 - ldrb r1, [r2] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080AD088 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - movs r1, #0 - strb r0, [r4, #0x15] - strb r1, [r2] -_080AD088: - ldr r2, _080AD0B0 @ =gUnk_081320C4 - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002B4 - cmp r0, #0x74 - bne _080AD0B4 - adds r0, r4, #0 - bl sub_0806F69C - b _080AD0C8 - .align 2, 0 -_080AD0B0: .4byte gUnk_081320C4 -_080AD0B4: - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0x24 - beq _080AD0C8 - cmp r0, #0x26 - beq _080AD0C8 - adds r0, r4, #0 - bl sub_080AF00C -_080AD0C8: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _080AD0D8 - b _080AD202 -_080AD0D8: - ldr r0, [r4, #0x20] - str r0, [r5, #0x20] - ldr r0, [r4, #0x2c] - str r0, [r5, #0x2c] - ldr r0, [r4, #0x30] - str r0, [r5, #0x30] - ldr r0, [r4, #0x34] - str r0, [r5, #0x34] - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x11 - bhi _080AD0FC - cmp r0, #0x10 - bhs _080AD104 - cmp r0, #0xd - beq _080AD104 - b _080AD14E -_080AD0FC: - cmp r0, #0x13 - beq _080AD104 - cmp r0, #0x5a - bne _080AD14E -_080AD104: - cmp r5, r4 - bne _080AD146 - cmp r0, #0x11 - bhi _080AD116 - cmp r0, #0x10 - bhs _080AD12C - cmp r0, #0xd - beq _080AD120 - b _080AD142 -_080AD116: - cmp r0, #0x13 - beq _080AD138 - cmp r0, #0x5a - beq _080AD126 - b _080AD142 -_080AD120: - adds r0, r4, #0 - movs r1, #0 - b _080AD130 -_080AD126: - adds r0, r4, #0 - movs r1, #0xc - b _080AD130 -_080AD12C: - adds r0, r4, #0 - movs r1, #0xb -_080AD130: - movs r2, #0 - bl CreateFx - b _080AD142 -_080AD138: - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFx -_080AD142: - movs r0, #4 - b _080AD148 -_080AD146: - movs r0, #3 -_080AD148: - strb r0, [r5, #0xd] - bl DeleteThisEntity -_080AD14E: - ldr r0, [r4, #0x54] - cmp r0, r4 - bne _080AD178 - ldrb r0, [r4, #0xb] - cmp r0, #0xff - beq _080AD1DA - cmp r0, #0xf - bne _080AD16A - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - movs r2, #0x80 - bl CreateFx - b _080AD1DA -_080AD16A: - ldrb r1, [r4, #0xb] - ldrb r2, [r4, #0xe] - adds r0, r4, #0 - movs r3, #0 - bl CreateObjectWithParent - b _080AD1DA -_080AD178: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080AD188 - adds r0, r5, #0 - bl sub_080AD32C - cmp r0, #0 - beq _080AD1E0 -_080AD188: - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _080AD196 - movs r0, #0x82 - lsls r0, r0, #1 - bl SoundReq -_080AD196: - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - movs r0, #3 - strb r0, [r5, #0xd] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r3, r5, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AD1DA: - bl DeleteThisEntity - b _080AD26E -_080AD1E0: - movs r0, #0x82 - lsls r0, r0, #1 - bl SoundReq - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r1, #0x24 - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x24] - b _080AD26E -_080AD202: - adds r0, r4, #0 - bl sub_0800451C - adds r0, r4, #0 - bl sub_0806F8DC - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldr r0, [r4, #0x20] - str r0, [r5, #0x20] - ldrb r0, [r4, #0x15] - strb r0, [r5, #0x15] - b _080AD26E -_080AD220: - ldr r1, _080AD240 @ =gPlayerEntity - adds r0, r1, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r5, #1 - ands r5, r0 - cmp r5, #0 - beq _080AD244 - movs r0, #0x79 - bl SoundReq - adds r0, r4, #0 - bl sub_080AD27C - b _080AD26E - .align 2, 0 -_080AD240: .4byte gPlayerEntity -_080AD244: - ldr r0, _080AD270 @ =gPlayerState - ldrb r0, [r0, #5] - cmp r0, #0 - beq _080AD25A - adds r0, r1, #0 - adds r0, #0x79 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080AD26E -_080AD25A: - adds r0, r4, #0 - bl sub_080AD27C - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #0xff - strb r0, [r4, #0x15] - str r5, [r4, #0x20] -_080AD26E: - pop {r4, r5, pc} - .align 2, 0 -_080AD270: .4byte gPlayerState - - thumb_func_start sub_080AD274 -sub_080AD274: @ 0x080AD274 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_080AD27C -sub_080AD27C: @ 0x080AD27C - push {r4, r5, lr} - adds r3, r0, #0 - ldr r4, [r3, #0x54] - ldr r1, _080AD2AC @ =gPlayerEntity - movs r0, #0 - str r0, [r1, #0x74] - adds r0, r3, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r5, r1, #0 - ldrb r1, [r4, #8] - cmp r0, r1 - bne _080AD320 - adds r0, r3, #0 - adds r0, #0x6e - ldrh r0, [r0] - ldrb r1, [r4, #9] - cmp r0, r1 - bne _080AD320 - cmp r4, r3 - beq _080AD2B0 - movs r0, #2 - strb r0, [r4, #0xd] - b _080AD2C2 - .align 2, 0 -_080AD2AC: .4byte gPlayerEntity -_080AD2B0: - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x18 - orrs r1, r0 - strb r1, [r2] -_080AD2C2: - ldr r0, [r4, #0x48] - str r0, [r3, #0x48] - ldrb r1, [r3, #0x16] - lsrs r1, r1, #4 - ldr r2, _080AD318 @ =gUnk_081320CC - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3, #0x24] - ldr r0, _080AD31C @ =gUnk_081320D4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3, #0x20] - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - strh r0, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrh r0, [r5, #0x32] - strh r0, [r3, #0x32] - ldrh r0, [r5, #0x2e] - strh r0, [r3, #0x2e] - adds r0, r5, #0 - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x3c - strb r1, [r0] - ldrb r1, [r3, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3, #0x10] - adds r0, r3, #0 - bl sub_0801766C - b _080AD328 - .align 2, 0 -_080AD318: .4byte gUnk_081320CC -_080AD31C: .4byte gUnk_081320D4 -_080AD320: - bl sub_08079184 - bl DeleteThisEntity -_080AD328: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AD32C -sub_080AD32C: @ 0x080AD32C - push {lr} - adds r2, r0, #0 - movs r3, #0 - ldrb r1, [r2, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - beq _080AD34C - ldrb r0, [r2, #8] - cmp r0, #6 - bne _080AD34E - ldrb r0, [r2, #9] - cmp r0, #5 - beq _080AD34C - cmp r0, #0x7d - bne _080AD34E -_080AD34C: - movs r3, #1 -_080AD34E: - adds r0, r3, #0 - pop {pc} - .align 2, 0 + .include "asm/playerItem/playerItem13.inc" diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index fd68476c..be4d37c2 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -156,409 +156,13 @@ sub_080ADA14: @ 0x080ADA14 _080ADA28: .4byte gUnk_03006580 _080ADA2C: .4byte gOamCmd - thumb_func_start PlayerItemGustJar -PlayerItemGustJar: @ 0x080ADA30 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080ADA60 @ =gPlayerState - ldr r0, [r1, #0x2c] - cmp r0, r4 - bne _080ADA42 - ldrb r0, [r1, #0x1c] - cmp r0, #0 - bne _080ADA46 -_080ADA42: - bl DeleteThisEntity -_080ADA46: - ldr r1, _080ADA64 @ =gUnk_08132700 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r1, _080ADA68 @ =gPlayerEntity - adds r0, r4, #0 - bl sub_08078E84 - pop {r4, pc} - .align 2, 0 -_080ADA60: .4byte gPlayerState -_080ADA64: .4byte gUnk_08132700 -_080ADA68: .4byte gPlayerEntity + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/playerItem/playerItemGustJar.inc" - thumb_func_start sub_080ADA6C -sub_080ADA6C: @ 0x080ADA6C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xf] - ldr r0, _080ADAA4 @ =gUnk_08132B28 - str r0, [r4, #0x48] - movs r1, #3 - strb r1, [r0, #4] - strb r1, [r0, #3] - movs r1, #6 - strb r1, [r0, #5] - strb r1, [r0, #2] - adds r0, r4, #0 - bl sub_080ADC84 - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl InitAnimationForceUpdate - pop {r4, pc} - .align 2, 0 -_080ADAA4: .4byte gUnk_08132B28 - thumb_func_start sub_080ADAA8 -sub_080ADAA8: @ 0x080ADAA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080ADC84 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ADACC - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_080ADCA0 - b _080ADAD2 -_080ADACC: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080ADAD2: - pop {r4, pc} - thumb_func_start sub_080ADAD4 -sub_080ADAD4: @ 0x080ADAD4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _080ADAF4 @ =gPlayerState - ldrb r1, [r3, #0x1c] - adds r0, r1, #0 - cmp r0, #3 - bne _080ADAFC - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080ADAF8 @ =gPlayerEntity - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - adds r1, #8 - b _080ADB0C - .align 2, 0 -_080ADAF4: .4byte gPlayerState -_080ADAF8: .4byte gPlayerEntity -_080ADAFC: - cmp r0, #6 - bne _080ADB18 - movs r0, #4 - strb r0, [r4, #0xc] - ldr r0, _080ADB14 @ =gPlayerEntity - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_080ADB0C: - adds r0, r4, #0 - bl InitAnimationForceUpdate - b _080ADC08 - .align 2, 0 -_080ADB14: .4byte gPlayerEntity -_080ADB18: - movs r5, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080ADB58 - cmp r0, #1 - bne _080ADB36 - adds r0, r4, #0 - movs r1, #4 - bl sub_080ADCA0 - movs r0, #0x18 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xa] - b _080ADBE0 -_080ADB36: - adds r0, r4, #0 - movs r1, #1 - bl sub_080ADCDC - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080ADBE0 - adds r0, r4, #0 - movs r1, #0 - bl sub_080ADCA0 - strb r5, [r4, #0xa] - b _080ADBE0 -_080ADB58: - movs r0, #0xf - ands r0, r1 - cmp r0, #7 - bne _080ADB68 - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #0x7f - strb r0, [r1] -_080ADB68: - ldrb r0, [r3, #0x1d] - cmp r0, #2 - beq _080ADB94 - cmp r0, #2 - bgt _080ADB78 - cmp r0, #1 - beq _080ADBB0 - b _080ADBCA -_080ADB78: - cmp r0, #3 - bne _080ADBCA - adds r0, r4, #0 - movs r1, #3 - bl sub_080ADCDC - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x1a] - movs r2, #3 - movs r5, #0xe9 - b _080ADBCA -_080ADB94: - adds r0, r4, #0 - movs r1, #2 - bl sub_080ADCDC - ldrb r0, [r4, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r4, #0x1a] - movs r2, #2 - movs r5, #0xe8 - b _080ADBCA -_080ADBB0: - adds r0, r4, #0 - movs r1, #1 - bl sub_080ADCDC - ldrb r0, [r4, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x1a] - movs r2, #1 - movs r5, #0xe7 -_080ADBCA: - ldr r0, _080ADC0C @ =gPlayerState - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #7 - bne _080ADBDA - movs r5, #0xee - movs r2, #1 -_080ADBDA: - ldrb r0, [r4, #0xf] - subs r0, r0, r2 - strb r0, [r4, #0xf] -_080ADBE0: - movs r0, #0xf - ldrsb r0, [r4, r0] - cmp r0, #0 - bge _080ADBF6 - cmp r5, #0 - beq _080ADBF2 - adds r0, r5, #0 - bl SoundReq -_080ADBF2: - movs r0, #0xf - strb r0, [r4, #0xf] -_080ADBF6: - ldr r2, _080ADC10 @ =gPlayerEntity - adds r0, r2, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - ldrb r0, [r2, #0x1e] - subs r0, r0, r1 - strb r0, [r4, #0x1e] -_080ADC08: - pop {r4, r5, pc} - .align 2, 0 -_080ADC0C: .4byte gPlayerState -_080ADC10: .4byte gPlayerEntity - thumb_func_start sub_080ADC14 -sub_080ADC14: @ 0x080ADC14 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080ADC40 @ =gPlayerState - ldrb r0, [r0, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #1 - beq _080ADC48 - cmp r1, #6 - bne _080ADC56 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080ADC44 @ =gPlayerEntity - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - adds r1, #4 - adds r0, r4, #0 - bl InitAnimationForceUpdate - b _080ADC5C - .align 2, 0 -_080ADC40: .4byte gPlayerState -_080ADC44: .4byte gPlayerEntity -_080ADC48: - adds r0, r4, #0 - movs r1, #0 - bl sub_080ADCA0 - movs r0, #2 - strb r0, [r4, #0xc] - b _080ADC5C -_080ADC56: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080ADC5C: - pop {r4, pc} - .align 2, 0 - thumb_func_start sub_080ADC60 -sub_080ADC60: @ 0x080ADC60 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ADC7C - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _080ADC82 -_080ADC7C: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_080ADC82: - pop {pc} - - thumb_func_start sub_080ADC84 -sub_080ADC84: @ 0x080ADC84 - ldr r1, _080ADC9C @ =gPlayerEntity - ldrb r1, [r1, #0x18] - movs r2, #0x40 - ands r2, r1 - ldrb r3, [r0, #0x18] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #0x18] - bx lr - .align 2, 0 -_080ADC9C: .4byte gPlayerEntity - - thumb_func_start sub_080ADCA0 -sub_080ADCA0: @ 0x080ADCA0 - push {r4, lr} - ldr r3, _080ADCD4 @ =gUnk_08132714 - ldr r2, _080ADCD8 @ =gPlayerEntity - ldrb r2, [r2, #0x14] - lsrs r2, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, [r1] - str r2, [r0, #0x5c] - ldrb r1, [r2] - adds r3, r0, #0 - adds r3, #0x58 - strb r1, [r3] - adds r1, r2, #1 - str r1, [r0, #0x5c] - ldrb r2, [r2, #1] - movs r4, #0x59 - strb r2, [r4, r0] - adds r1, #1 - str r1, [r0, #0x5c] - ldrb r1, [r3] - ldrh r2, [r0, #0x12] - bl sub_080042D0 - pop {r4, pc} - .align 2, 0 -_080ADCD4: .4byte gUnk_08132714 -_080ADCD8: .4byte gPlayerEntity - - thumb_func_start sub_080ADCDC -sub_080ADCDC: @ 0x080ADCDC - push {r4, r5, lr} - adds r3, r0, #0 - movs r0, #0x59 - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - subs r0, r0, r1 - mov r1, ip - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _080ADD2E - ldr r1, [r3, #0x5c] - ldrb r0, [r1] - cmp r0, #0xff - bne _080ADD06 - adds r0, r1, #1 - str r0, [r3, #0x5c] - ldrb r1, [r1, #1] - subs r0, r0, r1 - str r0, [r3, #0x5c] -_080ADD06: - ldr r1, [r3, #0x5c] - ldrb r0, [r1] - adds r2, r3, #0 - adds r2, #0x58 - strb r0, [r2] - adds r1, #1 - str r1, [r3, #0x5c] - ldrb r0, [r1] - mov r4, ip - ldrb r4, [r4] - adds r0, r0, r4 - mov r5, ip - strb r0, [r5] - adds r1, #1 - str r1, [r3, #0x5c] - ldrb r1, [r2] - ldrh r2, [r3, #0x12] - adds r0, r3, #0 - bl sub_080042D0 -_080ADD2E: - pop {r4, r5, pc} thumb_func_start sub_080ADD30 sub_080ADD30: @ 0x080ADD30 diff --git a/asm/createBowEntity.s b/asm/createBowEntity.s deleted file mode 100644 index aad3ec59..00000000 --- a/asm/createBowEntity.s +++ /dev/null @@ -1,215 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08018FE4 -sub_08018FE4: @ 0x08018FE4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _08018FF6 - b _080190FC -_08018FF6: - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x6a - str r0, [r4, #0x74] - ldrb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x40 - strb r0, [r1] - movs r0, #0xa6 - strh r0, [r4, #0x12] - ldrb r0, [r1] - adds r6, r1, #0 - cmp r0, #0xe - bne _08019026 - movs r0, #0x80 - lsls r0, r0, #3 - b _0801902A -_08019026: - movs r0, #0xc0 - lsls r0, r0, #2 -_0801902A: - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldr r2, _0801905C @ =gPlayerEntity - adds r0, r2, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - adds r1, r4, #0 - adds r1, #0x3c - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3b - ldrb r0, [r0] - subs r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - adds r5, r2, #0 - cmp r0, #2 - bne _08019060 - movs r0, #1 - b _08019062 - .align 2, 0 -_0801905C: .4byte gPlayerEntity -_08019060: - movs r0, #0 -_08019062: - strb r0, [r4, #0xb] - ldrb r1, [r5, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r0, _080190F8 @ =gUnk_080B3E40 - adds r3, r3, r0 - movs r0, #0 - ldrsb r0, [r3, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r3, r0] - ldrh r5, [r5, #0x32] - adds r0, r0, r5 - strh r0, [r4, #0x32] - ldrb r1, [r3, #2] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r3, #3] - lsls r1, r1, #7 - movs r2, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r3, #6] - adds r5, r4, #0 - adds r5, #0x58 - strb r0, [r5] - movs r0, #4 - ldrsb r0, [r3, r0] - str r0, [r4, #0x6c] - movs r0, #5 - ldrsb r0, [r3, r0] - str r0, [r4, #0x70] - ldr r0, [r3, #8] - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0801766C - ldrb r0, [r6] - cmp r0, #0xe - bne _080190E8 - ldrb r0, [r5] - adds r0, #6 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x60 - movs r0, #0 - strh r0, [r1] -_080190E8: - ldrb r1, [r5] - adds r0, r4, #0 - bl InitializeAnimation - movs r0, #0xfc - bl SoundReq - b _08019178 - .align 2, 0 -_080190F8: .4byte gUnk_080B3E40 -_080190FC: - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldr r2, _08019168 @ =gUnk_080B3E40 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #2] - ands r1, r3 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0801916C @ =gPlayerState - str r4, [r0, #0x2c] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_08079BD8 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xa - bne _08019170 - movs r0, #0x3c - str r0, [r4, #0x78] - ldrb r1, [r4, #0xa] - movs r0, #0x43 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08019172 - adds r0, r4, #0 - bl CopyPosition - b _08019172 - .align 2, 0 -_08019168: .4byte gUnk_080B3E40 -_0801916C: .4byte gPlayerState -_08019170: - str r5, [r4, #0x78] -_08019172: - adds r0, r4, #0 - bl sub_0801917C -_08019178: - pop {r4, r5, r6, pc} - .align 2, 0 diff --git a/asm/playerItem/playerItem10.inc b/asm/playerItem/playerItem10.inc new file mode 100644 index 00000000..b2113b0c --- /dev/null +++ b/asm/playerItem/playerItem10.inc @@ -0,0 +1,443 @@ + thumb_func_start PlayerItem10 +PlayerItem10: @ 0x080ACBCC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080ACBFC @ =gPlayerState + ldrb r1, [r0, #0x1c] + movs r0, #0x7f + ands r0, r1 + cmp r0, #1 + beq _080ACBE0 + bl DeleteThisEntity +_080ACBE0: + ldr r1, _080ACC00 @ =gUnk_0812AA80 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_080ACBFC: .4byte gPlayerState +_080ACC00: .4byte gUnk_0812AA80 + + thumb_func_start sub_080ACC04 +sub_080ACC04: @ 0x080ACC04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ACC54 @ =gPlayerEntity + adds r0, #0x3b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x10] + movs r0, #0xa0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #2 + strb r0, [r1] + ldr r1, _080ACC58 @ =gUnk_0812AAD8 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + movs r0, #0x10 + str r0, [r4, #0x70] + adds r0, r4, #0 + bl sub_080ACDB0 + adds r0, r4, #0 + bl sub_0801766C + pop {r4, pc} + .align 2, 0 +_080ACC54: .4byte gPlayerEntity +_080ACC58: .4byte gUnk_0812AAD8 + + thumb_func_start sub_080ACC5C +sub_080ACC5C: @ 0x080ACC5C + push {r4, lr} + adds r4, r0, #0 + bl sub_080ACDB0 + cmp r0, #0 + bne _080ACC74 + adds r0, r4, #0 + bl sub_080ACC78 + adds r0, r4, #0 + bl sub_080ACECC +_080ACC74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACC78 +sub_080ACC78: @ 0x080ACC78 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + ldr r0, _080ACD20 @ =gScreenTransition + ldr r0, [r0] + adds r0, r2, r0 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080ACCF8 + ldr r0, _080ACD24 @ =gUnk_0812AAAC + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r7, [r1] + ldr r0, [r4, #0x74] + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080ACCA4 + str r0, [r4, #0x74] +_080ACCA4: + ldr r0, [r4, #0x74] + adds r0, r7, r0 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08008782 + adds r5, r0, #0 + cmp r5, #0 + beq _080ACCF2 + ldrb r1, [r5, #5] + ldrb r2, [r5, #2] + movs r0, #0x11 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _080ACCF2 + ldrb r0, [r5, #3] + strb r0, [r6, #0xe] + ldr r0, [r4, #0x74] + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + ldr r0, [r4, #0x74] + adds r0, r0, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] +_080ACCF2: + ldr r0, [r4, #0x74] + adds r0, #2 + str r0, [r4, #0x74] +_080ACCF8: + ldr r2, [r4, #0x54] + cmp r2, #0 + bne _080ACD08 + ldr r0, [r4, #0x70] + cmp r0, #2 + bls _080ACD08 + movs r0, #1 + str r0, [r4, #0x70] +_080ACD08: + ldr r0, [r4, #0x70] + subs r0, #1 + str r0, [r4, #0x70] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080ACDAE + cmp r2, #0 + bne _080ACD28 + movs r0, #2 + b _080ACD32 + .align 2, 0 +_080ACD20: .4byte gScreenTransition +_080ACD24: .4byte gUnk_0812AAAC +_080ACD28: + ldr r0, _080ACD74 @ =gUnk_0812AABC + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] +_080ACD32: + str r0, [r4, #0x70] + movs r0, #0x17 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _080ACDAE + bl Random + adds r2, r0, #0 + movs r0, #0xf + ands r2, r0 + ldr r3, [r4, #0x48] + ldrb r1, [r3, #6] + cmp r1, r2 + bge _080ACD58 + adds r2, r1, #0 +_080ACD58: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080ACD62 + rsbs r2, r2, #0 +_080ACD62: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080ACD9C + cmp r0, #1 + bgt _080ACD78 + cmp r0, #0 + beq _080ACD82 + b _080ACDAE + .align 2, 0 +_080ACD74: .4byte gUnk_0812AABC +_080ACD78: + cmp r0, #2 + beq _080ACD8C + cmp r0, #3 + beq _080ACDA2 + b _080ACDAE +_080ACD82: + ldrb r0, [r3, #7] + ldrh r1, [r4, #0x32] + subs r1, r1, r0 + strh r1, [r6, #0x32] + b _080ACD94 +_080ACD8C: + ldrh r0, [r4, #0x32] + ldrb r3, [r3, #7] + adds r0, r0, r3 + strh r0, [r6, #0x32] +_080ACD94: + ldrh r0, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r6, #0x2e] + b _080ACDAE +_080ACD9C: + ldrh r0, [r4, #0x2e] + adds r0, r0, r1 + b _080ACDA6 +_080ACDA2: + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 +_080ACDA6: + strh r0, [r6, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r6, #0x32] +_080ACDAE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080ACDB0 +sub_080ACDB0: @ 0x080ACDB0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080ACDE8 + ldr r2, _080ACDE0 @ =gPlayerEntity + ldr r1, _080ACDE4 @ =gUnk_08126EE4 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r2, #0x32] + adds r0, r0, r2 + b _080ACEB4 + .align 2, 0 +_080ACDE0: .4byte gPlayerEntity +_080ACDE4: .4byte gUnk_08126EE4 +_080ACDE8: + ldrb r2, [r4, #0x14] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080ACE48 + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x32] + subs r1, #3 + strh r1, [r4, #0x32] + movs r1, #4 + ands r1, r2 + adds r3, r0, #0 + cmp r1, #0 + beq _080ACE20 + movs r0, #0x2e + ldrsh r7, [r3, r0] + movs r0, #0x2e + ldrsh r6, [r4, r0] + ldr r1, _080ACE1C @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r0, r2, r1 + ldrb r0, [r0] + rsbs r5, r0, #0 + adds r0, r1, #0 + b _080ACE30 + .align 2, 0 +_080ACE1C: .4byte gUnk_0812AAE8 +_080ACE20: + movs r0, #0x2e + ldrsh r6, [r3, r0] + movs r0, #0x2e + ldrsh r7, [r4, r0] + ldr r0, _080ACE44 @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r1, r2, r0 + ldrb r5, [r1] +_080ACE30: + subs r1, r7, r6 + str r1, [r4, #0x78] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r1 + bhi _080ACE90 + ldrh r0, [r3, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + b _080ACEB6 + .align 2, 0 +_080ACE44: .4byte gUnk_0812AAE8 +_080ACE48: + ldr r1, [r4, #0x50] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + movs r0, #4 + ands r0, r2 + adds r3, r1, #0 + cmp r0, #0 + beq _080ACE70 + movs r0, #0x32 + ldrsh r6, [r3, r0] + movs r0, #0x32 + ldrsh r7, [r4, r0] + ldr r0, _080ACE6C @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r1, r2, r0 + ldrb r5, [r1] + b _080ACE84 + .align 2, 0 +_080ACE6C: .4byte gUnk_0812AAE8 +_080ACE70: + movs r0, #0x32 + ldrsh r7, [r3, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + ldr r1, _080ACEAC @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r0, r2, r1 + ldrb r0, [r0] + rsbs r5, r0, #0 + adds r0, r1, #0 +_080ACE84: + subs r1, r7, r6 + str r1, [r4, #0x78] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r1 + bls _080ACEB0 +_080ACE90: + subs r0, r0, r1 + lsls r1, r0, #8 + strh r1, [r4, #0x24] + lsls r0, r0, #0x18 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #2 + cmp r0, r1 + ble _080ACEA4 + strh r1, [r4, #0x24] +_080ACEA4: + adds r0, r4, #0 + bl sub_080AEFB4 + b _080ACEB6 + .align 2, 0 +_080ACEAC: .4byte gUnk_0812AAE8 +_080ACEB0: + ldrh r0, [r3, #0x32] + adds r0, r0, r5 +_080ACEB4: + strh r0, [r4, #0x32] +_080ACEB6: + ldr r0, _080ACEC8 @ =gPlayerEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080ACEC8: .4byte gPlayerEntity + + thumb_func_start sub_080ACECC +sub_080ACECC: @ 0x080ACECC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bhi _080ACF0C + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080ACF0C + ldr r2, [r4, #0x78] + cmp r2, #0 + blt _080ACF0C + ldr r0, _080ACF10 @ =gUnk_0812AAE8 + ldrb r1, [r4, #0xa] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, r2 + bhi _080ACF0C + adds r1, #1 + movs r0, #0x10 + movs r2, #0 + movs r3, #0 + bl CreatePlayerItem + adds r1, r0, #0 + cmp r1, #0 + beq _080ACF0C + str r4, [r1, #0x50] + str r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_080ACF0C: + pop {r4, pc} + .align 2, 0 +_080ACF10: .4byte gUnk_0812AAE8 diff --git a/asm/playerItem/playerItem12.inc b/asm/playerItem/playerItem12.inc new file mode 100644 index 00000000..8c1dab4a --- /dev/null +++ b/asm/playerItem/playerItem12.inc @@ -0,0 +1,487 @@ + thumb_func_start PlayerItem12 +PlayerItem12: @ 0x080700E8 + push {lr} + ldr r2, _080700FC @ =gUnk_0811B98C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080700FC: .4byte gUnk_0811B98C + + thumb_func_start sub_08070100 +sub_08070100: @ 0x08070100 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x40 + str r0, [r5, #0x74] + movs r0, #0xf0 + lsls r0, r0, #1 + str r0, [r5, #0x78] + ldr r2, _0807017C @ =gPlayerEntity + ldr r1, _08070180 @ =gUnk_0811B9A0 + ldrb r0, [r5, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r4, [r2, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x8a + strb r0, [r1] + ldr r0, _08070184 @ =gUnk_0811B9D0 + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _08070188 + strb r3, [r5, #0xa] + b _0807018C + .align 2, 0 +_0807017C: .4byte gPlayerEntity +_08070180: .4byte gUnk_0811B9A0 +_08070184: .4byte gUnk_0811B9D0 +_08070188: + movs r0, #0 + strb r0, [r5, #0xa] +_0807018C: + ldrb r1, [r2, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r3, [r5, #0x14] + lsrs r3, r3, #1 + lsls r3, r3, #3 + ldr r0, _080701F0 @ =gUnk_0811B9A8 + adds r3, r3, r0 + ldrb r1, [r3] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r5, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r3, #1] + lsls r1, r1, #7 + movs r2, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r3, #4] + adds r4, r5, #0 + adds r4, #0x58 + strb r0, [r4] + movs r0, #2 + ldrsb r0, [r3, r0] + str r0, [r5, #0x6c] + movs r0, #3 + ldrsb r0, [r3, r0] + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_0801766C + ldrb r1, [r4] + adds r0, r5, #0 + bl InitializeAnimation + ldr r0, _080701F4 @ =0x000001DD + bl SoundReq + pop {r4, r5, pc} + .align 2, 0 +_080701F0: .4byte gUnk_0811B9A8 +_080701F4: .4byte 0x000001DD + + thumb_func_start sub_080701F8 +sub_080701F8: @ 0x080701F8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, _08070244 @ =gUnk_0811B9C8 + ldrb r1, [r5, #0x14] + adds r2, r1, r0 + movs r6, #0 + ldrsb r6, [r2, r6] + adds r1, #1 + adds r1, r1, r0 + movs r7, #0 + ldrsb r7, [r1, r7] + adds r0, r5, #0 + movs r1, #0xa + adds r2, r6, #0 + adds r3, r7, #0 + bl sub_08008782 + adds r4, r0, #0 + cmp r4, #0 + beq _08070248 + ldrb r1, [r4, #5] + ldrb r2, [r4, #2] + movs r0, #0x53 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08070260 + ldrb r0, [r4, #3] + strb r0, [r1, #0xe] + ldrh r0, [r5, #0x2e] + adds r0, r0, r6 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r7 + strh r0, [r1, #0x32] + b _08070260 + .align 2, 0 +_08070244: .4byte gUnk_0811B9C8 +_08070248: + ldr r0, [r5, #0x74] + subs r0, #1 + str r0, [r5, #0x74] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08070260 + ldr r0, [r5, #0x78] + subs r0, #1 + str r0, [r5, #0x78] + cmp r0, r1 + bne _08070268 +_08070260: + adds r0, r5, #0 + bl sub_08070458 + b _0807037A +_08070268: + adds r0, r5, #0 + bl GetNextFrame + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08070280 + adds r0, r5, #0 + bl sub_0800451C +_08070280: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _08070354 @ =gRoomControls + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _08070358 @ =gPlayerEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0807036A + ldr r1, _0807035C @ =gUnk_08003E44 + movs r3, #0x2e + ldrsh r2, [r5, r3] + movs r0, #0x32 + ldrsh r3, [r5, r0] + adds r0, r5, #0 + bl sub_080040D8 + cmp r0, #0 + bne _08070364 + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _0807036A + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + orrs r1, r2 + strh r1, [r5, #0x32] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + str r0, [r5, #0x7c] + adds r0, r5, #0 + movs r1, #0x14 + bl InitializeAnimation + ldr r0, _08070360 @ =0x00004020 + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl SetTile + b _0807037A + .align 2, 0 +_08070354: .4byte gRoomControls +_08070358: .4byte gPlayerEntity +_0807035C: .4byte gUnk_08003E44 +_08070360: .4byte 0x00004020 +_08070364: + adds r0, r5, #0 + bl sub_08070458 +_0807036A: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0807037A + adds r0, r5, #0 + bl sub_08070458 +_0807037A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807037C +sub_0807037C: @ 0x0807037C + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08070394 + bl DeleteThisEntity +_08070394: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08070398 +sub_08070398: @ 0x08070398 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080703B8 + bl DeleteThisEntity +_080703B8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080703BC +sub_080703BC: @ 0x080703BC + push {r4, r5, lr} + adds r4, r0, #0 + bl GetNextFrame + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08070404 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _08070408 @ =0x00004021 + cmp r1, r0 + beq _0807042E + cmp r1, r0 + bhi _0807040C + subs r0, #1 + cmp r1, r0 + beq _08070420 + b _08070412 + .align 2, 0 +_08070404: .4byte gRoomControls +_08070408: .4byte 0x00004021 +_0807040C: + ldr r0, _08070418 @ =0x00004070 + cmp r1, r0 + beq _0807041C +_08070412: + movs r0, #0 + str r0, [r4, #0x7c] + b _0807042E + .align 2, 0 +_08070418: .4byte 0x00004070 +_0807041C: + movs r0, #0xff + str r0, [r4, #0x78] +_08070420: + ldr r0, [r4, #0x78] + subs r0, #1 + str r0, [r4, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08070436 +_0807042E: + adds r0, r4, #0 + bl sub_08070458 + b _08070454 +_08070436: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + cmp r1, #0 + beq _08070454 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0807044E + ldrb r0, [r4, #0xc] + cmp r0, #0x1a + bne _08070454 +_0807044E: + adds r0, r4, #0 + bl sub_08070458 +_08070454: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08070458 +sub_08070458: @ 0x08070458 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] + ldr r5, [r4, #0x7c] + cmp r5, #0 + beq _0807049E + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080704B4 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl SetTile +_0807049E: + adds r0, r4, #0 + movs r1, #0x13 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_08017744 + ldr r0, _080704B8 @ =0x00000199 + bl SoundReq + pop {r4, r5, r6, pc} + .align 2, 0 +_080704B4: .4byte gRoomControls +_080704B8: .4byte 0x00000199 + diff --git a/asm/playerItem/playerItem13.inc b/asm/playerItem/playerItem13.inc new file mode 100644 index 00000000..5ba65130 --- /dev/null +++ b/asm/playerItem/playerItem13.inc @@ -0,0 +1,567 @@ + thumb_func_start PlayerItem13 +PlayerItem13: @ 0x080ACF14 + push {lr} + ldr r2, _080ACF28 @ =gUnk_081320A8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ACF28: .4byte gUnk_081320A8 + + thumb_func_start sub_080ACF2C +sub_080ACF2C: @ 0x080ACF2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldr r0, _080ACF60 @ =gUnk_081320E4 + str r0, [r4, #0x48] + ldr r5, [r4, #0x54] + adds r6, r5, #0 + cmp r5, #0 + beq _080ACF64 + ldr r0, [r5, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r5, #0x30] + str r0, [r4, #0x30] + ldr r0, [r5, #0x34] + str r0, [r4, #0x34] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r0, [r5, #0x16] + strb r0, [r4, #0x16] + b _080ACFB6 + .align 2, 0 +_080ACF60: .4byte gUnk_081320E4 +_080ACF64: + adds r5, r4, #0 + str r4, [r4, #0x54] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r3, _080ACFC8 @ =gUnk_081320B8 + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0x16] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r4, #0 + bl InitializeAnimation + bl sub_08078D60 +_080ACFB6: + ldrb r1, [r5, #8] + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + ldrb r1, [r5, #9] + adds r0, #2 + strh r1, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_080ACFC8: .4byte gUnk_081320B8 + + thumb_func_start sub_080ACFCC +sub_080ACFCC: @ 0x080ACFCC + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + adds r0, #0x6c + ldrh r0, [r0] + ldrb r2, [r1, #8] + cmp r0, r2 + beq _080ACFE8 + adds r0, r4, #0 + adds r0, #0x6e + ldrh r0, [r0] + ldrb r2, [r1, #9] + cmp r0, r2 + bne _080AD034 +_080ACFE8: + ldrb r0, [r1, #0xc] + cmp r0, #2 + beq _080ACFF8 + bl sub_08079184 + bl DeleteThisEntity + b _080AD03C +_080ACFF8: + ldr r0, _080AD02C @ =gPlayerState + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080AD00E + ldr r0, _080AD030 @ =gPlayerEntity + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080AD03C +_080AD00E: + adds r0, r4, #0 + bl sub_080AD27C + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + str r2, [r4, #0x20] + b _080AD03C + .align 2, 0 +_080AD02C: .4byte gPlayerState +_080AD030: .4byte gPlayerEntity +_080AD034: + bl sub_08079184 + bl DeleteThisEntity +_080AD03C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AD040 +sub_080AD040: @ 0x080AD040 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + ldrb r0, [r5, #0xc] + cmp r0, #2 + beq _080AD050 + bl DeleteThisEntity +_080AD050: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD064 + movs r0, #0 + str r0, [r4, #0x34] +_080AD064: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080AD06E + b _080AD220 +_080AD06E: + adds r2, r4, #0 + adds r2, #0x42 + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD088 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0 + strb r0, [r4, #0x15] + strb r1, [r2] +_080AD088: + ldr r2, _080AD0B0 @ =gUnk_081320C4 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002B4 + cmp r0, #0x74 + bne _080AD0B4 + adds r0, r4, #0 + bl sub_0806F69C + b _080AD0C8 + .align 2, 0 +_080AD0B0: .4byte gUnk_081320C4 +_080AD0B4: + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0x24 + beq _080AD0C8 + cmp r0, #0x26 + beq _080AD0C8 + adds r0, r4, #0 + bl sub_080AF00C +_080AD0C8: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080AD0D8 + b _080AD202 +_080AD0D8: + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + ldr r0, [r4, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r4, #0x30] + str r0, [r5, #0x30] + ldr r0, [r4, #0x34] + str r0, [r5, #0x34] + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x11 + bhi _080AD0FC + cmp r0, #0x10 + bhs _080AD104 + cmp r0, #0xd + beq _080AD104 + b _080AD14E +_080AD0FC: + cmp r0, #0x13 + beq _080AD104 + cmp r0, #0x5a + bne _080AD14E +_080AD104: + cmp r5, r4 + bne _080AD146 + cmp r0, #0x11 + bhi _080AD116 + cmp r0, #0x10 + bhs _080AD12C + cmp r0, #0xd + beq _080AD120 + b _080AD142 +_080AD116: + cmp r0, #0x13 + beq _080AD138 + cmp r0, #0x5a + beq _080AD126 + b _080AD142 +_080AD120: + adds r0, r4, #0 + movs r1, #0 + b _080AD130 +_080AD126: + adds r0, r4, #0 + movs r1, #0xc + b _080AD130 +_080AD12C: + adds r0, r4, #0 + movs r1, #0xb +_080AD130: + movs r2, #0 + bl CreateFx + b _080AD142 +_080AD138: + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFx +_080AD142: + movs r0, #4 + b _080AD148 +_080AD146: + movs r0, #3 +_080AD148: + strb r0, [r5, #0xd] + bl DeleteThisEntity +_080AD14E: + ldr r0, [r4, #0x54] + cmp r0, r4 + bne _080AD178 + ldrb r0, [r4, #0xb] + cmp r0, #0xff + beq _080AD1DA + cmp r0, #0xf + bne _080AD16A + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl CreateFx + b _080AD1DA +_080AD16A: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl CreateObjectWithParent + b _080AD1DA +_080AD178: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080AD188 + adds r0, r5, #0 + bl sub_080AD32C + cmp r0, #0 + beq _080AD1E0 +_080AD188: + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _080AD196 + movs r0, #0x82 + lsls r0, r0, #1 + bl SoundReq +_080AD196: + adds r0, r4, #0 + bl UpdateSpriteForCollisionLayer + movs r0, #3 + strb r0, [r5, #0xd] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r5, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AD1DA: + bl DeleteThisEntity + b _080AD26E +_080AD1E0: + movs r0, #0x82 + lsls r0, r0, #1 + bl SoundReq + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r1, #0x24 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x24] + b _080AD26E +_080AD202: + adds r0, r4, #0 + bl sub_0800451C + adds r0, r4, #0 + bl sub_0806F8DC + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + ldrb r0, [r4, #0x15] + strb r0, [r5, #0x15] + b _080AD26E +_080AD220: + ldr r1, _080AD240 @ =gPlayerEntity + adds r0, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r5, #1 + ands r5, r0 + cmp r5, #0 + beq _080AD244 + movs r0, #0x79 + bl SoundReq + adds r0, r4, #0 + bl sub_080AD27C + b _080AD26E + .align 2, 0 +_080AD240: .4byte gPlayerEntity +_080AD244: + ldr r0, _080AD270 @ =gPlayerState + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080AD25A + adds r0, r1, #0 + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD26E +_080AD25A: + adds r0, r4, #0 + bl sub_080AD27C + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + str r5, [r4, #0x20] +_080AD26E: + pop {r4, r5, pc} + .align 2, 0 +_080AD270: .4byte gPlayerState + + thumb_func_start sub_080AD274 +sub_080AD274: @ 0x080AD274 + push {lr} + bl DeleteThisEntity + pop {pc} + + + thumb_func_start sub_080AD27C +sub_080AD27C: @ 0x080AD27C + push {r4, r5, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x54] + ldr r1, _080AD2AC @ =gPlayerEntity + movs r0, #0 + str r0, [r1, #0x74] + adds r0, r3, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r5, r1, #0 + ldrb r1, [r4, #8] + cmp r0, r1 + bne _080AD320 + adds r0, r3, #0 + adds r0, #0x6e + ldrh r0, [r0] + ldrb r1, [r4, #9] + cmp r0, r1 + bne _080AD320 + cmp r4, r3 + beq _080AD2B0 + movs r0, #2 + strb r0, [r4, #0xd] + b _080AD2C2 + .align 2, 0 +_080AD2AC: .4byte gPlayerEntity +_080AD2B0: + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x18 + orrs r1, r0 + strb r1, [r2] +_080AD2C2: + ldr r0, [r4, #0x48] + str r0, [r3, #0x48] + ldrb r1, [r3, #0x16] + lsrs r1, r1, #4 + ldr r2, _080AD318 @ =gUnk_081320CC + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3, #0x24] + ldr r0, _080AD31C @ =gUnk_081320D4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #0x20] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] + strh r0, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0x32] + strh r0, [r3, #0x32] + ldrh r0, [r5, #0x2e] + strh r0, [r3, #0x2e] + adds r0, r5, #0 + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x3c + strb r1, [r0] + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + bl sub_0801766C + b _080AD328 + .align 2, 0 +_080AD318: .4byte gUnk_081320CC +_080AD31C: .4byte gUnk_081320D4 +_080AD320: + bl sub_08079184 + bl DeleteThisEntity +_080AD328: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AD32C +sub_080AD32C: @ 0x080AD32C + push {lr} + adds r2, r0, #0 + movs r3, #0 + ldrb r1, [r2, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + beq _080AD34C + ldrb r0, [r2, #8] + cmp r0, #6 + bne _080AD34E + ldrb r0, [r2, #9] + cmp r0, #5 + beq _080AD34C + cmp r0, #0x7d + bne _080AD34E +_080AD34C: + movs r3, #1 +_080AD34E: + adds r0, r3, #0 + pop {pc} + .align 2, 0 diff --git a/asm/playerItem/playerItem15.inc b/asm/playerItem/playerItem15.inc new file mode 100644 index 00000000..91528077 --- /dev/null +++ b/asm/playerItem/playerItem15.inc @@ -0,0 +1,194 @@ + thumb_func_start PlayerItem15 +PlayerItem15: @ 0x080A306C + push {lr} + ldr r2, _080A3080 @ =gUnk_08127270 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A3080: .4byte gUnk_08127270 + + thumb_func_start sub_080A3084 +sub_080A3084: @ 0x080A3084 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r5, #1 + strb r5, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A30F8 + ldr r0, _080A30EC @ =gPlayerEntity + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + adds r1, r4, #0 + adds r1, #0x3c + strb r0, [r1] + ldr r0, _080A30F0 @ =gUnk_08127278 + str r0, [r4, #0x48] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080A30CC + strb r5, [r4, #0xb] +_080A30CC: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #0x3c + str r0, [r4, #0x6c] + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080A30F4 @ =0x0000013F + bl SoundReq + b _080A30FC + .align 2, 0 +_080A30EC: .4byte gPlayerEntity +_080A30F0: .4byte gUnk_08127278 +_080A30F4: .4byte 0x0000013F +_080A30F8: + movs r0, #6 + strb r0, [r4, #0xe] +_080A30FC: + adds r0, r4, #0 + movs r1, #0x18 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_080A310C + pop {r4, r5, pc} + + thumb_func_start sub_080A310C +sub_080A310C: @ 0x080A310C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A312A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A3200 + bl DeleteThisEntity + b _080A3200 +_080A312A: + adds r0, r4, #0 + bl GetNextFrame + ldr r0, [r4, #0x6c] + subs r0, #1 + str r0, [r4, #0x6c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080A31FC + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A315C + adds r0, r4, #0 + bl sub_0800451C +_080A315C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080A31F0 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _080A31F4 @ =gPlayerEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _080A31AE + ldr r1, _080A31F8 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _080A31AE + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080A31AE: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _080A31C6 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080A31C6: + adds r0, r4, #0 + movs r1, #0xc + bl sub_08008790 + cmp r0, #0 + beq _080A31D6 + bl DeleteThisEntity +_080A31D6: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r3, [r0] + movs r0, #0x15 + movs r1, #1 + movs r2, #0 + bl CreatePlayerItem + str r0, [r4, #0x54] + cmp r0, #0 + beq _080A3200 + str r4, [r0, #0x50] + b _080A3200 + .align 2, 0 +_080A31F0: .4byte gRoomControls +_080A31F4: .4byte gPlayerEntity +_080A31F8: .4byte gUnk_08003E44 +_080A31FC: + bl DeleteThisEntity +_080A3200: + pop {r4, r5, pc} + .align 2, 0 diff --git a/asm/playerItem/playerItem3.inc b/asm/playerItem/playerItem3.inc new file mode 100644 index 00000000..cabdeaa7 --- /dev/null +++ b/asm/playerItem/playerItem3.inc @@ -0,0 +1,566 @@ + + + thumb_func_start PlayerItem3 +PlayerItem3: @ 0x0801B45C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801B48C @ =gUnk_080B77FC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xb + beq _0801B4AC + ldrb r0, [r4, #0x14] + cmp r0, #6 + bne _0801B490 + adds r1, r4, #0 + adds r1, #0x86 + movs r2, #0x80 + lsls r2, r2, #6 + b _0801B496 + .align 2, 0 +_0801B48C: .4byte gUnk_080B77FC +_0801B490: + adds r1, r4, #0 + adds r1, #0x86 + ldr r2, _0801B4C4 @ =0xFFFFE000 +_0801B496: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_0801B4AC: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0801B4C0 + movs r0, #0xfb + bl EnqueueSFX +_0801B4C0: + pop {r4, pc} + .align 2, 0 +_0801B4C4: .4byte 0xFFFFE000 + + thumb_func_start sub_0801B4C8 +sub_0801B4C8: @ 0x0801B4C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0801B52C @ =gPlayerState + str r4, [r3, #0x2c] + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0801B530 @ =gUnk_081271CC + str r0, [r4, #0x48] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x58 + movs r0, #0xb + strb r0, [r1] + ldr r5, _0801B534 @ =gPlayerEntity + str r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x86 + strh r2, [r0] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801B518 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + movs r1, #1 + bics r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0801B518: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B538 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x3c + b _0801B540 + .align 2, 0 +_0801B52C: .4byte gPlayerState +_0801B530: .4byte gUnk_081271CC +_0801B534: .4byte gPlayerEntity +_0801B538: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x1e +_0801B540: + strb r0, [r4, #0xe] + ldrb r1, [r3, #0xd] + movs r0, #0xd + ldrsb r0, [r3, r0] + cmp r0, #0 + blt _0801B550 + strb r1, [r4, #0x15] + b _0801B556 +_0801B550: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0801B556: + ldrb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _0801B56C + movs r0, #1 + strb r0, [r4, #0xb] +_0801B56C: + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0801B584 + pop {r4, r5, pc} + + thumb_func_start sub_0801B584 +sub_0801B584: @ 0x0801B584 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_0801B804 + ldr r1, _0801B5F8 @ =gPlayerState + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0801B5A8 + ldrb r0, [r1, #0x1a] + cmp r0, #0 + bne _0801B5A8 + ldr r0, [r1, #0x2c] + cmp r0, r6 + bne _0801B5B4 + ldr r0, _0801B5FC @ =gPlayerEntity + ldrb r0, [r0, #0xc] + cmp r0, #1 + beq _0801B5B8 +_0801B5A8: + ldr r1, _0801B5F8 @ =gPlayerState + ldr r0, [r1, #0x2c] + cmp r0, r6 + bne _0801B5B4 + movs r0, #0 + str r0, [r1, #0x2c] +_0801B5B4: + bl DeleteThisEntity +_0801B5B8: + ldr r7, _0801B5FC @ =gPlayerEntity + adds r0, r7, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r3, #1 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801B600 + adds r0, r6, #0 + adds r0, #0x68 + ldrb r0, [r0] + movs r2, #0 + cmp r0, #0xc + bne _0801B5D8 + movs r2, #6 +_0801B5D8: + lsrs r0, r1, #4 + adds r1, r0, r2 + ldrb r0, [r6, #0x1e] + cmp r0, r1 + beq _0801B5EE + strb r1, [r6, #0x1e] + ldrb r1, [r6, #0x1e] + ldrh r2, [r6, #0x12] + adds r0, r6, #0 + bl sub_080042D0 +_0801B5EE: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08078E84 + b _0801B674 + .align 2, 0 +_0801B5F8: .4byte gPlayerState +_0801B5FC: .4byte gPlayerEntity +_0801B600: + movs r5, #0 + movs r0, #2 + strb r0, [r6, #0xc] + adds r1, r6, #0 + adds r1, #0x60 + movs r0, #0xd5 + strh r0, [r1] + ldrb r0, [r6, #0x10] + movs r4, #0x80 + orrs r0, r4 + strb r0, [r6, #0x10] + subs r1, #0x24 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r2, r6, #0 + adds r2, #0x3b + strb r0, [r2] + movs r0, #0xa6 + strh r0, [r6, #0x12] + ldrb r1, [r6, #0x18] + subs r0, #0xe7 + ands r0, r1 + movs r1, #4 + rsbs r1, r1, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r6, #0x18] + ldrb r1, [r6, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + ldr r2, _0801B678 @ =gUnk_080B7826 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r6, #0x2e] + adds r1, #1 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] + adds r0, r6, #0 + movs r1, #0 + bl InitializeAnimation + ldr r0, _0801B67C @ =gPlayerState + str r5, [r0, #0x2c] + ldrb r1, [r0, #4] + orrs r4, r1 + strb r4, [r0, #4] +_0801B674: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801B678: .4byte gUnk_080B7826 +_0801B67C: .4byte gPlayerState + + thumb_func_start sub_0801B680 +sub_0801B680: @ 0x0801B680 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801B804 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B6DC + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0801B6DC + ldr r3, _0801B6C4 @ =gPlayerState + ldrb r1, [r3, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801B6DC + adds r2, r4, #0 + adds r2, #0x83 + ldrb r0, [r2] + ldrb r1, [r3, #0xd] + subs r0, r0, r1 + movs r3, #0x1f + ands r0, r3 + cmp r0, #0x10 + ble _0801B6C8 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, #0x40 + b _0801B6D0 + .align 2, 0 +_0801B6C4: .4byte gPlayerState +_0801B6C8: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #0x40 +_0801B6D0: + strh r0, [r1] + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + strb r0, [r2] + strb r0, [r4, #0x15] +_0801B6DC: + adds r0, r4, #0 + bl sub_0806F69C + movs r5, #0 + adds r0, r4, #0 + bl sub_0801B864 + cmp r0, #0 + beq _0801B6FE + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + movs r0, #0xc + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r5, r0, #0x1f +_0801B6FE: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0801B780 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0801B784 @ =gPlayerEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0801B73C + cmp r5, #0 + bne _0801B790 + ldr r1, _0801B788 @ =gUnk_08003E44 + adds r0, r4, #0 + bl sub_080040E2 + adds r5, r0, #0 +_0801B73C: + cmp r5, #0 + bne _0801B790 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bhi _0801B754 + ldrh r0, [r4, #0x24] + subs r0, #0x10 + strh r0, [r4, #0x24] +_0801B754: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0801B75C + movs r5, #1 +_0801B75C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801B76C + movs r5, #1 +_0801B76C: + cmp r5, #0 + beq _0801B7A4 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B78C + movs r0, #0x1e + b _0801B792 + .align 2, 0 +_0801B780: .4byte gRoomControls +_0801B784: .4byte gPlayerEntity +_0801B788: .4byte gUnk_08003E44 +_0801B78C: + movs r0, #0xc + b _0801B792 +_0801B790: + movs r0, #1 +_0801B792: + strb r0, [r4, #0xe] + cmp r5, #0 + beq _0801B7A4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0801B7A4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801B7A8 +sub_0801B7A8: @ 0x0801B7A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0801B804 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0801B7BC + subs r0, #1 + strb r0, [r5, #0xe] + b _0801B7FA +_0801B7BC: + adds r0, r5, #0 + bl sub_0801B864 + ldrh r2, [r5, #0x24] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldr r0, _0801B7FC @ =0x0000027F + cmp r1, r0 + bgt _0801B7D4 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r5, #0x24] +_0801B7D4: + ldr r4, _0801B800 @ =gPlayerEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl GetFacingDirection + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #2 + bl sub_0800419C + cmp r0, #0 + beq _0801B7FA + bl DeleteThisEntity +_0801B7FA: + pop {r4, r5, pc} + .align 2, 0 +_0801B7FC: .4byte 0x0000027F +_0801B800: .4byte gPlayerEntity + + thumb_func_start sub_0801B804 +sub_0801B804: @ 0x0801B804 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xc + bl IsItemEquipped + cmp r0, #1 + beq _0801B820 + cmp r0, #1 + blo _0801B81C + cmp r0, #2 + beq _0801B824 + b _0801B826 +_0801B81C: + movs r4, #1 + b _0801B826 +_0801B820: + movs r4, #2 + b _0801B826 +_0801B824: + movs r4, #0 +_0801B826: + ldr r3, _0801B850 @ =gPlayerState + adds r0, r3, #0 + adds r0, #0x90 + ldrh r0, [r0] + ands r4, r0 + cmp r4, #0 + bne _0801B854 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + ldrb r2, [r3, #0xa] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + ands r1, r0 + strb r1, [r3, #0xb] + b _0801B862 + .align 2, 0 +_0801B850: .4byte gPlayerState +_0801B854: + ldrb r1, [r3, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r3, #0xa] + ldrb r1, [r3, #0xb] + orrs r0, r1 + strb r0, [r3, #0xb] +_0801B862: + pop {r4, r5, pc} + + thumb_func_start sub_0801B864 +sub_0801B864: @ 0x0801B864 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0801B874 + adds r0, r4, #0 + bl sub_0800451C +_0801B874: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + lsls r0, r0, #1 + ldr r3, _0801B894 @ =gUnk_080B782E + adds r1, r0, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + adds r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsb r3, [r0, r3] + adds r0, r4, #0 + movs r1, #2 + bl sub_08008782 + pop {r4, pc} + .align 2, 0 +_0801B894: .4byte gUnk_080B782E diff --git a/asm/playerItem/playerItemBomb.inc b/asm/playerItem/playerItemBomb.inc new file mode 100644 index 00000000..0fd91524 --- /dev/null +++ b/asm/playerItem/playerItemBomb.inc @@ -0,0 +1,402 @@ + thumb_func_start PlayerItemBomb +PlayerItemBomb: @ 0x0801B188 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0801B1E0 @ =gUnk_080B77C8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl GetNextFrame + ldrb r2, [r4, #0xc] + cmp r2, #3 + beq _0801B24E + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _0801B1E4 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #7 + bne _0801B1BC + subs r0, r1, #1 + strb r0, [r4, #0xe] +_0801B1BC: + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _0801B24E + movs r0, #0x50 + strb r0, [r4, #0xf] + str r1, [r4, #0x68] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0801B24E + .align 2, 0 +_0801B1E0: .4byte gUnk_080B77C8 +_0801B1E4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0801B24E + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0801B248 + cmp r2, #2 + bne _0801B204 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bne _0801B204 + ldr r0, _0801B244 @ =gPlayerState + strb r1, [r0, #5] +_0801B204: + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3c + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0805EC60 + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl CreateObjectWithParent + adds r0, r4, #0 + bl sub_0801B418 + b _0801B24E + .align 2, 0 +_0801B244: .4byte gPlayerState +_0801B248: + adds r0, r4, #0 + bl sub_0801B3A4 +_0801B24E: + pop {r4, pc} + + thumb_func_start sub_0801B250 +sub_0801B250: @ 0x0801B250 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + movs r0, #1 + strb r0, [r2, #0xc] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x3a + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0xa] + adds r0, r1, #0 + cmp r0, #0xff + bne _0801B28A + movs r0, #0x3c + b _0801B29C +_0801B28A: + cmp r0, #0xfe + bne _0801B29A + movs r0, #0xf + strb r0, [r2, #0xe] + movs r0, #0xff + orrs r0, r1 + strb r0, [r2, #0xa] + b _0801B29E +_0801B29A: + movs r0, #0x96 +_0801B29C: + strb r0, [r2, #0xe] +_0801B29E: + ldr r0, _0801B2BC @ =gUnk_080B77F4 + str r0, [r2, #0x48] + movs r0, #0 + strb r0, [r2, #0x16] + adds r0, r2, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #7 + bne _0801B2C0 + adds r0, r2, #0 + movs r1, #5 + bl InitializeAnimation + b _0801B2C8 + .align 2, 0 +_0801B2BC: .4byte gUnk_080B77F4 +_0801B2C0: + adds r0, r2, #0 + movs r1, #0x15 + bl InitializeAnimation +_0801B2C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B2CC +sub_0801B2CC: @ 0x0801B2CC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _0801B2DE + adds r0, r4, #0 + bl sub_08078930 +_0801B2DE: + movs r0, #8 + bl IsItemEquipped + cmp r0, #1 + beq _0801B2F6 + cmp r0, #1 + blo _0801B2F2 + cmp r0, #2 + beq _0801B2FA + b _0801B2FC +_0801B2F2: + movs r5, #1 + b _0801B2FC +_0801B2F6: + movs r5, #2 + b _0801B2FC +_0801B2FA: + movs r5, #0 +_0801B2FC: + ldr r0, _0801B314 @ =gPlayerState + adds r0, #0x92 + ldrh r0, [r0] + ands r5, r0 + cmp r5, #0 + beq _0801B310 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] +_0801B310: + pop {r4, r5, pc} + .align 2, 0 +_0801B314: .4byte gPlayerState + + thumb_func_start sub_0801B318 +sub_0801B318: @ 0x0801B318 + push {lr} + ldr r2, _0801B32C @ =gUnk_080B77D8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801B32C: .4byte gUnk_080B77D8 + + thumb_func_start sub_0801B330 +sub_0801B330: @ 0x0801B330 + push {lr} + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + bl sub_08079BD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B340 +sub_0801B340: @ 0x0801B340 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0801B354 +sub_0801B354: @ 0x0801B354 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0801B368 +sub_0801B368: @ 0x0801B368 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r0, [r2, #0xe] + cmp r0, #0x3c + bls _0801B380 + movs r0, #0x3c + strb r0, [r2, #0xe] +_0801B380: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B384 +sub_0801B384: @ 0x0801B384 + push {lr} + bl DeleteThisEntity + pop {pc} + + thumb_func_start sub_0801B38C +sub_0801B38C: @ 0x0801B38C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _0801B3A0 + bl DeleteThisEntity +_0801B3A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B3A4 +sub_0801B3A4: @ 0x0801B3A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + movs r5, #8 + cmp r0, #0x28 + bhi _0801B3F4 + movs r5, #4 + ldr r1, [r4, #0x68] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0801B3C4 + adds r0, r1, #0 + subs r0, #0x10 + b _0801B3C8 +_0801B3C4: + adds r0, r1, #0 + adds r0, #0x10 +_0801B3C8: + str r0, [r4, #0x68] + ldr r1, [r4, #0x68] + movs r2, #0xf0 + adds r0, r1, #0 + ands r0, r2 + subs r0, #1 + cmp r0, #0x7f + bls _0801B3E0 + movs r0, #0x80 + lsls r0, r0, #8 + eors r1, r0 + str r1, [r4, #0x68] +_0801B3E0: + ldr r0, [r4, #0x68] + ands r0, r2 + movs r2, #0x98 + lsls r2, r2, #1 + subs r2, r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0801B3F4: + ldrb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0801B408 + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] + b _0801B416 +_0801B408: + ldrb r0, [r4, #0x1a] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1a] +_0801B416: + pop {r4, r5, pc} + + thumb_func_start sub_0801B418 +sub_0801B418: @ 0x0801B418 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + movs r6, #0x10 + movs r0, #0x10 + rsbs r0, r0, #0 + mov sb, r0 + mov r8, sb +_0801B42C: + movs r4, #0x10 + adds r7, r6, #0 + subs r7, #0x10 +_0801B432: + movs r0, #0x2e + ldrsh r2, [r5, r0] + adds r2, r2, r4 + movs r0, #0x32 + ldrsh r3, [r5, r0] + adds r3, r3, r6 + adds r0, r5, #0 + movs r1, #3 + bl sub_08008796 + subs r4, #0x10 + cmp r4, r8 + bge _0801B432 + adds r6, r7, #0 + cmp r6, sb + bge _0801B42C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 diff --git a/asm/playerItem/playerItemBow.s b/asm/playerItem/playerItemBow.s new file mode 100644 index 00000000..238e9cc4 --- /dev/null +++ b/asm/playerItem/playerItemBow.s @@ -0,0 +1,546 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08018FE4 +sub_08018FE4: @ 0x08018FE4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _08018FF6 + b _080190FC +_08018FF6: + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x6a + str r0, [r4, #0x74] + ldrb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x40 + strb r0, [r1] + movs r0, #0xa6 + strh r0, [r4, #0x12] + ldrb r0, [r1] + adds r6, r1, #0 + cmp r0, #0xe + bne _08019026 + movs r0, #0x80 + lsls r0, r0, #3 + b _0801902A +_08019026: + movs r0, #0xc0 + lsls r0, r0, #2 +_0801902A: + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r2, _0801905C @ =gPlayerEntity + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + adds r1, r4, #0 + adds r1, #0x3c + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + adds r5, r2, #0 + cmp r0, #2 + bne _08019060 + movs r0, #1 + b _08019062 + .align 2, 0 +_0801905C: .4byte gPlayerEntity +_08019060: + movs r0, #0 +_08019062: + strb r0, [r4, #0xb] + ldrb r1, [r5, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _080190F8 @ =gUnk_080B3E40 + adds r3, r3, r0 + movs r0, #0 + ldrsb r0, [r3, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r3, r0] + ldrh r5, [r5, #0x32] + adds r0, r0, r5 + strh r0, [r4, #0x32] + ldrb r1, [r3, #2] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r3, #3] + lsls r1, r1, #7 + movs r2, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r3, #6] + adds r5, r4, #0 + adds r5, #0x58 + strb r0, [r5] + movs r0, #4 + ldrsb r0, [r3, r0] + str r0, [r4, #0x6c] + movs r0, #5 + ldrsb r0, [r3, r0] + str r0, [r4, #0x70] + ldr r0, [r3, #8] + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0801766C + ldrb r0, [r6] + cmp r0, #0xe + bne _080190E8 + ldrb r0, [r5] + adds r0, #6 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #0 + strh r0, [r1] +_080190E8: + ldrb r1, [r5] + adds r0, r4, #0 + bl InitializeAnimation + movs r0, #0xfc + bl SoundReq + b _08019178 + .align 2, 0 +_080190F8: .4byte gUnk_080B3E40 +_080190FC: + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldr r2, _08019168 @ =gUnk_080B3E40 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #2] + ands r1, r3 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0801916C @ =gPlayerState + str r4, [r0, #0x2c] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xa + bne _08019170 + movs r0, #0x3c + str r0, [r4, #0x78] + ldrb r1, [r4, #0xa] + movs r0, #0x43 + movs r2, #1 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08019172 + adds r0, r4, #0 + bl CopyPosition + b _08019172 + .align 2, 0 +_08019168: .4byte gUnk_080B3E40 +_0801916C: .4byte gPlayerState +_08019170: + str r5, [r4, #0x78] +_08019172: + adds r0, r4, #0 + bl sub_0801917C +_08019178: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_start sub_0801917C +sub_0801917C: @ 0x0801917C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + cmp r2, #0 + bne _08019188 + b _0801934A +_08019188: + ldr r0, [r4, #0x74] + subs r0, #1 + str r0, [r4, #0x74] + cmp r0, #0 + bne _0801919C + adds r0, r4, #0 + bl sub_08019468 + bl DeleteThisEntity +_0801919C: + adds r0, r4, #0 + bl GetNextFrame + ldr r0, [r4, #0x74] + cmp r0, #0x17 + bhi _080191BA + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080191BA: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x40 + ldrb r1, [r0] + movs r5, #4 + adds r6, r0, #0 + cmp r1, #0xe + bne _080191D0 + movs r5, #1 +_080191D0: + ldr r2, [r4, #0x6c] + ldr r3, [r4, #0x70] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08008782 + cmp r0, #0 + beq _080191EE + ldrb r0, [r6] + cmp r0, #0xe + beq _080191EA + bl DeleteThisEntity +_080191EA: + movs r7, #1 + b _080191F0 +_080191EE: + movs r7, #0 +_080191F0: + ldrb r0, [r6] + cmp r0, #0xe + bne _0801920E + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0801920E + adds r0, r4, #0 + movs r1, #0x14 + movs r2, #0 + bl CreateFx +_0801920E: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0801921A + adds r0, r4, #0 + bl sub_0800451C +_0801921A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08019288 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0801928C @ =gPlayerEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _080192D0 + cmp r7, #0 + bne _080192D0 + ldr r1, _08019290 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _080192D0 + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r6] + cmp r0, #0xe + bne _08019294 + adds r0, r4, #0 + bl sub_08019468 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #0xf + adds r0, r4, #0 + bl InitializeAnimation + b _080192A2 + .align 2, 0 +_08019288: .4byte gRoomControls +_0801928C: .4byte gPlayerEntity +_08019290: .4byte gUnk_08003E44 +_08019294: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl InitializeAnimation +_080192A2: + adds r0, r4, #0 + bl sub_08017744 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x10] + strh r0, [r4, #0x24] + ldr r0, [r4, #0x2c] + cmp r0, #0 + bge _080192BC + movs r0, #0 +_080192BC: + str r0, [r4, #0x2c] + ldr r0, [r4, #0x30] + cmp r0, #0 + bge _080192C6 + movs r0, #0 +_080192C6: + str r0, [r4, #0x30] + movs r0, #0xc5 + lsls r0, r0, #1 + bl SoundReq +_080192D0: + adds r5, r4, #0 + adds r5, #0x41 + ldrb r0, [r5] + cmp r0, #0 + bne _080192DC + b _08019402 +_080192DC: + cmp r7, #0 + beq _080192E2 + b _08019402 +_080192E2: + ldrb r0, [r6] + cmp r0, #0xe + bne _080192EE + adds r0, r4, #0 + bl sub_08019468 +_080192EE: + adds r0, r4, #0 + bl sub_08017744 + ldrb r1, [r5] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x42 + bne _08019336 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl InitializeAnimation + b _08019402 +_08019336: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + b _08019402 +_0801934A: + ldr r1, _0801938C @ =gPlayerState + ldr r0, [r1, #0x2c] + cmp r0, r4 + bne _0801935E + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08019368 + str r0, [r1, #0x2c] +_0801935E: + adds r0, r1, #0 + adds r0, #0x21 + strb r2, [r0] + bl DeleteThisEntity +_08019368: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xa + bne _08019398 + ldr r0, _0801938C @ =gPlayerState + adds r2, r0, #0 + adds r2, #0x21 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _08019398 + cmp r1, #0x77 + bhi _08019390 + adds r0, #1 + strb r0, [r2] + b _08019398 + .align 2, 0 +_0801938C: .4byte gPlayerState +_08019390: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xe + strb r0, [r1] +_08019398: + ldr r0, _08019404 @ =gSave + adds r0, #0xad + ldrb r5, [r0] + ldrb r1, [r4, #0x1e] + ldr r2, [r4, #0x78] + subs r1, r1, r2 + ldr r0, _08019408 @ =gPlayerEntity + ldrb r0, [r0, #0x1e] + cmp r1, r0 + beq _080193C2 + adds r0, r0, r2 + strb r0, [r4, #0x1e] + cmp r5, #0 + bne _080193B8 + adds r0, #0x2a + strb r0, [r4, #0x1e] +_080193B8: + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080193C2: + ldr r0, _08019408 @ =gPlayerEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080193FA + cmp r5, #0 + beq _080193FA + adds r0, r4, #0 + adds r0, #0x40 + ldrb r2, [r0] + movs r0, #4 + movs r1, #1 + movs r3, #9 + bl CreatePlayerItem + cmp r0, #0 + beq _080193FA + ldr r2, _0801940C @ =gPlayerState + ldrb r1, [r2, #4] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #4] + movs r0, #1 + rsbs r0, r0, #0 + bl ModArrows +_080193FA: + ldr r1, _08019408 @ =gPlayerEntity + adds r0, r4, #0 + bl sub_08078E84 +_08019402: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08019404: .4byte gSave +_08019408: .4byte gPlayerEntity +_0801940C: .4byte gPlayerState diff --git a/asm/playerItem/playerItemC.inc b/asm/playerItem/playerItemC.inc new file mode 100644 index 00000000..2f5570aa --- /dev/null +++ b/asm/playerItem/playerItemC.inc @@ -0,0 +1,183 @@ + thumb_func_start PlayerItemC +PlayerItemC: @ 0x0801B898 + push {lr} + ldr r2, _0801B8AC @ =gUnk_080B7840 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801B8AC: .4byte gUnk_080B7840 + + thumb_func_start sub_0801B8B0 +sub_0801B8B0: @ 0x0801B8B0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801B8F0 @ =gPlayerState + ldrb r0, [r1, #0x1e] + cmp r0, #0 + beq _0801B8F4 + str r4, [r1, #0x2c] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0801B8FC + b _0801B8F8 + .align 2, 0 +_0801B8F0: .4byte gPlayerState +_0801B8F4: + bl DeleteThisEntity +_0801B8F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801B8FC +sub_0801B8FC: @ 0x0801B8FC + push {lr} + ldr r1, _0801B90C @ =gPlayerState + ldr r2, [r1, #0x2c] + cmp r2, r0 + beq _0801B910 + bl DeleteThisEntity + b _0801B934 + .align 2, 0 +_0801B90C: .4byte gPlayerState +_0801B910: + ldrb r0, [r1, #0x1e] + cmp r0, #0 + bne _0801B91E + str r0, [r1, #0x2c] + bl DeleteThisEntity + b _0801B934 +_0801B91E: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3c + movs r0, #0x21 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0801B938 +_0801B934: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B938 +sub_0801B938: @ 0x0801B938 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801B960 + ldr r3, _0801B95C @ =gPlayerEntity + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + b _0801B96E + .align 2, 0 +_0801B95C: .4byte gPlayerEntity +_0801B960: + ldr r3, _0801B998 @ =gPlayerEntity + ldrb r0, [r3, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 +_0801B96E: + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r0, #0x68 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _0801B99C + ldrb r0, [r3, #0x1e] + adds r0, #0x2e + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 + b _0801B9A0 + .align 2, 0 +_0801B998: .4byte gPlayerEntity +_0801B99C: + movs r0, #0xff + strb r0, [r4, #0x1e] +_0801B9A0: + ldrb r3, [r4, #0x14] + lsrs r3, r3, #1 + lsls r0, r3, #3 + ldr r1, _0801B9E0 @ =gUnk_080B7850 + adds r0, r0, r1 + str r0, [r4, #0x48] + lsls r3, r3, #1 + ldr r0, _0801B9E4 @ =gUnk_080B7848 + adds r3, r3, r0 + ldr r0, _0801B9E8 @ =gPlayerState + adds r0, #0xac + ldrh r0, [r0] + movs r1, #8 + ands r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + rsbs r1, r1, #0 + lsrs r1, r1, #0x1f + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r0, r4, #0 + bl sub_08008782 + ldr r1, _0801B9EC @ =gPlayerEntity + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, pc} + .align 2, 0 +_0801B9E0: .4byte gUnk_080B7850 +_0801B9E4: .4byte gUnk_080B7848 +_0801B9E8: .4byte gPlayerState +_0801B9EC: .4byte gPlayerEntity + + thumb_func_start sub_0801B9F0 +sub_0801B9F0: @ 0x0801B9F0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bl sub_08017744 + pop {pc} diff --git a/asm/playerItem/playerItemGustJar.inc b/asm/playerItem/playerItemGustJar.inc new file mode 100644 index 00000000..d3d495ab --- /dev/null +++ b/asm/playerItem/playerItemGustJar.inc @@ -0,0 +1,404 @@ + thumb_func_start PlayerItemGustJar +PlayerItemGustJar: @ 0x080ADA30 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080ADA60 @ =gPlayerState + ldr r0, [r1, #0x2c] + cmp r0, r4 + bne _080ADA42 + ldrb r0, [r1, #0x1c] + cmp r0, #0 + bne _080ADA46 +_080ADA42: + bl DeleteThisEntity +_080ADA46: + ldr r1, _080ADA64 @ =gUnk_08132700 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _080ADA68 @ =gPlayerEntity + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, pc} + .align 2, 0 +_080ADA60: .4byte gPlayerState +_080ADA64: .4byte gUnk_08132700 +_080ADA68: .4byte gPlayerEntity + + + thumb_func_start sub_080ADA6C +sub_080ADA6C: @ 0x080ADA6C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r0, _080ADAA4 @ =gUnk_08132B28 + str r0, [r4, #0x48] + movs r1, #3 + strb r1, [r0, #4] + strb r1, [r0, #3] + movs r1, #6 + strb r1, [r0, #5] + strb r1, [r0, #2] + adds r0, r4, #0 + bl sub_080ADC84 + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl InitAnimationForceUpdate + pop {r4, pc} + .align 2, 0 +_080ADAA4: .4byte gUnk_08132B28 + + thumb_func_start sub_080ADAA8 +sub_080ADAA8: @ 0x080ADAA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080ADC84 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ADACC + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080ADCA0 + b _080ADAD2 +_080ADACC: + adds r0, r4, #0 + bl UpdateAnimationSingleFrame +_080ADAD2: + pop {r4, pc} + + thumb_func_start sub_080ADAD4 +sub_080ADAD4: @ 0x080ADAD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _080ADAF4 @ =gPlayerState + ldrb r1, [r3, #0x1c] + adds r0, r1, #0 + cmp r0, #3 + bne _080ADAFC + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ADAF8 @ =gPlayerEntity + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #8 + b _080ADB0C + .align 2, 0 +_080ADAF4: .4byte gPlayerState +_080ADAF8: .4byte gPlayerEntity +_080ADAFC: + cmp r0, #6 + bne _080ADB18 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r0, _080ADB14 @ =gPlayerEntity + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_080ADB0C: + adds r0, r4, #0 + bl InitAnimationForceUpdate + b _080ADC08 + .align 2, 0 +_080ADB14: .4byte gPlayerEntity +_080ADB18: + movs r5, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080ADB58 + cmp r0, #1 + bne _080ADB36 + adds r0, r4, #0 + movs r1, #4 + bl sub_080ADCA0 + movs r0, #0x18 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xa] + b _080ADBE0 +_080ADB36: + adds r0, r4, #0 + movs r1, #1 + bl sub_080ADCDC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080ADBE0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080ADCA0 + strb r5, [r4, #0xa] + b _080ADBE0 +_080ADB58: + movs r0, #0xf + ands r0, r1 + cmp r0, #7 + bne _080ADB68 + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #0x7f + strb r0, [r1] +_080ADB68: + ldrb r0, [r3, #0x1d] + cmp r0, #2 + beq _080ADB94 + cmp r0, #2 + bgt _080ADB78 + cmp r0, #1 + beq _080ADBB0 + b _080ADBCA +_080ADB78: + cmp r0, #3 + bne _080ADBCA + adds r0, r4, #0 + movs r1, #3 + bl sub_080ADCDC + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] + movs r2, #3 + movs r5, #0xe9 + b _080ADBCA +_080ADB94: + adds r0, r4, #0 + movs r1, #2 + bl sub_080ADCDC + ldrb r0, [r4, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r4, #0x1a] + movs r2, #2 + movs r5, #0xe8 + b _080ADBCA +_080ADBB0: + adds r0, r4, #0 + movs r1, #1 + bl sub_080ADCDC + ldrb r0, [r4, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x1a] + movs r2, #1 + movs r5, #0xe7 +_080ADBCA: + ldr r0, _080ADC0C @ =gPlayerState + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #7 + bne _080ADBDA + movs r5, #0xee + movs r2, #1 +_080ADBDA: + ldrb r0, [r4, #0xf] + subs r0, r0, r2 + strb r0, [r4, #0xf] +_080ADBE0: + movs r0, #0xf + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _080ADBF6 + cmp r5, #0 + beq _080ADBF2 + adds r0, r5, #0 + bl SoundReq +_080ADBF2: + movs r0, #0xf + strb r0, [r4, #0xf] +_080ADBF6: + ldr r2, _080ADC10 @ =gPlayerEntity + adds r0, r2, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r0, [r2, #0x1e] + subs r0, r0, r1 + strb r0, [r4, #0x1e] +_080ADC08: + pop {r4, r5, pc} + .align 2, 0 +_080ADC0C: .4byte gPlayerState +_080ADC10: .4byte gPlayerEntity + + thumb_func_start sub_080ADC14 +sub_080ADC14: @ 0x080ADC14 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080ADC40 @ =gPlayerState + ldrb r0, [r0, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #1 + beq _080ADC48 + cmp r1, #6 + bne _080ADC56 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ADC44 @ =gPlayerEntity + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + adds r0, r4, #0 + bl InitAnimationForceUpdate + b _080ADC5C + .align 2, 0 +_080ADC40: .4byte gPlayerState +_080ADC44: .4byte gPlayerEntity +_080ADC48: + adds r0, r4, #0 + movs r1, #0 + bl sub_080ADCA0 + movs r0, #2 + strb r0, [r4, #0xc] + b _080ADC5C +_080ADC56: + adds r0, r4, #0 + bl UpdateAnimationSingleFrame +_080ADC5C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ADC60 +sub_080ADC60: @ 0x080ADC60 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ADC7C + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _080ADC82 +_080ADC7C: + adds r0, r2, #0 + bl UpdateAnimationSingleFrame +_080ADC82: + pop {pc} + + thumb_func_start sub_080ADC84 +sub_080ADC84: @ 0x080ADC84 + ldr r1, _080ADC9C @ =gPlayerEntity + ldrb r1, [r1, #0x18] + movs r2, #0x40 + ands r2, r1 + ldrb r3, [r0, #0x18] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #0x18] + bx lr + .align 2, 0 +_080ADC9C: .4byte gPlayerEntity + + thumb_func_start sub_080ADCA0 +sub_080ADCA0: @ 0x080ADCA0 + push {r4, lr} + ldr r3, _080ADCD4 @ =gUnk_08132714 + ldr r2, _080ADCD8 @ =gPlayerEntity + ldrb r2, [r2, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r1] + str r2, [r0, #0x5c] + ldrb r1, [r2] + adds r3, r0, #0 + adds r3, #0x58 + strb r1, [r3] + adds r1, r2, #1 + str r1, [r0, #0x5c] + ldrb r2, [r2, #1] + movs r4, #0x59 + strb r2, [r4, r0] + adds r1, #1 + str r1, [r0, #0x5c] + ldrb r1, [r3] + ldrh r2, [r0, #0x12] + bl sub_080042D0 + pop {r4, pc} + .align 2, 0 +_080ADCD4: .4byte gUnk_08132714 +_080ADCD8: .4byte gPlayerEntity + + thumb_func_start sub_080ADCDC +sub_080ADCDC: @ 0x080ADCDC + push {r4, r5, lr} + adds r3, r0, #0 + movs r0, #0x59 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + subs r0, r0, r1 + mov r1, ip + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _080ADD2E + ldr r1, [r3, #0x5c] + ldrb r0, [r1] + cmp r0, #0xff + bne _080ADD06 + adds r0, r1, #1 + str r0, [r3, #0x5c] + ldrb r1, [r1, #1] + subs r0, r0, r1 + str r0, [r3, #0x5c] +_080ADD06: + ldr r1, [r3, #0x5c] + ldrb r0, [r1] + adds r2, r3, #0 + adds r2, #0x58 + strb r0, [r2] + adds r1, #1 + str r1, [r3, #0x5c] + ldrb r0, [r1] + mov r4, ip + ldrb r4, [r4] + adds r0, r0, r4 + mov r5, ip + strb r0, [r5] + adds r1, #1 + str r1, [r3, #0x5c] + ldrb r1, [r2] + ldrh r2, [r3, #0x12] + adds r0, r3, #0 + bl sub_080042D0 +_080ADD2E: + pop {r4, r5, pc} diff --git a/asm/playerItem/playerItemLantern.inc b/asm/playerItem/playerItemLantern.inc new file mode 100644 index 00000000..6c46a948 --- /dev/null +++ b/asm/playerItem/playerItemLantern.inc @@ -0,0 +1,228 @@ + + thumb_func_start PlayerItemLantern +PlayerItemLantern: @ 0x08054A40 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08054A5C @ =gUnk_080FEEA8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08054A5C: .4byte gUnk_080FEEA8 + + thumb_func_start sub_08054A60 +sub_08054A60: @ 0x08054A60 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0xa0 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _08054AC4 @ =gPlayerEntity + ldrb r1, [r0, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl AllocMutableHitbox + cmp r0, #0 + bne _08054AAC + bl DeleteThisEntity +_08054AAC: + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08054AC8 + pop {r4, pc} + .align 2, 0 +_08054AC4: .4byte gPlayerEntity + + thumb_func_start sub_08054AC8 +sub_08054AC8: @ 0x08054AC8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _08054B14 @ =gPlayerEntity + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, [r4, #0x48] + ldr r2, _08054B18 @ =gUnk_080FEEB0 + ldrb r0, [r4, #0x14] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1, #1] + ldr r0, [r4, #0x48] + movs r1, #4 + strb r1, [r0, #6] + ldr r0, [r4, #0x48] + strb r1, [r0, #7] + ldrb r7, [r5, #0x1e] + adds r6, r7, #0 + cmp r6, #0x36 + bhi _08054B06 + ldrh r0, [r5, #0x12] + cmp r0, #6 + beq _08054B1C +_08054B06: + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08054B68 + .align 2, 0 +_08054B14: .4byte gPlayerEntity +_08054B18: .4byte gUnk_080FEEB0 +_08054B1C: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r5, #0x18] + movs r1, #0x40 + ands r1, r2 + ldrb r3, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + lsrs r2, r2, #7 + lsls r2, r2, #7 + movs r1, #0x7f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x1e] + cmp r6, r0 + beq _08054B52 + strb r7, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08054B52: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x5a + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] +_08054B68: + movs r0, #0x10 + bl IsItemEquipped + cmp r0, #1 + bhi _08054BFC + ldrb r0, [r4, #0x1e] + cmp r0, #0xff + beq _08054BE8 + ldr r0, _08054BF4 @ =gPlayerEntity + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08054BE8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08054BE8 + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0x45 + movs r1, #0 + movs r2, #0x10 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _08054BE8 + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r5, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r1, _08054BF8 @ =gUnk_080FEEB0 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r0, [r2] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_08054BE8: + ldr r1, _08054BF4 @ =gPlayerEntity + adds r0, r4, #0 + bl sub_08078E84 + b _08054C00 + .align 2, 0 +_08054BF4: .4byte gPlayerEntity +_08054BF8: .4byte gUnk_080FEEB0 +_08054BFC: + bl DeleteThisEntity +_08054C00: + pop {r4, r5, r6, r7, pc} + .align 2, 0 diff --git a/asm/playerItem/playerItemPacciCane.inc b/asm/playerItem/playerItemPacciCane.inc new file mode 100644 index 00000000..df3b81ff --- /dev/null +++ b/asm/playerItem/playerItemPacciCane.inc @@ -0,0 +1,117 @@ + thumb_func_start PlayerItemPacciCane +PlayerItemPacciCane: @ 0x080704BC + push {lr} + ldr r2, _080704D0 @ =gUnk_0811B9D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080704D0: .4byte gUnk_0811B9D8 + + thumb_func_start sub_080704D4 +sub_080704D4: @ 0x080704D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + movs r0, #0x87 + lsls r0, r0, #1 + bl SoundReq + adds r0, r4, #0 + bl sub_080704FC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080704FC +sub_080704FC: @ 0x080704FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0807052C @ =gPlayerEntity + adds r0, r5, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x80 + ands r0, r2 + ldr r1, _08070530 @ =gPlayerState + cmp r0, #0 + bne _08070518 + ldr r0, [r1, #0x2c] + cmp r4, r0 + beq _08070534 +_08070518: + ldr r0, [r1, #0x2c] + cmp r4, r0 + bne _08070522 + movs r0, #0 + str r0, [r1, #0x2c] +_08070522: + adds r0, r4, #0 + bl DeleteEntity + b _08070566 + .align 2, 0 +_0807052C: .4byte gPlayerEntity +_08070530: .4byte gPlayerState +_08070534: + movs r0, #0xf + ands r0, r2 + cmp r0, #0xf + beq _08070562 + ldrb r1, [r5, #0x1e] + adds r0, #0x91 + subs r0, r1, r0 + ldrb r2, [r4, #0x1e] + cmp r0, r2 + beq _08070558 + adds r0, r1, #0 + adds r0, #0x6f + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08070558: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078E84 + b _08070566 +_08070562: + movs r0, #0xff + strb r0, [r4, #0x1e] +_08070566: + ldr r2, _08070580 @ =gPlayerEntity + ldrb r1, [r2, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08070584 + ldrb r0, [r2, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f + movs r0, #1 + eors r2, r0 + b _0807058A + .align 2, 0 +_08070580: .4byte gPlayerEntity +_08070584: + ldrb r0, [r2, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f +_0807058A: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + pop {r4, r5, pc} + .align 2, 0 diff --git a/asm/playerItem/playerItemShield.inc b/asm/playerItem/playerItemShield.inc new file mode 100644 index 00000000..8ca14a99 --- /dev/null +++ b/asm/playerItem/playerItemShield.inc @@ -0,0 +1,389 @@ + thumb_func_start PlayerItemShield +PlayerItemShield: @ 0x080A2D74 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x6c] + cmp r0, #0 + beq _080A2D82 + subs r0, #1 + str r0, [r2, #0x6c] +_080A2D82: + ldr r0, _080A2D94 @ =gUnk_081271D4 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2D94: .4byte gUnk_081271D4 + + thumb_func_start sub_080A2D98 +sub_080A2D98: @ 0x080A2D98 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080A2DD0 @ =gPlayerState + str r4, [r0, #0x2c] + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xe + bne _080A2DD8 + movs r0, #0x27 + str r0, [r4, #0x70] + ldr r1, _080A2DD4 @ =gUnk_081271DC + ldrb r0, [r1, #1] + str r0, [r4, #0x78] + str r2, [r4, #0x74] + str r1, [r4, #0x7c] + b _080A2DDA + .align 2, 0 +_080A2DD0: .4byte gPlayerState +_080A2DD4: .4byte gUnk_081271DC +_080A2DD8: + str r2, [r4, #0x70] +_080A2DDA: + ldr r0, _080A2DFC @ =gPlayerEntity + ldrb r1, [r0, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_080A2E00 + pop {r4, pc} + .align 2, 0 +_080A2DFC: .4byte gPlayerEntity + + thumb_func_start sub_080A2E00 +sub_080A2E00: @ 0x080A2E00 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _080A2E90 @ =gPlayerEntity + mov ip, r0 + mov r1, ip + adds r1, #0x3d + ldrb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A2E1A + lsrs r0, r0, #0x18 + cmp r0, #0x81 + bne _080A2E40 +_080A2E1A: + adds r5, r4, #0 + adds r5, #0x3d + ldrb r0, [r5] + movs r2, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + mov r1, ip + adds r1, #0x3e + strb r0, [r1] + adds r3, r4, #0 + adds r3, #0x42 + ldrb r1, [r3] + mov r0, ip + adds r0, #0x42 + strb r1, [r0] + strb r2, [r3] + strb r2, [r5] +_080A2E40: + ldr r0, _080A2E94 @ =gPlayerState + ldrb r3, [r0, #3] + adds r7, r0, #0 + cmp r3, #0 + beq _080A2F20 + ldr r0, [r7, #0x2c] + cmp r4, r0 + bne _080A2F20 + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _080A2E9C + ldr r1, _080A2E98 @ =gUnk_08127240 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldr r0, _080A2E90 @ =gPlayerEntity + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r1, #0x20 + adds r2, r4, #0 + adds r2, #0x3c + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x7f + ands r0, r3 + strb r0, [r7, #3] + adds r0, r4, #0 + bl sub_080176E4 + b _080A2F30 + .align 2, 0 +_080A2E90: .4byte gPlayerEntity +_080A2E94: .4byte gPlayerState +_080A2E98: .4byte gUnk_08127240 +_080A2E9C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080A2F30 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x42 + bne _080A2F06 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0xe + bne _080A2F06 + movs r0, #0x40 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080A2F06 + ldrb r3, [r5] + movs r0, #0x15 + movs r1, #0 + movs r2, #0 + bl CreatePlayerItem + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080A2EF4 + movs r0, #1 + strb r0, [r1, #0xf] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] +_080A2EF4: + ldr r1, _080A2F1C @ =gUnk_08127220 + ldrb r0, [r1, #1] + str r0, [r4, #0x78] + str r6, [r4, #0x74] + str r1, [r4, #0x7c] + ldrb r0, [r7, #3] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r7, #3] +_080A2F06: + ldr r0, [r4, #0x6c] + cmp r0, #0 + bne _080A2F30 + movs r0, #0x8c + lsls r0, r0, #1 + bl SoundReq + movs r0, #8 + str r0, [r4, #0x6c] + b _080A2F30 + .align 2, 0 +_080A2F1C: .4byte gUnk_08127220 +_080A2F20: + movs r1, #0 + strb r1, [r7, #3] + ldr r0, [r7, #0x2c] + cmp r0, r4 + bne _080A2F2C + str r1, [r7, #0x2c] +_080A2F2C: + bl DeleteThisEntity +_080A2F30: + ldr r6, _080A301C @ =gPlayerEntity + ldrh r0, [r6, #0x12] + cmp r0, #1 + beq _080A2F3E + cmp r0, #4 + beq _080A2F3E + b _080A3064 +_080A2F3E: + ldrb r0, [r6, #0x1e] + subs r0, #0x25 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3e + bls _080A2F4C + b _080A3064 +_080A2F4C: + ldrb r2, [r6, #0x18] + movs r1, #0x40 + ands r1, r2 + ldrb r3, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + lsrs r2, r2, #7 + lsls r2, r2, #7 + movs r3, #0x7f + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r6, #0x1e] + ldr r1, [r4, #0x70] + adds r0, r1, #0 + subs r0, #0x25 + adds r0, r2, r0 + adds r5, r4, #0 + adds r5, #0x68 + ldrb r7, [r4, #0x1e] + cmp r0, r7 + beq _080A2FA2 + adds r0, r1, #0 + adds r0, #0xdb + adds r0, r2, r0 + strb r0, [r4, #0x1e] + ldrb r0, [r5] + cmp r0, #0xe + bne _080A2F98 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _080A2FA2 +_080A2F98: + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080A2FA2: + ldrb r0, [r5] + cmp r0, #0xe + bne _080A303E + ldr r0, _080A301C @ =gPlayerEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080A303E + ldr r0, [r4, #0x78] + subs r3, r0, #1 + str r3, [r4, #0x78] + cmp r3, #0 + bne _080A303E + ldr r0, [r4, #0x74] + adds r0, #1 + str r0, [r4, #0x74] + lsls r0, r0, #2 + ldr r1, [r4, #0x7c] + adds r2, r1, r0 + ldrb r0, [r2] + ldr r7, _080A3020 @ =gPlayerState + cmp r0, #0xff + bne _080A2FEC + ldrb r1, [r7, #3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A2FE8 + ldr r0, _080A3024 @ =gUnk_081271DC + str r0, [r4, #0x7c] + movs r0, #0xbf + ands r0, r1 + strb r0, [r7, #3] +_080A2FE8: + str r3, [r4, #0x74] + ldr r1, [r4, #0x7c] +_080A2FEC: + ldr r0, [r4, #0x74] + lsls r0, r0, #2 + adds r2, r1, r0 + ldrb r0, [r2, #1] + str r0, [r4, #0x78] + ldrb r1, [r7, #3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A3028 + ldr r0, _080A301C @ =gPlayerEntity + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + adds r1, #8 + ldrb r2, [r2] + adds r1, r1, r2 + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 + b _080A303E + .align 2, 0 +_080A301C: .4byte gPlayerEntity +_080A3020: .4byte gPlayerState +_080A3024: .4byte gUnk_081271DC +_080A3028: + ldr r0, _080A3060 @ =gPlayerEntity + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r2] + adds r1, r1, r2 + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080A303E: + ldr r1, _080A3060 @ =gPlayerEntity + adds r0, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x5a + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0x5b + ldrb r0, [r0] + adds r2, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08078E84 + b _080A3068 + .align 2, 0 +_080A3060: .4byte gPlayerEntity +_080A3064: + movs r0, #0xff + strb r0, [r4, #0x1e] +_080A3068: + pop {r4, r5, r6, r7, pc} + .align 2, 0 diff --git a/asm/playerItem/playerItemSwordBeam.inc b/asm/playerItem/playerItemSwordBeam.inc new file mode 100644 index 00000000..33a0f338 --- /dev/null +++ b/asm/playerItem/playerItemSwordBeam.inc @@ -0,0 +1,251 @@ + thumb_func_start PlayerItemSwordBeam +PlayerItemSwordBeam: @ 0x08019480 + push {lr} + ldr r2, _08019494 @ =gUnk_080B43F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08019494: .4byte gUnk_080B43F4 + + thumb_func_start sub_08019498 +sub_08019498: @ 0x08019498 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08019504 @ =gPlayerEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + ldrb r0, [r5, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r4, #0x3c + ldrb r0, [r4] + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x3c + strb r0, [r1] + ldr r0, _08019508 @ =gUnk_080B4408 + str r0, [r5, #0x48] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #2 + str r0, [r5, #0x74] + str r2, [r5, #0x70] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080194E6 + movs r0, #1 + strb r0, [r5, #0xb] +_080194E6: + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #0x3c + str r0, [r5, #0x6c] + ldrb r0, [r5, #0x14] + adds r2, r0, #0 + cmp r0, #2 + beq _08019534 + cmp r0, #2 + bgt _0801950C + cmp r0, #0 + beq _08019516 + b _0801954E + .align 2, 0 +_08019504: .4byte gPlayerEntity +_08019508: .4byte gUnk_080B4408 +_0801950C: + cmp r0, #4 + beq _0801952C + cmp r0, #6 + beq _08019542 + b _0801954E +_08019516: + ldrh r0, [r5, #0x2e] + subs r0, #3 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #8 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x18] + b _0801954E +_0801952C: + ldrh r0, [r5, #0x2e] + adds r0, #2 + strh r0, [r5, #0x2e] + b _0801954E +_08019534: + ldrb r0, [r5, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrh r0, [r5, #0x2e] + adds r0, #1 + b _08019546 +_08019542: + ldrh r0, [r5, #0x2e] + subs r0, #1 +_08019546: + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #4 + strh r0, [r5, #0x32] +_0801954E: + ldr r1, _08019578 @ =gUnk_080B43FC + lsrs r0, r2, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl InitializeAnimation + adds r0, r5, #0 + bl sub_0801766C + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + bl sub_08019580 + ldr r0, _0801957C @ =0x0000013F + bl SoundReq + pop {r4, r5, pc} + .align 2, 0 +_08019578: .4byte gUnk_080B43FC +_0801957C: .4byte 0x0000013F + + thumb_func_start sub_08019580 +sub_08019580: @ 0x08019580 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + subs r0, #1 + str r0, [r4, #0x6c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08019638 + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080195B0 + adds r0, r4, #0 + bl sub_0800451C +_080195B0: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0801962C @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _08019630 @ =gPlayerEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _08019602 + ldr r1, _08019634 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _08019602 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_08019602: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0801961A + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_0801961A: + adds r0, r4, #0 + movs r1, #0xc + bl sub_08008790 + cmp r0, #0 + beq _0801963C + bl DeleteThisEntity + b _0801963C + .align 2, 0 +_0801962C: .4byte gRoomControls +_08019630: .4byte gPlayerEntity +_08019634: .4byte gUnk_08003E44 +_08019638: + bl DeleteThisEntity +_0801963C: + adds r0, r4, #0 + bl sub_08019644 + pop {r4, r5, pc} + + thumb_func_start sub_08019644 +sub_08019644: @ 0x08019644 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x74] + subs r1, r0, #1 + str r1, [r2, #0x74] + cmp r1, #0 + bne _08019674 + movs r0, #2 + str r0, [r2, #0x74] + ldr r0, [r2, #0x70] + adds r0, #1 + str r0, [r2, #0x70] + ldr r3, _08019678 @ =gUnk_080B4400 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0xff + bne _08019668 + str r1, [r2, #0x70] +_08019668: + ldr r0, [r2, #0x70] + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_0801D2B4 +_08019674: + pop {pc} + .align 2, 0 +_08019678: .4byte gUnk_080B4400 diff --git a/asm/playerItem/playerItemSwordSpin.inc b/asm/playerItem/playerItemSwordSpin.inc new file mode 100644 index 00000000..d01ca553 --- /dev/null +++ b/asm/playerItem/playerItemSwordSpin.inc @@ -0,0 +1,594 @@ + thumb_func_start PlayerItemSwordSpin +PlayerItemSwordSpin: @ 0x0801BA00 + push {lr} + ldr r2, _0801BA14 @ =gUnk_080B7870 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801BA14: .4byte gUnk_080B7870 + + thumb_func_start sub_0801BA18 +sub_0801BA18: @ 0x0801BA18 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + cmp r0, #0x36 + bne _0801BA2A + movs r0, #0x36 + b _0801BA34 +_0801BA2A: + ldrb r1, [r1] + ldr r0, _0801BA4C @ =gSave + adds r0, r0, r1 + adds r0, #0x9a + ldrb r0, [r0] +_0801BA34: + adds r1, r4, #0 + adds r1, #0x6f + strb r0, [r1] + subs r0, #0x20 + cmp r0, #0x11 + bhi _0801BB02 + lsls r0, r0, #2 + ldr r1, _0801BA50 @ =_0801BA54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BA4C: .4byte gSave +_0801BA50: .4byte _0801BA54 +_0801BA54: @ jump table + .4byte _0801BA9C @ case 0 + .4byte _0801BAF8 @ case 1 + .4byte _0801BAF8 @ case 2 + .4byte _0801BAF8 @ case 3 + .4byte _0801BAF8 @ case 4 + .4byte _0801BAF8 @ case 5 + .4byte _0801BB02 @ case 6 + .4byte _0801BB02 @ case 7 + .4byte _0801BB02 @ case 8 + .4byte _0801BAF8 @ case 9 + .4byte _0801BAF8 @ case 10 + .4byte _0801BAF8 @ case 11 + .4byte _0801BAF8 @ case 12 + .4byte _0801BAF8 @ case 13 + .4byte _0801BAF8 @ case 14 + .4byte _0801BB02 @ case 15 + .4byte _0801BB02 @ case 16 + .4byte _0801BB02 @ case 17 +_0801BA9C: + adds r0, r4, #0 + bl AllocMutableHitbox + cmp r0, #0 + beq _0801BB26 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0801BAF4 @ =gPlayerEntity + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r2, #0x20 + adds r3, r4, #0 + adds r3, #0x3c + orrs r0, r2 + strb r0, [r3] + adds r1, #0x3b + ldrb r0, [r1] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + adds r1, #5 + movs r0, #0x1f + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xa] + movs r0, #0x20 + strb r0, [r4, #0xb] + movs r0, #0x52 + strb r0, [r4, #0xe] + movs r0, #0x1b + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0801766C + movs r0, #0xee + lsls r0, r0, #1 + bl SoundReq + b _0801BB0A + .align 2, 0 +_0801BAF4: .4byte gPlayerEntity +_0801BAF8: + movs r0, #0xd5 + strb r0, [r4, #0xe] + movs r0, #0x3c + strb r0, [r4, #0xf] + b _0801BB0A +_0801BB02: + movs r1, #0 + movs r0, #0x37 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] +_0801BB0A: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldr r0, _0801BB28 @ =gPlayerState + str r4, [r0, #0x2c] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_0801BB2C +_0801BB26: + pop {r4, pc} + .align 2, 0 +_0801BB28: .4byte gPlayerState + + thumb_func_start sub_0801BB2C +sub_0801BB2C: @ 0x0801BB2C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0801BB88 @ =gPlayerState + ldr r0, [r0, #0x2c] + cmp r0, r5 + beq _0801BB68 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0801BB64 + ldrb r0, [r5, #0xb] + cmp r0, #0x20 + beq _0801BB64 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r4, [r0] + subs r4, #0x1c + ldrb r0, [r5, #0xb] + adds r1, r4, #0 + bl SetBottleContents + ldrb r0, [r5, #0xb] + adds r1, r4, #0 + movs r2, #5 + bl sub_080A7C18 + ldr r0, _0801BB8C @ =0x00000109 + bl SoundReq +_0801BB64: + bl DeleteThisEntity +_0801BB68: + ldr r1, _0801BB90 @ =gPlayerEntity + adds r0, r5, #0 + bl sub_0801BDE8 + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0x11 + bhi _0801BC04 + lsls r0, r0, #2 + ldr r1, _0801BB94 @ =_0801BB98 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BB88: .4byte gPlayerState +_0801BB8C: .4byte 0x00000109 +_0801BB90: .4byte gPlayerEntity +_0801BB94: .4byte _0801BB98 +_0801BB98: @ jump table + .4byte _0801BBE0 @ case 0 + .4byte _0801BBE8 @ case 1 + .4byte _0801BBE8 @ case 2 + .4byte _0801BBE8 @ case 3 + .4byte _0801BBE8 @ case 4 + .4byte _0801BBE8 @ case 5 + .4byte _0801BC04 @ case 6 + .4byte _0801BC04 @ case 7 + .4byte _0801BC04 @ case 8 + .4byte _0801BBE8 @ case 9 + .4byte _0801BBE8 @ case 10 + .4byte _0801BBE8 @ case 11 + .4byte _0801BBE8 @ case 12 + .4byte _0801BBE8 @ case 13 + .4byte _0801BBE8 @ case 14 + .4byte _0801BC04 @ case 15 + .4byte _0801BC04 @ case 16 + .4byte _0801BC04 @ case 17 +_0801BBE0: + adds r0, r5, #0 + bl sub_0801BC0C + b _0801BC0A +_0801BBE8: + ldr r0, _0801BC00 @ =gPlayerEntity + adds r1, r0, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0801BC0A + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0801BC14 + b _0801BC0A + .align 2, 0 +_0801BC00: .4byte gPlayerEntity +_0801BC04: + adds r0, r5, #0 + bl sub_0801BCB4 +_0801BC0A: + pop {r4, r5, pc} + + thumb_func_start sub_0801BC0C +sub_0801BC0C: @ 0x0801BC0C + push {lr} + bl sub_0801BE38 + pop {pc} + + thumb_func_start sub_0801BC14 +sub_0801BC14: @ 0x0801BC14 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0x20 + movs r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + subs r0, #0x21 + cmp r0, #0xd + bhi _0801BC98 + lsls r0, r0, #2 + ldr r1, _0801BC30 @ =_0801BC34 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BC30: .4byte _0801BC34 +_0801BC34: @ jump table + .4byte _0801BC76 @ case 0 + .4byte _0801BC6C @ case 1 + .4byte _0801BC6E @ case 2 + .4byte _0801BC76 @ case 3 + .4byte _0801BC72 @ case 4 + .4byte _0801BC98 @ case 5 + .4byte _0801BC98 @ case 6 + .4byte _0801BC98 @ case 7 + .4byte _0801BC7A @ case 8 + .4byte _0801BC7A @ case 9 + .4byte _0801BC7A @ case 10 + .4byte _0801BC7A @ case 11 + .4byte _0801BC7A @ case 12 + .4byte _0801BC7A @ case 13 +_0801BC6C: + movs r6, #0x23 +_0801BC6E: + movs r5, #0x28 + b _0801BC98 +_0801BC72: + movs r5, #0x50 + b _0801BC98 +_0801BC76: + movs r5, #0xa0 + b _0801BC98 +_0801BC7A: + ldr r1, _0801BCB0 @ =gSave + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0xb3 + strb r0, [r2] + adds r1, #0xc6 + movs r0, #0xe1 + lsls r0, r0, #2 + strh r0, [r1] + movs r0, #0x88 + lsls r0, r0, #2 + bl SoundReq +_0801BC98: + adds r0, r5, #0 + bl ModHealth + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + subs r1, #0x1c + adds r0, r6, #0 + bl SetBottleContents + pop {r4, r5, r6, pc} + .align 2, 0 +_0801BCB0: .4byte gSave + + thumb_func_start sub_0801BCB4 +sub_0801BCB4: @ 0x0801BCB4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0801BCEC @ =gPlayerEntity + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _0801BD6C + adds r0, r4, #0 + adds r0, #0x6f + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x36 + beq _0801BCDA + subs r0, #7 + ldrb r1, [r0] + subs r1, #0x1c + movs r0, #0x20 + bl SetBottleContents +_0801BCDA: + ldrb r0, [r5] + subs r0, #0x26 + cmp r0, #0xb + bhi _0801BD6C + lsls r0, r0, #2 + ldr r1, _0801BCF0 @ =_0801BCF4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BCEC: .4byte gPlayerEntity +_0801BCF0: .4byte _0801BCF4 +_0801BCF4: @ jump table + .4byte _0801BD24 @ case 0 + .4byte _0801BD32 @ case 1 + .4byte _0801BD40 @ case 2 + .4byte _0801BD6C @ case 3 + .4byte _0801BD6C @ case 4 + .4byte _0801BD6C @ case 5 + .4byte _0801BD6C @ case 6 + .4byte _0801BD6C @ case 7 + .4byte _0801BD6C @ case 8 + .4byte _0801BD54 @ case 9 + .4byte _0801BD54 @ case 10 + .4byte _0801BD54 @ case 11 +_0801BD24: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl CreateObjectWithParent + b _0801BD6C +_0801BD32: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #1 + bl CreateObjectWithParent + b _0801BD6C +_0801BD40: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #2 + movs r3, #2 + bl CreateObjectWithParent + movs r0, #0x20 + bl ModHealth + b _0801BD6C +_0801BD54: + ldr r1, _0801BD88 @ =gSave + ldrb r0, [r5] + adds r2, r1, #0 + adds r2, #0xb2 + strb r0, [r2] + adds r1, #0xc4 + movs r0, #0xe1 + lsls r0, r0, #4 + strh r0, [r1] + ldr r0, _0801BD8C @ =0x000001CF + bl SoundReq +_0801BD6C: + ldr r0, _0801BD90 @ =gPlayerEntity + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #2 + bne _0801BDAE + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + cmp r0, #0x26 + beq _0801BD94 + cmp r0, #0x27 + beq _0801BDA2 + b _0801BDAE + .align 2, 0 +_0801BD88: .4byte gSave +_0801BD8C: .4byte 0x000001CF +_0801BD90: .4byte gPlayerEntity +_0801BD94: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl CreateObjectWithParent + b _0801BDAE +_0801BDA2: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #1 + bl CreateObjectWithParent +_0801BDAE: + ldr r0, _0801BDC8 @ =gPlayerEntity + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #3 + bne _0801BDE6 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + cmp r0, #0x26 + beq _0801BDCC + cmp r0, #0x27 + beq _0801BDDA + b _0801BDE6 + .align 2, 0 +_0801BDC8: .4byte gPlayerEntity +_0801BDCC: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl CreateObjectWithParent + b _0801BDE6 +_0801BDDA: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #0 + bl CreateObjectWithParent +_0801BDE6: + pop {r4, r5, pc} + + thumb_func_start sub_0801BDE8 +sub_0801BDE8: @ 0x0801BDE8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x1e] + ldrb r1, [r4, #0xe] + subs r0, r0, r1 + ldrb r1, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r4, #0x1e] + cmp r0, r1 + beq _0801BE0A + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_0801BE0A: + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + movs r2, #1 + ands r0, r2 + eors r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _0801BE34 @ =gPlayerEntity + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, r5, pc} + .align 2, 0 +_0801BE34: .4byte gPlayerEntity + + thumb_func_start sub_0801BE38 +sub_0801BE38: @ 0x0801BE38 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r0, [r2] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x49 + beq _0801BE54 + cmp r1, #0x4d + beq _0801BE60 + movs r0, #0 + strb r0, [r2] + b _0801BE6A +_0801BE54: + movs r0, #0x28 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0801B9F0 + b _0801BE6A +_0801BE60: + movs r0, #0x27 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0801B9F0 +_0801BE6A: + ldrb r0, [r4, #0x1e] + subs r0, #0x1b + lsls r0, r0, #2 + ldr r1, _0801BE84 @ =gUnk_080B788A + adds r2, r0, r1 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0801BE88 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + rsbs r0, r0, #0 + b _0801BE8C + .align 2, 0 +_0801BE84: .4byte gUnk_080B788A +_0801BE88: + ldr r1, [r4, #0x48] + ldrb r0, [r2] +_0801BE8C: + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #2] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #3] + strb r0, [r1, #7] + ldr r0, _0801BEF0 @ =gPlayerEntity + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _0801BEDE + ldrb r0, [r4, #0xb] + cmp r0, #0x20 + bne _0801BEE4 + subs r0, r1, #1 + lsls r0, r0, #1 + ldr r1, _0801BEF4 @ =gUnk_080B7878 + adds r2, r0, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0801BECA + rsbs r1, r1, #0 +_0801BECA: + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r0, r4, #0 + bl sub_080002B4 + cmp r0, #0x10 + bne _0801BEDE + movs r0, #0x26 + strb r0, [r4, #0xb] +_0801BEDE: + ldrb r0, [r4, #0xb] + cmp r0, #0x20 + beq _0801BEEE +_0801BEE4: + ldr r2, _0801BEF0 @ =gPlayerEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0801BEEE: + pop {r4, pc} + .align 2, 0 +_0801BEF0: .4byte gPlayerEntity +_0801BEF4: .4byte gUnk_080B7878 diff --git a/data/const/playerItem/playerItem10.inc b/data/const/playerItem/playerItem10.inc new file mode 100644 index 00000000..ae6d8089 --- /dev/null +++ b/data/const/playerItem/playerItem10.inc @@ -0,0 +1,3 @@ +gUnk_0812AA80:: @ 0812AA80 + .4byte sub_080ACC04 + .4byte sub_080ACC5C diff --git a/data/const/playerItem/playerItem11.inc b/data/const/playerItem/playerItem11.inc index 3d9ad52e..4bb86ad2 100644 --- a/data/const/playerItem/playerItem11.inc +++ b/data/const/playerItem/playerItem11.inc @@ -1,6 +1,26 @@ -gUnk_08109AC8:: @ 08109AC8 - .4byte sub_0805FBE8 - .4byte sub_0805FC74 -gUnk_08109AD0:: @ 08109AD0 - .incbin "baserom.gba", 0x109AD0, 0x0000008 +gUnk_080B3DD0:: @ 080B3DD0 + .4byte sub_08018CBC + .4byte sub_08018DE8 + .4byte sub_08018E68 + .4byte sub_08018F6C + +gUnk_080B3DE0:: @ 080B3DE0 + .incbin "baserom.gba", 0x0B3DE0, 0x0000008 + +gUnk_080B3DE8:: @ 080B3DE8 + .4byte gUnk_080B3E18 + .4byte gUnk_080B3E20 + .4byte gUnk_080B3E28 + +gUnk_080B3DF4:: @ 080B3DF4 + .incbin "baserom.gba", 0x0B3DF4, 0x0000024 + +gUnk_080B3E18:: @ 080B3E18 + .incbin "baserom.gba", 0x0B3E18, 0x0000008 + +gUnk_080B3E20:: @ 080B3E20 + .incbin "baserom.gba", 0x0B3E20, 0x0000008 + +gUnk_080B3E28:: @ 080B3E28 + .incbin "baserom.gba", 0x0B3E28, 0x0000008 diff --git a/data/const/playerItem/playerItem12.inc b/data/const/playerItem/playerItem12.inc new file mode 100644 index 00000000..6b61df5e --- /dev/null +++ b/data/const/playerItem/playerItem12.inc @@ -0,0 +1,18 @@ +gUnk_0811B98C:: @ 0811B98C + .4byte sub_08070100 + .4byte sub_080701F8 + .4byte sub_0807037C + .4byte sub_08070398 + .4byte sub_080703BC + +gUnk_0811B9A0:: @ 0811B9A0 + .incbin "baserom.gba", 0x11B9A0, 0x0000008 + +gUnk_0811B9A8:: @ 0811B9A8 + .incbin "baserom.gba", 0x11B9A8, 0x0000020 + +gUnk_0811B9C8:: @ 0811B9C8 + .incbin "baserom.gba", 0x11B9C8, 0x0000008 + +gUnk_0811B9D0:: @ 0811B9D0 + .incbin "baserom.gba", 0x11B9D0, 0x0000008 diff --git a/data/const/playerItem/playerItem13.inc b/data/const/playerItem/playerItem13.inc new file mode 100644 index 00000000..7571b44b --- /dev/null +++ b/data/const/playerItem/playerItem13.inc @@ -0,0 +1,20 @@ +gUnk_081320A8:: @ 081320A8 + .4byte sub_080ACF2C + .4byte sub_080ACFCC + .4byte sub_080AD040 + .4byte sub_080AD274 + +gUnk_081320B8:: @ 081320B8 + .incbin "baserom.gba", 0x1320B8, 0x000000C + +gUnk_081320C4:: @ 081320C4 + .incbin "baserom.gba", 0x1320C4, 0x0000008 + +gUnk_081320CC:: @ 081320CC + .incbin "baserom.gba", 0x1320CC, 0x0000008 + +gUnk_081320D4:: @ 081320D4 + .incbin "baserom.gba", 0x1320D4, 0x0000010 + +gUnk_081320E4:: @ 081320E4 + .incbin "baserom.gba", 0x1320E4, 0x000000C diff --git a/data/const/playerItem/playerItem14.inc b/data/const/playerItem/playerItem14.inc new file mode 100644 index 00000000..3d9ad52e --- /dev/null +++ b/data/const/playerItem/playerItem14.inc @@ -0,0 +1,6 @@ +gUnk_08109AC8:: @ 08109AC8 + .4byte sub_0805FBE8 + .4byte sub_0805FC74 + +gUnk_08109AD0:: @ 08109AD0 + .incbin "baserom.gba", 0x109AD0, 0x0000008 diff --git a/data/const/playerItem/playerItem15.inc b/data/const/playerItem/playerItem15.inc new file mode 100644 index 00000000..5bb69a4e --- /dev/null +++ b/data/const/playerItem/playerItem15.inc @@ -0,0 +1,6 @@ +gUnk_08127270:: @ 08127270 + .4byte sub_080A3084 + .4byte sub_080A310C + +gUnk_08127278:: @ 08127278 + .incbin "baserom.gba", 0x127278, 0x0000008 diff --git a/data/const/playerItem/playerItem3.inc b/data/const/playerItem/playerItem3.inc new file mode 100644 index 00000000..5bcde843 --- /dev/null +++ b/data/const/playerItem/playerItem3.inc @@ -0,0 +1,12 @@ +gUnk_080B77FC:: @ 080B77FC + .4byte sub_0801B4C8 + .4byte sub_0801B584 + .4byte sub_0801B680 + .4byte sub_0801B7A8 + .incbin "baserom.gba", 0x0B780C, 0x000001A + +gUnk_080B7826:: @ 080B7826 + .incbin "baserom.gba", 0x0B7826, 0x0000008 + +gUnk_080B782E:: @ 080B782E + .incbin "baserom.gba", 0x0B782E, 0x0000012 diff --git a/data/const/playerItem/playerItemBomb.inc b/data/const/playerItem/playerItemBomb.inc new file mode 100644 index 00000000..146286cd --- /dev/null +++ b/data/const/playerItem/playerItemBomb.inc @@ -0,0 +1,16 @@ +gUnk_080B77C8:: @ 080B77C8 + .4byte sub_0801B250 + .4byte sub_0801B2CC + .4byte sub_0801B318 + .4byte sub_0801B38C + +gUnk_080B77D8:: @ 080B77D8 + .4byte sub_0801B330 + .4byte sub_0801B340 + .4byte sub_0801B354 + .4byte sub_0801B368 + .4byte sub_0801B384 + .incbin "baserom.gba", 0x0B77EC, 0x0000008 + +gUnk_080B77F4:: @ 080B77F4 + .incbin "baserom.gba", 0x0B77F4, 0x0000008 diff --git a/data/const/playerItem/playerItemBow.inc b/data/const/playerItem/playerItemBow.inc new file mode 100644 index 00000000..7f7d68c1 --- /dev/null +++ b/data/const/playerItem/playerItemBow.inc @@ -0,0 +1,8 @@ +gUnk_080B3E30:: @ 080B3E30 + .4byte sub_08018FE4 + .4byte sub_0801917C + .4byte sub_08019410 + .4byte sub_08019444 + +gUnk_080B3E40:: @ 080B3E40 + .incbin "baserom.gba", 0x0B3E40, 0x0000030 diff --git a/data/const/playerItem/playerItemC.inc b/data/const/playerItem/playerItemC.inc new file mode 100644 index 00000000..abee681e --- /dev/null +++ b/data/const/playerItem/playerItemC.inc @@ -0,0 +1,9 @@ +gUnk_080B7840:: @ 080B7840 + .4byte sub_0801B8B0 + .4byte sub_0801B8FC + +gUnk_080B7848:: @ 080B7848 + .incbin "baserom.gba", 0x0B7848, 0x0000008 + +gUnk_080B7850:: @ 080B7850 + .incbin "baserom.gba", 0x0B7850, 0x0000020 diff --git a/data/const/playerItem/playerItemCellOverwriteSet.inc b/data/const/playerItem/playerItemCellOverwriteSet.inc new file mode 100644 index 00000000..dff60450 --- /dev/null +++ b/data/const/playerItem/playerItemCellOverwriteSet.inc @@ -0,0 +1,2 @@ +gUnk_080B7B6C:: @ 080B7B6C + .incbin "baserom.gba", 0x0B7B6C, 0x0000008 diff --git a/data/const/playerItem/playerItemGustJar.inc b/data/const/playerItem/playerItemGustJar.inc new file mode 100644 index 00000000..e4e0f893 --- /dev/null +++ b/data/const/playerItem/playerItemGustJar.inc @@ -0,0 +1,91 @@ +gUnk_08132700:: @ 08132700 + .4byte sub_080ADA6C + .4byte sub_080ADAA8 + .4byte sub_080ADAD4 + .4byte sub_080ADC14 + .4byte sub_080ADC60 + +gUnk_08132714:: @ 08132714 + .4byte gUnk_08132AF4 + .4byte gUnk_08132AEA + .4byte gUnk_08132AE0 + .4byte gUnk_08132AEA + .4byte gUnk_08132B1A + .4byte gUnk_08132B0C + .4byte gUnk_08132AFE + .4byte gUnk_08132B0C + +gUnk_08132734:: @ 08132734 + .incbin "baserom.gba", 0x132734, 0x0000001 + +gUnk_08132735:: @ 08132735 + .incbin "baserom.gba", 0x132735, 0x0000001 + +gUnk_08132736:: @ 08132736 + .incbin "baserom.gba", 0x132736, 0x000000E + +gUnk_08132744:: @ 08132744 + .incbin "baserom.gba", 0x132744, 0x0000010 + +gUnk_08132754:: @ 08132754 + .incbin "baserom.gba", 0x132754, 0x0000010 + +gUnk_08132764:: @ 08132764 + .incbin "baserom.gba", 0x132764, 0x0000010 + +gUnk_08132774:: @ 08132774 + .incbin "baserom.gba", 0x132774, 0x0000010 + +gUnk_08132784:: @ 08132784 + .incbin "baserom.gba", 0x132784, 0x0000010 + +gUnk_08132794:: @ 08132794 + .incbin "baserom.gba", 0x132794, 0x0000018 + +gUnk_081327AC:: @ 081327AC + .incbin "baserom.gba", 0x1327AC, 0x0000018 + +gUnk_081327C4:: @ 081327C4 + .incbin "baserom.gba", 0x1327C4, 0x0000018 + +gUnk_081327DC:: @ 081327DC + .4byte gUnk_08132754 + .4byte gUnk_08132744 + .4byte gUnk_08132734 + .4byte gUnk_08132744 + .4byte gUnk_08132784 + .4byte gUnk_08132774 + .4byte gUnk_08132764 + .4byte gUnk_08132774 + .4byte gUnk_081327C4 + .4byte gUnk_081327AC + .4byte gUnk_08132794 + .4byte gUnk_081327AC + .4byte 00000000 + +gUnk_08132810:: @ 08132810 + .incbin "baserom.gba", 0x132810, 0x0000017 + +gUnk_08132827:: @ 08132827 + .incbin "baserom.gba", 0x132827, 0x00002B9 + +gUnk_08132AE0:: @ 08132AE0 + .incbin "baserom.gba", 0x132AE0, 0x000000A + +gUnk_08132AEA:: @ 08132AEA + .incbin "baserom.gba", 0x132AEA, 0x000000A + +gUnk_08132AF4:: @ 08132AF4 + .incbin "baserom.gba", 0x132AF4, 0x000000A + +gUnk_08132AFE:: @ 08132AFE + .incbin "baserom.gba", 0x132AFE, 0x000000E + +gUnk_08132B0C:: @ 08132B0C + .incbin "baserom.gba", 0x132B0C, 0x000000E + +gUnk_08132B1A:: @ 08132B1A + .incbin "baserom.gba", 0x132B1A, 0x000000E + +gUnk_08132B28:: @ 08132B28 + .incbin "baserom.gba", 0x132B28, 0x0000008 diff --git a/data/const/playerItem/playerItemLantern.inc b/data/const/playerItem/playerItemLantern.inc new file mode 100644 index 00000000..77e80229 --- /dev/null +++ b/data/const/playerItem/playerItemLantern.inc @@ -0,0 +1,6 @@ +gUnk_080FEEA8:: @ 080FEEA8 + .4byte sub_08054A60 + .4byte sub_08054AC8 + +gUnk_080FEEB0:: @ 080FEEB0 + .incbin "baserom.gba", 0x0FEEB0, 0x0000008 diff --git a/data/const/playerItem/playerItemPacciCane.inc b/data/const/playerItem/playerItemPacciCane.inc new file mode 100644 index 00000000..d999563d --- /dev/null +++ b/data/const/playerItem/playerItemPacciCane.inc @@ -0,0 +1,3 @@ +gUnk_0811B9D8:: @ 0811B9D8 + .4byte sub_080704D4 + .4byte sub_080704FC diff --git a/data/const/playerItem/playerItemShield.inc b/data/const/playerItem/playerItemShield.inc new file mode 100644 index 00000000..75b432d8 --- /dev/null +++ b/data/const/playerItem/playerItemShield.inc @@ -0,0 +1,28 @@ + +gUnk_081271D4:: @ 081271D4 + .4byte sub_080A2D98 + .4byte sub_080A2E00 + +gUnk_081271DC:: @ 081271DC + .incbin "baserom.gba", 0x1271DC, 0x0000044 + +gUnk_08127220:: @ 08127220 + .incbin "baserom.gba", 0x127220, 0x0000020 + +gUnk_08127240:: @ 08127240 + .4byte gUnk_08127250 + .4byte gUnk_08127258 + .4byte gUnk_08127260 + .4byte gUnk_08127268 + +gUnk_08127250:: @ 08127250 + .incbin "baserom.gba", 0x127250, 0x0000008 + +gUnk_08127258:: @ 08127258 + .incbin "baserom.gba", 0x127258, 0x0000008 + +gUnk_08127260:: @ 08127260 + .incbin "baserom.gba", 0x127260, 0x0000008 + +gUnk_08127268:: @ 08127268 + .incbin "baserom.gba", 0x127268, 0x0000008 diff --git a/data/const/playerItem/playerItemSword.inc b/data/const/playerItem/playerItemSword.inc index 306e6fe1..b5851bcb 100644 --- a/data/const/playerItem/playerItemSword.inc +++ b/data/const/playerItem/playerItemSword.inc @@ -2,3 +2,21 @@ gUnk_0812905C:: @ 0812905C .4byte sub_080A758C .4byte sub_080A76CC .4byte sub_080A7824 + +gUnk_08129068:: @ 08129068 + .incbin "baserom.gba", 0x129068, 0x0000004 + +gUnk_0812906C:: @ 0812906C + .incbin "baserom.gba", 0x12906C, 0x0000006 + +gUnk_08129072:: @ 08129072 + .incbin "baserom.gba", 0x129072, 0x000001C + +gUnk_0812908E:: @ 0812908E + .incbin "baserom.gba", 0x12908E, 0x0000008 + +gUnk_08129096:: @ 08129096 + .incbin "baserom.gba", 0x129096, 0x000024C + +gUnk_081292E2:: @ 081292E2 + .incbin "baserom.gba", 0x1292E2, 0x000003E diff --git a/data/const/playerItem/playerItemSwordBeam.inc b/data/const/playerItem/playerItemSwordBeam.inc new file mode 100644 index 00000000..c4f9dc73 --- /dev/null +++ b/data/const/playerItem/playerItemSwordBeam.inc @@ -0,0 +1,12 @@ +gUnk_080B43F4:: @ 080B43F4 + .4byte sub_08019498 + .4byte sub_08019580 + +gUnk_080B43FC:: @ 080B43FC + .incbin "baserom.gba", 0x0B43FC, 0x0000004 + +gUnk_080B4400:: @ 080B4400 + .incbin "baserom.gba", 0x0B4400, 0x0000008 + +gUnk_080B4408:: @ 080B4408 + .incbin "baserom.gba", 0x0B4408, 0x0000008 diff --git a/data/const/playerItem/playerItemSwordSpin.inc b/data/const/playerItem/playerItemSwordSpin.inc new file mode 100644 index 00000000..48dc5b4d --- /dev/null +++ b/data/const/playerItem/playerItemSwordSpin.inc @@ -0,0 +1,9 @@ +gUnk_080B7870:: @ 080B7870 + .4byte sub_0801BA18 + .4byte sub_0801BB2C + +gUnk_080B7878:: @ 080B7878 + .incbin "baserom.gba", 0x0B7878, 0x0000012 + +gUnk_080B788A:: @ 080B788A + .incbin "baserom.gba", 0x0B788A, 0x0000086 diff --git a/data/data_080029B4.s b/data/data_080029B4.s index d071f13a..a8b09550 100644 --- a/data/data_080029B4.s +++ b/data/data_080029B4.s @@ -89,7 +89,14 @@ gUnk_080033F5:: @ 080033F5 .incbin "baserom.gba", 0x0033F5, 0x000000B gUnk_08003400:: @ 08003400 - .incbin "baserom.gba", 0x003400, 0x0000020 + .4byte 00000000 + .4byte gUnk_080CB67C + .4byte 00000000 + .4byte 00000000 + .4byte 00000000 + .4byte gUnk_0812714C + .4byte 00000000 + .4byte 00000000 gUnk_08003420:: @ 08003420 .incbin "baserom.gba", 0x003420, 0x0000014 diff --git a/data/data_080B3740.s b/data/data_080B3740.s index 259242f3..31319fb6 100644 --- a/data/data_080B3740.s +++ b/data/data_080B3740.s @@ -44,40 +44,11 @@ gUnk_080B3D14:: @ 080B3D14 gUnk_080B3D20:: @ 080B3D20 .incbin "baserom.gba", 0x0B3D20, 0x00000B0 -gUnk_080B3DD0:: @ 080B3DD0 - .4byte sub_08018CBC - .4byte sub_08018DE8 - .4byte sub_08018E68 - .4byte sub_08018F6C + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItem11.inc" -gUnk_080B3DE0:: @ 080B3DE0 - .incbin "baserom.gba", 0x0B3DE0, 0x0000008 + .include "data/const/playerItem/playerItemBow.inc" -gUnk_080B3DE8:: @ 080B3DE8 - .4byte gUnk_080B3E18 - .4byte gUnk_080B3E20 - .4byte gUnk_080B3E28 - -gUnk_080B3DF4:: @ 080B3DF4 - .incbin "baserom.gba", 0x0B3DF4, 0x0000024 - -gUnk_080B3E18:: @ 080B3E18 - .incbin "baserom.gba", 0x0B3E18, 0x0000008 - -gUnk_080B3E20:: @ 080B3E20 - .incbin "baserom.gba", 0x0B3E20, 0x0000008 - -gUnk_080B3E28:: @ 080B3E28 - .incbin "baserom.gba", 0x0B3E28, 0x0000008 - -gUnk_080B3E30:: @ 080B3E30 - .4byte sub_08018FE4 - .4byte sub_0801917C - .4byte sub_08019410 - .4byte sub_08019444 - -gUnk_080B3E40:: @ 080B3E40 - .incbin "baserom.gba", 0x0B3E40, 0x0000030 gUnk_080B3E70:: @ 080B3E70 .incbin "baserom.gba", 0x0B3E70, 0x0000001 @@ -94,18 +65,8 @@ gUnk_080B3E80:: @ 080B3E80 gUnk_080B4000:: @ 080B4000 .incbin "baserom.gba", 0x0B4000, 0x00003F4 -gUnk_080B43F4:: @ 080B43F4 - .4byte sub_08019498 - .4byte sub_08019580 - -gUnk_080B43FC:: @ 080B43FC - .incbin "baserom.gba", 0x0B43FC, 0x0000004 - -gUnk_080B4400:: @ 080B4400 - .incbin "baserom.gba", 0x0B4400, 0x0000008 - -gUnk_080B4408:: @ 080B4408 - .incbin "baserom.gba", 0x0B4408, 0x0000008 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItemSwordBeam.inc" gUnk_080B4410:: @ 080B4410 .incbin "baserom.gba", 0x0B4410, 0x0000048 @@ -2780,55 +2741,15 @@ gUnk_080B755C:: @ 080B755C gUnk_080B77C0:: @ 080B77C0 .incbin "baserom.gba", 0x0B77C0, 0x0000008 -gUnk_080B77C8:: @ 080B77C8 - .4byte sub_0801B250 - .4byte sub_0801B2CC - .4byte sub_0801B318 - .4byte sub_0801B38C + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItemBomb.inc" -gUnk_080B77D8:: @ 080B77D8 - .4byte sub_0801B330 - .4byte sub_0801B340 - .4byte sub_0801B354 - .4byte sub_0801B368 - .4byte sub_0801B384 - .incbin "baserom.gba", 0x0B77EC, 0x0000008 + .include "data/const/playerItem/playerItem3.inc" -gUnk_080B77F4:: @ 080B77F4 - .incbin "baserom.gba", 0x0B77F4, 0x0000008 + .include "data/const/playerItem/playerItemC.inc" -gUnk_080B77FC:: @ 080B77FC - .4byte sub_0801B4C8 - .4byte sub_0801B584 - .4byte sub_0801B680 - .4byte sub_0801B7A8 - .incbin "baserom.gba", 0x0B780C, 0x000001A + .include "data/const/playerItem/playerItemSwordSpin.inc" -gUnk_080B7826:: @ 080B7826 - .incbin "baserom.gba", 0x0B7826, 0x0000008 - -gUnk_080B782E:: @ 080B782E - .incbin "baserom.gba", 0x0B782E, 0x0000012 - -gUnk_080B7840:: @ 080B7840 - .4byte sub_0801B8B0 - .4byte sub_0801B8FC - -gUnk_080B7848:: @ 080B7848 - .incbin "baserom.gba", 0x0B7848, 0x0000008 - -gUnk_080B7850:: @ 080B7850 - .incbin "baserom.gba", 0x0B7850, 0x0000020 - -gUnk_080B7870:: @ 080B7870 - .4byte sub_0801BA18 - .4byte sub_0801BB2C - -gUnk_080B7878:: @ 080B7878 - .incbin "baserom.gba", 0x0B7878, 0x0000012 - -gUnk_080B788A:: @ 080B788A - .incbin "baserom.gba", 0x0B788A, 0x0000086 gUnk_080B7910:: @ 080B7910 .incbin "baserom.gba", 0x0B7910, 0x0000097 @@ -2839,8 +2760,8 @@ gUnk_080B79A7:: @ 080B79A7 gUnk_080B7A3E:: @ 080B7A3E .incbin "baserom.gba", 0x0B7A3E, 0x000012E -gUnk_080B7B6C:: @ 080B7B6C - .incbin "baserom.gba", 0x0B7B6C, 0x0000008 + .include "data/const/playerItem/playerItemCellOverwriteSet.inc" + gUnk_080B7B74:: @ 080B7B74 .incbin "baserom.gba", 0x0B7B74, 0x00004BA diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index 1f1002fb..a1647cdb 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -11,16 +11,25 @@ gUnk_080FC914:: @ 080FC914 .incbin "baserom.gba", 0x0FC914, 0x0000028 gUnk_080FC93C:: @ 080FC93C - .incbin "baserom.gba", 0x0FC93C, 0x0000008 + .4byte sub_08050C54 + .4byte sub_08050D68 gUnk_080FC944:: @ 080FC944 - .incbin "baserom.gba", 0x0FC944, 0x000000C + .4byte sub_08050DB8 + .4byte sub_08050DE4 + .4byte sub_08050E88 gUnk_080FC950:: @ 080FC950 - .incbin "baserom.gba", 0x0FC950, 0x0000010 + .4byte sub_08050EB8 + .4byte sub_08050EF4 + .4byte sub_08050FFC + .4byte sub_0805103C gUnk_080FC960:: @ 080FC960 - .incbin "baserom.gba", 0x0FC960, 0x0000010 + .4byte sub_08051090 + .4byte sub_080610B8 + .4byte sub_0805138C + .4byte sub_0805144C gUnk_080FC970:: @ 080FC970 .incbin "baserom.gba", 0x0FC970, 0x0000010 @@ -32,31 +41,56 @@ gUnk_080FC9A0:: @ 080FC9A0 .incbin "baserom.gba", 0x0FC9A0, 0x0000010 gUnk_080FC9B0:: @ 080FC9B0 - .incbin "baserom.gba", 0x0FC9B0, 0x000000C + .4byte sub_080513A8 + .4byte sub_080513C0 + .4byte sub_0805141C gUnk_080FC9BC:: @ 080FC9BC - .incbin "baserom.gba", 0x0FC9BC, 0x000000C + .4byte FUN_080515c8 + .4byte sub_080515D4 + .4byte sub_080516E0 gUnk_080FC9C8:: @ 080FC9C8 - .incbin "baserom.gba", 0x0FC9C8, 0x0000010 + .4byte sub_08051738 + .4byte sub_080517EC + .4byte sub_08051874 + .4byte sub_080518E4 gUnk_080FC9D8:: @ 080FC9D8 - .incbin "baserom.gba", 0x0FC9D8, 0x0000010 + .4byte sub_080519B0 + .4byte sub_08051A14 + .4byte sub_08051A90 + .4byte sub_08051D2C gUnk_080FC9E8:: @ 080FC9E8 - .incbin "baserom.gba", 0x0FC9E8, 0x0000020 + .4byte InitializeNewRoom + .4byte sub_08051AF0 + .4byte sub_08051BD0 + .4byte sub_08051CF0 + .4byte sub_0804AAB8 + .4byte sub_08051CA8 + .4byte 00000000 + .4byte sub_080A721C gUnk_080FCA08:: @ 080FCA08 - .incbin "baserom.gba", 0x0FCA08, 0x000000C + .4byte sub_08051E84 + .4byte sub_08051F04 + .4byte sub_08051F40 gUnk_080FCA14:: @ 080FCA14 - .incbin "baserom.gba", 0x0FCA14, 0x000000C + .4byte sub_08053590 + .4byte sub_08053FB4 + .4byte sub_08053C90 gUnk_080FCA20:: @ 080FCA20 .incbin "baserom.gba", 0x0FCA20, 0x0000050 gUnk_080FCA70:: @ 080FCA70 - .incbin "baserom.gba", 0x0FCA70, 0x0000014 + .4byte sub_080520D8 + .4byte sub_0805212C + .4byte sub_080521A0 + .4byte sub_080522F4 + .4byte nullsub_107 gUnk_080FCA84:: @ 080FCA84 .incbin "baserom.gba", 0x0FCA84, 0x0000008 @@ -77,7 +111,14 @@ gUnk_080FCAF8:: @ 080FCAF8 .incbin "baserom.gba", 0x0FCAF8, 0x0000020 gUnk_080FCB18:: @ 080FCB18 - .incbin "baserom.gba", 0x0FCB18, 0x0000020 + .4byte sub_08053434 + .4byte nullsub_480 + .4byte sub_080534E4 + .4byte nullsub_480 + .4byte nullsub_480 + .4byte nullsub_480 + .4byte nullsub_480 + .4byte nullsub_480 gUnk_080FCB38:: @ 080FCB38 .incbin "baserom.gba", 0x0FCB38, 0x000002A @@ -89,7 +130,10 @@ gUnk_080FCB94:: @ 080FCB94 .incbin "baserom.gba", 0x0FCB94, 0x0000020 gUnk_080FCBB4:: @ 080FCBB4 - .incbin "baserom.gba", 0x0FCBB4, 0x0000010 + .4byte sub_080535AC + .4byte sub_080535F4 + .4byte nullsub_481 + .4byte sub_08053618 gUnk_080FCBC4:: @ 080FCBC4 .incbin "baserom.gba", 0x0FCBC4, 0x0000050 @@ -110,19 +154,52 @@ gUnk_080FCCB4:: @ 080FCCB4 .incbin "baserom.gba", 0x0FCCB4, 0x0000048 gUnk_080FCCFC:: @ 080FCCFC - .incbin "baserom.gba", 0x0FCCFC, 0x000003C + .4byte sub_08053758 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053904 + .4byte sub_08053974 + .4byte nullsub_482 + .4byte sub_080539BC + .4byte nullsub_482 gUnk_080FCD38:: @ 080FCD38 - .incbin "baserom.gba", 0x0FCD38, 0x0000008 + .4byte sub_0805370C + .4byte nullsub_482 gUnk_080FCD40:: @ 080FCD40 - .incbin "baserom.gba", 0x0FCD40, 0x0000044 + .4byte sub_08053758 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_080539F4 + .4byte sub_08053A1C + .4byte sub_08053A5C + .4byte sub_08053A90 gUnk_080FCD84:: @ 080FCD84 .incbin "baserom.gba", 0x0FCD84, 0x0000050 gUnk_080FCDD4:: @ 080FCDD4 - .incbin "baserom.gba", 0x0FCDD4, 0x000000C + .4byte sub_08053ACC + .4byte sub_08053B00 + .4byte sub_08053B10 gUnk_080FCDE0:: @ 080FCDE0 .incbin "baserom.gba", 0x0FCDE0, 0x0000050 @@ -131,19 +208,32 @@ gUnk_080FCE30:: @ 080FCE30 .incbin "baserom.gba", 0x0FCE30, 0x0000080 gUnk_080FCEB0:: @ 080FCEB0 - .incbin "baserom.gba", 0x0FCEB0, 0x000000C + .4byte sub_08053B74 + .4byte sub_08053BAC + .4byte sub_08053BBC gUnk_080FCEBC:: @ 080FCEBC .incbin "baserom.gba", 0x0FCEBC, 0x0000030 gUnk_080FCEEC:: @ 080FCEEC - .incbin "baserom.gba", 0x0FCEEC, 0x000000C + .4byte sub_08053C20 + .4byte nullsub_483 + .4byte sub_08053C60 gUnk_080FCEF8:: @ 080FCEF8 - .incbin "baserom.gba", 0x0FCEF8, 0x000000C + .4byte sub_08053CAC + .4byte sub_08053CAC + .4byte sub_08053E58 gUnk_080FCF04:: @ 080FCF04 - .incbin "baserom.gba", 0x0FCF04, 0x0000020 + .4byte gUnk_080FCF24 + .4byte 0x00001c58 + .4byte gUnk_080FCF44 + .4byte 0x00002058 + .4byte gUnk_080FCF64 + .4byte 0x00001d58 + .4byte gUnk_080FCF84 + .4byte 0x00002258 gUnk_080FCF24:: @ 080FCF24 .incbin "baserom.gba", 0x0FCF24, 0x0000020 @@ -158,10 +248,25 @@ gUnk_080FCF84:: @ 080FCF84 .incbin "baserom.gba", 0x0FCF84, 0x0000020 gUnk_080FCFA4:: @ 080FCFA4 - .incbin "baserom.gba", 0x0FCFA4, 0x0000014 + .4byte sub_08053CC8 + .4byte sub_08053D34 + .4byte sub_08053D90 + .4byte sub_08053DB4 + .4byte sub_08053E30 gUnk_080FCFB8:: @ 080FCFB8 - .incbin "baserom.gba", 0x0FCFB8, 0x0000030 + .4byte gUnk_080FCFE8 + .4byte gUnk_080FD008 + .4byte 0x10100e88 + .4byte gUnk_080FD028 + .4byte gUnk_080FD048 + .4byte 0x10101088 + .4byte gUnk_080FD078 + .4byte gUnk_080FD098 + .4byte 0x10101388 + .4byte gUnk_080FD0C8 + .4byte gUnk_080FD0E8 + .4byte 0x10101588 gUnk_080FCFE8:: @ 080FCFE8 .incbin "baserom.gba", 0x0FCFE8, 0x0000020 @@ -188,10 +293,26 @@ gUnk_080FD0E8:: @ 080FD0E8 .incbin "baserom.gba", 0x0FD0E8, 0x0000020 gUnk_080FD108:: @ 080FD108 - .incbin "baserom.gba", 0x0FD108, 0x0000030 + .4byte sub_08053E74 + .4byte sub_08053EC4 + .4byte sub_08053EFC + .4byte sub_08053F20 + .4byte sub_08053EC4 + .4byte sub_08053EFC + .4byte sub_08053F20 + .4byte sub_08053EC4 + .4byte sub_08053EFC + .4byte sub_08053F20 + .4byte sub_08053EC4 + .4byte sub_08053F88 gUnk_080FD138:: @ 080FD138 - .incbin "baserom.gba", 0x0FD138, 0x0000018 + .4byte sub_080536D4 + .4byte sub_08053B58 + .4byte sub_0805373C + .4byte sub_08053AB0 + .4byte sub_080536F0 + .4byte sub_08053C04 gUnk_080FD150:: @ 080FD150 .incbin "baserom.gba", 0x0FD150, 0x0000008 @@ -860,7 +981,125 @@ gUnk_080FDFD0:: @ 080FDFD0 .incbin "baserom.gba", 0x0FDFD0, 0x0000008 gUnk_080FDFD8:: @ 080FDFD8 - .incbin "baserom.gba", 0x0FDFD8, 0x00001DC + .4byte gUnk_080FDD14 + .4byte gUnk_080FDD19 + .4byte gUnk_080FDD1E + .4byte gUnk_080FDD23 + .4byte gUnk_080FDD28 + .4byte gUnk_080FDD97 + .4byte gUnk_080FDD2D + .4byte gUnk_080FDD32 + .4byte gUnk_080FDD37 + .4byte gUnk_080FDD48 + .4byte gUnk_080FDD4D + .4byte gUnk_080FDD52 + .4byte gUnk_080FDD57 + .4byte gUnk_080FDD5C + .4byte gUnk_080FDD61 + .4byte gUnk_080FDD92 + .4byte gUnk_080FDD97 + .4byte gUnk_080FDDA8 + .4byte gUnk_080FDDAD + .4byte gUnk_080FDDB2 + .4byte gUnk_080FDDB7 + .4byte gUnk_080FDDBC + .4byte gUnk_080FDDC1 + .4byte gUnk_080FDDC6 + .4byte gUnk_080FDEB8 + .4byte gUnk_080FDEC7 + .4byte gUnk_080FDEE0 + .4byte gUnk_080FDD97 + .4byte gUnk_080FDDCB + .4byte gUnk_080FDDCB + .4byte gUnk_080FDDCB + .4byte gUnk_080FDDCB + .4byte gUnk_080FDDCB + .4byte gUnk_080FDE9A + .4byte gUnk_080FDDDA + .4byte gUnk_080FDDDF + .4byte gUnk_080FDE8B + .4byte gUnk_080FDE90 + .4byte gUnk_080FDDD0 + .4byte gUnk_080FDDD5 + .4byte gUnk_080FDDE4 + .4byte gUnk_080FDDF5 + .4byte gUnk_080FDE0E + .4byte gUnk_080FDE27 + .4byte gUnk_080FDE40 + .4byte gUnk_080FDE59 + .4byte gUnk_080FDE72 + .4byte gUnk_080FDE9F + .4byte gUnk_080FDEA4 + .4byte gUnk_080FDEA9 + .4byte gUnk_080FDD97 + .4byte gUnk_080FDD97 + .4byte gUnk_080FDEAE + .4byte gUnk_080FDEB3 + .4byte gUnk_080FDE95 + .4byte gUnk_080FDED1 + .4byte gUnk_080FDEC7 + .4byte gUnk_080FDEB8 + .4byte gUnk_080FDEBD + .4byte gUnk_080FDEC2 + .4byte gUnk_080FDECC + .4byte gUnk_080FDFCB + .4byte gUnk_080FDFD0 + .4byte gUnk_080FDF6D + .4byte gUnk_080FDEE5 + .4byte gUnk_080FDEEA + .4byte gUnk_080FDEEF + .4byte gUnk_080FDEF4 + .4byte gUnk_080FDED6 + .4byte gUnk_080FDEDB + .4byte gUnk_080FDEE0 + .4byte gUnk_080FDEF9 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDFC1 + .4byte gUnk_080FDEF9 + .4byte gUnk_080FDEFE + .4byte gUnk_080FDF03 + .4byte gUnk_080FDF08 + .4byte gUnk_080FDF0D + .4byte gUnk_080FDF0D + .4byte gUnk_080FDF0D + .4byte gUnk_080FDF4A + .4byte gUnk_080FDF4A + .4byte gUnk_080FDF4A + .4byte gUnk_080FDD97 + .4byte gUnk_080FDF86 + .4byte gUnk_080FDF8F + .4byte gUnk_080FDF63 + .4byte gUnk_080FDF68 + .4byte gUnk_080FDF12 + .4byte gUnk_080FDF17 + .4byte gUnk_080FDFC6 + .4byte gUnk_080FDF28 + .4byte gUnk_080FDF45 + .4byte gUnk_080FDF72 + .4byte gUnk_080FDF77 + .4byte gUnk_080FDF7C + .4byte gUnk_080FDF81 + .4byte gUnk_080FDF4F + .4byte gUnk_080FDF54 + .4byte gUnk_080FDF59 + .4byte gUnk_080FDF5E + .4byte gUnk_080FDF94 + .4byte gUnk_080FDF99 + .4byte gUnk_080FDF9E + .4byte gUnk_080FDFA3 + .4byte gUnk_080FDFA8 + .4byte gUnk_080FDFA8 + .4byte gUnk_080FDFA8 + .4byte gUnk_080FDD14 + .4byte gUnk_080FDD14 + .4byte gUnk_080FDD14 + .4byte 00000000 gUnk_080FE1B4:: @ 080FE1B4 .incbin "baserom.gba", 0x0FE1B4, 0x0000012 @@ -872,10 +1111,40 @@ gUnk_080FE1DD:: @ 080FE1DD .incbin "baserom.gba", 0x0FE1DD, 0x00000C3 gUnk_080FE2A0:: @ 080FE2A0 - .incbin "baserom.gba", 0x0FE2A0, 0x000000C + .4byte sub_0805488C + .4byte sub_080548E8 + .4byte sub_08054920 gUnk_080FE2AC:: @ 080FE2AC - .incbin "baserom.gba", 0x0FE2AC, 0x0000074 + .4byte sub_08055D80 + .4byte sub_08054E00 + .4byte sub_080558EC + .4byte sub_08054CE8 + .4byte sub_08054C04 + .4byte sub_08055168 + .4byte sub_080552FC + .4byte sub_08055BB0 + .4byte sub_08055414 + .4byte sub_080559E0 + .4byte sub_0805559C + .4byte sub_080554FC + .4byte sub_08055818 + .4byte sub_08055094 + .4byte sub_080550F8 + .4byte sub_080556F4 + .4byte sub_08055038 + .4byte sub_08054F90 + .4byte sub_08054F90 + .4byte sub_08054D90 + .4byte sub_08055888 + .4byte sub_08055690 + .4byte sub_08055E08 + .4byte sub_080557B4 + .4byte sub_08055CD8 + .4byte sub_08055AD0 + .4byte sub_08055D80 + .4byte sub_08055D80 + .4byte sub_08055D80 gUnk_080FE320:: @ 080FE320 .incbin "baserom.gba", 0x0FE320, 0x00002F0 @@ -920,7 +1189,9 @@ gUnk_080FED58:: @ 080FED58 .incbin "baserom.gba", 0x0FED58, 0x0000040 gUnk_080FED98:: @ 080FED98 - .incbin "baserom.gba", 0x0FED98, 0x000000C + .4byte gUnk_080FEDA4 + .4byte gUnk_080FEDDA + .4byte gUnk_080FEDF8 gUnk_080FEDA4:: @ 080FEDA4 .incbin "baserom.gba", 0x0FEDA4, 0x0000036 @@ -946,26 +1217,31 @@ gUnk_080FEE58:: @ 080FEE58 gUnk_080FEE78:: @ 080FEE78 .incbin "baserom.gba", 0x0FEE78, 0x0000030 -gUnk_080FEEA8:: @ 080FEEA8 - .incbin "baserom.gba", 0x0FEEA8, 0x0000008 - -gUnk_080FEEB0:: @ 080FEEB0 - .incbin "baserom.gba", 0x0FEEB0, 0x0000008 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItemLantern.inc" gUnk_080FEEB8:: @ 080FEEB8 - .incbin "baserom.gba", 0x0FEEB8, 0x0000010 + .4byte sub_08054C20 + .4byte sub_08054C58 + .4byte sub_08054C88 + .4byte sub_08054CC0 gUnk_080FEEC8:: @ 080FEEC8 - .incbin "baserom.gba", 0x0FEEC8, 0x000000C + .4byte sub_08054D04 + .4byte sub_08054D3C + .4byte sub_08054D74 gUnk_080FEED4:: @ 080FEED4 .incbin "baserom.gba", 0x0FEED4, 0x0000060 gUnk_080FEF34:: @ 080FEF34 - .incbin "baserom.gba", 0x0FEF34, 0x0000008 + .4byte sub_08054DAC + .4byte nullsub_484 gUnk_080FEF3C:: @ 080FEF3C - .incbin "baserom.gba", 0x0FEF3C, 0x000000C + .4byte sub_08054E1C + .4byte sub_08054E5C + .4byte sub_08054E9C gUnk_080FEF48:: @ 080FEF48 .incbin "baserom.gba", 0x0FEF48, 0x0000030 @@ -986,28 +1262,38 @@ gUnk_080FF098:: @ 080FF098 .incbin "baserom.gba", 0x0FF098, 0x0000070 gUnk_080FF108:: @ 080FF108 - .incbin "baserom.gba", 0x0FF108, 0x0000018 + .4byte gUnk_080FEF48 + .4byte gUnk_080FEF78 + .4byte gUnk_080FEFA8 + .4byte gUnk_080FEFE8 + .4byte gUnk_080FF038 + .4byte gUnk_080FF098 gUnk_080FF120:: @ 080FF120 - .incbin "baserom.gba", 0x0FF120, 0x0000008 + .4byte sub_08054FAC + .4byte sub_08055014 gUnk_080FF128:: @ 080FF128 .incbin "baserom.gba", 0x0FF128, 0x0000020 gUnk_080FF148:: @ 080FF148 - .incbin "baserom.gba", 0x0FF148, 0x000000C + .4byte sub_08055054 + .4byte sub_0805508C + .4byte sub_08055090 gUnk_080FF154:: @ 080FF154 .incbin "baserom.gba", 0x0FF154, 0x0000020 gUnk_080FF174:: @ 080FF174 - .incbin "baserom.gba", 0x0FF174, 0x0000008 + .4byte sub_080550B0 + .4byte nullsub_487 gUnk_080FF17C:: @ 080FF17C .incbin "baserom.gba", 0x0FF17C, 0x0000050 gUnk_080FF1CC:: @ 080FF1CC - .incbin "baserom.gba", 0x0FF1CC, 0x0000008 + .4byte sub_08055114 + .4byte nullsub_488 gUnk_080FF1D4:: @ 080FF1D4 .incbin "baserom.gba", 0x0FF1D4, 0x0000018 @@ -1016,52 +1302,71 @@ gUnk_080FF1EC:: @ 080FF1EC .incbin "baserom.gba", 0x0FF1EC, 0x0000008 gUnk_080FF1F4:: @ 080FF1F4 - .incbin "baserom.gba", 0x0FF1F4, 0x000000C + .4byte sub_08055184 + .4byte sub_08055224 + .4byte sub_0805524C gUnk_080FF200:: @ 080FF200 - .incbin "baserom.gba", 0x0FF200, 0x0000004 + .4byte sub_080552E0 gUnk_080FF204:: @ 080FF204 .incbin "baserom.gba", 0x0FF204, 0x0000024 gUnk_080FF228:: @ 080FF228 - .incbin "baserom.gba", 0x0FF228, 0x0000010 + .4byte sub_08055318 + .4byte sub_08055350 + .4byte sub_08055380 + .4byte sub_080553B8 gUnk_080FF238:: @ 080FF238 - .incbin "baserom.gba", 0x0FF238, 0x0000010 + .4byte sub_08055430 + .4byte sub_08055468 + .4byte sub_08055498 + .4byte sub_080554D4 gUnk_080FF248:: @ 080FF248 - .incbin "baserom.gba", 0x0FF248, 0x000000C + .4byte sub_08055518 + .4byte sub_08055548 + .4byte sub_08055580 gUnk_080FF254:: @ 080FF254 - .incbin "baserom.gba", 0x0FF254, 0x0000010 + .4byte sub_080555B8 + .4byte sub_0805560C + .4byte sub_08055634 + .4byte sub_08055674 gUnk_080FF264:: @ 080FF264 .incbin "baserom.gba", 0x0FF264, 0x0000020 gUnk_080FF284:: @ 080FF284 - .incbin "baserom.gba", 0x0FF284, 0x0000008 + .4byte sub_080556AC + .4byte nullsub_489 gUnk_080FF28C:: @ 080FF28C - .incbin "baserom.gba", 0x0FF28C, 0x000000C + .4byte sub_08055710 + .4byte sub_0805576C + .4byte sub_08055798 gUnk_080FF298:: @ 080FF298 .incbin "baserom.gba", 0x0FF298, 0x0000020 gUnk_080FF2B8:: @ 080FF2B8 - .incbin "baserom.gba", 0x0FF2B8, 0x0000008 + .4byte sub_080557D0 + .4byte nullsub_490 gUnk_080FF2C0:: @ 080FF2C0 .incbin "baserom.gba", 0x0FF2C0, 0x0000040 gUnk_080FF300:: @ 080FF300 - .incbin "baserom.gba", 0x0FF300, 0x0000008 + .4byte sub_08055834 + .4byte nullsub_491 gUnk_080FF308:: @ 080FF308 .incbin "baserom.gba", 0x0FF308, 0x0000020 gUnk_080FF328:: @ 080FF328 - .incbin "baserom.gba", 0x0FF328, 0x0000008 + .4byte sub_080558A4 + .4byte nullsub_492 gUnk_080FF330:: @ 080FF330 .incbin "baserom.gba", 0x0FF330, 0x000000C @@ -1070,241 +1375,876 @@ gUnk_080FF33C:: @ 080FF33C .incbin "baserom.gba", 0x0FF33C, 0x0000020 gUnk_080FF35C:: @ 080FF35C - .incbin "baserom.gba", 0x0FF35C, 0x0000010 + .4byte sub_080559FC + .4byte sub_08055A3C + .4byte sub_08055A6C + .4byte sub_08055AA8 gUnk_080FF36C:: @ 080FF36C - .incbin "baserom.gba", 0x0FF36C, 0x000000C + .4byte sub_08055AEC + .4byte sub_08055B38 + .4byte sub_08055B54 gUnk_080FF378:: @ 080FF378 .incbin "baserom.gba", 0x0FF378, 0x0000050 gUnk_080FF3C8:: @ 080FF3C8 - .incbin "baserom.gba", 0x0FF3C8, 0x0000020 + .4byte sub_08055BCC + .4byte sub_08055C04 + .4byte sub_08055C34 + .4byte sub_08055CB0 + .4byte 0x000000ff + .4byte 00000000 + .4byte 00000000 + .4byte 00000000 gUnk_080FF3E8:: @ 080FF3E8 - .incbin "baserom.gba", 0x0FF3E8, 0x000000C + .4byte sub_08055CF4 + .4byte sub_08055D2C + .4byte sub_08055D64 gUnk_080FF3F4:: @ 080FF3F4 - .incbin "baserom.gba", 0x0FF3F4, 0x000000C + .4byte sub_08055D9C + .4byte sub_08055DC0 + .4byte sub_08055DEC gUnk_080FF400:: @ 080FF400 .incbin "baserom.gba", 0x0FF400, 0x0000020 gUnk_080FF420:: @ 080FF420 - .incbin "baserom.gba", 0x0FF420, 0x0000008 + .4byte sub_08055E24 + .4byte nullsub_493 gUnk_080FF428:: @ 080FF428 - .incbin "baserom.gba", 0x0FF428, 0x0000428 + .incbin "baserom.gba", 0x0FF428, 0x0000008 + +gUnk_080FF430:: @ 080FF430 + .incbin "baserom.gba", 0x0FF430, 0x0000008 + +gUnk_080FF438:: @ 080FF438 + .incbin "baserom.gba", 0x0FF438, 0x000000C + +gUnk_080FF444:: @ 080FF444 + .incbin "baserom.gba", 0x0FF444, 0x000000C + +gUnk_080FF450:: @ 080FF450 + .incbin "baserom.gba", 0x0FF450, 0x0000004 + +gUnk_080FF454:: @ 080FF454 + .incbin "baserom.gba", 0x0FF454, 0x0000004 + +gUnk_080FF458:: @ 080FF458 + .incbin "baserom.gba", 0x0FF458, 0x0000004 + +gUnk_080FF45C:: @ 080FF45C + .incbin "baserom.gba", 0x0FF45C, 0x0000004 + +gUnk_080FF460:: @ 080FF460 + .incbin "baserom.gba", 0x0FF460, 0x0000014 + +gUnk_080FF474:: @ 080FF474 + .incbin "baserom.gba", 0x0FF474, 0x0000010 + +gUnk_080FF484:: @ 080FF484 + .incbin "baserom.gba", 0x0FF484, 0x0000004 + +gUnk_080FF488:: @ 080FF488 + .incbin "baserom.gba", 0x0FF488, 0x0000008 + +gUnk_080FF490:: @ 080FF490 + .incbin "baserom.gba", 0x0FF490, 0x0000004 + +gUnk_080FF494:: @ 080FF494 + .incbin "baserom.gba", 0x0FF494, 0x0000004 + +gUnk_080FF498:: @ 080FF498 + .incbin "baserom.gba", 0x0FF498, 0x0000004 + +gUnk_080FF49C:: @ 080FF49C + .incbin "baserom.gba", 0x0FF49C, 0x0000004 + +gUnk_080FF4A0:: @ 080FF4A0 + .incbin "baserom.gba", 0x0FF4A0, 0x0000004 + +gUnk_080FF4A4:: @ 080FF4A4 + .incbin "baserom.gba", 0x0FF4A4, 0x0000004 + +gUnk_080FF4A8:: @ 080FF4A8 + .incbin "baserom.gba", 0x0FF4A8, 0x0000004 + +gUnk_080FF4AC:: @ 080FF4AC + .incbin "baserom.gba", 0x0FF4AC, 0x0000004 + +gUnk_080FF4B0:: @ 080FF4B0 + .incbin "baserom.gba", 0x0FF4B0, 0x0000004 + +gUnk_080FF4B4:: @ 080FF4B4 + .incbin "baserom.gba", 0x0FF4B4, 0x0000004 + +gUnk_080FF4B8:: @ 080FF4B8 + .incbin "baserom.gba", 0x0FF4B8, 0x0000004 + +gUnk_080FF4BC:: @ 080FF4BC + .incbin "baserom.gba", 0x0FF4BC, 0x0000004 + +gUnk_080FF4C0:: @ 080FF4C0 + .incbin "baserom.gba", 0x0FF4C0, 0x0000004 + +gUnk_080FF4C4:: @ 080FF4C4 + .incbin "baserom.gba", 0x0FF4C4, 0x0000004 + +gUnk_080FF4C8:: @ 080FF4C8 + .incbin "baserom.gba", 0x0FF4C8, 0x0000004 + +gUnk_080FF4CC:: @ 080FF4CC + .incbin "baserom.gba", 0x0FF4CC, 0x0000004 + +gUnk_080FF4D0:: @ 080FF4D0 + .incbin "baserom.gba", 0x0FF4D0, 0x0000004 + +gUnk_080FF4D4:: @ 080FF4D4 + .incbin "baserom.gba", 0x0FF4D4, 0x0000004 + +gUnk_080FF4D8:: @ 080FF4D8 + .incbin "baserom.gba", 0x0FF4D8, 0x0000004 + +gUnk_080FF4DC:: @ 080FF4DC + .incbin "baserom.gba", 0x0FF4DC, 0x0000004 + +gUnk_080FF4E0:: @ 080FF4E0 + .incbin "baserom.gba", 0x0FF4E0, 0x0000004 + +gUnk_080FF4E4:: @ 080FF4E4 + .incbin "baserom.gba", 0x0FF4E4, 0x0000004 + +gUnk_080FF4E8:: @ 080FF4E8 + .incbin "baserom.gba", 0x0FF4E8, 0x0000004 + +gUnk_080FF4EC:: @ 080FF4EC + .incbin "baserom.gba", 0x0FF4EC, 0x0000004 + +gUnk_080FF4F0:: @ 080FF4F0 + .incbin "baserom.gba", 0x0FF4F0, 0x0000004 + +gUnk_080FF4F4:: @ 080FF4F4 + .incbin "baserom.gba", 0x0FF4F4, 0x0000004 + +gUnk_080FF4F8:: @ 080FF4F8 + .incbin "baserom.gba", 0x0FF4F8, 0x0000004 + +gUnk_080FF4FC:: @ 080FF4FC + .incbin "baserom.gba", 0x0FF4FC, 0x0000004 + +gUnk_080FF500:: @ 080FF500 + .incbin "baserom.gba", 0x0FF500, 0x0000004 + +gUnk_080FF504:: @ 080FF504 + .incbin "baserom.gba", 0x0FF504, 0x0000004 + +gUnk_080FF508:: @ 080FF508 + .incbin "baserom.gba", 0x0FF508, 0x0000004 + +gUnk_080FF50C:: @ 080FF50C + .incbin "baserom.gba", 0x0FF50C, 0x0000004 + +gUnk_080FF510:: @ 080FF510 + .incbin "baserom.gba", 0x0FF510, 0x0000004 + +gUnk_080FF514:: @ 080FF514 + .incbin "baserom.gba", 0x0FF514, 0x0000004 + +gUnk_080FF518:: @ 080FF518 + .incbin "baserom.gba", 0x0FF518, 0x0000004 + +gUnk_080FF51C:: @ 080FF51C + .incbin "baserom.gba", 0x0FF51C, 0x0000004 + +gUnk_080FF520:: @ 080FF520 + .incbin "baserom.gba", 0x0FF520, 0x0000004 + +gUnk_080FF524:: @ 080FF524 + .incbin "baserom.gba", 0x0FF524, 0x0000004 + +gUnk_080FF528:: @ 080FF528 + .incbin "baserom.gba", 0x0FF528, 0x0000004 + +gUnk_080FF52C:: @ 080FF52C + .incbin "baserom.gba", 0x0FF52C, 0x0000004 + +gUnk_080FF530:: @ 080FF530 + .incbin "baserom.gba", 0x0FF530, 0x0000004 + +gUnk_080FF534:: @ 080FF534 + .incbin "baserom.gba", 0x0FF534, 0x0000004 + +gUnk_080FF538:: @ 080FF538 + .incbin "baserom.gba", 0x0FF538, 0x0000004 + +gUnk_080FF53C:: @ 080FF53C + .incbin "baserom.gba", 0x0FF53C, 0x0000004 + +gUnk_080FF540:: @ 080FF540 + .incbin "baserom.gba", 0x0FF540, 0x0000004 + +gUnk_080FF544:: @ 080FF544 + .incbin "baserom.gba", 0x0FF544, 0x0000004 + +gUnk_080FF548:: @ 080FF548 + .incbin "baserom.gba", 0x0FF548, 0x0000004 + +gUnk_080FF54C:: @ 080FF54C + .incbin "baserom.gba", 0x0FF54C, 0x0000004 + +gUnk_080FF550:: @ 080FF550 + .incbin "baserom.gba", 0x0FF550, 0x0000004 + +gUnk_080FF554:: @ 080FF554 + .incbin "baserom.gba", 0x0FF554, 0x0000004 + +gUnk_080FF558:: @ 080FF558 + .incbin "baserom.gba", 0x0FF558, 0x0000004 + +gUnk_080FF55C:: @ 080FF55C + .incbin "baserom.gba", 0x0FF55C, 0x0000004 + +gUnk_080FF560:: @ 080FF560 + .incbin "baserom.gba", 0x0FF560, 0x0000004 + +gUnk_080FF564:: @ 080FF564 + .incbin "baserom.gba", 0x0FF564, 0x0000004 + +gUnk_080FF568:: @ 080FF568 + .incbin "baserom.gba", 0x0FF568, 0x0000004 + +gUnk_080FF56C:: @ 080FF56C + .incbin "baserom.gba", 0x0FF56C, 0x0000004 + +gUnk_080FF570:: @ 080FF570 + .incbin "baserom.gba", 0x0FF570, 0x0000004 + +gUnk_080FF574:: @ 080FF574 + .incbin "baserom.gba", 0x0FF574, 0x0000004 + +gUnk_080FF578:: @ 080FF578 + .incbin "baserom.gba", 0x0FF578, 0x0000004 + +gUnk_080FF57C:: @ 080FF57C + .incbin "baserom.gba", 0x0FF57C, 0x0000004 + +gUnk_080FF580:: @ 080FF580 + .incbin "baserom.gba", 0x0FF580, 0x0000004 + +gUnk_080FF584:: @ 080FF584 + .incbin "baserom.gba", 0x0FF584, 0x0000004 + +gUnk_080FF588:: @ 080FF588 + .incbin "baserom.gba", 0x0FF588, 0x0000004 + +gUnk_080FF58C:: @ 080FF58C + .incbin "baserom.gba", 0x0FF58C, 0x0000004 + +gUnk_080FF590:: @ 080FF590 + .incbin "baserom.gba", 0x0FF590, 0x0000004 + +gUnk_080FF594:: @ 080FF594 + .incbin "baserom.gba", 0x0FF594, 0x0000004 + +gUnk_080FF598:: @ 080FF598 + .incbin "baserom.gba", 0x0FF598, 0x0000004 + +gUnk_080FF59C:: @ 080FF59C + .incbin "baserom.gba", 0x0FF59C, 0x0000004 + +gUnk_080FF5A0:: @ 080FF5A0 + .incbin "baserom.gba", 0x0FF5A0, 0x0000004 + +gUnk_080FF5A4:: @ 080FF5A4 + .incbin "baserom.gba", 0x0FF5A4, 0x0000004 + +gUnk_080FF5A8:: @ 080FF5A8 + .incbin "baserom.gba", 0x0FF5A8, 0x0000004 + +gUnk_080FF5AC:: @ 080FF5AC + .incbin "baserom.gba", 0x0FF5AC, 0x0000004 + +gUnk_080FF5B0:: @ 080FF5B0 + .incbin "baserom.gba", 0x0FF5B0, 0x0000004 + +gUnk_080FF5B4:: @ 080FF5B4 + .incbin "baserom.gba", 0x0FF5B4, 0x0000004 + +gUnk_080FF5B8:: @ 080FF5B8 + .incbin "baserom.gba", 0x0FF5B8, 0x0000004 + +gUnk_080FF5BC:: @ 080FF5BC + .incbin "baserom.gba", 0x0FF5BC, 0x0000004 + +gUnk_080FF5C0:: @ 080FF5C0 + .incbin "baserom.gba", 0x0FF5C0, 0x0000004 + +gUnk_080FF5C4:: @ 080FF5C4 + .incbin "baserom.gba", 0x0FF5C4, 0x0000004 + +gUnk_080FF5C8:: @ 080FF5C8 + .incbin "baserom.gba", 0x0FF5C8, 0x0000004 + +gUnk_080FF5CC:: @ 080FF5CC + .incbin "baserom.gba", 0x0FF5CC, 0x0000004 + +gUnk_080FF5D0:: @ 080FF5D0 + .incbin "baserom.gba", 0x0FF5D0, 0x0000004 + +gUnk_080FF5D4:: @ 080FF5D4 + .incbin "baserom.gba", 0x0FF5D4, 0x0000004 + +gUnk_080FF5D8:: @ 080FF5D8 + .incbin "baserom.gba", 0x0FF5D8, 0x0000004 + +gUnk_080FF5DC:: @ 080FF5DC + .incbin "baserom.gba", 0x0FF5DC, 0x0000004 + +gUnk_080FF5E0:: @ 080FF5E0 + .incbin "baserom.gba", 0x0FF5E0, 0x0000004 + +gUnk_080FF5E4:: @ 080FF5E4 + .incbin "baserom.gba", 0x0FF5E4, 0x0000004 + +gUnk_080FF5E8:: @ 080FF5E8 + .incbin "baserom.gba", 0x0FF5E8, 0x0000004 + +gUnk_080FF5EC:: @ 080FF5EC + .incbin "baserom.gba", 0x0FF5EC, 0x0000004 + +gUnk_080FF5F0:: @ 080FF5F0 + .incbin "baserom.gba", 0x0FF5F0, 0x0000004 + +gUnk_080FF5F4:: @ 080FF5F4 + .incbin "baserom.gba", 0x0FF5F4, 0x0000004 + +gUnk_080FF5F8:: @ 080FF5F8 + .incbin "baserom.gba", 0x0FF5F8, 0x0000004 + +gUnk_080FF5FC:: @ 080FF5FC + .incbin "baserom.gba", 0x0FF5FC, 0x0000004 + +gUnk_080FF600:: @ 080FF600 + .incbin "baserom.gba", 0x0FF600, 0x0000004 + +gUnk_080FF604:: @ 080FF604 + .incbin "baserom.gba", 0x0FF604, 0x0000004 + +gUnk_080FF608:: @ 080FF608 + .incbin "baserom.gba", 0x0FF608, 0x0000004 + +gUnk_080FF60C:: @ 080FF60C + .incbin "baserom.gba", 0x0FF60C, 0x0000004 + +gUnk_080FF610:: @ 080FF610 + .incbin "baserom.gba", 0x0FF610, 0x0000004 + +gUnk_080FF614:: @ 080FF614 + .incbin "baserom.gba", 0x0FF614, 0x0000004 + +gUnk_080FF618:: @ 080FF618 + .incbin "baserom.gba", 0x0FF618, 0x0000004 + +gUnk_080FF61C:: @ 080FF61C + .incbin "baserom.gba", 0x0FF61C, 0x0000004 + +gUnk_080FF620:: @ 080FF620 + .incbin "baserom.gba", 0x0FF620, 0x0000004 + +gUnk_080FF624:: @ 080FF624 + .incbin "baserom.gba", 0x0FF624, 0x0000004 + +gUnk_080FF628:: @ 080FF628 + .incbin "baserom.gba", 0x0FF628, 0x0000004 + +gUnk_080FF62C:: @ 080FF62C + .incbin "baserom.gba", 0x0FF62C, 0x0000004 + +gUnk_080FF630:: @ 080FF630 + .incbin "baserom.gba", 0x0FF630, 0x0000004 + +gUnk_080FF634:: @ 080FF634 + .incbin "baserom.gba", 0x0FF634, 0x0000004 + +gUnk_080FF638:: @ 080FF638 + .incbin "baserom.gba", 0x0FF638, 0x0000004 + +gUnk_080FF63C:: @ 080FF63C + .incbin "baserom.gba", 0x0FF63C, 0x0000004 + +gUnk_080FF640:: @ 080FF640 + .incbin "baserom.gba", 0x0FF640, 0x0000004 + +gUnk_080FF644:: @ 080FF644 + .incbin "baserom.gba", 0x0FF644, 0x0000004 + +gUnk_080FF648:: @ 080FF648 + .incbin "baserom.gba", 0x0FF648, 0x0000004 + +gUnk_080FF64C:: @ 080FF64C + .incbin "baserom.gba", 0x0FF64C, 0x0000004 + +gUnk_080FF650:: @ 080FF650 + .incbin "baserom.gba", 0x0FF650, 0x0000004 + +gUnk_080FF654:: @ 080FF654 + .incbin "baserom.gba", 0x0FF654, 0x0000004 + +gUnk_080FF658:: @ 080FF658 + .incbin "baserom.gba", 0x0FF658, 0x0000004 + +gUnk_080FF65C:: @ 080FF65C + .incbin "baserom.gba", 0x0FF65C, 0x0000004 + +gUnk_080FF660:: @ 080FF660 + .incbin "baserom.gba", 0x0FF660, 0x0000004 + +gUnk_080FF664:: @ 080FF664 + .incbin "baserom.gba", 0x0FF664, 0x0000004 + +gUnk_080FF668:: @ 080FF668 + .incbin "baserom.gba", 0x0FF668, 0x0000004 + +gUnk_080FF66C:: @ 080FF66C + .incbin "baserom.gba", 0x0FF66C, 0x0000004 + +gUnk_080FF670:: @ 080FF670 + .incbin "baserom.gba", 0x0FF670, 0x0000004 + +gUnk_080FF674:: @ 080FF674 + .incbin "baserom.gba", 0x0FF674, 0x0000004 + +gUnk_080FF678:: @ 080FF678 + .incbin "baserom.gba", 0x0FF678, 0x0000004 + +gUnk_080FF67C:: @ 080FF67C + .incbin "baserom.gba", 0x0FF67C, 0x0000004 + +gUnk_080FF680:: @ 080FF680 + .incbin "baserom.gba", 0x0FF680, 0x0000004 + +gUnk_080FF684:: @ 080FF684 + .incbin "baserom.gba", 0x0FF684, 0x0000004 + +gUnk_080FF688:: @ 080FF688 + .incbin "baserom.gba", 0x0FF688, 0x0000004 + +gUnk_080FF68C:: @ 080FF68C + .incbin "baserom.gba", 0x0FF68C, 0x0000004 + +gUnk_080FF690:: @ 080FF690 + .incbin "baserom.gba", 0x0FF690, 0x0000004 + +gUnk_080FF694:: @ 080FF694 + .incbin "baserom.gba", 0x0FF694, 0x0000004 + +gUnk_080FF698:: @ 080FF698 + .incbin "baserom.gba", 0x0FF698, 0x0000004 + +gUnk_080FF69C:: @ 080FF69C + .incbin "baserom.gba", 0x0FF69C, 0x0000004 + +gUnk_080FF6A0:: @ 080FF6A0 + .incbin "baserom.gba", 0x0FF6A0, 0x0000004 + +gUnk_080FF6A4:: @ 080FF6A4 + .incbin "baserom.gba", 0x0FF6A4, 0x0000004 + +gUnk_080FF6A8:: @ 080FF6A8 + .incbin "baserom.gba", 0x0FF6A8, 0x0000004 + +gUnk_080FF6AC:: @ 080FF6AC + .incbin "baserom.gba", 0x0FF6AC, 0x0000004 + +gUnk_080FF6B0:: @ 080FF6B0 + .incbin "baserom.gba", 0x0FF6B0, 0x0000004 + +gUnk_080FF6B4:: @ 080FF6B4 + .incbin "baserom.gba", 0x0FF6B4, 0x0000004 + +gUnk_080FF6B8:: @ 080FF6B8 + .incbin "baserom.gba", 0x0FF6B8, 0x0000004 + +gUnk_080FF6BC:: @ 080FF6BC + .incbin "baserom.gba", 0x0FF6BC, 0x0000004 + +gUnk_080FF6C0:: @ 080FF6C0 + .incbin "baserom.gba", 0x0FF6C0, 0x0000004 + +gUnk_080FF6C4:: @ 080FF6C4 + .incbin "baserom.gba", 0x0FF6C4, 0x0000004 + +gUnk_080FF6C8:: @ 080FF6C8 + .incbin "baserom.gba", 0x0FF6C8, 0x0000004 + +gUnk_080FF6CC:: @ 080FF6CC + .incbin "baserom.gba", 0x0FF6CC, 0x0000004 + +gUnk_080FF6D0:: @ 080FF6D0 + .incbin "baserom.gba", 0x0FF6D0, 0x0000004 + +gUnk_080FF6D4:: @ 080FF6D4 + .incbin "baserom.gba", 0x0FF6D4, 0x0000004 + +gUnk_080FF6D8:: @ 080FF6D8 + .incbin "baserom.gba", 0x0FF6D8, 0x0000004 + +gUnk_080FF6DC:: @ 080FF6DC + .incbin "baserom.gba", 0x0FF6DC, 0x0000004 + +gUnk_080FF6E0:: @ 080FF6E0 + .incbin "baserom.gba", 0x0FF6E0, 0x0000004 + +gUnk_080FF6E4:: @ 080FF6E4 + .incbin "baserom.gba", 0x0FF6E4, 0x0000004 + +gUnk_080FF6E8:: @ 080FF6E8 + .incbin "baserom.gba", 0x0FF6E8, 0x0000004 + +gUnk_080FF6EC:: @ 080FF6EC + .incbin "baserom.gba", 0x0FF6EC, 0x0000004 + +gUnk_080FF6F0:: @ 080FF6F0 + .incbin "baserom.gba", 0x0FF6F0, 0x0000004 + +gUnk_080FF6F4:: @ 080FF6F4 + .incbin "baserom.gba", 0x0FF6F4, 0x0000004 + +gUnk_080FF6F8:: @ 080FF6F8 + .incbin "baserom.gba", 0x0FF6F8, 0x0000004 + +gUnk_080FF6FC:: @ 080FF6FC + .incbin "baserom.gba", 0x0FF6FC, 0x0000004 + +gUnk_080FF700:: @ 080FF700 + .incbin "baserom.gba", 0x0FF700, 0x0000004 + +gUnk_080FF704:: @ 080FF704 + .incbin "baserom.gba", 0x0FF704, 0x0000004 + +gUnk_080FF708:: @ 080FF708 + .incbin "baserom.gba", 0x0FF708, 0x0000004 + +gUnk_080FF70C:: @ 080FF70C + .incbin "baserom.gba", 0x0FF70C, 0x0000004 + +gUnk_080FF710:: @ 080FF710 + .incbin "baserom.gba", 0x0FF710, 0x0000004 + +gUnk_080FF714:: @ 080FF714 + .incbin "baserom.gba", 0x0FF714, 0x0000004 + +gUnk_080FF718:: @ 080FF718 + .incbin "baserom.gba", 0x0FF718, 0x0000004 + +gUnk_080FF71C:: @ 080FF71C + .incbin "baserom.gba", 0x0FF71C, 0x0000004 + +gUnk_080FF720:: @ 080FF720 + .incbin "baserom.gba", 0x0FF720, 0x0000004 + +gUnk_080FF724:: @ 080FF724 + .incbin "baserom.gba", 0x0FF724, 0x0000004 + +gUnk_080FF728:: @ 080FF728 + .incbin "baserom.gba", 0x0FF728, 0x0000004 + +gUnk_080FF72C:: @ 080FF72C + .incbin "baserom.gba", 0x0FF72C, 0x0000004 + +gUnk_080FF730:: @ 080FF730 + .incbin "baserom.gba", 0x0FF730, 0x000000C + +gUnk_080FF73C:: @ 080FF73C + .incbin "baserom.gba", 0x0FF73C, 0x0000008 + +gUnk_080FF744:: @ 080FF744 + .incbin "baserom.gba", 0x0FF744, 0x000000C + +gUnk_080FF750:: @ 080FF750 + .incbin "baserom.gba", 0x0FF750, 0x000000C + +gUnk_080FF75C:: @ 080FF75C + .incbin "baserom.gba", 0x0FF75C, 0x0000014 + +gUnk_080FF770:: @ 080FF770 + .incbin "baserom.gba", 0x0FF770, 0x0000008 + +gUnk_080FF778:: @ 080FF778 + .incbin "baserom.gba", 0x0FF778, 0x0000008 + +gUnk_080FF780:: @ 080FF780 + .incbin "baserom.gba", 0x0FF780, 0x0000008 + +gUnk_080FF788:: @ 080FF788 + .incbin "baserom.gba", 0x0FF788, 0x0000008 + +gUnk_080FF790:: @ 080FF790 + .incbin "baserom.gba", 0x0FF790, 0x0000008 + +gUnk_080FF798:: @ 080FF798 + .incbin "baserom.gba", 0x0FF798, 0x0000008 + +gUnk_080FF7A0:: @ 080FF7A0 + .incbin "baserom.gba", 0x0FF7A0, 0x0000008 + +gUnk_080FF7A8:: @ 080FF7A8 + .incbin "baserom.gba", 0x0FF7A8, 0x0000008 + +gUnk_080FF7B0:: @ 080FF7B0 + .incbin "baserom.gba", 0x0FF7B0, 0x0000008 + +gUnk_080FF7B8:: @ 080FF7B8 + .incbin "baserom.gba", 0x0FF7B8, 0x0000008 + +gUnk_080FF7C0:: @ 080FF7C0 + .incbin "baserom.gba", 0x0FF7C0, 0x0000008 + +gUnk_080FF7C8:: @ 080FF7C8 + .incbin "baserom.gba", 0x0FF7C8, 0x0000008 + +gUnk_080FF7D0:: @ 080FF7D0 + .incbin "baserom.gba", 0x0FF7D0, 0x0000008 + +gUnk_080FF7D8:: @ 080FF7D8 + .incbin "baserom.gba", 0x0FF7D8, 0x0000008 + +gUnk_080FF7E0:: @ 080FF7E0 + .incbin "baserom.gba", 0x0FF7E0, 0x0000008 + +gUnk_080FF7E8:: @ 080FF7E8 + .incbin "baserom.gba", 0x0FF7E8, 0x0000008 + +gUnk_080FF7F0:: @ 080FF7F0 + .incbin "baserom.gba", 0x0FF7F0, 0x0000008 + +gUnk_080FF7F8:: @ 080FF7F8 + .incbin "baserom.gba", 0x0FF7F8, 0x0000010 + +gUnk_080FF808:: @ 080FF808 + .incbin "baserom.gba", 0x0FF808, 0x000000C + +gUnk_080FF814:: @ 080FF814 + .incbin "baserom.gba", 0x0FF814, 0x0000028 + +gUnk_080FF83C:: @ 080FF83C + .incbin "baserom.gba", 0x0FF83C, 0x0000008 + +gUnk_080FF844:: @ 080FF844 + .incbin "baserom.gba", 0x0FF844, 0x000000C gPaletteGroups:: @ 080FF850 - .word 0x00000000 - .word 0x080FF428 - .word 0x080FF430 - .word 0x080FF438 - .word 0x080FF444 - .word 0x080FF450 - .word 0x080FF454 - .word 0x080FF458 - .word 0x080FF45C - .word 0x080FF460 - .word 0x080FF474 - .word 0x080FF488 - .word 0x080FF484 - .word 0x080FF5C8 - .word 0x080FF4A0 - .word 0x080FF4DC - .word 0x080FF560 - .word 0x080FF4E4 - .word 0x080FF4C4 - .word 0x080FF570 - .word 0x080FF49C - .word 0x080FF498 - .word 0x080FF4A4 - .word 0x080FF4A8 - .word 0x080FF4AC - .word 0x080FF4B0 - .word 0x080FF4E8 - .word 0x080FF4B8 - .word 0x080FF490 - .word 0x080FF574 - .word 0x080FF578 - .word 0x080FF590 - .word 0x080FF594 - .word 0x080FF57C - .word 0x080FF5E4 - .word 0x080FF5F8 - .word 0x080FF4F0 - .word 0x080FF4F4 - .word 0x080FF598 - .word 0x080FF494 - .word 0x080FF6C4 - .word 0x080FF59C - .word 0x080FF6C8 - .word 0x080FF6CC - .word 0x080FF58C - .word 0x080FF5CC - .word 0x080FF564 - .word 0x080FF6D0 - .word 0x080FF6D4 - .word 0x080FF6D8 - .word 0x080FF6DC - .word 0x080FF5B0 - .word 0x080FF5B4 - .word 0x080FF5C4 - .word 0x080FF4C0 - .word 0x080FF500 - .word 0x080FF510 - .word 0x080FF518 - .word 0x080FF51C - .word 0x080FF524 - .word 0x080FF50C - .word 0x080FF4B4 - .word 0x080FF5A0 - .word 0x080FF4C8 - .word 0x080FF4CC - .word 0x080FF4D0 - .word 0x080FF4D4 - .word 0x080FF568 - .word 0x080FF650 - .word 0x080FF654 - .word 0x080FF658 - .word 0x080FF65C - .word 0x080FF660 - .word 0x080FF664 - .word 0x080FF668 - .word 0x080FF66C - .word 0x080FF670 - .word 0x080FF680 - .word 0x080FF684 - .word 0x080FF688 - .word 0x080FF68C - .word 0x080FF690 - .word 0x080FF694 - .word 0x080FF698 - .word 0x080FF69C - .word 0x080FF56C - .word 0x080FF674 - .word 0x080FF678 - .word 0x080FF67C - .word 0x080FF5B8 - .word 0x080FF4EC - .word 0x080FF6E0 - .word 0x080FF5A4 - .word 0x080FF4D8 - .word 0x080FF4FC - .word 0x080FF640 - .word 0x080FF644 - .word 0x080FF648 - .word 0x080FF64C - .word 0x080FF580 - .word 0x080FF584 - .word 0x080FF5FC - .word 0x080FF5A8 - .word 0x080FF5AC - .word 0x080FF504 - .word 0x080FF53C - .word 0x080FF540 - .word 0x080FF544 - .word 0x080FF548 - .word 0x080FF4E0 - .word 0x080FF600 - .word 0x080FF630 - .word 0x080FF634 - .word 0x080FF638 - .word 0x080FF63C - .word 0x080FF6A0 - .word 0x080FF6A4 - .word 0x080FF6A8 - .word 0x080FF6AC - .word 0x080FF6B0 - .word 0x080FF54C - .word 0x080FF604 - .word 0x080FF6C0 - .word 0x080FF6BC - .word 0x080FF6B8 - .word 0x080FF608 - .word 0x080FF60C - .word 0x080FF610 - .word 0x080FF4F8 - .word 0x080FF6B4 - .word 0x080FF508 - .word 0x080FF614 - .word 0x080FF618 - .word 0x080FF61C - .word 0x080FF6E4 - .word 0x080FF6E8 - .word 0x080FF6EC - .word 0x080FF6F0 - .word 0x080FF6F4 - .word 0x080FF6F8 - .word 0x080FF6FC - .word 0x080FF700 - .word 0x080FF704 - .word 0x080FF708 - .word 0x080FF528 - .word 0x080FF520 - .word 0x080FF5D0 - .word 0x080FF5D4 - .word 0x080FF5D8 - .word 0x080FF5DC - .word 0x080FF5E0 - .word 0x080FF5E8 - .word 0x080FF5EC - .word 0x080FF5F0 - .word 0x080FF5F4 - .word 0x080FF530 - .word 0x080FF534 - .word 0x080FF5BC - .word 0x080FF620 - .word 0x080FF624 - .word 0x080FF628 - .word 0x080FF62C - .word 0x080FF514 - .word 0x080FF550 - .word 0x080FF554 - .word 0x080FF558 - .word 0x080FF55C - .word 0x080FF588 - .word 0x080FF5C0 - .word 0x080FF538 - .word 0x080FF4BC - .word 0x080FF70C - .word 0x080FF710 - .word 0x080FF714 - .word 0x080FF718 - .word 0x080FF71C - .word 0x080FF720 - .word 0x080FF724 - .word 0x080FF728 - .word 0x080FF72C - .word 0x080FF52C - .word 0x080FF730 - .word 0x080FF73C - .word 0x080FF744 - .word 0x080FF750 - .word 0x080FF75C - .word 0x080FF770 - .word 0x080FF778 - .word 0x080FF780 - .word 0x080FF788 - .word 0x080FF790 - .word 0x080FF798 - .word 0x080FF7A0 - .word 0x080FF7A8 - .word 0x080FF7B0 - .word 0x080FF7B8 - .word 0x080FF7C0 - .word 0x080FF7C8 - .word 0x080FF7D0 - .word 0x080FF7D8 - .word 0x080FF7E0 - .word 0x080FF7E8 - .word 0x080FF7F0 - .word 0x080FF7F8 - .word 0x080FF808 - .word 0x080FF814 - .word 0x080FF83C - .word 0x080FF844 + .4byte 00000000 + .4byte gUnk_080FF428 + .4byte gUnk_080FF430 + .4byte gUnk_080FF438 + .4byte gUnk_080FF444 + .4byte gUnk_080FF450 + .4byte gUnk_080FF454 + .4byte gUnk_080FF458 + .4byte gUnk_080FF45C + .4byte gUnk_080FF460 + .4byte gUnk_080FF474 + .4byte gUnk_080FF488 + .4byte gUnk_080FF484 + .4byte gUnk_080FF5C8 + .4byte gUnk_080FF4A0 + .4byte gUnk_080FF4DC + .4byte gUnk_080FF560 + .4byte gUnk_080FF4E4 + .4byte gUnk_080FF4C4 + .4byte gUnk_080FF570 + .4byte gUnk_080FF49C + .4byte gUnk_080FF498 + .4byte gUnk_080FF4A4 + .4byte gUnk_080FF4A8 + .4byte gUnk_080FF4AC + .4byte gUnk_080FF4B0 + .4byte gUnk_080FF4E8 + .4byte gUnk_080FF4B8 + .4byte gUnk_080FF490 + .4byte gUnk_080FF574 + .4byte gUnk_080FF578 + .4byte gUnk_080FF590 + .4byte gUnk_080FF594 + .4byte gUnk_080FF57C + .4byte gUnk_080FF5E4 + .4byte gUnk_080FF5F8 + .4byte gUnk_080FF4F0 + .4byte gUnk_080FF4F4 + .4byte gUnk_080FF598 + .4byte gUnk_080FF494 + .4byte gUnk_080FF6C4 + .4byte gUnk_080FF59C + .4byte gUnk_080FF6C8 + .4byte gUnk_080FF6CC + .4byte gUnk_080FF58C + .4byte gUnk_080FF5CC + .4byte gUnk_080FF564 + .4byte gUnk_080FF6D0 + .4byte gUnk_080FF6D4 + .4byte gUnk_080FF6D8 + .4byte gUnk_080FF6DC + .4byte gUnk_080FF5B0 + .4byte gUnk_080FF5B4 + .4byte gUnk_080FF5C4 + .4byte gUnk_080FF4C0 + .4byte gUnk_080FF500 + .4byte gUnk_080FF510 + .4byte gUnk_080FF518 + .4byte gUnk_080FF51C + .4byte gUnk_080FF524 + .4byte gUnk_080FF50C + .4byte gUnk_080FF4B4 + .4byte gUnk_080FF5A0 + .4byte gUnk_080FF4C8 + .4byte gUnk_080FF4CC + .4byte gUnk_080FF4D0 + .4byte gUnk_080FF4D4 + .4byte gUnk_080FF568 + .4byte gUnk_080FF650 + .4byte gUnk_080FF654 + .4byte gUnk_080FF658 + .4byte gUnk_080FF65C + .4byte gUnk_080FF660 + .4byte gUnk_080FF664 + .4byte gUnk_080FF668 + .4byte gUnk_080FF66C + .4byte gUnk_080FF670 + .4byte gUnk_080FF680 + .4byte gUnk_080FF684 + .4byte gUnk_080FF688 + .4byte gUnk_080FF68C + .4byte gUnk_080FF690 + .4byte gUnk_080FF694 + .4byte gUnk_080FF698 + .4byte gUnk_080FF69C + .4byte gUnk_080FF56C + .4byte gUnk_080FF674 + .4byte gUnk_080FF678 + .4byte gUnk_080FF67C + .4byte gUnk_080FF5B8 + .4byte gUnk_080FF4EC + .4byte gUnk_080FF6E0 + .4byte gUnk_080FF5A4 + .4byte gUnk_080FF4D8 + .4byte gUnk_080FF4FC + .4byte gUnk_080FF640 + .4byte gUnk_080FF644 + .4byte gUnk_080FF648 + .4byte gUnk_080FF64C + .4byte gUnk_080FF580 + .4byte gUnk_080FF584 + .4byte gUnk_080FF5FC + .4byte gUnk_080FF5A8 + .4byte gUnk_080FF5AC + .4byte gUnk_080FF504 + .4byte gUnk_080FF53C + .4byte gUnk_080FF540 + .4byte gUnk_080FF544 + .4byte gUnk_080FF548 + .4byte gUnk_080FF4E0 + .4byte gUnk_080FF600 + .4byte gUnk_080FF630 + .4byte gUnk_080FF634 + .4byte gUnk_080FF638 + .4byte gUnk_080FF63C + .4byte gUnk_080FF6A0 + .4byte gUnk_080FF6A4 + .4byte gUnk_080FF6A8 + .4byte gUnk_080FF6AC + .4byte gUnk_080FF6B0 + .4byte gUnk_080FF54C + .4byte gUnk_080FF604 + .4byte gUnk_080FF6C0 + .4byte gUnk_080FF6BC + .4byte gUnk_080FF6B8 + .4byte gUnk_080FF608 + .4byte gUnk_080FF60C + .4byte gUnk_080FF610 + .4byte gUnk_080FF4F8 + .4byte gUnk_080FF6B4 + .4byte gUnk_080FF508 + .4byte gUnk_080FF614 + .4byte gUnk_080FF618 + .4byte gUnk_080FF61C + .4byte gUnk_080FF6E4 + .4byte gUnk_080FF6E8 + .4byte gUnk_080FF6EC + .4byte gUnk_080FF6F0 + .4byte gUnk_080FF6F4 + .4byte gUnk_080FF6F8 + .4byte gUnk_080FF6FC + .4byte gUnk_080FF700 + .4byte gUnk_080FF704 + .4byte gUnk_080FF708 + .4byte gUnk_080FF528 + .4byte gUnk_080FF520 + .4byte gUnk_080FF5D0 + .4byte gUnk_080FF5D4 + .4byte gUnk_080FF5D8 + .4byte gUnk_080FF5DC + .4byte gUnk_080FF5E0 + .4byte gUnk_080FF5E8 + .4byte gUnk_080FF5EC + .4byte gUnk_080FF5F0 + .4byte gUnk_080FF5F4 + .4byte gUnk_080FF530 + .4byte gUnk_080FF534 + .4byte gUnk_080FF5BC + .4byte gUnk_080FF620 + .4byte gUnk_080FF624 + .4byte gUnk_080FF628 + .4byte gUnk_080FF62C + .4byte gUnk_080FF514 + .4byte gUnk_080FF550 + .4byte gUnk_080FF554 + .4byte gUnk_080FF558 + .4byte gUnk_080FF55C + .4byte gUnk_080FF588 + .4byte gUnk_080FF5C0 + .4byte gUnk_080FF538 + .4byte gUnk_080FF4BC + .4byte gUnk_080FF70C + .4byte gUnk_080FF710 + .4byte gUnk_080FF714 + .4byte gUnk_080FF718 + .4byte gUnk_080FF71C + .4byte gUnk_080FF720 + .4byte gUnk_080FF724 + .4byte gUnk_080FF728 + .4byte gUnk_080FF72C + .4byte gUnk_080FF52C + .4byte gUnk_080FF730 + .4byte gUnk_080FF73C + .4byte gUnk_080FF744 + .4byte gUnk_080FF750 + .4byte gUnk_080FF75C + .4byte gUnk_080FF770 + .4byte gUnk_080FF778 + .4byte gUnk_080FF780 + .4byte gUnk_080FF788 + .4byte gUnk_080FF790 + .4byte gUnk_080FF798 + .4byte gUnk_080FF7A0 + .4byte gUnk_080FF7A8 + .4byte gUnk_080FF7B0 + .4byte gUnk_080FF7B8 + .4byte gUnk_080FF7C0 + .4byte gUnk_080FF7C8 + .4byte gUnk_080FF7D0 + .4byte gUnk_080FF7D8 + .4byte gUnk_080FF7E0 + .4byte gUnk_080FF7E8 + .4byte gUnk_080FF7F0 + .4byte gUnk_080FF7F8 + .4byte gUnk_080FF808 + .4byte gUnk_080FF814 + .4byte gUnk_080FF83C + .4byte gUnk_080FF844 gUnk_080FFB90:: @ 080FFB90 .incbin "baserom.gba", 0x0FFB90, 0x0000018 @@ -1889,28 +2829,136 @@ gUnk_08100A9C:: @ 08100A9C .incbin "baserom.gba", 0x100A9C, 0x000000C gUnk_08100AA8:: @ 08100AA8 - .incbin "baserom.gba", 0x100AA8, 0x000005F - -gUnk_08100B07:: @ 08100B07 - .incbin "baserom.gba", 0x100B07, 0x0000009 - -gUnk_08100B10:: @ 08100B10 - .incbin "baserom.gba", 0x100B10, 0x0000004 - -gUnk_08100B14:: @ 08100B14 - .incbin "baserom.gba", 0x100B14, 0x00000DC - -gUnk_08100BF0:: @ 08100BF0 - .incbin "baserom.gba", 0x100BF0, 0x000000D - -gUnk_08100BFD:: @ 08100BFD - .incbin "baserom.gba", 0x100BFD, 0x0000004 - -gUnk_08100C01:: @ 08100C01 - .incbin "baserom.gba", 0x100C01, 0x0000001 - -gUnk_08100C02:: @ 08100C02 - .incbin "baserom.gba", 0x100C02, 0x000007F - -gUnk_08100C81:: @ 08100C81 - .incbin "baserom.gba", 0x100C81, 0x000003B + .4byte 00000000 + .4byte gUnk_080FFB90 + .4byte gUnk_080FFBA8 + .4byte gUnk_080FFBF0 + .4byte gUnk_080FFC14 + .4byte gUnk_080FFC38 + .4byte gUnk_080FFC68 + .4byte gUnk_080FFC80 + .4byte gUnk_080FFC8C + .4byte gUnk_080FFCEC + .4byte gUnk_080FFD04 + .4byte gUnk_080FFD1C + .4byte gUnk_080FFC98 + .4byte gUnk_080FFCB0 + .4byte gUnk_080FFCC8 + .4byte gUnk_080FFCD4 + .4byte gUnk_080FFD28 + .4byte gUnk_080FFFC8 + .4byte gUnk_080FFFE0 + .4byte gUnk_080FFFEC + .4byte gUnk_08100028 + .4byte gUnk_08100034 + .4byte gUnk_080FFF98 + .4byte gUnk_080FFD40 + .4byte gUnk_080FFD4C + .4byte gUnk_080FFD58 + .4byte gUnk_080FFD64 + .4byte gUnk_080FFD70 + .4byte gUnk_080FFD7C + .4byte gUnk_080FFD88 + .4byte gUnk_080FFE30 + .4byte gUnk_080FFEE4 + .4byte gUnk_080FFEA8 + .4byte gUnk_080FFE6C + .4byte gUnk_080FFF5C + .4byte gUnk_080FFF20 + .4byte gUnk_080FFD94 + .4byte gUnk_080FFDAC + .4byte gUnk_080FFDC4 + .4byte gUnk_080FFDD0 + .4byte gUnk_080FFDE8 + .4byte gUnk_080FFE00 + .4byte gUnk_080FFE18 + .4byte gUnk_080FFFF8 + .4byte gUnk_08100004 + .4byte gUnk_08100010 + .4byte gUnk_0810001C + .4byte gUnk_08100040 + .4byte gUnk_0810004C + .4byte gUnk_08100058 + .4byte gUnk_08100064 + .4byte gUnk_08100070 + .4byte gUnk_0810007C + .4byte gUnk_08100088 + .4byte gUnk_08100118 + .4byte gUnk_08100130 + .4byte gUnk_08100148 + .4byte gUnk_08100160 + .4byte gUnk_08100178 + .4byte gUnk_08100190 + .4byte gUnk_081001A8 + .4byte gUnk_081001C0 + .4byte gUnk_081001D8 + .4byte gUnk_081001F0 + .4byte gUnk_08100208 + .4byte gUnk_08100220 + .4byte gUnk_08100238 + .4byte gUnk_08100250 + .4byte gUnk_08100268 + .4byte gUnk_08100280 + .4byte gUnk_08100298 + .4byte gUnk_081002B0 + .4byte gUnk_081002C8 + .4byte gUnk_081002E0 + .4byte gUnk_081002EC + .4byte gUnk_08100094 + .4byte gUnk_081000A0 + .4byte gUnk_081000AC + .4byte gUnk_081000B8 + .4byte gUnk_081000C4 + .4byte gUnk_081000D0 + .4byte gUnk_081000DC + .4byte gUnk_081000E8 + .4byte gUnk_081000F4 + .4byte gUnk_08100100 + .4byte gUnk_0810010C + .4byte gUnk_081002F8 + .4byte gUnk_08100328 + .4byte gUnk_08100358 + .4byte gUnk_08100388 + .4byte gUnk_081003DC + .4byte gUnk_08100424 + .4byte gUnk_0810046C + .4byte gUnk_08100514 + .4byte gUnk_08100550 + .4byte gUnk_08100580 + .4byte gUnk_081005B0 + .4byte gUnk_081005E0 + .4byte gUnk_08100610 + .4byte gUnk_08100640 + .4byte gUnk_08100670 + .4byte gUnk_081006A0 + .4byte gUnk_081006D0 + .4byte gUnk_08100700 + .4byte gUnk_08100730 + .4byte gUnk_08100790 + .4byte gUnk_081007C0 + .4byte gUnk_08100820 + .4byte gUnk_08100850 + .4byte gUnk_081008E0 + .4byte gUnk_08100910 + .4byte gUnk_08100940 + .4byte gUnk_08100760 + .4byte gUnk_081007F0 + .4byte gUnk_081008E0 + .4byte gUnk_081008B0 + .4byte gUnk_08100880 + .4byte gUnk_08100970 + .4byte gUnk_081009AC + .4byte gUnk_081009B8 + .4byte gUnk_081009C4 + .4byte gUnk_081009D0 + .4byte gUnk_081009DC + .4byte gUnk_081009E8 + .4byte gUnk_081009F4 + .4byte gUnk_08100A00 + .4byte gUnk_08100A30 + .4byte gUnk_081004CC + .4byte gUnk_081004F0 + .4byte gUnk_081004B4 + .4byte gUnk_08100A84 + .4byte gUnk_08100A90 + .4byte gUnk_08100A9C diff --git a/data/data_08108D30.s b/data/data_08108D30.s index 2d7f45a4..d7bf0dba 100644 --- a/data/data_08108D30.s +++ b/data/data_08108D30.s @@ -370,7 +370,7 @@ gUnk_08109AA8:: @ 08109AA8 gUnk_08109AB8:: @ 08109AB8 .incbin "baserom.gba", 0x109AB8, 0x0000010 - .include "data/const/playerItem/playerItem11.inc" + .include "data/const/playerItem/playerItem14.inc" @ TODO convert .inc files into .s files and include them in linker.ld .include "data/animations/npc/gentari.inc" diff --git a/data/data_08114208.s b/data/data_08114208.s index 625faf88..c0226f52 100644 --- a/data/data_08114208.s +++ b/data/data_08114208.s @@ -604,20 +604,7 @@ gUnk_0811B578:: @ 0811B578 gUnk_0811B940:: @ 0811B940 .incbin "baserom.gba", 0x11B940, 0x000004C -gUnk_0811B98C:: @ 0811B98C - .incbin "baserom.gba", 0x11B98C, 0x0000014 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItem12.inc" -gUnk_0811B9A0:: @ 0811B9A0 - .incbin "baserom.gba", 0x11B9A0, 0x0000008 - -gUnk_0811B9A8:: @ 0811B9A8 - .incbin "baserom.gba", 0x11B9A8, 0x0000020 - -gUnk_0811B9C8:: @ 0811B9C8 - .incbin "baserom.gba", 0x11B9C8, 0x0000008 - -gUnk_0811B9D0:: @ 0811B9D0 - .incbin "baserom.gba", 0x11B9D0, 0x0000008 - -gUnk_0811B9D8:: @ 0811B9D8 - .incbin "baserom.gba", 0x11B9D8, 0x0000008 + .include "data/const/playerItem/playerItemPacciCane.inc" diff --git a/data/data_08124712.s b/data/data_08124712.s index 29a9f4d7..429af36a 100644 --- a/data/data_08124712.s +++ b/data/data_08124712.s @@ -62,10 +62,11 @@ gUnk_08125104:: @ 08125104 - .incbin "baserom.gba", 0x125104, 0x000000E - -gUnk_08125112:: @ 08125112 - .incbin "baserom.gba", 0x125112, 0x0000006 + .4byte 00000000 + .4byte gUnk_080FD150 + .4byte gUnk_080FD158 + .4byte gUnk_080FD170 + .4byte gUnk_080FD180 gUnk_08125118:: @ 08125118 .incbin "baserom.gba", 0x125118, 0x00002C0 @@ -299,7 +300,9 @@ gUnk_08126EC8:: @ 08126EC8 .incbin "baserom.gba", 0x126EC8, 0x0000010 gUnk_08126ED8:: @ 08126ED8 - .incbin "baserom.gba", 0x126ED8, 0x000000C + .4byte gUnk_08126E68 + .4byte gUnk_08126E98 + .4byte gUnk_08126EC8 gUnk_08126EE4:: @ 08126EE4 .incbin "baserom.gba", 0x126EE4, 0x0000008 @@ -401,40 +404,48 @@ gUnk_08127143:: @ 08127143 .incbin "baserom.gba", 0x127143, 0x0000009 gUnk_0812714C:: @ 0812714C - .incbin "baserom.gba", 0x12714C, 0x0000080 + .4byte gUnk_08126EF4 + .4byte gUnk_08126EF8 + .4byte gUnk_08126EFD + .4byte gUnk_08126F02 + .4byte gUnk_08126F3D + .4byte gUnk_08126F81 + .4byte gUnk_08126F70 + .4byte gUnk_08126F13 + .4byte gUnk_08126F28 + .4byte gUnk_08126F8A + .4byte gUnk_08126F96 + .4byte gUnk_08126FC3 + .4byte gUnk_08126FF8 + .4byte gUnk_08126FA3 + .4byte gUnk_08126FE4 + .4byte gUnk_08127019 + .4byte gUnk_08126FB3 + .4byte gUnk_08127031 + .4byte gUnk_08127046 + .4byte gUnk_0812705B + .4byte gUnk_081270B7 + .4byte gUnk_081270E0 + .4byte gUnk_08126F4E + .4byte gUnk_08126F5F + .4byte gUnk_081270F1 + .4byte gUnk_081270F6 + .4byte gUnk_08127107 + .4byte gUnk_08127118 + .4byte gUnk_08127129 + .4byte gUnk_0812713A + .4byte gUnk_08127143 + .4byte 00000000 gUnk_081271CC:: @ 081271CC .incbin "baserom.gba", 0x1271CC, 0x0000008 -gUnk_081271D4:: @ 081271D4 - .incbin "baserom.gba", 0x1271D4, 0x0000008 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItemShield.inc" -gUnk_081271DC:: @ 081271DC - .incbin "baserom.gba", 0x1271DC, 0x0000044 + .include "data/const/playerItem/playerItem15.inc" -gUnk_08127220:: @ 08127220 - .incbin "baserom.gba", 0x127220, 0x0000020 -gUnk_08127240:: @ 08127240 - .incbin "baserom.gba", 0x127240, 0x0000010 - -gUnk_08127250:: @ 08127250 - .incbin "baserom.gba", 0x127250, 0x0000008 - -gUnk_08127258:: @ 08127258 - .incbin "baserom.gba", 0x127258, 0x0000008 - -gUnk_08127260:: @ 08127260 - .incbin "baserom.gba", 0x127260, 0x0000008 - -gUnk_08127268:: @ 08127268 - .incbin "baserom.gba", 0x127268, 0x0000008 - -gUnk_08127270:: @ 08127270 - .incbin "baserom.gba", 0x127270, 0x0000008 - -gUnk_08127278:: @ 08127278 - .incbin "baserom.gba", 0x127278, 0x0000008 gUnk_08127280:: @ 08127280 .incbin "baserom.gba", 0x127280, 0x0000018 @@ -449,7 +460,10 @@ gUnk_081272C8:: @ 081272C8 .incbin "baserom.gba", 0x1272C8, 0x0000018 gUnk_081272E0:: @ 081272E0 - .incbin "baserom.gba", 0x1272E0, 0x0000010 + .4byte gUnk_08127280 + .4byte gUnk_08127298 + .4byte gUnk_081272B0 + .4byte gUnk_081272C8 gUnk_081272F0:: @ 081272F0 .incbin "baserom.gba", 0x1272F0, 0x0000354 @@ -464,10 +478,20 @@ gUnk_08127CEC:: @ 08127CEC .incbin "baserom.gba", 0x127CEC, 0x0000014 gUnk_08127D00:: @ 08127D00 - .incbin "baserom.gba", 0x127D00, 0x0000010 + .4byte sub_080A3608 + .4byte sub_080A36C0 + .4byte sub_080A3994 + .4byte sub_080A3980 gUnk_08127D10:: @ 08127D10 - .incbin "baserom.gba", 0x127D10, 0x0000020 + .4byte sub_080A36DC + .4byte sub_080A36F8 + .4byte sub_080A3768 + .4byte sub_080A3864 + .4byte sub_080A3888 + .4byte sub_080A38B4 + .4byte sub_080A38D0 + .4byte sub_080A3930 gUnk_08127D30:: @ 08127D30 .incbin "baserom.gba", 0x127D30, 0x0000264 @@ -479,7 +503,12 @@ gUnk_08128024:: @ 08128024 .incbin "baserom.gba", 0x128024, 0x00000A0 gUnk_081280C4:: @ 081280C4 - .incbin "baserom.gba", 0x1280C4, 0x0000018 + .4byte sub_080A3BD0 + .4byte sub_080A3C6C + .4byte sub_080A3DB8 + .4byte sub_080A3E00 + .4byte sub_080A3F10 + .4byte sub_080A3F4C gUnk_081280DC:: @ 081280DC .incbin "baserom.gba", 0x1280DC, 0x0000012 @@ -488,10 +517,15 @@ gUnk_081280EE:: @ 081280EE .incbin "baserom.gba", 0x1280EE, 0x0000006 gUnk_081280F4:: @ 081280F4 - .incbin "baserom.gba", 0x1280F4, 0x000000C + .4byte sub_080A3E20 + .4byte sub_080A3E48 + .4byte sub_080A3EDC gUnk_08128100:: @ 08128100 - .incbin "baserom.gba", 0x128100, 0x0000010 + .4byte sub_080A3F68 + .4byte sub_080A3FCC + .4byte sub_080A3FF4 + .4byte sub_080A4038 gUnk_08128110:: @ 08128110 .incbin "baserom.gba", 0x128110, 0x0000010 @@ -503,10 +537,16 @@ gUnk_0812813C:: @ 0812813C .incbin "baserom.gba", 0x12813C, 0x0000010 gUnk_0812814C:: @ 0812814C - .incbin "baserom.gba", 0x12814C, 0x0000010 + .4byte sub_080A46DC + .4byte sub_080A46EC + .4byte sub_080A4720 + .4byte sub_080A47D0 gUnk_0812815C:: @ 0812815C - .incbin "baserom.gba", 0x12815C, 0x0000010 + .4byte sub_080A4830 + .4byte sub_080A4864 + .4byte sub_080A4934 + .4byte sub_080A4940 gUnk_0812816C:: @ 0812816C .incbin "baserom.gba", 0x12816C, 0x0000018 @@ -517,7 +557,7 @@ gUnk_08128184:: @ 08128184 gUnk_08128190:: @ 08128190 .incbin "baserom.gba", 0x128190, 0x0000018 -gUnk_081281A8:: @ 081281A8 +gUnk_081281A8:: @ 081281A8 TODO figurineData? .incbin "baserom.gba", 0x1281A8, 0x0000890 gUnk_08128A38:: @ 08128A38 @@ -675,23 +715,6 @@ gUnk_08129030:: @ 08129030 @ TODO convert .inc files into .s files and include them in linker.ld .include "data/const/playerItem/playerItemSword.inc" -gUnk_08129068:: @ 08129068 - .incbin "baserom.gba", 0x129068, 0x0000004 - -gUnk_0812906C:: @ 0812906C - .incbin "baserom.gba", 0x12906C, 0x0000006 - -gUnk_08129072:: @ 08129072 - .incbin "baserom.gba", 0x129072, 0x000001C - -gUnk_0812908E:: @ 0812908E - .incbin "baserom.gba", 0x12908E, 0x0000008 - -gUnk_08129096:: @ 08129096 - .incbin "baserom.gba", 0x129096, 0x000024C - -gUnk_081292E2:: @ 081292E2 - .incbin "baserom.gba", 0x1292E2, 0x000003E gUnk_08129320:: @ 08129320 .incbin "baserom.gba", 0x129320, 0x0000098 @@ -1660,16 +1683,25 @@ gUnk_0812AA31:: @ 0812AA31 .incbin "baserom.gba", 0x12AA31, 0x000001F gUnk_0812AA50:: @ 0812AA50 - .incbin "baserom.gba", 0x12AA50, 0x000000C + .4byte gUnk_0812A9FC + .4byte gUnk_0812AA31 + .4byte 00000000 gUnk_0812AA5C:: @ 0812AA5C - .incbin "baserom.gba", 0x12AA5C, 0x0000018 + .4byte sub_080ACA50 + .4byte sub_080ACA68 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + .4byte sub_080ACA50 gUnk_0812AA74:: @ 0812AA74 - .incbin "baserom.gba", 0x12AA74, 0x000000C + .4byte sub_080ACAC8 + .4byte sub_080ACAF0 + .4byte sub_080ACB10 -gUnk_0812AA80:: @ 0812AA80 - .incbin "baserom.gba", 0x12AA80, 0x0000008 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItem10.inc" gUnk_0812AA88:: @ 0812AA88 .incbin "baserom.gba", 0x12AA88, 0x0000009 @@ -1681,7 +1713,10 @@ gUnk_0812AA9A:: @ 0812AA9A .incbin "baserom.gba", 0x12AA9A, 0x0000012 gUnk_0812AAAC:: @ 0812AAAC - .incbin "baserom.gba", 0x12AAAC, 0x0000010 + .4byte gUnk_0812AA88 + .4byte gUnk_0812AA91 + .4byte gUnk_0812AA91 + .4byte gUnk_0812AA9A gUnk_0812AABC:: @ 0812AABC .incbin "baserom.gba", 0x12AABC, 0x0000004 @@ -1696,10 +1731,115 @@ gUnk_0812AAD0:: @ 0812AAD0 .incbin "baserom.gba", 0x12AAD0, 0x0000008 gUnk_0812AAD8:: @ 0812AAD8 - .incbin "baserom.gba", 0x12AAD8, 0x0000010 + .4byte gUnk_0812AAC0 + .4byte gUnk_0812AAC8 + .4byte gUnk_0812AAC8 + .4byte gUnk_0812AAD0 gUnk_0812AAE8:: @ 0812AAE8 - .incbin "baserom.gba", 0x12AAE8, 0x000019C + .4byte 0x10100c00 + .4byte gUnk_0812B204 + .4byte gUnk_0812B1F8 + .4byte gUnk_0812B1EC + .4byte gUnk_0812B1E0 + .4byte gUnk_0812B1D4 + .4byte gUnk_0812B1C8 + .4byte gUnk_0812B1BC + .4byte gUnk_0812B1B0 + .4byte gUnk_0812B1A4 + .4byte gUnk_0812B198 + .4byte gUnk_0812B18C + .4byte gUnk_0812B180 + .4byte gUnk_0812B174 + .4byte gUnk_0812B168 + .4byte gUnk_0812B15C + .4byte gUnk_0812B150 + .4byte gUnk_0812B144 + .4byte gUnk_0812B138 + .4byte gUnk_0812B124 + .4byte gUnk_0812B11C + .4byte gUnk_0812B110 + .4byte gUnk_0812B104 + .4byte gUnk_0812B0FC + .4byte gUnk_0812B0EC + .4byte gUnk_0812B0DC + .4byte gUnk_0812B0CC + .4byte gUnk_0812B0BC + .4byte gUnk_0812B0AC + .4byte gUnk_0812B0A0 + .4byte gUnk_0812B098 + .4byte gUnk_0812B08C + .4byte gUnk_0812B07C + .4byte gUnk_0812B06C + .4byte gUnk_0812B05C + .4byte gUnk_0812B050 + .4byte gUnk_0812B044 + .4byte gUnk_0812B034 + .4byte gUnk_0812B028 + .4byte gUnk_0812B018 + .4byte gUnk_0812B010 + .4byte gUnk_0812B004 + .4byte gUnk_0812AFF4 + .4byte gUnk_0812AFE0 + .4byte gUnk_0812AFCC + .4byte gUnk_0812AFB8 + .4byte gUnk_0812AFA4 + .4byte gUnk_0812AF94 + .4byte gUnk_0812AF84 + .4byte gUnk_0812AF70 + .4byte gUnk_0812AF64 + .4byte gUnk_0812AF58 + .4byte gUnk_0812AF4C + .4byte gUnk_0812AF40 + .4byte gUnk_0812AF34 + .4byte gUnk_0812AF28 + .4byte gUnk_0812AF1C + .4byte gUnk_0812AF10 + .4byte gUnk_0812AF04 + .4byte gUnk_0812AEF4 + .4byte gUnk_0812AEEC + .4byte gUnk_0812AEE4 + .4byte gUnk_0812AEDC + .4byte gUnk_0812AEC8 + .4byte gUnk_0812AEB4 + .4byte gUnk_0812AEA0 + .4byte gUnk_0812AE8C + .4byte gUnk_0812AE7C + .4byte gUnk_0812AE6C + .4byte gUnk_0812AE5C + .4byte gUnk_0812AE48 + .4byte gUnk_0812AE38 + .4byte gUnk_0812AE24 + .4byte gUnk_0812AE14 + .4byte gUnk_0812AE0C + .4byte gUnk_0812ADFC + .4byte gUnk_0812ADEC + .4byte gUnk_0812ADDC + .4byte gUnk_0812ADCC + .4byte gUnk_0812ADBC + .4byte gUnk_0812ADB0 + .4byte gUnk_0812ADA0 + .4byte gUnk_0812AD98 + .4byte gUnk_0812AD8C + .4byte gUnk_0812AD7C + .4byte gUnk_0812AD70 + .4byte gUnk_0812AD64 + .4byte gUnk_0812AD54 + .4byte gUnk_0812AD40 + .4byte gUnk_0812AD30 + .4byte gUnk_0812AD20 + .4byte gUnk_0812AD0C + .4byte gUnk_0812AD00 + .4byte gUnk_0812ACF0 + .4byte gUnk_0812ACE4 + .4byte gUnk_0812ACD8 + .4byte gUnk_0812ACCC + .4byte gUnk_0812ACC0 + .4byte gUnk_0812ACB0 + .4byte gUnk_0812ACA4 + .4byte gUnk_0812AC94 + .4byte gUnk_0812AC88 + .4byte gUnk_0812AC84 gUnk_0812AC84:: @ 0812AC84 .incbin "baserom.gba", 0x12AC84, 0x0000004 @@ -2008,7 +2148,262 @@ gUnk_0812B1F8:: @ 0812B1F8 .incbin "baserom.gba", 0x12B1F8, 0x000000C gUnk_0812B204:: @ 0812B204 - .incbin "baserom.gba", 0x12B204, 0x0000400 + .incbin "baserom.gba", 0x12B204, 0x0000008 + + .4byte gUnk_0812B204 + .4byte gUnk_0812C5F0 + .4byte gUnk_0812C5E0 + .4byte gUnk_0812C5D0 + .4byte gUnk_0812C5C0 + .4byte gUnk_0812C5B0 + .4byte gUnk_0812C5A0 + .4byte gUnk_0812C590 + .4byte gUnk_0812C580 + .4byte gUnk_0812C570 + .4byte gUnk_0812C560 + .4byte gUnk_0812C54C + .4byte gUnk_0812C53C + .4byte gUnk_0812C52C + .4byte gUnk_0812C51C + .4byte gUnk_0812C50C + .4byte gUnk_0812C4FC + .4byte gUnk_0812C4EC + .4byte gUnk_0812C4DC + .4byte gUnk_0812C4C8 + .4byte gUnk_0812C4B4 + .4byte gUnk_0812C4A4 + .4byte gUnk_0812C494 + .4byte gUnk_0812C484 + .4byte gUnk_0812C474 + .4byte gUnk_0812C464 + .4byte gUnk_0812C454 + .4byte gUnk_0812C444 + .4byte gUnk_0812C434 + .4byte gUnk_0812C420 + .4byte gUnk_0812C410 + .4byte gUnk_0812C3FC + .4byte gUnk_0812C3EC + .4byte gUnk_0812C3DC + .4byte gUnk_0812C3CC + .4byte gUnk_0812C3BC + .4byte gUnk_0812C3AC + .4byte gUnk_0812C3A0 + .4byte gUnk_0812C394 + .4byte gUnk_0812C388 + .4byte gUnk_0812C37C + .4byte gUnk_0812C370 + .4byte gUnk_0812C364 + .4byte gUnk_0812C354 + .4byte gUnk_0812C344 + .4byte gUnk_0812C334 + .4byte gUnk_0812C324 + .4byte gUnk_0812C314 + .4byte gUnk_0812C308 + .4byte gUnk_0812C2FC + .4byte gUnk_0812C2F0 + .4byte gUnk_0812C2E4 + .4byte gUnk_0812C2D8 + .4byte gUnk_0812C2CC + .4byte gUnk_0812C2BC + .4byte gUnk_0812C2AC + .4byte gUnk_0812C29C + .4byte gUnk_0812C28C + .4byte gUnk_0812C27C + .4byte gUnk_0812C26C + .4byte gUnk_0812C260 + .4byte gUnk_0812C254 + .4byte gUnk_0812C240 + .4byte gUnk_0812C234 + .4byte gUnk_0812C228 + .4byte gUnk_0812C218 + .4byte gUnk_0812C20C + .4byte gUnk_0812C200 + .4byte gUnk_0812C1F4 + .4byte gUnk_0812C1E8 + .4byte gUnk_0812C1D8 + .4byte gUnk_0812C1C8 + .4byte gUnk_0812C1B8 + .4byte gUnk_0812C1A8 + .4byte gUnk_0812C198 + .4byte gUnk_0812C18C + .4byte gUnk_0812C17C + .4byte gUnk_0812C16C + .4byte gUnk_0812C160 + .4byte gUnk_0812C154 + .4byte gUnk_0812C148 + .4byte gUnk_0812C13C + .4byte gUnk_0812C130 + .4byte gUnk_0812C11C + .4byte gUnk_0812C108 + .4byte gUnk_0812C0F4 + .4byte gUnk_0812C0E4 + .4byte gUnk_0812C0D4 + .4byte gUnk_0812C0C4 + .4byte gUnk_0812C0B4 + .4byte gUnk_0812C0A4 + .4byte gUnk_0812C094 + .4byte gUnk_0812C088 + .4byte gUnk_0812C078 + .4byte gUnk_0812C064 + .4byte gUnk_0812C050 + .4byte gUnk_0812C03C + .4byte gUnk_0812C028 + .4byte gUnk_0812C014 + .4byte gUnk_0812C000 + .4byte gUnk_0812BFEC + .4byte gUnk_0812BFD8 + .4byte gUnk_0812BFC4 + .4byte gUnk_0812BFB0 + .4byte gUnk_0812BF9C + .4byte gUnk_0812BF88 + .4byte gUnk_0812BF74 + .4byte gUnk_0812BF64 + .4byte gUnk_0812BF54 + .4byte gUnk_0812BF44 + .4byte gUnk_0812BF30 + .4byte gUnk_0812BF1C + .4byte gUnk_0812BF08 + .4byte gUnk_0812BEF4 + .4byte gUnk_0812BEE0 + .4byte gUnk_0812BECC + .4byte gUnk_0812BEB8 + .4byte gUnk_0812BEA4 + .4byte gUnk_0812BE90 + .4byte gUnk_0812BE7C + .4byte gUnk_0812BE68 + .4byte gUnk_0812BE54 + .4byte gUnk_0812BE44 + .4byte gUnk_0812BE34 + .4byte gUnk_0812BE24 + .4byte gUnk_0812BE14 + .4byte gUnk_0812BE04 + .4byte gUnk_0812BDF4 + .4byte gUnk_0812BDE4 + .4byte gUnk_0812BDD0 + .4byte gUnk_0812BDBC + .4byte gUnk_0812BDA8 + .4byte gUnk_0812BD94 + .4byte gUnk_0812BD80 + .4byte gUnk_0812BD6C + .4byte gUnk_0812BD58 + .4byte gUnk_0812BD44 + .4byte gUnk_0812BD30 + .4byte gUnk_0812BD20 + .4byte gUnk_0812BD0C + .4byte gUnk_0812BCF8 + .4byte gUnk_0812BCE8 + .4byte gUnk_0812BCD8 + .4byte gUnk_0812BCC8 + .4byte gUnk_0812BCB8 + .4byte gUnk_0812BCA8 + .4byte gUnk_0812BC98 + .4byte gUnk_0812BC88 + .4byte gUnk_0812BC78 + .4byte gUnk_0812BC68 + .4byte gUnk_0812BC58 + .4byte gUnk_0812BC48 + .4byte gUnk_0812BC38 + .4byte gUnk_0812BC28 + .4byte gUnk_0812BC18 + .4byte gUnk_0812BC08 + .4byte gUnk_0812BBF4 + .4byte gUnk_0812BBE4 + .4byte gUnk_0812BBD4 + .4byte gUnk_0812BBC0 + .4byte gUnk_0812BBAC + .4byte gUnk_0812BB9C + .4byte gUnk_0812BB8C + .4byte gUnk_0812BB7C + .4byte gUnk_0812BB6C + .4byte gUnk_0812BB5C + .4byte gUnk_0812BB4C + .4byte gUnk_0812BB3C + .4byte gUnk_0812BB2C + .4byte gUnk_0812BB1C + .4byte gUnk_0812BB0C + .4byte gUnk_0812BAFC + .4byte gUnk_0812BAE4 + .4byte gUnk_0812BAD4 + .4byte gUnk_0812BAC4 + .4byte gUnk_0812BAB8 + .4byte gUnk_0812BAAC + .4byte gUnk_0812BAA0 + .4byte gUnk_0812BA94 + .4byte gUnk_0812BA88 + .4byte gUnk_0812BA78 + .4byte gUnk_0812BA68 + .4byte gUnk_0812BA58 + .4byte gUnk_0812BA48 + .4byte gUnk_0812BA38 + .4byte gUnk_0812BA28 + .4byte gUnk_0812BA18 + .4byte gUnk_0812BA08 + .4byte gUnk_0812B9F8 + .4byte gUnk_0812B9E8 + .4byte gUnk_0812B9D8 + .4byte gUnk_0812B9C8 + .4byte gUnk_0812B9B8 + .4byte gUnk_0812B9A8 + .4byte gUnk_0812B998 + .4byte gUnk_0812B988 + .4byte gUnk_0812B978 + .4byte gUnk_0812B968 + .4byte gUnk_0812B958 + .4byte gUnk_0812B940 + .4byte gUnk_0812B934 + .4byte gUnk_0812B928 + .4byte gUnk_0812B91C + .4byte gUnk_0812B90C + .4byte gUnk_0812B8FC + .4byte gUnk_0812B8EC + .4byte gUnk_0812B8DC + .4byte gUnk_0812B8CC + .4byte gUnk_0812B8BC + .4byte gUnk_0812B8B0 + .4byte gUnk_0812B8A0 + .4byte gUnk_0812B890 + .4byte gUnk_0812B880 + .4byte gUnk_0812B870 + .4byte gUnk_0812B860 + .4byte gUnk_0812B850 + .4byte gUnk_0812B840 + .4byte gUnk_0812B830 + .4byte gUnk_0812B820 + .4byte gUnk_0812B814 + .4byte gUnk_0812B804 + .4byte gUnk_0812B7F4 + .4byte gUnk_0812B7E4 + .4byte gUnk_0812B7D4 + .4byte gUnk_0812B7C4 + .4byte gUnk_0812B7B4 + .4byte gUnk_0812B7A4 + .4byte gUnk_0812B794 + .4byte gUnk_0812B784 + .4byte gUnk_0812B774 + .4byte gUnk_0812B764 + .4byte gUnk_0812B754 + .4byte gUnk_0812B744 + .4byte gUnk_0812B734 + .4byte gUnk_0812B724 + .4byte gUnk_0812B714 + .4byte gUnk_0812B700 + .4byte gUnk_0812B6F0 + .4byte gUnk_0812B6DC + .4byte gUnk_0812B6C8 + .4byte gUnk_0812B6B4 + .4byte gUnk_0812B6A0 + .4byte gUnk_0812B68C + .4byte gUnk_0812B67C + .4byte gUnk_0812B66C + .4byte gUnk_0812B65C + .4byte gUnk_0812B64C + .4byte gUnk_0812B638 + .4byte gUnk_0812B624 + .4byte gUnk_0812B61C + .4byte gUnk_0812B614 + .4byte gUnk_0812B60C + .4byte gUnk_0812B604 + .4byte gUnk_0812AC84 gUnk_0812B604:: @ 0812B604 .incbin "baserom.gba", 0x12B604, 0x0000008 @@ -2773,10 +3168,221 @@ gUnk_0812C5E0:: @ 0812C5E0 .incbin "baserom.gba", 0x12C5E0, 0x0000010 gUnk_0812C5F0:: @ 0812C5F0 - .incbin "baserom.gba", 0x12C5F0, 0x00000C8 + .incbin "baserom.gba", 0x12C5F0, 0x0000010 -gUnk_0812C6B8:: @ 0812C6B8 - .incbin "baserom.gba", 0x12C6B8, 0x000029C + .4byte gUnk_0812B204 + .4byte gUnk_0812D688 + .4byte gUnk_0812D670 + .4byte gUnk_0812D658 + .4byte gUnk_0812D640 + .4byte gUnk_0812D630 + .4byte gUnk_0812D620 + .4byte gUnk_0812D610 + .4byte gUnk_0812D600 + .4byte gUnk_0812D5F0 + .4byte gUnk_0812D5E0 + .4byte gUnk_0812D5D0 + .4byte gUnk_0812D5C0 + .4byte gUnk_0812D5B0 + .4byte gUnk_0812D5A0 + .4byte gUnk_0812D590 + .4byte gUnk_0812D580 + .4byte gUnk_0812D570 + .4byte gUnk_0812D560 + .4byte gUnk_0812D550 + .4byte gUnk_0812D540 + .4byte gUnk_0812D530 + .4byte gUnk_0812D524 + .4byte gUnk_0812D518 + .4byte gUnk_0812D50C + .4byte gUnk_0812D500 + .4byte gUnk_0812D4EC + .4byte gUnk_0812D4D8 + .4byte gUnk_0812D4C4 + .4byte gUnk_0812D4B0 + .4byte gUnk_0812D49C + .4byte gUnk_0812D48C + .4byte gUnk_0812D47C + .4byte gUnk_0812D46C + .4byte gUnk_0812D45C + .4byte gUnk_0812D44C + .4byte gUnk_0812D43C + .4byte gUnk_0812D42C + .4byte gUnk_0812D41C + .4byte gUnk_0812D408 + .4byte gUnk_0812D3F0 + .4byte gUnk_0812D3DC + .4byte gUnk_0812D3C8 + .4byte gUnk_0812D3BC + .4byte gUnk_0812D3B0 + .4byte gUnk_0812D3A4 + .4byte gUnk_0812D398 + .4byte gUnk_0812D38C + .4byte gUnk_0812D380 + .4byte gUnk_0812D374 + .4byte gUnk_0812D368 + .4byte gUnk_0812D35C + .4byte gUnk_0812D350 + .4byte gUnk_0812D344 + .4byte gUnk_0812D338 + .4byte gUnk_0812D32C + .4byte gUnk_0812D320 + .4byte gUnk_0812D314 + .4byte gUnk_0812D308 + .4byte gUnk_0812D2FC + .4byte gUnk_0812D2F0 + .4byte gUnk_0812D2E4 + .4byte gUnk_0812D2D8 + .4byte gUnk_0812D2CC + .4byte gUnk_0812D2C0 + .4byte gUnk_0812D2B4 + .4byte gUnk_0812D2A8 + .4byte gUnk_0812D29C + .4byte gUnk_0812D290 + .4byte gUnk_0812D284 + .4byte gUnk_0812D274 + .4byte gUnk_0812D264 + .4byte gUnk_0812D254 + .4byte gUnk_0812D244 + .4byte gUnk_0812D234 + .4byte gUnk_0812D224 + .4byte gUnk_0812D214 + .4byte gUnk_0812D204 + .4byte gUnk_0812D1F4 + .4byte gUnk_0812D1E4 + .4byte gUnk_0812D1D4 + .4byte gUnk_0812D1C4 + .4byte gUnk_0812D1B4 + .4byte gUnk_0812D1A4 + .4byte gUnk_0812D194 + .4byte gUnk_0812D184 + .4byte gUnk_0812D174 + .4byte gUnk_0812D164 + .4byte gUnk_0812D154 + .4byte gUnk_0812D148 + .4byte gUnk_0812D13C + .4byte gUnk_0812D12C + .4byte gUnk_0812D11C + .4byte gUnk_0812D10C + .4byte gUnk_0812D100 + .4byte gUnk_0812D0F0 + .4byte gUnk_0812D0E0 + .4byte gUnk_0812D0CC + .4byte gUnk_0812D0BC + .4byte gUnk_0812D0A8 + .4byte gUnk_0812D098 + .4byte gUnk_0812D084 + .4byte gUnk_0812D070 + .4byte gUnk_0812D058 + .4byte gUnk_0812D044 + .4byte gUnk_0812D034 + .4byte gUnk_0812D024 + .4byte gUnk_0812D014 + .4byte gUnk_0812D000 + .4byte gUnk_0812CFF0 + .4byte gUnk_0812CFDC + .4byte gUnk_0812CFC8 + .4byte gUnk_0812CFB8 + .4byte gUnk_0812CFA0 + .4byte gUnk_0812CF8C + .4byte gUnk_0812CF74 + .4byte gUnk_0812CF64 + .4byte gUnk_0812CF4C + .4byte gUnk_0812CF40 + .4byte gUnk_0812CF34 + .4byte gUnk_0812CF28 + .4byte gUnk_0812CF1C + .4byte gUnk_0812CF10 + .4byte gUnk_0812CF04 + .4byte gUnk_0812CEF8 + .4byte gUnk_0812CEEC + .4byte gUnk_0812CEDC + .4byte gUnk_0812CECC + .4byte gUnk_0812CEBC + .4byte gUnk_0812CEAC + .4byte gUnk_0812CE9C + .4byte gUnk_0812CE8C + .4byte gUnk_0812CE7C + .4byte gUnk_0812CE6C + .4byte gUnk_0812CE5C + .4byte gUnk_0812CE4C + .4byte gUnk_0812CE3C + .4byte gUnk_0812CE2C + .4byte gUnk_0812CE1C + .4byte gUnk_0812CE04 + .4byte gUnk_0812CDEC + .4byte gUnk_0812CDDC + .4byte gUnk_0812CDC8 + .4byte gUnk_0812CDB8 + .4byte gUnk_0812CDA4 + .4byte gUnk_0812CD94 + .4byte gUnk_0812CD80 + .4byte gUnk_0812CD70 + .4byte gUnk_0812CD60 + .4byte gUnk_0812CD4C + .4byte gUnk_0812CD38 + .4byte gUnk_0812CD2C + .4byte gUnk_0812CD20 + .4byte gUnk_0812CD14 + .4byte gUnk_0812CD08 + .4byte gUnk_0812CCFC + .4byte gUnk_0812CCE8 + .4byte gUnk_0812CCD4 + .4byte gUnk_0812CCC4 + .4byte gUnk_0812CCB4 + .4byte gUnk_0812CCA4 + .4byte gUnk_0812CC94 + .4byte gUnk_0812CC84 + .4byte gUnk_0812CC74 + .4byte gUnk_0812CC64 + .4byte gUnk_0812CC54 + .4byte gUnk_0812CC40 + .4byte gUnk_0812CC30 + .4byte gUnk_0812CC20 + .4byte gUnk_0812CC10 + .4byte gUnk_0812CC00 + .4byte gUnk_0812CBF0 + .4byte gUnk_0812CBE0 + .4byte gUnk_0812CBD4 + .4byte gUnk_0812CBC0 + .4byte gUnk_0812CBB4 + .4byte gUnk_0812CBA0 + .4byte gUnk_0812CB90 + .4byte gUnk_0812CB80 + .4byte gUnk_0812CB6C + .4byte gUnk_0812CB58 + .4byte gUnk_0812CB44 + .4byte gUnk_0812CB30 + .4byte gUnk_0812CB1C + .4byte gUnk_0812CB04 + .4byte gUnk_0812CAF0 + .4byte gUnk_0812CADC + .4byte gUnk_0812CAC8 + .4byte gUnk_0812CAB4 + .4byte gUnk_0812CAA0 + .4byte gUnk_0812CA8C + .4byte gUnk_0812CA78 + .4byte gUnk_0812CA64 + .4byte gUnk_0812CA50 + .4byte gUnk_0812CA3C + .4byte gUnk_0812CA2C + .4byte gUnk_0812CA1C + .4byte gUnk_0812CA0C + .4byte gUnk_0812C9FC + .4byte gUnk_0812C9EC + .4byte gUnk_0812C9DC + .4byte gUnk_0812C9CC + .4byte gUnk_0812C9BC + .4byte gUnk_0812C9AC + .4byte gUnk_0812C99C + .4byte gUnk_0812C98C + .4byte gUnk_0812C97C + .4byte gUnk_0812C974 + .4byte gUnk_0812C96C + .4byte gUnk_0812C964 + .4byte gUnk_0812C95C + .4byte gUnk_0812C954 + .4byte gUnk_0812AC84 gUnk_0812C954:: @ 0812C954 .incbin "baserom.gba", 0x12C954, 0x0000008 @@ -3409,7 +4015,209 @@ gUnk_0812D670:: @ 0812D670 .incbin "baserom.gba", 0x12D670, 0x0000018 gUnk_0812D688:: @ 0812D688 - .incbin "baserom.gba", 0x12D688, 0x0000340 + .incbin "baserom.gba", 0x12D688, 0x0000018 + .4byte gUnk_0812B204 + .4byte gUnk_0812E5FC + .4byte gUnk_0812E5E8 + .4byte gUnk_0812E5D4 + .4byte gUnk_0812E5C0 + .4byte gUnk_0812E5AC + .4byte gUnk_0812E598 + .4byte gUnk_0812E584 + .4byte gUnk_0812E570 + .4byte gUnk_0812E55C + .4byte gUnk_0812E548 + .4byte gUnk_0812E534 + .4byte gUnk_0812E520 + .4byte gUnk_0812E50C + .4byte gUnk_0812E4F8 + .4byte gUnk_0812E4E4 + .4byte gUnk_0812E4D0 + .4byte gUnk_0812E4BC + .4byte gUnk_0812E4A8 + .4byte gUnk_0812E494 + .4byte gUnk_0812E480 + .4byte gUnk_0812E46C + .4byte gUnk_0812E45C + .4byte gUnk_0812E44C + .4byte gUnk_0812E43C + .4byte gUnk_0812E42C + .4byte gUnk_0812E41C + .4byte gUnk_0812E40C + .4byte gUnk_0812E3FC + .4byte gUnk_0812E3EC + .4byte gUnk_0812E3DC + .4byte gUnk_0812E3CC + .4byte gUnk_0812E3BC + .4byte gUnk_0812E3AC + .4byte gUnk_0812E39C + .4byte gUnk_0812E38C + .4byte gUnk_0812E37C + .4byte gUnk_0812E36C + .4byte gUnk_0812E35C + .4byte gUnk_0812E34C + .4byte gUnk_0812E33C + .4byte gUnk_0812E32C + .4byte gUnk_0812E31C + .4byte gUnk_0812E30C + .4byte gUnk_0812E2FC + .4byte gUnk_0812E2F0 + .4byte gUnk_0812E2E4 + .4byte gUnk_0812E2D8 + .4byte gUnk_0812E2CC + .4byte gUnk_0812E2BC + .4byte gUnk_0812E2B0 + .4byte gUnk_0812E2A0 + .4byte gUnk_0812E290 + .4byte gUnk_0812E280 + .4byte gUnk_0812E270 + .4byte gUnk_0812E260 + .4byte gUnk_0812E250 + .4byte gUnk_0812E240 + .4byte gUnk_0812E230 + .4byte gUnk_0812E220 + .4byte gUnk_0812E210 + .4byte gUnk_0812E200 + .4byte gUnk_0812E1F0 + .4byte gUnk_0812E1E0 + .4byte gUnk_0812E1D0 + .4byte gUnk_0812E1C0 + .4byte gUnk_0812E1B0 + .4byte gUnk_0812E1A0 + .4byte gUnk_0812E190 + .4byte gUnk_0812E180 + .4byte gUnk_0812E170 + .4byte gUnk_0812E160 + .4byte gUnk_0812E150 + .4byte gUnk_0812E140 + .4byte gUnk_0812E130 + .4byte gUnk_0812E120 + .4byte gUnk_0812E110 + .4byte gUnk_0812E100 + .4byte gUnk_0812E0F0 + .4byte gUnk_0812E0E0 + .4byte gUnk_0812E0D0 + .4byte gUnk_0812E0C0 + .4byte gUnk_0812E0B0 + .4byte gUnk_0812E0A0 + .4byte gUnk_0812E090 + .4byte gUnk_0812E080 + .4byte gUnk_0812E070 + .4byte gUnk_0812E060 + .4byte gUnk_0812E050 + .4byte gUnk_0812E040 + .4byte gUnk_0812E030 + .4byte gUnk_0812E020 + .4byte gUnk_0812E010 + .4byte gUnk_0812E000 + .4byte gUnk_0812DFF0 + .4byte gUnk_0812DFE0 + .4byte gUnk_0812DFD0 + .4byte gUnk_0812DFC0 + .4byte gUnk_0812DFB0 + .4byte gUnk_0812DFA0 + .4byte gUnk_0812DF90 + .4byte gUnk_0812DF80 + .4byte gUnk_0812DF70 + .4byte gUnk_0812DF64 + .4byte gUnk_0812DF58 + .4byte gUnk_0812DF4C + .4byte gUnk_0812DF40 + .4byte gUnk_0812DF34 + .4byte gUnk_0812DF28 + .4byte gUnk_0812DF1C + .4byte gUnk_0812DF10 + .4byte gUnk_0812DF04 + .4byte gUnk_0812DEF8 + .4byte gUnk_0812DEEC + .4byte gUnk_0812DEE0 + .4byte gUnk_0812DED4 + .4byte gUnk_0812DEC8 + .4byte gUnk_0812DEBC + .4byte gUnk_0812DEB0 + .4byte gUnk_0812DEA4 + .4byte gUnk_0812DE8C + .4byte gUnk_0812DE7C + .4byte gUnk_0812DE68 + .4byte gUnk_0812DE54 + .4byte gUnk_0812DE40 + .4byte gUnk_0812DE30 + .4byte gUnk_0812DE1C + .4byte gUnk_0812DE08 + .4byte gUnk_0812DDF4 + .4byte gUnk_0812DDE0 + .4byte gUnk_0812DDCC + .4byte gUnk_0812DDC0 + .4byte gUnk_0812DDB4 + .4byte gUnk_0812DDA8 + .4byte gUnk_0812DD9C + .4byte gUnk_0812DD90 + .4byte gUnk_0812DD84 + .4byte gUnk_0812DD78 + .4byte gUnk_0812DD6C + .4byte gUnk_0812DD60 + .4byte gUnk_0812DD54 + .4byte gUnk_0812DD48 + .4byte gUnk_0812DD3C + .4byte gUnk_0812DD30 + .4byte gUnk_0812DD24 + .4byte gUnk_0812DD18 + .4byte gUnk_0812DD0C + .4byte gUnk_0812DD00 + .4byte gUnk_0812DCEC + .4byte gUnk_0812DCD8 + .4byte gUnk_0812DCCC + .4byte gUnk_0812DCC0 + .4byte gUnk_0812DCB4 + .4byte gUnk_0812DCA8 + .4byte gUnk_0812DC9C + .4byte gUnk_0812DC90 + .4byte gUnk_0812DC84 + .4byte gUnk_0812DC78 + .4byte gUnk_0812DC6C + .4byte gUnk_0812DC60 + .4byte gUnk_0812DC54 + .4byte gUnk_0812DC48 + .4byte gUnk_0812DC3C + .4byte gUnk_0812DC30 + .4byte gUnk_0812DC24 + .4byte gUnk_0812DC18 + .4byte gUnk_0812DC08 + .4byte gUnk_0812DBF8 + .4byte gUnk_0812DBE8 + .4byte gUnk_0812DBD8 + .4byte gUnk_0812DBC8 + .4byte gUnk_0812DBB8 + .4byte gUnk_0812DBA8 + .4byte gUnk_0812DB94 + .4byte gUnk_0812DB84 + .4byte gUnk_0812DB74 + .4byte gUnk_0812DB64 + .4byte gUnk_0812DB54 + .4byte gUnk_0812DB44 + .4byte gUnk_0812DB34 + .4byte gUnk_0812DB24 + .4byte gUnk_0812DB14 + .4byte gUnk_0812DB04 + .4byte gUnk_0812DAF4 + .4byte gUnk_0812DAE4 + .4byte gUnk_0812DAD4 + .4byte gUnk_0812DAC0 + .4byte gUnk_0812DAB0 + .4byte gUnk_0812DAA4 + .4byte gUnk_0812DA98 + .4byte gUnk_0812DA80 + .4byte gUnk_0812DA68 + .4byte gUnk_0812DA54 + .4byte gUnk_0812DA40 + .4byte gUnk_0812DA28 + .4byte gUnk_0812DA14 + .4byte gUnk_0812DA04 + .4byte gUnk_0812D9F4 + .4byte gUnk_0812D9E8 + .4byte gUnk_0812D9D0 + .4byte gUnk_0812D9C8 + .4byte gUnk_0812AC84 gUnk_0812D9C8:: @ 0812D9C8 .incbin "baserom.gba", 0x12D9C8, 0x0000008 @@ -4012,7 +4820,150 @@ gUnk_0812E5E8:: @ 0812E5E8 .incbin "baserom.gba", 0x12E5E8, 0x0000014 gUnk_0812E5FC:: @ 0812E5FC - .incbin "baserom.gba", 0x12E5FC, 0x0000248 + .incbin "baserom.gba", 0x12E5FC, 0x0000010 + + .4byte gUnk_0812B204 + .4byte gUnk_0812F494 + .4byte gUnk_0812F484 + .4byte gUnk_0812F470 + .4byte gUnk_0812F458 + .4byte gUnk_0812F440 + .4byte gUnk_0812F428 + .4byte gUnk_0812F410 + .4byte gUnk_0812F3F8 + .4byte gUnk_0812F3E0 + .4byte gUnk_0812F3C8 + .4byte gUnk_0812F3B0 + .4byte gUnk_0812F398 + .4byte gUnk_0812F380 + .4byte gUnk_0812F368 + .4byte gUnk_0812F350 + .4byte gUnk_0812F338 + .4byte gUnk_0812F320 + .4byte gUnk_0812F308 + .4byte gUnk_0812F2F0 + .4byte gUnk_0812F2D8 + .4byte gUnk_0812F2C0 + .4byte gUnk_0812F2A8 + .4byte gUnk_0812F290 + .4byte gUnk_0812F278 + .4byte gUnk_0812F260 + .4byte gUnk_0812F248 + .4byte gUnk_0812F230 + .4byte gUnk_0812F218 + .4byte gUnk_0812F200 + .4byte gUnk_0812F1E8 + .4byte gUnk_0812F1D0 + .4byte gUnk_0812F1B8 + .4byte gUnk_0812F1A0 + .4byte gUnk_0812F188 + .4byte gUnk_0812F170 + .4byte gUnk_0812F158 + .4byte gUnk_0812F140 + .4byte gUnk_0812F128 + .4byte gUnk_0812F110 + .4byte gUnk_0812F0F8 + .4byte gUnk_0812F0E0 + .4byte gUnk_0812F0C8 + .4byte gUnk_0812F0B0 + .4byte gUnk_0812F098 + .4byte gUnk_0812F080 + .4byte gUnk_0812F068 + .4byte gUnk_0812F050 + .4byte gUnk_0812F038 + .4byte gUnk_0812F020 + .4byte gUnk_0812F008 + .4byte gUnk_0812EFF0 + .4byte gUnk_0812EFD8 + .4byte gUnk_0812EFC0 + .4byte gUnk_0812EFA8 + .4byte gUnk_0812EF8C + .4byte gUnk_0812EF74 + .4byte gUnk_0812EF5C + .4byte gUnk_0812EF44 + .4byte gUnk_0812EF30 + .4byte gUnk_0812EF1C + .4byte gUnk_0812EF08 + .4byte gUnk_0812EEF4 + .4byte gUnk_0812EEE0 + .4byte gUnk_0812EECC + .4byte gUnk_0812EEB8 + .4byte gUnk_0812EEA4 + .4byte gUnk_0812EE90 + .4byte gUnk_0812EE7C + .4byte gUnk_0812EE68 + .4byte gUnk_0812EE54 + .4byte gUnk_0812EE40 + .4byte gUnk_0812EE28 + .4byte gUnk_0812EE10 + .4byte gUnk_0812EDF8 + .4byte gUnk_0812EDE0 + .4byte gUnk_0812EDC8 + .4byte gUnk_0812EDB0 + .4byte gUnk_0812ED98 + .4byte gUnk_0812ED80 + .4byte gUnk_0812ED68 + .4byte gUnk_0812ED50 + .4byte gUnk_0812ED38 + .4byte gUnk_0812ED20 + .4byte gUnk_0812ED08 + .4byte gUnk_0812ECF0 + .4byte gUnk_0812ECD8 + .4byte gUnk_0812ECC0 + .4byte gUnk_0812ECA8 + .4byte gUnk_0812EC90 + .4byte gUnk_0812EC78 + .4byte gUnk_0812EC60 + .4byte gUnk_0812EC48 + .4byte gUnk_0812EC34 + .4byte gUnk_0812EC20 + .4byte gUnk_0812EC08 + .4byte gUnk_0812EBF0 + .4byte gUnk_0812EBD8 + .4byte gUnk_0812EBC0 + .4byte gUnk_0812EBA4 + .4byte gUnk_0812EB88 + .4byte gUnk_0812EB6C + .4byte gUnk_0812EB50 + .4byte gUnk_0812EB34 + .4byte gUnk_0812EB1C + .4byte gUnk_0812EB04 + .4byte gUnk_0812EAE8 + .4byte gUnk_0812EACC + .4byte gUnk_0812EAB0 + .4byte gUnk_0812EA98 + .4byte gUnk_0812EA80 + .4byte gUnk_0812EA68 + .4byte gUnk_0812EA50 + .4byte gUnk_0812EA38 + .4byte gUnk_0812EA20 + .4byte gUnk_0812EA08 + .4byte gUnk_0812E9F0 + .4byte gUnk_0812E9D8 + .4byte gUnk_0812E9C4 + .4byte gUnk_0812E9B0 + .4byte gUnk_0812E99C + .4byte gUnk_0812E988 + .4byte gUnk_0812E970 + .4byte gUnk_0812E958 + .4byte gUnk_0812E940 + .4byte gUnk_0812E92C + .4byte gUnk_0812E914 + .4byte gUnk_0812E904 + .4byte gUnk_0812E8F4 + .4byte gUnk_0812E8DC + .4byte gUnk_0812E8CC + .4byte gUnk_0812E8BC + .4byte gUnk_0812E8A4 + .4byte gUnk_0812E88C + .4byte gUnk_0812E874 + .4byte gUnk_0812E86C + .4byte gUnk_0812E864 + .4byte gUnk_0812E85C + .4byte gUnk_0812E854 + .4byte gUnk_0812E84C + .4byte gUnk_0812E844 + .4byte gUnk_0812AC84 gUnk_0812E844:: @ 0812E844 .incbin "baserom.gba", 0x12E844, 0x0000008 @@ -4441,7 +5392,96 @@ gUnk_0812F484:: @ 0812F484 .incbin "baserom.gba", 0x12F484, 0x0000010 gUnk_0812F494:: @ 0812F494 - .incbin "baserom.gba", 0x12F494, 0x0000170 + .incbin "baserom.gba", 0x12F494, 0x0000010 + + .4byte gUnk_0812B204 + .4byte gUnk_0812FA30 + .4byte gUnk_0812FA24 + .4byte gUnk_0812FA18 + .4byte gUnk_0812FA0C + .4byte gUnk_0812FA00 + .4byte gUnk_0812F9F4 + .4byte gUnk_0812F9E8 + .4byte gUnk_0812F9DC + .4byte gUnk_0812F9D0 + .4byte gUnk_0812F9C4 + .4byte gUnk_0812F9B8 + .4byte gUnk_0812F9AC + .4byte gUnk_0812F9A0 + .4byte gUnk_0812F994 + .4byte gUnk_0812F988 + .4byte gUnk_0812F97C + .4byte gUnk_0812F970 + .4byte gUnk_0812F964 + .4byte gUnk_0812F958 + .4byte gUnk_0812F94C + .4byte gUnk_0812F940 + .4byte gUnk_0812F934 + .4byte gUnk_0812F928 + .4byte gUnk_0812F91C + .4byte gUnk_0812F910 + .4byte gUnk_0812F904 + .4byte gUnk_0812F8F8 + .4byte gUnk_0812F8EC + .4byte gUnk_0812F8E0 + .4byte gUnk_0812F8D4 + .4byte gUnk_0812F8C8 + .4byte gUnk_0812F8BC + .4byte gUnk_0812F8B0 + .4byte gUnk_0812F8A4 + .4byte gUnk_0812F898 + .4byte gUnk_0812F88C + .4byte gUnk_0812F87C + .4byte gUnk_0812F870 + .4byte gUnk_0812F864 + .4byte gUnk_0812F858 + .4byte gUnk_0812F84C + .4byte gUnk_0812F840 + .4byte gUnk_0812F834 + .4byte gUnk_0812F824 + .4byte gUnk_0812F818 + .4byte gUnk_0812F808 + .4byte gUnk_0812F7FC + .4byte gUnk_0812F7F0 + .4byte gUnk_0812F7E4 + .4byte gUnk_0812F7D8 + .4byte gUnk_0812F7C8 + .4byte gUnk_0812F7BC + .4byte gUnk_0812F7B0 + .4byte gUnk_0812F7A4 + .4byte gUnk_0812F794 + .4byte gUnk_0812F788 + .4byte gUnk_0812F77C + .4byte gUnk_0812F770 + .4byte gUnk_0812F764 + .4byte gUnk_0812F758 + .4byte gUnk_0812F74C + .4byte gUnk_0812F740 + .4byte gUnk_0812F734 + .4byte gUnk_0812F728 + .4byte gUnk_0812F71C + .4byte gUnk_0812F710 + .4byte gUnk_0812F704 + .4byte gUnk_0812F6F8 + .4byte gUnk_0812F6EC + .4byte gUnk_0812F6DC + .4byte gUnk_0812F6CC + .4byte gUnk_0812F6BC + .4byte gUnk_0812F6B0 + .4byte gUnk_0812F6A4 + .4byte gUnk_0812F698 + .4byte gUnk_0812F68C + .4byte gUnk_0812F680 + .4byte gUnk_0812F670 + .4byte gUnk_0812F664 + .4byte gUnk_0812F654 + .4byte gUnk_0812F648 + .4byte gUnk_0812F63C + .4byte gUnk_0812F630 + .4byte gUnk_0812F624 + .4byte gUnk_0812F614 + .4byte gUnk_0812F604 + .4byte gUnk_0812AC84 gUnk_0812F604:: @ 0812F604 .incbin "baserom.gba", 0x12F604, 0x0000010 @@ -4708,10 +5748,78 @@ gUnk_0812FA24:: @ 0812FA24 .incbin "baserom.gba", 0x12FA24, 0x000000C gUnk_0812FA30:: @ 0812FA30 - .incbin "baserom.gba", 0x12FA30, 0x00000CD + .incbin "baserom.gba", 0x12FA30, 0x000000C -gUnk_0812FAFD:: @ 0812FAFD - .incbin "baserom.gba", 0x12FAFD, 0x0000057 + .4byte gUnk_0812B204 + .4byte gUnk_0812FEA0 + .4byte gUnk_0812FE94 + .4byte gUnk_0812FE88 + .4byte gUnk_0812FE7C + .4byte gUnk_0812FE70 + .4byte gUnk_0812FE64 + .4byte gUnk_0812FE58 + .4byte gUnk_0812FE4C + .4byte gUnk_0812FE40 + .4byte gUnk_0812FE34 + .4byte gUnk_0812FE28 + .4byte gUnk_0812FE1C + .4byte gUnk_0812FE10 + .4byte gUnk_0812FE04 + .4byte gUnk_0812FDF8 + .4byte gUnk_0812FDEC + .4byte gUnk_0812FDE0 + .4byte gUnk_0812FDD4 + .4byte gUnk_0812FDC0 + .4byte gUnk_0812FDB4 + .4byte gUnk_0812FDA8 + .4byte gUnk_0812FD9C + .4byte gUnk_0812FD90 + .4byte gUnk_0812FD84 + .4byte gUnk_0812FD78 + .4byte gUnk_0812FD6C + .4byte gUnk_0812FD5C + .4byte gUnk_0812FD50 + .4byte gUnk_0812FD44 + .4byte gUnk_0812FD34 + .4byte gUnk_0812FD28 + .4byte gUnk_0812FD1C + .4byte gUnk_0812FD0C + .4byte gUnk_0812FD00 + .4byte gUnk_0812FCF0 + .4byte gUnk_0812FCE4 + .4byte gUnk_0812FCD8 + .4byte gUnk_0812FCCC + .4byte gUnk_0812FCC0 + .4byte gUnk_0812FCB4 + .4byte gUnk_0812FCA8 + .4byte gUnk_0812FC9C + .4byte gUnk_0812FC90 + .4byte gUnk_0812FC84 + .4byte gUnk_0812FC78 + .4byte gUnk_0812FC6C + .4byte gUnk_0812FC60 + .4byte gUnk_0812FC54 + .4byte gUnk_0812FC48 + .4byte gUnk_0812FC3C + .4byte gUnk_0812FC2C + .4byte gUnk_0812FC20 + .4byte gUnk_0812FC14 + .4byte gUnk_0812FC08 + .4byte gUnk_0812FBFC + .4byte gUnk_0812FBF0 + .4byte gUnk_0812FBE4 + .4byte gUnk_0812FBD4 + .4byte gUnk_0812FBC8 + .4byte gUnk_0812FBBC + .4byte gUnk_0812FBB0 + .4byte gUnk_0812FBA4 + .4byte gUnk_0812FB98 + .4byte gUnk_0812FB8C + .4byte gUnk_0812FB80 + .4byte gUnk_0812FB74 + .4byte gUnk_0812FB64 + .4byte gUnk_0812FB54 + .4byte gUnk_0812AC84 gUnk_0812FB54:: @ 0812FB54 .incbin "baserom.gba", 0x12FB54, 0x0000010 @@ -4915,16 +6023,83 @@ gUnk_0812FE94:: @ 0812FE94 .incbin "baserom.gba", 0x12FE94, 0x000000C gUnk_0812FEA0:: @ 0812FEA0 - .incbin "baserom.gba", 0x12FEA0, 0x00000B6 + .incbin "baserom.gba", 0x12FEA0, 0x000000C -gUnk_0812FF56:: @ 0812FF56 - .incbin "baserom.gba", 0x12FF56, 0x0000048 - -gUnk_0812FF9E:: @ 0812FF9E - .incbin "baserom.gba", 0x12FF9E, 0x0000038 - -gUnk_0812FFD6:: @ 0812FFD6 - .incbin "baserom.gba", 0x12FFD6, 0x0000002 + .4byte gUnk_0812B204 + .4byte gUnk_0813036C + .4byte gUnk_08130360 + .4byte gUnk_08130354 + .4byte gUnk_08130348 + .4byte gUnk_0813033C + .4byte gUnk_08130330 + .4byte gUnk_08130324 + .4byte gUnk_08130318 + .4byte gUnk_0813030C + .4byte gUnk_08130300 + .4byte gUnk_081302F4 + .4byte gUnk_081302E8 + .4byte gUnk_081302DC + .4byte gUnk_081302D0 + .4byte gUnk_081302C4 + .4byte gUnk_081302B8 + .4byte gUnk_081302AC + .4byte gUnk_081302A0 + .4byte gUnk_08130294 + .4byte gUnk_08130288 + .4byte gUnk_0813027C + .4byte gUnk_08130270 + .4byte gUnk_08130264 + .4byte gUnk_08130258 + .4byte gUnk_0813024C + .4byte gUnk_08130240 + .4byte gUnk_08130234 + .4byte gUnk_08130228 + .4byte gUnk_0813021C + .4byte gUnk_08130210 + .4byte gUnk_08130204 + .4byte gUnk_081301F4 + .4byte gUnk_081301E8 + .4byte gUnk_081301DC + .4byte gUnk_081301D0 + .4byte gUnk_081301C0 + .4byte gUnk_081301B0 + .4byte gUnk_081301A0 + .4byte gUnk_08130194 + .4byte gUnk_08130188 + .4byte gUnk_08130178 + .4byte gUnk_0813016C + .4byte gUnk_08130160 + .4byte gUnk_08130154 + .4byte gUnk_08130148 + .4byte gUnk_0813013C + .4byte gUnk_08130130 + .4byte gUnk_08130124 + .4byte gUnk_08130114 + .4byte gUnk_08130100 + .4byte gUnk_081300F4 + .4byte gUnk_081300E4 + .4byte gUnk_081300D8 + .4byte gUnk_081300CC + .4byte gUnk_081300C0 + .4byte gUnk_081300B4 + .4byte gUnk_081300A8 + .4byte gUnk_0813009C + .4byte gUnk_08130090 + .4byte gUnk_08130084 + .4byte gUnk_08130078 + .4byte gUnk_0813006C + .4byte gUnk_08130060 + .4byte gUnk_08130050 + .4byte gUnk_08130044 + .4byte gUnk_08130038 + .4byte gUnk_0813002C + .4byte gUnk_08130020 + .4byte gUnk_0813000C + .4byte gUnk_0812FFFC + .4byte gUnk_0812FFF0 + .4byte gUnk_0812FFE4 + .4byte gUnk_0812FFD8 + .4byte gUnk_0812AC84 gUnk_0812FFD8:: @ 0812FFD8 .incbin "baserom.gba", 0x12FFD8, 0x000000C @@ -5167,10 +6342,173 @@ gUnk_08130360:: @ 08130360 .incbin "baserom.gba", 0x130360, 0x000000C gUnk_0813036C:: @ 0813036C - .incbin "baserom.gba", 0x13036C, 0x0000286 + .incbin "baserom.gba", 0x13036C, 0x000000C -gUnk_081305F2:: @ 081305F2 - .incbin "baserom.gba", 0x1305F2, 0x000001A + .4byte gUnk_0812B204 + .4byte gUnk_08130E00 + .4byte gUnk_08130DF4 + .4byte gUnk_08130DE8 + .4byte gUnk_08130DDC + .4byte gUnk_08130DD0 + .4byte gUnk_08130DC4 + .4byte gUnk_08130DB8 + .4byte gUnk_08130DAC + .4byte gUnk_08130DA0 + .4byte gUnk_08130D94 + .4byte gUnk_08130D88 + .4byte gUnk_08130D7C + .4byte gUnk_08130D70 + .4byte gUnk_08130D64 + .4byte gUnk_08130D58 + .4byte gUnk_08130D4C + .4byte gUnk_08130D40 + .4byte gUnk_08130D34 + .4byte gUnk_08130D28 + .4byte gUnk_08130D1C + .4byte gUnk_08130D10 + .4byte gUnk_08130D04 + .4byte gUnk_08130CF8 + .4byte gUnk_08130CEC + .4byte gUnk_08130CE0 + .4byte gUnk_08130CD4 + .4byte gUnk_08130CC8 + .4byte gUnk_08130CBC + .4byte gUnk_08130CB0 + .4byte gUnk_08130CA4 + .4byte gUnk_08130C98 + .4byte gUnk_08130C8C + .4byte gUnk_08130C80 + .4byte gUnk_08130C74 + .4byte gUnk_08130C68 + .4byte gUnk_08130C5C + .4byte gUnk_08130C50 + .4byte gUnk_08130C44 + .4byte gUnk_08130C38 + .4byte gUnk_08130C2C + .4byte gUnk_08130C20 + .4byte gUnk_08130C14 + .4byte gUnk_08130C04 + .4byte gUnk_08130BF4 + .4byte gUnk_08130BE8 + .4byte gUnk_08130BDC + .4byte gUnk_08130BD0 + .4byte gUnk_08130BC4 + .4byte gUnk_08130BB8 + .4byte gUnk_08130BAC + .4byte gUnk_08130BA0 + .4byte gUnk_08130B90 + .4byte gUnk_08130B7C + .4byte gUnk_08130B6C + .4byte gUnk_08130B58 + .4byte gUnk_08130B4C + .4byte gUnk_08130B3C + .4byte gUnk_08130B30 + .4byte gUnk_08130B24 + .4byte gUnk_08130B18 + .4byte gUnk_08130B0C + .4byte gUnk_08130B00 + .4byte gUnk_08130AF4 + .4byte gUnk_08130AE4 + .4byte gUnk_08130AD8 + .4byte gUnk_08130ACC + .4byte gUnk_08130AC0 + .4byte gUnk_08130AB4 + .4byte gUnk_08130AA8 + .4byte gUnk_08130A9C + .4byte gUnk_08130A90 + .4byte gUnk_08130A80 + .4byte gUnk_08130A74 + .4byte gUnk_08130A64 + .4byte gUnk_08130A58 + .4byte gUnk_08130A4C + .4byte gUnk_08130A40 + .4byte gUnk_08130A34 + .4byte gUnk_08130A24 + .4byte gUnk_08130A18 + .4byte gUnk_08130A0C + .4byte gUnk_08130A00 + .4byte gUnk_081309F0 + .4byte gUnk_081309E4 + .4byte gUnk_081309D8 + .4byte gUnk_081309CC + .4byte gUnk_081309C0 + .4byte gUnk_081309B4 + .4byte gUnk_081309A8 + .4byte gUnk_0813099C + .4byte gUnk_08130990 + .4byte gUnk_08130980 + .4byte gUnk_08130974 + .4byte gUnk_08130968 + .4byte gUnk_0813095C + .4byte gUnk_0813094C + .4byte gUnk_08130940 + .4byte gUnk_08130934 + .4byte gUnk_08130928 + .4byte gUnk_0813091C + .4byte gUnk_08130910 + .4byte gUnk_08130904 + .4byte gUnk_081308F8 + .4byte gUnk_081308EC + .4byte gUnk_081308E0 + .4byte gUnk_081308D4 + .4byte gUnk_081308C8 + .4byte gUnk_081308BC + .4byte gUnk_081308B0 + .4byte gUnk_081308A4 + .4byte gUnk_08130898 + .4byte gUnk_0813088C + .4byte gUnk_0813087C + .4byte gUnk_08130870 + .4byte gUnk_08130864 + .4byte gUnk_08130858 + .4byte gUnk_0813084C + .4byte gUnk_08130840 + .4byte gUnk_08130834 + .4byte gUnk_08130828 + .4byte gUnk_0813081C + .4byte gUnk_08130810 + .4byte gUnk_08130804 + .4byte gUnk_081307F8 + .4byte gUnk_081307EC + .4byte gUnk_081307E0 + .4byte gUnk_081307D0 + .4byte gUnk_081307C0 + .4byte gUnk_081307B0 + .4byte gUnk_081307A4 + .4byte gUnk_08130798 + .4byte gUnk_08130788 + .4byte gUnk_0813077C + .4byte gUnk_08130770 + .4byte gUnk_08130764 + .4byte gUnk_08130758 + .4byte gUnk_0813074C + .4byte gUnk_08130740 + .4byte gUnk_08130734 + .4byte gUnk_08130728 + .4byte gUnk_0813071C + .4byte gUnk_08130710 + .4byte gUnk_08130704 + .4byte gUnk_081306F8 + .4byte gUnk_081306EC + .4byte gUnk_081306E0 + .4byte gUnk_081306D4 + .4byte gUnk_081306C8 + .4byte gUnk_081306BC + .4byte gUnk_081306B0 + .4byte gUnk_081306A4 + .4byte gUnk_08130698 + .4byte gUnk_0813068C + .4byte gUnk_08130680 + .4byte gUnk_08130674 + .4byte gUnk_08130668 + .4byte gUnk_0813065C + .4byte gUnk_08130650 + .4byte gUnk_08130644 + .4byte gUnk_08130638 + .4byte gUnk_0813062C + .4byte gUnk_0813061C + .4byte gUnk_0813060C + .4byte gUnk_0812AC84 gUnk_0813060C:: @ 0813060C .incbin "baserom.gba", 0x13060C, 0x0000010 @@ -5689,34 +7027,145 @@ gUnk_08130DF4:: @ 08130DF4 .incbin "baserom.gba", 0x130DF4, 0x000000C gUnk_08130E00:: @ 08130E00 - .incbin "baserom.gba", 0x130E00, 0x00000E6 + .incbin "baserom.gba", 0x130E00, 0x000000C -gUnk_08130EE6:: @ 08130EE6 - .incbin "baserom.gba", 0x130EE6, 0x0000017 - -gUnk_08130EFD:: @ 08130EFD - .incbin "baserom.gba", 0x130EFD, 0x0000008 - -gUnk_08130F05:: @ 08130F05 - .incbin "baserom.gba", 0x130F05, 0x0000005 - -gUnk_08130F0A:: @ 08130F0A - .incbin "baserom.gba", 0x130F0A, 0x0000002 - -gUnk_08130F0C:: @ 08130F0C - .incbin "baserom.gba", 0x130F0C, 0x0000004 - -gUnk_08130F10:: @ 08130F10 - .incbin "baserom.gba", 0x130F10, 0x0000001 - -gUnk_08130F11:: @ 08130F11 - .incbin "baserom.gba", 0x130F11, 0x00000F4 - -gUnk_08131005:: @ 08131005 - .incbin "baserom.gba", 0x131005, 0x0000005 - -gUnk_0813100A:: @ 0813100A - .incbin "baserom.gba", 0x13100A, 0x0000026 + .4byte gUnk_0812B204 + .4byte gUnk_081316A0 + .4byte gUnk_08131694 + .4byte gUnk_08131688 + .4byte gUnk_0813167C + .4byte gUnk_08131670 + .4byte gUnk_08131664 + .4byte gUnk_08131658 + .4byte gUnk_0813164C + .4byte gUnk_08131640 + .4byte gUnk_08131634 + .4byte gUnk_08131628 + .4byte gUnk_0813161C + .4byte gUnk_08131610 + .4byte gUnk_08131604 + .4byte gUnk_081315F8 + .4byte gUnk_081315EC + .4byte gUnk_081315E0 + .4byte gUnk_081315D4 + .4byte gUnk_081315C8 + .4byte gUnk_081315BC + .4byte gUnk_081315B0 + .4byte gUnk_081315A4 + .4byte gUnk_08131598 + .4byte gUnk_0813158C + .4byte gUnk_08131580 + .4byte gUnk_08131574 + .4byte gUnk_08131568 + .4byte gUnk_0813155C + .4byte gUnk_08131550 + .4byte gUnk_08131544 + .4byte gUnk_08131538 + .4byte gUnk_0813152C + .4byte gUnk_08131520 + .4byte gUnk_08131514 + .4byte gUnk_08131508 + .4byte gUnk_081314FC + .4byte gUnk_081314F0 + .4byte gUnk_081314E4 + .4byte gUnk_081314D8 + .4byte gUnk_081314CC + .4byte gUnk_081314C0 + .4byte gUnk_081314B4 + .4byte gUnk_081314A8 + .4byte gUnk_0813149C + .4byte gUnk_08131490 + .4byte gUnk_08131484 + .4byte gUnk_08131478 + .4byte gUnk_0813146C + .4byte gUnk_08131460 + .4byte gUnk_08131454 + .4byte gUnk_08131448 + .4byte gUnk_0813143C + .4byte gUnk_08131430 + .4byte gUnk_08131420 + .4byte gUnk_08131414 + .4byte gUnk_08131408 + .4byte gUnk_081313FC + .4byte gUnk_081313F0 + .4byte gUnk_081313E4 + .4byte gUnk_081313D8 + .4byte gUnk_081313CC + .4byte gUnk_081313C0 + .4byte gUnk_081313B4 + .4byte gUnk_081313A8 + .4byte gUnk_0813139C + .4byte gUnk_0813138C + .4byte gUnk_08131380 + .4byte gUnk_08131374 + .4byte gUnk_08131368 + .4byte gUnk_0813135C + .4byte gUnk_08131350 + .4byte gUnk_08131344 + .4byte gUnk_08131338 + .4byte gUnk_0813132C + .4byte gUnk_08131320 + .4byte gUnk_08131314 + .4byte gUnk_08131308 + .4byte gUnk_081312FC + .4byte gUnk_081312F0 + .4byte gUnk_081312E4 + .4byte gUnk_081312D8 + .4byte gUnk_081312CC + .4byte gUnk_081312C0 + .4byte gUnk_081312B4 + .4byte gUnk_081312A8 + .4byte gUnk_0813129C + .4byte gUnk_08131290 + .4byte gUnk_08131284 + .4byte gUnk_08131278 + .4byte gUnk_0813126C + .4byte gUnk_08131260 + .4byte gUnk_08131254 + .4byte gUnk_08131248 + .4byte gUnk_0813123C + .4byte gUnk_08131230 + .4byte gUnk_08131224 + .4byte gUnk_08131218 + .4byte gUnk_0813120C + .4byte gUnk_08131200 + .4byte gUnk_081311F4 + .4byte gUnk_081311E4 + .4byte gUnk_081311D8 + .4byte gUnk_081311CC + .4byte gUnk_081311BC + .4byte gUnk_081311B0 + .4byte gUnk_081311A4 + .4byte gUnk_08131198 + .4byte gUnk_0813118C + .4byte gUnk_08131180 + .4byte gUnk_08131174 + .4byte gUnk_08131168 + .4byte gUnk_0813115C + .4byte gUnk_08131150 + .4byte gUnk_08131144 + .4byte gUnk_08131138 + .4byte gUnk_0813112C + .4byte gUnk_0813111C + .4byte gUnk_08131110 + .4byte gUnk_08131100 + .4byte gUnk_081310F0 + .4byte gUnk_081310E4 + .4byte gUnk_081310D8 + .4byte gUnk_081310CC + .4byte gUnk_081310BC + .4byte gUnk_081310AC + .4byte gUnk_081310A0 + .4byte gUnk_08131090 + .4byte gUnk_08131084 + .4byte gUnk_08131078 + .4byte gUnk_0813106C + .4byte gUnk_08131060 + .4byte gUnk_08131054 + .4byte gUnk_08131048 + .4byte gUnk_0813103C + .4byte gUnk_08131030 + .4byte gUnk_0812AC84 gUnk_08131030:: @ 08131030 .incbin "baserom.gba", 0x131030, 0x000000C @@ -6163,37 +7612,160 @@ gUnk_08131694:: @ 08131694 .incbin "baserom.gba", 0x131694, 0x000000C gUnk_081316A0:: @ 081316A0 - .incbin "baserom.gba", 0x1316A0, 0x000004E + .incbin "baserom.gba", 0x1316A0, 0x000000C -gUnk_081316EE:: @ 081316EE - .incbin "baserom.gba", 0x1316EE, 0x000001A - -gUnk_08131708:: @ 08131708 - .incbin "baserom.gba", 0x131708, 0x0000008 - -gUnk_08131710:: @ 08131710 - .incbin "baserom.gba", 0x131710, 0x0000002 - -gUnk_08131712:: @ 08131712 - .incbin "baserom.gba", 0x131712, 0x0000001 - -gUnk_08131713:: @ 08131713 - .incbin "baserom.gba", 0x131713, 0x0000003 - -gUnk_08131716:: @ 08131716 - .incbin "baserom.gba", 0x131716, 0x0000009 - -gUnk_0813171F:: @ 0813171F - .incbin "baserom.gba", 0x13171F, 0x00000C3 - -gUnk_081317E2:: @ 081317E2 - .incbin "baserom.gba", 0x1317E2, 0x0000032 - -gUnk_08131814:: @ 08131814 - .incbin "baserom.gba", 0x131814, 0x0000001 - -gUnk_08131815:: @ 08131815 - .incbin "baserom.gba", 0x131815, 0x00000F7 + .4byte gUnk_0812B204 + .4byte gUnk_0813208C + .4byte gUnk_08132080 + .4byte gUnk_08132074 + .4byte gUnk_08132068 + .4byte gUnk_0813205C + .4byte gUnk_08132050 + .4byte gUnk_08132044 + .4byte gUnk_08132038 + .4byte gUnk_0813202C + .4byte gUnk_08132020 + .4byte gUnk_08132014 + .4byte gUnk_08132008 + .4byte gUnk_08131FFC + .4byte gUnk_08131FF0 + .4byte gUnk_08131FE4 + .4byte gUnk_08131FD8 + .4byte gUnk_08131FCC + .4byte gUnk_08131FC0 + .4byte gUnk_08131FB4 + .4byte gUnk_08131FA8 + .4byte gUnk_08131F9C + .4byte gUnk_08131F90 + .4byte gUnk_08131F84 + .4byte gUnk_08131F78 + .4byte gUnk_08131F6C + .4byte gUnk_08131F60 + .4byte gUnk_08131F54 + .4byte gUnk_08131F48 + .4byte gUnk_08131F3C + .4byte gUnk_08131F30 + .4byte gUnk_08131F24 + .4byte gUnk_08131F18 + .4byte gUnk_08131F0C + .4byte gUnk_08131F00 + .4byte gUnk_08131EF4 + .4byte gUnk_08131EE8 + .4byte gUnk_08131EDC + .4byte gUnk_08131ED0 + .4byte gUnk_08131EC4 + .4byte gUnk_08131EB8 + .4byte gUnk_08131EAC + .4byte gUnk_08131EA0 + .4byte gUnk_08131E94 + .4byte gUnk_08131E88 + .4byte gUnk_08131E7C + .4byte gUnk_08131E70 + .4byte gUnk_08131E64 + .4byte gUnk_08131E58 + .4byte gUnk_08131E4C + .4byte gUnk_08131E40 + .4byte gUnk_08131E34 + .4byte gUnk_08131E28 + .4byte gUnk_08131E1C + .4byte gUnk_08131E10 + .4byte gUnk_08131E04 + .4byte gUnk_08131DF8 + .4byte gUnk_08131DEC + .4byte gUnk_08131DE0 + .4byte gUnk_08131DD4 + .4byte gUnk_08131DC8 + .4byte gUnk_08131DBC + .4byte gUnk_08131DB0 + .4byte gUnk_08131DA4 + .4byte gUnk_08131D98 + .4byte gUnk_08131D8C + .4byte gUnk_08131D80 + .4byte gUnk_08131D74 + .4byte gUnk_08131D68 + .4byte gUnk_08131D5C + .4byte gUnk_08131D50 + .4byte gUnk_08131D44 + .4byte gUnk_08131D38 + .4byte gUnk_08131D2C + .4byte gUnk_08131D20 + .4byte gUnk_08131D14 + .4byte gUnk_08131D08 + .4byte gUnk_08131CFC + .4byte gUnk_08131CF0 + .4byte gUnk_08131CE4 + .4byte gUnk_08131CD8 + .4byte gUnk_08131CCC + .4byte gUnk_08131CC0 + .4byte gUnk_08131CB4 + .4byte gUnk_08131CA8 + .4byte gUnk_08131C98 + .4byte gUnk_08131C8C + .4byte gUnk_08131C80 + .4byte gUnk_08131C74 + .4byte gUnk_08131C68 + .4byte gUnk_08131C5C + .4byte gUnk_08131C50 + .4byte gUnk_08131C40 + .4byte gUnk_08131C34 + .4byte gUnk_08131C28 + .4byte gUnk_08131C1C + .4byte gUnk_08131C10 + .4byte gUnk_08131C04 + .4byte gUnk_08131BF8 + .4byte gUnk_08131BE8 + .4byte gUnk_08131BDC + .4byte gUnk_08131BD0 + .4byte gUnk_08131BC4 + .4byte gUnk_08131BB8 + .4byte gUnk_08131BAC + .4byte gUnk_08131BA0 + .4byte gUnk_08131B94 + .4byte gUnk_08131B88 + .4byte gUnk_08131B7C + .4byte gUnk_08131B70 + .4byte gUnk_08131B64 + .4byte gUnk_08131B54 + .4byte gUnk_08131B44 + .4byte gUnk_08131B34 + .4byte gUnk_08131B24 + .4byte gUnk_08131B10 + .4byte gUnk_08131B00 + .4byte gUnk_08131AEC + .4byte gUnk_08131AD8 + .4byte gUnk_08131AC4 + .4byte gUnk_08131AB4 + .4byte gUnk_08131AA0 + .4byte gUnk_08131A90 + .4byte gUnk_08131A80 + .4byte gUnk_08131A70 + .4byte gUnk_08131A60 + .4byte gUnk_08131A50 + .4byte gUnk_08131A40 + .4byte gUnk_08131A34 + .4byte gUnk_08131A28 + .4byte gUnk_08131A18 + .4byte gUnk_08131A08 + .4byte gUnk_081319F8 + .4byte gUnk_081319E4 + .4byte gUnk_081319D8 + .4byte gUnk_081319CC + .4byte gUnk_081319C0 + .4byte gUnk_081319B4 + .4byte gUnk_081319A8 + .4byte gUnk_0813199C + .4byte gUnk_08131990 + .4byte gUnk_08131984 + .4byte gUnk_08131978 + .4byte gUnk_0813196C + .4byte gUnk_08131960 + .4byte gUnk_08131954 + .4byte gUnk_08131948 + .4byte gUnk_08131938 + .4byte gUnk_08131928 + .4byte gUnk_08131918 + .4byte gUnk_0813190C + .4byte gUnk_0812AC84 gUnk_0813190C:: @ 0813190C .incbin "baserom.gba", 0x13190C, 0x0000001 @@ -6760,22 +8332,11 @@ gUnk_08132080:: @ 08132080 .incbin "baserom.gba", 0x132080, 0x000000C gUnk_0813208C:: @ 0813208C - .incbin "baserom.gba", 0x13208C, 0x000001C + .incbin "baserom.gba", 0x13208C, 0x000000C + .4byte gUnk_0812B204 + .4byte gUnk_0812AC84 + .4byte gUnk_0812B204 + .4byte gUnk_0812AC84 -gUnk_081320A8:: @ 081320A8 - .incbin "baserom.gba", 0x1320A8, 0x0000010 - -gUnk_081320B8:: @ 081320B8 - .incbin "baserom.gba", 0x1320B8, 0x000000C - -gUnk_081320C4:: @ 081320C4 - .incbin "baserom.gba", 0x1320C4, 0x0000008 - -gUnk_081320CC:: @ 081320CC - .incbin "baserom.gba", 0x1320CC, 0x0000008 - -gUnk_081320D4:: @ 081320D4 - .incbin "baserom.gba", 0x1320D4, 0x0000010 - -gUnk_081320E4:: @ 081320E4 - .incbin "baserom.gba", 0x1320E4, 0x000000C + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItem13.inc" diff --git a/data/data_081320FC.s b/data/data_081320FC.s index d2669c2a..f6278743 100755 --- a/data/data_081320FC.s +++ b/data/data_081320FC.s @@ -79,74 +79,8 @@ gUnk_081326CC:: @ 081326CC gUnk_081326EC:: @ 081326EC .incbin "baserom.gba", 0x1326EC, 0x0000014 -gUnk_08132700:: @ 08132700 - .incbin "baserom.gba", 0x132700, 0x0000014 - -gUnk_08132714:: @ 08132714 - .incbin "baserom.gba", 0x132714, 0x0000020 - -gUnk_08132734:: @ 08132734 - .incbin "baserom.gba", 0x132734, 0x0000001 - -gUnk_08132735:: @ 08132735 - .incbin "baserom.gba", 0x132735, 0x0000001 - -gUnk_08132736:: @ 08132736 - .incbin "baserom.gba", 0x132736, 0x000000E - -gUnk_08132744:: @ 08132744 - .incbin "baserom.gba", 0x132744, 0x0000010 - -gUnk_08132754:: @ 08132754 - .incbin "baserom.gba", 0x132754, 0x0000010 - -gUnk_08132764:: @ 08132764 - .incbin "baserom.gba", 0x132764, 0x0000010 - -gUnk_08132774:: @ 08132774 - .incbin "baserom.gba", 0x132774, 0x0000010 - -gUnk_08132784:: @ 08132784 - .incbin "baserom.gba", 0x132784, 0x0000010 - -gUnk_08132794:: @ 08132794 - .incbin "baserom.gba", 0x132794, 0x0000018 - -gUnk_081327AC:: @ 081327AC - .incbin "baserom.gba", 0x1327AC, 0x0000018 - -gUnk_081327C4:: @ 081327C4 - .incbin "baserom.gba", 0x1327C4, 0x0000018 - -gUnk_081327DC:: @ 081327DC - .incbin "baserom.gba", 0x1327DC, 0x0000034 - -gUnk_08132810:: @ 08132810 - .incbin "baserom.gba", 0x132810, 0x0000017 - -gUnk_08132827:: @ 08132827 - .incbin "baserom.gba", 0x132827, 0x00002B9 - -gUnk_08132AE0:: @ 08132AE0 - .incbin "baserom.gba", 0x132AE0, 0x000000A - -gUnk_08132AEA:: @ 08132AEA - .incbin "baserom.gba", 0x132AEA, 0x000000A - -gUnk_08132AF4:: @ 08132AF4 - .incbin "baserom.gba", 0x132AF4, 0x000000A - -gUnk_08132AFE:: @ 08132AFE - .incbin "baserom.gba", 0x132AFE, 0x000000E - -gUnk_08132B0C:: @ 08132B0C - .incbin "baserom.gba", 0x132B0C, 0x000000E - -gUnk_08132B1A:: @ 08132B1A - .incbin "baserom.gba", 0x132B1A, 0x000000E - -gUnk_08132B28:: @ 08132B28 - .incbin "baserom.gba", 0x132B28, 0x0000008 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/playerItem/playerItemGustJar.inc" gUnk_08132B30:: @ 08132B30 .incbin "baserom.gba", 0x132B30, 0x0000203 @@ -194,7 +128,16 @@ gUnk_081339F8:: @ 081339F8 .incbin "baserom.gba", 0x1339F8, 0x0000020 gUnk_08133A18:: @ 08133A18 - .incbin "baserom.gba", 0x133A18, 0x0000028 + .4byte sub_080AE3E4 + .4byte sub_080AE3E8 + .4byte sub_080AE3EC + .4byte sub_080AE408 + .4byte sub_080AE424 + .4byte sub_080AE440 + .4byte sub_080AE45C + .4byte sub_080AE478 + .4byte sub_080AE494 + .4byte sub_080AE4B0 gUnk_08133A40:: @ 08133A40 .incbin "baserom.gba", 0x133A40, 0x000001A diff --git a/linker.ld b/linker.ld index 77caa1c1..9d6f03d4 100644 --- a/linker.ld +++ b/linker.ld @@ -311,9 +311,8 @@ SECTIONS { src/code_08018C58.o(.text); src/playerItem/playerItem11.o(.text); asm/playerItem11.o(.text); - src/createBowEntity.o(.text); - asm/createBowEntity.o(.text); - asm/bowUse.o(.text); + src/playerItem/playerItemBow.o(.text); + asm/playerItem/playerItemBow.o(.text); asm/sub_08019410.o(.text); asm/code_08019444.o(.text); asm/playerItemCellOverwriteSet.o(.text); diff --git a/src/createBowEntity.c b/src/playerItem/playerItemBow.c similarity index 100% rename from src/createBowEntity.c rename to src/playerItem/playerItemBow.c