.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start GetPostCameraMoveMapBorderId GetPostCameraMoveMapBorderId: @ 805943C push {r4,lr} adds r3, r1, 0 ldr r1, _08059460 @ =gSaveBlock1Ptr ldr r1, [r1] movs r4, 0 ldrsh r2, [r1, r4] adds r0, 0x7 adds r2, r0 movs r0, 0x2 ldrsh r1, [r1, r0] adds r3, 0x7 adds r1, r3 adds r0, r2, 0 bl GetMapBorderIdAt pop {r4} pop {r1} bx r1 .align 2, 0 _08059460: .4byte gSaveBlock1Ptr thumb_func_end GetPostCameraMoveMapBorderId thumb_func_start CanCameraMoveInDirection CanCameraMoveInDirection: @ 8059464 push {r4,r5,lr} ldr r1, _0805949C @ =gSaveBlock1Ptr ldr r4, [r1] movs r1, 0 ldrsh r3, [r4, r1] ldr r2, _080594A0 @ =gUnknown_826D2D8 lsls r0, 3 adds r1, r0, r2 ldr r1, [r1] adds r1, 0x7 adds r3, r1 movs r5, 0x2 ldrsh r1, [r4, r5] adds r2, 0x4 adds r0, r2 ldr r0, [r0] adds r0, 0x7 adds r1, r0 adds r0, r3, 0 bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080594A4 movs r0, 0x1 b _080594A6 .align 2, 0 _0805949C: .4byte gSaveBlock1Ptr _080594A0: .4byte gUnknown_826D2D8 _080594A4: movs r0, 0 _080594A6: pop {r4,r5} pop {r1} bx r1 thumb_func_end CanCameraMoveInDirection thumb_func_start sub_80594AC sub_80594AC: @ 80594AC push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r7, r3, 0 bl mapconnection_get_mapheader adds r3, r0, 0 cmp r4, 0x2 beq _08059514 cmp r4, 0x2 bgt _080594CA cmp r4, 0x1 beq _08059500 b _08059526 _080594CA: cmp r4, 0x3 beq _080594E8 cmp r4, 0x4 bne _08059526 ldr r0, _080594E4 @ =gSaveBlock1Ptr ldr r1, [r0] negs r0, r6 strh r0, [r1] ldr r2, [r5, 0x4] ldrh r0, [r1, 0x2] subs r0, r2 b _08059524 .align 2, 0 _080594E4: .4byte gSaveBlock1Ptr _080594E8: ldr r0, _080594FC @ =gSaveBlock1Ptr ldr r1, [r0] ldr r0, [r3] ldr r0, [r0] strh r0, [r1] ldr r2, [r5, 0x4] ldrh r0, [r1, 0x2] subs r0, r2 b _08059524 .align 2, 0 _080594FC: .4byte gSaveBlock1Ptr _08059500: ldr r0, _08059510 @ =gSaveBlock1Ptr ldr r1, [r0] ldr r2, [r5, 0x4] ldrh r0, [r1] subs r0, r2 strh r0, [r1] negs r0, r7 b _08059524 .align 2, 0 _08059510: .4byte gSaveBlock1Ptr _08059514: ldr r0, _0805952C @ =gSaveBlock1Ptr ldr r1, [r0] ldr r2, [r5, 0x4] ldrh r0, [r1] subs r0, r2 strh r0, [r1] ldr r0, [r3] ldr r0, [r0, 0x4] _08059524: strh r0, [r1, 0x2] _08059526: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805952C: .4byte gSaveBlock1Ptr thumb_func_end sub_80594AC thumb_func_start CameraMove CameraMove: @ 8059530 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 mov r9, r1 ldr r1, _08059570 @ =gUnknown_2036E18 ldrb r0, [r1] movs r1, 0x2 negs r1, r1 ands r1, r0 ldr r2, _08059570 @ =gUnknown_2036E18 strb r1, [r2] mov r0, r10 mov r1, r9 bl GetPostCameraMoveMapBorderId adds r7, r0, 0 adds r0, r7, 0x1 cmp r0, 0x1 bhi _08059578 ldr r0, _08059574 @ =gSaveBlock1Ptr ldr r1, [r0] ldrh r0, [r1] add r0, r10 strh r0, [r1] ldrh r0, [r1, 0x2] add r0, r9 strh r0, [r1, 0x2] b _080595E2 .align 2, 0 _08059570: .4byte gUnknown_2036E18 _08059574: .4byte gSaveBlock1Ptr _08059578: bl save_serialize_map ldr r1, _080595F8 @ =gSaveBlock1Ptr ldr r0, [r1] movs r2, 0 ldrsh r5, [r0, r2] movs r1, 0x2 ldrsh r6, [r0, r1] lsls r2, r7, 24 lsrs r2, 24 mov r8, r2 mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 bl sub_8059600 adds r4, r0, 0 adds r1, r7, 0 mov r2, r10 mov r3, r9 bl sub_80594AC ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] bl sub_8055864 ldr r1, _080595FC @ =gUnknown_2036E18 ldrb r0, [r1] movs r1, 0x1 orrs r0, r1 ldr r2, _080595FC @ =gUnknown_2036E18 strb r0, [r2] ldr r0, _080595F8 @ =gSaveBlock1Ptr ldr r1, [r0] movs r2, 0 ldrsh r0, [r1, r2] subs r5, r0 ldr r0, _080595FC @ =gUnknown_2036E18 str r5, [r0, 0x4] movs r2, 0x2 ldrsh r0, [r1, r2] subs r6, r0 ldr r0, _080595FC @ =gUnknown_2036E18 str r6, [r0, 0x8] ldrh r0, [r1] add r0, r10 strh r0, [r1] ldrh r0, [r1, 0x2] add r0, r9 strh r0, [r1, 0x2] mov r0, r8 bl sub_8059250 _080595E2: ldr r0, _080595FC @ =gUnknown_2036E18 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080595F8: .4byte gSaveBlock1Ptr _080595FC: .4byte gUnknown_2036E18 thumb_func_end CameraMove thumb_func_start sub_8059600 sub_8059600: @ 8059600 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r1 mov r8, r2 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0805963C @ =gMapHeader ldr r0, [r0, 0xC] ldr r7, [r0] ldr r4, [r0, 0x4] movs r5, 0 cmp r5, r7 bge _08059648 _0805961E: ldrb r0, [r4] cmp r0, r6 bne _08059640 adds r0, r6, 0 mov r1, r9 mov r2, r8 adds r3, r4, 0 bl sub_8059658 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08059640 adds r0, r4, 0 b _0805964A .align 2, 0 _0805963C: .4byte gMapHeader _08059640: adds r5, 0x1 adds r4, 0xC cmp r5, r7 blt _0805961E _08059648: movs r0, 0 _0805964A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8059600 thumb_func_start sub_8059658 sub_8059658: @ 8059658 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r1, 0 mov r8, r2 adds r5, r3, 0 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 adds r0, r5, 0 bl mapconnection_get_mapheader adds r2, r0, 0 cmp r4, 0x1 blt _080596B0 cmp r4, 0x2 bgt _08059690 ldr r0, _0805968C @ =gMapHeader ldr r0, [r0] ldr r1, [r0] ldr r0, [r2] ldr r2, [r0] ldr r3, [r5, 0x4] adds r0, r7, 0 b _080596A2 .align 2, 0 _0805968C: .4byte gMapHeader _08059690: cmp r6, 0x4 bgt _080596B0 ldr r0, _080596AC @ =gMapHeader ldr r0, [r0] ldr r1, [r0, 0x4] ldr r0, [r2] ldr r2, [r0, 0x4] ldr r3, [r5, 0x4] mov r0, r8 _080596A2: bl sub_80596BC lsls r0, 24 lsrs r0, 24 b _080596B2 .align 2, 0 _080596AC: .4byte gMapHeader _080596B0: movs r0, 0 _080596B2: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8059658 thumb_func_start sub_80596BC sub_80596BC: @ 80596BC push {r4,lr} adds r4, r0, 0 adds r0, r2, 0 adds r2, r3, 0 cmp r3, 0 bge _080596CA movs r3, 0 _080596CA: adds r2, r0, r2 cmp r2, r1 bge _080596D2 adds r1, r2, 0 _080596D2: cmp r3, r4 bgt _080596DE cmp r4, r1 bgt _080596DE movs r0, 0x1 b _080596E0 _080596DE: movs r0, 0 _080596E0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80596BC thumb_func_start sub_80596E8 sub_80596E8: @ 80596E8 push {lr} cmp r0, 0 blt _080596F6 cmp r0, r1 bge _080596F6 movs r0, 0x1 b _080596F8 _080596F6: movs r0, 0 _080596F8: pop {r1} bx r1 thumb_func_end sub_80596E8 thumb_func_start sub_80596FC sub_80596FC: @ 80596FC push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl mapconnection_get_mapheader adds r1, r0, 0 ldrb r0, [r4] cmp r0, 0x1 blt _08059734 cmp r0, 0x2 bgt _08059722 ldr r0, [r4, 0x4] subs r0, r5, r0 ldr r1, [r1] ldr r1, [r1] bl sub_80596E8 b _08059736 _08059722: cmp r0, 0x4 bgt _08059734 ldr r0, [r4, 0x4] subs r0, r6, r0 ldr r1, [r1] ldr r1, [r1, 0x4] bl sub_80596E8 b _08059736 _08059734: movs r0, 0 _08059736: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80596FC thumb_func_start sub_805973C sub_805973C: @ 805973C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 16 lsrs r1, 16 ldr r2, _0805975C @ =gMapHeader ldr r0, [r2, 0xC] cmp r0, 0 bne _08059764 b _080597DA .align 2, 0 _0805975C: .4byte gMapHeader _08059760: adds r0, r4, 0 b _080597DC _08059764: ldr r7, [r0] ldr r4, [r0, 0x4] movs r6, 0 cmp r6, r7 bge _080597DA lsls r0, r1, 16 asrs r5, r0, 16 mov r9, r2 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 mov r10, r0 _0805977C: ldrb r1, [r4] adds r3, r1, 0 subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080597D2 cmp r1, 0x2 bne _08059792 cmp r5, 0x6 bgt _080597D2 _08059792: cmp r1, 0x1 bne _080597A2 mov r2, r9 ldr r0, [r2] ldr r0, [r0, 0x4] adds r0, 0x7 cmp r5, r0 blt _080597D2 _080597A2: mov r0, r8 lsls r2, r0, 16 cmp r1, 0x3 bne _080597B0 mov r1, r10 cmp r1, 0x6 bgt _080597D2 _080597B0: cmp r3, 0x4 bne _080597C2 asrs r1, r2, 16 mov r3, r9 ldr r0, [r3] ldr r0, [r0] adds r0, 0x7 cmp r1, r0 blt _080597D2 _080597C2: asrs r1, r2, 16 subs r1, 0x7 adds r0, r4, 0 subs r2, r5, 0x7 bl sub_80596FC cmp r0, 0x1 beq _08059760 _080597D2: adds r6, 0x1 adds r4, 0xC cmp r6, r7 blt _0805977C _080597DA: movs r0, 0 _080597DC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805973C thumb_func_start sub_80597EC sub_80597EC: @ 80597EC lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 ldr r2, _08059804 @ =gSaveBlock1Ptr ldr r2, [r2] subs r0, 0x7 strh r0, [r2] subs r1, 0x7 strh r1, [r2, 0x2] bx lr .align 2, 0 _08059804: .4byte gSaveBlock1Ptr thumb_func_end sub_80597EC thumb_func_start sav1_camera_get_focus_coords sav1_camera_get_focus_coords: @ 8059808 ldr r2, _0805981C @ =gSaveBlock1Ptr ldr r3, [r2] ldrh r2, [r3] adds r2, 0x7 strh r2, [r0] ldrh r0, [r3, 0x2] adds r0, 0x7 strh r0, [r1] bx lr .align 2, 0 _0805981C: .4byte gSaveBlock1Ptr thumb_func_end sav1_camera_get_focus_coords thumb_func_start SetCameraCoords SetCameraCoords: @ 8059820 ldr r2, _0805982C @ =gSaveBlock1Ptr ldr r2, [r2] strh r0, [r2] strh r1, [r2, 0x2] bx lr .align 2, 0 _0805982C: .4byte gSaveBlock1Ptr thumb_func_end SetCameraCoords thumb_func_start GetCameraCoords GetCameraCoords: @ 8059830 ldr r2, _08059840 @ =gSaveBlock1Ptr ldr r3, [r2] ldrh r2, [r3] strh r2, [r0] ldrh r0, [r3, 0x2] strh r0, [r1] bx lr .align 2, 0 _08059840: .4byte gSaveBlock1Ptr thumb_func_end GetCameraCoords thumb_func_start copy_tileset_patterns_to_vram copy_tileset_patterns_to_vram: @ 8059844 push {r4-r7,lr} sub sp, 0x4 adds r3, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 lsls r2, 16 lsrs r5, r2, 16 adds r7, r5, 0 cmp r3, 0 beq _08059880 ldrb r0, [r3] cmp r0, 0 bne _08059870 ldr r1, [r3, 0x4] lsls r2, r4, 21 lsrs r2, 16 movs r0, 0x2 adds r3, r5, 0 bl LoadBgTiles b _08059880 _08059870: ldr r1, [r3, 0x4] lsls r2, r6, 5 movs r0, 0 str r0, [sp] movs r0, 0x2 adds r3, r7, 0 bl sub_80F68F0 _08059880: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end copy_tileset_patterns_to_vram thumb_func_start copy_tileset_patterns_to_vram2 copy_tileset_patterns_to_vram2: @ 8059888 push {r4-r7,lr} sub sp, 0x4 adds r3, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 lsls r2, 16 lsrs r5, r2, 16 adds r7, r5, 0 cmp r3, 0 beq _080598C4 ldrb r0, [r3] cmp r0, 0 bne _080598B4 ldr r1, [r3, 0x4] lsls r2, r4, 21 lsrs r2, 16 movs r0, 0x2 adds r3, r5, 0 bl LoadBgTiles b _080598C4 _080598B4: ldr r1, [r3, 0x4] lsls r2, r6, 5 movs r0, 0 str r0, [sp] movs r0, 0x2 adds r3, r7, 0 bl sub_80F69E8 _080598C4: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end copy_tileset_patterns_to_vram2 thumb_func_start sub_80598CC sub_80598CC: @ 80598CC push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r5, r1, 16 ldr r0, _080598EC @ =gUnknown_2036E28 ldrb r0, [r0] cmp r0, 0x1 beq _080598F0 cmp r0, 0x1 ble _0805993A cmp r0, 0x2 beq _08059904 cmp r0, 0x3 beq _08059918 b _0805993A .align 2, 0 _080598EC: .4byte gUnknown_2036E28 _080598F0: lsls r4, 1 ldr r0, _08059900 @ =gPlttBufferUnfaded adds r0, r4, r0 adds r1, r5, 0 bl TintPalette_GrayScale b _0805992C .align 2, 0 _08059900: .4byte gPlttBufferUnfaded _08059904: lsls r4, 1 ldr r0, _08059914 @ =gPlttBufferUnfaded adds r0, r4, r0 adds r1, r5, 0 bl TintPalette_SepiaTone b _0805992C .align 2, 0 _08059914: .4byte gPlttBufferUnfaded _08059918: adds r0, r4, 0 adds r1, r5, 0 bl sub_8111F38 lsls r4, 1 ldr r0, _08059940 @ =gPlttBufferUnfaded adds r0, r4, r0 adds r1, r5, 0 bl TintPalette_GrayScale _0805992C: ldr r0, _08059940 @ =gPlttBufferUnfaded adds r0, r4, r0 ldr r1, _08059944 @ =gPlttBufferFaded adds r1, r4, r1 adds r2, r5, 0 bl CpuSet _0805993A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08059940: .4byte gPlttBufferUnfaded _08059944: .4byte gPlttBufferFaded thumb_func_end sub_80598CC thumb_func_start sub_8059948 sub_8059948: @ 8059948 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r6, r1, 24 ldr r0, _08059968 @ =gUnknown_2036E28 ldrb r0, [r0] cmp r0, 0x1 beq _0805996C cmp r0, 0x1 ble _080599B8 cmp r0, 0x2 beq _08059980 cmp r0, 0x3 beq _08059994 b _080599B8 .align 2, 0 _08059968: .4byte gUnknown_2036E28 _0805996C: lsls r4, 5 ldr r0, _0805997C @ =gPlttBufferUnfaded adds r0, r4, r0 lsls r1, r6, 4 bl TintPalette_GrayScale b _080599AA .align 2, 0 _0805997C: .4byte gPlttBufferUnfaded _08059980: lsls r4, 5 ldr r0, _08059990 @ =gPlttBufferUnfaded adds r0, r4, r0 lsls r1, r6, 4 bl TintPalette_SepiaTone b _080599AA .align 2, 0 _08059990: .4byte gPlttBufferUnfaded _08059994: lsls r0, r4, 4 lsls r5, r6, 4 adds r1, r5, 0 bl sub_8111F38 lsls r4, 5 ldr r0, _080599C0 @ =gPlttBufferUnfaded adds r0, r4, r0 adds r1, r5, 0 bl TintPalette_GrayScale _080599AA: ldr r0, _080599C0 @ =gPlttBufferUnfaded adds r0, r4, r0 ldr r1, _080599C4 @ =gPlttBufferFaded adds r1, r4, r1 lsls r2, r6, 3 bl CpuFastSet _080599B8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080599C0: .4byte gPlttBufferUnfaded _080599C4: .4byte gPlttBufferFaded thumb_func_end sub_8059948 thumb_func_start apply_map_tileset_palette apply_map_tileset_palette: @ 80599C8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 lsls r1, 16 lsrs r5, r1, 16 mov r8, r5 lsls r6, r2, 16 lsrs r7, r6, 16 adds r2, r7, 0 movs r1, 0 mov r0, sp strh r1, [r0] cmp r4, 0 beq _08059A46 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08059A1C mov r0, sp adds r1, r5, 0 movs r2, 0x2 bl LoadPalette ldr r0, [r4, 0x8] adds r0, 0x2 adds r5, 0x1 lsls r5, 16 lsrs r5, 16 subs r4, r7, 0x2 lsls r2, r4, 16 lsrs r2, 16 adds r1, r5, 0 bl LoadPalette lsls r4, 15 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_80598CC b _08059A46 _08059A1C: cmp r0, 0x1 bne _08059A36 ldr r0, [r4, 0x8] adds r0, 0xE0 adds r1, r5, 0 adds r2, r7, 0 bl LoadPalette lsrs r1, r6, 17 adds r0, r5, 0 bl sub_80598CC b _08059A46 _08059A36: ldr r0, [r4, 0x8] mov r1, r8 bl LoadCompressedPalette lsrs r1, r6, 17 mov r0, r8 bl sub_80598CC _08059A46: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end apply_map_tileset_palette thumb_func_start sub_8059A54 sub_8059A54: @ 8059A54 push {lr} ldr r0, [r0, 0x10] movs r1, 0xA0 lsls r1, 2 movs r2, 0 bl copy_tileset_patterns_to_vram pop {r0} bx r0 thumb_func_end sub_8059A54 thumb_func_start sub_8059A68 sub_8059A68: @ 8059A68 push {lr} ldr r0, [r0, 0x14] movs r1, 0xC0 lsls r1, 1 movs r2, 0xA0 lsls r2, 2 bl copy_tileset_patterns_to_vram pop {r0} bx r0 thumb_func_end sub_8059A68 thumb_func_start copy_map_tileset2_to_vram_2 copy_map_tileset2_to_vram_2: @ 8059A7C push {lr} ldr r0, [r0, 0x14] movs r1, 0xC0 lsls r1, 1 movs r2, 0xA0 lsls r2, 2 bl copy_tileset_patterns_to_vram2 pop {r0} bx r0 thumb_func_end copy_map_tileset2_to_vram_2 thumb_func_start sub_8059A90 sub_8059A90: @ 8059A90 push {lr} ldr r0, [r0, 0x10] movs r1, 0 movs r2, 0xE0 bl apply_map_tileset_palette pop {r0} bx r0 thumb_func_end sub_8059A90 thumb_func_start sub_8059AA0 sub_8059AA0: @ 8059AA0 push {lr} ldr r0, [r0, 0x14] movs r1, 0x70 movs r2, 0xC0 bl apply_map_tileset_palette pop {r0} bx r0 thumb_func_end sub_8059AA0 thumb_func_start copy_map_tileset1_tileset2_to_vram copy_map_tileset1_tileset2_to_vram: @ 8059AB0 push {r4,r5,lr} adds r5, r0, 0 cmp r5, 0 beq _08059AD2 ldr r0, [r5, 0x10] movs r4, 0xA0 lsls r4, 2 adds r1, r4, 0 movs r2, 0 bl copy_tileset_patterns_to_vram2 ldr r0, [r5, 0x14] movs r1, 0xC0 lsls r1, 1 adds r2, r4, 0 bl copy_tileset_patterns_to_vram2 _08059AD2: pop {r4,r5} pop {r0} bx r0 thumb_func_end copy_map_tileset1_tileset2_to_vram thumb_func_start apply_map_tileset1_tileset2_palette apply_map_tileset1_tileset2_palette: @ 8059AD8 push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _08059AEA bl sub_8059A90 adds r0, r4, 0 bl sub_8059AA0 _08059AEA: pop {r4} pop {r0} bx r0 thumb_func_end apply_map_tileset1_tileset2_palette .align 2, 0 @ Don't pad with nop.