summaryrefslogtreecommitdiff
path: root/asm/fieldmap.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/fieldmap.s')
-rw-r--r--asm/fieldmap.s1998
1 files changed, 1998 insertions, 0 deletions
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
new file mode 100644
index 000000000..d92bc82a2
--- /dev/null
+++ b/asm/fieldmap.s
@@ -0,0 +1,1998 @@
+ .include "constants/gba_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start mapconnection_get_mapheader
+mapconnection_get_mapheader: @ 8055F90
+ push {lr}
+ ldrb r2, [r0, 0x8]
+ ldrb r1, [r0, 0x9]
+ adds r0, r2, 0
+ bl get_mapheader_by_bank_and_number
+ pop {r1}
+ bx r1
+ thumb_func_end mapconnection_get_mapheader
+
+ thumb_func_start not_trainer_hill_battle_pyramid
+not_trainer_hill_battle_pyramid: @ 8055FA0
+ push {r4,lr}
+ ldr r4, _08055FBC @ =gMapHeader
+ adds r0, r4, 0
+ bl mapheader_copy_mapdata_with_padding
+ ldr r0, [r4, 0x4]
+ bl sub_80BB970
+ bl mapheader_run_script_with_tag_x1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08055FBC: .4byte gMapHeader
+ thumb_func_end not_trainer_hill_battle_pyramid
+
+ thumb_func_start sub_8055FC0
+sub_8055FC0: @ 8055FC0
+ push {r4,lr}
+ ldr r4, _08055FF0 @ =gMapHeader
+ adds r0, r4, 0
+ bl mapheader_copy_mapdata_with_padding
+ movs r0, 0
+ bl sub_80BBCCC
+ ldr r0, [r4, 0x4]
+ bl sub_80BB970
+ bl sub_8056670
+ bl mapheader_run_script_with_tag_x1
+ ldr r1, _08055FF4 @ =gUnknown_03004870
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ bl UpdateTVScreensOnMap
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08055FF0: .4byte gMapHeader
+_08055FF4: .4byte gUnknown_03004870
+ thumb_func_end sub_8055FC0
+
+ thumb_func_start mapheader_copy_mapdata_with_padding
+mapheader_copy_mapdata_with_padding: @ 8055FF8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r5, [r6]
+ ldr r0, _08056044 @ =0x03ff03ff
+ str r0, [sp]
+ ldr r4, _08056048 @ =gUnknown_02029828
+ ldr r2, _0805604C @ =0x01001400
+ mov r0, sp
+ adds r1, r4, 0
+ bl CpuFastSet
+ ldr r2, _08056050 @ =gUnknown_03004870
+ str r4, [r2, 0x8]
+ ldr r1, [r5]
+ adds r1, 0xF
+ str r1, [r2]
+ ldr r0, [r5, 0x4]
+ adds r0, 0xE
+ str r0, [r2, 0x4]
+ muls r1, r0
+ movs r0, 0xA0
+ lsls r0, 6
+ cmp r1, r0
+ bgt _0805603A
+ ldr r0, [r5, 0xC]
+ ldrh r1, [r5]
+ ldrh r2, [r5, 0x4]
+ bl map_copy_with_padding
+ adds r0, r6, 0
+ bl sub_80560AC
+_0805603A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08056044: .4byte 0x03ff03ff
+_08056048: .4byte gUnknown_02029828
+_0805604C: .4byte 0x01001400
+_08056050: .4byte gUnknown_03004870
+ thumb_func_end mapheader_copy_mapdata_with_padding
+
+ thumb_func_start map_copy_with_padding
+map_copy_with_padding: @ 8056054
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, _080560A8 @ =gUnknown_03004870
+ ldr r4, [r0, 0x8]
+ ldr r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, 0xE
+ adds r4, r0
+ cmp r2, 0
+ beq _0805609C
+ mov r0, r8
+ lsls r6, r0, 1
+ adds r5, r2, 0
+ movs r0, 0x1E
+ adds r0, r6
+ mov r9, r0
+_08056088:
+ adds r0, r7, 0
+ adds r1, r4, 0
+ mov r2, r8
+ bl CpuSet
+ add r4, r9
+ adds r7, r6
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08056088
+_0805609C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080560A8: .4byte gUnknown_03004870
+ thumb_func_end map_copy_with_padding
+
+ thumb_func_start sub_80560AC
+sub_80560AC: @ 80560AC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, [r6, 0xC]
+ ldr r1, [r0]
+ ldr r5, [r0, 0x4]
+ ldr r2, _080560E0 @ =gUnknown_0202E850
+ ldr r0, _080560E4 @ =gUnknown_08308E28
+ ldr r0, [r0]
+ str r0, [r2]
+ cmp r1, 0
+ ble _0805612C
+ adds r4, r2, 0
+ adds r7, r1, 0
+_080560C6:
+ adds r0, r5, 0
+ bl mapconnection_get_mapheader
+ adds r1, r0, 0
+ ldr r2, [r5, 0x4]
+ ldrb r0, [r5]
+ cmp r0, 0x2
+ beq _080560FE
+ cmp r0, 0x2
+ bgt _080560E8
+ cmp r0, 0x1
+ beq _080560F2
+ b _08056124
+ .align 2, 0
+_080560E0: .4byte gUnknown_0202E850
+_080560E4: .4byte gUnknown_08308E28
+_080560E8:
+ cmp r0, 0x3
+ beq _0805610A
+ cmp r0, 0x4
+ beq _08056116
+ b _08056124
+_080560F2:
+ adds r0, r6, 0
+ bl sub_8056198
+ ldrb r0, [r4]
+ movs r1, 0x1
+ b _08056120
+_080560FE:
+ adds r0, r6, 0
+ bl sub_8056200
+ ldrb r0, [r4]
+ movs r1, 0x2
+ b _08056120
+_0805610A:
+ adds r0, r6, 0
+ bl sub_8056260
+ ldrb r0, [r4]
+ movs r1, 0x4
+ b _08056120
+_08056116:
+ adds r0, r6, 0
+ bl sub_80562C0
+ ldrb r0, [r4]
+ movs r1, 0x8
+_08056120:
+ orrs r0, r1
+ strb r0, [r4]
+_08056124:
+ subs r7, 0x1
+ adds r5, 0xC
+ cmp r7, 0
+ bne _080560C6
+_0805612C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80560AC
+
+ thumb_func_start sub_8056134
+sub_8056134: @ 8056134
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, [sp, 0x18]
+ ldr r4, [r2]
+ ldr r7, [r4]
+ adds r2, r7, 0
+ muls r2, r5
+ adds r2, r3
+ lsls r2, 1
+ ldr r3, [r4, 0xC]
+ adds r6, r3, r2
+ ldr r3, _08056190 @ =gUnknown_03004870
+ ldr r2, [r3]
+ muls r1, r2
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, [r3, 0x8]
+ adds r5, r0, r1
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ ble _08056186
+ adds r4, r0, 0
+ ldr r3, _08056194 @ =0x001fffff
+ mov r8, r3
+_08056166:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ ldr r2, [sp, 0x1C]
+ mov r3, r8
+ ands r2, r3
+ bl CpuSet
+ ldr r0, _08056190 @ =gUnknown_03004870
+ ldr r0, [r0]
+ lsls r0, 1
+ adds r5, r0
+ lsls r0, r7, 1
+ adds r6, r0
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08056166
+_08056186:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08056190: .4byte gUnknown_03004870
+_08056194: .4byte 0x001fffff
+ thumb_func_end sub_8056134
+
+ thumb_func_start sub_8056198
+sub_8056198: @ 8056198
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r3, r0, 0
+ adds r5, r1, 0
+ cmp r5, 0
+ beq _080561F2
+ ldr r0, [r5]
+ ldr r4, [r0]
+ adds r2, 0x7
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ adds r7, r0, 0x7
+ cmp r2, 0
+ bge _080561CC
+ negs r6, r2
+ adds r2, r4
+ ldr r0, _080561C8 @ =gUnknown_03004870
+ ldr r3, [r0]
+ cmp r2, r3
+ bge _080561C2
+ adds r3, r2, 0
+_080561C2:
+ movs r2, 0
+ b _080561DC
+ .align 2, 0
+_080561C8: .4byte gUnknown_03004870
+_080561CC:
+ movs r6, 0
+ adds r0, r2, r4
+ ldr r1, _080561FC @ =gUnknown_03004870
+ ldr r1, [r1]
+ subs r3, r1, r2
+ cmp r0, r1
+ bge _080561DC
+ adds r3, r4, 0
+_080561DC:
+ movs r0, 0
+ str r0, [sp]
+ str r3, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ adds r0, r2, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8056134
+_080561F2:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080561FC: .4byte gUnknown_03004870
+ thumb_func_end sub_8056198
+
+ thumb_func_start sub_8056200
+sub_8056200: @ 8056200
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r5, r1, 0
+ cmp r5, 0
+ beq _08056254
+ ldr r0, [r5]
+ ldr r4, [r0]
+ ldr r0, [r0, 0x4]
+ adds r2, 0x7
+ subs r7, r0, 0x7
+ cmp r2, 0
+ bge _08056230
+ negs r6, r2
+ adds r2, r4
+ ldr r0, _0805622C @ =gUnknown_03004870
+ ldr r3, [r0]
+ cmp r2, r3
+ bge _08056226
+ adds r3, r2, 0
+_08056226:
+ movs r2, 0
+ b _08056240
+ .align 2, 0
+_0805622C: .4byte gUnknown_03004870
+_08056230:
+ movs r6, 0
+ adds r0, r2, r4
+ ldr r1, _0805625C @ =gUnknown_03004870
+ ldr r1, [r1]
+ subs r3, r1, r2
+ cmp r0, r1
+ bge _08056240
+ adds r3, r4, 0
+_08056240:
+ str r7, [sp]
+ str r3, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8056134
+_08056254:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805625C: .4byte gUnknown_03004870
+ thumb_func_end sub_8056200
+
+ thumb_func_start sub_8056260
+sub_8056260: @ 8056260
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r5, r1, 0
+ cmp r5, 0
+ beq _080562B4
+ ldr r0, [r5]
+ ldr r1, [r0]
+ ldr r4, [r0, 0x4]
+ adds r2, 0x7
+ subs r7, r1, 0x7
+ cmp r2, 0
+ bge _08056290
+ negs r6, r2
+ adds r1, r2, r4
+ ldr r0, _0805628C @ =gUnknown_03004870
+ ldr r3, [r0, 0x4]
+ cmp r1, r3
+ bge _08056286
+ adds r3, r1, 0
+_08056286:
+ movs r2, 0
+ b _080562A0
+ .align 2, 0
+_0805628C: .4byte gUnknown_03004870
+_08056290:
+ movs r6, 0
+ adds r0, r2, r4
+ ldr r1, _080562BC @ =gUnknown_03004870
+ ldr r1, [r1, 0x4]
+ subs r3, r1, r2
+ cmp r0, r1
+ bge _080562A0
+ adds r3, r4, 0
+_080562A0:
+ str r6, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r0, 0
+ adds r1, r2, 0
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl sub_8056134
+_080562B4:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080562BC: .4byte gUnknown_03004870
+ thumb_func_end sub_8056260
+
+ thumb_func_start sub_80562C0
+sub_80562C0: @ 80562C0
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r3, r0, 0
+ adds r5, r1, 0
+ cmp r5, 0
+ beq _08056318
+ ldr r0, [r5]
+ ldr r4, [r0, 0x4]
+ ldr r0, [r3]
+ ldr r0, [r0]
+ adds r7, r0, 0x7
+ adds r2, 0x7
+ cmp r2, 0
+ bge _080562F4
+ negs r6, r2
+ adds r1, r2, r4
+ ldr r0, _080562F0 @ =gUnknown_03004870
+ ldr r3, [r0, 0x4]
+ cmp r1, r3
+ bge _080562EA
+ adds r3, r1, 0
+_080562EA:
+ movs r2, 0
+ b _08056304
+ .align 2, 0
+_080562F0: .4byte gUnknown_03004870
+_080562F4:
+ movs r6, 0
+ adds r0, r2, r4
+ ldr r1, _08056320 @ =gUnknown_03004870
+ ldr r1, [r1, 0x4]
+ subs r3, r1, r2
+ cmp r0, r1
+ bge _08056304
+ adds r3, r4, 0
+_08056304:
+ str r6, [sp]
+ movs r0, 0x8
+ str r0, [sp, 0x4]
+ str r3, [sp, 0x8]
+ adds r0, r7, 0
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_8056134
+_08056318:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08056320: .4byte gUnknown_03004870
+ thumb_func_end sub_80562C0
+
+ thumb_func_start MapGridGetZCoordAt
+MapGridGetZCoordAt: @ 8056324
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ cmp r2, 0
+ blt _08056354
+ ldr r1, _08056350 @ =gUnknown_03004870
+ ldr r3, [r1]
+ cmp r2, r3
+ bge _08056354
+ cmp r4, 0
+ blt _08056354
+ ldr r0, [r1, 0x4]
+ cmp r4, r0
+ bge _08056354
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _08056376
+ .align 2, 0
+_08056350: .4byte gUnknown_03004870
+_08056354:
+ ldr r0, _08056380 @ =gMapHeader
+ ldr r3, [r0]
+ adds r1, r2, 0x1
+ movs r2, 0x1
+ ands r1, r2
+ adds r0, r4, 0x1
+ ands r0, r2
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, [r3, 0x8]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r1, r0
+_08056376:
+ ldr r0, _08056384 @ =0x000003ff
+ cmp r1, r0
+ beq _08056388
+ lsrs r0, r1, 12
+ b _0805638A
+ .align 2, 0
+_08056380: .4byte gMapHeader
+_08056384: .4byte 0x000003ff
+_08056388:
+ movs r0, 0
+_0805638A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end MapGridGetZCoordAt
+
+ thumb_func_start MapGridIsImpassableAt
+MapGridIsImpassableAt: @ 8056390
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ cmp r2, 0
+ blt _080563C0
+ ldr r1, _080563BC @ =gUnknown_03004870
+ ldr r3, [r1]
+ cmp r2, r3
+ bge _080563C0
+ cmp r4, 0
+ blt _080563C0
+ ldr r0, [r1, 0x4]
+ cmp r4, r0
+ bge _080563C0
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _080563E2
+ .align 2, 0
+_080563BC: .4byte gUnknown_03004870
+_080563C0:
+ ldr r0, _080563F4 @ =gMapHeader
+ ldr r3, [r0]
+ adds r1, r2, 0x1
+ movs r2, 0x1
+ ands r1, r2
+ adds r0, r4, 0x1
+ ands r0, r2
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, [r3, 0x8]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r1, r0
+_080563E2:
+ ldr r0, _080563F8 @ =0x000003ff
+ cmp r1, r0
+ beq _080563FC
+ movs r0, 0xC0
+ lsls r0, 4
+ ands r1, r0
+ lsrs r0, r1, 10
+ b _080563FE
+ .align 2, 0
+_080563F4: .4byte gMapHeader
+_080563F8: .4byte 0x000003ff
+_080563FC:
+ movs r0, 0x1
+_080563FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end MapGridIsImpassableAt
+
+ thumb_func_start MapGridGetMetatileIdAt
+MapGridGetMetatileIdAt: @ 8056404
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ cmp r5, 0
+ blt _08056434
+ ldr r1, _08056430 @ =gUnknown_03004870
+ ldr r2, [r1]
+ cmp r5, r2
+ bge _08056434
+ cmp r6, 0
+ blt _08056434
+ ldr r0, [r1, 0x4]
+ cmp r6, r0
+ bge _08056434
+ adds r0, r2, 0
+ muls r0, r6
+ adds r0, r5, r0
+ ldr r1, [r1, 0x8]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r4, [r0]
+ b _08056458
+ .align 2, 0
+_08056430: .4byte gUnknown_03004870
+_08056434:
+ ldr r0, _08056464 @ =gMapHeader
+ ldr r3, [r0]
+ adds r1, r5, 0x1
+ movs r2, 0x1
+ ands r1, r2
+ adds r0, r6, 0x1
+ ands r0, r2
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, [r3, 0x8]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r2, 0
+ adds r4, r0, 0
+ orrs r4, r1
+_08056458:
+ ldr r0, _08056468 @ =0x000003ff
+ cmp r4, r0
+ beq _0805646C
+ ands r4, r0
+ adds r0, r4, 0
+ b _08056490
+ .align 2, 0
+_08056464: .4byte gMapHeader
+_08056468: .4byte 0x000003ff
+_0805646C:
+ ldr r0, _08056498 @ =gMapHeader
+ ldr r3, [r0]
+ adds r1, r5, 0x1
+ movs r2, 0x1
+ ands r1, r2
+ adds r0, r6, 0x1
+ ands r0, r2
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, [r3, 0x8]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r1, r2, 0
+ orrs r0, r1
+ ands r0, r4
+_08056490:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08056498: .4byte gMapHeader
+ thumb_func_end MapGridGetMetatileIdAt
+
+ thumb_func_start MapGridGetMetatileBehaviorAt
+MapGridGetMetatileBehaviorAt: @ 805649C
+ push {lr}
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ adds r1, r0, 0
+ movs r0, 0xFF
+ ands r0, r1
+ pop {r1}
+ bx r1
+ thumb_func_end MapGridGetMetatileBehaviorAt
+
+ thumb_func_start MapGridGetMetatileLayerTypeAt
+MapGridGetMetatileLayerTypeAt: @ 80564B4
+ push {lr}
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ adds r1, r0, 0
+ movs r0, 0xF0
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 12
+ pop {r1}
+ bx r1
+ thumb_func_end MapGridGetMetatileLayerTypeAt
+
+ thumb_func_start MapGridSetMetatileIdAt
+MapGridSetMetatileIdAt: @ 80564D0
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ lsls r2, 16
+ lsrs r5, r2, 16
+ cmp r3, 0
+ blt _08056508
+ ldr r2, _08056510 @ =gUnknown_03004870
+ ldr r4, [r2]
+ cmp r3, r4
+ bge _08056508
+ cmp r1, 0
+ blt _08056508
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ bge _08056508
+ muls r1, r4
+ adds r1, r3, r1
+ ldr r0, [r2, 0x8]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 8
+ ands r2, r0
+ ldr r0, _08056514 @ =0x00000fff
+ ands r0, r5
+ orrs r2, r0
+ strh r2, [r1]
+_08056508:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08056510: .4byte gUnknown_03004870
+_08056514: .4byte 0x00000fff
+ thumb_func_end MapGridSetMetatileIdAt
+
+ thumb_func_start MapGridSetMetatileEntryAt
+MapGridSetMetatileEntryAt: @ 8056518
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ lsls r2, 16
+ lsrs r5, r2, 16
+ cmp r3, 0
+ blt _08056544
+ ldr r2, _0805654C @ =gUnknown_03004870
+ ldr r4, [r2]
+ cmp r3, r4
+ bge _08056544
+ cmp r1, 0
+ blt _08056544
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ bge _08056544
+ adds r0, r4, 0
+ muls r0, r1
+ adds r0, r3, r0
+ ldr r1, [r2, 0x8]
+ lsls r0, 1
+ adds r0, r1
+ strh r5, [r0]
+_08056544:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805654C: .4byte gUnknown_03004870
+ thumb_func_end MapGridSetMetatileEntryAt
+
+ thumb_func_start GetBehaviorByMetatileId
+GetBehaviorByMetatileId: @ 8056550
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r3, r2, 0
+ ldr r0, _0805656C @ =0x000001ff
+ cmp r2, r0
+ bhi _08056574
+ ldr r0, _08056570 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ ldr r1, [r0, 0x10]
+ lsls r0, r2, 1
+ b _08056592
+ .align 2, 0
+_0805656C: .4byte 0x000001ff
+_08056570: .4byte gMapHeader
+_08056574:
+ ldr r0, _08056580 @ =0x000003ff
+ cmp r2, r0
+ bls _08056584
+ movs r0, 0xFF
+ b _08056596
+ .align 2, 0
+_08056580: .4byte 0x000003ff
+_08056584:
+ ldr r0, _0805659C @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0, 0x14]
+ ldr r1, [r0, 0x10]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldr r1, _080565A0 @ =0xfffffc00
+_08056592:
+ adds r0, r1
+ ldrh r0, [r0]
+_08056596:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0805659C: .4byte gMapHeader
+_080565A0: .4byte 0xfffffc00
+ thumb_func_end GetBehaviorByMetatileId
+
+ thumb_func_start save_serialize_map
+save_serialize_map: @ 80565A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r5, _0805660C @ =gSaveBlock1 + 0x34
+ ldr r0, _08056610 @ =gUnknown_03004870
+ ldr r0, [r0]
+ mov r8, r0
+ adds r0, r5, 0
+ subs r0, 0x34
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ adds r1, r0, 0
+ adds r1, 0xE
+ cmp r0, r1
+ bge _080565FE
+ mov r12, r1
+ ldr r1, _08056614 @ =gUnknown_02029828
+ mov r9, r1
+ lsls r7, r6, 1
+_080565D0:
+ adds r1, r6, 0
+ adds r3, r1, 0
+ adds r3, 0xF
+ adds r4, r0, 0x1
+ cmp r1, r3
+ bge _080565F8
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ lsls r0, 1
+ add r0, r9
+ adds r2, r7, r0
+ subs r1, r3, r1
+_080565EA:
+ ldrh r0, [r2]
+ strh r0, [r5]
+ adds r5, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080565EA
+_080565F8:
+ adds r0, r4, 0
+ cmp r0, r12
+ blt _080565D0
+_080565FE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805660C: .4byte gSaveBlock1 + 0x34
+_08056610: .4byte gUnknown_03004870
+_08056614: .4byte gUnknown_02029828
+ thumb_func_end save_serialize_map
+
+ thumb_func_start sub_8056618
+sub_8056618: @ 8056618
+ push {r4,lr}
+ movs r2, 0
+ movs r1, 0
+ ldr r4, _0805663C @ =gSaveBlock1 + 0x34
+ ldr r3, _08056640 @ =0x000001ff
+_08056622:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ orrs r2, r0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _08056622
+ cmp r2, 0
+ beq _08056644
+ movs r0, 0
+ b _08056646
+ .align 2, 0
+_0805663C: .4byte gSaveBlock1 + 0x34
+_08056640: .4byte 0x000001ff
+_08056644:
+ movs r0, 0x1
+_08056646:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8056618
+
+ thumb_func_start sav2_mapdata_clear
+sav2_mapdata_clear: @ 805664C
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08056668 @ =gSaveBlock1 + 0x34
+ ldr r2, _0805666C @ =0x01000100
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08056668: .4byte gSaveBlock1 + 0x34
+_0805666C: .4byte 0x01000100
+ thumb_func_end sav2_mapdata_clear
+
+ thumb_func_start sub_8056670
+sub_8056670: @ 8056670
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r5, _080566E4 @ =gSaveBlock1 + 0x34
+ bl sub_8056618
+ cmp r0, 0
+ bne _080566D6
+ ldr r0, _080566E8 @ =gUnknown_03004870
+ ldr r0, [r0]
+ mov r8, r0
+ adds r0, r5, 0
+ subs r0, 0x34
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ adds r1, r0, 0
+ adds r1, 0xE
+ cmp r0, r1
+ bge _080566D2
+ mov r12, r1
+ ldr r1, _080566EC @ =gUnknown_02029828
+ mov r9, r1
+ lsls r7, r6, 1
+_080566A4:
+ adds r1, r6, 0
+ adds r3, r1, 0
+ adds r3, 0xF
+ adds r4, r0, 0x1
+ cmp r1, r3
+ bge _080566CC
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ lsls r0, 1
+ add r0, r9
+ adds r2, r7, r0
+ subs r1, r3, r1
+_080566BE:
+ ldrh r0, [r5]
+ strh r0, [r2]
+ adds r5, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080566BE
+_080566CC:
+ adds r0, r4, 0
+ cmp r0, r12
+ blt _080566A4
+_080566D2:
+ bl sav2_mapdata_clear
+_080566D6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080566E4: .4byte gSaveBlock1 + 0x34
+_080566E8: .4byte gUnknown_03004870
+_080566EC: .4byte gUnknown_02029828
+ thumb_func_end sub_8056670
+
+ thumb_func_start sub_80566F0
+sub_80566F0: @ 80566F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ ldr r0, _08056734 @ =gSaveBlock1 + 0x34
+ mov r10, r0
+ ldr r0, _08056738 @ =gUnknown_03004870
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r3, 0
+ mov r9, r3
+ mov r8, r3
+ mov r0, r10
+ subs r0, 0x34
+ movs r6, 0
+ ldrsh r4, [r0, r6]
+ str r4, [sp, 0x4]
+ movs r3, 0x2
+ ldrsh r5, [r0, r3]
+ movs r7, 0xF
+ movs r4, 0xE
+ mov r12, r4
+ cmp r1, 0x2
+ beq _08056746
+ cmp r1, 0x2
+ bgt _0805673C
+ cmp r1, 0x1
+ beq _0805674E
+ b _08056766
+ .align 2, 0
+_08056734: .4byte gSaveBlock1 + 0x34
+_08056738: .4byte gUnknown_03004870
+_0805673C:
+ cmp r2, 0x3
+ beq _08056758
+ cmp r2, 0x4
+ beq _08056760
+ b _08056766
+_08056746:
+ adds r5, 0x1
+ movs r6, 0xD
+ mov r12, r6
+ b _08056766
+_0805674E:
+ movs r0, 0x1
+ mov r8, r0
+ movs r1, 0xD
+ mov r12, r1
+ b _08056766
+_08056758:
+ ldr r3, [sp, 0x4]
+ adds r3, 0x1
+ str r3, [sp, 0x4]
+ b _08056764
+_08056760:
+ movs r4, 0x1
+ mov r9, r4
+_08056764:
+ movs r7, 0xE
+_08056766:
+ movs r1, 0
+ cmp r1, r12
+ bge _080567A8
+_0805676C:
+ adds r4, r1, 0x1
+ cmp r7, 0
+ beq _080567A2
+ adds r0, r1, r5
+ ldr r6, [sp]
+ adds r2, r6, 0
+ muls r2, r0
+ add r1, r8
+ lsls r0, r1, 4
+ subs r0, r1
+ add r0, r9
+ ldr r1, [sp, 0x4]
+ adds r2, r1, r2
+ adds r3, r7, 0
+ lsls r2, 1
+ ldr r6, _080567BC @ =gUnknown_02029828
+ adds r2, r6
+ lsls r0, 1
+ mov r6, r10
+ adds r1, r0, r6
+_08056794:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08056794
+_080567A2:
+ adds r1, r4, 0
+ cmp r1, r12
+ blt _0805676C
+_080567A8:
+ bl sav2_mapdata_clear
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080567BC: .4byte gUnknown_02029828
+ thumb_func_end sub_80566F0
+
+ thumb_func_start GetMapBorderIdAt
+GetMapBorderIdAt: @ 80567C0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ cmp r4, 0
+ blt _080567FC
+ ldr r1, _080567F4 @ =gUnknown_03004870
+ ldr r2, [r1]
+ cmp r4, r2
+ bge _080567FC
+ cmp r5, 0
+ blt _080567FC
+ ldr r0, [r1, 0x4]
+ cmp r5, r0
+ bge _080567FC
+ adds r0, r2, 0
+ muls r0, r5
+ adds r0, r4, r0
+ ldr r1, [r1, 0x8]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _080567F8 @ =0x000003ff
+ cmp r1, r0
+ beq _08056894
+ b _08056824
+ .align 2, 0
+_080567F4: .4byte gUnknown_03004870
+_080567F8: .4byte 0x000003ff
+_080567FC:
+ ldr r0, _08056840 @ =gMapHeader
+ ldr r3, [r0]
+ adds r1, r4, 0x1
+ movs r2, 0x1
+ ands r1, r2
+ adds r0, r5, 0x1
+ ands r0, r2
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, [r3, 0x8]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r0, r1
+ ldr r1, _08056844 @ =0x000003ff
+ cmp r0, r1
+ beq _08056894
+_08056824:
+ ldr r1, _08056848 @ =gUnknown_03004870
+ ldr r0, [r1]
+ subs r0, 0x8
+ cmp r4, r0
+ blt _08056850
+ ldr r0, _0805684C @ =gUnknown_0202E850
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08056894
+ movs r0, 0x4
+ b _080568A6
+ .align 2, 0
+_08056840: .4byte gMapHeader
+_08056844: .4byte 0x000003ff
+_08056848: .4byte gUnknown_03004870
+_0805684C: .4byte gUnknown_0202E850
+_08056850:
+ cmp r4, 0x6
+ bgt _08056868
+ ldr r0, _08056864 @ =gUnknown_0202E850
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08056894
+ movs r0, 0x3
+ b _080568A6
+ .align 2, 0
+_08056864: .4byte gUnknown_0202E850
+_08056868:
+ ldr r0, [r1, 0x4]
+ subs r0, 0x7
+ cmp r5, r0
+ blt _08056884
+ ldr r0, _08056880 @ =gUnknown_0202E850
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08056894
+ movs r0, 0x1
+ b _080568A6
+ .align 2, 0
+_08056880: .4byte gUnknown_0202E850
+_08056884:
+ cmp r5, 0x6
+ bgt _080568A4
+ ldr r0, _0805689C @ =gUnknown_0202E850
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080568A0
+_08056894:
+ movs r0, 0x1
+ negs r0, r0
+ b _080568A6
+ .align 2, 0
+_0805689C: .4byte gUnknown_0202E850
+_080568A0:
+ movs r0, 0x2
+ b _080568A6
+_080568A4:
+ movs r0, 0
+_080568A6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMapBorderIdAt
+
+ thumb_func_start GetPostCameraMoveMapBorderId
+GetPostCameraMoveMapBorderId: @ 80568AC
+ push {r4,lr}
+ adds r3, r1, 0
+ ldr r1, _080568D0 @ =gSaveBlock1
+ 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
+_080568D0: .4byte gSaveBlock1
+ thumb_func_end GetPostCameraMoveMapBorderId
+
+ thumb_func_start CanCameraMoveInDirection
+CanCameraMoveInDirection: @ 80568D4
+ push {r4,r5,lr}
+ ldr r4, _08056908 @ =gSaveBlock1
+ movs r1, 0
+ ldrsh r3, [r4, r1]
+ ldr r2, _0805690C @ =gUnknown_0821664C
+ 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 _08056910
+ movs r0, 0x1
+ b _08056912
+ .align 2, 0
+_08056908: .4byte gSaveBlock1
+_0805690C: .4byte gUnknown_0821664C
+_08056910:
+ movs r0, 0
+_08056912:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end CanCameraMoveInDirection
+
+ thumb_func_start sub_8056918
+sub_8056918: @ 8056918
+ 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 _08056978
+ cmp r4, 0x2
+ bgt _08056936
+ cmp r4, 0x1
+ beq _08056964
+ b _08056988
+_08056936:
+ cmp r4, 0x3
+ beq _08056950
+ cmp r4, 0x4
+ bne _08056988
+ ldr r1, _0805694C @ =gSaveBlock1
+ negs r0, r6
+ strh r0, [r1]
+ ldr r2, [r5, 0x4]
+ ldrh r0, [r1, 0x2]
+ subs r0, r2
+ b _08056986
+ .align 2, 0
+_0805694C: .4byte gSaveBlock1
+_08056950:
+ ldr r1, _08056960 @ =gSaveBlock1
+ ldr r0, [r3]
+ ldr r0, [r0]
+ strh r0, [r1]
+ ldr r2, [r5, 0x4]
+ ldrh r0, [r1, 0x2]
+ subs r0, r2
+ b _08056986
+ .align 2, 0
+_08056960: .4byte gSaveBlock1
+_08056964:
+ ldr r1, _08056974 @ =gSaveBlock1
+ ldr r2, [r5, 0x4]
+ ldrh r0, [r1]
+ subs r0, r2
+ strh r0, [r1]
+ negs r0, r7
+ b _08056986
+ .align 2, 0
+_08056974: .4byte gSaveBlock1
+_08056978:
+ ldr r1, _08056990 @ =gSaveBlock1
+ ldr r2, [r5, 0x4]
+ ldrh r0, [r1]
+ subs r0, r2
+ strh r0, [r1]
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+_08056986:
+ strh r0, [r1, 0x2]
+_08056988:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08056990: .4byte gSaveBlock1
+ thumb_func_end sub_8056918
+
+ thumb_func_start CameraMove
+CameraMove: @ 8056994
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ str r1, [sp]
+ ldr r1, _080569D4 @ =gUnknown_0202E844
+ ldrb r0, [r1]
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r0
+ ldr r2, _080569D4 @ =gUnknown_0202E844
+ strb r1, [r2]
+ mov r0, r10
+ ldr r1, [sp]
+ bl GetPostCameraMoveMapBorderId
+ adds r7, r0, 0
+ adds r0, r7, 0x1
+ cmp r0, 0x1
+ bhi _080569DC
+ ldr r0, _080569D8 @ =gSaveBlock1
+ ldrh r1, [r0]
+ add r1, r10
+ strh r1, [r0]
+ ldrh r1, [r0, 0x2]
+ ldr r2, [sp]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ b _08056A42
+ .align 2, 0
+_080569D4: .4byte gUnknown_0202E844
+_080569D8: .4byte gSaveBlock1
+_080569DC:
+ bl save_serialize_map
+ ldr r5, _08056A5C @ =gSaveBlock1
+ movs r0, 0
+ ldrsh r6, [r5, r0]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ mov r8, r1
+ lsls r0, r7, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r1, r6, 0
+ mov r2, r8
+ bl sub_8056A64
+ adds r4, r0, 0
+ adds r1, r7, 0
+ mov r2, r10
+ ldr r3, [sp]
+ bl sub_8056918
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ bl sub_80538F0
+ ldr r1, _08056A60 @ =gUnknown_0202E844
+ ldrb r0, [r1]
+ movs r1, 0x1
+ orrs r0, r1
+ ldr r2, _08056A60 @ =gUnknown_0202E844
+ strb r0, [r2]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ subs r6, r0
+ str r6, [r2, 0x4]
+ movs r2, 0x2
+ ldrsh r0, [r5, r2]
+ mov r1, r8
+ subs r1, r0
+ ldr r2, _08056A60 @ =gUnknown_0202E844
+ str r1, [r2, 0x8]
+ ldrh r0, [r5]
+ add r0, r10
+ strh r0, [r5]
+ ldrh r0, [r5, 0x2]
+ ldr r1, [sp]
+ adds r0, r1
+ strh r0, [r5, 0x2]
+ mov r0, r9
+ bl sub_80566F0
+_08056A42:
+ ldr r0, _08056A60 @ =gUnknown_0202E844
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08056A5C: .4byte gSaveBlock1
+_08056A60: .4byte gUnknown_0202E844
+ thumb_func_end CameraMove
+
+ thumb_func_start sub_8056A64
+sub_8056A64: @ 8056A64
+ 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, _08056AA0 @ =gMapHeader
+ ldr r0, [r0, 0xC]
+ ldr r7, [r0]
+ ldr r4, [r0, 0x4]
+ movs r5, 0
+ cmp r5, r7
+ bge _08056AAC
+_08056A82:
+ ldrb r0, [r4]
+ cmp r0, r6
+ bne _08056AA4
+ adds r0, r6, 0
+ mov r1, r9
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_8056ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08056AA4
+ adds r0, r4, 0
+ b _08056AAE
+ .align 2, 0
+_08056AA0: .4byte gMapHeader
+_08056AA4:
+ adds r5, 0x1
+ adds r4, 0xC
+ cmp r5, r7
+ blt _08056A82
+_08056AAC:
+ movs r0, 0
+_08056AAE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8056A64
+
+ thumb_func_start sub_8056ABC
+sub_8056ABC: @ 8056ABC
+ 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 _08056B14
+ cmp r4, 0x2
+ bgt _08056AF4
+ ldr r0, _08056AF0 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldr r0, [r2]
+ ldr r2, [r0]
+ ldr r3, [r5, 0x4]
+ adds r0, r7, 0
+ b _08056B06
+ .align 2, 0
+_08056AF0: .4byte gMapHeader
+_08056AF4:
+ cmp r6, 0x4
+ bgt _08056B14
+ ldr r0, _08056B10 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ ldr r0, [r2]
+ ldr r2, [r0, 0x4]
+ ldr r3, [r5, 0x4]
+ mov r0, r8
+_08056B06:
+ bl sub_8056B20
+ lsls r0, 24
+ lsrs r0, 24
+ b _08056B16
+ .align 2, 0
+_08056B10: .4byte gMapHeader
+_08056B14:
+ movs r0, 0
+_08056B16:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8056ABC
+
+ thumb_func_start sub_8056B20
+sub_8056B20: @ 8056B20
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r2, 0
+ adds r2, r3, 0
+ cmp r3, 0
+ bge _08056B2E
+ movs r3, 0
+_08056B2E:
+ adds r2, r0, r2
+ cmp r2, r1
+ bge _08056B36
+ adds r1, r2, 0
+_08056B36:
+ cmp r3, r4
+ bgt _08056B42
+ cmp r4, r1
+ bgt _08056B42
+ movs r0, 0x1
+ b _08056B44
+_08056B42:
+ movs r0, 0
+_08056B44:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8056B20
+
+ thumb_func_start sub_8056B4C
+sub_8056B4C: @ 8056B4C
+ push {lr}
+ cmp r0, 0
+ blt _08056B5A
+ cmp r0, r1
+ bge _08056B5A
+ movs r0, 0x1
+ b _08056B5C
+_08056B5A:
+ movs r0, 0
+_08056B5C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8056B4C
+
+ thumb_func_start sub_8056B60
+sub_8056B60: @ 8056B60
+ 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 _08056B98
+ cmp r0, 0x2
+ bgt _08056B86
+ ldr r0, [r4, 0x4]
+ subs r0, r5, r0
+ ldr r1, [r1]
+ ldr r1, [r1]
+ bl sub_8056B4C
+ b _08056B9A
+_08056B86:
+ cmp r0, 0x4
+ bgt _08056B98
+ ldr r0, [r4, 0x4]
+ subs r0, r6, r0
+ ldr r1, [r1]
+ ldr r1, [r1, 0x4]
+ bl sub_8056B4C
+ b _08056B9A
+_08056B98:
+ movs r0, 0
+_08056B9A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8056B60
+
+ thumb_func_start sub_8056BA0
+sub_8056BA0: @ 8056BA0
+ 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, _08056BC0 @ =gMapHeader
+ ldr r0, [r2, 0xC]
+ cmp r0, 0
+ bne _08056BC8
+ b _08056C3E
+ .align 2, 0
+_08056BC0: .4byte gMapHeader
+_08056BC4:
+ adds r0, r4, 0
+ b _08056C40
+_08056BC8:
+ ldr r7, [r0]
+ ldr r4, [r0, 0x4]
+ movs r6, 0
+ cmp r6, r7
+ bge _08056C3E
+ lsls r0, r1, 16
+ asrs r5, r0, 16
+ mov r9, r2
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ mov r10, r0
+_08056BE0:
+ ldrb r1, [r4]
+ adds r3, r1, 0
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08056C36
+ cmp r1, 0x2
+ bne _08056BF6
+ cmp r5, 0x6
+ bgt _08056C36
+_08056BF6:
+ cmp r1, 0x1
+ bne _08056C06
+ mov r2, r9
+ ldr r0, [r2]
+ ldr r0, [r0, 0x4]
+ adds r0, 0x7
+ cmp r5, r0
+ blt _08056C36
+_08056C06:
+ mov r0, r8
+ lsls r2, r0, 16
+ cmp r1, 0x3
+ bne _08056C14
+ mov r1, r10
+ cmp r1, 0x6
+ bgt _08056C36
+_08056C14:
+ cmp r3, 0x4
+ bne _08056C26
+ asrs r1, r2, 16
+ mov r3, r9
+ ldr r0, [r3]
+ ldr r0, [r0]
+ adds r0, 0x7
+ cmp r1, r0
+ blt _08056C36
+_08056C26:
+ asrs r1, r2, 16
+ subs r1, 0x7
+ adds r0, r4, 0
+ subs r2, r5, 0x7
+ bl sub_8056B60
+ cmp r0, 0x1
+ beq _08056BC4
+_08056C36:
+ adds r6, 0x1
+ adds r4, 0xC
+ cmp r6, r7
+ blt _08056BE0
+_08056C3E:
+ movs r0, 0
+_08056C40:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8056BA0
+
+ thumb_func_start sub_8056C50
+sub_8056C50: @ 8056C50
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _08056C64 @ =gSaveBlock1
+ subs r0, 0x7
+ strh r0, [r2]
+ subs r1, 0x7
+ strh r1, [r2, 0x2]
+ bx lr
+ .align 2, 0
+_08056C64: .4byte gSaveBlock1
+ thumb_func_end sub_8056C50
+
+ thumb_func_start sav1_camera_get_focus_coords
+sav1_camera_get_focus_coords: @ 8056C68
+ ldr r3, _08056C78 @ =gSaveBlock1
+ ldrh r2, [r3]
+ adds r2, 0x7
+ strh r2, [r0]
+ ldrh r0, [r3, 0x2]
+ adds r0, 0x7
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08056C78: .4byte gSaveBlock1
+ thumb_func_end sav1_camera_get_focus_coords
+
+ thumb_func_start unref_sub_8056C7C
+unref_sub_8056C7C: @ 8056C7C
+ ldr r2, _08056C84 @ =gSaveBlock1
+ strh r0, [r2]
+ strh r1, [r2, 0x2]
+ bx lr
+ .align 2, 0
+_08056C84: .4byte gSaveBlock1
+ thumb_func_end unref_sub_8056C7C
+
+ thumb_func_start GetCameraCoords
+GetCameraCoords: @ 8056C88
+ ldr r3, _08056C94 @ =gSaveBlock1
+ ldrh r2, [r3]
+ strh r2, [r0]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08056C94: .4byte gSaveBlock1
+ thumb_func_end GetCameraCoords
+
+ thumb_func_start sub_8056C98
+sub_8056C98: @ 8056C98
+ push {lr}
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _08056CB8
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08056CB2
+ ldr r0, [r2, 0x4]
+ movs r2, 0x80
+ lsls r2, 5
+ bl CpuFastSet
+ b _08056CB8
+_08056CB2:
+ ldr r0, [r2, 0x4]
+ bl LZ77UnCompVram
+_08056CB8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8056C98
+
+ thumb_func_start sub_8056CBC
+sub_8056CBC: @ 8056CBC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ cmp r4, 0
+ beq _08056D1E
+ ldrb r1, [r4, 0x1]
+ cmp r1, 0
+ bne _08056CEE
+ mov r0, sp
+ strh r1, [r0]
+ lsls r1, r5, 16
+ lsrs r1, 16
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, [r4, 0x8]
+ adds r0, 0x2
+ adds r1, r5, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ subs r2, r6, 0x2
+ lsls r2, 16
+ b _08056CFC
+_08056CEE:
+ cmp r1, 0x1
+ bne _08056D04
+ ldr r0, [r4, 0x8]
+ adds r0, 0xC0
+ lsls r1, r5, 16
+ lsrs r1, 16
+ lsls r2, r6, 16
+_08056CFC:
+ lsrs r2, 16
+ bl LoadPalette
+ b _08056D1E
+_08056D04:
+ ldr r0, [r4, 0x8]
+ movs r4, 0x80
+ lsls r4, 18
+ adds r1, r4, 0
+ bl LZ77UnCompVram
+ lsls r1, r5, 16
+ lsrs r1, 16
+ lsls r2, r6, 16
+ lsrs r2, 16
+ adds r0, r4, 0
+ bl LoadPalette
+_08056D1E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8056CBC
+
+ thumb_func_start sub_8056D28
+sub_8056D28: @ 8056D28
+ push {lr}
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r0, [r0, 0x10]
+ bl sub_8056C98
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8056D28
+
+ thumb_func_start sub_8056D38
+sub_8056D38: @ 8056D38
+ push {lr}
+ ldr r1, _08056D48 @ =0x06004000
+ ldr r0, [r0, 0x14]
+ bl sub_8056C98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08056D48: .4byte 0x06004000
+ thumb_func_end sub_8056D38
+
+ thumb_func_start apply_map_tileset1_palette
+apply_map_tileset1_palette: @ 8056D4C
+ push {lr}
+ ldr r0, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0xC0
+ bl sub_8056CBC
+ pop {r0}
+ bx r0
+ thumb_func_end apply_map_tileset1_palette
+
+ thumb_func_start apply_map_tileset2_palette
+apply_map_tileset2_palette: @ 8056D5C
+ push {lr}
+ ldr r0, [r0, 0x14]
+ movs r1, 0x60
+ movs r2, 0xC0
+ bl sub_8056CBC
+ pop {r0}
+ bx r0
+ thumb_func_end apply_map_tileset2_palette
+
+ thumb_func_start copy_map_tileset1_tileset2_to_vram
+copy_map_tileset1_tileset2_to_vram: @ 8056D6C
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08056D7E
+ bl sub_8056D28
+ adds r0, r4, 0
+ bl sub_8056D38
+_08056D7E:
+ pop {r4}
+ 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: @ 8056D84
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08056D96
+ bl apply_map_tileset1_palette
+ adds r0, r4, 0
+ bl apply_map_tileset2_palette
+_08056D96:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end apply_map_tileset1_tileset2_palette
+
+ .align 2, 0 @ Don't pad with nop.