diff --git a/README.md b/README.md index 78672c1b..61c60717 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The Legend of Zelda: The Minish Cap -**Progress:** [⬛⬛⬛⬛⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜] 20% +**Progress:** [⬛⬛⬛⬛⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜] 22% ```diff - WARNING! - diff --git a/asm/chooseFile.s b/asm/chooseFile.s index 9705194d..0ea31128 100755 --- a/asm/chooseFile.s +++ b/asm/chooseFile.s @@ -980,7 +980,7 @@ _080512B8: bl sub_08051480 b _08051322 _080512C0: - ldr r2, _080512E4 @ =gUnk_02001A40 + ldr r2, _080512E4 @ =gBG3Buffer ldr r0, _080512E8 @ =gMenu ldrb r1, [r0, #0x10] lsls r1, r1, #1 @@ -997,7 +997,7 @@ _080512C0: bl sub_08051480 b _08051322 .align 2, 0 -_080512E4: .4byte gUnk_02001A40 +_080512E4: .4byte gBG3Buffer _080512E8: .4byte gMenu _080512EC: movs r3, #5 @@ -2576,7 +2576,7 @@ sub_08052010: @ 0x08052010 bl sub_08056418 movs r0, #1 bl sub_0801DA90 - ldr r0, _0805207C @ =gUnk_02021F30 + ldr r0, _0805207C @ =gBG1Buffer movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 @@ -2615,7 +2615,7 @@ sub_08052010: @ 0x08052010 strh r0, [r1, #0x26] pop {r4, pc} .align 2, 0 -_0805207C: .4byte gUnk_02021F30 +_0805207C: .4byte gBG1Buffer _08052080: .4byte gUnk_020344B0 _08052084: .4byte gMenu _08052088: .4byte gScreen diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index 5a8f8ec1..fa7ab489 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -71,7 +71,7 @@ _08001230: ldr r3, _0800135C @ =UpdateAnimationVariableFrames bx r3 _0800123E: - ldr r3, _08001360 @ =sub_080043B4 + ldr r3, _08001360 @ =CreateItemOnGround bx r3 non_word_aligned_thumb_func_start sub_08001242 @@ -154,7 +154,7 @@ gUnk_080012C8:: .4byte 0x00000000 _080012CC: .4byte sub_08001214 _080012D0: .4byte sub_080043A8 -_080012D4: .4byte sub_080043AC +_080012D4: .4byte CreateChestSpawner _080012D8: .4byte sub_080043B0 thumb_func_start sub_080012DC @@ -239,7 +239,7 @@ _08001352: .align 2, 0 _08001358: .4byte gEnemyFunctions _0800135C: .4byte UpdateAnimationVariableFrames -_08001360: .4byte sub_080043B4 +_08001360: .4byte CreateItemOnGround _08001364: .4byte 0x00001800 _08001368: .4byte gUnk_080012C8 _0800136C: .4byte gUnk_080012C8 diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 0fa902ed..025f50bd 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -414,18 +414,22 @@ _0800425C: pop {r4} bx lr - thumb_func_start InitializeAnimation + thumb_func_start InitializeAnimation @ r0 = Entity*, r1 = Frame* InitializeAnimation: @ 0x08004260 - movs r2, #0x58 + movs r2, #0x58 @ anim idx strb r1, [r0, r2] - ldrh r3, [r0, #0x12] - lsls r3, r3, #4 - ldr r2, _0800439C @ =gUnk_080029B4 - ldr r2, [r2, r3] - lsls r1, r1, #2 - ldr r1, [r2, r1] + + ldrh r3, [r0, #0x12] @ Sprite idx + lsls r3, r3, #4 @ *= 16 + + ldr r2, _0800439C @ =gSpritePtrs + + ldr r2, [r2, r3] @ Load AnimData + lsls r1, r1, #2 @ *= 4 + + ldr r1, [r2, r1] @ AnimData->??? str r1, [r0, #0x5c] - b _0800432A + b FrameZero thumb_func_start GetNextFrame GetNextFrame: @ 0x08004274 @@ -434,31 +438,43 @@ GetNextFrame: @ 0x08004274 non_word_aligned_thumb_func_start UpdateAnimationVariableFrames UpdateAnimationVariableFrames: @ 0x08004276 movs r3, #0x59 - ldrb r2, [r0, r3] + ldrb r2, [r0, r3] @ Decrease frame timer subs r2, r2, r1 - beq _0800432A - ble _08004284 + + beq FrameZero @ Frame timer is 0 + ble FrameNeg @ Frame timer is below 0 + strb r2, [r0, r3] + bx lr -_08004284: - ldr r1, [r0, #0x5c] + +FrameNeg: + ldr r1, [r0, #0x5c] @ Load frame data + _08004286: ldrb r3, [r1, #1] adds r2, r2, r3 - bgt _0800429C + + bgt _0800429C @ Frame idx greater (?) + ldrb r3, [r1, #3] adds r1, #4 - lsrs r3, r3, #8 + lsrs r3, r3, #8 @ Branch if != 0xFF + blo _08004286 + ldrb r3, [r1] lsls r3, r3, #2 subs r1, r1, r3 b _08004286 + _0800429C: str r1, [r0, #0x5c] + push {r2, lr} - bl _0800432A + bl FrameZero pop {r2, r3} + movs r1, #0x59 strb r2, [r0, r1] bx r3 @@ -479,27 +495,34 @@ UpdateAnimationSingleFrame: @ 0x080042B8 sub_080042BA: @ 0x080042BA push {lr} bl UpdateAnimationVariableFrames + _080042C0: pop {r1} mov lr, r1 + ldrb r1, [r0, #0x1e] ldrb r3, [r0, #0x1f] strb r1, [r0, #0x1f] + cmp r1, r3 beq _08004328 + ldrh r2, [r0, #0x12] thumb_func_start sub_080042D0 sub_080042D0: @ 0x080042D0 cmp r1, #0xff beq _08004328 + lsls r2, r2, #4 lsls r3, r1, #2 - ldr r1, _080043A0 @ =gUnk_080029B4 + ldr r1, _080043A0 @ =gSpritePtrs adds r1, r1, r2 ldr r2, [r1, #4] + cmp r2, #0 beq _08004328 + ldr r1, [r1, #8] adds r2, r2, r3 ldrb r3, [r2] @@ -538,31 +561,41 @@ _08004326: pop {r4, r5} _08004328: bx lr -_0800432A: - ldrb r3, [r0, #0x1e] - strb r3, [r0, #0x1f] + +FrameZero: @ r0 = Entity* + ldrb r3, [r0, #0x1e] @ Get frame idx + strb r3, [r0, #0x1f] @ Set it to last frame idx + ldr r1, [r0, #0x5c] - ldrb r3, [r1] + ldrb r3, [r1] @ Store new frame idx strb r3, [r0, #0x1e] + ldrb r3, [r1, #1] movs r2, #0x59 strb r3, [r0, r2] + ldrb r3, [r1, #2] movs r2, #0x5b strb r3, [r0, r2] + ldrb r3, [r1, #3] movs r2, #0x5a strb r3, [r0, r2] + adds r1, #4 lsrs r3, r3, #8 + blo _08004352 + ldrb r3, [r1] lsls r3, r3, #2 subs r1, r1, r3 + _08004352: str r1, [r0, #0x5c] bx lr .align 2, 0 + _08004358: .4byte gUnk_081326EC _0800435C: .4byte gUnk_02024048 _08004360: .4byte gUnk_02021F20 @@ -580,8 +613,8 @@ _0800438C: .4byte 0x0000EE00 _08004390: .4byte 0x00001FFF _08004394: .4byte gUnk_08000228 _08004398: .4byte 0x00004000 -_0800439C: .4byte gUnk_080029B4 -_080043A0: .4byte gUnk_080029B4 +_0800439C: .4byte gSpritePtrs +_080043A0: .4byte gSpritePtrs _080043A4: .4byte gUnk_02024494 thumb_func_start sub_080043A8 @@ -589,8 +622,8 @@ sub_080043A8: @ 0x080043A8 movs r1, #0xb b _080043B6 - thumb_func_start sub_080043AC -sub_080043AC: @ 0x080043AC + thumb_func_start CreateChestSpawner +CreateChestSpawner: @ 0x080043AC movs r1, #0xc b _080043B6 @@ -599,31 +632,42 @@ sub_080043B0: @ 0x080043AC movs r1, #0x52 b _080043B6 - thumb_func_start sub_080043B4 -sub_080043B4: @ 0x080043B4 + thumb_func_start CreateItemOnGround +CreateItemOnGround: @ 0x080043B4 movs r1, #0 + _080043B6: push {r4, lr} adds r4, r0, #0 movs r0, #0xf movs r2, #0 bl CreateObject + cmp r0, #0 - beq _080043E0 + beq _080043E0 @ Branch if entity could not be created + movs r1, #0x48 - ldr r1, [r4, r1] + ldr r1, [r4, r1] @ Unused? + ldrh r3, [r4, #0x2e] strh r3, [r0, #0x2e] + ldrh r3, [r4, #0x32] strh r3, [r0, #0x32] + ldrh r3, [r4, #0x36] strh r3, [r0, #0x36] + ldrb r3, [r4, #8] - cmp r3, #3 + + cmp r3, #3 @ Is the spawner an enemy? bne _080043E0 + movs r1, #1 - strb r1, [r0, #0xb] + strb r1, [r0, #0xb] @ Set base parameter + _080043E0: adds r0, r4, #0 bl DeleteEntity + pop {r4, pc} diff --git a/asm/code_080041E8.s b/asm/code_080041E8.s deleted file mode 100644 index c0d7605e..00000000 --- a/asm/code_080041E8.s +++ /dev/null @@ -1,295 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080041E8 -sub_080041E8: @ 0x080041E8 - subs r0, r0, r2 - subs r1, r1, r3 - - thumb_func_start sub_080041EC -sub_080041EC: @ 0x080041EC - adds r2, r0, #0 - muls r0, r2, r0 - adds r3, r1, #0 - muls r1, r3, r1 - push {lr} - adds r0, r0, r1 - lsls r0, r0, #8 - bl Sqrt - pop {r3} - bx r3 - - non_word_aligned_thumb_func_start sub_08004202 -sub_08004202: @ 0x08004202 - push {r1, lr} - ldrb r1, [r0, #0x14] - bl sub_08004212 - pop {r0} - str r1, [r0] - adds r0, r2, #0 - pop {pc} - - non_word_aligned_thumb_func_start sub_08004212 -sub_08004212: @ 0x08004212 - push {r4} - adds r4, r1, #0 - movs r3, #3 - tst r4, r3 - beq _08004226 - movs r3, #2 - lsrs r4, r4, #3 - blo _08004224 - rsbs r3, r3, #0 -_08004224: - adds r2, r2, r3 -_08004226: - adds r4, r1, #0 - movs r3, #3 - ands r4, r3 - cmp r4, #2 - beq _0800423C - movs r3, #0x80 - adds r1, #1 - lsrs r1, r1, #3 - bhs _0800423A - rsbs r3, r3, #0 -_0800423A: - adds r2, r2, r3 -_0800423C: - ldr r3, _08004390 @ =0x00001FFF - ands r2, r3 - movs r4, #0x38 - ldrb r4, [r0, r4] - lsls r4, r4, #3 - ldr r3, _08004394 @ =gUnk_08000228 - adds r3, r3, r4 - ldr r4, [r3] - ldrh r1, [r4, r2] - ldr r4, _08004398 @ =0x00004000 - tst r1, r4 - bne _0800425C - lsls r1, r1, #0x11 - lsrs r1, r1, #0x10 - ldr r4, [r3, #4] - ldrh r1, [r4, r1] -_0800425C: - pop {r4} - bx lr - - thumb_func_start InitializeAnimation -InitializeAnimation: @ 0x08004260 - movs r2, #0x58 - strb r1, [r0, r2] - ldrh r3, [r0, #0x12] - lsls r3, r3, #4 - ldr r2, _0800439C @ =gUnk_080029B4 - ldr r2, [r2, r3] - lsls r1, r1, #2 - ldr r1, [r2, r1] - str r1, [r0, #0x5c] - b _0800432A - - thumb_func_start GetNextFrame -GetNextFrame: @ 0x08004274 - movs r1, #1 - - non_word_aligned_thumb_func_start UpdateAnimationVariableFrames -UpdateAnimationVariableFrames: @ 0x08004276 - movs r3, #0x59 - ldrb r2, [r0, r3] - subs r2, r2, r1 - beq _0800432A - ble _08004284 - strb r2, [r0, r3] - bx lr -_08004284: - ldr r1, [r0, #0x5c] -_08004286: - ldrb r3, [r1, #1] - adds r2, r2, r3 - bgt _0800429C - ldrb r3, [r1, #3] - adds r1, #4 - lsrs r3, r3, #8 - blo _08004286 - ldrb r3, [r1] - lsls r3, r3, #2 - subs r1, r1, r3 - b _08004286 -_0800429C: - str r1, [r0, #0x5c] - push {r2, lr} - bl _0800432A - pop {r2, r3} - movs r1, #0x59 - strb r2, [r0, r1] - bx r3 - - thumb_func_start InitAnimationForceUpdate -InitAnimationForceUpdate: @ 0x080042AC - push {lr} - bl InitializeAnimation - movs r2, #0xff - strb r2, [r0, #0x1f] - b _080042C0 - - thumb_func_start UpdateAnimationSingleFrame -UpdateAnimationSingleFrame: @ 0x080042B8 - movs r1, #1 - - non_word_aligned_thumb_func_start sub_080042BA -sub_080042BA: @ 0x080042BA - push {lr} - bl UpdateAnimationVariableFrames -_080042C0: - pop {r1} - mov lr, r1 - ldrb r1, [r0, #0x1e] - ldrb r3, [r0, #0x1f] - strb r1, [r0, #0x1f] - cmp r1, r3 - beq _08004328 - ldrh r2, [r0, #0x12] - - thumb_func_start sub_080042D0 -sub_080042D0: @ 0x080042D0 - cmp r1, #0xff - beq _08004328 - lsls r2, r2, #4 - lsls r3, r1, #2 - ldr r1, _080043A0 @ =gUnk_080029B4 - adds r1, r1, r2 - ldr r2, [r1, #4] - cmp r2, #0 - beq _08004328 - ldr r1, [r1, #8] - adds r2, r2, r3 - ldrb r3, [r2] - cmp r3, #0 - beq _08004328 - push {r4, r5} - movs r3, #0x26 - ldrb r3, [r0, r3] - movs r4, #0xc - muls r3, r4, r3 - ldr r4, _080043A4 @ =gUnk_02024494 - adds r4, r4, r3 - ldrb r3, [r4] - movs r5, #0xf - ands r3, r5 - cmp r3, #5 - blo _08004326 - ldrb r5, [r4, #6] - ldrb r3, [r2] - strb r3, [r4, #6] - subs r5, r5, r3 - ldrh r3, [r2, #2] - lsls r3, r3, #5 - adds r1, r1, r3 - ldr r2, [r4, #8] - str r1, [r4, #8] - subs r2, r2, r1 - orrs r5, r2 - beq _08004326 - movs r2, #0xf0 - ldrb r1, [r4] - bics r1, r2 - adds r1, #0x30 - strb r1, [r4] -_08004326: - pop {r4, r5} -_08004328: - bx lr -_0800432A: - ldrb r3, [r0, #0x1e] - strb r3, [r0, #0x1f] - ldr r1, [r0, #0x5c] - ldrb r3, [r1] - strb r3, [r0, #0x1e] - ldrb r3, [r1, #1] - movs r2, #0x59 - strb r3, [r0, r2] - ldrb r3, [r1, #2] - movs r2, #0x5b - strb r3, [r0, r2] - ldrb r3, [r1, #3] - movs r2, #0x5a - strb r3, [r0, r2] - adds r1, #4 - lsrs r3, r3, #8 - blo _08004352 - ldrb r3, [r1] - lsls r3, r3, #2 - subs r1, r1, r3 -_08004352: - str r1, [r0, #0x5c] - bx lr - .align 2, 0 -_08004358: .4byte gUnk_081326EC -_0800435C: .4byte gUnk_02024048 -_08004360: .4byte gUnk_02021F20 -_08004364: .4byte gUnk_02024048 -_08004368: .4byte gRoomControls -_0800436C: .4byte 0x0000016E -_08004370: .4byte 0x0000011E -_08004374: .4byte gUnk_03000BF6 -_08004378: .4byte gUnk_03000BF8 -_0800437C: .4byte 0x000003F0 -_08004380: .4byte gUnk_08000248 -_08004384: .4byte 0x000FFFFF -_08004388: .4byte 0x00080000 -_0800438C: .4byte 0x0000EE00 -_08004390: .4byte 0x00001FFF -_08004394: .4byte gUnk_08000228 -_08004398: .4byte 0x00004000 -_0800439C: .4byte gUnk_080029B4 -_080043A0: .4byte gUnk_080029B4 -_080043A4: .4byte gUnk_02024494 - - thumb_func_start sub_080043A8 -sub_080043A8: @ 0x080043A8 - movs r1, #0xb - b _080043B6 - - thumb_func_start sub_080043AC -sub_080043AC: @ 0x080043AC - movs r1, #0xc - b _080043B6 - - thumb_func_start sub_080043B0 -sub_080043B0: @ 0x080043AC - movs r1, #0x52 - b _080043B6 - - thumb_func_start sub_080043B4 -sub_080043B4: @ 0x080043B4 - movs r1, #0 -_080043B6: - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xf - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _080043E0 - movs r1, #0x48 - ldr r1, [r4, r1] - ldrh r3, [r4, #0x2e] - strh r3, [r0, #0x2e] - ldrh r3, [r4, #0x32] - strh r3, [r0, #0x32] - ldrh r3, [r4, #0x36] - strh r3, [r0, #0x36] - ldrb r3, [r4, #8] - cmp r3, #3 - bne _080043E0 - movs r1, #1 - strb r1, [r0, #0xb] -_080043E0: - adds r0, r4, #0 - bl DeleteEntity - pop {r4, pc} diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index 586f2547..cab44841 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -52,9 +52,9 @@ sub_0800442E: @ 0x0800442E _08004448: movs r0, #0 pop {r1, pc} -_0800444C: .4byte sub_080043B4 +_0800444C: .4byte CreateItemOnGround _08004450: .4byte sub_080043A8 -_08004454: .4byte sub_080043AC +_08004454: .4byte CreateChestSpawner _08004458: .4byte sub_080043B0 thumb_func_start sub_0800445C diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 6c090292..1ce2fbce 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -108,7 +108,7 @@ _08016E94: cmp r1, #0 beq _08016ED6 ldr r2, _08016F14 @ =0x040000D4 - ldr r0, _08016F18 @ =gUnk_02021F30 + ldr r0, _08016F18 @ =gBG1Buffer str r0, [r2] ldrh r1, [r1] movs r0, #0xf8 @@ -152,7 +152,7 @@ _08016F08: .4byte gUnk_03001000 _08016F0C: .4byte gUnk_02000070 _08016F10: .4byte gUnk_02025EB0 _08016F14: .4byte 0x040000D4 -_08016F18: .4byte gUnk_02021F30 +_08016F18: .4byte gBG1Buffer _08016F1C: .4byte 0x84000170 _08016F20: .4byte gUnk_0200B650 _08016F24: .4byte gUnk_020344B0 diff --git a/asm/code_0801C370.s b/asm/code_0801C370.s index 3493cced..cb6c515f 100644 --- a/asm/code_0801C370.s +++ b/asm/code_0801C370.s @@ -44,7 +44,7 @@ _0801C398: bl LoadPaletteGroup movs r0, #0x10 bl LoadGfxGroup - ldr r4, _0801C478 @ =gUnk_02034CB0 + ldr r4, _0801C478 @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 adds r0, r4, #0 @@ -122,7 +122,7 @@ _0801C398: .align 2, 0 _0801C470: .4byte gUnk_0200AF00 _0801C474: .4byte gUnk_02002A40 -_0801C478: .4byte gUnk_02034CB0 +_0801C478: .4byte gBG0Buffer _0801C47C: .4byte gScreen _0801C480: .4byte 0x00001F0C _0801C484: .4byte gUnk_03000000 diff --git a/asm/code_0801C85C.s b/asm/code_0801C85C.s index b86532bf..06013f44 100644 --- a/asm/code_0801C85C.s +++ b/asm/code_0801C85C.s @@ -375,7 +375,7 @@ sub_0801CB20: @ 0x0801CB20 bne _0801CB76 ldrh r1, [r1, #6] lsls r1, r1, #4 - ldr r0, _0801CB54 @ =gUnk_080029B4 + ldr r0, _0801CB54 @ =gSpritePtrs adds r1, r1, r0 ldrb r0, [r3, #0x10] lsls r0, r0, #2 @@ -395,7 +395,7 @@ sub_0801CB20: @ 0x0801CB20 strb r0, [r3] b _0801CB74 .align 2, 0 -_0801CB54: .4byte gUnk_080029B4 +_0801CB54: .4byte gSpritePtrs _0801CB58: ldrb r0, [r3, #0x19] cmp r0, r2 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 346a65e9..7847ec07 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -324,7 +324,7 @@ sub_0801DA90: @ 0x0801DA90 ldr r0, _0801DB08 @ =0x0600C000 movs r1, #0x20 bl _DmaZero - ldr r0, _0801DB0C @ =gUnk_02034CB0 + ldr r0, _0801DB0C @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero @@ -339,7 +339,7 @@ _0801DAFC: .4byte 0x040000B0 _0801DB00: .4byte 0x0000C5FF _0801DB04: .4byte 0x00007FFF _0801DB08: .4byte 0x0600C000 -_0801DB0C: .4byte gUnk_02034CB0 +_0801DB0C: .4byte gBG0Buffer thumb_func_start sub_0801DB10 sub_0801DB10: @ 0x0801DB10 @@ -370,11 +370,11 @@ sub_0801DB34: @ 0x0801DB34 adds r0, r4, #0 movs r1, #0x7c bl _DmaZero - ldr r0, _0801DB70 @ =gUnk_02034CB0 + ldr r0, _0801DB70 @ =gBG0Buffer str r0, [r4, #0x10] ldr r0, _0801DB74 @ =0x00001F0C strh r0, [r4, #8] - ldr r0, _0801DB78 @ =gUnk_02021F30 + ldr r0, _0801DB78 @ =gBG1Buffer str r0, [r4, #0x1c] ldr r0, _0801DB7C @ =0x00001C01 strh r0, [r4, #0x14] @@ -382,7 +382,7 @@ sub_0801DB34: @ 0x0801DB34 str r0, [r4, #0x28] ldr r0, _0801DB84 @ =0x00001D02 strh r0, [r4, #0x20] - ldr r0, _0801DB88 @ =gUnk_02001A40 + ldr r0, _0801DB88 @ =gBG3Buffer str r0, [r4, #0x34] ldr r0, _0801DB8C @ =0x00001E03 strh r0, [r4, #0x2c] @@ -394,13 +394,13 @@ sub_0801DB34: @ 0x0801DB34 pop {r4, pc} .align 2, 0 _0801DB6C: .4byte gScreen -_0801DB70: .4byte gUnk_02034CB0 +_0801DB70: .4byte gBG0Buffer _0801DB74: .4byte 0x00001F0C -_0801DB78: .4byte gUnk_02021F30 +_0801DB78: .4byte gBG1Buffer _0801DB7C: .4byte 0x00001C01 _0801DB80: .4byte gUnk_020344B0 _0801DB84: .4byte 0x00001D02 -_0801DB88: .4byte gUnk_02001A40 +_0801DB88: .4byte gBG3Buffer _0801DB8C: .4byte 0x00001E03 _0801DB90: .4byte 0x0000FFFF diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index bdb2dc97..bfb2dd80 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -1566,18 +1566,18 @@ _0805331C: .4byte gScreenTransition thumb_func_start sub_08053320 sub_08053320: @ 0x08053320 push {r4, lr} - ldr r0, _0805337C @ =gUnk_02034CB0 + ldr r0, _0805337C @ =gBG0Buffer movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 bl _DmaZero - ldr r0, _08053380 @ =gUnk_02021F30 + ldr r0, _08053380 @ =gBG1Buffer adds r1, r4, #0 bl _DmaZero ldr r0, _08053384 @ =gUnk_020344B0 adds r1, r4, #0 bl _DmaZero - ldr r0, _08053388 @ =gUnk_02001A40 + ldr r0, _08053388 @ =gBG3Buffer movs r1, #0x80 lsls r1, r1, #5 bl _DmaZero @@ -1602,10 +1602,10 @@ _08053362: bl sub_0801D79C pop {r4, pc} .align 2, 0 -_0805337C: .4byte gUnk_02034CB0 -_08053380: .4byte gUnk_02021F30 +_0805337C: .4byte gBG0Buffer +_08053380: .4byte gBG1Buffer _08053384: .4byte gUnk_020344B0 -_08053388: .4byte gUnk_02001A40 +_08053388: .4byte gBG3Buffer _0805338C: .4byte gRoomControls thumb_func_start sub_08053390 @@ -2219,7 +2219,7 @@ sub_08053800: @ 0x08053800 adds r0, r5, #0 adds r0, #0x3a bl LoadGfxGroup - ldr r0, _08053888 @ =gUnk_02021F30 + ldr r0, _08053888 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero @@ -2251,7 +2251,7 @@ _0805387A: _0805387C: .4byte gFadeControl _08053880: .4byte gMenu _08053884: .4byte gUnk_080FCCB4 -_08053888: .4byte gUnk_02021F30 +_08053888: .4byte gBG1Buffer _0805388C: .4byte 0x00000F01 _08053890: .4byte gScreen diff --git a/asm/code_08056418.s b/asm/code_08056418.s index e2519ccd..45b6209b 100644 --- a/asm/code_08056418.s +++ b/asm/code_08056418.s @@ -1071,7 +1071,7 @@ sub_08056C68: @ 0x08056C68 ldrb r1, [r5, #4] adds r0, r0, r1 lsls r0, r0, #1 - ldr r1, _08056CBC @ =gUnk_02034CB0 + ldr r1, _08056CBC @ =gBG0Buffer adds r1, r0, r1 ldrb r0, [r5, #7] adds r0, #2 @@ -1101,7 +1101,7 @@ _08056CB4: pop {r4, r5, r6, pc} .align 2, 0 _08056CB8: .4byte gUnk_02036A38 -_08056CBC: .4byte gUnk_02034CB0 +_08056CBC: .4byte gBG0Buffer thumb_func_start sub_08056CC0 sub_08056CC0: @ 0x08056CC0 @@ -1215,7 +1215,7 @@ sub_08056D70: @ 0x08056D70 ldrb r1, [r4, #4] adds r0, r0, r1 lsls r0, r0, #1 - ldr r1, _08056DBC @ =gUnk_02034CB0 + ldr r1, _08056DBC @ =gBG0Buffer adds r0, r0, r1 ldr r3, _08056DC0 @ =0x0000F07B ldrb r1, [r4, #6] @@ -1234,7 +1234,7 @@ _08056DB0: .align 2, 0 _08056DB4: .4byte gUnk_02022780 _08056DB8: .4byte gUnk_02036A40 -_08056DBC: .4byte gUnk_02034CB0 +_08056DBC: .4byte gBG0Buffer _08056DC0: .4byte 0x0000F07B _08056DC4: .4byte gUnk_02036A38 @@ -1438,7 +1438,7 @@ sub_08056F1C: @ 0x08056F1C ldrb r0, [r2, #4] adds r1, r1, r0 lsls r1, r1, #1 - ldr r0, _08056F68 @ =gUnk_02034CB0 + ldr r0, _08056F68 @ =gBG0Buffer adds r1, r1, r0 ldrb r0, [r2, #7] adds r0, #1 @@ -1458,7 +1458,7 @@ _08056F58: .4byte gUnk_02022780 _08056F5C: .4byte 0x0010FF00 _08056F60: .4byte 0x00100200 _08056F64: .4byte gUnk_02036A40 -_08056F68: .4byte gUnk_02034CB0 +_08056F68: .4byte gBG0Buffer _08056F6C: .4byte 0x0000F080 thumb_func_start sub_08056F70 diff --git a/asm/code_0805EC04.s b/asm/code_0805EC04.s index 56ae8e50..134743db 100644 --- a/asm/code_0805EC04.s +++ b/asm/code_0805EC04.s @@ -4,167 +4,6 @@ .syntax unified .text - - thumb_func_start sub_0805EC04 -sub_0805EC04: @ 0x0805EC04 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r2, #1 - ldr r0, _0805EC4C @ =gUnk_03000000 - movs r5, #1 - movs r6, #0x3f - rsbs r6, r6, #0 - movs r7, #4 - rsbs r7, r7, #0 - adds r4, r0, #0 - adds r4, #8 -_0805EC1A: - ldr r0, _0805EC50 @ =0x00000426 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _0805EC54 - strb r5, [r1] - movs r0, #0x1f - ands r2, r0 - lsls r2, r2, #1 - ldrb r1, [r3, #0x1b] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r2, [r3, #0x19] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r5 - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - movs r0, #1 - b _0805EC5E - .align 2, 0 -_0805EC4C: .4byte gUnk_03000000 -_0805EC50: .4byte 0x00000426 -_0805EC54: - adds r4, #8 - adds r2, #1 - cmp r2, #0x1f - bls _0805EC1A - movs r0, #0 -_0805EC5E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805EC60 -sub_0805EC60: @ 0x0805EC60 - push {lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x19] - lsls r0, r1, #0x1e - cmp r0, #0 - beq _0805EC90 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #0x19] - ldrb r2, [r3, #0x1b] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3, #0x1b] - ldr r0, _0805EC94 @ =gUnk_03000000 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0805EC98 @ =0x00000426 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] -_0805EC90: - pop {pc} - .align 2, 0 -_0805EC94: .4byte gUnk_03000000 -_0805EC98: .4byte 0x00000426 - - thumb_func_start sub_0805EC9C -sub_0805EC9C: @ 0x0805EC9C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - ldrb r0, [r4, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - cmp r0, #0 - bne _0805ECBE - adds r0, r4, #0 - bl sub_0805EC04 - cmp r0, #0 - bne _0805ECBE - movs r0, #0 - b _0805ECE0 -_0805ECBE: - ldr r1, _0805ECE4 @ =gUnk_03000000 - ldr r0, _0805ECE8 @ =0x00000427 - adds r2, r1, r0 - movs r0, #1 - strb r0, [r2] - ldrb r0, [r4, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - lsls r0, r0, #3 - movs r2, #0x84 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - strh r5, [r0] - strh r6, [r0, #2] - strh r7, [r0, #4] - movs r0, #1 -_0805ECE0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805ECE4: .4byte gUnk_03000000 -_0805ECE8: .4byte 0x00000427 - - thumb_func_start sub_0805ECEC -sub_0805ECEC: @ 0x0805ECEC - push {r4, r5, r6, lr} - ldr r5, _0805ED0C @ =gUnk_03000000 - ldr r4, _0805ED10 @ =0x00000427 - adds r6, r5, r4 - movs r4, #1 - strb r4, [r6] - lsls r0, r0, #3 - movs r4, #0x84 - lsls r4, r4, #3 - adds r5, r5, r4 - adds r0, r0, r5 - strh r1, [r0] - strh r2, [r0, #2] - strh r3, [r0, #4] - pop {r4, r5, r6, pc} - .align 2, 0 -_0805ED0C: .4byte gUnk_03000000 -_0805ED10: .4byte 0x00000427 - - thumb_func_start sub_0805ED14 -sub_0805ED14: @ 0x0805ED14 - ldr r2, _0805ED2C @ =gPlayerState - adds r1, r2, #0 - adds r1, #0x9c - str r0, [r1] - adds r0, r2, #0 - adds r0, #0x98 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - bx lr - .align 2, 0 -_0805ED2C: .4byte gPlayerState thumb_func_start sub_0805ED30 sub_0805ED30: @ 0x0805ED30 @@ -1579,677 +1418,3 @@ _0805F7D2: pop {r4, pc} .align 2, 0 - thumb_func_start sub_0805F7DC -sub_0805F7DC: @ 0x0805F7DC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - ldrh r0, [r4, #4] - ldrh r1, [r4, #6] - cmp r0, r1 - bhi _0805F7EE - movs r0, #0 - b _0805F81E -_0805F7EE: - adds r0, r6, #0 - bl sub_0805F25C - adds r5, r0, #0 - ldrh r7, [r4, #6] - lsrs r0, r6, #8 - cmp r0, #4 - bls _0805F808 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805F820 - adds r5, #0x40 -_0805F808: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805F820 - ldrh r1, [r4, #4] - ldrh r0, [r4, #6] - cmp r0, r1 - bls _0805F81A - strh r1, [r4, #6] -_0805F81A: - ldrh r0, [r4, #6] - subs r0, r0, r7 -_0805F81E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F820 -sub_0805F820: @ 0x0805F820 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r4, r1, #0 - ldrh r0, [r7, #4] - ldrh r1, [r7, #6] - subs r0, r0, r1 - cmp r0, #0 - ble _0805F8DC - ldr r1, _0805F854 @ =gUnk_02036A58 - adds r0, r4, #0 - bl sub_08002724 - ldrb r0, [r7, #1] - cmp r0, #0 - bne _0805F858 - ldr r0, [r4] - bl sub_0805F7A0 - movs r1, #0xf - ands r1, r0 - lsrs r4, r0, #8 - b _0805F85C - .align 2, 0 -_0805F854: .4byte gUnk_02036A58 -_0805F858: - movs r1, #0 - movs r4, #8 -_0805F85C: - ldrh r0, [r7, #4] - ldrh r3, [r7, #6] - subs r0, r0, r3 - cmp r0, #8 - ble _0805F868 - movs r0, #8 -_0805F868: - cmp r0, r4 - bge _0805F86E - adds r4, r0, #0 -_0805F86E: - ldr r0, _0805F8BC @ =gUnk_02036A58 - adds r6, r1, r0 - ldr r0, [r7, #8] - mov sb, r0 - ldrb r0, [r7, #3] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #6 - ldrb r0, [r7, #2] - lsls r0, r0, #5 - ldr r1, _0805F8C0 @ =gUnk_0810942E - adds r0, r0, r1 - adds r2, r2, r0 - mov r8, r2 - adds r5, r3, #0 - adds r0, r5, r4 - strh r0, [r7, #6] - ldrb r0, [r7] - lsrs r0, r0, #4 - cmp r0, #1 - beq _0805F8D4 - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - ble _0805F8DC -_0805F8A0: - adds r0, r6, #0 - mov r1, sb - mov r2, r8 - adds r3, r5, #0 - bl sub_080026C4 - adds r6, #1 - adds r5, #1 - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - bgt _0805F8A0 - b _0805F8DC - .align 2, 0 -_0805F8BC: .4byte gUnk_02036A58 -_0805F8C0: .4byte gUnk_0810942E -_0805F8C4: - adds r0, r6, #0 - mov r1, sb - mov r2, r8 - adds r3, r5, #0 - bl sub_080026F2 - adds r6, #1 - adds r5, #1 -_0805F8D4: - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - bgt _0805F8C4 -_0805F8DC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F8E4 -sub_0805F8E4: @ 0x0805F8E4 - push {r4, r5, lr} - adds r4, r1, #0 - ldrb r5, [r4, #1] - movs r1, #1 - strb r1, [r4, #1] - adds r1, r4, #0 - bl sub_0805F7DC - strb r5, [r4, #1] - pop {r4, r5, pc} - - thumb_func_start sub_0805F8F8 -sub_0805F8F8: @ 0x0805F8F8 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #6 - ldr r0, _0805F910 @ =gUnk_081094CE - adds r1, r1, r0 - ldr r2, _0805F914 @ =gUnk_0810926C - ldrb r0, [r1, #0xa] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - bx lr - .align 2, 0 -_0805F910: .4byte gUnk_081094CE -_0805F914: .4byte gUnk_0810926C - - thumb_func_start sub_0805F918 -sub_0805F918: @ 0x0805F918 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - adds r5, r1, #0 - mov sl, r2 - adds r0, r5, #0 - bl sub_0805F8F8 - ldr r1, _0805F990 @ =gUnk_02036AD8 - movs r2, #0xe0 - bl _DmaFill32 - ldr r0, _0805F994 @ =gUnk_081092AC - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r4, [r4] - mov r8, r4 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #6 - ldr r1, _0805F998 @ =gUnk_081094CE - adds r0, r0, r1 - mov sb, r0 - movs r7, #0 - movs r6, #0 -_0805F950: - ldr r4, _0805F99C @ =gUnk_02036A58 - mov r0, r8 - adds r1, r4, #0 - bl sub_08002724 - movs r0, #0x40 - add r8, r0 - movs r5, #0 - adds r6, #1 -_0805F962: - adds r0, r4, #0 - ldr r1, _0805F990 @ =gUnk_02036AD8 - mov r2, sb - adds r3, r7, #0 - bl sub_080026C4 - adds r4, #1 - adds r7, #1 - adds r5, #1 - cmp r5, #7 - bls _0805F962 - cmp r6, #2 - bls _0805F950 - ldr r0, _0805F990 @ =gUnk_02036AD8 - mov r1, sl - movs r2, #0xe0 - bl LoadAssetAsync - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805F990: .4byte gUnk_02036AD8 -_0805F994: .4byte gUnk_081092AC -_0805F998: .4byte gUnk_081094CE -_0805F99C: .4byte gUnk_02036A58 - - thumb_func_start sub_0805F9A0 -sub_0805F9A0: @ 0x0805F9A0 - push {lr} - adds r2, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _0805F9D0 - ldr r1, _0805F9C4 @ =gUnk_081092D4 - movs r3, #0 -_0805F9B2: - ldrh r0, [r1] - cmp r0, r2 - beq _0805F9C8 - adds r3, #1 - adds r1, #2 - ldrh r0, [r1] - cmp r0, #0 - bne _0805F9B2 - b _0805F9D8 - .align 2, 0 -_0805F9C4: .4byte gUnk_081092D4 -_0805F9C8: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r3, r1 - b _0805F9E2 -_0805F9D0: - ldr r0, _0805F9E4 @ =0x0000031A - cmp r2, r0 - bne _0805F9D8 - movs r2, #1 -_0805F9D8: - movs r0, #0xff - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r0, r1 -_0805F9E2: - pop {pc} - .align 2, 0 -_0805F9E4: .4byte 0x0000031A - - thumb_func_start HandleDebugTextScreen -HandleDebugTextScreen: @ 0x0805F9E8 - push {lr} - ldr r1, _0805F9FC @ =gUnk_08109A30 - ldr r0, _0805FA00 @ =gUnk_03001000 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805F9FC: .4byte gUnk_08109A30 -_0805FA00: .4byte gUnk_03001000 - - thumb_func_start sub_0805FA04 -sub_0805FA04: @ 0x0805FA04 - push {r4, r5, lr} - movs r0, #1 - bl sub_0801DA90 - ldr r0, _0805FA78 @ =gUnk_02034CB0 - movs r1, #0x80 - lsls r1, r1, #4 - bl _DmaZero - ldr r0, _0805FA7C @ =gUnk_02001A40 - movs r1, #0x80 - lsls r1, r1, #5 - bl _DmaZero - ldr r0, _0805FA80 @ =gScreen - movs r2, #0 - movs r1, #0x94 - lsls r1, r1, #4 - strh r1, [r0] - strh r2, [r0, #0xa] - strh r2, [r0, #0xc] - strh r2, [r0, #0x2e] - strh r2, [r0, #0x30] - ldr r1, _0805FA84 @ =0x00001E0F - strh r1, [r0, #0x2c] - movs r5, #1 - movs r1, #1 - strh r1, [r0, #0x32] - bl sub_08056418 - ldr r0, _0805FA88 @ =gUnk_02032EC0 - movs r1, #0xed - lsls r1, r1, #2 - bl _DmaZero - ldr r4, _0805FA8C @ =gMenu - adds r0, r4, #0 - movs r1, #0x30 - bl _DmaZero - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - strb r0, [r4, #0x16] - bl sub_08053320 - ldr r1, _0805FA90 @ =0x00001144 - movs r0, #0 - bl sub_0801D79C - ldr r0, _0805FA94 @ =gUnk_03001000 - strb r5, [r0, #3] - bl sub_080A3210 - bl sub_08050008 - pop {r4, r5, pc} - .align 2, 0 -_0805FA78: .4byte gUnk_02034CB0 -_0805FA7C: .4byte gUnk_02001A40 -_0805FA80: .4byte gScreen -_0805FA84: .4byte 0x00001E0F -_0805FA88: .4byte gUnk_02032EC0 -_0805FA8C: .4byte gMenu -_0805FA90: .4byte 0x00001144 -_0805FA94: .4byte gUnk_03001000 - - thumb_func_start sub_0805FA98 -sub_0805FA98: @ 0x0805FA98 - push {r4, lr} - ldr r0, _0805FAB4 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #0x80 - beq _0805FAD8 - cmp r1, #0x80 - bgt _0805FAB8 - cmp r1, #2 - beq _0805FB44 - cmp r1, #0x40 - beq _0805FACA - b _0805FB4A - .align 2, 0 -_0805FAB4: .4byte gUnk_03000FF0 -_0805FAB8: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _0805FB28 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _0805FAE8 - b _0805FB4A -_0805FACA: - ldr r1, _0805FAD4 @ =gMenu - ldrb r0, [r1, #0x11] - subs r0, #1 - strb r0, [r1, #0x11] - b _0805FBA4 - .align 2, 0 -_0805FAD4: .4byte gMenu -_0805FAD8: - ldr r1, _0805FAE4 @ =gMenu - ldrb r0, [r1, #0x11] - adds r0, #1 - strb r0, [r1, #0x11] - b _0805FBA4 - .align 2, 0 -_0805FAE4: .4byte gMenu -_0805FAE8: - ldr r0, _0805FB04 @ =gMenu - ldrb r1, [r0, #0x10] - movs r2, #1 - eors r1, r2 - strb r1, [r0, #0x10] - cmp r1, #0 - bne _0805FB10 - ldr r0, _0805FB08 @ =gScreen - ldr r1, _0805FB0C @ =0x00001F0C - strh r1, [r0, #8] - subs r1, #0xfd - strh r1, [r0, #0x2c] - b _0805FBA4 - .align 2, 0 -_0805FB04: .4byte gMenu -_0805FB08: .4byte gScreen -_0805FB0C: .4byte 0x00001F0C -_0805FB10: - ldr r0, _0805FB1C @ =gScreen - ldr r1, _0805FB20 @ =0x00001F0F - strh r1, [r0, #8] - ldr r1, _0805FB24 @ =0x00001E0C - strh r1, [r0, #0x2c] - b _0805FBA4 - .align 2, 0 -_0805FB1C: .4byte gScreen -_0805FB20: .4byte 0x00001F0F -_0805FB24: .4byte 0x00001E0C -_0805FB28: - movs r2, #0x80 - lsls r2, r2, #0x12 - ldr r1, _0805FB40 @ =gMenu - ldrb r0, [r1, #0x16] - strb r0, [r2, #7] - ldrb r0, [r1, #0x14] - lsls r0, r0, #8 - ldrb r1, [r1, #0x15] - adds r0, r0, r1 - bl TextboxNoOverlapFollow - b _0805FBA4 - .align 2, 0 -_0805FB40: .4byte gMenu -_0805FB44: - bl sub_08056418 - b _0805FBA4 -_0805FB4A: - ldrh r0, [r2, #4] - cmp r0, #0x10 - beq _0805FB5A - cmp r0, #0x20 - bne _0805FB5E - movs r1, #1 - rsbs r1, r1, #0 - b _0805FB60 -_0805FB5A: - movs r1, #1 - b _0805FB60 -_0805FB5E: - movs r1, #0 -_0805FB60: - ldr r4, _0805FB74 @ =gMenu - ldrb r0, [r4, #0x11] - cmp r0, #1 - beq _0805FB8E - cmp r0, #1 - bgt _0805FB78 - cmp r0, #0 - beq _0805FB7E - b _0805FBA4 - .align 2, 0 -_0805FB74: .4byte gMenu -_0805FB78: - cmp r0, #2 - beq _0805FB96 - b _0805FBA4 -_0805FB7E: - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - adds r0, #0x50 - movs r1, #0x50 - bl __modsi3 - strb r0, [r4, #0x14] - b _0805FBA4 -_0805FB8E: - ldrb r0, [r4, #0x15] - adds r0, r0, r1 - strb r0, [r4, #0x15] - b _0805FBA4 -_0805FB96: - ldrb r0, [r4, #0x16] - adds r0, r0, r1 - adds r0, #7 - movs r1, #7 - bl __modsi3 - strb r0, [r4, #0x16] -_0805FBA4: - ldr r4, _0805FBBC @ =gMenu - ldrb r0, [r4, #0x11] - adds r0, #3 - movs r1, #3 - bl __modsi3 - strb r0, [r4, #0x11] - ldr r1, _0805FBC0 @ =gScreen - movs r0, #1 - strh r0, [r1, #0x32] - pop {r4, pc} - .align 2, 0 -_0805FBBC: .4byte gMenu -_0805FBC0: .4byte gScreen - - thumb_func_start sub_0805FBC4 -sub_0805FBC4: @ 0x0805FBC4 - push {lr} - movs r0, #0 - bl InitScreen - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805FBD0 -sub_0805FBD0: @ 0x0805FBD0 - push {lr} - ldr r2, _0805FBE4 @ =gUnk_08109AC8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805FBE4: .4byte gUnk_08109AC8 - - thumb_func_start sub_0805FBE8 -sub_0805FBE8: @ 0x0805FBE8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0805FC68 @ =gPlayerEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrb r0, [r5, #0xc] - adds r0, #1 - 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, _0805FC6C @ =gUnk_08109AD0 - str r0, [r5, #0x48] - movs r0, #0xe0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - ldrb r1, [r5, #0x14] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _0805FC36 - movs r0, #1 - strb r0, [r5, #0xb] -_0805FC36: - ldrb r1, [r5, #0x14] - lsls r0, r1, #2 - strb r0, [r5, #0x15] - movs r0, #0x3c - str r0, [r5, #0x6c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - adds r1, #0xc - 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_0805FC74 - ldr r0, _0805FC70 @ =0x0000013F - bl PlaySFX - pop {r4, r5, pc} - .align 2, 0 -_0805FC68: .4byte gPlayerEntity -_0805FC6C: .4byte gUnk_08109AD0 -_0805FC70: .4byte 0x0000013F - - thumb_func_start sub_0805FC74 -sub_0805FC74: @ 0x0805FC74 - 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 _0805FD1C - 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 _0805FCA4 - adds r0, r4, #0 - bl sub_0800451C -_0805FCA4: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0805FD10 @ =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, _0805FD14 @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _0805FCF6 - ldr r1, _0805FD18 @ =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 _0805FCF6 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_0805FCF6: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _0805FD20 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity - b _0805FD20 - .align 2, 0 -_0805FD10: .4byte gRoomControls -_0805FD14: .4byte gPlayerEntity -_0805FD18: .4byte gUnk_08003E44 -_0805FD1C: - bl DeleteThisEntity -_0805FD20: - pop {r4, r5, pc} - .align 2, 0 diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index 44762471..b9b439c0 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -802,7 +802,7 @@ sub_0807007C: @ 0x0807007C beq _080700C4 ldrh r0, [r2, #2] lsls r0, r0, #4 - ldr r1, _080700C0 @ =gUnk_080029B4 + ldr r1, _080700C0 @ =gSpritePtrs adds r3, r0, r1 ldr r1, [r3, #4] cmp r1, #0 @@ -820,7 +820,7 @@ sub_0807007C: @ 0x0807007C movs r0, #1 b _080700C6 .align 2, 0 -_080700C0: .4byte gUnk_080029B4 +_080700C0: .4byte gSpritePtrs _080700C4: movs r0, #0 _080700C6: diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 54e812c4..afea07e6 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -813,7 +813,7 @@ sub_08078E84: @ 0x08078E84 adds r1, #1 strb r0, [r1] _08078EAC: - ldr r0, _08078ED4 @ =gUnk_080029B4 + ldr r0, _08078ED4 @ =gSpritePtrs ldrh r2, [r4, #0x12] lsls r2, r2, #4 adds r0, #4 @@ -832,7 +832,7 @@ _08078EAC: b _08078EE2 .align 2, 0 _08078ED0: .4byte gPlayerEntity -_08078ED4: .4byte gUnk_080029B4 +_08078ED4: .4byte gSpritePtrs _08078ED8: adds r0, r4, #0 movs r1, #3 diff --git a/asm/code_080A3480.s b/asm/code_080A3480.s index 010a22cc..825a6551 100644 --- a/asm/code_080A3480.s +++ b/asm/code_080A3480.s @@ -351,7 +351,7 @@ sub_080A36F8: @ 0x080A36F8 bl LoadPaletteGroup ldrb r0, [r4, #1] bl LoadGfxGroup - ldr r0, _080A3760 @ =gUnk_02021F30 + ldr r0, _080A3760 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero @@ -383,7 +383,7 @@ _080A3752: _080A3754: .4byte gFadeControl _080A3758: .4byte gMenu _080A375C: .4byte gUnk_08127CEC -_080A3760: .4byte gUnk_02021F30 +_080A3760: .4byte gBG1Buffer _080A3764: .4byte gScreen thumb_func_start sub_080A3768 @@ -407,7 +407,7 @@ _080A3780: beq _080A3812 b _080A384C _080A378A: - ldr r0, _080A37B8 @ =gUnk_02021F30 + ldr r0, _080A37B8 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero @@ -429,7 +429,7 @@ _080A378A: strb r2, [r4, #0x18] b _080A385E .align 2, 0 -_080A37B8: .4byte gUnk_02021F30 +_080A37B8: .4byte gBG1Buffer _080A37BC: .4byte gUnk_081272E0 _080A37C0: .4byte gScreen _080A37C4: @@ -576,7 +576,7 @@ sub_080A38D0: @ 0x080A38D0 ldrb r0, [r0] cmp r0, #0 bne _080A3914 - ldr r0, _080A3920 @ =gUnk_02021F30 + ldr r0, _080A3920 @ =gBG1Buffer movs r6, #0x80 lsls r6, r6, #4 adds r1, r6, #0 @@ -606,7 +606,7 @@ _080A3914: pop {r4, r5, r6, pc} .align 2, 0 _080A391C: .4byte gFadeControl -_080A3920: .4byte gUnk_02021F30 +_080A3920: .4byte gBG1Buffer _080A3924: .4byte gScreen _080A3928: .4byte gUnk_020344B0 _080A392C: .4byte gMenu diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 0c8593af..10cb10be 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -1266,11 +1266,11 @@ sub_080A4608: @ 0x080A4608 adds r1, r4, r2 ldrh r1, [r1] bl sub_0801D79C - ldr r0, _080A46A4 @ =gUnk_02034CB0 + ldr r0, _080A46A4 @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero - ldr r0, _080A46A8 @ =gUnk_02001A40 + ldr r0, _080A46A8 @ =gBG3Buffer movs r1, #0x80 lsls r1, r1, #5 bl _DmaZero @@ -1321,8 +1321,8 @@ _080A4694: pop {r4, pc} .align 2, 0 _080A46A0: .4byte gPaletteBuffer -_080A46A4: .4byte gUnk_02034CB0 -_080A46A8: .4byte gUnk_02001A40 +_080A46A4: .4byte gBG0Buffer +_080A46A8: .4byte gBG3Buffer _080A46AC: .4byte gScreen _080A46B0: .4byte 0x00007898 _080A46B4: .4byte gMenu @@ -2118,7 +2118,7 @@ sub_080A4CBC: @ 0x080A4CBC cmp r0, r6 beq _080A4CFE strb r6, [r1, #0x1a] - ldr r4, _080A4D10 @ =gUnk_02021F30 + ldr r4, _080A4D10 @ =gBG1Buffer movs r5, #0x80 lsls r5, r5, #4 adds r0, r4, #0 @@ -2151,7 +2151,7 @@ _080A4CFE: b _080A4D28 .align 2, 0 _080A4D0C: .4byte gMenu -_080A4D10: .4byte gUnk_02021F30 +_080A4D10: .4byte gBG1Buffer _080A4D14: .4byte 0x0600E000 _080A4D18: .4byte gUnk_08128190 _080A4D1C: .4byte gScreen @@ -2241,12 +2241,12 @@ sub_080A4DB8: @ 0x080A4DB8 push {r4, r5, lr} adds r5, r0, #0 bl sub_08056250 - ldr r0, _080A4E58 @ =gUnk_02034CB0 + ldr r0, _080A4E58 @ =gBG0Buffer movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 bl _DmaZero - ldr r0, _080A4E5C @ =gUnk_02021F30 + ldr r0, _080A4E5C @ =gBG1Buffer adds r1, r4, #0 bl _DmaZero ldr r0, _080A4E60 @ =gUnk_020344B0 @@ -2312,8 +2312,8 @@ _080A4E4A: _080A4E54: pop {r4, r5, pc} .align 2, 0 -_080A4E58: .4byte gUnk_02034CB0 -_080A4E5C: .4byte gUnk_02021F30 +_080A4E58: .4byte gBG0Buffer +_080A4E5C: .4byte gBG1Buffer _080A4E60: .4byte gUnk_020344B0 _080A4E64: .4byte gUnk_0200AF34 _080A4E68: .4byte gMenu @@ -2577,7 +2577,7 @@ _080A507C: .4byte gUnk_02034490 _080A5080: movs r0, #3 bl sub_080A4E90 - ldr r0, _080A5098 @ =gUnk_02034CB0 + ldr r0, _080A5098 @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero @@ -2587,7 +2587,7 @@ _080A5080: _080A5096: pop {r4, r5, pc} .align 2, 0 -_080A5098: .4byte gUnk_02034CB0 +_080A5098: .4byte gBG0Buffer _080A509C: .4byte gScreen thumb_func_start sub_080A50A0 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index 63bf2f0a..d527c237 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -2787,7 +2787,7 @@ sub_080A6B04: @ 0x080A6B04 adds r1, r4, #0 bl sub_0801D79C ldr r0, _080A6C04 @ =0x00005001 - ldr r1, _080A6C08 @ =gUnk_02001A40 + ldr r1, _080A6C08 @ =gBG3Buffer movs r2, #0x80 lsls r2, r2, #5 bl _DmaFill16 @@ -2857,7 +2857,7 @@ _080A6BF8: .4byte gUnk_080FE320 _080A6BFC: .4byte gMenu _080A6C00: .4byte 0x0000475F _080A6C04: .4byte 0x00005001 -_080A6C08: .4byte gUnk_02001A40 +_080A6C08: .4byte gBG3Buffer _080A6C0C: .4byte gPlayerState _080A6C10: .4byte gScreenTransition _080A6C14: .4byte 0x000001FB @@ -12666,7 +12666,7 @@ _080AB60A: b _080AB62E _080AB610: adds r0, r4, #0 - bl sub_080043B4 + bl CreateItemOnGround movs r0, #1 b _080AB630 _080AB61A: @@ -12676,7 +12676,7 @@ _080AB61A: b _080AB630 _080AB624: adds r0, r4, #0 - bl sub_080043AC + bl CreateChestSpawner movs r0, #1 b _080AB630 _080AB62E: diff --git a/asm/gyorgMale.s b/asm/gyorgMale.s deleted file mode 100644 index f51bb0d8..00000000 --- a/asm/gyorgMale.s +++ /dev/null @@ -1,3466 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start GyorgMale -GyorgMale: @ 0x080467F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08046810 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_08046810: - ldr r1, _0804688C @ =gUnk_080D1AFC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - adds r5, r4, #0 - adds r5, #0x78 - cmp r0, #7 - beq _08046836 - ldrh r3, [r5] - adds r0, r4, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C -_08046836: - ldrh r0, [r5] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08048004 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08046878 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _08046890 @ =gRoomControls - movs r3, #0xc - ldrsh r1, [r1, r3] - subs r0, r0, r1 - adds r0, #0x30 - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08046878 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4, #0x18] -_08046878: - ldr r2, _08046894 @ =gPlayerEntity - ldrh r1, [r2, #0x2e] - adds r0, r4, #0 - adds r0, #0x84 - strh r1, [r0] - ldrh r1, [r2, #0x32] - adds r0, #2 - strh r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0804688C: .4byte gUnk_080D1AFC -_08046890: .4byte gRoomControls -_08046894: .4byte gPlayerEntity - - thumb_func_start sub_08046898 -sub_08046898: @ 0x08046898 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x22 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _0804690C - movs r4, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r1, #0xa] - str r5, [r1, #0x50] - str r1, [r5, #0x54] - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x19] - movs r0, #3 - orrs r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ands r1, r3 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - subs r0, #4 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - subs r0, #8 - strh r4, [r0] - adds r0, r5, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_0804690C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08046910 -sub_08046910: @ 0x08046910 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804692C @ =gUnk_080D1B1C - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_0804692C: .4byte gUnk_080D1B1C - - thumb_func_start sub_08046930 -sub_08046930: @ 0x08046930 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08046948 - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_08046948: - adds r0, r4, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _0804696A - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - strb r1, [r4, #0x14] - strb r1, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_0804696A: - pop {r4, pc} - - thumb_func_start sub_0804696C -sub_0804696C: @ 0x0804696C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r5, _080469C8 @ =gRoomControls - ldrh r0, [r5, #8] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469A6 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - strb r0, [r4, #0x15] - adds r0, #0x80 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x2e - bl PlaySFX -_080469A6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080469C6 - ldrh r0, [r5, #8] - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469C6 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #0xf7 - bl PlaySFX -_080469C6: - pop {r4, r5, pc} - .align 2, 0 -_080469C8: .4byte gRoomControls - - thumb_func_start sub_080469CC -sub_080469CC: @ 0x080469CC - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _080469F0 @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080469EE - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x90 - strb r0, [r4, #0x15] -_080469EE: - pop {r4, pc} - .align 2, 0 -_080469F0: .4byte gRoomControls - - thumb_func_start sub_080469F4 -sub_080469F4: @ 0x080469F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A2C @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A28 - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] -_08046A28: - pop {r4, pc} - .align 2, 0 -_08046A2C: .4byte gRoomControls - - thumb_func_start sub_08046A30 -sub_08046A30: @ 0x08046A30 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08046A50 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A54 -sub_08046A54: @ 0x08046A54 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A74 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xe0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A72 - movs r0, #6 - strb r0, [r4, #0xd] -_08046A72: - pop {r4, pc} - .align 2, 0 -_08046A74: .4byte gRoomControls - - thumb_func_start sub_08046A78 -sub_08046A78: @ 0x08046A78 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08046A98 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A9C -sub_08046A9C: @ 0x08046A9C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_08046ABA: - ldr r1, _08046AE4 @ =gUnk_080D1B38 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _08046AE2 - movs r1, #0 - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046AE2: - pop {r4, pc} - .align 2, 0 -_08046AE4: .4byte gUnk_080D1B38 - - thumb_func_start sub_08046AE8 -sub_08046AE8: @ 0x08046AE8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - adds r0, r4, #0 - bl sub_08048178 - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046B18 -sub_08046B18: @ 0x08046B18 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046B6C - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046B54 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046B50 @ =0xFFFFFF00 - b _08046B5C - .align 2, 0 -_08046B50: .4byte 0xFFFFFF00 -_08046B54: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046B5C: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046B70 -_08046B6C: - movs r0, #2 - strb r0, [r4, #0xd] -_08046B70: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046B8C -sub_08046B8C: @ 0x08046B8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046BD8 - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r1, _08046BD4 @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r5] - adds r2, #0x10 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r6] - adds r0, r4, #0 - bl sub_08047D88 - b _08046C02 - .align 2, 0 -_08046BD4: .4byte gRoomControls -_08046BD8: - ldrh r0, [r5] - movs r3, #0x2e - ldrsh r1, [r4, r3] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046C02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046C04 -sub_08046C04: @ 0x08046C04 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046C58 - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046C40 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046C3C @ =0xFFFFFF00 - b _08046C48 - .align 2, 0 -_08046C3C: .4byte 0xFFFFFF00 -_08046C40: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046C48: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046C6C -_08046C58: - movs r0, #4 - strb r0, [r4, #0xd] - adds r0, r1, #0 - adds r0, #0x20 - movs r1, #0xc0 - ands r0, r1 - lsrs r0, r0, #6 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_08046C6C: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046C88 -sub_08046C88: @ 0x08046C88 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046CC0 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - bl sub_08048158 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08048178 - adds r0, r4, #0 - bl sub_08047D88 - b _08046CEA -_08046CC0: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046CEA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046CEC -sub_08046CEC: @ 0x08046CEC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046D0A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046D0A - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_08046D0A: - ldr r1, _08046D40 @ =gUnk_080D1B4C - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08046D3C - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x24] - strb r0, [r4, #0x14] -_08046D3C: - pop {r4, pc} - .align 2, 0 -_08046D40: .4byte gUnk_080D1B4C - - thumb_func_start sub_08046D44 -sub_08046D44: @ 0x08046D44 - push {lr} - mov ip, r0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x24] - ldr r0, [r1, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - lsls r1, r1, #1 - ldr r0, _08046D90 @ =gUnk_080D1B60 - adds r1, r1, r0 - ldr r3, _08046D94 @ =gRoomControls - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - mov r2, ip - adds r2, #0x80 - strh r0, [r2] - ldrh r0, [r3, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x82 - strh r0, [r1] - mov r1, ip - ldrb r0, [r1, #0x15] - lsls r0, r0, #8 - adds r1, #0x76 - strh r0, [r1] - mov r0, ip - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08046D90: .4byte gUnk_080D1B60 -_08046D94: .4byte gRoomControls - - thumb_func_start sub_08046D98 -sub_08046D98: @ 0x08046D98 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046DEC - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046DD4 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046DD0 @ =0xFFFFFF00 - b _08046DDC - .align 2, 0 -_08046DD0: .4byte 0xFFFFFF00 -_08046DD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046DDC: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046DF0 -_08046DEC: - movs r0, #2 - strb r0, [r4, #0xd] -_08046DF0: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046E0C -sub_08046E0C: @ 0x08046E0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046E3C - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - b _08046E66 -_08046E3C: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046E66: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046E68 -sub_08046E68: @ 0x08046E68 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - movs r0, #0x80 - adds r6, r0, #0 - eors r6, r1 - ldrb r0, [r5, #0x15] - cmp r6, r0 - beq _08046EC6 - subs r0, r6, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046E94 - adds r1, r5, #0 - adds r1, #0x76 - ldr r2, _08046E90 @ =0xFFFFFF00 - b _08046E9C - .align 2, 0 -_08046E90: .4byte 0xFFFFFF00 -_08046E94: - adds r1, r5, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046E9C: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 - ldrb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r5, #0 - bl sub_08047EA4 - b _08046EEE -_08046EC6: - movs r0, #4 - strb r0, [r5, #0xd] - movs r0, #0x3f - strb r0, [r5, #0xe] - movs r4, #1 - strb r4, [r5, #0xf] - bl Random - ldr r1, _08046EF0 @ =gUnk_080D1B70 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r6 - movs r1, #0xc0 - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 -_08046EEE: - pop {r4, r5, r6, pc} - .align 2, 0 -_08046EF0: .4byte gUnk_080D1B70 - - thumb_func_start sub_08046EF4 -sub_08046EF4: @ 0x08046EF4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08046F12 - movs r0, #0x7f - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] -_08046F12: - ldr r2, _08046F60 @ =gUnk_080D1B74 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #3 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r3 - cmp r0, #0 - bne _08046F58 - bl Random - movs r1, #0x38 - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xf] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046F58 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_08046F58: - adds r0, r4, #0 - bl sub_08047E48 - pop {r4, pc} - .align 2, 0 -_08046F60: .4byte gUnk_080D1B74 - - thumb_func_start sub_08046F64 -sub_08046F64: @ 0x08046F64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046F82 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046F82 - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_08046F82: - ldr r1, _08046FE4 @ =gUnk_080D1B94 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08046FC8 - movs r0, #0x78 - strh r0, [r1] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046FC8 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_08046FC8: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08046FE0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046FE0: - pop {r4, pc} - .align 2, 0 -_08046FE4: .4byte gUnk_080D1B94 - - thumb_func_start sub_08046FE8 -sub_08046FE8: @ 0x08046FE8 - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #0x1e - strh r0, [r1] - ldr r2, _08047028 @ =gRoomControls - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08047028: .4byte gRoomControls - - thumb_func_start sub_0804702C -sub_0804702C: @ 0x0804702C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _0804706C - subs r0, r3, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047068 - subs r0, r2, #1 - b _0804706A -_08047068: - adds r0, r2, #1 -_0804706A: - strb r0, [r4, #0x15] -_0804706C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - movs r0, #0x24 - ldrsh r3, [r4, r0] - asrs r3, r3, #0x10 - adds r3, #0x10 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - beq _080470B0 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_080470B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080470B4 -sub_080470B4: @ 0x080470B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0804710A - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080470D8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080470D4 @ =0xFFFFFF00 - b _080470E0 - .align 2, 0 -_080470D4: .4byte 0xFFFFFF00 -_080470D8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080470E0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _0804713A -_0804710A: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl Random - ldr r2, _0804713C @ =gUnk_080D1BBC - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08047D88 -_0804713A: - pop {r4, pc} - .align 2, 0 -_0804713C: .4byte gUnk_080D1BBC - - thumb_func_start sub_08047140 -sub_08047140: @ 0x08047140 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047164 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_08047164: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804717C -sub_0804717C: @ 0x0804717C - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _080471C0 @ =0x0000027F - cmp r1, r0 - bgt _08047192 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_08047192: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _080471C4 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080471BC - movs r0, #5 - strb r0, [r4, #0xd] -_080471BC: - pop {r4, pc} - .align 2, 0 -_080471C0: .4byte 0x0000027F -_080471C4: .4byte gRoomControls - - thumb_func_start sub_080471C8 -sub_080471C8: @ 0x080471C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0xc0 - lsls r0, r0, #1 - cmp r1, r0 - ble _080471E0 - adds r0, r2, #0 - subs r0, #0x10 - strh r0, [r4, #0x24] -_080471E0: - ldrb r0, [r4, #0x15] - cmp r0, #0xdf - bhi _080471EA - adds r0, #1 - strb r0, [r4, #0x15] -_080471EA: - ldrb r1, [r4, #0x15] - movs r5, #0x80 - lsls r5, r5, #1 - subs r1, r5, r1 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804722C @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047238 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - cmp r0, r5 - bls _08047234 - bl Random - adds r1, r0, #0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08047230 - movs r0, #6 - b _08047236 - .align 2, 0 -_0804722C: .4byte gRoomControls -_08047230: - strb r1, [r4, #0xd] - b _08047238 -_08047234: - movs r0, #0 -_08047236: - strb r0, [r4, #0xd] -_08047238: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804723C -sub_0804723C: @ 0x0804723C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - subs r0, #2 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbf - bhi _08047266 - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0xc0 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xc0 - lsls r0, r0, #8 - strh r0, [r1] -_08047266: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047284 -sub_08047284: @ 0x08047284 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #0xe0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x3f - bhi _080472A4 - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #8 - strb r0, [r2, #0xd] -_080472A4: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080472BC -sub_080472BC: @ 0x080472BC - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047308 @ =0x000002FF - cmp r1, r0 - bgt _080472D2 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_080472D2: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804730C @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xac - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047306 - movs r0, #9 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047306: - pop {r4, pc} - .align 2, 0 -_08047308: .4byte 0x000002FF -_0804730C: .4byte gRoomControls - - thumb_func_start sub_08047310 -sub_08047310: @ 0x08047310 - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x24] - movs r0, #0x24 - ldrsh r1, [r2, r0] - ldr r0, _08047364 @ =0x0000017F - cmp r1, r0 - bgt _08047326 - adds r0, r3, #0 - subs r0, #0x10 - strh r0, [r2, #0x24] -_08047326: - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047368 @ =0xFFFFFE30 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - adds r0, #0x7f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3f - bhi _0804734C - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_0804734C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047364: .4byte 0x0000017F -_08047368: .4byte 0xFFFFFE30 - - thumb_func_start sub_0804736C -sub_0804736C: @ 0x0804736C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_0804738A: - ldr r0, _080473B4 @ =gUnk_080D1BC0 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _080473B0 - movs r0, #7 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080473B0: - pop {r4, pc} - .align 2, 0 -_080473B4: .4byte gUnk_080D1BC0 - - thumb_func_start sub_080473B8 -sub_080473B8: @ 0x080473B8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x90 - lsls r1, r1, #1 - strh r1, [r0, #0x24] - ldr r3, _080473EC @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - ldrh r2, [r3, #6] - adds r1, r1, r2 - adds r2, r0, #0 - adds r2, #0x80 - strh r1, [r2] - movs r2, #0xe8 - lsls r2, r2, #1 - adds r1, r2, #0 - ldrh r3, [r3, #8] - adds r1, r1, r3 - adds r2, r0, #0 - adds r2, #0x82 - strh r1, [r2] - bl sub_08047D88 - pop {pc} - .align 2, 0 -_080473EC: .4byte gRoomControls - - thumb_func_start sub_080473F0 -sub_080473F0: @ 0x080473F0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _08047444 - subs r1, r3, r2 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047438 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08047434 - subs r0, r2, #2 - b _08047442 -_08047434: - subs r0, r2, #1 - b _08047442 -_08047438: - cmp r1, #1 - ble _08047440 - adds r0, r2, #2 - b _08047442 -_08047440: - adds r0, r2, #1 -_08047442: - strb r0, [r4, #0x15] -_08047444: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047482 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_08047482: - pop {r4, pc} - - thumb_func_start sub_08047484 -sub_08047484: @ 0x08047484 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _080474DA - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080474A8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080474A4 @ =0xFFFFFF00 - b _080474B0 - .align 2, 0 -_080474A4: .4byte 0xFFFFFF00 -_080474A8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080474B0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047504 -_080474DA: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r1, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1] - subs r1, #2 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #0xa - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 -_08047504: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047508 -sub_08047508: @ 0x08047508 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0804754C @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0804759A - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047550 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0804759A - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _08047598 - .align 2, 0 -_0804754C: .4byte gRoomControls -_08047550: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - bge _0804757E - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804759A - movs r0, #0 - strb r0, [r4, #0x15] - movs r0, #0 - strh r0, [r3] - b _0804759A -_0804757E: - cmp r1, #0x3f - bhi _0804759A - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0x3f - bls _0804759A - movs r0, #0x40 -_08047598: - strb r0, [r4, #0x15] -_0804759A: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _080475F0 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xa0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080475CA - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_080475CA: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080475EE - bl Random - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080475EE - str r4, [r0, #0x50] -_080475EE: - pop {r4, pc} - .align 2, 0 -_080475F0: .4byte gRoomControls - - thumb_func_start sub_080475F4 -sub_080475F4: @ 0x080475F4 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - movs r3, #0xc0 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047626 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #5 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x3c - strh r0, [r1] -_08047626: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - - thumb_func_start sub_0804763C -sub_0804763C: @ 0x0804763C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08047680 @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0xf8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080476D0 - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047684 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080476D0 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _080476CE - .align 2, 0 -_08047680: .4byte gRoomControls -_08047684: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - ble _080476B4 - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080476D0 - movs r0, #0 - strb r0, [r4, #0x15] - strh r1, [r3] - b _080476D0 -_080476B4: - cmp r1, #0xc0 - bls _080476D0 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0xc0 - bhi _080476D0 - movs r0, #0xc0 -_080476CE: - strb r0, [r4, #0x15] -_080476D0: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _08047728 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047700 - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047700: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08047724 - bl Random - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _08047724 - str r4, [r0, #0x50] -_08047724: - pop {r4, pc} - .align 2, 0 -_08047728: .4byte gRoomControls - - thumb_func_start sub_0804772C -sub_0804772C: @ 0x0804772C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047774 @ =0xFFFFFE80 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x40 - bhi _0804775C - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x1e - strh r0, [r1] -_0804775C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047774: .4byte 0xFFFFFE80 - - thumb_func_start sub_08047778 -sub_08047778: @ 0x08047778 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047794 @ =gUnk_080D1BDC - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08047794: .4byte gUnk_080D1BDC - - thumb_func_start sub_08047798 -sub_08047798: @ 0x08047798 - push {r4, lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0x80 - strh r0, [r3, #0x24] - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r2, _080477BC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - ldr r0, _080477C0 @ =0x000001F7 - cmp r1, r0 - bgt _080477C4 - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xa8 - b _080477CC - .align 2, 0 -_080477BC: .4byte gRoomControls -_080477C0: .4byte 0x000001F7 -_080477C4: - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xd2 - lsls r0, r0, #2 -_080477CC: - strh r0, [r1] - ldrh r0, [r2, #6] - ldrh r4, [r1] - adds r0, r0, r4 - strh r0, [r1] - movs r1, #0xd2 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080477F0 -sub_080477F0: @ 0x080477F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047868 @ =0x000002FF - cmp r1, r0 - bgt _0804780A - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_0804780A: - adds r7, r4, #0 - adds r7, #0x80 - ldrh r0, [r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r6, r4, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _0804786C @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047870 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] - b _0804790C - .align 2, 0 -_08047868: .4byte 0x000002FF -_0804786C: .4byte gPlayerEntity -_08047870: - ldr r5, _080478FC @ =gRoomControls - ldrh r1, [r5, #6] - movs r0, #0x80 - lsls r0, r0, #2 - mov r8, r0 - add r1, r8 - ldrh r2, [r5, #8] - movs r3, #0x84 - lsls r3, r3, #2 - adds r2, r2, r3 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - bne _080478A0 - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] -_080478A0: - ldrh r1, [r7] - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804790C - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x14] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl Random - ldr r2, _08047900 @ =gUnk_080D1BF0 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x74 - strh r2, [r0] - ldr r2, [r4, #0x64] - ldr r0, [r2] - adds r0, #0x6c - ldrh r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08047904 - ldr r3, [r2, #4] - ldrh r0, [r5, #6] - add r0, r8 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x83 - cmp r0, r1 - ble _080478F4 - movs r2, #0x81 -_080478F4: - adds r0, r3, #0 - adds r0, #0x79 - strb r2, [r0] - b _0804790C - .align 2, 0 -_080478FC: .4byte gRoomControls -_08047900: .4byte gUnk_080D1BF0 -_08047904: - ldr r0, [r2, #4] - adds r0, #0x79 - movs r1, #0x80 - strb r1, [r0] -_0804790C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047914 -sub_08047914: @ 0x08047914 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldrb r1, [r4, #0x14] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08047950 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047976 -_08047950: - movs r0, #3 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldrb r1, [r4, #0x14] - bl sub_080A1D70 -_08047976: - pop {r4, pc} - - thumb_func_start sub_08047978 -sub_08047978: @ 0x08047978 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _080479C6 - adds r2, r4, #0 - adds r2, #0x70 - ldrh r0, [r2] - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080479B6 - adds r1, r4, #0 - adds r1, #0x72 - movs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080479AE - movs r0, #0xb4 - strh r0, [r2] - b _080479CC -_080479AE: - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r2] - b _080479CC -_080479B6: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf0 - bne _080479CC - adds r0, r4, #0 - bl sub_0804813C - b _080479CC -_080479C6: - adds r0, r4, #0 - adds r0, #0x72 - strh r1, [r0] -_080479CC: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080479F4 - movs r0, #0xf0 - strh r0, [r1] - bl Random - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080479F4 - str r4, [r0, #0x50] -_080479F4: - ldr r0, _08047A78 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047A2C - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] -_08047A2C: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08047B06 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08047B06 - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047AA4 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - cmp r0, #1 - bne _08047A80 - ldr r2, _08047A7C @ =gRoomControls - movs r1, #0xe0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r2, #6] - adds r0, r0, r3 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r4, #0 - adds r1, #0x82 - b _08047B04 - .align 2, 0 -_08047A78: .4byte gPlayerEntity -_08047A7C: .4byte gRoomControls -_08047A80: - ldr r2, _08047AA0 @ =gRoomControls - movs r3, #0x90 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - adds r3, #0x10 - adds r0, r3, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, #2 - b _08047B04 - .align 2, 0 -_08047AA0: .4byte gRoomControls -_08047AA4: - ldr r0, _08047AC4 @ =gRoomControls - ldrh r1, [r0, #6] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r3, #0x2e - ldrsh r2, [r4, r3] - adds r3, r0, #0 - cmp r1, r2 - bge _08047AC8 - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0xc8 - lsls r0, r0, #1 - b _08047AD0 - .align 2, 0 -_08047AC4: .4byte gRoomControls -_08047AC8: - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x9c - lsls r0, r0, #2 -_08047AD0: - strh r0, [r1] - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r3, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047AF4 - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xd0 - lsls r0, r0, #1 - b _08047AFC -_08047AF4: - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xa0 - lsls r0, r0, #2 -_08047AFC: - strh r0, [r1] - ldrh r0, [r3, #8] - ldrh r3, [r1] - adds r0, r0, r3 -_08047B04: - strh r0, [r1] -_08047B06: - pop {r4, pc} - - thumb_func_start sub_08047B08 -sub_08047B08: @ 0x08047B08 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08047D88 - adds r4, r5, #0 - adds r4, #0x80 - ldrh r0, [r4] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - adds r6, r5, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - movs r7, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E58 - ldrh r1, [r4] - ldrh r2, [r6] - adds r0, r5, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047B80 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08047B60 - movs r0, #7 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r0, [r5, #0x15] - movs r1, #0x80 - eors r0, r1 - b _08047B7E -_08047B60: - movs r0, #4 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r5, #0x19] - ldrb r0, [r5, #0x14] -_08047B7E: - strb r0, [r5, #0x15] -_08047B80: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047B84 -sub_08047B84: @ 0x08047B84 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047BA0 @ =gUnk_080D1BF4 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08047BA0: .4byte gUnk_080D1BF4 - - thumb_func_start sub_08047BA4 -sub_08047BA4: @ 0x08047BA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r2, #0x78 - strb r2, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r0, _08047BD0 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _08047BD4 - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _08047BDC - .align 2, 0 -_08047BD0: .4byte gRoomControls -_08047BD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x88 - strh r0, [r1] -_08047BDC: - ldr r0, _08047BEC @ =0x000001B5 - bl PlaySFX - adds r0, r4, #0 - bl sub_08047BF0 - pop {r4, pc} - .align 2, 0 -_08047BEC: .4byte 0x000001B5 - - thumb_func_start sub_08047BF0 -sub_08047BF0: @ 0x08047BF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, _08047CB8 @ =gUnk_080D1C00 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08047CC4 - ldrb r1, [r5, #0xf] - adds r0, r1, #1 - strb r0, [r5, #0xf] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08047C74 - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx - adds r4, r0, #0 - cmp r4, #0 - beq _08047C74 - bl Random - movs r3, #0x1e - adds r1, r0, #0 - ands r1, r3 - ldr r6, _08047CBC @ =0x0000FFF1 - adds r2, r6, #0 - adds r1, r2, r1 - ldrh r6, [r4, #0x2e] - adds r1, r1, r6 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer -_08047C74: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldr r0, _08047CC0 @ =gRoomControls - ldrh r0, [r0, #8] - movs r6, #0x9c - lsls r6, r6, #2 - adds r0, r0, r6 - cmp r1, r0 - ble _08047D10 - movs r0, #2 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x7e - movs r0, #0xaa - strh r0, [r1] - adds r0, #0x83 - bl PlaySFX - adds r0, r5, #0 - movs r1, #1 - bl InitAnimationForceUpdate - b _08047D10 - .align 2, 0 -_08047CB8: .4byte gUnk_080D1C00 -_08047CBC: .4byte 0x0000FFF1 -_08047CC0: .4byte gRoomControls -_08047CC4: - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x5a - bne _08047CD4 - ldr r4, [r5, #0x54] - b _08047CDC -_08047CD4: - cmp r0, #0x3c - bne _08047CF2 - ldr r0, [r5, #0x54] - ldr r4, [r0, #0x54] -_08047CDC: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx - b _08047D10 -_08047CF2: - cmp r0, #0x1e - bne _08047D10 - ldr r0, [r5, #0x54] - ldr r0, [r0, #0x54] - ldr r4, [r0, #0x54] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx -_08047D10: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r3, [r0] - adds r0, r5, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08047D24 -sub_08047D24: @ 0x08047D24 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - adds r0, #8 - movs r2, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bls _08047D5A - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047D4C - ldr r0, [r4, #0x64] - str r2, [r0, #8] - b _08047D50 -_08047D4C: - ldr r0, [r4, #0x64] - str r2, [r0, #0xc] -_08047D50: - movs r0, #0 - str r0, [r4, #0x64] - bl DeleteThisEntity - b _08047D84 -_08047D5A: - ldr r0, _08047D68 @ =0x000001FF - cmp r1, r0 - bhi _08047D6C - adds r0, r4, #0 - bl sub_08047E48 - b _08047D72 - .align 2, 0 -_08047D68: .4byte 0x000001FF -_08047D6C: - adds r0, r4, #0 - bl sub_08047E58 -_08047D72: - adds r0, r4, #0 - adds r0, #0x7e - ldrh r2, [r0] - subs r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08047D84: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047D88 -sub_08047D88: @ 0x08047D88 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r3, #0 - adds r5, #0x7c - ldrb r2, [r5] - lsls r1, r2, #1 - movs r0, #0x7f - ands r1, r0 - movs r0, #0x80 - ands r0, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _08047DB0 - ldr r0, _08047DE8 @ =gPlayerState - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _08047DE6 -_08047DB0: - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _08047DE6 - ldr r4, _08047DEC @ =gPlayerEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r3, #0 - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047DE6 - ldr r0, _08047DE8 @ =gPlayerState - movs r1, #1 - strb r1, [r0, #0x14] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08047DE6 - ldrb r0, [r5] - movs r1, #1 - orrs r0, r1 - strb r0, [r5] -_08047DE6: - pop {r4, r5, pc} - .align 2, 0 -_08047DE8: .4byte gPlayerState -_08047DEC: .4byte gPlayerEntity - - thumb_func_start sub_08047DF0 -sub_08047DF0: @ 0x08047DF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08047D88 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08047EA4 - movs r0, #0x2e - ldrsh r4, [r5, r0] - movs r2, #0x32 - ldrsh r6, [r5, r2] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E42 - bl sub_08079F8C - cmp r0, #0 - beq _08047E42 - ldr r0, _08047E44 @ =gPlayerEntity - ldrh r1, [r5, #0x2e] - subs r1, r1, r4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r5, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047E44: .4byte gPlayerEntity - - thumb_func_start sub_08047E48 -sub_08047E48: @ 0x08047E48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - bl sub_08047E58 - pop {r4, pc} - - thumb_func_start sub_08047E58 -sub_08047E58: @ 0x08047E58 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r2, #0x32 - ldrsh r6, [r4, r2] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E9C - bl sub_08079F8C - cmp r0, #0 - beq _08047E9C - ldr r0, _08047EA0 @ =gPlayerEntity - ldrh r1, [r4, #0x2e] - subs r1, r1, r5 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r4, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E9C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047EA0: .4byte gPlayerEntity - - thumb_func_start sub_08047EA4 -sub_08047EA4: @ 0x08047EA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r1, [r0] - adds r0, #2 - ldrh r0, [r0] - subs r4, r1, r0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, #0xff - cmp r1, r0 - bls _08047F58 - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047F4E - adds r0, r5, #0 - bl sub_08047F68 - lsls r0, r0, #8 - mov r8, r0 - ldr r6, _08047F60 @ =gPlayerEntity - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r5, r7] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - adds r0, r4, #0 - cmp r4, #0 - bge _08047F00 - adds r0, #0xff -_08047F00: - asrs r0, r0, #8 - subs r4, r3, r0 - movs r0, #0xff - ands r4, r0 - ldr r2, _08047F64 @ =gSineTable - lsls r0, r4, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r1, [r0, r7] - lsls r0, r3, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x2c] - adds r0, r0, r1 - str r0, [r6, #0x2c] - adds r0, r4, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r4, #0 - ldrsh r1, [r0, r4] - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08047F4E: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #2 - strh r1, [r0] -_08047F58: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08047F60: .4byte gPlayerEntity -_08047F64: .4byte gSineTable - - thumb_func_start sub_08047F68 -sub_08047F68: @ 0x08047F68 - push {r4, r5, lr} - ldr r3, _08047F98 @ =gPlayerEntity - movs r1, #0x2e - ldrsh r2, [r3, r1] - movs r4, #0x2e - ldrsh r1, [r0, r4] - subs r2, r2, r1 - movs r4, #0x32 - ldrsh r1, [r3, r4] - movs r3, #0x32 - ldrsh r0, [r0, r3] - subs r1, r1, r0 - adds r4, r2, #0 - muls r4, r2, r4 - adds r2, r4, #0 - adds r0, r1, #0 - muls r0, r1, r0 - adds r4, r2, r0 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - bne _08047F9C - movs r0, #0x20 - b _08048002 - .align 2, 0 -_08047F98: .4byte gPlayerEntity -_08047F9C: - ldr r0, _08047FB8 @ =gUnk_080D1C04 - movs r3, #0x18 - adds r2, r0, #0 - ldrh r0, [r2, #0x20] - cmp r4, r0 - bge _08047FAA - movs r3, #8 -_08047FAA: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FBC - subs r3, #4 - b _08047FBE - .align 2, 0 -_08047FB8: .4byte gUnk_080D1C04 -_08047FBC: - adds r3, #4 -_08047FBE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FCC - subs r3, #2 - b _08047FCE -_08047FCC: - adds r3, #2 -_08047FCE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FDC - subs r3, #1 - b _08047FDE -_08047FDC: - adds r3, #1 -_08047FDE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r1, [r0] - cmp r4, r1 - bge _08048000 - subs r5, r3, #1 - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r2, [r0] - subs r0, r1, r2 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - cmp r4, r2 - bgt _08048000 - adds r3, r5, #0 -_08048000: - adds r0, r3, #0 -_08048002: - pop {r4, r5, pc} - - thumb_func_start sub_08048004 -sub_08048004: @ 0x08048004 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08048010 - b _08048138 -_08048010: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0804801C - b _08048130 -_0804801C: - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldr r6, _080480A4 @ =gPlayerEntity - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _08048030 - b _08048138 -_08048030: - bl sub_08079F8C - cmp r0, #0 - bne _0804803A - b _08048138 -_0804803A: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r3, [r1] - movs r0, #1 - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - beq _080480BA - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _080480B0 - movs r7, #0x2e - ldrsh r2, [r6, r7] - ldr r1, _080480A8 @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #3 - movs r7, #0x32 - ldrsh r0, [r6, r7] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #3 - ldr r1, _080480AC @ =gUnk_02019EE0 - lsls r0, r0, #7 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080480B0 - movs r0, #2 - ands r0, r3 - cmp r0, #0 - bne _08048086 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r5] -_08048086: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08048138 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - strh r0, [r6, #0x2e] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r6, #0x32] - b _08048138 - .align 2, 0 -_080480A4: .4byte gPlayerEntity -_080480A8: .4byte gRoomControls -_080480AC: .4byte gUnk_02019EE0 -_080480B0: - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] - b _08048138 -_080480BA: - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - beq _08048124 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r3, #0x32 - ldrsh r2, [r4, r3] - adds r0, r6, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08048124 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08048124 - movs r7, #0x2e - ldrsh r0, [r6, r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r4, r7] - subs r1, r1, r2 - bl sub_080045DA - ldr r3, _0804812C @ =gSineTable - lsls r1, r0, #1 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #3 - adds r2, r2, r1 - lsls r2, r2, #0xa - ldr r1, [r4, #0x2c] - adds r1, r1, r2 - str r1, [r6, #0x2c] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #0xa - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08048124: - movs r0, #0 - strb r0, [r5] - b _08048138 - .align 2, 0 -_0804812C: .4byte gSineTable -_08048130: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08048138: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804813C -sub_0804813C: @ 0x0804813C - push {lr} - bl Random - adds r2, r0, #0 - movs r0, #7 - ands r0, r2 - lsrs r2, r2, #8 - movs r1, #3 - ands r2, r1 - movs r1, #1 - bl sub_080A1ED0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048158 -sub_08048158: @ 0x08048158 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08048174 @ =gUnk_080D1C44 - bl Random - lsls r4, r5, #1 - adds r4, r4, r5 - movs r1, #3 - bl __modsi3 - adds r4, r4, r0 - adds r4, r4, r6 - ldrb r0, [r4] - pop {r4, r5, r6, pc} - .align 2, 0 -_08048174: .4byte gUnk_080D1C44 - - thumb_func_start sub_08048178 -sub_08048178: @ 0x08048178 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08048198 - lsls r1, r2, #1 - ldr r0, _08048194 @ =gUnk_080D1C60 - b _0804819C - .align 2, 0 -_08048194: .4byte gUnk_080D1C60 -_08048198: - lsls r1, r2, #1 - ldr r0, _080481B8 @ =gUnk_080D1C50 -_0804819C: - adds r3, r1, r0 - ldr r2, _080481BC @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r1, [r3] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - ldrh r0, [r2, #8] - ldrh r3, [r3, #2] - adds r0, r0, r3 - adds r1, #2 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_080481B8: .4byte gUnk_080D1C50 -_080481BC: .4byte gRoomControls diff --git a/asm/manager1.s b/asm/manager1.s index 74bf3c4e..a6bc4f1f 100644 --- a/asm/manager1.s +++ b/asm/manager1.s @@ -404,7 +404,7 @@ sub_08057450: @ 0x08057450 _08057474: asrs r0, r1, #6 lsls r0, r0, #9 - ldr r1, _0805750C @ =gUnk_02001A40 + ldr r1, _0805750C @ =gBG3Buffer adds r1, r0, r1 str r1, [r4, #0x34] ldr r0, [r3, #0x34] @@ -479,7 +479,7 @@ _08057502: .align 2, 0 _08057504: .4byte gScreen _08057508: .4byte gRoomControls -_0805750C: .4byte gUnk_02001A40 +_0805750C: .4byte gBG3Buffer _08057510: .4byte gScreenTransition _08057514: .4byte gUnk_08107C30 _08057518: .4byte gUnk_085B4180 diff --git a/asm/manager10.s b/asm/manager10.s index addec2c9..eadc82ba 100644 --- a/asm/manager10.s +++ b/asm/manager10.s @@ -333,7 +333,7 @@ _080597F4: bl LoadGfxGroup b _08059838 _08059800: - ldr r4, _0805981C @ =gUnk_02001A40 + ldr r4, _0805981C @ =gBG3Buffer movs r5, #0x80 lsls r5, r5, #4 adds r0, r4, #0 @@ -345,7 +345,7 @@ _08059800: bl LoadAssetAsync b _08059838 .align 2, 0 -_0805981C: .4byte gUnk_02001A40 +_0805981C: .4byte gBG3Buffer _08059820: .4byte 0x0600E800 _08059824: ldr r0, _0805983C @ =gUnk_0200B650 diff --git a/asm/non_matching/manager15/sub_0805A9CC.inc b/asm/non_matching/manager15/sub_0805A9CC.inc index a5953bf2..f1ce8e4d 100644 --- a/asm/non_matching/manager15/sub_0805A9CC.inc +++ b/asm/non_matching/manager15/sub_0805A9CC.inc @@ -54,7 +54,7 @@ _0805AA04: _0805AA2C: asr r0, r0, #6 lsl r0, r0, #9 - ldr r1, _0805AA54 @ =gUnk_02001A40 + ldr r1, _0805AA54 @ =gBG3Buffer add r1, r0, r1 str r1, [r3, #0x34] add r2, r3, #0 @@ -72,4 +72,4 @@ _0805AA4A: .align 2, 0 _0805AA4C: .4byte gScreen _0805AA50: .4byte gRoomControls -_0805AA54: .4byte gUnk_02001A40 +_0805AA54: .4byte gBG3Buffer diff --git a/asm/sub_08052418.s b/asm/sub_08052418.s index 01374de8..3de7ca93 100644 --- a/asm/sub_08052418.s +++ b/asm/sub_08052418.s @@ -11,7 +11,7 @@ sub_08052418: @ 0x08052418 sub sp, #0x18 adds r6, r0, #0 adds r4, r1, #0 - ldr r0, _08052494 @ =gUnk_02021F30 + ldr r0, _08052494 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero @@ -66,7 +66,7 @@ sub_08052418: @ 0x08052418 add sp, #0x18 pop {r4, r5, r6, pc} .align 2, 0 -_08052494: .4byte gUnk_02021F30 +_08052494: .4byte gBG1Buffer _08052498: .4byte gUnk_020227E8 _0805249C: .4byte gUnk_080FCA8C _080524A0: .4byte gUnk_080FCAA4 diff --git a/data/data_080029B4.s b/data/data_080029B4.s index 08809ee3..d071f13a 100644 --- a/data/data_080029B4.s +++ b/data/data_080029B4.s @@ -4,7 +4,7 @@ .section .rodata .align 2 -gUnk_080029B4:: @ 080029B4 +gSpritePtrs:: @ 080029B4 .incbin "baserom.gba", 0x0029B4, 0x000004C gUnk_08002A00:: @ 08002A00 diff --git a/data/data_080D0448.s b/data/data_080D0448.s index 86577c9a..37adec31 100644 --- a/data/data_080D0448.s +++ b/data/data_080D0448.s @@ -1362,732 +1362,3 @@ gUnk_080D1AF4:: @ 080D1AF4 gUnk_080D1AF8:: @ 080D1AF8 .incbin "baserom.gba", 0x0D1AF8, 0x0000004 - -gUnk_080D1AFC:: @ 080D1AFC - .incbin "baserom.gba", 0x0D1AFC, 0x0000020 - -gUnk_080D1B1C:: @ 080D1B1C - .incbin "baserom.gba", 0x0D1B1C, 0x0000003 - -gUnk_080D1B1F:: @ 080D1B1F - .incbin "baserom.gba", 0x0D1B1F, 0x0000019 - -gUnk_080D1B38:: @ 080D1B38 - .incbin "baserom.gba", 0x0D1B38, 0x0000014 - -gUnk_080D1B4C:: @ 080D1B4C - .incbin "baserom.gba", 0x0D1B4C, 0x0000014 - -gUnk_080D1B60:: @ 080D1B60 - .incbin "baserom.gba", 0x0D1B60, 0x0000010 - -gUnk_080D1B70:: @ 080D1B70 - .incbin "baserom.gba", 0x0D1B70, 0x0000004 - -gUnk_080D1B74:: @ 080D1B74 - .incbin "baserom.gba", 0x0D1B74, 0x0000020 - -gUnk_080D1B94:: @ 080D1B94 - .incbin "baserom.gba", 0x0D1B94, 0x0000028 - -gUnk_080D1BBC:: @ 080D1BBC - .incbin "baserom.gba", 0x0D1BBC, 0x0000004 - -gUnk_080D1BC0:: @ 080D1BC0 - .incbin "baserom.gba", 0x0D1BC0, 0x000001C - -gUnk_080D1BDC:: @ 080D1BDC - .incbin "baserom.gba", 0x0D1BDC, 0x0000014 - -gUnk_080D1BF0:: @ 080D1BF0 - .incbin "baserom.gba", 0x0D1BF0, 0x0000004 - -gUnk_080D1BF4:: @ 080D1BF4 - .incbin "baserom.gba", 0x0D1BF4, 0x000000C - -gUnk_080D1C00:: @ 080D1C00 - .incbin "baserom.gba", 0x0D1C00, 0x0000004 - -gUnk_080D1C04:: @ 080D1C04 - .incbin "baserom.gba", 0x0D1C04, 0x0000017 - -gUnk_080D1C1B:: @ 080D1C1B - .incbin "baserom.gba", 0x0D1C1B, 0x0000013 - -gUnk_080D1C2E:: @ 080D1C2E - .incbin "baserom.gba", 0x0D1C2E, 0x0000016 - -gUnk_080D1C44:: @ 080D1C44 - .incbin "baserom.gba", 0x0D1C44, 0x000000C - -gUnk_080D1C50:: @ 080D1C50 - .incbin "baserom.gba", 0x0D1C50, 0x0000010 - -gUnk_080D1C60:: @ 080D1C60 - .incbin "baserom.gba", 0x0D1C60, 0x0000010 - -gUnk_080D1C70:: @ 080D1C70 - .incbin "baserom.gba", 0x0D1C70, 0x0000021 - -gUnk_080D1C91:: @ 080D1C91 - .incbin "baserom.gba", 0x0D1C91, 0x000002B - -gUnk_080D1CBC:: @ 080D1CBC - .incbin "baserom.gba", 0x0D1CBC, 0x000000C - -gUnk_080D1CC8:: @ 080D1CC8 - .incbin "baserom.gba", 0x0D1CC8, 0x0000018 - -gUnk_080D1CE0:: @ 080D1CE0 - .incbin "baserom.gba", 0x0D1CE0, 0x0000010 - -gUnk_080D1CF0:: @ 080D1CF0 - .incbin "baserom.gba", 0x0D1CF0, 0x0000009 - -gUnk_080D1CF9:: @ 080D1CF9 - .incbin "baserom.gba", 0x0D1CF9, 0x0000009 - -gUnk_080D1D02:: @ 080D1D02 - .incbin "baserom.gba", 0x0D1D02, 0x0000020 - -gUnk_080D1D22:: @ 080D1D22 - .incbin "baserom.gba", 0x0D1D22, 0x0000001 - -gUnk_080D1D23:: @ 080D1D23 - .incbin "baserom.gba", 0x0D1D23, 0x0000003 - -gUnk_080D1D26:: @ 080D1D26 - .incbin "baserom.gba", 0x0D1D26, 0x0000001 - -gUnk_080D1D27:: @ 080D1D27 - .incbin "baserom.gba", 0x0D1D27, 0x0000005 - -gUnk_080D1D2C:: @ 080D1D2C - .incbin "baserom.gba", 0x0D1D2C, 0x0000008 - -gUnk_080D1D34:: @ 080D1D34 - .incbin "baserom.gba", 0x0D1D34, 0x0000014 - -gUnk_080D1D48:: @ 080D1D48 - .incbin "baserom.gba", 0x0D1D48, 0x0000028 - -gUnk_080D1D70:: @ 080D1D70 - .incbin "baserom.gba", 0x0D1D70, 0x0000008 - -gUnk_080D1D78:: @ 080D1D78 - .incbin "baserom.gba", 0x0D1D78, 0x0000020 - -gUnk_080D1D98:: @ 080D1D98 - .incbin "baserom.gba", 0x0D1D98, 0x0000008 - -gUnk_080D1DA0:: @ 080D1DA0 - .incbin "baserom.gba", 0x0D1DA0, 0x0000028 - -gUnk_080D1DC8:: @ 080D1DC8 - .incbin "baserom.gba", 0x0D1DC8, 0x0000004 - -gUnk_080D1DCC:: @ 080D1DCC - .incbin "baserom.gba", 0x0D1DCC, 0x0000004 - -gUnk_080D1DD0:: @ 080D1DD0 - .incbin "baserom.gba", 0x0D1DD0, 0x000000C - -gUnk_080D1DDC:: @ 080D1DDC - .incbin "baserom.gba", 0x0D1DDC, 0x000000C - -gUnk_080D1DE8:: @ 080D1DE8 - .incbin "baserom.gba", 0x0D1DE8, 0x000001D - -gUnk_080D1E05:: @ 080D1E05 - .incbin "baserom.gba", 0x0D1E05, 0x0000016 - -gUnk_080D1E1B:: @ 080D1E1B - .incbin "baserom.gba", 0x0D1E1B, 0x0000006 - -gUnk_080D1E21:: @ 080D1E21 - .incbin "baserom.gba", 0x0D1E21, 0x0000005 - -gUnk_080D1E26:: @ 080D1E26 - .incbin "baserom.gba", 0x0D1E26, 0x000000C - -gUnk_080D1E32:: @ 080D1E32 - .incbin "baserom.gba", 0x0D1E32, 0x0000012 - -gUnk_080D1E44:: @ 080D1E44 - .incbin "baserom.gba", 0x0D1E44, 0x0000028 - -gUnk_080D1E6C:: @ 080D1E6C - .incbin "baserom.gba", 0x0D1E6C, 0x0000018 - -gUnk_080D1E84:: @ 080D1E84 - .incbin "baserom.gba", 0x0D1E84, 0x0000010 - -gUnk_080D1E94:: @ 080D1E94 - .incbin "baserom.gba", 0x0D1E94, 0x000000C - -gUnk_080D1EA0:: @ 080D1EA0 - .incbin "baserom.gba", 0x0D1EA0, 0x0000016 - -gUnk_080D1EB6:: @ 080D1EB6 - .incbin "baserom.gba", 0x0D1EB6, 0x0000009 - -gUnk_080D1EBF:: @ 080D1EBF - .incbin "baserom.gba", 0x0D1EBF, 0x0000009 - -gUnk_080D1EC8:: @ 080D1EC8 - .incbin "baserom.gba", 0x0D1EC8, 0x0000009 - -gUnk_080D1ED1:: @ 080D1ED1 - .incbin "baserom.gba", 0x0D1ED1, 0x0000009 - -gUnk_080D1EDA:: @ 080D1EDA - .incbin "baserom.gba", 0x0D1EDA, 0x0000009 - -gUnk_080D1EE3:: @ 080D1EE3 - .incbin "baserom.gba", 0x0D1EE3, 0x0000009 - -gUnk_080D1EEC:: @ 080D1EEC - .incbin "baserom.gba", 0x0D1EEC, 0x0000009 - -gUnk_080D1EF5:: @ 080D1EF5 - .incbin "baserom.gba", 0x0D1EF5, 0x0000009 - -gUnk_080D1EFE:: @ 080D1EFE - .incbin "baserom.gba", 0x0D1EFE, 0x0000004 - -gUnk_080D1F02:: @ 080D1F02 - .incbin "baserom.gba", 0x0D1F02, 0x0000004 - -gUnk_080D1F06:: @ 080D1F06 - .incbin "baserom.gba", 0x0D1F06, 0x0000004 - -gUnk_080D1F0A:: @ 080D1F0A - .incbin "baserom.gba", 0x0D1F0A, 0x0000004 - -gUnk_080D1F0E:: @ 080D1F0E - .incbin "baserom.gba", 0x0D1F0E, 0x0000004 - -gUnk_080D1F12:: @ 080D1F12 - .incbin "baserom.gba", 0x0D1F12, 0x0000004 - -gUnk_080D1F16:: @ 080D1F16 - .incbin "baserom.gba", 0x0D1F16, 0x0000004 - -gUnk_080D1F1A:: @ 080D1F1A - .incbin "baserom.gba", 0x0D1F1A, 0x0000006 - -gUnk_080D1F20:: @ 080D1F20 - .incbin "baserom.gba", 0x0D1F20, 0x0000014 - -gUnk_080D1F34:: @ 080D1F34 - .incbin "baserom.gba", 0x0D1F34, 0x0000030 - -gUnk_080D1F64:: @ 080D1F64 - .incbin "baserom.gba", 0x0D1F64, 0x0000018 - -gUnk_080D1F7C:: @ 080D1F7C - .incbin "baserom.gba", 0x0D1F7C, 0x0000014 - -gUnk_080D1F90:: @ 080D1F90 - .incbin "baserom.gba", 0x0D1F90, 0x0000080 - -gUnk_080D2010:: @ 080D2010 - .incbin "baserom.gba", 0x0D2010, 0x0000020 - -gUnk_080D2030:: @ 080D2030 - .incbin "baserom.gba", 0x0D2030, 0x0000020 - -gUnk_080D2050:: @ 080D2050 - .incbin "baserom.gba", 0x0D2050, 0x0000014 - -gUnk_080D2064:: @ 080D2064 - .incbin "baserom.gba", 0x0D2064, 0x0000014 - -gUnk_080D2078:: @ 080D2078 - .incbin "baserom.gba", 0x0D2078, 0x0000014 - -gUnk_080D208C:: @ 080D208C - .incbin "baserom.gba", 0x0D208C, 0x0000014 - -gUnk_080D20A0:: @ 080D20A0 - .incbin "baserom.gba", 0x0D20A0, 0x0000014 - -gUnk_080D20B4:: @ 080D20B4 - .incbin "baserom.gba", 0x0D20B4, 0x0000014 - -gUnk_080D20C8:: @ 080D20C8 - .incbin "baserom.gba", 0x0D20C8, 0x0000014 - -gUnk_080D20DC:: @ 080D20DC - .incbin "baserom.gba", 0x0D20DC, 0x0000014 - -gUnk_080D20F0:: @ 080D20F0 - .incbin "baserom.gba", 0x0D20F0, 0x0000014 - -gUnk_080D2104:: @ 080D2104 - .incbin "baserom.gba", 0x0D2104, 0x0000014 - -gUnk_080D2118:: @ 080D2118 - .incbin "baserom.gba", 0x0D2118, 0x0000014 - -gUnk_080D212C:: @ 080D212C - .incbin "baserom.gba", 0x0D212C, 0x0000014 - -gUnk_080D2140:: @ 080D2140 - .incbin "baserom.gba", 0x0D2140, 0x0000014 - -gUnk_080D2154:: @ 080D2154 - .incbin "baserom.gba", 0x0D2154, 0x0000014 - -gUnk_080D2168:: @ 080D2168 - .incbin "baserom.gba", 0x0D2168, 0x0000014 - -gUnk_080D217C:: @ 080D217C - .incbin "baserom.gba", 0x0D217C, 0x0000014 - -gUnk_080D2190:: @ 080D2190 - .incbin "baserom.gba", 0x0D2190, 0x0000029 - -gUnk_080D21B9:: @ 080D21B9 - .incbin "baserom.gba", 0x0D21B9, 0x0000029 - -gUnk_080D21E2:: @ 080D21E2 - .incbin "baserom.gba", 0x0D21E2, 0x0000029 - -gUnk_080D220B:: @ 080D220B - .incbin "baserom.gba", 0x0D220B, 0x0000029 - -gUnk_080D2234:: @ 080D2234 - .incbin "baserom.gba", 0x0D2234, 0x0000010 - -gUnk_080D2244:: @ 080D2244 - .incbin "baserom.gba", 0x0D2244, 0x0000010 - -gUnk_080D2254:: @ 080D2254 - .incbin "baserom.gba", 0x0D2254, 0x0000010 - -gUnk_080D2264:: @ 080D2264 - .incbin "baserom.gba", 0x0D2264, 0x0000010 - -gUnk_080D2274:: @ 080D2274 - .incbin "baserom.gba", 0x0D2274, 0x0000064 - -gUnk_080D22D8:: @ 080D22D8 - .incbin "baserom.gba", 0x0D22D8, 0x0000018 - -gUnk_080D22F0:: @ 080D22F0 - .incbin "baserom.gba", 0x0D22F0, 0x0000010 - -gUnk_080D2300:: @ 080D2300 - .incbin "baserom.gba", 0x0D2300, 0x0000048 - -gUnk_080D2348:: @ 080D2348 - .incbin "baserom.gba", 0x0D2348, 0x0000020 - -gUnk_080D2368:: @ 080D2368 - .incbin "baserom.gba", 0x0D2368, 0x0000011 - -gUnk_080D2379:: @ 080D2379 - .incbin "baserom.gba", 0x0D2379, 0x0000011 - -gUnk_080D238A:: @ 080D238A - .incbin "baserom.gba", 0x0D238A, 0x0000011 - -gUnk_080D239B:: @ 080D239B - .incbin "baserom.gba", 0x0D239B, 0x0000011 - -gUnk_080D23AC:: @ 080D23AC - .incbin "baserom.gba", 0x0D23AC, 0x0000011 - -gUnk_080D23BD:: @ 080D23BD - .incbin "baserom.gba", 0x0D23BD, 0x0000011 - -gUnk_080D23CE:: @ 080D23CE - .incbin "baserom.gba", 0x0D23CE, 0x0000011 - -gUnk_080D23DF:: @ 080D23DF - .incbin "baserom.gba", 0x0D23DF, 0x0000011 - -gUnk_080D23F0:: @ 080D23F0 - .incbin "baserom.gba", 0x0D23F0, 0x0000011 - -gUnk_080D2401:: @ 080D2401 - .incbin "baserom.gba", 0x0D2401, 0x0000011 - -gUnk_080D2412:: @ 080D2412 - .incbin "baserom.gba", 0x0D2412, 0x0000011 - -gUnk_080D2423:: @ 080D2423 - .incbin "baserom.gba", 0x0D2423, 0x0000011 - -gUnk_080D2434:: @ 080D2434 - .incbin "baserom.gba", 0x0D2434, 0x0000011 - -gUnk_080D2445:: @ 080D2445 - .incbin "baserom.gba", 0x0D2445, 0x0000011 - -gUnk_080D2456:: @ 080D2456 - .incbin "baserom.gba", 0x0D2456, 0x0000011 - -gUnk_080D2467:: @ 080D2467 - .incbin "baserom.gba", 0x0D2467, 0x0000011 - -gUnk_080D2478:: @ 080D2478 - .incbin "baserom.gba", 0x0D2478, 0x0000011 - -gUnk_080D2489:: @ 080D2489 - .incbin "baserom.gba", 0x0D2489, 0x0000011 - -gUnk_080D249A:: @ 080D249A - .incbin "baserom.gba", 0x0D249A, 0x0000011 - -gUnk_080D24AB:: @ 080D24AB - .incbin "baserom.gba", 0x0D24AB, 0x0000011 - -gUnk_080D24BC:: @ 080D24BC - .incbin "baserom.gba", 0x0D24BC, 0x0000011 - -gUnk_080D24CD:: @ 080D24CD - .incbin "baserom.gba", 0x0D24CD, 0x0000011 - -gUnk_080D24DE:: @ 080D24DE - .incbin "baserom.gba", 0x0D24DE, 0x0000011 - -gUnk_080D24EF:: @ 080D24EF - .incbin "baserom.gba", 0x0D24EF, 0x0000011 - -gUnk_080D2500:: @ 080D2500 - .incbin "baserom.gba", 0x0D2500, 0x0000011 - -gUnk_080D2511:: @ 080D2511 - .incbin "baserom.gba", 0x0D2511, 0x0000011 - -gUnk_080D2522:: @ 080D2522 - .incbin "baserom.gba", 0x0D2522, 0x0000011 - -gUnk_080D2533:: @ 080D2533 - .incbin "baserom.gba", 0x0D2533, 0x0000011 - -gUnk_080D2544:: @ 080D2544 - .incbin "baserom.gba", 0x0D2544, 0x0000011 - -gUnk_080D2555:: @ 080D2555 - .incbin "baserom.gba", 0x0D2555, 0x0000011 - -gUnk_080D2566:: @ 080D2566 - .incbin "baserom.gba", 0x0D2566, 0x0000011 - -gUnk_080D2577:: @ 080D2577 - .incbin "baserom.gba", 0x0D2577, 0x0000011 - -gUnk_080D2588:: @ 080D2588 - .incbin "baserom.gba", 0x0D2588, 0x0000011 - -gUnk_080D2599:: @ 080D2599 - .incbin "baserom.gba", 0x0D2599, 0x0000011 - -gUnk_080D25AA:: @ 080D25AA - .incbin "baserom.gba", 0x0D25AA, 0x0000011 - -gUnk_080D25BB:: @ 080D25BB - .incbin "baserom.gba", 0x0D25BB, 0x0000011 - -gUnk_080D25CC:: @ 080D25CC - .incbin "baserom.gba", 0x0D25CC, 0x0000011 - -gUnk_080D25DD:: @ 080D25DD - .incbin "baserom.gba", 0x0D25DD, 0x0000011 - -gUnk_080D25EE:: @ 080D25EE - .incbin "baserom.gba", 0x0D25EE, 0x0000011 - -gUnk_080D25FF:: @ 080D25FF - .incbin "baserom.gba", 0x0D25FF, 0x0000011 - -gUnk_080D2610:: @ 080D2610 - .incbin "baserom.gba", 0x0D2610, 0x0000011 - -gUnk_080D2621:: @ 080D2621 - .incbin "baserom.gba", 0x0D2621, 0x0000011 - -gUnk_080D2632:: @ 080D2632 - .incbin "baserom.gba", 0x0D2632, 0x0000011 - -gUnk_080D2643:: @ 080D2643 - .incbin "baserom.gba", 0x0D2643, 0x0000011 - -gUnk_080D2654:: @ 080D2654 - .incbin "baserom.gba", 0x0D2654, 0x0000011 - -gUnk_080D2665:: @ 080D2665 - .incbin "baserom.gba", 0x0D2665, 0x0000011 - -gUnk_080D2676:: @ 080D2676 - .incbin "baserom.gba", 0x0D2676, 0x0000011 - -gUnk_080D2687:: @ 080D2687 - .incbin "baserom.gba", 0x0D2687, 0x0000011 - -gUnk_080D2698:: @ 080D2698 - .incbin "baserom.gba", 0x0D2698, 0x0000011 - -gUnk_080D26A9:: @ 080D26A9 - .incbin "baserom.gba", 0x0D26A9, 0x0000011 - -gUnk_080D26BA:: @ 080D26BA - .incbin "baserom.gba", 0x0D26BA, 0x0000011 - -gUnk_080D26CB:: @ 080D26CB - .incbin "baserom.gba", 0x0D26CB, 0x0000011 - -gUnk_080D26DC:: @ 080D26DC - .incbin "baserom.gba", 0x0D26DC, 0x0000011 - -gUnk_080D26ED:: @ 080D26ED - .incbin "baserom.gba", 0x0D26ED, 0x0000011 - -gUnk_080D26FE:: @ 080D26FE - .incbin "baserom.gba", 0x0D26FE, 0x0000011 - -gUnk_080D270F:: @ 080D270F - .incbin "baserom.gba", 0x0D270F, 0x0000011 - -gUnk_080D2720:: @ 080D2720 - .incbin "baserom.gba", 0x0D2720, 0x0000011 - -gUnk_080D2731:: @ 080D2731 - .incbin "baserom.gba", 0x0D2731, 0x0000011 - -gUnk_080D2742:: @ 080D2742 - .incbin "baserom.gba", 0x0D2742, 0x0000011 - -gUnk_080D2753:: @ 080D2753 - .incbin "baserom.gba", 0x0D2753, 0x0000011 - -gUnk_080D2764:: @ 080D2764 - .incbin "baserom.gba", 0x0D2764, 0x0000011 - -gUnk_080D2775:: @ 080D2775 - .incbin "baserom.gba", 0x0D2775, 0x0000011 - -gUnk_080D2786:: @ 080D2786 - .incbin "baserom.gba", 0x0D2786, 0x0000011 - -gUnk_080D2797:: @ 080D2797 - .incbin "baserom.gba", 0x0D2797, 0x0000011 - -gUnk_080D27A8:: @ 080D27A8 - .incbin "baserom.gba", 0x0D27A8, 0x0000104 - -gUnk_080D28AC:: @ 080D28AC - .incbin "baserom.gba", 0x0D28AC, 0x0000020 - -gUnk_080D28CC:: @ 080D28CC - .incbin "baserom.gba", 0x0D28CC, 0x0000010 - -gUnk_080D28DC:: @ 080D28DC - .incbin "baserom.gba", 0x0D28DC, 0x0000008 - -gUnk_080D28E4:: @ 080D28E4 - .incbin "baserom.gba", 0x0D28E4, 0x0000008 - -gUnk_080D28EC:: @ 080D28EC - .incbin "baserom.gba", 0x0D28EC, 0x0000008 - -gUnk_080D28F4:: @ 080D28F4 - .incbin "baserom.gba", 0x0D28F4, 0x0000008 - -gUnk_080D28FC:: @ 080D28FC - .incbin "baserom.gba", 0x0D28FC, 0x0000008 - -gUnk_080D2904:: @ 080D2904 - .incbin "baserom.gba", 0x0D2904, 0x0000008 - -gUnk_080D290C:: @ 080D290C - .incbin "baserom.gba", 0x0D290C, 0x0000008 - -gUnk_080D2914:: @ 080D2914 - .incbin "baserom.gba", 0x0D2914, 0x0000008 - -gUnk_080D291C:: @ 080D291C - .incbin "baserom.gba", 0x0D291C, 0x0000011 - -gUnk_080D292D:: @ 080D292D - .incbin "baserom.gba", 0x0D292D, 0x0000011 - -gUnk_080D293E:: @ 080D293E - .incbin "baserom.gba", 0x0D293E, 0x000000C - -gUnk_080D294A:: @ 080D294A - .incbin "baserom.gba", 0x0D294A, 0x0000005 - -gUnk_080D294F:: @ 080D294F - .incbin "baserom.gba", 0x0D294F, 0x0000011 - -gUnk_080D2960:: @ 080D2960 - .incbin "baserom.gba", 0x0D2960, 0x0000014 - -gUnk_080D2974:: @ 080D2974 - .incbin "baserom.gba", 0x0D2974, 0x0000014 - -gUnk_080D2988:: @ 080D2988 - .incbin "baserom.gba", 0x0D2988, 0x0000008 - -gUnk_080D2990:: @ 080D2990 - .incbin "baserom.gba", 0x0D2990, 0x0000018 - -gUnk_080D29A8:: @ 080D29A8 - .incbin "baserom.gba", 0x0D29A8, 0x0000010 - -gUnk_080D29B8:: @ 080D29B8 - .incbin "baserom.gba", 0x0D29B8, 0x0000008 - -gUnk_080D29C0:: @ 080D29C0 - .incbin "baserom.gba", 0x0D29C0, 0x0000020 - -gUnk_080D29E0:: @ 080D29E0 - .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - -gUnk_080D2AB0:: @ 080D2AB0 - .byte 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x00, 0x00, 0x00, 0x00 - -gUnk_080D2ABC:: @ 080D2ABC - .incbin "baserom.gba", 0x0D2ABC, 0x000019C - -gUnk_080D2C58:: @ 080D2C58 - .incbin "baserom.gba", 0x0D2C58, 0x00001CE - -gUnk_080D2E26:: @ 080D2E26 - .incbin "baserom.gba", 0x0D2E26, 0x0000492 - -gUnk_080D32B8:: @ 080D32B8 - .incbin "baserom.gba", 0x0D32B8, 0x0000030 - -gUnk_080D32E8:: @ 080D32E8 - .incbin "baserom.gba", 0x0D32E8, 0x0000020 - -gUnk_080D3308:: @ 080D3308 - .incbin "baserom.gba", 0x0D3308, 0x0000080 - -gUnk_080D3388:: @ 080D3388 - .incbin "baserom.gba", 0x0D3388, 0x0000040 - -gUnk_080D33C8:: @ 080D33C8 - .incbin "baserom.gba", 0x0D33C8, 0x0000090 - -gUnk_080D3458:: @ 080D3458 - .incbin "baserom.gba", 0x0D3458, 0x0000030 - -gUnk_080D3488:: @ 080D3488 - .incbin "baserom.gba", 0x0D3488, 0x0000030 - -gUnk_080D34B8:: @ 080D34B8 - .incbin "baserom.gba", 0x0D34B8, 0x0000020 - -gUnk_080D34D8:: @ 080D34D8 - .incbin "baserom.gba", 0x0D34D8, 0x0000030 - -gUnk_080D3508:: @ 080D3508 - .incbin "baserom.gba", 0x0D3508, 0x0000090 - -gUnk_080D3598:: @ 080D3598 - .incbin "baserom.gba", 0x0D3598, 0x0000040 - -gUnk_080D35D8:: @ 080D35D8 - .incbin "baserom.gba", 0x0D35D8, 0x0000070 - -gUnk_080D3648:: @ 080D3648 - .incbin "baserom.gba", 0x0D3648, 0x0000080 - -gUnk_080D36C8:: @ 080D36C8 - .incbin "baserom.gba", 0x0D36C8, 0x0000020 - -gUnk_080D36E8:: @ 080D36E8 - .incbin "baserom.gba", 0x0D36E8, 0x0000030 - -gUnk_080D3718:: @ 080D3718 - .incbin "baserom.gba", 0x0D3718, 0x0000030 - -gUnk_080D3748:: @ 080D3748 - .incbin "baserom.gba", 0x0D3748, 0x0000020 - -gUnk_080D3768:: @ 080D3768 - .incbin "baserom.gba", 0x0D3768, 0x0000020 - -gUnk_080D3788:: @ 080D3788 - .incbin "baserom.gba", 0x0D3788, 0x0000050 - -gUnk_080D37D8:: @ 080D37D8 - .incbin "baserom.gba", 0x0D37D8, 0x0000020 - -gUnk_080D37F8:: @ 080D37F8 - .incbin "baserom.gba", 0x0D37F8, 0x0000030 - -gUnk_080D3828:: @ 080D3828 - .incbin "baserom.gba", 0x0D3828, 0x0000080 - -gUnk_080D38A8:: @ 080D38A8 - .incbin "baserom.gba", 0x0D38A8, 0x0000030 - -gUnk_080D38D8:: @ 080D38D8 - .incbin "baserom.gba", 0x0D38D8, 0x0000040 - -gUnk_080D3918:: @ 080D3918 - .incbin "baserom.gba", 0x0D3918, 0x0000020 - -gUnk_080D3938:: @ 080D3938 - .incbin "baserom.gba", 0x0D3938, 0x0000017 - -gUnk_080D394F:: @ 080D394F - .incbin "baserom.gba", 0x0D394F, 0x0000029 - -gUnk_080D3978:: @ 080D3978 - .incbin "baserom.gba", 0x0D3978, 0x0000060 - -gUnk_080D39D8:: @ 080D39D8 - .incbin "baserom.gba", 0x0D39D8, 0x0000040 - -gUnk_080D3A18:: @ 080D3A18 - .incbin "baserom.gba", 0x0D3A18, 0x0000050 - -gUnk_080D3A68:: @ 080D3A68 - .incbin "baserom.gba", 0x0D3A68, 0x0000030 - -gUnk_080D3A98:: @ 080D3A98 - .incbin "baserom.gba", 0x0D3A98, 0x0000030 - -gUnk_080D3AC8:: @ 080D3AC8 - .incbin "baserom.gba", 0x0D3AC8, 0x0000020 - -gUnk_080D3AE8:: @ 080D3AE8 - .incbin "baserom.gba", 0x0D3AE8, 0x0000040 - -gUnk_080D3B28:: @ 080D3B28 - .incbin "baserom.gba", 0x0D3B28, 0x0000020 - -gUnk_080D3B48:: @ 080D3B48 - .incbin "baserom.gba", 0x0D3B48, 0x0000040 - -gUnk_080D3B88:: @ 080D3B88 - .incbin "baserom.gba", 0x0D3B88, 0x0000020 - -gUnk_080D3BA8:: @ 080D3BA8 - .incbin "baserom.gba", 0x0D3BA8, 0x0000020 - -gUnk_080D3BC8:: @ 080D3BC8 - .incbin "baserom.gba", 0x0D3BC8, 0x0000020 - -gUnk_080D3BE8:: @ 080D3BE8 - .incbin "baserom.gba", 0x0D3BE8, 0x0000010 diff --git a/data/data_080D1C70.s b/data/data_080D1C70.s new file mode 100644 index 00000000..0f32e4cf --- /dev/null +++ b/data/data_080D1C70.s @@ -0,0 +1,672 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + + +gUnk_080D1C70:: @ 080D1C70 + .incbin "baserom.gba", 0x0D1C70, 0x0000021 + +gUnk_080D1C91:: @ 080D1C91 + .incbin "baserom.gba", 0x0D1C91, 0x000002B + +gUnk_080D1CBC:: @ 080D1CBC + .incbin "baserom.gba", 0x0D1CBC, 0x000000C + +gUnk_080D1CC8:: @ 080D1CC8 + .incbin "baserom.gba", 0x0D1CC8, 0x0000018 + +gUnk_080D1CE0:: @ 080D1CE0 + .incbin "baserom.gba", 0x0D1CE0, 0x0000010 + +gUnk_080D1CF0:: @ 080D1CF0 + .incbin "baserom.gba", 0x0D1CF0, 0x0000009 + +gUnk_080D1CF9:: @ 080D1CF9 + .incbin "baserom.gba", 0x0D1CF9, 0x0000009 + +gUnk_080D1D02:: @ 080D1D02 + .incbin "baserom.gba", 0x0D1D02, 0x0000020 + +gUnk_080D1D22:: @ 080D1D22 + .incbin "baserom.gba", 0x0D1D22, 0x0000001 + +gUnk_080D1D23:: @ 080D1D23 + .incbin "baserom.gba", 0x0D1D23, 0x0000003 + +gUnk_080D1D26:: @ 080D1D26 + .incbin "baserom.gba", 0x0D1D26, 0x0000001 + +gUnk_080D1D27:: @ 080D1D27 + .incbin "baserom.gba", 0x0D1D27, 0x0000005 + +gUnk_080D1D2C:: @ 080D1D2C + .incbin "baserom.gba", 0x0D1D2C, 0x0000008 + +gUnk_080D1D34:: @ 080D1D34 + .incbin "baserom.gba", 0x0D1D34, 0x0000014 + +gUnk_080D1D48:: @ 080D1D48 + .incbin "baserom.gba", 0x0D1D48, 0x0000028 + +gUnk_080D1D70:: @ 080D1D70 + .incbin "baserom.gba", 0x0D1D70, 0x0000008 + +gUnk_080D1D78:: @ 080D1D78 + .incbin "baserom.gba", 0x0D1D78, 0x0000020 + +gUnk_080D1D98:: @ 080D1D98 + .incbin "baserom.gba", 0x0D1D98, 0x0000008 + +gUnk_080D1DA0:: @ 080D1DA0 + .incbin "baserom.gba", 0x0D1DA0, 0x0000028 + +gUnk_080D1DC8:: @ 080D1DC8 + .incbin "baserom.gba", 0x0D1DC8, 0x0000004 + +gUnk_080D1DCC:: @ 080D1DCC + .incbin "baserom.gba", 0x0D1DCC, 0x0000004 + +gUnk_080D1DD0:: @ 080D1DD0 + .incbin "baserom.gba", 0x0D1DD0, 0x000000C + +gUnk_080D1DDC:: @ 080D1DDC + .incbin "baserom.gba", 0x0D1DDC, 0x000000C + +gUnk_080D1DE8:: @ 080D1DE8 + .incbin "baserom.gba", 0x0D1DE8, 0x000001D + +gUnk_080D1E05:: @ 080D1E05 + .incbin "baserom.gba", 0x0D1E05, 0x0000016 + +gUnk_080D1E1B:: @ 080D1E1B + .incbin "baserom.gba", 0x0D1E1B, 0x0000006 + +gUnk_080D1E21:: @ 080D1E21 + .incbin "baserom.gba", 0x0D1E21, 0x0000005 + +gUnk_080D1E26:: @ 080D1E26 + .incbin "baserom.gba", 0x0D1E26, 0x000000C + +gUnk_080D1E32:: @ 080D1E32 + .incbin "baserom.gba", 0x0D1E32, 0x0000012 + +gUnk_080D1E44:: @ 080D1E44 + .incbin "baserom.gba", 0x0D1E44, 0x0000028 + +gUnk_080D1E6C:: @ 080D1E6C + .incbin "baserom.gba", 0x0D1E6C, 0x0000018 + +gUnk_080D1E84:: @ 080D1E84 + .incbin "baserom.gba", 0x0D1E84, 0x0000010 + +gUnk_080D1E94:: @ 080D1E94 + .incbin "baserom.gba", 0x0D1E94, 0x000000C + +gUnk_080D1EA0:: @ 080D1EA0 + .incbin "baserom.gba", 0x0D1EA0, 0x0000016 + +gUnk_080D1EB6:: @ 080D1EB6 + .incbin "baserom.gba", 0x0D1EB6, 0x0000009 + +gUnk_080D1EBF:: @ 080D1EBF + .incbin "baserom.gba", 0x0D1EBF, 0x0000009 + +gUnk_080D1EC8:: @ 080D1EC8 + .incbin "baserom.gba", 0x0D1EC8, 0x0000009 + +gUnk_080D1ED1:: @ 080D1ED1 + .incbin "baserom.gba", 0x0D1ED1, 0x0000009 + +gUnk_080D1EDA:: @ 080D1EDA + .incbin "baserom.gba", 0x0D1EDA, 0x0000009 + +gUnk_080D1EE3:: @ 080D1EE3 + .incbin "baserom.gba", 0x0D1EE3, 0x0000009 + +gUnk_080D1EEC:: @ 080D1EEC + .incbin "baserom.gba", 0x0D1EEC, 0x0000009 + +gUnk_080D1EF5:: @ 080D1EF5 + .incbin "baserom.gba", 0x0D1EF5, 0x0000009 + +gUnk_080D1EFE:: @ 080D1EFE + .incbin "baserom.gba", 0x0D1EFE, 0x0000004 + +gUnk_080D1F02:: @ 080D1F02 + .incbin "baserom.gba", 0x0D1F02, 0x0000004 + +gUnk_080D1F06:: @ 080D1F06 + .incbin "baserom.gba", 0x0D1F06, 0x0000004 + +gUnk_080D1F0A:: @ 080D1F0A + .incbin "baserom.gba", 0x0D1F0A, 0x0000004 + +gUnk_080D1F0E:: @ 080D1F0E + .incbin "baserom.gba", 0x0D1F0E, 0x0000004 + +gUnk_080D1F12:: @ 080D1F12 + .incbin "baserom.gba", 0x0D1F12, 0x0000004 + +gUnk_080D1F16:: @ 080D1F16 + .incbin "baserom.gba", 0x0D1F16, 0x0000004 + +gUnk_080D1F1A:: @ 080D1F1A + .incbin "baserom.gba", 0x0D1F1A, 0x0000006 + +gUnk_080D1F20:: @ 080D1F20 + .incbin "baserom.gba", 0x0D1F20, 0x0000014 + +gUnk_080D1F34:: @ 080D1F34 + .incbin "baserom.gba", 0x0D1F34, 0x0000030 + +gUnk_080D1F64:: @ 080D1F64 + .incbin "baserom.gba", 0x0D1F64, 0x0000018 + +gUnk_080D1F7C:: @ 080D1F7C + .incbin "baserom.gba", 0x0D1F7C, 0x0000014 + +gUnk_080D1F90:: @ 080D1F90 + .incbin "baserom.gba", 0x0D1F90, 0x0000080 + +gUnk_080D2010:: @ 080D2010 + .incbin "baserom.gba", 0x0D2010, 0x0000020 + +gUnk_080D2030:: @ 080D2030 + .incbin "baserom.gba", 0x0D2030, 0x0000020 + +gUnk_080D2050:: @ 080D2050 + .incbin "baserom.gba", 0x0D2050, 0x0000014 + +gUnk_080D2064:: @ 080D2064 + .incbin "baserom.gba", 0x0D2064, 0x0000014 + +gUnk_080D2078:: @ 080D2078 + .incbin "baserom.gba", 0x0D2078, 0x0000014 + +gUnk_080D208C:: @ 080D208C + .incbin "baserom.gba", 0x0D208C, 0x0000014 + +gUnk_080D20A0:: @ 080D20A0 + .incbin "baserom.gba", 0x0D20A0, 0x0000014 + +gUnk_080D20B4:: @ 080D20B4 + .incbin "baserom.gba", 0x0D20B4, 0x0000014 + +gUnk_080D20C8:: @ 080D20C8 + .incbin "baserom.gba", 0x0D20C8, 0x0000014 + +gUnk_080D20DC:: @ 080D20DC + .incbin "baserom.gba", 0x0D20DC, 0x0000014 + +gUnk_080D20F0:: @ 080D20F0 + .incbin "baserom.gba", 0x0D20F0, 0x0000014 + +gUnk_080D2104:: @ 080D2104 + .incbin "baserom.gba", 0x0D2104, 0x0000014 + +gUnk_080D2118:: @ 080D2118 + .incbin "baserom.gba", 0x0D2118, 0x0000014 + +gUnk_080D212C:: @ 080D212C + .incbin "baserom.gba", 0x0D212C, 0x0000014 + +gUnk_080D2140:: @ 080D2140 + .incbin "baserom.gba", 0x0D2140, 0x0000014 + +gUnk_080D2154:: @ 080D2154 + .incbin "baserom.gba", 0x0D2154, 0x0000014 + +gUnk_080D2168:: @ 080D2168 + .incbin "baserom.gba", 0x0D2168, 0x0000014 + +gUnk_080D217C:: @ 080D217C + .incbin "baserom.gba", 0x0D217C, 0x0000014 + +gUnk_080D2190:: @ 080D2190 + .incbin "baserom.gba", 0x0D2190, 0x0000029 + +gUnk_080D21B9:: @ 080D21B9 + .incbin "baserom.gba", 0x0D21B9, 0x0000029 + +gUnk_080D21E2:: @ 080D21E2 + .incbin "baserom.gba", 0x0D21E2, 0x0000029 + +gUnk_080D220B:: @ 080D220B + .incbin "baserom.gba", 0x0D220B, 0x0000029 + +gUnk_080D2234:: @ 080D2234 + .incbin "baserom.gba", 0x0D2234, 0x0000010 + +gUnk_080D2244:: @ 080D2244 + .incbin "baserom.gba", 0x0D2244, 0x0000010 + +gUnk_080D2254:: @ 080D2254 + .incbin "baserom.gba", 0x0D2254, 0x0000010 + +gUnk_080D2264:: @ 080D2264 + .incbin "baserom.gba", 0x0D2264, 0x0000010 + +gUnk_080D2274:: @ 080D2274 + .incbin "baserom.gba", 0x0D2274, 0x0000064 + +gUnk_080D22D8:: @ 080D22D8 + .incbin "baserom.gba", 0x0D22D8, 0x0000018 + +gUnk_080D22F0:: @ 080D22F0 + .incbin "baserom.gba", 0x0D22F0, 0x0000010 + +gUnk_080D2300:: @ 080D2300 + .incbin "baserom.gba", 0x0D2300, 0x0000048 + +gUnk_080D2348:: @ 080D2348 + .incbin "baserom.gba", 0x0D2348, 0x0000020 + +gUnk_080D2368:: @ 080D2368 + .incbin "baserom.gba", 0x0D2368, 0x0000011 + +gUnk_080D2379:: @ 080D2379 + .incbin "baserom.gba", 0x0D2379, 0x0000011 + +gUnk_080D238A:: @ 080D238A + .incbin "baserom.gba", 0x0D238A, 0x0000011 + +gUnk_080D239B:: @ 080D239B + .incbin "baserom.gba", 0x0D239B, 0x0000011 + +gUnk_080D23AC:: @ 080D23AC + .incbin "baserom.gba", 0x0D23AC, 0x0000011 + +gUnk_080D23BD:: @ 080D23BD + .incbin "baserom.gba", 0x0D23BD, 0x0000011 + +gUnk_080D23CE:: @ 080D23CE + .incbin "baserom.gba", 0x0D23CE, 0x0000011 + +gUnk_080D23DF:: @ 080D23DF + .incbin "baserom.gba", 0x0D23DF, 0x0000011 + +gUnk_080D23F0:: @ 080D23F0 + .incbin "baserom.gba", 0x0D23F0, 0x0000011 + +gUnk_080D2401:: @ 080D2401 + .incbin "baserom.gba", 0x0D2401, 0x0000011 + +gUnk_080D2412:: @ 080D2412 + .incbin "baserom.gba", 0x0D2412, 0x0000011 + +gUnk_080D2423:: @ 080D2423 + .incbin "baserom.gba", 0x0D2423, 0x0000011 + +gUnk_080D2434:: @ 080D2434 + .incbin "baserom.gba", 0x0D2434, 0x0000011 + +gUnk_080D2445:: @ 080D2445 + .incbin "baserom.gba", 0x0D2445, 0x0000011 + +gUnk_080D2456:: @ 080D2456 + .incbin "baserom.gba", 0x0D2456, 0x0000011 + +gUnk_080D2467:: @ 080D2467 + .incbin "baserom.gba", 0x0D2467, 0x0000011 + +gUnk_080D2478:: @ 080D2478 + .incbin "baserom.gba", 0x0D2478, 0x0000011 + +gUnk_080D2489:: @ 080D2489 + .incbin "baserom.gba", 0x0D2489, 0x0000011 + +gUnk_080D249A:: @ 080D249A + .incbin "baserom.gba", 0x0D249A, 0x0000011 + +gUnk_080D24AB:: @ 080D24AB + .incbin "baserom.gba", 0x0D24AB, 0x0000011 + +gUnk_080D24BC:: @ 080D24BC + .incbin "baserom.gba", 0x0D24BC, 0x0000011 + +gUnk_080D24CD:: @ 080D24CD + .incbin "baserom.gba", 0x0D24CD, 0x0000011 + +gUnk_080D24DE:: @ 080D24DE + .incbin "baserom.gba", 0x0D24DE, 0x0000011 + +gUnk_080D24EF:: @ 080D24EF + .incbin "baserom.gba", 0x0D24EF, 0x0000011 + +gUnk_080D2500:: @ 080D2500 + .incbin "baserom.gba", 0x0D2500, 0x0000011 + +gUnk_080D2511:: @ 080D2511 + .incbin "baserom.gba", 0x0D2511, 0x0000011 + +gUnk_080D2522:: @ 080D2522 + .incbin "baserom.gba", 0x0D2522, 0x0000011 + +gUnk_080D2533:: @ 080D2533 + .incbin "baserom.gba", 0x0D2533, 0x0000011 + +gUnk_080D2544:: @ 080D2544 + .incbin "baserom.gba", 0x0D2544, 0x0000011 + +gUnk_080D2555:: @ 080D2555 + .incbin "baserom.gba", 0x0D2555, 0x0000011 + +gUnk_080D2566:: @ 080D2566 + .incbin "baserom.gba", 0x0D2566, 0x0000011 + +gUnk_080D2577:: @ 080D2577 + .incbin "baserom.gba", 0x0D2577, 0x0000011 + +gUnk_080D2588:: @ 080D2588 + .incbin "baserom.gba", 0x0D2588, 0x0000011 + +gUnk_080D2599:: @ 080D2599 + .incbin "baserom.gba", 0x0D2599, 0x0000011 + +gUnk_080D25AA:: @ 080D25AA + .incbin "baserom.gba", 0x0D25AA, 0x0000011 + +gUnk_080D25BB:: @ 080D25BB + .incbin "baserom.gba", 0x0D25BB, 0x0000011 + +gUnk_080D25CC:: @ 080D25CC + .incbin "baserom.gba", 0x0D25CC, 0x0000011 + +gUnk_080D25DD:: @ 080D25DD + .incbin "baserom.gba", 0x0D25DD, 0x0000011 + +gUnk_080D25EE:: @ 080D25EE + .incbin "baserom.gba", 0x0D25EE, 0x0000011 + +gUnk_080D25FF:: @ 080D25FF + .incbin "baserom.gba", 0x0D25FF, 0x0000011 + +gUnk_080D2610:: @ 080D2610 + .incbin "baserom.gba", 0x0D2610, 0x0000011 + +gUnk_080D2621:: @ 080D2621 + .incbin "baserom.gba", 0x0D2621, 0x0000011 + +gUnk_080D2632:: @ 080D2632 + .incbin "baserom.gba", 0x0D2632, 0x0000011 + +gUnk_080D2643:: @ 080D2643 + .incbin "baserom.gba", 0x0D2643, 0x0000011 + +gUnk_080D2654:: @ 080D2654 + .incbin "baserom.gba", 0x0D2654, 0x0000011 + +gUnk_080D2665:: @ 080D2665 + .incbin "baserom.gba", 0x0D2665, 0x0000011 + +gUnk_080D2676:: @ 080D2676 + .incbin "baserom.gba", 0x0D2676, 0x0000011 + +gUnk_080D2687:: @ 080D2687 + .incbin "baserom.gba", 0x0D2687, 0x0000011 + +gUnk_080D2698:: @ 080D2698 + .incbin "baserom.gba", 0x0D2698, 0x0000011 + +gUnk_080D26A9:: @ 080D26A9 + .incbin "baserom.gba", 0x0D26A9, 0x0000011 + +gUnk_080D26BA:: @ 080D26BA + .incbin "baserom.gba", 0x0D26BA, 0x0000011 + +gUnk_080D26CB:: @ 080D26CB + .incbin "baserom.gba", 0x0D26CB, 0x0000011 + +gUnk_080D26DC:: @ 080D26DC + .incbin "baserom.gba", 0x0D26DC, 0x0000011 + +gUnk_080D26ED:: @ 080D26ED + .incbin "baserom.gba", 0x0D26ED, 0x0000011 + +gUnk_080D26FE:: @ 080D26FE + .incbin "baserom.gba", 0x0D26FE, 0x0000011 + +gUnk_080D270F:: @ 080D270F + .incbin "baserom.gba", 0x0D270F, 0x0000011 + +gUnk_080D2720:: @ 080D2720 + .incbin "baserom.gba", 0x0D2720, 0x0000011 + +gUnk_080D2731:: @ 080D2731 + .incbin "baserom.gba", 0x0D2731, 0x0000011 + +gUnk_080D2742:: @ 080D2742 + .incbin "baserom.gba", 0x0D2742, 0x0000011 + +gUnk_080D2753:: @ 080D2753 + .incbin "baserom.gba", 0x0D2753, 0x0000011 + +gUnk_080D2764:: @ 080D2764 + .incbin "baserom.gba", 0x0D2764, 0x0000011 + +gUnk_080D2775:: @ 080D2775 + .incbin "baserom.gba", 0x0D2775, 0x0000011 + +gUnk_080D2786:: @ 080D2786 + .incbin "baserom.gba", 0x0D2786, 0x0000011 + +gUnk_080D2797:: @ 080D2797 + .incbin "baserom.gba", 0x0D2797, 0x0000011 + +gUnk_080D27A8:: @ 080D27A8 + .incbin "baserom.gba", 0x0D27A8, 0x0000104 + +gUnk_080D28AC:: @ 080D28AC + .incbin "baserom.gba", 0x0D28AC, 0x0000020 + +gUnk_080D28CC:: @ 080D28CC + .incbin "baserom.gba", 0x0D28CC, 0x0000010 + +gUnk_080D28DC:: @ 080D28DC + .incbin "baserom.gba", 0x0D28DC, 0x0000008 + +gUnk_080D28E4:: @ 080D28E4 + .incbin "baserom.gba", 0x0D28E4, 0x0000008 + +gUnk_080D28EC:: @ 080D28EC + .incbin "baserom.gba", 0x0D28EC, 0x0000008 + +gUnk_080D28F4:: @ 080D28F4 + .incbin "baserom.gba", 0x0D28F4, 0x0000008 + +gUnk_080D28FC:: @ 080D28FC + .incbin "baserom.gba", 0x0D28FC, 0x0000008 + +gUnk_080D2904:: @ 080D2904 + .incbin "baserom.gba", 0x0D2904, 0x0000008 + +gUnk_080D290C:: @ 080D290C + .incbin "baserom.gba", 0x0D290C, 0x0000008 + +gUnk_080D2914:: @ 080D2914 + .incbin "baserom.gba", 0x0D2914, 0x0000008 + +gUnk_080D291C:: @ 080D291C + .incbin "baserom.gba", 0x0D291C, 0x0000011 + +gUnk_080D292D:: @ 080D292D + .incbin "baserom.gba", 0x0D292D, 0x0000011 + +gUnk_080D293E:: @ 080D293E + .incbin "baserom.gba", 0x0D293E, 0x000000C + +gUnk_080D294A:: @ 080D294A + .incbin "baserom.gba", 0x0D294A, 0x0000005 + +gUnk_080D294F:: @ 080D294F + .incbin "baserom.gba", 0x0D294F, 0x0000011 + +gUnk_080D2960:: @ 080D2960 + .incbin "baserom.gba", 0x0D2960, 0x0000014 + +gUnk_080D2974:: @ 080D2974 + .incbin "baserom.gba", 0x0D2974, 0x0000014 + +gUnk_080D2988:: @ 080D2988 + .incbin "baserom.gba", 0x0D2988, 0x0000008 + +gUnk_080D2990:: @ 080D2990 + .incbin "baserom.gba", 0x0D2990, 0x0000018 + +gUnk_080D29A8:: @ 080D29A8 + .incbin "baserom.gba", 0x0D29A8, 0x0000010 + +gUnk_080D29B8:: @ 080D29B8 + .incbin "baserom.gba", 0x0D29B8, 0x0000008 + +gUnk_080D29C0:: @ 080D29C0 + .incbin "baserom.gba", 0x0D29C0, 0x0000020 + +gUnk_080D29E0:: @ 080D29E0 + .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + +gUnk_080D2AB0:: @ 080D2AB0 + .byte 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x00, 0x00, 0x00, 0x00 + +gUnk_080D2ABC:: @ 080D2ABC + .incbin "baserom.gba", 0x0D2ABC, 0x000019C + +gUnk_080D2C58:: @ 080D2C58 + .incbin "baserom.gba", 0x0D2C58, 0x00001CE + +gUnk_080D2E26:: @ 080D2E26 + .incbin "baserom.gba", 0x0D2E26, 0x0000492 + +gUnk_080D32B8:: @ 080D32B8 + .incbin "baserom.gba", 0x0D32B8, 0x0000030 + +gUnk_080D32E8:: @ 080D32E8 + .incbin "baserom.gba", 0x0D32E8, 0x0000020 + +gUnk_080D3308:: @ 080D3308 + .incbin "baserom.gba", 0x0D3308, 0x0000080 + +gUnk_080D3388:: @ 080D3388 + .incbin "baserom.gba", 0x0D3388, 0x0000040 + +gUnk_080D33C8:: @ 080D33C8 + .incbin "baserom.gba", 0x0D33C8, 0x0000090 + +gUnk_080D3458:: @ 080D3458 + .incbin "baserom.gba", 0x0D3458, 0x0000030 + +gUnk_080D3488:: @ 080D3488 + .incbin "baserom.gba", 0x0D3488, 0x0000030 + +gUnk_080D34B8:: @ 080D34B8 + .incbin "baserom.gba", 0x0D34B8, 0x0000020 + +gUnk_080D34D8:: @ 080D34D8 + .incbin "baserom.gba", 0x0D34D8, 0x0000030 + +gUnk_080D3508:: @ 080D3508 + .incbin "baserom.gba", 0x0D3508, 0x0000090 + +gUnk_080D3598:: @ 080D3598 + .incbin "baserom.gba", 0x0D3598, 0x0000040 + +gUnk_080D35D8:: @ 080D35D8 + .incbin "baserom.gba", 0x0D35D8, 0x0000070 + +gUnk_080D3648:: @ 080D3648 + .incbin "baserom.gba", 0x0D3648, 0x0000080 + +gUnk_080D36C8:: @ 080D36C8 + .incbin "baserom.gba", 0x0D36C8, 0x0000020 + +gUnk_080D36E8:: @ 080D36E8 + .incbin "baserom.gba", 0x0D36E8, 0x0000030 + +gUnk_080D3718:: @ 080D3718 + .incbin "baserom.gba", 0x0D3718, 0x0000030 + +gUnk_080D3748:: @ 080D3748 + .incbin "baserom.gba", 0x0D3748, 0x0000020 + +gUnk_080D3768:: @ 080D3768 + .incbin "baserom.gba", 0x0D3768, 0x0000020 + +gUnk_080D3788:: @ 080D3788 + .incbin "baserom.gba", 0x0D3788, 0x0000050 + +gUnk_080D37D8:: @ 080D37D8 + .incbin "baserom.gba", 0x0D37D8, 0x0000020 + +gUnk_080D37F8:: @ 080D37F8 + .incbin "baserom.gba", 0x0D37F8, 0x0000030 + +gUnk_080D3828:: @ 080D3828 + .incbin "baserom.gba", 0x0D3828, 0x0000080 + +gUnk_080D38A8:: @ 080D38A8 + .incbin "baserom.gba", 0x0D38A8, 0x0000030 + +gUnk_080D38D8:: @ 080D38D8 + .incbin "baserom.gba", 0x0D38D8, 0x0000040 + +gUnk_080D3918:: @ 080D3918 + .incbin "baserom.gba", 0x0D3918, 0x0000020 + +gUnk_080D3938:: @ 080D3938 + .incbin "baserom.gba", 0x0D3938, 0x0000017 + +gUnk_080D394F:: @ 080D394F + .incbin "baserom.gba", 0x0D394F, 0x0000029 + +gUnk_080D3978:: @ 080D3978 + .incbin "baserom.gba", 0x0D3978, 0x0000060 + +gUnk_080D39D8:: @ 080D39D8 + .incbin "baserom.gba", 0x0D39D8, 0x0000040 + +gUnk_080D3A18:: @ 080D3A18 + .incbin "baserom.gba", 0x0D3A18, 0x0000050 + +gUnk_080D3A68:: @ 080D3A68 + .incbin "baserom.gba", 0x0D3A68, 0x0000030 + +gUnk_080D3A98:: @ 080D3A98 + .incbin "baserom.gba", 0x0D3A98, 0x0000030 + +gUnk_080D3AC8:: @ 080D3AC8 + .incbin "baserom.gba", 0x0D3AC8, 0x0000020 + +gUnk_080D3AE8:: @ 080D3AE8 + .incbin "baserom.gba", 0x0D3AE8, 0x0000040 + +gUnk_080D3B28:: @ 080D3B28 + .incbin "baserom.gba", 0x0D3B28, 0x0000020 + +gUnk_080D3B48:: @ 080D3B48 + .incbin "baserom.gba", 0x0D3B48, 0x0000040 + +gUnk_080D3B88:: @ 080D3B88 + .incbin "baserom.gba", 0x0D3B88, 0x0000020 + +gUnk_080D3BA8:: @ 080D3BA8 + .incbin "baserom.gba", 0x0D3BA8, 0x0000020 + +gUnk_080D3BC8:: @ 080D3BC8 + .incbin "baserom.gba", 0x0D3BC8, 0x0000020 + +gUnk_080D3BE8:: @ 080D3BE8 + .incbin "baserom.gba", 0x0D3BE8, 0x0000010 diff --git a/data/playerItemFunctions.s b/data/playerItemFunctions.s index 6d135e35..5626573b 100644 --- a/data/playerItemFunctions.s +++ b/data/playerItemFunctions.s @@ -26,7 +26,7 @@ /*0x11*/ .4byte Item11 /*0x12*/ .4byte sub_080700E8 /*0x13*/ .4byte sub_080ACF14 -/*0x14*/ .4byte sub_0805FBD0 +/*0x14*/ .4byte Item14 /*0x15*/ .4byte sub_080A306C /*0x16*/ .4byte SwordBeam /*0x17*/ .4byte NulledItem @@ -53,7 +53,7 @@ .4byte Item11 .4byte sub_080700E8 .4byte sub_080ACF14 -.4byte sub_0805FBD0 +.4byte Item14 .4byte sub_080A306C .4byte SwordBeam .4byte NulledItem diff --git a/include/entity.h b/include/entity.h index a90ca7c9..7972bd96 100644 --- a/include/entity.h +++ b/include/entity.h @@ -50,10 +50,10 @@ typedef struct Entity { /* */ } PACKED b; /* */ } PACKED spriteSettings; /*0x19*/ struct { - /* */ u8 b0 : 2; // 1-2 - /* */ u8 alphaBlend : 2; // 4-8 - /* */ u8 b2 : 2; //0x10 - /* */ u8 b3 : 2; //0x40 + /* */ u32 b0 : 2; // 1-2 + /* */ u32 alphaBlend : 2; // 4-8 + /* */ u32 b2 : 2; //0x10 + /* */ u32 b3 : 2; //0x40 /* */ } PACKED spriteRendering; /*0x1a*/ union { /* */ u8 raw; @@ -63,9 +63,9 @@ typedef struct Entity { /* */ } PACKED b; /* */} PACKED palette; /*0x1b*/ struct { - /* */ u8 b0 : 4; - /* */ u8 flipX : 2; //0x10 - /* */ u8 flipY : 2; //0x40 + /* */ u32 b0 : 1; + /* */ u32 b1 : 5; //0x10 + /* */ u32 flipY : 2; //0x40 /* */ } PACKED spriteOrientation; /*0x1c*/ u8 field_0x1c; /*0x1d*/ u8 field_0x1d; diff --git a/include/functions.h b/include/functions.h index 1a7a87d7..37bbebeb 100644 --- a/include/functions.h +++ b/include/functions.h @@ -270,4 +270,22 @@ extern u32 sub_0800442E(Entity*); extern void sub_08081404(Entity*, u32); extern void sub_0807B7D8(u32, u32, u32); extern void sub_08052D74(void*, void*, void*); +extern void sub_0800451C(Entity*); +extern u32 sub_080002F0(u32, u32, u32); +extern u32 sub_080040D8(Entity*, u8*, s32, s32); +extern void sub_08053320(); +extern void sub_0801D79C(u32, u32); +extern u32 sub_0805F8F8(u32); +extern void sub_08002724(void*, u8*); +extern void sub_080026C4(u8*, u8*, u8*, u32); +extern void sub_080026F2(u8*, void*, u8*, u32); +extern u32 sub_0805F7A0(u32); +extern u32* sub_0805F25C(u32); +extern u32 sub_080045DA(s32, s32); +u32 sub_0806FCB8(Entity*, u32, u32, u32); +extern Entity* sub_080A7EE0(u32); +extern void sub_080A1D70(Entity*, u32); +extern void sub_0806F62C(Entity*, u32, u32); +extern u32 sub_08079F8C(void); +extern void sub_080A1ED0(u32, u32, u32); #endif diff --git a/include/global.h b/include/global.h index ad4b9daa..3b2e0446 100644 --- a/include/global.h +++ b/include/global.h @@ -47,6 +47,8 @@ #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) >= (b) ? (a) : (b)) +#define static_assert(cond) extern char assertion[(cond) ? 1 : -1] + typedef union { s32 WORD; struct { @@ -74,4 +76,6 @@ union SplitHWord { } PACKED HALF; } PACKED; + + #endif // GUARD_GLOBAL_H diff --git a/include/main.h b/include/main.h index be532570..7fa87211 100644 --- a/include/main.h +++ b/include/main.h @@ -50,6 +50,7 @@ typedef struct { /*0x0A*/ u16 fadeInTime; /*0x0C*/ u8 fillerC[0x3A8]; } UI; +static_assert(sizeof(UI) == 0x3b4); extern Main gUnk_03001000; extern UI gUnk_02032EC0; diff --git a/include/menu.h b/include/menu.h index 765c0b8b..1203978e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -29,15 +29,17 @@ typedef struct { u16 transitionTimer; u16 field_0xa; u8* field_0xc; - u8 unk10[2]; + u8 focusCoords[2]; u8 field_0x12; u8 unk13; - u8 filler14[0x2]; + u8 unk14; + u8 unk15; u8 unk16; u8 filler17[0x13]; u8 unk2a; int field_0x2c; } Menu; +static_assert(sizeof(Menu) == 0x30); extern Menu gMenu; diff --git a/include/player.h b/include/player.h index 0d604dbd..0520cd61 100644 --- a/include/player.h +++ b/include/player.h @@ -47,7 +47,8 @@ typedef struct { /* */ u32 filler11b : 16; /* */ } PACKED b; /* */ } flags; - /*0x34*/ u8 field_0x34[4]; + /*0x34*/ u8 field_0x34[2]; + /*0x36*/ s16 field_0x36; /*0x38*/ u8 field_0x38; /*0x39*/ u8 field_0x39; /*0x3a*/ u16 field_0x3a; @@ -62,7 +63,10 @@ typedef struct { /*0x8b*/ u8 field_0x8b; /*0x8c*/ u32 field_0x8c; /*0x90*/ union SplitWord field_0x90; - /*0x94*/ u32 field_0x94[5]; + /*0x94*/ u32 field_0x94; + /*0x98*/ u16 field_0x98; + /*0x9a*/ u16 field_0x9a; + /*0x9c*/ u32 field_0x9c[3]; /*0xa8*/ u8 field_0xa8; /*0xa9*/ u8 field_0xa9; /*0xaa*/ u8 field_0xaa; diff --git a/include/structures.h b/include/structures.h index b6d348a9..bced40db 100644 --- a/include/structures.h +++ b/include/structures.h @@ -174,4 +174,21 @@ typedef struct { } data; } Dialog; +typedef struct { + u8 filler0[0x29C]; + u16 unk29C; + u8 filler29E[0x562]; +} BGBuffer; +extern BGBuffer gBG0Buffer; +extern BGBuffer gBG1Buffer; +static_assert(sizeof(BGBuffer) == 0x800); + +/* +typedef struct { + u16 filler0[0x800]; +} BG3Buffer; +extern BG3Buffer gBG3Buffer; +static_assert(sizeof(BG3Buffer) == 0x1000); +*/ + #endif diff --git a/linker.ld b/linker.ld index 0a1b0159..096fd008 100644 --- a/linker.ld +++ b/linker.ld @@ -26,7 +26,7 @@ SECTIONS { . = 0x00000D00; gUnk_02000D00 = .; . = 0x00001A00; gUnk_02001A00 = .; . = 0x00001A3C; gUnk_02001A3C = .; - . = 0x00001A40; gUnk_02001A40 = .; + . = 0x00001A40; gBG3Buffer = .; . = 0x00001B40; gUnk_02001B40 = .; . = 0x00002A40; gUnk_02002A40 = .; . = 0x00002AA0; gUnk_02002AA0 = .; @@ -79,7 +79,7 @@ SECTIONS { . = 0x00021EE0; gUnk_02021EE0 = .; . = 0x00021F00; gUnk_02021F00 = .; . = 0x00021F20; gUnk_02021F20 = .; - . = 0x00021F30; gUnk_02021F30 = .; + . = 0x00021F30; gBG1Buffer = .; . = 0x00021F70; gUnk_02021F70 = .; . = 0x00022030; gUnk_02022030 = .; . = 0x00022130; gUnk_02022130 = .; @@ -126,7 +126,7 @@ SECTIONS { . = 0x000344A0; gUnk_020344A0 = .; . = 0x000344B0; gUnk_020344B0 = .; . = 0x000344F0; gUnk_020344F0 = .; - . = 0x00034CB0; gUnk_02034CB0 = .; + . = 0x00034CB0; gBG0Buffer = .; . = 0x00034CB2; gUnk_02034CB2 = .; . = 0x00034CF0; gUnk_02034CF0 = .; . = 0x00034D30; gUnk_02034D30 = .; @@ -424,7 +424,7 @@ SECTIONS { asm/enemy5A.o(.text); asm/businessScrubPrologue.o(.text); asm/gyorgFemale.o(.text); - asm/gyorgMale.o(.text); + src/enemy/gyorgMale.o(.text); asm/curtain.o(.text); asm/enemy5F.o(.text); asm/gyorgChild.o(.text); @@ -534,7 +534,11 @@ SECTIONS { asm/code_0805E3B0.o(.text); asm/getEmptyEntity.o(.text); src/entity.o(.text); + src/code_0805EC04.o(.text); asm/code_0805EC04.o(.text); + src/code_0805F9A0.o(.text); + src/screenDebug.o(.text); + src/item14.o(.text); /* npcs */ src/npc/gentari.o(.text); src/npc/festari.o(.text); @@ -980,6 +984,8 @@ SECTIONS { data/data_080D015C.o(.rodata); src/enemy/lakituCloud.o(.rodata); data/data_080D0448.o(.rodata); + src/enemy/gyorgMale.o(.rodata); + data/data_080D1C70.o(.rodata); src/enemy.o(.rodata); data/data_080D3D94.o(.rodata); data/entity_headers.o(.rodata); diff --git a/src/chooseFile.c b/src/chooseFile.c index 5a36de17..682606af 100644 --- a/src/chooseFile.c +++ b/src/chooseFile.c @@ -38,14 +38,6 @@ typedef struct { extern struct_020227E8 gUnk_020227E8; -typedef struct { - u8 filler0[0x29C]; - u16 unk29C; - u8 filler29E[0x562]; -} struct_02034CB0; - -extern struct_02034CB0 gUnk_02034CB0; -extern struct_02034CB0 gUnk_02021F30; extern SaveFile gSaveFiles[]; extern u32 gUsedPalettes; extern u8 gUnk_02000D00[]; @@ -96,7 +88,7 @@ void sub_08050318(u32 arg0, u32 arg1) { void sub_08050384(void) { sub_0801C4A0(0, 0); - _DmaZero(&gUnk_02034CB0, sizeof(gUnk_02034CB0)); + _DmaZero(&gBG0Buffer, sizeof(gBG0Buffer)); gScreen.bg.bg3Control = 1; } @@ -108,8 +100,8 @@ void sub_080503A8(u32 gfxGroup) { void sub_080503BC(u8 state) { gUnk_02032EC0.state = state; - _DmaZero(&gUnk_02034CB0, sizeof(gUnk_02034CB0)); - _DmaZero(&gUnk_02021F30, sizeof(gUnk_02021F30)); + _DmaZero(&gBG0Buffer, sizeof(gBG0Buffer)); + _DmaZero(&gBG1Buffer, sizeof(gBG1Buffer)); } void sub_080503E4(u32 saveFileId) { @@ -483,9 +475,9 @@ void sub_08050B3C(u16*); void sub_08050AFC(u32 saveFileId) { sub_0805041C(saveFileId); - _DmaZero(&gUnk_02021F30, sizeof(gUnk_02021F30)); + _DmaZero(&gBG1Buffer, sizeof(gBG1Buffer)); if (gUnk_02019EE0.unk8[saveFileId] == 1) { - sub_08050B3C(&gUnk_02021F30.unk29C); + sub_08050B3C(&gBG1Buffer.unk29C); } gScreen.bg.bg2yOffset = 1; } diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c new file mode 100644 index 00000000..3033de51 --- /dev/null +++ b/src/code_0805EC04.c @@ -0,0 +1,107 @@ +#include "entity.h" +#include "player.h" + +typedef struct { + u16 unk0; + u16 unk2; + u16 unk4; + u8 unk6; + u8 unk7; +} VStruct; + +typedef struct { + u8 filler[0x420]; + VStruct unk[0x100]; +} UStruct; + +extern UStruct gUnk_03000000; + +bool32 sub_0805EC04(Entity* this) { + u32 i = 1; + UStruct* temp = &gUnk_03000000; + u32 j = 1; + for (; i < 0x20; i++) { + if (temp->unk[i].unk6 == 0) { + temp->unk[i].unk6 = j; + this->spriteOrientation.b1 = i; + this->spriteRendering.b0 |= j; + return TRUE; + } + } + return FALSE; +} + +void sub_0805EC60(Entity* this) { + u8 temp; + UStruct* temp2; + + if (this->spriteRendering.b0 != 0) { + this->spriteRendering.b0 = 0; + temp = this->spriteOrientation.b1; + this->spriteOrientation.b1 = 0; + temp2 = &gUnk_03000000; + temp2->unk[temp].unk6 = 0; + } +} + +NAKED +bool32 sub_0805EC9C(Entity* ent, u32 param_2, u32 param_3, u32 param_4) { + asm_unified("\ + push {r4, r5, r6, r7, lr} \n\ + adds r4, r0, #0 \n\ + adds r5, r1, #0 \n\ + adds r6, r2, #0 \n\ + adds r7, r3, #0 \n\ + ldrb r0, [r4, #0x1b] \n\ + lsls r0, r0, #0x1a \n\ + lsrs r0, r0, #0x1b \n\ + cmp r0, #0 \n\ + bne _0805ECBE \n\ + adds r0, r4, #0 \n\ + bl sub_0805EC04 \n\ + cmp r0, #0 \n\ + bne _0805ECBE \n\ + movs r0, #0 \n\ + b _0805ECE0 \n\ +_0805ECBE: \n\ + ldr r1, _0805ECE4 @ =gUnk_03000000 \n\ + ldr r0, _0805ECE8 @ =0x00000427 \n\ + adds r2, r1, r0 \n\ + movs r0, #1 \n\ + strb r0, [r2] \n\ + ldrb r0, [r4, #0x1b] \n\ + lsls r0, r0, #0x1a \n\ + lsrs r0, r0, #0x1b \n\ + lsls r0, r0, #3 \n\ + movs r2, #0x84 \n\ + lsls r2, r2, #3 \n\ + adds r1, r1, r2 \n\ + adds r0, r0, r1 \n\ + strh r5, [r0] \n\ + strh r6, [r0, #2] \n\ + strh r7, [r0, #4] \n\ + movs r0, #1 \n\ +_0805ECE0: \n\ + pop {r4, r5, r6, r7, pc} \n\ + .align 2, 0 \n\ +_0805ECE4: .4byte gUnk_03000000 \n\ +_0805ECE8: .4byte 0x00000427 \n\ + "); +} + +void sub_0805ECEC(int param_1, u32 param_2, u32 param_3, u32 param_4) { + u16* temp; + + gUnk_03000000.unk[0].unk7 = 1; + + temp = &gUnk_03000000.unk[param_1].unk0; + temp[0] = param_2; + temp[1] = param_3; + temp[2] = param_4; +} + +void sub_0805ED14(u32 param_1) { + gPlayerState.field_0x9c[0] = param_1; + gPlayerState.field_0x98 = 0; + gPlayerState.field_0x9a = 0; +} \ No newline at end of file diff --git a/src/code_0805F9A0.c b/src/code_0805F9A0.c new file mode 100644 index 00000000..1514df6a --- /dev/null +++ b/src/code_0805F9A0.c @@ -0,0 +1,169 @@ +#include "global.h" +#include "functions.h" +#include "structures.h" + +extern u16 gUnk_081092D4; +extern u8 gUnk_02036AD8; +extern u8 gUnk_081094CE; +extern u8 gUnk_02036A58; +extern void* gUnk_081092AC[]; + +typedef struct { + u8 filler0[12][16]; +} VStruct; + +extern VStruct gUnk_0810942E[]; +extern u32 gUnk_0810926C[]; + +typedef struct { + u8 unk0; + u8 unk1; +} UStruct; + +typedef struct { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u16 unk4; + u16 unk6; + void* unk8; +} WStruct; + +void sub_0805F820(WStruct* r0, u32* r1); + +u32 sub_0805F7DC(u32 r0, WStruct* r1) { + u32 temp; + u32 temp2; + u32* offset; + + if (r1->unk4 <= r1->unk6) + return 0; + + offset = sub_0805F25C(r0); + temp = r1->unk6; + if ((r0 >> 8) > 4) { + sub_0805F820(r1, offset); + offset += 0x10; + } + + sub_0805F820(r1, offset); + if (r1->unk6 > r1->unk4) { + r1->unk6 = r1->unk4; + } + return r1->unk6 - temp; +} + +void sub_0805F820(WStruct* r0, u32* r1) { + u32 bVar1; + u32 bVar2; + s32 uVar3; + s32 uVar4; + void* uVar5; + u32 uVar6; + u32 uVar7; + u8* puVar8; + u8* temp; + void* temp2; + VStruct* temp3; + + if (r0->unk4 - r0->unk6 > 0) { + sub_08002724(r1, &gUnk_02036A58); + if (r0->unk1 == 0) { + u32 tmp = sub_0805F7A0(*r1); + uVar6 = tmp & 0xf; + uVar3 = tmp >> 8; + } else { + uVar6 = 0; + uVar3 = 8; + } + + uVar4 = r0->unk4 - r0->unk6; + if (uVar4 > 8) { + uVar4 = 8; + } + if (uVar4 < uVar3) { + uVar3 = uVar4; + } + + puVar8 = &gUnk_02036A58 + uVar6; + temp2 = r0->unk8; + temp = gUnk_0810942E[r0->unk3].filler0[r0->unk2 * 2]; + uVar7 = r0->unk6; + r0->unk6 += uVar3; + + if (r0->unk0 / 16 != 1) { + while (uVar3-- > 0) { + sub_080026C4(puVar8, temp2, temp, uVar7); + puVar8++; + uVar7++; + } + } else { + while (uVar3-- > 0) { + sub_080026F2(puVar8, temp2, temp, uVar7); + puVar8++; + uVar7++; + } + } + } +} + +void sub_0805F8E4(u32 r0, WStruct* r1) { + u32 old = r1->unk1; + r1->unk1 = 1; + sub_0805F7DC(r0, r1); + r1->unk1 = old; +} + +u32 sub_0805F8F8(u32 idx) { + u8* temp = &gUnk_0810942E[idx].filler0[10][10]; + return gUnk_0810926C[*temp]; +} + +void sub_0805F918(u32 idx, u32 idx2, void* dest) { + u32 i; + void* puVar1; + u8* puVar2; + u32 j; + u32 idx3; + u8* temp; + u8* temp2; + + _DmaFill32(sub_0805F8F8(idx2), &gUnk_02036AD8, 0xe0); + puVar1 = gUnk_081092AC[idx]; + + temp = &gUnk_081094CE + idx2 * 0xc0; + idx3 = 0; + for (i = 0; i < 3; i++) { + puVar2 = &gUnk_02036A58; + sub_08002724(puVar1, &gUnk_02036A58); + puVar1 += 0x40; + + for (j = 0; j < 8; j++) { + sub_080026C4(puVar2, &gUnk_02036AD8, temp, idx3); + puVar2++; + idx3++; + } + } + LoadAssetAsync((const void*)&gUnk_02036AD8, (u32)dest, 0xe0); +} + +u32 sub_0805F9A0(u32 r0) { + + if (gUnk_02000000->gameLanguage == 0) { + u16* val = &gUnk_081092D4; + u32 i = 0; + + do { + if (*val == r0) { + return i + 0x800; + } + i++; + val++; + } while (*val != 0); + } else if (r0 == 0x31a) { + r0 = 1; + r0 &= 0xff; + } + return (r0 & 0xff) + 0x800; +} diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c new file mode 100644 index 00000000..96b79038 --- /dev/null +++ b/src/enemy/gyorgMale.c @@ -0,0 +1,1265 @@ +#include "global.h" +#include "enemy.h" +#include "player.h" +#include "room.h" +#include "trig.h" +#include "structures.h" +#include "functions.h" + +void (* const gUnk_080D1AFC[8])(Entity*); +void (* const gUnk_080D1B1C[7])(Entity*); +void (* const gUnk_080D1B38[5])(Entity*); +void (* const gUnk_080D1B4C[5])(Entity*); +const u16 gUnk_080D1B60[8]; +const s16 gUnk_080D1B70[2];//or 3? +const u16 gUnk_080D1B74[0x10]; +void (* const gUnk_080D1B94[0xA])(Entity*); +const u16 gUnk_080D1BBC[2]; +void (* const gUnk_080D1BC0[7])(Entity*); +void (* const gUnk_080D1BDC[5])(Entity*); +const s16 gUnk_080D1BF0[2]; +void (* const gUnk_080D1BF4[3])(Entity*); +const s8 gUnk_080D1C00[4]; +const u16 gUnk_080D1C04[0x20]; +const u8 gUnk_080D1C44[0xC]; +const u16 gUnk_080D1C50[8]; +const u16 gUnk_080D1C60[8]; + +void GyorgMale(Entity*); +void sub_08046898(Entity*);//action 0 +void sub_08046910(Entity*);//action 1 +void sub_08046930(Entity*);//action 1 previousActionFlag 0 +void sub_0804696C(Entity*);//action 1 previousActionFlag 1 +void sub_080469CC(Entity*);//action 1 previousActionFlag 2 +void sub_080469F4(Entity*);//action 1 previousActionFlag 3 +void sub_08046A30(Entity*);//action 1 previousActionFlag 4 +void sub_08046A54(Entity*);//action 1 previousActionFlag 5 +void sub_08046A78(Entity*);//action 1 previousActionFlag 6 +void sub_08046A9C(Entity*);//action 2 +void sub_08046AE8(Entity*);//action 2 previousActionFlag 0 +void sub_08046B18(Entity*);//action 2 previousActionFlag 1 +void sub_08046B8C(Entity*);//action 2 previousActionFlag 2 +void sub_08046C04(Entity*);//action 2 previousActionFlag 3 +void sub_08046C88(Entity*);//action 2 previousActionFlag 4 +void sub_08046CEC(Entity*);//action 3 +void sub_08046D44(Entity*);//action 3 previousActionFlag 0 +void sub_08046D98(Entity*);//action 3 previousActionFlag 1 +void sub_08046E0C(Entity*);//action 3 previousActionFlag 2 +void sub_08046E68(Entity*);//action 3 previousActionFlag 3 +void sub_08046EF4(Entity*);//action 3 previousActionFlag 4 +void sub_08046F64(Entity*);//action 4 +void sub_08046FE8(Entity*);//action 4 previousActionFlag 0 +void sub_0804702C(Entity*);//action 4 previousActionFlag 1 +void sub_080470B4(Entity*);//action 4 previousActionFlag 2 +void sub_08047140(Entity*);//action 4 previousActionFlag 3 +void sub_0804717C(Entity*);//action 4 previousActionFlag 4 +void sub_080471C8(Entity*);//action 4 previousActionFlag 5 +void sub_0804723C(Entity*);//action 4 previousActionFlag 6 +void sub_08047284(Entity*);//action 4 previousActionFlag 7 +void sub_080472BC(Entity*);//action 4 previousActionFlag 8 +void sub_08047310(Entity*);//action 4 previousActionFlag 9 +void sub_0804736C(Entity*);//action 5 +void sub_080473B8(Entity*);//action 5 previousActionFlag 0 +void sub_080473F0(Entity*);//action 5 previousActionFlag 1 +void sub_08047484(Entity*);//action 5 previousActionFlag 2 +void sub_08047508(Entity*);//action 5 previousActionFlag 3 +void sub_080475F4(Entity*);//action 5 previousActionFlag 4 +void sub_0804763C(Entity*);//action 5 previousActionFlag 5 +void sub_0804772C(Entity*);//action 5 previousActionFlag 6 +void sub_08047778(Entity*);//action 6 +void sub_08047798(Entity*);//action 6 previousActionFlag 0 +void sub_080477F0(Entity*);//action 6 previousActionFlag 1 +void sub_08047914(Entity*);//action 6 previousActionFlag 2 +void sub_08047978(Entity*);//action 6 previousActionFlag 3 +void sub_08047B08(Entity*);//action 6 previousActionFlag 4 +void sub_08047B84(Entity*);//action 7 +void sub_08047BA4(Entity*);//action 7 previousActionFlag 0 +void sub_08047BF0(Entity*);//action 7 previousActionFlag 1, also called elsewhere +void sub_08047D24(Entity*);//action 7 previousActionFlag 2 +void sub_08047D88(Entity*);// +void sub_08047DF0(Entity*, u32); +void sub_08047E48(Entity*);// +void sub_08047E58(Entity*);// +void sub_08047EA4(Entity*, u32); +u32 sub_08047F68(Entity*);//distance this to player? +void sub_08048004(Entity*);// +void sub_0804813C(Entity*);// +u32 sub_08048158(u32); +void sub_08048178(Entity*, u32); + +void (* const gUnk_080D1AFC[8])(Entity*) = { + sub_08046898, + sub_08046910, + sub_08046A9C, + sub_08046CEC, + sub_08046F64, + sub_0804736C, + sub_08047778, + sub_08047B84 +}; + +void GyorgMale(Entity* this) { + if (this->action) { + this->spriteSettings.b.draw = this->field_0x7c.BYTES.byte1; + } + gUnk_080D1AFC[this->action](this); + if (this->action != 7) { + sub_0805EC9C(this, 0xaa, 0xaa, this->field_0x78.HWORD); + } + this->animationState = -(this->field_0x78.HWORD >> 8); + sub_08048004(this); + this->field_0x7c.BYTES.byte1 = this->spriteSettings.b.draw; + if (this->spriteSettings.b.draw == 1 && (this->y.HALF.HI - gRoomControls.roomScrollY + 0x30) > 0x100u) { + this->spriteSettings.b.draw = 0; + } + this->cutsceneBeh.HWORD = gPlayerEntity.x.HALF.HI; + this->field_0x86.HWORD = gPlayerEntity.y.HALF.HI; +} + +void sub_08046898(Entity* this) { + Entity* tmp = sub_080A7EE0(0x22); + u32 tmp2; + if (!tmp) return; + tmp->entityType.form = 1; + tmp->parent = this; + this->attachedEntity = tmp; + this->action = 1; + this->previousActionFlag = 0; + this->spriteRendering.b0 = 3; + this->spriteSettings.b.draw = 1; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->field_0x3c |= 0x10; + this->collisionLayer = 2; + this->field_0x7c.BYTES.byte0 = 0; + this->field_0x78.HWORD = 0; + this->field_0x7a.HWORD = 0; + this->field_0x70.HALF.HI = 0; + InitAnimationForceUpdate(this, 0); +} + +void (* const gUnk_080D1B1C[7])(Entity*) = { + sub_08046930, + sub_0804696C, + sub_080469CC, + sub_080469F4, + sub_08046A30, + sub_08046A54, + sub_08046A78 +}; + +void sub_08046910(Entity* this) { + gUnk_080D1B1C[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); +} + +void sub_08046930(Entity* this) { + if (this->entityType.form) { + this->previousActionFlag = 5; + this->direction = 0x20; + this->nonPlanarMovement = 0x280; + } + sub_08047D88(this); + if (this->field_0x7c.BYTES.byte0 == 0) return; + this->previousActionFlag = 1; + this->actionDelay = 1; + this->animationState = 0; + this->direction = 0; + this->nonPlanarMovement = 0x280; +} + +void sub_0804696C(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginY + 0x130 > this->y.HALF.HI) { + this->previousActionFlag = 2; + this->direction = 0x80; + this->nonPlanarMovement = 0x100; + this->spriteOrientation.flipY = 3; + this->spriteRendering.b3 = 3; + PlaySFX(0x2e); + } + if (this->actionDelay) { + if (gRoomControls.roomOriginY + 0x258 > this->y.HALF.HI) { + this->actionDelay = 0; + PlaySFX(0xf7); + } + } +} + +void sub_080469CC(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { + this->previousActionFlag = 3; + this->direction = 0x90; + } +} + +void sub_080469F4(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginY + 0x290 < this->y.HALF.HI) { + this->previousActionFlag = 4; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + } +} + +void sub_08046A30(Entity* this) { + sub_08047D88(this); + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 1) { + this->action = 2; + this->previousActionFlag = 0; + } +} + +void sub_08046A54(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginX + 0x380 < this->x.HALF.HI) { + this->previousActionFlag = 6; + } +} + +void sub_08046A78(Entity* this) { + sub_08047D88(this); + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 0x10) { + this->action = 3; + this->previousActionFlag = 0; + } +} + +void (* const gUnk_080D1B38[5])(Entity*) = { + sub_08046AE8, + sub_08046B18, + sub_08046B8C, + sub_08046C04, + sub_08046C88 +}; + +void sub_08046A9C(Entity* this) { + if (this->animIndex == 1) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 0); + } + } + gUnk_080D1B38[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (this->field_0x7c.BYTES.byte0) { + this->action = 6; + this->previousActionFlag = 0; + } +} + +void sub_08046AE8(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x180; + sub_08048178(this, ((Entity*) this->otherEntity)->next->animationState >> 5); + this->field_0x76.HWORD = this->direction << 8; + sub_08047D88(this); +} + +void sub_08046B18(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + } else { + this->previousActionFlag = 2; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08046B8C(Entity* this) { + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 3; + this->field_0x76.HWORD = this->direction << 8; + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x210; + sub_08047D88(this); + } else { + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + } +} + +void sub_08046C04(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + } else { + this->previousActionFlag = 4; + this->field_0x70.HALF.LO = ((tmp + 0x20) & 0xC0) >> 6; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08046C88(Entity* this) { + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 1; + sub_08048178(this, sub_08048158(this->field_0x70.HALF_U.LO)); + sub_08047D88(this); + } else { + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + } +} + +void (* const gUnk_080D1B4C[5])(Entity*) = { + sub_08046D44, + sub_08046D98, + sub_08046E0C, + sub_08046E68, + sub_08046EF4 +}; + +void sub_08046CEC(Entity* this) { + if (this->animIndex == 0) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 1); + } + } + gUnk_080D1B4C[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 2) { + this->action = 2; + this->previousActionFlag = 0; + this->animationState = this->nonPlanarMovement; + } +} + +const u16 gUnk_080D1B60[8] = { + 0x200, + 0x184, + 0x28C, + 0x210, + 0x200, + 0x29C, + 0x174, + 0x210 +}; + +void sub_08046D44(Entity* this) { + const u16 * tmp; + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x200; + tmp = gUnk_080D1B60 + (((Entity*) this->otherEntity)->next->animationState >> 5); + this->field_0x80.HWORD = tmp[0] + gRoomControls.roomOriginX; + this->field_0x82.HWORD = tmp[1] + gRoomControls.roomOriginY; + this->field_0x76.HWORD = this->direction << 8; + sub_08047D88(this); +} + +void sub_08046D98(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + } else { + this->previousActionFlag = 2; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08046E0C(Entity* this) { + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 3; + this->field_0x76.HWORD = this->direction << 8; + sub_08047D88(this); + } else { + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + } +} + +const s16 gUnk_080D1B70[2] = { + 0x40, + -0x40 +}; + +void sub_08046E68(Entity* this) { + u32 tmp = ((Entity*) this->otherEntity)->next->animationState ^ 0x80; + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + } else { + this->previousActionFlag = 4; + this->actionDelay = 0x3F; + this->field_0xf = 1; + this->direction = (gUnk_080D1B70[Random() & 1] + tmp) & 0xC0; + sub_08047D88(this); + } +} + +const u16 gUnk_080D1B74[0x10] = { + 0x20, + 0x40, + 0x60, + 0x80, + 0xA0, + 0xC0, + 0xE0, + 0x100, + 0x100, + 0xE0, + 0xC0, + 0xA0, + 0x80, + 0x60, + 0x40, + 0x20 +}; + +void sub_08046EF4(Entity* this) { + if (--this->actionDelay == 0) { + this->actionDelay = 0x7F; + this->direction ^= 0x80; + } + this->nonPlanarMovement = gUnk_080D1B74[(this->actionDelay >> 3) & 0xF]; + if ((--this->field_0xf & 0xFF) == 0) { + Entity* tmp; + this->field_0xf = (Random() & 0x38) + 0x78; + tmp = sub_080A7EE0(0x23); + if (tmp) { + tmp->collisionLayer = 2; + tmp->parent = this; + UpdateSpriteForCollisionLayer(tmp); + } + } + sub_08047E48(this); +} + +void (* const gUnk_080D1B94[0xA])(Entity*) = { + sub_08046FE8, + sub_0804702C, + sub_080470B4, + sub_08047140, + sub_0804717C, + sub_080471C8, + sub_0804723C, + sub_08047284, + sub_080472BC, + sub_08047310 +}; + +void sub_08046F64(Entity* this) { + if (this->animIndex == 0) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 1); + } + } + gUnk_080D1B94[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp; + this->field_0x7c.HALF.HI = 0x78; + tmp = sub_080A7EE0(0x23); + if (tmp) { + tmp->collisionLayer = 2; + tmp->parent = this; + UpdateSpriteForCollisionLayer(tmp); + } + } + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 4) { + this->action = 5; + this->previousActionFlag = 0; + } +} + +void sub_08046FE8(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x1c0; + this->field_0x7c.HALF.HI = 0x1e; + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x290; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x190; + sub_08047D88(this); +} + +void sub_0804702C(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (((this->direction - tmp + 2) & 0xFF) > 4) { + if ((tmp - this->direction) & 0x80) { + this->direction--; + } else { + this->direction++; + } + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, (this->nonPlanarMovement >> 0x10) + 0x10)) { + this->previousActionFlag = 2; + this->field_0x76.HWORD = this->direction << 8; + this->nonPlanarMovement = 0x280; + } +} + +const u16 gUnk_080D1BBC[2] = { + 0x1A0, + 0xE0 +}; + +void sub_080470B4(Entity* this) { + u32 tmp = 0x40; + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + } else { + this->previousActionFlag = 3; + this->nonPlanarMovement = 0x200; + this->field_0x76.HWORD = this->direction << 8; + this->field_0x74.HWORD = gUnk_080D1BBC[Random() & 1]; + sub_08047D88(this); + } +} + +void sub_08047140(Entity* this) { + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction > 0xbf) { + this->direction = 0xC0; + this->previousActionFlag = 4; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_0804717C(Entity* this) { + if (this->nonPlanarMovement < 0x280) { + this->nonPlanarMovement += 8; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI) { + this->previousActionFlag = 5; + } +} + +void sub_080471C8(Entity* this) { + if (this->nonPlanarMovement > 0x180) { + this->nonPlanarMovement -= 0x10; + } + if (this->direction < 0xe0) { + this->direction++; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginY + 0x190 <= this->y.HALF.HI) return; + if (this->field_0x74.HWORD > 0x100) { + if (Random() & 1) { + this->previousActionFlag = 6; + } else { + this->previousActionFlag = 0; + } + } else { + this->previousActionFlag = 0; + } +} + +void sub_0804723C(Entity* this) { + this->direction -= 2; + if (this->direction < 0xc0) { + this->previousActionFlag = 7; + this->nonPlanarMovement = 0x200; + this->direction = 0xc0; + this->field_0x76.HWORD = 0xc000; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08047284(Entity* this) { + this->field_0x76.HWORD -= 0xe0; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction < 0x40) { + this->direction = 0x40; + this->previousActionFlag = 8; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_080472BC(Entity* this) { + if (this->nonPlanarMovement < 0x300) { + this->nonPlanarMovement += 8; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginX + 0x2B0 >= this->x.HALF.HI) return; + this->previousActionFlag = 9; + this->field_0x76.HWORD = this->direction << 8; +} + +void sub_08047310(Entity* this) { + if (this->nonPlanarMovement < 0x180) { + this->nonPlanarMovement -= 0x10; + } + this->field_0x76.HWORD -= 0x1D0; + this->direction = this->field_0x76.HWORD >> 8; + if ((u8) (this->direction + 0x7F) < 0x40) { + this->direction = 0xC0; + this->previousActionFlag = 4; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void (* const gUnk_080D1BC0[7])(Entity*) = { + sub_080473B8, + sub_080473F0, + sub_08047484, + sub_08047508, + sub_080475F4, + sub_0804763C, + sub_0804772C +}; + +void sub_0804736C(Entity* this) { + if (this->animIndex == 1) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 0); + } + } + gUnk_080D1BC0[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (this->currentHealth == 0) { + this->action = 7; + this->previousActionFlag = 0; + } +} + +void sub_080473B8(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x120; + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x1D0; + sub_08047D88(this); +} + +void sub_080473F0(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (((this->direction - tmp + 2) & 0xFF) > 4) { + s32 tmp2 = tmp - this->direction; + if (tmp2 & 0x80) { + if (tmp2 < -1) { + this->direction -= 2; + } else { + this->direction -= 1; + } + } else { + if (tmp2 > 1) { + this->direction += 2; + } else { + this->direction += 1; + } + } + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 8)) { + this->previousActionFlag = 2; + this->field_0x76.HWORD = this->direction << 8; + this->nonPlanarMovement = 0x180; + } +} + +void sub_08047484(Entity* this) { + u32 tmp = 0x40; + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + } else { + this->previousActionFlag = 3; + this->nonPlanarMovement = 0x200; + this->direction = 0x40; + this->field_0x76.HWORD = 0x4000; + this->field_0x74.HWORD = 0x180; + this->field_0x7c.HALF.HI = 0xF0; + sub_08047D88(this); + } +} + +void sub_08047508(Entity* this) { + if (gRoomControls.roomOriginX + 0x1A0 < this->x.HALF.HI) { + if (this->direction == 0) { + if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { + this->field_0x74.HWORD = -this->field_0x74.HWORD; + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->direction = this->field_0x76.HWORD >> 8; + } + } else { + s32 tmp = (s16)this->field_0x74.HWORD; + if (tmp < 0) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction & 0x80) { + this->direction = 0; + this->field_0x76.HWORD = 0; + } + } else { + if (this->direction < 0x40) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction >= 0x40) { + this->direction = 0x40; + } + } + } + } + } + sub_08047E48(this); + if (gRoomControls.roomOriginX + 0x280 < this->x.HALF.HI) { + this->previousActionFlag = 4; + this->nonPlanarMovement = 0x200; + this->animationState = this->direction; + this->field_0x76.HWORD = this->direction << 8; + } + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp = CreateEnemy(0x62, Random() & 3); + if (tmp) { + tmp->parent = this; + } + } +} + +void sub_080475F4(Entity* this) { + this->field_0x76.HWORD += 0x180; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction >= 0xc0) { + this->direction = 0xc0; + this->previousActionFlag = 5; + this->nonPlanarMovement = 0x200; + this->field_0x7c.HALF.HI = 0x3c; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_0804763C(Entity* this) { + if (gRoomControls.roomOriginX + 0x1F0 > this->x.HALF.HI) { + if (this->direction == 0) { + if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { + this->field_0x74.HWORD = -this->field_0x74.HWORD; + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->direction = this->field_0x76.HWORD >> 8; + } + } else { + s32 tmp = (s16) this->field_0x74.HWORD; + if (tmp > 0) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if ((this->direction & 0x80) == 0) { + this->direction = 0; + this->field_0x76.HWORD = 0; + } + } else { + if (this->direction > 0xC0) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction <= 0xC0) { + this->direction = 0xC0; + } + } + } + } + } + sub_08047E48(this); + if (gRoomControls.roomOriginX + 0x180 > this->x.HALF.HI) { + this->previousActionFlag = 6; + this->nonPlanarMovement = 0x200; + this->animationState = this->direction; + this->field_0x76.HWORD = this->direction << 8; + } + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp = CreateEnemy(0x62, Random() & 3); + if (tmp) { + tmp->parent = this; + } + } +} + +void sub_0804772C(Entity* this) { + this->field_0x76.HWORD -= 0x180; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction <= 0x40) { + this->direction = 0x40; + this->previousActionFlag = 3; + this->nonPlanarMovement = 0x200; + this->field_0x7c.HALF.HI = 0x1e; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void (* const gUnk_080D1BDC[5])(Entity*) = { + sub_08047798, + sub_080477F0, + sub_08047914, + sub_08047978, + sub_08047B08 +}; + +void sub_08047778(Entity* this) { + gUnk_080D1BDC[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); +} + +void sub_08047798(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x80; + if (this->x.HALF.HI - gRoomControls.roomOriginX < 0x1F8) { + this->field_0x80.HWORD = 0xa8; + } else { + this->field_0x80.HWORD = 0x348; + } + this->field_0x80.HWORD += gRoomControls.roomOriginX; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x348; + sub_08047D88(this); +} + +const s16 gUnk_080D1BF0[2] = { + 0x80, + -0x80 +}; + +void sub_080477F0(Entity* this) { + if (this->nonPlanarMovement < 0x300) { + this->nonPlanarMovement += 8; + } + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047E48(this); + if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { + this->action = 2; + this->previousActionFlag = 0; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->direction = this->animationState; + return; + } + if (!sub_0806FCB8(this, gRoomControls.roomOriginX + 0x200, gRoomControls.roomOriginY + 0x210, 0x100)) { + this->spriteOrientation.flipY = 3; + this->spriteRendering.b3 = 3; + } + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 2; + this->field_0x76.HWORD = this->animationState << 8; + this->field_0x74.HWORD = gUnk_080D1BF0[Random() & 1]; + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 1) { + ((Entity*) this->otherEntity)->next->field_0x78.HALF.HI = gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI ? 0x81 : 0x83; + } else { + ((Entity*) this->otherEntity)->next->field_0x78.HALF.HI = 0x80; + } + } +} + +void sub_08047914(Entity* this) { + sub_08047D88(this); + if (this->animationState & 0x1F) { + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->animationState = this->field_0x76.HWORD >> 8; + sub_08047EA4(this, ((0x100 - this->animationState) & 0xFF) << 8); + } else { + this->previousActionFlag = 3; + this->field_0x70.HALF.LO = 0x3C; + this->field_0x7c.HALF.HI = ((this->entityType.form * 0xF) << 2) + 0x78; + sub_080A1D70(((Entity*) this->otherEntity)->prev, this->animationState); + } +} + +void sub_08047978(Entity* this) { + sub_08047D88(this); + if (this->currentHealth != 0) { + if (--this->field_0x70.HALF_U.LO == 0) { + this->field_0x70.HALF.HI = 1; + if (this->entityType.form == 0) { + this->field_0x70.HALF.LO = 0xB4; + } else { + this->field_0x70.HALF.LO = 0x168; + } + } else { + if (this->field_0x70.HALF_U.LO == 0xF0) { + sub_0804813C(this); + } + } + } else { + this->field_0x70.HALF.HI = 0; + } + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp; + this->field_0x7c.HALF.HI = 0xF0; + tmp = CreateEnemy(0x62, Random() & 3); + if (tmp) { + tmp->parent = this; + } + } + if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { + this->action = 2; + this->previousActionFlag = 0; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->direction = this->animationState; + } + if (this->currentHealth != 0) return; + if (this->attachedEntity->action != 1) return; + this->previousActionFlag = 4; + if (this->entityType.form == 0) { + if ((((Entity*) this->otherEntity)->next->animationState >> 6) == 1) { + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x1C0; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + } else { + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x240; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + } + } else { + if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { + this->field_0x80.HWORD = 0x190; + } else { + this->field_0x80.HWORD = 0x270; + } + this->field_0x80.HWORD += gRoomControls.roomOriginX; + if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { + this->field_0x82.HWORD = 0x1A0; + } else { + this->field_0x82.HWORD = 0x280; + } + this->field_0x82.HWORD += gRoomControls.roomOriginY; + } + +} + +void sub_08047B08(Entity* this) { + sub_08047D88(this); + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + this->nonPlanarMovement = 0x200; + sub_08047E58(this); + if (!sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) return; + if (this->entityType.form == 0) { + this->action = 7; + this->previousActionFlag = 0; + this->direction ^= 0x80; + } else { + this->action = 4; + this->previousActionFlag = 0; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->direction = this->animationState; + } +} + +void (* const gUnk_080D1BF4[3])(Entity*) = { + sub_08047BA4, + sub_08047BF0, + sub_08047D24 +}; + +void sub_08047B84(Entity* this) { + gUnk_080D1BF4[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); +} + +void sub_08047BA4(Entity* this) { + this->previousActionFlag = 1; + this->actionDelay = 0x78; + this->field_0xf = 0; + if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { + this->field_0x76.HWORD = 0x78; + } else { + this->field_0x76.HWORD = 0x88; + } + PlaySFX(0x1B5); + sub_08047BF0(this); +} + +const s8 gUnk_080D1C00[4] = { + 0x40, + -0x40, + -0x40, + 0x40 +}; + +void sub_08047BF0(Entity* this) { + Entity* tmp; + this->direction = gUnk_080D1C00[this->actionDelay & 3]; + this->nonPlanarMovement = 0x100; + sub_08047E48(this); + if (this->actionDelay == 0) { + if ((this->field_0xf++ & 0xF) == 0) { + tmp = CreateFx(this, 0x51, 0); + if (tmp) { + u32 rand = Random(); + tmp->x.HALF.HI += (rand & 0x1E) + 0xFFF1; + rand >>= 8; + tmp->y.HALF.HI += (rand & 0x1E) + 0xFFF1; + tmp->spritePriority.b0 = 3; + tmp->collisionLayer = 1; + UpdateSpriteForCollisionLayer(tmp); + } + } + this->direction = this->field_0x76.HWORD; + this->nonPlanarMovement = 0x140; + sub_08047E48(this); + if (this->y.HALF.HI > gRoomControls.roomOriginY + 0x270) { + this->previousActionFlag = 2; + this->field_0x7c.HALF.HI = 0xAA; + PlaySFX(0x12D); + InitAnimationForceUpdate(this, 1); + } + } else { + this->actionDelay--; + if (this->actionDelay == 0x5A) { + tmp = this->attachedEntity; + tmp->spriteSettings.b.draw = 0; + CreateFx(tmp, 0x51, 0); + } else { + if (this->actionDelay == 0x3C) { + tmp = this->attachedEntity->attachedEntity; + tmp->spriteSettings.b.draw = 0; + CreateFx(tmp, 0x51, 0); + } else { + if (this->actionDelay == 0x1E) { + tmp = this->attachedEntity->attachedEntity->attachedEntity; + tmp->spriteSettings.b.draw = 0; + CreateFx(tmp, 0x51, 0); + } + } + } + } + sub_0805EC9C(this, 0xAA, 0xAA, this->field_0x78.HWORD); +} + +void sub_08047D24(Entity* this) { + this->field_0x7c.HALF_U.HI += 8; + if (this->field_0x7c.HALF_U.HI > 0x800) { + if (this->entityType.form == 0) { + ((u32*) this->otherEntity)[2] = 0; + } else { + ((u32*) this->otherEntity)[3] = 0; + } + this->otherEntity = 0; + DeleteThisEntity(); + } else { + if (this->field_0x7c.HALF_U.HI < 0x200) { + sub_08047E48(this); + } else { + sub_08047E58(this); + } + sub_0805EC9C(this, this->field_0x7c.HALF_U.HI, this->field_0x7c.HALF_U.HI, this->field_0x78.HWORD); + } +} + +void sub_08047D88(Entity* this) { + u32 tmp2; + u32 tmp = this->field_0x7c.BYTES.byte0; + tmp = ((tmp << 1) & 0x7F) | (tmp & 0x80); + this->field_0x7c.BYTES.byte0 = tmp; + tmp2 = this->spriteRendering.b3; + if (tmp2 == 3 && gPlayerState.field_0x14 != 0) return; + if (this->animIndex == 1) return; + if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x20)) return; + gPlayerState.field_0x14 = 1; + if (gPlayerEntity.height.HALF.HI != 0) return; + this->field_0x7c.BYTES.byte0 |= 1; +} + +void sub_08047DF0(Entity* this, u32 unk1) { + u32 oldX, oldY; + sub_08047D88(this); + sub_08047EA4(this, unk1); + oldX = this->x.HALF.HI; + oldY = this->y.HALF.HI; + sub_0806F62C(this, this->nonPlanarMovement, this->direction); + if (this->field_0x7c.BYTES.byte0 & 1) { + if (sub_08079F8C()) { + gPlayerEntity.x.HALF.HI += this->x.HALF.HI - oldX; + gPlayerEntity.y.HALF.HI += this->y.HALF.HI - oldY; + } + } +} + +void sub_08047E48(Entity* this) { + sub_08047D88(this); + sub_08047E58(this); +} + +void sub_08047E58(Entity* this) { + u32 oldX, oldY; + oldX = this->x.HALF.HI; + oldY = this->y.HALF.HI; + sub_0806F62C(this, this->nonPlanarMovement, this->direction); + if (this->field_0x7c.BYTES.byte0 & 1) { + if (sub_08079F8C()) { + gPlayerEntity.x.HALF.HI += this->x.HALF.HI - oldX; + gPlayerEntity.y.HALF.HI += this->y.HALF.HI - oldY; + } + } +} + +void sub_08047EA4(Entity* this, u32 unk1) { + s32 tmp; + u32 tmp2, dir; + this->field_0x78.HWORD = unk1; + tmp = this->field_0x78.HWORD - this->field_0x7a.HWORD; + if (tmp + 0x100 < 0x200u) return; + if (this->field_0x7c.BYTES.byte0 & 1) { + tmp2 = sub_08047F68(this) << 8; + dir = sub_080045DA(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, gPlayerEntity.y.HALF.HI - this->y.HALF.HI); + tmp = dir - (tmp / 256); + tmp &= 0xFF; + gPlayerEntity.x.WORD += (gSineTable[tmp] - gSineTable[dir]) * tmp2; + gPlayerEntity.y.WORD -= (gSineTable[tmp + 0x40] - gSineTable[dir + 0x40]) * tmp2; + } + this->field_0x7a.HWORD = this->field_0x78.HWORD; +} + +const u16 gUnk_080D1C04[0x20] = { + 0, 1, 4, 9, + 16, 25, 36, 49, + 64, 81, 100, 121, + 144, 169, 196, 225, + 256, 289, 324, 361, + 400, 441, 484, 529, + 576, 625, 676, 729, + 784, 841, 900, 961 +}; + +u32 sub_08047F68(Entity* this) { + s32 diffX, diffY; + s32 distSquared, approx; + diffX = gPlayerEntity.x.HALF.HI - this->x.HALF.HI; + diffY = gPlayerEntity.y.HALF.HI - this->y.HALF.HI; + distSquared = (diffX * diffX) + (diffY * diffY); + if (distSquared == 0x400) return 0x20; + if (distSquared < gUnk_080D1C04[0x10]) { + approx = 0x8; + } else { + approx = 0x18; + } + if (distSquared < gUnk_080D1C04[approx]) { + approx -= 4; + } else { + approx += 4; + } + if (distSquared < gUnk_080D1C04[approx]) { + approx -= 2; + } else { + approx += 2; + } + if (distSquared < gUnk_080D1C04[approx]) { + approx -= 1; + } else { + approx += 1; + } + if (distSquared < gUnk_080D1C04[approx]) { + s32 tmp = gUnk_080D1C04[approx-1]; + tmp += (gUnk_080D1C04[approx] - tmp) / 2; + if (distSquared <= tmp) { + approx = approx - 1; + } + } + return approx; +} + +void sub_08048004(Entity* this) { + if (this->action == 0) return; + if (this->animIndex == 0) { + this->flags &= ~0x80; + if (gPlayerEntity.height.HALF.HI != 0) return; + if (!sub_08079F8C()) return; + if (this->field_0x7c.BYTES.byte0 & 1) { + u32 b = this->spriteRendering.b3; + if (b == 3) { + s32 posX = ((gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) >> 3); + s32 posY = ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) >> 3); + u16 * tmp = (u16*)&gUnk_02019EE0; + if (tmp[(posY << 7) + posX]) { + if (!(this->field_0x7c.BYTES.byte0 & 2)) { + this->field_0x7c.BYTES.byte0 |= 0x80; + } + if ((this->field_0x7c.BYTES.byte0 & 0x80)) return; + gPlayerEntity.x.HALF.HI = this->cutsceneBeh.HWORD; + gPlayerEntity.y.HALF.HI = this->field_0x86.HWORD; + return; + } + } + this->field_0x7c.BYTES.byte0 &= ~0x80; + } else { + u32 b = this->spriteRendering.b3; + if (b != 3) { + if (sub_0806FCB8(&gPlayerEntity, this->x.HALF.HI, this->y.HALF.HI, 0x24)) { + if (!(this->field_0x7c.BYTES.byte0 & 2)) { + u32 tmp = sub_080045DA(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, gPlayerEntity.y.HALF.HI - this->y.HALF.HI); + gPlayerEntity.x.WORD = this->x.WORD + (gSineTable[tmp] * 9216); + gPlayerEntity.y.WORD = this->y.WORD - (gSineTable[tmp + 0x40] * 9216); + } + } + } + this->field_0x7c.BYTES.byte0 = 0; + } + } else { + this->flags |= 0x80; + } +} + +void sub_0804813C(Entity* this) { + u32 rand = Random(); + sub_080A1ED0(rand & 7, 1, (rand >> 8) & 3); +} + + +const u8 gUnk_080D1C44[0xC] = { + 0, 2, 6, 0, + 2, 4, 2, 4, + 6, 0, 4, 6 +}; + +u32 sub_08048158(u32 unk1) { + return gUnk_080D1C44[(unk1 * 3) + ((signed)Random() % 3)]; +} + +const u16 gUnk_080D1C50[8] = { + 0x200, + 0x180, + 0x2C0, + 0x210, + 0x200, + 0x2A0, + 0x140, + 0x210 +}; + +const u16 gUnk_080D1C60[8] = { + 0x200, + 0x150, + 0x290, + 0x210, + 0x200, + 0x2D0, + 0x170, + 0x210 +}; + +void sub_08048178(Entity* this, u32 unk1) { + const u16* tmp = ((((Entity*) this->otherEntity)->next->animationState >> 6 & 1) ? gUnk_080D1C60 + unk1: gUnk_080D1C50 + unk1); + this->field_0x80.HWORD = *tmp + gRoomControls.roomOriginX; + this->field_0x82.HWORD = *(tmp + 1) + gRoomControls.roomOriginY; +} diff --git a/src/enemy/keese.c b/src/enemy/keese.c index d73475f3..0b9890c0 100644 --- a/src/enemy/keese.c +++ b/src/enemy/keese.c @@ -13,7 +13,6 @@ extern void sub_0804A720(Entity*); extern void Keese_StartFly(Entity*); extern void sub_080AEFB4(Entity*); extern void sub_08021F24(Entity*); -extern u32 sub_0806FCB8(Entity*, s32, s32, u32); extern u32 sub_08049FA0(Entity*); extern u32 sub_08049EE4(Entity*); diff --git a/src/enemy/waterDrop.c b/src/enemy/waterDrop.c index b95535df..3a1e347b 100644 --- a/src/enemy/waterDrop.c +++ b/src/enemy/waterDrop.c @@ -6,7 +6,7 @@ void sub_0802A39C(Entity*); void sub_0802A334(Entity*); -extern u16 gUnk_02001A40[]; +extern u16 gBG3Buffer[]; extern void (*const gUnk_080CD030[])(Entity*); extern const u8 gUnk_080CD03C[]; @@ -63,7 +63,7 @@ void sub_0802A2FC(Entity* this) { void sub_0802A334(Entity* this) { u32 x = (this->x.HALF.HI - gRoomControls.roomScrollX + gScreen.bg.bg1yOffset) >> 3; u32 y = (this->y.HALF.HI - gRoomControls.roomScrollY + gScreen.bg.bg2xOffset) >> 3; - if (gUnk_02001A40[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) { + if (gBG3Buffer[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) { this->collisionLayer = 2; } else { this->collisionLayer = 1; @@ -74,7 +74,7 @@ void sub_0802A334(Entity* this) { void sub_0802A39C(Entity* this) { u32 x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomScrollX + gScreen.bg.bg1yOffset) >> 3; u32 y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomScrollY + gScreen.bg.bg2xOffset - 10) >> 3; - if (gUnk_02001A40[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) { + if (gBG3Buffer[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) { this->flags &= ~0x80; } else { this->flags |= 0x80; diff --git a/src/item14.c b/src/item14.c new file mode 100644 index 00000000..d1e6086d --- /dev/null +++ b/src/item14.c @@ -0,0 +1,58 @@ +#include "entity.h" +#include "functions.h" +#include "player.h" +#include "room.h" + +extern void (*const gUnk_08109AC8[])(Entity*); +extern BoundingBox gUnk_08109AD0; +extern u8 gUnk_08003E44; + +void sub_0805FC74(Entity*); + +void Item14(Entity *this) { + gUnk_08109AC8[this->action](this); +} + +void sub_0805FBE8(Entity* this) { + CopyPosition(&gPlayerEntity,this); + this->action++; + this->spriteSettings.b.draw = TRUE; + this->field_0x3c = gPlayerEntity.field_0x3c + 1; + this->boundingBox = &gUnk_08109AD0; + this->nonPlanarMovement = 0x380; + this->animationState = this->animationState & 0x7f; + if (this->collisionLayer == 2) { + this->entityType.parameter = 1; + } + this->direction = this->animationState << 2; + *(u32 *)&this->field_0x6c = 0x3c; + InitializeAnimation(this, (this->animationState >> 1) + 0xc); + sub_0801766C(this); + sub_0806F69C(this); + sub_0805FC74(this); + PlaySFX(0x13f); +} + +void sub_0805FC74(Entity* this) { + int iVar1; + + if (--*(int *)&this->field_0x6c != -1) { + GetNextFrame(this); + sub_0806F69C(this); + ++this->actionDelay; + if (this->entityType.parameter == 0) { + sub_0800451C(this); + } + if (!sub_080002F0(COORD_TO_TILE(this),gPlayerEntity.collisionLayer,0x80) && + sub_080040D8(this,&gUnk_08003E44, this->x.HALF.HI, this->y.HALF.HI)) { + CreateFx(this, 0x19, 0); + DeleteThisEntity(); + } + if (this->bitfield != 0) { + CreateFx(this, 0x19, 0); + DeleteThisEntity(); + } + } else { + DeleteThisEntity(); + } +} diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 51a675f4..23abd03e 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -427,7 +427,7 @@ void sub_0805A94C(Manager15* this) { gScreen.controls.window1VerticalDimensions = (tmp1 << 8 | tmp2); } -extern u8 gUnk_02001A40[]; +extern u8 gBG3Buffer[]; #ifdef NON_MATCHING void sub_0805A9CC(Manager15* this) { @@ -449,7 +449,7 @@ void sub_0805A9CC(Manager15* this) { gScreen.affine.bg3yOffset = tmp1 & 0x3F; if (tmp1 < 0) tmp1 += 0x3F; - tmp3 = (&gUnk_02001A40[(tmp1 >> 6 << 9)]); + tmp3 = (&gBG3Buffer[(tmp1 >> 6 << 9)]); gScreen.affine.unk5 = (u32)tmp3; gScreen.controls.window1VerticalDimensions = 0xa0; if (this->unk_28 == tmp3) @@ -499,7 +499,7 @@ void sub_0805AAF0(u32 unk0) { gScreen.controls.layerFXControl = 0x3E48; gScreen.controls.alphaBlend = 0x1008; gScreen.affine.bg3Control = 0x1E04; - gScreen.affine.unk5 = &gUnk_02001A40; + gScreen.affine.unk5 = &gBG3Buffer; gScreen.affine.bg3xOffset = 0; gScreen.affine.bg3yOffset = 0; gScreen.affine.unk4 = 1; diff --git a/src/manager/manager8.c b/src/manager/manager8.c index 8fd1d83b..fe0d4335 100644 --- a/src/manager/manager8.c +++ b/src/manager/manager8.c @@ -41,7 +41,7 @@ void sub_08057EFC(Manager8* this) { void sub_08058004(u32, void*, void*); -extern u8 gUnk_02001A40[]; +extern u8 gBG3Buffer[]; extern u8 gUnk_02006F00[]; void sub_08057F20(Manager8* this) { @@ -50,8 +50,8 @@ void sub_08057F20(Manager8* this) { tmp = tmp + (tmp >> 3) + ((0x400 - gRoomControls.width) / 2); gScreen.affine.bg3xOffset = tmp & 0xF; gScreen.affine.bg3yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 2); - gScreen.affine.unk5 = gUnk_02001A40; - sub_08058004(tmp, gUnk_02006F00, gUnk_02001A40); + gScreen.affine.unk5 = gBG3Buffer; + sub_08058004(tmp, gUnk_02006F00, gBG3Buffer); tmp = ((tmp >> 4) << 1); if (this->unk_38 != tmp) { this->unk_38 = tmp; @@ -61,8 +61,8 @@ void sub_08057F20(Manager8* this) { tmp = tmp + (tmp >> 2) + ((0x400 - gRoomControls.width) / 2); gScreen.bg.bg1yOffset = tmp & 0xF; gScreen.bg.bg2xOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); - gScreen.bg.unk_14 = gUnk_02001A40 + 0x800; - sub_08058004(tmp, gUnk_02006F00 + 0x2000, gUnk_02001A40 + 0x800); + gScreen.bg.unk_14 = gBG3Buffer + 0x800; + sub_08058004(tmp, gUnk_02006F00 + 0x2000, gBG3Buffer + 0x800); tmp = ((tmp >> 4) << 1); if (this->unk_3c != tmp) { this->unk_3c = tmp; @@ -117,19 +117,19 @@ void sub_080580B0(u32 unk1) { sub_08058034(); tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; // r7 tmp = tmp + (tmp >> 3) + (0x400 - gRoomControls.width) / 2; - sub_08058004(tmp, gUnk_02006F00, gUnk_02001A40); + sub_08058004(tmp, gUnk_02006F00, gBG3Buffer); gScreen.affine.bg3xOffset = tmp & 0xF; gScreen.affine.bg3yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); //? gScreen.affine.bg3Control = 0x1D09; - gScreen.affine.unk5 = gUnk_02001A40; + gScreen.affine.unk5 = gBG3Buffer; gScreen.affine.unk4 = 1; tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; // r7 tmp = tmp + (tmp >> 2) + (0x400 - gRoomControls.width) / 2; - sub_08058004(tmp, gUnk_02006F00 + 0x2000, gUnk_02001A40 + 0x800); + sub_08058004(tmp, gUnk_02006F00 + 0x2000, gBG3Buffer + 0x800); gScreen.bg.bg1yOffset = tmp & 0xF; gScreen.bg.bg2xOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); //? gScreen.bg.bg1xOffset = 0x1E09; - gScreen.bg.unk_14 = gUnk_02001A40 + 0x800; + gScreen.bg.unk_14 = gBG3Buffer + 0x800; gScreen.bg.bg2yOffset = 1; gScreen.controls.layerFXControl = 0x3C48; gScreen.controls.alphaBlend = 0x609; diff --git a/src/manager/manager9.c b/src/manager/manager9.c index d57942c7..c8fc2813 100644 --- a/src/manager/manager9.c +++ b/src/manager/manager9.c @@ -18,7 +18,7 @@ void sub_080582F8(u8*, u8*); void sub_08058324(); extern u32 gUnk_02006F00[]; -extern u8 gUnk_02001A40[]; +extern u8 gBG3Buffer[]; const u16 gUnk_081081EC[] = { 0x30, 0x30, 0x30, 0x38 }; @@ -40,7 +40,7 @@ void sub_08058210(Manager9* this) { if (this->unk_3c == tmp) return; this->unk_3c = tmp; - sub_080582A0(tmp, gUnk_02006F00, gUnk_02001A40); + sub_080582A0(tmp, gUnk_02006F00, gBG3Buffer); gScreen.bg.bg2yOffset = 1; } @@ -91,9 +91,9 @@ void sub_08058324(u32 unk) { LoadPaletteGroup(unk + 0x86); LoadGfxGroup(unk + 0x36); sub_080582D0(); - sub_080582A0(sub_08058244(unk), gUnk_02006F00, gUnk_02001A40); + sub_080582A0(sub_08058244(unk), gUnk_02006F00, gBG3Buffer); gScreen.bg.bg1xOffset = 0x1D47; - gScreen.bg.unk_14 = gUnk_02001A40; + gScreen.bg.unk_14 = gBG3Buffer; gScreen.bg.bg2yOffset = 1; gScreen.lcd.displayControl |= 0x200; } diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 0ef4098e..0f454fc6 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -15,7 +15,6 @@ extern void sub_0806AEE4(Entity*); extern void sub_0806AFE8(Entity*, s32*); extern s32 sub_0806EDD8(Entity*, u32, u32); extern u32 sub_0806F5B0(u32); -extern void sub_0806F62C(Entity*, s32, s32); extern void sub_08078784(Entity*, u32); extern void sub_08078850(Entity*, u32, u32, u32*); diff --git a/src/npc/zelda.c b/src/npc/zelda.c index f708c6b8..9ef2018e 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -15,7 +15,6 @@ u32 GetAnimationState(Entity* ent); void DeleteThisEntity(void); extern Entity* GetEntityByType(u32, u32); extern void sub_080686C4(Entity*, Entity*); -extern void sub_0806F62C(Entity*, u32, u32); extern void PlaySFX(u32); extern void SetTileType(u32, u32, u32); diff --git a/src/object/object48.c b/src/object/object48.c index 5db2b96a..f340da1c 100644 --- a/src/object/object48.c +++ b/src/object/object48.c @@ -223,7 +223,7 @@ void sub_0808EABC(Entity* this) { } break; case 5: - switch (gMenu.unk10[this->entityType.form]) { + switch (gMenu.focusCoords[this->entityType.form]) { case 0: var0 = 42; var1 = 40; @@ -232,7 +232,7 @@ void sub_0808EABC(Entity* this) { case 2: var0 = 20; var1 = 144; - var1 -= (gMenu.unk16 - gMenu.unk10[this->entityType.form]) * 32; + var1 -= (gMenu.unk16 - gMenu.focusCoords[this->entityType.form]) * 32; break; } break; @@ -376,9 +376,9 @@ void sub_0808ECBC(Entity* this) { void sub_0808ED64(Entity* this) { int y = 255; - if (gUnk_02032EC0.transitionType == 1 && gMenu.unk10[1] != 5) { - this->x.HALF.HI = gMenu.unk10[0] * 16 + 28; - y = gMenu.unk10[1] * 16 + 58; + if (gUnk_02032EC0.transitionType == 1 && gMenu.focusCoords[1] != 5) { + this->x.HALF.HI = gMenu.focusCoords[0] * 16 + 28; + y = gMenu.focusCoords[1] * 16 + 58; } this->y.HALF.HI = y; } @@ -421,7 +421,7 @@ void sub_0808EE00(Entity* this) { } this->field_0x6a.HWORD = var2; - this->palette.b.b0 = gMenu.unk10[1] == 5 && var1 == gMenu.field_0x12 ? 11 : 9; + this->palette.b.b0 = gMenu.focusCoords[1] == 5 && var1 == gMenu.field_0x12 ? 11 : 9; gUnk_02019EE0.unk0 |= sub_0808EF6C(this); } diff --git a/src/object/objectA2.c b/src/object/objectA2.c index 4b163b17..5f4d2e55 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -21,8 +21,6 @@ typedef struct { const struct_08124708 gUnk_08124708[5] = { { 0, 0x2F }, { 1, 0x20 }, { 1, 0x16 }, { 2, 0x10 }, { 3, 0x01 } }; -extern u32 sub_080045DA(s32, u32); - void ObjectA2(Entity* this) { gUnk_081246F4[this->action](this); GetNextFrame(this); diff --git a/src/screenDebug.c b/src/screenDebug.c new file mode 100644 index 00000000..e8c3a506 --- /dev/null +++ b/src/screenDebug.c @@ -0,0 +1,103 @@ +#include "global.h" +#include "functions.h" +#include "main.h" +#include "menu.h" +#include "screen.h" +#include "structures.h" +#include "textbox.h" + +typedef struct { + u16 unk0; + u16 unk2; + u16 unk4; +} VStruct; + +extern VStruct gUnk_03000FF0; +extern u8 gBG3Buffer[]; + +extern void (*const gUnk_08109A30[])(); + +void HandleDebugTextScreen() { + gUnk_08109A30[gUnk_03001000.funcIndex](); +} + +void sub_0805FA04(void) { + sub_0801DA90(1); + _DmaZero((void*)&gBG0Buffer, sizeof(BGBuffer)); + _DmaZero((void*)&gBG3Buffer, 0x1000); + gScreen.lcd.displayControl = 0x940; + gScreen.bg.bg1Control = 0; + gScreen.bg.bg2Control = 0; + gScreen.affine.bg3xOffset = 0; + gScreen.affine.bg3yOffset = 0; + gScreen.affine.bg3Control = 0x1e0f; + gScreen.affine.unk4 = 1; + sub_08056418(); + _DmaZero((void*)&gUnk_02032EC0, sizeof(UI)); + _DmaZero((void*)&gMenu, sizeof(Menu)); + gMenu.unk16 = gUnk_02000000->gameLanguage; + sub_08053320(); + sub_0801D79C(0, 0x1144); + gUnk_03001000.funcIndex = 1; + sub_080A3210(); + sub_08050008(); +} + +void sub_0805FA98(void) { + int iVar1; + + switch (gUnk_03000FF0.unk2) { + case 0x40: + gMenu.focusCoords[1] -= 1; + break; + case 0x80: + gMenu.focusCoords[1] += 1; + break; + case 0x200: + gMenu.focusCoords[0] ^= 1; + if (gMenu.focusCoords[0] == 0) { + gScreen.bg.bg0Control = 0x1f0c; + gScreen.affine.bg3Control = 0x1e0f; + } else { + gScreen.bg.bg0Control = 0x1f0f; + gScreen.affine.bg3Control = 0x1e0c; + } + break; + case 0x100: + gUnk_02000000->gameLanguage = gMenu.unk16; + TextboxNoOverlapFollow(gMenu.unk14 * 0x100 + gMenu.unk15); + break; + case 0x2: + sub_08056418(); + break; + default: + switch (gUnk_03000FF0.unk4) { + case 0x20: + iVar1 = -1; + break; + case 0x10: + iVar1 = 1; + break; + default: + iVar1 = 0; + break; + } + switch (gMenu.focusCoords[1]) { + case 0: + gMenu.unk14 = (gMenu.unk14 + iVar1 + 0x50) % 0x50; + break; + case 1: + gMenu.unk15 += iVar1; + break; + case 2: + gMenu.unk16 = (gMenu.unk16 + iVar1 + 7) % 7; + break; + } + } + gMenu.focusCoords[1] = (gMenu.focusCoords[1] + 3) % 3; + gScreen.affine.unk4 = 1; +} + +void sub_0805FBC4() { + InitScreen(0); +}