.include "constants/gba_constants.inc" .include "asm/macros.inc" .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.