diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-10 15:19:50 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-10 15:19:50 -0400 |
commit | 4594c5dac9f312b28972ab2803de75ac94ba6357 (patch) | |
tree | 342148699aa98a01a0ac0ca30802592071e6575b | |
parent | a9bc506b32a13381ce60ad616cec532b82fcf660 (diff) |
Port field_camera from Emerald
-rw-r--r-- | asm/bike.s | 4 | ||||
-rw-r--r-- | asm/event_object_movement.s | 8 | ||||
-rw-r--r-- | asm/field_camera.s | 1291 | ||||
-rw-r--r-- | asm/overworld.s | 40 | ||||
-rw-r--r-- | common_syms/field_camera.txt | 3 | ||||
-rw-r--r-- | include/event_object_movement.h | 2 | ||||
-rw-r--r-- | include/field_camera.h | 6 | ||||
-rw-r--r-- | include/fieldmap.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 3 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/field_camera.c | 572 | ||||
-rw-r--r-- | sym_bss.txt | 18 | ||||
-rw-r--r-- | sym_common.txt | 15 | ||||
-rw-r--r-- | sym_ewram.txt | 5 |
14 files changed, 619 insertions, 1351 deletions
diff --git a/asm/bike.s b/asm/bike.s index 5bba18d71..e805ccc38 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -718,7 +718,7 @@ StartTransitionToFlipBikeState: @ 80BD5C8 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r1, _080BD5F0 @ =gUnknown_2036E2C + ldr r1, _080BD5F0 @ =gUnusedBikeCameraAheadPanback movs r0, 0 strb r0, [r1] ldr r0, _080BD5F4 @ =gPlayerAvatar @@ -733,7 +733,7 @@ StartTransitionToFlipBikeState: @ 80BD5C8 bl Overworld_PlaySpecialMapMusic b _080BD618 .align 2, 0 -_080BD5F0: .4byte gUnknown_2036E2C +_080BD5F0: .4byte gUnusedBikeCameraAheadPanback _080BD5F4: .4byte gPlayerAvatar _080BD5F8: adds r0, r2, 0 diff --git a/asm/event_object_movement.s b/asm/event_object_movement.s index d09ee8e97..ec39d9f08 100644 --- a/asm/event_object_movement.s +++ b/asm/event_object_movement.s @@ -12924,7 +12924,7 @@ SetSpritePosToMapCoords: @ 8063B1C ldr r0, _08063BB0 @ =gTotalCameraPixelOffsetX ldrh r0, [r0] negs r0, r0 - ldr r1, _08063BB4 @ =gUnknown_3005050 + ldr r1, _08063BB4 @ =gFieldCamera ldr r2, [r1, 0x10] subs r0, r2 lsls r0, 16 @@ -12993,7 +12993,7 @@ _08063B7C: bx r0 .align 2, 0 _08063BB0: .4byte gTotalCameraPixelOffsetX -_08063BB4: .4byte gUnknown_3005050 +_08063BB4: .4byte gFieldCamera _08063BB8: .4byte gTotalCameraPixelOffsetY _08063BBC: .4byte 0xfff00000 _08063BC0: .4byte gSaveBlock1Ptr @@ -13046,7 +13046,7 @@ GetObjectEventMovingCameraOffset: @ 8063C10 movs r0, 0 strh r0, [r2] strh r0, [r1] - ldr r3, _08063C4C @ =gUnknown_3005050 + ldr r3, _08063C4C @ =gFieldCamera ldr r0, [r3, 0x10] cmp r0, 0 ble _08063C26 @@ -13076,7 +13076,7 @@ _08063C48: pop {r0} bx r0 .align 2, 0 -_08063C4C: .4byte gUnknown_3005050 +_08063C4C: .4byte gFieldCamera thumb_func_end GetObjectEventMovingCameraOffset thumb_func_start ObjectEventMoveDestCoords diff --git a/asm/field_camera.s b/asm/field_camera.s index aa906d6fc..2428f2984 100644 --- a/asm/field_camera.s +++ b/asm/field_camera.s @@ -5,1295 +5,4 @@ .text - thumb_func_start move_tilemap_camera_to_upper_left_corner_ -move_tilemap_camera_to_upper_left_corner_: @ 805A5A8 - movs r1, 0 - strb r1, [r0, 0x2] - strb r1, [r0, 0x3] - strb r1, [r0] - strb r1, [r0, 0x1] - movs r1, 0x1 - strb r1, [r0, 0x4] - bx lr - thumb_func_end move_tilemap_camera_to_upper_left_corner_ - - thumb_func_start tilemap_move_something -tilemap_move_something: @ 805A5B8 - ldrb r3, [r0, 0x2] - adds r3, r1 - strb r3, [r0, 0x2] - ldrb r1, [r0, 0x2] - movs r3, 0x1F - ands r1, r3 - strb r1, [r0, 0x2] - ldrb r1, [r0, 0x3] - adds r1, r2 - strb r1, [r0, 0x3] - ldrb r1, [r0, 0x3] - ands r1, r3 - strb r1, [r0, 0x3] - bx lr - thumb_func_end tilemap_move_something - - thumb_func_start coords8_add -coords8_add: @ 805A5D4 - ldrb r3, [r0] - adds r3, r1 - strb r3, [r0] - ldrb r1, [r0, 0x1] - adds r1, r2 - strb r1, [r0, 0x1] - bx lr - thumb_func_end coords8_add - - thumb_func_start move_tilemap_camera_to_upper_left_corner -move_tilemap_camera_to_upper_left_corner: @ 805A5E4 - push {lr} - ldr r0, _0805A5F0 @ =gUnknown_3000E90 - bl move_tilemap_camera_to_upper_left_corner_ - pop {r0} - bx r0 - .align 2, 0 -_0805A5F0: .4byte gUnknown_3000E90 - thumb_func_end move_tilemap_camera_to_upper_left_corner - - thumb_func_start FieldUpdateBgTilemapScroll -FieldUpdateBgTilemapScroll: @ 805A5F4 - push {r4,r5,lr} - ldr r1, _0805A64C @ =gUnknown_3000E90 - ldr r0, _0805A650 @ =gUnknown_3000E98 - movs r2, 0 - ldrsh r5, [r0, r2] - ldrb r0, [r1] - adds r5, r0 - ldr r0, _0805A654 @ =gUnknown_3000E9A - movs r2, 0 - ldrsh r4, [r0, r2] - ldrb r1, [r1, 0x1] - adds r4, r1 - adds r4, 0x8 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0x14 - adds r1, r5, 0 - bl SetGpuReg - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x16 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x18 - adds r1, r5, 0 - bl SetGpuReg - movs r0, 0x1A - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x1C - adds r1, r5, 0 - bl SetGpuReg - movs r0, 0x1E - adds r1, r4, 0 - bl SetGpuReg - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805A64C: .4byte gUnknown_3000E90 -_0805A650: .4byte gUnknown_3000E98 -_0805A654: .4byte gUnknown_3000E9A - thumb_func_end FieldUpdateBgTilemapScroll - - thumb_func_start sub_805A658 -sub_805A658: @ 805A658 - push {r4,lr} - ldr r3, _0805A678 @ =gUnknown_3000E90 - ldr r2, _0805A67C @ =gUnknown_3000E98 - ldrh r2, [r2] - ldrb r4, [r3] - adds r2, r4 - strh r2, [r0] - ldr r0, _0805A680 @ =gUnknown_3000E9A - ldrh r0, [r0] - ldrb r3, [r3, 0x1] - adds r0, r3 - adds r0, 0x8 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805A678: .4byte gUnknown_3000E90 -_0805A67C: .4byte gUnknown_3000E98 -_0805A680: .4byte gUnknown_3000E9A - thumb_func_end sub_805A658 - - thumb_func_start DrawWholeMapView -DrawWholeMapView: @ 805A684 - push {lr} - ldr r0, _0805A6A0 @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - ldr r2, _0805A6A4 @ =gMapHeader - ldr r2, [r2] - bl DrawWholeMapViewInternal - pop {r0} - bx r0 - .align 2, 0 -_0805A6A0: .4byte gSaveBlock1Ptr -_0805A6A4: .4byte gMapHeader - thumb_func_end DrawWholeMapView - - thumb_func_start DrawWholeMapViewInternal -DrawWholeMapViewInternal: @ 805A6A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - mov r9, r1 - mov r8, r2 - movs r1, 0 -_0805A6BC: - ldr r2, _0805A728 @ =gUnknown_3000E90 - ldrb r0, [r2, 0x3] - adds r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0805A6D0 - subs r0, 0x20 - lsls r0, 24 - lsrs r0, 24 -_0805A6D0: - lsls r6, r0, 5 - movs r4, 0 - adds r7, r1, 0x2 - str r7, [sp] - lsrs r5, r1, 1 -_0805A6DA: - ldr r1, _0805A728 @ =gUnknown_3000E90 - ldrb r0, [r1, 0x2] - adds r0, r4, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0805A6EE - subs r0, 0x20 - lsls r0, 24 - lsrs r0, 24 -_0805A6EE: - adds r1, r6, r0 - lsls r1, 16 - lsrs r1, 16 - lsrs r2, r4, 1 - add r2, r10 - mov r0, r8 - mov r7, r9 - adds r3, r7, r5 - bl sub_805A948 - adds r0, r4, 0x2 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _0805A6DA - ldr r1, [sp] - lsls r0, r1, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _0805A6BC - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A728: .4byte gUnknown_3000E90 - thumb_func_end DrawWholeMapViewInternal - - thumb_func_start RedrawMapSlicesForCameraUpdate -RedrawMapSlicesForCameraUpdate: @ 805A72C - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - ldr r0, _0805A774 @ =gMapHeader - ldr r4, [r0] - cmp r6, 0 - ble _0805A744 - adds r0, r5, 0 - adds r1, r4, 0 - bl RedrawMapSliceWest -_0805A744: - cmp r6, 0 - bge _0805A750 - adds r0, r5, 0 - adds r1, r4, 0 - bl RedrawMapSliceEast -_0805A750: - cmp r7, 0 - ble _0805A75C - adds r0, r5, 0 - adds r1, r4, 0 - bl RedrawMapSliceNorth -_0805A75C: - cmp r7, 0 - bge _0805A768 - adds r0, r5, 0 - adds r1, r4, 0 - bl RedrawMapSliceSouth -_0805A768: - movs r0, 0x1 - strb r0, [r5, 0x4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A774: .4byte gMapHeader - thumb_func_end RedrawMapSlicesForCameraUpdate - - thumb_func_start RedrawMapSliceNorth -RedrawMapSliceNorth: @ 805A778 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - ldrb r0, [r5, 0x3] - adds r0, 0x1C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0805A790 - subs r0, 0x20 - lsls r0, 24 - lsrs r0, 24 -_0805A790: - lsls r6, r0, 5 - movs r4, 0 -_0805A794: - ldrb r0, [r5, 0x2] - adds r0, r4, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0805A7A6 - subs r0, 0x20 - lsls r0, 24 - lsrs r0, 24 -_0805A7A6: - adds r1, r6, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _0805A7D4 @ =gSaveBlock1Ptr - ldr r3, [r0] - movs r0, 0 - ldrsh r2, [r3, r0] - lsrs r0, r4, 1 - adds r2, r0 - movs r0, 0x2 - ldrsh r3, [r3, r0] - adds r3, 0xE - adds r0, r7, 0 - bl sub_805A948 - adds r0, r4, 0x2 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _0805A794 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A7D4: .4byte gSaveBlock1Ptr - thumb_func_end RedrawMapSliceNorth - - thumb_func_start RedrawMapSliceSouth -RedrawMapSliceSouth: @ 805A7D8 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - ldrb r0, [r5, 0x3] - lsls r6, r0, 5 - movs r4, 0 -_0805A7E4: - ldrb r0, [r5, 0x2] - adds r0, r4, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0805A7F6 - subs r0, 0x20 - lsls r0, 24 - lsrs r0, 24 -_0805A7F6: - adds r1, r6, r0 - ldr r0, _0805A820 @ =gSaveBlock1Ptr - ldr r3, [r0] - movs r0, 0 - ldrsh r2, [r3, r0] - lsrs r0, r4, 1 - adds r2, r0 - movs r0, 0x2 - ldrsh r3, [r3, r0] - adds r0, r7, 0 - bl sub_805A948 - adds r0, r4, 0x2 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _0805A7E4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A820: .4byte gSaveBlock1Ptr - thumb_func_end RedrawMapSliceSouth - - thumb_func_start RedrawMapSliceEast -RedrawMapSliceEast: @ 805A824 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - mov r8, r1 - ldrb r6, [r5, 0x2] - movs r4, 0 -_0805A832: - ldrb r0, [r5, 0x3] - adds r0, r4, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0805A844 - subs r0, 0x20 - lsls r0, 24 - lsrs r0, 24 -_0805A844: - lsls r1, r0, 5 - adds r1, r6 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _0805A878 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r3, 0 - ldrsh r2, [r0, r3] - movs r7, 0x2 - ldrsh r3, [r0, r7] - lsrs r0, r4, 1 - adds r3, r0 - mov r0, r8 - bl sub_805A948 - adds r0, r4, 0x2 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _0805A832 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A878: .4byte gSaveBlock1Ptr - thumb_func_end RedrawMapSliceEast - - thumb_func_start RedrawMapSliceWest -RedrawMapSliceWest: @ 805A87C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - mov r8, r1 - ldrb r0, [r6, 0x2] - adds r0, 0x1C - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1F - bls _0805A89A - adds r0, r5, 0 - subs r0, 0x20 - lsls r0, 24 - lsrs r5, r0, 24 -_0805A89A: - movs r4, 0 -_0805A89C: - ldrb r0, [r6, 0x3] - adds r0, r4, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0805A8AE - subs r0, 0x20 - lsls r0, 24 - lsrs r0, 24 -_0805A8AE: - lsls r1, r0, 5 - adds r1, r5 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _0805A8E4 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r3, 0 - ldrsh r2, [r0, r3] - adds r2, 0xE - movs r7, 0x2 - ldrsh r3, [r0, r7] - lsrs r0, r4, 1 - adds r3, r0 - mov r0, r8 - bl sub_805A948 - adds r0, r4, 0x2 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _0805A89C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A8E4: .4byte gSaveBlock1Ptr - thumb_func_end RedrawMapSliceWest - - thumb_func_start CurrentMapDrawMetatileAt -CurrentMapDrawMetatileAt: @ 805A8E8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _0805A914 @ =gUnknown_3000E90 - adds r1, r4, 0 - adds r2, r5, 0 - bl MapPosToBgTilemapOffset - adds r1, r0, 0 - cmp r1, 0 - blt _0805A90E - ldr r0, _0805A918 @ =gMapHeader - ldr r0, [r0] - lsls r1, 16 - lsrs r1, 16 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_805A948 -_0805A90E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805A914: .4byte gUnknown_3000E90 -_0805A918: .4byte gMapHeader - thumb_func_end CurrentMapDrawMetatileAt - - thumb_func_start DrawDoorMetatileAt -DrawDoorMetatileAt: @ 805A91C - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - ldr r0, _0805A944 @ =gUnknown_3000E90 - adds r1, r3, 0 - adds r2, r4, 0 - bl MapPosToBgTilemapOffset - cmp r0, 0 - blt _0805A93E - lsls r2, r0, 16 - lsrs r2, 16 - movs r0, 0x1 - adds r1, r5, 0 - bl DrawMetatile -_0805A93E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805A944: .4byte gUnknown_3000E90 - thumb_func_end DrawDoorMetatileAt - - thumb_func_start sub_805A948 -sub_805A948: @ 805A948 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r6, r2, 0 - adds r7, r3, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - adds r0, r6, 0 - adds r1, r7, 0 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x80 - lsls r0, 3 - cmp r4, r0 - bls _0805A970 - movs r4, 0 -_0805A970: - ldr r0, _0805A97C @ =0x0000027f - cmp r4, r0 - bhi _0805A980 - ldr r0, [r5, 0x10] - ldr r5, [r0, 0xC] - b _0805A98C - .align 2, 0 -_0805A97C: .4byte 0x0000027f -_0805A980: - ldr r0, [r5, 0x14] - ldr r5, [r0, 0xC] - ldr r1, _0805A9B0 @ =0xfffffd80 - adds r0, r4, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_0805A98C: - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r7, 16 - asrs r1, 16 - bl MapGridGetMetatileLayerTypeAt - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 4 - adds r1, r5, r1 - mov r2, r8 - bl DrawMetatile - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A9B0: .4byte 0xfffffd80 - thumb_func_end sub_805A948 - - thumb_func_start DrawMetatile -DrawMetatile: @ 805A9B4 - push {r4,lr} - adds r4, r1, 0 - lsls r2, 16 - lsrs r2, 16 - cmp r0, 0x1 - beq _0805AA0C - cmp r0, 0x1 - bgt _0805A9CA - cmp r0, 0 - beq _0805AA6C - b _0805AABE -_0805A9CA: - cmp r0, 0x2 - bne _0805AABE - ldr r0, _0805AA04 @ =gUnknown_300501C - ldr r0, [r0] - lsls r3, r2, 1 - adds r0, r3, r0 - ldrh r1, [r4] - strh r1, [r0] - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x2] - adds r2, r0, 0 - adds r2, 0x40 - ldrh r1, [r4, 0x4] - strh r1, [r2] - adds r0, 0x42 - ldrh r1, [r4, 0x6] - strh r1, [r0] - ldr r0, _0805AA08 @ =gUnknown_3005014 - ldr r0, [r0] - adds r0, r3, r0 - movs r2, 0 - strh r2, [r0] - strh r2, [r0, 0x2] - adds r1, r0, 0 - adds r1, 0x40 - strh r2, [r1] - adds r0, 0x42 - strh r2, [r0] - b _0805AAA2 - .align 2, 0 -_0805AA04: .4byte gUnknown_300501C -_0805AA08: .4byte gUnknown_3005014 -_0805AA0C: - ldr r0, _0805AA60 @ =gUnknown_300501C - ldr r0, [r0] - lsls r3, r2, 1 - adds r0, r3, r0 - ldrh r1, [r4] - strh r1, [r0] - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x2] - adds r2, r0, 0 - adds r2, 0x40 - ldrh r1, [r4, 0x4] - strh r1, [r2] - adds r0, 0x42 - ldrh r1, [r4, 0x6] - strh r1, [r0] - ldr r0, _0805AA64 @ =gUnknown_3005014 - ldr r0, [r0] - adds r0, r3, r0 - ldrh r1, [r4, 0x8] - strh r1, [r0] - ldrh r1, [r4, 0xA] - strh r1, [r0, 0x2] - adds r2, r0, 0 - adds r2, 0x40 - ldrh r1, [r4, 0xC] - strh r1, [r2] - adds r0, 0x42 - ldrh r1, [r4, 0xE] - strh r1, [r0] - ldr r0, _0805AA68 @ =gUnknown_3005018 - ldr r0, [r0] - adds r3, r0 - movs r1, 0 - strh r1, [r3] - strh r1, [r3, 0x2] - adds r0, r3, 0 - adds r0, 0x40 - strh r1, [r0] - adds r3, 0x42 - strh r1, [r3] - b _0805AABE - .align 2, 0 -_0805AA60: .4byte gUnknown_300501C -_0805AA64: .4byte gUnknown_3005014 -_0805AA68: .4byte gUnknown_3005018 -_0805AA6C: - ldr r0, _0805AAD8 @ =gUnknown_300501C - ldr r0, [r0] - lsls r3, r2, 1 - adds r0, r3, r0 - ldr r1, _0805AADC @ =0x00003014 - adds r2, r1, 0 - strh r2, [r0] - strh r2, [r0, 0x2] - adds r1, r0, 0 - adds r1, 0x40 - strh r2, [r1] - adds r0, 0x42 - strh r2, [r0] - ldr r0, _0805AAE0 @ =gUnknown_3005014 - ldr r0, [r0] - adds r0, r3, r0 - ldrh r1, [r4] - strh r1, [r0] - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x2] - adds r2, r0, 0 - adds r2, 0x40 - ldrh r1, [r4, 0x4] - strh r1, [r2] - adds r0, 0x42 - ldrh r1, [r4, 0x6] - strh r1, [r0] -_0805AAA2: - ldr r0, _0805AAE4 @ =gUnknown_3005018 - ldr r0, [r0] - adds r3, r0 - ldrh r0, [r4, 0x8] - strh r0, [r3] - ldrh r0, [r4, 0xA] - strh r0, [r3, 0x2] - adds r1, r3, 0 - adds r1, 0x40 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r3, 0x42 - ldrh r0, [r4, 0xE] - strh r0, [r3] -_0805AABE: - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - movs r0, 0x3 - bl ScheduleBgCopyTilemapToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805AAD8: .4byte gUnknown_300501C -_0805AADC: .4byte 0x00003014 -_0805AAE0: .4byte gUnknown_3005014 -_0805AAE4: .4byte gUnknown_3005018 - thumb_func_end DrawMetatile - - thumb_func_start MapPosToBgTilemapOffset -MapPosToBgTilemapOffset: @ 805AAE8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _0805AB18 @ =gSaveBlock1Ptr - ldr r3, [r0] - movs r5, 0 - ldrsh r0, [r3, r5] - subs r1, r0 - lsls r1, 1 - cmp r1, 0x1F - bhi _0805AB12 - ldrb r0, [r4, 0x2] - adds r1, r0 - cmp r1, 0x1F - ble _0805AB06 - subs r1, 0x20 -_0805AB06: - movs r5, 0x2 - ldrsh r0, [r3, r5] - subs r0, r2, r0 - lsls r2, r0, 1 - cmp r2, 0x1F - bls _0805AB1C -_0805AB12: - movs r0, 0x1 - negs r0, r0 - b _0805AB2A - .align 2, 0 -_0805AB18: .4byte gSaveBlock1Ptr -_0805AB1C: - ldrb r0, [r4, 0x3] - adds r2, r0 - cmp r2, 0x1F - ble _0805AB26 - subs r2, 0x20 -_0805AB26: - lsls r0, r2, 5 - adds r0, r1 -_0805AB2A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end MapPosToBgTilemapOffset - - thumb_func_start CameraUpdateCallback -CameraUpdateCallback: @ 805AB30 - push {lr} - adds r3, r0, 0 - ldr r2, [r3, 0x4] - cmp r2, 0 - beq _0805AB50 - ldr r1, _0805AB54 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r2, 0x32 - ldrsh r1, [r0, r2] - str r1, [r3, 0x8] - movs r1, 0x34 - ldrsh r0, [r0, r1] - str r0, [r3, 0xC] -_0805AB50: - pop {r0} - bx r0 - .align 2, 0 -_0805AB54: .4byte gSprites - thumb_func_end CameraUpdateCallback - - thumb_func_start ResetCameraUpdateInfo -ResetCameraUpdateInfo: @ 805AB58 - ldr r1, _0805AB6C @ =gUnknown_3005050 - movs r0, 0 - str r0, [r1, 0x8] - str r0, [r1, 0xC] - str r0, [r1, 0x10] - str r0, [r1, 0x14] - str r0, [r1, 0x4] - str r0, [r1] - bx lr - .align 2, 0 -_0805AB6C: .4byte gUnknown_3005050 - thumb_func_end ResetCameraUpdateInfo - - thumb_func_start InitCameraUpdateCallback -InitCameraUpdateCallback: @ 805AB70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0805ABA4 @ =gUnknown_3005050 - ldr r1, [r4, 0x4] - cmp r1, 0 - beq _0805AB8C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805ABA8 @ =gSprites - adds r0, r1 - bl DestroySprite -_0805AB8C: - adds r0, r5, 0 - bl AddCameraObject - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - ldr r0, _0805ABAC @ =CameraUpdateCallback - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805ABA4: .4byte gUnknown_3005050 -_0805ABA8: .4byte gSprites -_0805ABAC: .4byte CameraUpdateCallback - thumb_func_end InitCameraUpdateCallback - - thumb_func_start CameraUpdate -CameraUpdate: @ 805ABB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r6, _0805ACA4 @ =gUnknown_3005050 - ldr r1, [r6] - cmp r1, 0 - beq _0805ABC4 - adds r0, r6, 0 - bl _call_via_r1 -_0805ABC4: - ldr r7, [r6, 0x8] - ldr r0, [r6, 0xC] - mov r8, r0 - movs r4, 0 - movs r5, 0 - ldr r1, [r6, 0x10] - ldr r0, [r6, 0x14] - cmp r1, 0 - bne _0805ABE2 - cmp r7, 0 - beq _0805ABE2 - subs r4, 0x1 - cmp r7, 0 - ble _0805ABE2 - movs r4, 0x1 -_0805ABE2: - cmp r0, 0 - bne _0805ABF6 - mov r2, r8 - cmp r2, 0 - beq _0805ABF6 - movs r5, 0x1 - negs r5, r5 - cmp r2, 0 - ble _0805ABF6 - movs r5, 0x1 -_0805ABF6: - cmp r1, 0 - beq _0805AC08 - cmn r1, r7 - bne _0805AC08 - movs r4, 0x1 - negs r4, r4 - cmp r7, 0 - ble _0805AC08 - movs r4, 0x1 -_0805AC08: - cmp r0, 0 - beq _0805AC1C - mov r3, r8 - cmn r0, r3 - bne _0805AC1C - movs r4, 0x1 - negs r4, r4 - cmp r3, 0 - ble _0805AC1C - movs r4, 0x1 -_0805AC1C: - ldr r2, _0805ACA4 @ =gUnknown_3005050 - ldr r0, [r2, 0x10] - adds r1, r0, r7 - str r1, [r2, 0x10] - adds r0, r1, 0 - cmp r1, 0 - bge _0805AC2C - adds r0, 0xF -_0805AC2C: - asrs r0, 4 - lsls r0, 4 - subs r0, r1, r0 - str r0, [r2, 0x10] - ldr r0, [r2, 0x14] - mov r3, r8 - adds r1, r0, r3 - str r1, [r2, 0x14] - adds r0, r1, 0 - cmp r1, 0 - bge _0805AC44 - adds r0, 0xF -_0805AC44: - asrs r0, 4 - lsls r0, 4 - subs r0, r1, r0 - str r0, [r2, 0x14] - cmp r4, 0 - bne _0805AC54 - cmp r5, 0 - beq _0805AC7E -_0805AC54: - adds r0, r4, 0 - adds r1, r5, 0 - bl CameraMove - adds r0, r4, 0 - adds r1, r5, 0 - bl UpdateObjectEventsForCameraUpdate - ldr r6, _0805ACA8 @ =gUnknown_3000E90 - lsls r4, 1 - lsls r5, 1 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl tilemap_move_something - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl RedrawMapSlicesForCameraUpdate -_0805AC7E: - ldr r0, _0805ACA8 @ =gUnknown_3000E90 - adds r1, r7, 0 - mov r2, r8 - bl coords8_add - ldr r1, _0805ACAC @ =gTotalCameraPixelOffsetX - ldrh r0, [r1] - subs r0, r7 - strh r0, [r1] - ldr r1, _0805ACB0 @ =gTotalCameraPixelOffsetY - ldrh r0, [r1] - mov r2, r8 - subs r0, r2 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805ACA4: .4byte gUnknown_3005050 -_0805ACA8: .4byte gUnknown_3000E90 -_0805ACAC: .4byte gTotalCameraPixelOffsetX -_0805ACB0: .4byte gTotalCameraPixelOffsetY - thumb_func_end CameraUpdate - - thumb_func_start sub_805ACB4 -sub_805ACB4: @ 805ACB4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl CameraMove - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - bl UpdateObjectEventsForCameraUpdate - bl DrawWholeMapView - ldr r1, _0805ACE8 @ =gTotalCameraPixelOffsetX - lsls r4, 4 - ldrh r0, [r1] - subs r0, r4 - strh r0, [r1] - ldr r1, _0805ACEC @ =gTotalCameraPixelOffsetY - lsls r5, 4 - ldrh r0, [r1] - subs r0, r5 - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805ACE8: .4byte gTotalCameraPixelOffsetX -_0805ACEC: .4byte gTotalCameraPixelOffsetY - thumb_func_end sub_805ACB4 - - thumb_func_start sub_805ACF0 -sub_805ACF0: @ 805ACF0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _0805ADCC @ =gUnknown_3005050 - ldr r1, [r4] - cmp r1, 0 - beq _0805AD04 - adds r0, r4, 0 - bl _call_via_r1 -_0805AD04: - ldr r7, [r4, 0x8] - ldr r0, [r4, 0xC] - mov r8, r0 - movs r5, 0 - movs r6, 0 - ldr r1, [r4, 0x10] - ldr r0, [r4, 0x14] - cmp r1, 0 - bne _0805AD22 - cmp r7, 0 - beq _0805AD22 - subs r5, 0x1 - cmp r7, 0 - ble _0805AD22 - movs r5, 0x1 -_0805AD22: - cmp r0, 0 - bne _0805AD36 - mov r2, r8 - cmp r2, 0 - beq _0805AD36 - movs r6, 0x1 - negs r6, r6 - cmp r2, 0 - ble _0805AD36 - movs r6, 0x1 -_0805AD36: - cmp r1, 0 - beq _0805AD48 - cmn r1, r7 - bne _0805AD48 - movs r5, 0x1 - negs r5, r5 - cmp r7, 0 - ble _0805AD48 - movs r5, 0x1 -_0805AD48: - cmp r0, 0 - beq _0805AD5C - mov r3, r8 - cmn r0, r3 - bne _0805AD5C - movs r5, 0x1 - negs r5, r5 - cmp r3, 0 - ble _0805AD5C - movs r5, 0x1 -_0805AD5C: - ldr r2, _0805ADCC @ =gUnknown_3005050 - ldr r0, [r2, 0x10] - adds r1, r0, r7 - str r1, [r2, 0x10] - adds r0, r1, 0 - cmp r1, 0 - bge _0805AD6C - adds r0, 0xF -_0805AD6C: - asrs r0, 4 - lsls r0, 4 - subs r0, r1, r0 - str r0, [r2, 0x10] - ldr r0, [r2, 0x14] - mov r3, r8 - adds r1, r0, r3 - str r1, [r2, 0x14] - adds r0, r1, 0 - cmp r1, 0 - bge _0805AD84 - adds r0, 0xF -_0805AD84: - asrs r0, 4 - lsls r0, 4 - subs r0, r1, r0 - str r0, [r2, 0x14] - cmp r5, 0 - bne _0805AD94 - cmp r6, 0 - beq _0805ADB6 -_0805AD94: - adds r0, r5, 0 - adds r1, r6, 0 - bl CameraMove - ldr r4, _0805ADD0 @ =gUnknown_3000E90 - lsls r5, 1 - lsls r6, 1 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl tilemap_move_something - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl RedrawMapSlicesForCameraUpdate -_0805ADB6: - ldr r0, _0805ADD0 @ =gUnknown_3000E90 - adds r1, r7, 0 - mov r2, r8 - bl coords8_add - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805ADCC: .4byte gUnknown_3005050 -_0805ADD0: .4byte gUnknown_3000E90 - thumb_func_end sub_805ACF0 - - thumb_func_start SetCameraPanningCallback -SetCameraPanningCallback: @ 805ADD4 - ldr r1, _0805ADDC @ =gUnknown_3000EA0 - str r0, [r1] - bx lr - .align 2, 0 -_0805ADDC: .4byte gUnknown_3000EA0 - thumb_func_end SetCameraPanningCallback - - thumb_func_start SetCameraPanning -SetCameraPanning: @ 805ADE0 - ldr r2, _0805ADF0 @ =gUnknown_3000E98 - strh r0, [r2] - ldr r0, _0805ADF4 @ =gUnknown_3000E9A - lsls r1, 16 - asrs r1, 16 - adds r1, 0x20 - strh r1, [r0] - bx lr - .align 2, 0 -_0805ADF0: .4byte gUnknown_3000E98 -_0805ADF4: .4byte gUnknown_3000E9A - thumb_func_end SetCameraPanning - - thumb_func_start InstallCameraPanAheadCallback -InstallCameraPanAheadCallback: @ 805ADF8 - ldr r1, _0805AE14 @ =gUnknown_3000EA0 - ldr r0, _0805AE18 @ =CameraPanningCB_PanAhead - str r0, [r1] - ldr r1, _0805AE1C @ =gUnknown_3000E9C - movs r0, 0 - strb r0, [r1] - ldr r1, _0805AE20 @ =gUnknown_3000E98 - movs r0, 0 - strh r0, [r1] - ldr r1, _0805AE24 @ =gUnknown_3000E9A - movs r0, 0x20 - strh r0, [r1] - bx lr - .align 2, 0 -_0805AE14: .4byte gUnknown_3000EA0 -_0805AE18: .4byte CameraPanningCB_PanAhead -_0805AE1C: .4byte gUnknown_3000E9C -_0805AE20: .4byte gUnknown_3000E98 -_0805AE24: .4byte gUnknown_3000E9A - thumb_func_end InstallCameraPanAheadCallback - - thumb_func_start UpdateCameraPanning -UpdateCameraPanning: @ 805AE28 - push {lr} - ldr r0, _0805AE58 @ =gUnknown_3000EA0 - ldr r0, [r0] - cmp r0, 0 - beq _0805AE36 - bl _call_via_r0 -_0805AE36: - ldr r2, _0805AE5C @ =gSpriteCoordOffsetX - ldr r0, _0805AE60 @ =gTotalCameraPixelOffsetX - ldr r1, _0805AE64 @ =gUnknown_3000E98 - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r2] - ldr r2, _0805AE68 @ =gSpriteCoordOffsetY - ldr r0, _0805AE6C @ =gTotalCameraPixelOffsetY - ldr r1, _0805AE70 @ =gUnknown_3000E9A - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r1 - subs r0, 0x8 - strh r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0805AE58: .4byte gUnknown_3000EA0 -_0805AE5C: .4byte gSpriteCoordOffsetX -_0805AE60: .4byte gTotalCameraPixelOffsetX -_0805AE64: .4byte gUnknown_3000E98 -_0805AE68: .4byte gSpriteCoordOffsetY -_0805AE6C: .4byte gTotalCameraPixelOffsetY -_0805AE70: .4byte gUnknown_3000E9A - thumb_func_end UpdateCameraPanning - - thumb_func_start CameraPanningCB_PanAhead -CameraPanningCB_PanAhead: @ 805AE74 - push {lr} - ldr r0, _0805AE84 @ =gUnknown_2036E2C - ldrb r0, [r0] - cmp r0, 0 - bne _0805AE88 - bl InstallCameraPanAheadCallback - b _0805AF10 - .align 2, 0 -_0805AE84: .4byte gUnknown_2036E2C -_0805AE88: - ldr r0, _0805AEA0 @ =gPlayerAvatar - ldrb r0, [r0, 0x3] - cmp r0, 0x1 - bne _0805AEA8 - ldr r0, _0805AEA4 @ =gUnknown_3000E9C - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - cmp r1, 0 - beq _0805AF10 - b _0805AEAE - .align 2, 0 -_0805AEA0: .4byte gPlayerAvatar -_0805AEA4: .4byte gUnknown_3000E9C -_0805AEA8: - ldr r1, _0805AED0 @ =gUnknown_3000E9C - movs r0, 0 - strb r0, [r1] -_0805AEAE: - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0805AED8 - ldr r2, _0805AED4 @ =gUnknown_3000E9A - ldrh r3, [r2] - movs r0, 0 - ldrsh r1, [r2, r0] - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - ble _0805AF10 - subs r0, r3, 0x2 - b _0805AF0E - .align 2, 0 -_0805AED0: .4byte gUnknown_3000E9C -_0805AED4: .4byte gUnknown_3000E9A -_0805AED8: - cmp r0, 0x1 - bne _0805AEF4 - ldr r1, _0805AEF0 @ =gUnknown_3000E9A - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0x47 - bgt _0805AF10 - adds r0, r2, 0x2 - strh r0, [r1] - b _0805AF10 - .align 2, 0 -_0805AEF0: .4byte gUnknown_3000E9A -_0805AEF4: - ldr r2, _0805AF04 @ =gUnknown_3000E9A - ldrh r0, [r2] - movs r3, 0 - ldrsh r1, [r2, r3] - cmp r1, 0x1F - bgt _0805AF08 - adds r0, 0x2 - b _0805AF0E - .align 2, 0 -_0805AF04: .4byte gUnknown_3000E9A -_0805AF08: - cmp r1, 0x20 - ble _0805AF10 - subs r0, 0x2 -_0805AF0E: - strh r0, [r2] -_0805AF10: - pop {r0} - bx r0 - thumb_func_end CameraPanningCB_PanAhead - .align 2, 0 @ Don't pad with nop. diff --git a/asm/overworld.s b/asm/overworld.s index 14afde17a..2412a4d87 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3091,7 +3091,7 @@ InitOverworldBgs: @ 80562B0 movs r1, 0x5 movs r2, 0x1 bl SetBgAttribute - ldr r0, _08056348 @ =gUnknown_3005018 + ldr r0, _08056348 @ =gBGTilemapBuffers2 mov r8, r0 movs r4, 0x80 lsls r4, 4 @@ -3099,11 +3099,11 @@ InitOverworldBgs: @ 80562B0 bl AllocZeroed mov r1, r8 str r0, [r1] - ldr r6, _0805634C @ =gUnknown_3005014 + ldr r6, _0805634C @ =gBGTilemapBuffers1 adds r0, r4, 0 bl AllocZeroed str r0, [r6] - ldr r5, _08056350 @ =gUnknown_300501C + ldr r5, _08056350 @ =gBGTilemapBuffers3 adds r0, r4, 0 bl AllocZeroed str r0, [r5] @@ -3127,9 +3127,9 @@ InitOverworldBgs: @ 80562B0 bx r0 .align 2, 0 _08056344: .4byte gUnknown_826D320 -_08056348: .4byte gUnknown_3005018 -_0805634C: .4byte gUnknown_3005014 -_08056350: .4byte gUnknown_300501C +_08056348: .4byte gBGTilemapBuffers2 +_0805634C: .4byte gBGTilemapBuffers1 +_08056350: .4byte gBGTilemapBuffers3 thumb_func_end InitOverworldBgs thumb_func_start sub_8056354 @@ -3155,7 +3155,7 @@ sub_8056354: @ 8056354 movs r1, 0x5 movs r2, 0x1 bl SetBgAttribute - ldr r0, _080563E4 @ =gUnknown_3005018 + ldr r0, _080563E4 @ =gBGTilemapBuffers2 mov r8, r0 movs r4, 0x80 lsls r4, 4 @@ -3163,11 +3163,11 @@ sub_8056354: @ 8056354 bl AllocZeroed mov r1, r8 str r0, [r1] - ldr r6, _080563E8 @ =gUnknown_3005014 + ldr r6, _080563E8 @ =gBGTilemapBuffers1 adds r0, r4, 0 bl AllocZeroed str r0, [r6] - ldr r5, _080563EC @ =gUnknown_300501C + ldr r5, _080563EC @ =gBGTilemapBuffers3 adds r0, r4, 0 bl AllocZeroed str r0, [r5] @@ -3191,30 +3191,30 @@ sub_8056354: @ 8056354 bx r0 .align 2, 0 _080563E0: .4byte gUnknown_826D320 -_080563E4: .4byte gUnknown_3005018 -_080563E8: .4byte gUnknown_3005014 -_080563EC: .4byte gUnknown_300501C +_080563E4: .4byte gBGTilemapBuffers2 +_080563E8: .4byte gBGTilemapBuffers1 +_080563EC: .4byte gBGTilemapBuffers3 thumb_func_end sub_8056354 thumb_func_start CleanupOverworldWindowsAndTilemaps CleanupOverworldWindowsAndTilemaps: @ 80563F0 push {lr} bl FreeAllOverworldWindowBuffers - ldr r0, _08056414 @ =gUnknown_300501C + ldr r0, _08056414 @ =gBGTilemapBuffers3 ldr r0, [r0] bl Free - ldr r0, _08056418 @ =gUnknown_3005014 + ldr r0, _08056418 @ =gBGTilemapBuffers1 ldr r0, [r0] bl Free - ldr r0, _0805641C @ =gUnknown_3005018 + ldr r0, _0805641C @ =gBGTilemapBuffers2 ldr r0, [r0] bl Free pop {r0} bx r0 .align 2, 0 -_08056414: .4byte gUnknown_300501C -_08056418: .4byte gUnknown_3005014 -_0805641C: .4byte gUnknown_3005018 +_08056414: .4byte gBGTilemapBuffers3 +_08056418: .4byte gBGTilemapBuffers1 +_0805641C: .4byte gBGTilemapBuffers2 thumb_func_end CleanupOverworldWindowsAndTilemaps thumb_func_start sub_8056420 @@ -5344,7 +5344,7 @@ _08057620: beq _08057648 b _0805754E _0805762C: - ldr r0, _08057640 @ =gUnknown_3005050 + ldr r0, _08057640 @ =gFieldCamera ldr r1, _08057644 @ =sub_8057748 str r1, [r0] bl SetFieldVBlankCallback @@ -5353,7 +5353,7 @@ _0805762C: movs r0, 0x1 b _0805764A .align 2, 0 -_08057640: .4byte gUnknown_3005050 +_08057640: .4byte gFieldCamera _08057644: .4byte sub_8057748 _08057648: movs r0, 0 diff --git a/common_syms/field_camera.txt b/common_syms/field_camera.txt new file mode 100644 index 000000000..65de29fc3 --- /dev/null +++ b/common_syms/field_camera.txt @@ -0,0 +1,3 @@ +gFieldCamera +gTotalCameraPixelOffsetY +gTotalCameraPixelOffsetX
\ No newline at end of file diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 50d9935fc..5c65db228 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -129,6 +129,8 @@ void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); u8 ZCoordToPriority(u8 z); void SetObjectSubpriorityByZCoord(u8 z, struct Sprite * sprite, u8 offset); void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); +u8 AddCameraObject(u8 trackedSpriteId); +void UpdateObjectEventsForCameraUpdate(s16 x, s16 y); // Exported data declarations diff --git a/include/field_camera.h b/include/field_camera.h index fdab03255..65003bc6f 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -8,9 +8,9 @@ struct CameraObject { void (*callback)(struct CameraObject *); - u32 unk4; - s32 unk8; - s32 unkC; + u32 spriteId; + s32 movementSpeedX; + s32 movementSpeedY; s32 x; s32 y; }; diff --git a/include/fieldmap.h b/include/fieldmap.h index a8e31685f..7cccbcc24 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -33,5 +33,6 @@ void save_serialize_map(void); u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit); u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr); void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 arg2); +bool8 CameraMove(s32 x, s32 y); #endif //GUARD_FIELDMAP_H diff --git a/include/overworld.h b/include/overworld.h index 02492f74b..fecacf6de 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -194,6 +194,9 @@ void CB1_Overworld(void); void sub_80568C4(void); u8 GetLastUsedWarpMapSectionId(void); +extern u16 *gBGTilemapBuffers1; +extern u16 *gBGTilemapBuffers2; +extern u16 *gBGTilemapBuffers3; extern u16 gHeldKeyCodeToSend; #endif //GUARD_OVERWORLD_H diff --git a/ld_script.txt b/ld_script.txt index ef3c4a997..094bf1c88 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -90,7 +90,7 @@ SECTIONS { asm/overworld.o(.text); src/fieldmap.o(.text); src/metatile_behavior.o(.text); - asm/field_camera.o(.text); + src/field_camera.o(.text); src/field_door.o(.text); asm/field_player_avatar.o(.text); asm/event_object_movement.o(.text); diff --git a/src/field_camera.c b/src/field_camera.c new file mode 100644 index 000000000..0263a481a --- /dev/null +++ b/src/field_camera.c @@ -0,0 +1,572 @@ +#include "global.h" +#include "gflib.h" +#include "field_camera.h" +#include "field_player_avatar.h" +#include "fieldmap.h" +#include "event_object_movement.h" +#include "new_menu_helpers.h" +#include "overworld.h" + +EWRAM_DATA bool8 gUnusedBikeCameraAheadPanback = FALSE; + +// Static type declarations +struct FieldCameraOffset +{ + u8 xPixelOffset; + u8 yPixelOffset; + u8 xTileOffset; + u8 yTileOffset; + bool8 copyBGToVRAM; +}; + +// static functions +static void RedrawMapSliceNorth(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); +static void RedrawMapSliceSouth(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); +static void RedrawMapSliceEast(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); +static void RedrawMapSliceWest(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); +static s32 MapPosToBgTilemapOffset(struct FieldCameraOffset *a, s32 x, s32 y); +static void DrawWholeMapViewInternal(int x, int y, const struct MapLayout *mapLayout); +static void DrawMetatileAt(const struct MapLayout *mapLayout, u16, int, int); +static void DrawMetatile(s32 a, const u16 *b, u16 c); +static void CameraPanningCB_PanAhead(void); + +// IWRAM bss vars +static struct FieldCameraOffset sFieldCameraOffset; +static s16 sHorizontalCameraPan; +static s16 sVerticalCameraPan; +static u8 gUnknown_3000E9C; +static void (*sFieldCameraPanningCallback)(void); + +struct CameraObject gFieldCamera; +u16 gTotalCameraPixelOffsetY; +u16 gTotalCameraPixelOffsetX; + +// text +static void move_tilemap_camera_to_upper_left_corner_(struct FieldCameraOffset *cameraOffset) +{ + cameraOffset->xTileOffset = 0; + cameraOffset->yTileOffset = 0; + cameraOffset->xPixelOffset = 0; + cameraOffset->yPixelOffset = 0; + cameraOffset->copyBGToVRAM = TRUE; +} + +static void tilemap_move_something(struct FieldCameraOffset *cameraOffset, u32 b, u32 c) +{ + cameraOffset->xTileOffset += b; + cameraOffset->xTileOffset %= 32; + cameraOffset->yTileOffset += c; + cameraOffset->yTileOffset %= 32; +} + +static void coords8_add(struct FieldCameraOffset *cameraOffset, u32 b, u32 c) +{ + cameraOffset->xPixelOffset += b; + cameraOffset->yPixelOffset += c; +} + +void move_tilemap_camera_to_upper_left_corner(void) +{ + move_tilemap_camera_to_upper_left_corner_(&sFieldCameraOffset); +} + +void FieldUpdateBgTilemapScroll(void) +{ + u32 r4, r5; + r5 = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; + r4 = sVerticalCameraPan + sFieldCameraOffset.yPixelOffset + 8; + + SetGpuReg(REG_OFFSET_BG1HOFS, r5); + SetGpuReg(REG_OFFSET_BG1VOFS, r4); + SetGpuReg(REG_OFFSET_BG2HOFS, r5); + SetGpuReg(REG_OFFSET_BG2VOFS, r4); + SetGpuReg(REG_OFFSET_BG3HOFS, r5); + SetGpuReg(REG_OFFSET_BG3VOFS, r4); +} + +void sub_805A658(s16 *a, s16 *b) +{ + *a = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; + *b = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8; +} + +void DrawWholeMapView(void) +{ + DrawWholeMapViewInternal(gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y, gMapHeader.mapLayout); +// sFieldCameraOffset.copyBGToVRAM = TRUE; +} + +static void DrawWholeMapViewInternal(int x, int y, const struct MapLayout *mapLayout) +{ + u8 i; + u8 j; + u32 r6; + u8 temp; + + for (i = 0; i < 32; i += 2) + { + temp = sFieldCameraOffset.yTileOffset + i; + if (temp >= 32) + temp -= 32; + r6 = temp * 32; + for (j = 0; j < 32; j += 2) + { + temp = sFieldCameraOffset.xTileOffset + j; + if (temp >= 32) + temp -= 32; + DrawMetatileAt(mapLayout, r6 + temp, x + j / 2, y + i / 2); + } + } +} + +static void RedrawMapSlicesForCameraUpdate(struct FieldCameraOffset *cameraOffset, int x, int y) +{ + const struct MapLayout *mapLayout = gMapHeader.mapLayout; + + if (x > 0) + RedrawMapSliceWest(cameraOffset, mapLayout); + if (x < 0) + RedrawMapSliceEast(cameraOffset, mapLayout); + if (y > 0) + RedrawMapSliceNorth(cameraOffset, mapLayout); + if (y < 0) + RedrawMapSliceSouth(cameraOffset, mapLayout); + cameraOffset->copyBGToVRAM = TRUE; +} + +static void RedrawMapSliceNorth(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout) +{ + u8 i; + u8 temp; + u32 r7; + + temp = cameraOffset->yTileOffset + 28; + if (temp >= 32) + temp -= 32; + r7 = temp * 32; + for (i = 0; i < 32; i += 2) + { + temp = cameraOffset->xTileOffset + i; + if (temp >= 32) + temp -= 32; + DrawMetatileAt(mapLayout, r7 + temp, gSaveBlock1Ptr->pos.x + i / 2, gSaveBlock1Ptr->pos.y + 14); + } +} + +static void RedrawMapSliceSouth(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout) +{ + u8 i; + u8 temp; + u32 r7 = cameraOffset->yTileOffset * 32; + + for (i = 0; i < 32; i += 2) + { + temp = cameraOffset->xTileOffset + i; + if (temp >= 32) + temp -= 32; + DrawMetatileAt(mapLayout, r7 + temp, gSaveBlock1Ptr->pos.x + i / 2, gSaveBlock1Ptr->pos.y); + } +} + +static void RedrawMapSliceEast(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout) +{ + u8 i; + u8 temp; + u32 r6 = cameraOffset->xTileOffset; + + for (i = 0; i < 32; i += 2) + { + temp = cameraOffset->yTileOffset + i; + if (temp >= 32) + temp -= 32; + DrawMetatileAt(mapLayout, temp * 32 + r6, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y + i / 2); + } +} + +static void RedrawMapSliceWest(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout) +{ + u8 i; + u8 temp; + u8 r5 = cameraOffset->xTileOffset + 28; + + if (r5 >= 32) + r5 -= 32; + for (i = 0; i < 32; i += 2) + { + temp = cameraOffset->yTileOffset + i; + if (temp >= 32) + temp -= 32; + DrawMetatileAt(mapLayout, temp * 32 + r5, gSaveBlock1Ptr->pos.x + 14, gSaveBlock1Ptr->pos.y + i / 2); + } +} + +void CurrentMapDrawMetatileAt(int x, int y) +{ + int offset = MapPosToBgTilemapOffset(&sFieldCameraOffset, x, y); + + if (offset >= 0) + { + DrawMetatileAt(gMapHeader.mapLayout, offset, x, y); +// sFieldCameraOffset.copyBGToVRAM = TRUE; + } +} + +void DrawDoorMetatileAt(int x, int y, const u16 *arr) +{ + int offset = MapPosToBgTilemapOffset(&sFieldCameraOffset, x, y); + + if (offset >= 0) + { + DrawMetatile(1, arr, offset); +// sFieldCameraOffset.copyBGToVRAM = TRUE; + } +} + +static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, int y) +{ + u16 metatileId = MapGridGetMetatileIdAt(x, y); + u16 *metatiles; + + if (metatileId > NUM_METATILES_TOTAL) + metatileId = 0; + if (metatileId < NUM_METATILES_IN_PRIMARY) + metatiles = mapLayout->primaryTileset->metatiles; + else + { + metatiles = mapLayout->secondaryTileset->metatiles; + metatileId -= NUM_METATILES_IN_PRIMARY; + } + DrawMetatile(MapGridGetMetatileLayerTypeAt(x, y), metatiles + metatileId * 8, offset); +} + +static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset) +{ + switch (metatileLayerType) + { + case 2: // LAYER_TYPE_ + // Draw metatile's bottom layer to the bottom background layer. + gBGTilemapBuffers3[offset] = metatiles[0]; + gBGTilemapBuffers3[offset + 1] = metatiles[1]; + gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; + gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + + // Draw transparent tiles to the middle background layer. + gBGTilemapBuffers1[offset] = 0; + gBGTilemapBuffers1[offset + 1] = 0; + gBGTilemapBuffers1[offset + 0x20] = 0; + gBGTilemapBuffers1[offset + 0x21] = 0; + + // Draw metatile's top layer to the top background layer. + gBGTilemapBuffers2[offset] = metatiles[4]; + gBGTilemapBuffers2[offset + 1] = metatiles[5]; + gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; + gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + break; + case 1: // LAYER_TYPE_COVERED_BY_OBJECTS + // Draw metatile's bottom layer to the bottom background layer. + gBGTilemapBuffers3[offset] = metatiles[0]; + gBGTilemapBuffers3[offset + 1] = metatiles[1]; + gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; + gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + + // Draw metatile's top layer to the middle background layer. + gBGTilemapBuffers1[offset] = metatiles[4]; + gBGTilemapBuffers1[offset + 1] = metatiles[5]; + gBGTilemapBuffers1[offset + 0x20] = metatiles[6]; + gBGTilemapBuffers1[offset + 0x21] = metatiles[7]; + + // Draw transparent tiles to the top background layer. + gBGTilemapBuffers2[offset] = 0; + gBGTilemapBuffers2[offset + 1] = 0; + gBGTilemapBuffers2[offset + 0x20] = 0; + gBGTilemapBuffers2[offset + 0x21] = 0; + break; + case 0: // LAYER_TYPE_NORMAL + // Draw garbage to the bottom background layer. + gBGTilemapBuffers3[offset] = 0x3014; + gBGTilemapBuffers3[offset + 1] = 0x3014; + gBGTilemapBuffers3[offset + 0x20] = 0x3014; + gBGTilemapBuffers3[offset + 0x21] = 0x3014; + + // Draw metatile's bottom layer to the middle background layer. + gBGTilemapBuffers1[offset] = metatiles[0]; + gBGTilemapBuffers1[offset + 1] = metatiles[1]; + gBGTilemapBuffers1[offset + 0x20] = metatiles[2]; + gBGTilemapBuffers1[offset + 0x21] = metatiles[3]; + + // Draw metatile's top layer to the top background layer, which covers object event sprites. + gBGTilemapBuffers2[offset] = metatiles[4]; + gBGTilemapBuffers2[offset + 1] = metatiles[5]; + gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; + gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + break; + } + ScheduleBgCopyTilemapToVram(1); + ScheduleBgCopyTilemapToVram(2); + ScheduleBgCopyTilemapToVram(3); +} + +static s32 MapPosToBgTilemapOffset(struct FieldCameraOffset *cameraOffset, s32 x, s32 y) +{ + x -= gSaveBlock1Ptr->pos.x; + x *= 2; + if (x >= 32 || x < 0) + return -1; + x = x + cameraOffset->xTileOffset; + if (x >= 32) + x -= 32; + + y = (y - gSaveBlock1Ptr->pos.y) * 2; + if (y >= 32 || y < 0) + return -1; + y = y + cameraOffset->yTileOffset; + if (y >= 32) + y -= 32; + + return y * 32 + x; +} + +static void CameraUpdateCallback(struct CameraObject *fieldCamera) +{ + if (fieldCamera->spriteId != 0) + { + fieldCamera->movementSpeedX = gSprites[fieldCamera->spriteId].data[2]; + fieldCamera->movementSpeedY = gSprites[fieldCamera->spriteId].data[3]; + } +} + +void ResetCameraUpdateInfo(void) +{ + gFieldCamera.movementSpeedX = 0; + gFieldCamera.movementSpeedY = 0; + gFieldCamera.x = 0; + gFieldCamera.y = 0; + gFieldCamera.spriteId = 0; + gFieldCamera.callback = NULL; +} + +u32 InitCameraUpdateCallback(u8 trackedSpriteId) +{ + if (gFieldCamera.spriteId != 0) + DestroySprite(&gSprites[gFieldCamera.spriteId]); + gFieldCamera.spriteId = AddCameraObject(trackedSpriteId); + gFieldCamera.callback = CameraUpdateCallback; + return 0; +} + +void CameraUpdate(void) +{ + int deltaX; + int deltaY; + int curMovementOffsetY; + int curMovementOffsetX; + int movementSpeedX; + int movementSpeedY; + + if (gFieldCamera.callback != NULL) + gFieldCamera.callback(&gFieldCamera); + movementSpeedX = gFieldCamera.movementSpeedX; + movementSpeedY = gFieldCamera.movementSpeedY; + deltaX = 0; + deltaY = 0; + curMovementOffsetX = gFieldCamera.x; + curMovementOffsetY = gFieldCamera.y; + + + if (curMovementOffsetX == 0 && movementSpeedX != 0) + { + if (movementSpeedX > 0) + deltaX = 1; + else + deltaX = -1; + } + if (curMovementOffsetY == 0 && movementSpeedY != 0) + { + if (movementSpeedY > 0) + deltaY = 1; + else + deltaY = -1; + } + if (curMovementOffsetX != 0 && curMovementOffsetX == -movementSpeedX) + { + if (movementSpeedX > 0) + deltaX = 1; + else + deltaX = -1; + } + if (curMovementOffsetY != 0 && curMovementOffsetY == -movementSpeedY) + { + if (movementSpeedY > 0) + deltaX = 1; + else + deltaX = -1; + } + + gFieldCamera.x += movementSpeedX; + gFieldCamera.x = gFieldCamera.x - 16 * (gFieldCamera.x / 16); + gFieldCamera.y += movementSpeedY; + gFieldCamera.y = gFieldCamera.y - 16 * (gFieldCamera.y / 16); + + if (deltaX != 0 || deltaY != 0) + { + CameraMove(deltaX, deltaY); + UpdateObjectEventsForCameraUpdate(deltaX, deltaY); +// RotatingGatePuzzleCameraUpdate(deltaX, deltaY); +// ResetBerryTreeSparkleFlags(); + tilemap_move_something(&sFieldCameraOffset, deltaX * 2, deltaY * 2); + RedrawMapSlicesForCameraUpdate(&sFieldCameraOffset, deltaX * 2, deltaY * 2); + } + + coords8_add(&sFieldCameraOffset, movementSpeedX, movementSpeedY); + gTotalCameraPixelOffsetX -= movementSpeedX; + gTotalCameraPixelOffsetY -= movementSpeedY; +} + +void MoveCameraAndRedrawMap(int deltaX, int deltaY) //unused +{ + CameraMove(deltaX, deltaY); + UpdateObjectEventsForCameraUpdate(deltaX, deltaY); + DrawWholeMapView(); + gTotalCameraPixelOffsetX -= deltaX * 16; + gTotalCameraPixelOffsetY -= deltaY * 16; +} + +void sub_805ACF0(void) +{ + int deltaX; + int deltaY; + int curMovementOffsetY; + int curMovementOffsetX; + int movementSpeedX; + int movementSpeedY; + + if (gFieldCamera.callback != NULL) + gFieldCamera.callback(&gFieldCamera); + movementSpeedX = gFieldCamera.movementSpeedX; + movementSpeedY = gFieldCamera.movementSpeedY; + deltaX = 0; + deltaY = 0; + curMovementOffsetX = gFieldCamera.x; + curMovementOffsetY = gFieldCamera.y; + + + if (curMovementOffsetX == 0 && movementSpeedX != 0) + { + if (movementSpeedX > 0) + deltaX = 1; + else + deltaX = -1; + } + if (curMovementOffsetY == 0 && movementSpeedY != 0) + { + if (movementSpeedY > 0) + deltaY = 1; + else + deltaY = -1; + } + if (curMovementOffsetX != 0 && curMovementOffsetX == -movementSpeedX) + { + if (movementSpeedX > 0) + deltaX = 1; + else + deltaX = -1; + } + if (curMovementOffsetY != 0 && curMovementOffsetY == -movementSpeedY) + { + if (movementSpeedY > 0) + deltaX = 1; + else + deltaX = -1; + } + + gFieldCamera.x += movementSpeedX; + gFieldCamera.x = gFieldCamera.x - 16 * (gFieldCamera.x / 16); + gFieldCamera.y += movementSpeedY; + gFieldCamera.y = gFieldCamera.y - 16 * (gFieldCamera.y / 16); + + if (deltaX != 0 || deltaY != 0) + { + CameraMove(deltaX, deltaY); +// UpdateObjectEventsForCameraUpdate(deltaX, deltaY); +// RotatingGatePuzzleCameraUpdate(deltaX, deltaY); +// ResetBerryTreeSparkleFlags(); + tilemap_move_something(&sFieldCameraOffset, deltaX * 2, deltaY * 2); + RedrawMapSlicesForCameraUpdate(&sFieldCameraOffset, deltaX * 2, deltaY * 2); + } + + coords8_add(&sFieldCameraOffset, movementSpeedX, movementSpeedY); +// gTotalCameraPixelOffsetX -= movementSpeedX; +// gTotalCameraPixelOffsetY -= movementSpeedY; +} + +void SetCameraPanningCallback(void (*a)(void)) +{ + sFieldCameraPanningCallback = a; +} + +void SetCameraPanning(s16 a, s16 b) +{ + sHorizontalCameraPan = a; + sVerticalCameraPan = b + 32; +} + +void InstallCameraPanAheadCallback(void) +{ + sFieldCameraPanningCallback = CameraPanningCB_PanAhead; + gUnknown_3000E9C = 0; + sHorizontalCameraPan = 0; + sVerticalCameraPan = 32; +} + +void UpdateCameraPanning(void) +{ + if (sFieldCameraPanningCallback != NULL) + sFieldCameraPanningCallback(); + //Update sprite offset of overworld objects + gSpriteCoordOffsetX = gTotalCameraPixelOffsetX - sHorizontalCameraPan; + gSpriteCoordOffsetY = gTotalCameraPixelOffsetY - sVerticalCameraPan - 8; +} + +static void CameraPanningCB_PanAhead(void) +{ + u8 var; + + if (gUnusedBikeCameraAheadPanback == FALSE) + { + InstallCameraPanAheadCallback(); + } + else + { + // this code is never reached. + if (gPlayerAvatar.tileTransitionState == 1) + { + gUnknown_3000E9C ^= 1; + if (gUnknown_3000E9C == 0) + return; + } + else + { + gUnknown_3000E9C = 0; + } + + var = player_get_direction_upper_nybble(); + if (var == 2) + { + if (sVerticalCameraPan > -8) + sVerticalCameraPan -= 2; + } + else if (var == 1) + { + if (sVerticalCameraPan < 72) + sVerticalCameraPan += 2; + } + else if (sVerticalCameraPan < 32) + { + sVerticalCameraPan += 2; + } + else if (sVerticalCameraPan > 32) + { + sVerticalCameraPan -= 2; + } + } +} diff --git a/sym_bss.txt b/sym_bss.txt index 3b3148efc..0ada68f3e 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -37,22 +37,10 @@ gUnknown_3000E88: @ 3000E88 gUnknown_3000E89: @ 3000E89 .space 0x7 -gUnknown_3000E90: @ 3000E90 - .space 0x8 - -gUnknown_3000E98: @ 3000E98 - .space 0x2 - -gUnknown_3000E9A: @ 3000E9A - .space 0x2 - -gUnknown_3000E9C: @ 3000E9C - .space 0x4 - -gUnknown_3000EA0: @ 3000EA0 - .space 0x8 + .align 3 + .include "src/field_camera.o" - .align 2 + .align 3 .include "src/script.o" .align 2 .include "src/start_menu.o" diff --git a/sym_common.txt b/sym_common.txt index 37fa1cf7c..2ec8e6188 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -20,13 +20,13 @@ .include "load_save.o" .align 2 -gUnknown_3005014: @ 3005014 +gBGTilemapBuffers1: @ 3005014 .space 0x4 -gUnknown_3005018: @ 3005018 +gBGTilemapBuffers2: @ 3005018 .space 0x4 -gUnknown_300501C: @ 300501C +gBGTilemapBuffers3: @ 300501C .space 0x4 gFieldCallback: @ 3005020 @@ -48,14 +48,7 @@ gFieldLinkPlayerCount: @ 3005030 .include "fieldmap.o" .align 4 -gUnknown_3005050: @ 3005050 - .space 0x18 - -gTotalCameraPixelOffsetY: @ 3005068 - .space 0x4 - -gTotalCameraPixelOffsetX: @ 300506C - .space 0x4 + .include "field_camera.o" .align 2 .include "scrcmd.o" diff --git a/sym_ewram.txt b/sym_ewram.txt index 9de1255c2..893c9786e 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -76,11 +76,8 @@ gUnknown_2031DEC: @ 2031DEC .align 2 .include "src/fieldmap.o" - .align 2 - @ .include "src/field_camera.o" -gUnknown_2036E2C: @ 2036E2C - .space 0x4 + .include "src/field_camera.o" .align 2 @ .include "src/field_player_avatar.o" |