summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/region_map.s6584
-rw-r--r--data/region_map.s74
-rw-r--r--data/text/map_section_names.inc327
-rw-r--r--include/constants/region_map.h6
-rw-r--r--include/map_preview_screen.h1
-rw-r--r--include/strings.h11
-rw-r--r--ld_script.txt2
-rw-r--r--src/data/text/map_section_names.h109
-rw-r--r--src/region_map.c2225
-rw-r--r--sym_ewram.txt29
10 files changed, 2419 insertions, 6949 deletions
diff --git a/asm/region_map.s b/asm/region_map.s
index 662c65fa7..10f8c83f4 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -5,6590 +5,6 @@
.text
- thumb_func_start sub_80BFE18
-sub_80BFE18: @ 80BFE18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- cmp r1, 0
- beq _080BFE92
- movs r0, 0x1F
- mov r10, r0
- mov r8, r1
-_080BFE38:
- ldrh r1, [r6]
- movs r0, 0x1F
- ands r0, r1
- lsls r1, 16
- lsrs r5, r1, 21
- mov r2, r10
- ands r5, r2
- lsrs r4, r1, 26
- ands r4, r2
- lsls r0, 8
- movs r1, 0x64
- bl __divsi3
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- asrs r7, r0, 8
- lsls r0, r5, 8
- movs r1, 0x64
- bl __divsi3
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- asrs r5, r0, 8
- lsls r0, r4, 8
- movs r1, 0x64
- bl __divsi3
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- asrs r4, r0, 8
- lsls r0, r4, 10
- lsls r1, r5, 5
- orrs r0, r1
- orrs r0, r7
- strh r0, [r6]
- adds r6, 0x2
- movs r2, 0x1
- negs r2, r2
- add r8, r2
- mov r0, r8
- cmp r0, 0
- bne _080BFE38
-_080BFE92:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BFE18
-
- thumb_func_start sub_80BFEA0
-sub_80BFEA0: @ 80BFEA0
- push {r4,lr}
- sub sp, 0x20
- ldr r4, _080BFED8 @ =gUnknown_83EF2DC + 0x40
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0x10
- bl CpuSet
- mov r0, sp
- movs r1, 0x10
- movs r2, 0x5F
- bl sub_80BFE18
- mov r0, sp
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x1E
- adds r0, r4, 0
- movs r1, 0x2F
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFED8: .4byte gUnknown_83EF2DC + 0x40
- thumb_func_end sub_80BFEA0
-
- thumb_func_start sub_80BFEDC
-sub_80BFEDC: @ 80BFEDC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080BFEFC @ =gUnknown_20399D4
- ldr r0, _080BFF00 @ =0x000047c0
- bl AllocZeroed
- adds r2, r0, 0
- str r2, [r4]
- cmp r2, 0
- bne _080BFF08
- ldr r0, _080BFF04 @ =CB2_ReturnToField
- bl SetMainCallback2
- b _080BFF38
- .align 2, 0
-_080BFEFC: .4byte gUnknown_20399D4
-_080BFF00: .4byte 0x000047c0
-_080BFF04: .4byte CB2_ReturnToField
-_080BFF08:
- ldr r1, _080BFF40 @ =gUnknown_2031DE0
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080BFF44 @ =0x00004796
- adds r0, r2, r1
- movs r1, 0
- strb r5, [r0]
- ldr r0, [r4]
- ldr r2, _080BFF48 @ =0x000047a0
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x4
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x4
- adds r0, r2
- strb r1, [r0]
- bl sub_80BFFD0
- ldr r0, _080BFF4C @ =sub_80C0100
- bl SetMainCallback2
-_080BFF38:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFF40: .4byte gUnknown_2031DE0
-_080BFF44: .4byte 0x00004796
-_080BFF48: .4byte 0x000047a0
-_080BFF4C: .4byte sub_80C0100
- thumb_func_end sub_80BFEDC
-
- thumb_func_start sub_80BFF50
-sub_80BFF50: @ 80BFF50
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080BFF70 @ =gUnknown_20399D4
- ldr r0, _080BFF74 @ =0x000047c0
- bl AllocZeroed
- adds r2, r0, 0
- str r2, [r4]
- cmp r2, 0
- bne _080BFF7C
- ldr r0, _080BFF78 @ =CB2_ReturnToField
- bl SetMainCallback2
- b _080BFFB4
- .align 2, 0
-_080BFF70: .4byte gUnknown_20399D4
-_080BFF74: .4byte 0x000047c0
-_080BFF78: .4byte CB2_ReturnToField
-_080BFF7C:
- ldr r1, _080BFFBC @ =gUnknown_2031DE0
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080BFFC0 @ =0x00004796
- adds r0, r2, r1
- movs r1, 0
- strb r5, [r0]
- ldr r0, [r4]
- ldr r2, _080BFFC4 @ =0x000047a0
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x4
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x4
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080BFFC8 @ =0x000047bc
- adds r0, r1
- str r6, [r0]
- bl sub_80BFFD0
- ldr r0, _080BFFCC @ =sub_80C0100
- bl SetMainCallback2
-_080BFFB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFFBC: .4byte gUnknown_2031DE0
-_080BFFC0: .4byte 0x00004796
-_080BFFC4: .4byte 0x000047a0
-_080BFFC8: .4byte 0x000047bc
-_080BFFCC: .4byte sub_80C0100
- thumb_func_end sub_80BFF50
-
- thumb_func_start sub_80BFFD0
-sub_80BFFD0: @ 80BFFD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _080C0000 @ =gUnknown_20399D4
- ldr r2, [r1]
- ldr r3, _080C0004 @ =0x00004796
- adds r0, r2, r3
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0
- blt _080BFFF2
- cmp r0, 0x1
- ble _080BFFF2
- cmp r0, 0x2
- beq _080C0010
-_080BFFF2:
- mov r4, r8
- ldr r0, [r4]
- ldr r1, _080C0008 @ =0x000047b8
- adds r0, r1
- ldr r1, _080C000C @ =sub_80C04E4
- str r1, [r0]
- b _080C0018
- .align 2, 0
-_080C0000: .4byte gUnknown_20399D4
-_080C0004: .4byte 0x00004796
-_080C0008: .4byte 0x000047b8
-_080C000C: .4byte sub_80C04E4
-_080C0010:
- ldr r3, _080C009C @ =0x000047b8
- adds r1, r2, r3
- ldr r0, _080C00A0 @ =sub_80C4F08
- str r0, [r1]
-_080C0018:
- movs r3, 0
- ldr r6, _080C00A4 @ =gUnknown_20399D4
- ldr r5, _080C00A8 @ =0x00004797
- ldr r4, _080C00AC @ =gUnknown_83F1B00
- ldr r2, _080C00B0 @ =0x00004796
-_080C0022:
- ldr r0, [r6]
- adds r1, r0, r5
- adds r1, r3
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080C0022
- ldr r0, _080C00B4 @ =0x00000845
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080C0058
- ldr r0, _080C00A4 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r4, _080C00A8 @ =0x00004797
- adds r0, r4
- strb r1, [r0]
-_080C0058:
- movs r7, 0
- movs r1, 0
- ldr r2, _080C00B8 @ =gMapHeader
- ldrb r0, [r2, 0x14]
- ldr r3, _080C00A4 @ =gUnknown_20399D4
- mov r8, r3
- cmp r0, 0x8E
- bls _080C00D8
- ldr r4, _080C00BC @ =gUnknown_83F1AA4
- mov r12, r4
- mov r10, r12
- mov r9, r2
-_080C0070:
- movs r3, 0
- lsls r0, r1, 4
- subs r0, r1
- lsls r2, r0, 1
- mov r4, r10
- adds r0, r2, r4
- ldrb r0, [r0]
- adds r5, r1, 0x1
- cmp r0, 0xC5
- beq _080C00D0
- ldr r6, _080C00BC @ =gUnknown_83F1AA4
- mov r0, r9
- ldrb r1, [r0, 0x14]
- lsls r4, r5, 24
-_080C008C:
- adds r0, r3, r2
- adds r0, r6
- ldrb r0, [r0]
- cmp r1, r0
- bne _080C00C0
- lsrs r7, r4, 24
- b _080C00D0
- .align 2, 0
-_080C009C: .4byte 0x000047b8
-_080C00A0: .4byte sub_80C4F08
-_080C00A4: .4byte gUnknown_20399D4
-_080C00A8: .4byte 0x00004797
-_080C00AC: .4byte gUnknown_83F1B00
-_080C00B0: .4byte 0x00004796
-_080C00B4: .4byte 0x00000845
-_080C00B8: .4byte gMapHeader
-_080C00BC: .4byte gUnknown_83F1AA4
-_080C00C0:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r3, r2
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0xC5
- bne _080C008C
-_080C00D0:
- lsls r0, r5, 24
- lsrs r1, r0, 24
- cmp r7, 0
- beq _080C0070
-_080C00D8:
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _080C00F8 @ =0x0000479b
- adds r0, r2
- strb r7, [r0]
- ldr r0, [r1]
- ldr r3, _080C00FC @ =0x0000479c
- adds r0, r3
- strb r7, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C00F8: .4byte 0x0000479b
-_080C00FC: .4byte 0x0000479c
- thumb_func_end sub_80BFFD0
-
- thumb_func_start sub_80C0100
-sub_80C0100: @ 80C0100
- push {r4,lr}
- sub sp, 0x8
- ldr r0, _080C011C @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C0120 @ =0x000047a4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _080C0202
- lsls r0, 2
- ldr r1, _080C0124 @ =_080C0128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C011C: .4byte gUnknown_20399D4
-_080C0120: .4byte 0x000047a4
-_080C0124: .4byte _080C0128
- .align 2, 0
-_080C0128:
- .4byte _080C014C
- .4byte _080C0152
- .4byte _080C0158
- .4byte _080C015E
- .4byte _080C016A
- .4byte _080C0180
- .4byte _080C01D4
- .4byte _080C01E0
- .4byte _080C01EC
-_080C014C:
- bl sub_80C08E0
- b _080C021A
-_080C0152:
- bl sub_80C0904
- b _080C021A
-_080C0158:
- bl sub_80C0A6C
- b _080C021A
-_080C015E:
- bl sub_80C0238
- lsls r0, 24
- cmp r0, 0
- beq _080C0228
- b _080C021A
-_080C016A:
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- b _080C01BA
-_080C0180:
- ldr r4, _080C01C4 @ =gUnknown_20399D4
- ldr r1, [r4]
- ldr r2, _080C01C8 @ =0x0000479b
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r2, r0, 2
- adds r2, r0
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 4
- adds r0, 0x26
- adds r1, r0
- movs r0, 0
- bl sub_80C0CC8
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r1, [r4]
- ldr r2, _080C01CC @ =0x00004796
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C021A
- ldr r0, _080C01D0 @ =0x000012e6
- adds r1, r0
- movs r0, 0x1
- bl sub_80C0CC8
-_080C01BA:
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _080C021A
- .align 2, 0
-_080C01C4: .4byte gUnknown_20399D4
-_080C01C8: .4byte 0x0000479b
-_080C01CC: .4byte 0x00004796
-_080C01D0: .4byte 0x000012e6
-_080C01D4:
- bl sub_80C0B18
- movs r0, 0
- bl PutWindowTilemap
- b _080C021A
-_080C01E0:
- bl sub_80C0BB0
- movs r0, 0x1
- bl PutWindowTilemap
- b _080C021A
-_080C01EC:
- movs r0, 0x2
- bl sub_80C0E04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C021A
- movs r0, 0x1
- bl sub_80C0A88
- b _080C021A
-_080C0202:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sub_80C03E8
- bl sub_80C08F4
-_080C021A:
- ldr r0, _080C0230 @ =gUnknown_20399D4
- ldr r1, [r0]
- ldr r2, _080C0234 @ =0x000047a4
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080C0228:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0230: .4byte gUnknown_20399D4
-_080C0234: .4byte 0x000047a4
- thumb_func_end sub_80C0100
-
- thumb_func_start sub_80C0238
-sub_80C0238: @ 80C0238
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080C0258 @ =gUnknown_20399D4
- ldr r1, [r0]
- ldr r2, _080C025C @ =0x000047a8
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _080C024C
- b _080C03B0
-_080C024C:
- lsls r0, 2
- ldr r1, _080C0260 @ =_080C0264
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0258: .4byte gUnknown_20399D4
-_080C025C: .4byte 0x000047a8
-_080C0260: .4byte _080C0264
- .align 2, 0
-_080C0264:
- .4byte _080C0288
- .4byte _080C0298
- .4byte _080C02FC
- .4byte _080C0302
- .4byte _080C0340
- .4byte _080C034E
- .4byte _080C0364
- .4byte _080C037C
- .4byte _080C0394
-_080C0288:
- ldr r0, _080C0294 @ =gUnknown_83EF23C
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadPalette
- b _080C03C8
- .align 2, 0
-_080C0294: .4byte gUnknown_83EF23C
-_080C0298:
- ldr r0, _080C02EC @ =gUnknown_83EF2DC
- movs r1, 0
- movs r2, 0xA0
- bl LoadPalette
- bl sub_80BFEA0
- ldr r0, _080C02F0 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C02F4 @ =0x00004796
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C02B6
- b _080C03C8
-_080C02B6:
- ldr r4, _080C02F8 @ =gUnknown_83EF23C + 0x1E
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x20
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x40
- movs r2, 0x2
- bl LoadPalette
- b _080C03C8
- .align 2, 0
-_080C02EC: .4byte gUnknown_83EF2DC
-_080C02F0: .4byte gUnknown_20399D4
-_080C02F4: .4byte 0x00004796
-_080C02F8: .4byte gUnknown_83EF23C + 0x1E
-_080C02FC:
- bl ResetTempTileDataBuffers
- b _080C03C8
-_080C0302:
- ldr r1, _080C0330 @ =gUnknown_83EF61C
- movs r4, 0
- str r4, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r0, _080C0334 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r2, _080C0338 @ =0x00004796
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C03C8
- ldr r1, _080C033C @ =gUnknown_83F1978
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- b _080C03C8
- .align 2, 0
-_080C0330: .4byte gUnknown_83EF61C
-_080C0334: .4byte gUnknown_20399D4
-_080C0338: .4byte 0x00004796
-_080C033C: .4byte gUnknown_83F1978
-_080C0340:
- bl FreeTempTileDataBuffersIfPossible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C03C8
- b _080C03D6
-_080C034E:
- ldr r0, _080C035C @ =gUnknown_83F089C
- ldr r1, _080C0360 @ =gUnknown_20399D4
- ldr r1, [r1]
- adds r1, 0x26
- bl LZ77UnCompWram
- b _080C03C8
- .align 2, 0
-_080C035C: .4byte gUnknown_83F089C
-_080C0360: .4byte gUnknown_20399D4
-_080C0364:
- ldr r0, _080C0370 @ =gUnknown_83F0AFC
- ldr r1, _080C0374 @ =gUnknown_20399D4
- ldr r1, [r1]
- ldr r2, _080C0378 @ =0x000004d6
- b _080C039C
- .align 2, 0
-_080C0370: .4byte gUnknown_83F0AFC
-_080C0374: .4byte gUnknown_20399D4
-_080C0378: .4byte 0x000004d6
-_080C037C:
- ldr r0, _080C0388 @ =gUnknown_83F0C0C
- ldr r1, _080C038C @ =gUnknown_20399D4
- ldr r1, [r1]
- ldr r2, _080C0390 @ =0x00000986
- b _080C039C
- .align 2, 0
-_080C0388: .4byte gUnknown_83F0C0C
-_080C038C: .4byte gUnknown_20399D4
-_080C0390: .4byte 0x00000986
-_080C0394:
- ldr r0, _080C03A4 @ =gUnknown_83F0CF0
- ldr r1, _080C03A8 @ =gUnknown_20399D4
- ldr r1, [r1]
- ldr r2, _080C03AC @ =0x00000e36
-_080C039C:
- adds r1, r2
- bl LZ77UnCompWram
- b _080C03C8
- .align 2, 0
-_080C03A4: .4byte gUnknown_83F0CF0
-_080C03A8: .4byte gUnknown_20399D4
-_080C03AC: .4byte 0x00000e36
-_080C03B0:
- ldr r0, _080C03C0 @ =gUnknown_83F19A0
- ldr r2, _080C03C4 @ =0x000012e6
- adds r1, r2
- bl LZ77UnCompWram
- movs r0, 0x1
- b _080C03D8
- .align 2, 0
-_080C03C0: .4byte gUnknown_83F19A0
-_080C03C4: .4byte 0x000012e6
-_080C03C8:
- ldr r0, _080C03E0 @ =gUnknown_20399D4
- ldr r1, [r0]
- ldr r0, _080C03E4 @ =0x000047a8
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080C03D6:
- movs r0, 0
-_080C03D8:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C03E0: .4byte gUnknown_20399D4
-_080C03E4: .4byte 0x000047a8
- thumb_func_end sub_80C0238
-
- thumb_func_start sub_80C03E8
-sub_80C03E8: @ 80C03E8
- push {lr}
- ldr r0, _080C0404 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C0408 @ =0x000047b8
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- ldr r0, _080C040C @ =sub_80C08B4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C0404: .4byte gUnknown_20399D4
-_080C0408: .4byte 0x000047b8
-_080C040C: .4byte sub_80C08B4
- thumb_func_end sub_80C03E8
-
- thumb_func_start sub_80C0410
-sub_80C0410: @ 80C0410
- push {r4,r5,lr}
- bl sub_80C0E20
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_80C3514
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- bl sub_80C3508
- adds r3, r0, 0
- lsls r3, 16
- asrs r3, 16
- adds r0, r5, 0
- movs r1, 0
- adds r2, r4, 0
- bl sub_80C4164
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- beq _080C0446
- movs r0, 0x1
- b _080C0448
-_080C0446:
- movs r0, 0
-_080C0448:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C0410
-
- thumb_func_start sub_80C0450
-sub_80C0450: @ 80C0450
- push {lr}
- bl sub_80C0410
- cmp r0, 0
- beq _080C04E0
- movs r0, 0
- bl sub_80C3AC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C0474
- movs r0, 0
- bl sub_80C3AC8
- lsls r0, 24
- cmp r0, 0
- bne _080C048E
-_080C0474:
- movs r0, 0x1
- bl sub_80C3AC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C0494
- movs r0, 0x1
- bl sub_80C3AC8
- lsls r0, 24
- cmp r0, 0
- beq _080C0494
-_080C048E:
- movs r0, 0x65
- bl PlaySE
-_080C0494:
- bl sub_80C3508
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x15
- bne _080C04C2
- bl sub_80C3514
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bne _080C04C2
- movs r0, 0
- bl sub_80C0E04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C04C2
- movs r0, 0xE1
- bl PlaySE
- b _080C04E0
-_080C04C2:
- bl sub_80C3508
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x15
- bne _080C04E0
- bl sub_80C3514
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xD
- bne _080C04E0
- movs r0, 0xE1
- bl PlaySE
-_080C04E0:
- pop {r0}
- bx r0
- thumb_func_end sub_80C0450
-
- thumb_func_start sub_80C04E4
-sub_80C04E4: @ 80C04E4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C0508 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C050C @ =0x000047a0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bls _080C04FC
- b _080C07B0
-_080C04FC:
- lsls r0, 2
- ldr r1, _080C0510 @ =_080C0514
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0508: .4byte gUnknown_20399D4
-_080C050C: .4byte 0x000047a0
-_080C0510: .4byte _080C0514
- .align 2, 0
-_080C0514:
- .4byte _080C052C
- .4byte _080C0560
- .4byte _080C05E0
- .4byte _080C0624
- .4byte _080C0760
- .4byte _080C0788
-_080C052C:
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080C0558 @ =gUnknown_20399D4
- ldr r1, [r4]
- ldr r2, _080C055C @ =0x000047b8
- adds r1, r2
- ldr r2, [r1]
- adds r1, r5, 0
- bl sub_80C4398
- movs r0, 0
- movs r1, 0
- bl sub_80C3008
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80C41D8
- ldr r1, [r4]
- b _080C079C
- .align 2, 0
-_080C0558: .4byte gUnknown_20399D4
-_080C055C: .4byte 0x000047b8
-_080C0560:
- ldr r0, _080C057C @ =gUnknown_20399D4
- ldr r1, [r0]
- ldr r2, _080C0580 @ =0x00004799
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080C0584
- adds r2, 0x1F
- adds r0, r1, r2
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_80C2208
- b _080C0798
- .align 2, 0
-_080C057C: .4byte gUnknown_20399D4
-_080C0580: .4byte 0x00004799
-_080C0584:
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r0, _080C05D8 @ =gUnknown_8418EB5
- bl sub_80C4E18
- ldr r0, _080C05DC @ =gUnknown_8418E8B
- bl sub_80C4E74
- movs r0, 0
- bl sub_80C4ED0
- movs r0, 0
- bl sub_80C4324
- movs r0, 0
- bl sub_80C3154
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0
- bl sub_80C48BC
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0
- bl sub_80C4960
- b _080C0798
- .align 2, 0
-_080C05D8: .4byte gUnknown_8418EB5
-_080C05DC: .4byte gUnknown_8418E8B
-_080C05E0:
- ldr r0, _080C0618 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080C05EE
- b _080C07C2
-_080C05EE:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _080C05FA
- b _080C07C2
-_080C05FA:
- bl sub_80C0B18
- movs r0, 0
- bl PutWindowTilemap
- bl sub_80C0BB0
- movs r0, 0x1
- bl PutWindowTilemap
- ldr r0, _080C061C @ =gUnknown_20399D4
- ldr r1, [r0]
- ldr r2, _080C0620 @ =0x000047a0
- adds r1, r2
- b _080C07A0
- .align 2, 0
-_080C0618: .4byte gPaletteFade
-_080C061C: .4byte gUnknown_20399D4
-_080C0620: .4byte 0x000047a0
-_080C0624:
- bl sub_80C3400
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x5
- bls _080C0634
- b _080C07C2
-_080C0634:
- lsls r0, 2
- ldr r1, _080C0640 @ =_080C0644
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0640: .4byte _080C0644
- .align 2, 0
-_080C0644:
- .4byte _080C065C
- .4byte _080C07C2
- .4byte _080C0662
- .4byte _080C070C
- .4byte _080C0740
- .4byte _080C0798
-_080C065C:
- bl sub_80C3178
- b _080C07C2
-_080C0662:
- bl sub_80C0B18
- bl sub_80C0BB0
- bl sub_80C0B9C
- bl sub_80C0450
- bl sub_80C3580
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC5
- beq _080C06A8
- movs r0, 0x1
- bl sub_80C0E04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C068E
- b _080C07C2
-_080C068E:
- movs r0, 0x1
- bl sub_80C3AC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C0700
- ldr r0, _080C06A4 @ =gUnknown_8418E8D
- bl sub_80C4E74
- b _080C07C2
- .align 2, 0
-_080C06A4: .4byte gUnknown_8418E8D
-_080C06A8:
- bl sub_80C3508
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x15
- bne _080C06DC
- bl sub_80C3514
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bne _080C06DC
- movs r0, 0
- bl sub_80C0E04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C06DC
- ldr r0, _080C06D8 @ =gUnknown_8418EA7
- bl sub_80C4E74
- b _080C07C2
- .align 2, 0
-_080C06D8: .4byte gUnknown_8418EA7
-_080C06DC:
- bl sub_80C3508
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x15
- bne _080C0700
- bl sub_80C3514
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xD
- bne _080C0700
- ldr r0, _080C06FC @ =gUnknown_8418E95
- bl sub_80C4E74
- b _080C07C2
- .align 2, 0
-_080C06FC: .4byte gUnknown_8418E95
-_080C0700:
- ldr r0, _080C0708 @ =gUnknown_8418E8B
- bl sub_80C4E74
- b _080C07C2
- .align 2, 0
-_080C0708: .4byte gUnknown_8418E8B
-_080C070C:
- movs r0, 0x1
- bl sub_80C3AC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C07C2
- ldr r0, _080C0734 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C0738 @ =0x00004798
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080C07C2
- ldr r2, _080C073C @ =sub_80C07F8
- movs r0, 0
- adds r1, r5, 0
- bl sub_80C195C
- b _080C07C2
- .align 2, 0
-_080C0734: .4byte gUnknown_20399D4
-_080C0738: .4byte 0x00004798
-_080C073C: .4byte sub_80C07F8
-_080C0740:
- ldr r0, _080C0754 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r2, _080C0758 @ =0x0000479b
- adds r0, r2
- ldrb r0, [r0]
- ldr r2, _080C075C @ =sub_80C07F8
- adds r1, r5, 0
- bl sub_80C0E70
- b _080C07C2
- .align 2, 0
-_080C0754: .4byte gUnknown_20399D4
-_080C0758: .4byte 0x0000479b
-_080C075C: .4byte sub_80C07F8
-_080C0760:
- movs r0, 0x2
- bl sub_80C0E04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C0776
- adds r0, r5, 0
- bl sub_80C2C1C
- b _080C0798
-_080C0776:
- ldr r0, _080C0780 @ =gUnknown_20399D4
- ldr r1, [r0]
- ldr r2, _080C0784 @ =0x000047a0
- adds r1, r2
- b _080C07A0
- .align 2, 0
-_080C0780: .4byte gUnknown_20399D4
-_080C0784: .4byte 0x000047a0
-_080C0788:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080C0798:
- ldr r0, _080C07A8 @ =gUnknown_20399D4
- ldr r1, [r0]
-_080C079C:
- ldr r0, _080C07AC @ =0x000047a0
- adds r1, r0
-_080C07A0:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C07C2
- .align 2, 0
-_080C07A8: .4byte gUnknown_20399D4
-_080C07AC: .4byte 0x000047a0
-_080C07B0:
- ldr r0, _080C07CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C07C2
- adds r0, r5, 0
- bl sub_80C0820
-_080C07C2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C07CC: .4byte gPaletteFade
- thumb_func_end sub_80C04E4
-
- thumb_func_start sub_80C07D0
-sub_80C07D0: @ 80C07D0
- ldr r1, _080C07DC @ =gUnknown_20399D4
- ldr r1, [r1]
- ldr r2, _080C07E0 @ =0x000047b8
- adds r1, r2
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C07DC: .4byte gUnknown_20399D4
-_080C07E0: .4byte 0x000047b8
- thumb_func_end sub_80C07D0
-
- thumb_func_start sub_80C07E4
-sub_80C07E4: @ 80C07E4
- ldr r0, _080C07F0 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C07F4 @ =0x000047b8
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080C07F0: .4byte gUnknown_20399D4
-_080C07F4: .4byte 0x000047b8
- thumb_func_end sub_80C07E4
-
- thumb_func_start sub_80C07F8
-sub_80C07F8: @ 80C07F8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C0814 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C0818 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r2, _080C081C @ =0x000047b8
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C0814: .4byte gTasks
-_080C0818: .4byte gUnknown_20399D4
-_080C081C: .4byte 0x000047b8
- thumb_func_end sub_80C07F8
-
- thumb_func_start sub_80C0820
-sub_80C0820: @ 80C0820
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- bl sub_80C0E04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C0838
- bl sub_80C25BC
-_080C0838:
- bl sub_80C4A04
- bl sub_80C3188
- bl sub_80C4348
- bl sub_80C4D30
- adds r0, r4, 0
- bl DestroyTask
- bl FreeAllWindowBuffers
- ldr r0, _080C086C @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C0870 @ =0x000047bc
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _080C0878
- ldr r0, _080C0874 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- b _080C087C
- .align 2, 0
-_080C086C: .4byte gUnknown_20399D4
-_080C0870: .4byte 0x000047bc
-_080C0874: .4byte gMain
-_080C0878:
- bl SetMainCallback2
-_080C087C:
- ldr r4, _080C0894 @ =gUnknown_20399D4
- ldr r0, [r4]
- cmp r0, 0
- beq _080C088C
- bl Free
- movs r0, 0
- str r0, [r4]
-_080C088C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0894: .4byte gUnknown_20399D4
- thumb_func_end sub_80C0820
-
- thumb_func_start sub_80C0898
-sub_80C0898: @ 80C0898
- push {r4,lr}
- ldr r4, _080C08B0 @ =gUnknown_20399D4
- ldr r0, [r4]
- cmp r0, 0
- beq _080C08AA
- bl Free
- movs r0, 0
- str r0, [r4]
-_080C08AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C08B0: .4byte gUnknown_20399D4
- thumb_func_end sub_80C0898
-
- thumb_func_start sub_80C08B4
-sub_80C08B4: @ 80C08B4
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80C08B4
-
- thumb_func_start sub_80C08CC
-sub_80C08CC: @ 80C08CC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80C08CC
-
- thumb_func_start sub_80C08E0
-sub_80C08E0: @ 80C08E0
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- pop {r0}
- bx r0
- thumb_func_end sub_80C08E0
-
- thumb_func_start sub_80C08F4
-sub_80C08F4: @ 80C08F4
- push {lr}
- ldr r0, _080C0900 @ =sub_80C08CC
- bl SetVBlankCallback
- pop {r0}
- bx r0
- .align 2, 0
-_080C0900: .4byte sub_80C08CC
- thumb_func_end sub_80C08F4
-
- thumb_func_start sub_80C0904
-sub_80C0904: @ 80C0904
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- mov r2, sp
- movs r6, 0
- ldr r1, _080C0A18 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080C0A1C @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080C092A:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _080C092A
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _080C0A18 @ =0x040000d4
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _080C0A20 @ =gUnknown_83F1A50
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r0, _080C0A24 @ =gUnknown_83F1A60
- bl InitWindows
- bl DeactivateAllTextPrinters
- ldr r1, _080C0A28 @ =0x00006040
- movs r0, 0
- bl SetGpuReg
- bl sub_80C0A2C
- bl sub_80C0AB8
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0A18: .4byte 0x040000d4
-_080C0A1C: .4byte 0x81000800
-_080C0A20: .4byte gUnknown_83F1A50
-_080C0A24: .4byte gUnknown_83F1A60
-_080C0A28: .4byte 0x00006040
- thumb_func_end sub_80C0904
-
- thumb_func_start sub_80C0A2C
-sub_80C0A2C: @ 80C0A2C
- push {r4,lr}
- ldr r4, _080C0A5C @ =gUnknown_20399D4
- ldr r1, [r4]
- ldr r0, _080C0A60 @ =0x00001796
- adds r1, r0
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _080C0A64 @ =0x00002796
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _080C0A68 @ =0x00003796
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0A5C: .4byte gUnknown_20399D4
-_080C0A60: .4byte 0x00001796
-_080C0A64: .4byte 0x00002796
-_080C0A68: .4byte 0x00003796
- thumb_func_end sub_80C0A2C
-
- thumb_func_start sub_80C0A6C
-sub_80C0A6C: @ 80C0A6C
- push {lr}
- bl ResetSpriteData
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- bl ResetTasks
- bl ScanlineEffect_Stop
- pop {r0}
- bx r0
- thumb_func_end sub_80C0A6C
-
- thumb_func_start sub_80C0A88
-sub_80C0A88: @ 80C0A88
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080C0A98
- cmp r0, 0x1
- beq _080C0AA6
- b _080C0AB2
-_080C0A98:
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- b _080C0AB2
-_080C0AA6:
- movs r0, 0
- bl HideBg
- movs r0, 0x3
- bl HideBg
-_080C0AB2:
- pop {r0}
- bx r0
- thumb_func_end sub_80C0A88
-
- thumb_func_start sub_80C0AB8
-sub_80C0AB8: @ 80C0AB8
- push {r4,lr}
- bl sub_80C4BE4
- movs r0, 0
- movs r1, 0x11
- movs r2, 0xC0
- bl sub_80C4C2C
- movs r0, 0x6
- bl sub_80C4C48
- movs r0, 0x39
- movs r1, 0x39
- bl sub_80C4C74
- movs r0, 0x1B
- bl sub_80C4C88
- ldr r4, _080C0B14 @ =gUnknown_83F1B0C
- movs r0, 0
- adds r1, r4, 0
- bl sub_80C4CF0
- adds r4, 0x8
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80C4CF0
- movs r0, 0
- movs r1, 0
- bl sub_80C4C9C
- bl sub_80C3580
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC5
- beq _080C0B0C
- movs r0, 0x1
- movs r1, 0
- bl sub_80C4C9C
-_080C0B0C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0B14: .4byte gUnknown_83F1B0C
- thumb_func_end sub_80C0AB8
-
- thumb_func_start sub_80C0B18
-sub_80C0B18: @ 80C0B18
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0
- bl ClearWindowTilemap
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- bl sub_80C3520
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC5
- bne _080C0B44
- ldr r1, _080C0B40 @ =gUnknown_83F1B1C
- movs r0, 0
- bl sub_80C4CF0
- b _080C0B88
- .align 2, 0
-_080C0B40: .4byte gUnknown_83F1B1C
-_080C0B44:
- ldr r5, _080C0B90 @ =gUnknown_20399D4
- ldr r4, [r5]
- bl sub_80C3520
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl GetMapName
- ldr r0, _080C0B94 @ =gUnknown_83F1A90
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, [r5]
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r1, _080C0B98 @ =gUnknown_83F1B0C
- movs r0, 0
- bl sub_80C4CF0
-_080C0B88:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0B90: .4byte gUnknown_20399D4
-_080C0B94: .4byte gUnknown_83F1A90
-_080C0B98: .4byte gUnknown_83F1B0C
- thumb_func_end sub_80C0B18
-
- thumb_func_start sub_80C0B9C
-sub_80C0B9C: @ 80C0B9C
- push {lr}
- ldr r1, _080C0BAC @ =gUnknown_83F1B14
- movs r0, 0x1
- bl sub_80C4CF0
- pop {r0}
- bx r0
- .align 2, 0
-_080C0BAC: .4byte gUnknown_83F1B14
- thumb_func_end sub_80C0B9C
-
- thumb_func_start sub_80C0BB0
-sub_80C0BB0: @ 80C0BB0
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, _080C0C84 @ =gUnknown_20399D4
- ldr r1, [r5]
- ldr r2, _080C0C88 @ =0x000047ac
- adds r0, r1, r2
- movs r6, 0
- strh r6, [r0]
- ldr r3, _080C0C8C @ =0x000047ae
- adds r2, r1, r3
- movs r0, 0x18
- strh r0, [r2]
- ldr r0, _080C0C90 @ =0x000047b0
- adds r1, r0
- movs r0, 0x20
- strh r0, [r1]
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80C4C9C
- movs r0, 0x1
- bl ClearWindowTilemap
- bl sub_80C3580
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC5
- beq _080C0C7A
- adds r4, r0, 0
- subs r4, 0x58
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1
- movs r1, 0
- bl sub_80C4C9C
- ldr r0, [r5]
- ldr r1, _080C0C88 @ =0x000047ac
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _080C0C94 @ =gUnknown_83F1CAC
- lsls r4, 2
- adds r4, r0
- ldr r4, [r4]
- adds r0, r4, 0
- bl StringLength
- ldr r2, [r5]
- ldr r3, _080C0C98 @ =0x000047aa
- adds r1, r2, r3
- strh r0, [r1]
- ldrh r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x32
- adds r3, 0x4
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _080C0C90 @ =0x000047b0
- adds r2, r0
- movs r0, 0x30
- strh r0, [r2]
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, 0x13
- adds r1, r4, 0
- bl StringCopy
- ldr r4, _080C0C9C @ =gUnknown_83F1A9C
- movs r0, 0x1
- bl sub_80C3AC8
- lsls r0, 24
- lsrs r0, 22
- subs r0, 0x8
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- str r6, [sp, 0x4]
- ldr r0, [r5]
- adds r0, 0x13
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0xC
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
-_080C0C7A:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0C84: .4byte gUnknown_20399D4
-_080C0C88: .4byte 0x000047ac
-_080C0C8C: .4byte 0x000047ae
-_080C0C90: .4byte 0x000047b0
-_080C0C94: .4byte gUnknown_83F1CAC
-_080C0C98: .4byte 0x000047aa
-_080C0C9C: .4byte gUnknown_83F1A9C
- thumb_func_end sub_80C0BB0
-
- thumb_func_start sub_80C0CA0
-sub_80C0CA0: @ 80C0CA0
- push {lr}
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_80C0CA0
-
- thumb_func_start sub_80C0CC8
-sub_80C0CC8: @ 80C0CC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r7, r1, 0
- lsls r0, 24
- ldr r2, _080C0D0C @ =gUnknown_20399D4
- lsrs r0, 12
- ldr r1, _080C0D10 @ =0x00001796
- adds r0, r1
- ldr r1, [r2]
- adds r6, r1, r0
- movs r1, 0
- mov r8, r2
-_080C0CE4:
- movs r2, 0
- lsls r5, r1, 16
- asrs r1, r5, 16
- lsls r3, r1, 5
- lsls r0, r1, 4
- subs r0, r1
- lsls r4, r0, 1
-_080C0CF2:
- lsls r0, r2, 16
- asrs r1, r0, 16
- adds r2, r0, 0
- cmp r1, 0x1D
- bgt _080C0D14
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r6
- adds r1, r4, r1
- lsls r1, 1
- adds r1, r7
- ldrh r1, [r1]
- b _080C0D1C
- .align 2, 0
-_080C0D0C: .4byte gUnknown_20399D4
-_080C0D10: .4byte 0x00001796
-_080C0D14:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r7]
-_080C0D1C:
- strh r1, [r0]
- movs r1, 0x80
- lsls r1, 9
- adds r0, r2, r1
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080C0CF2
- adds r0, r5, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080C0CE4
- mov r1, r8
- ldr r0, [r1]
- ldr r1, _080C0D94 @ =0x00004797
- adds r0, r1
- ldrb r5, [r0]
- cmp r5, 0x1
- bne _080C0D86
- movs r4, 0x3
- str r4, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r0, 0
- movs r1, 0xF0
- movs r2, 0x18
- movs r3, 0xE
- bl WriteSequenceToBgTilemapBuffer
- movs r1, 0x80
- lsls r1, 1
- str r4, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r0, 0
- movs r2, 0x18
- movs r3, 0xF
- bl WriteSequenceToBgTilemapBuffer
- movs r1, 0x88
- lsls r1, 1
- str r4, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r0, 0
- movs r2, 0x18
- movs r3, 0x10
- bl WriteSequenceToBgTilemapBuffer
-_080C0D86:
- ldr r0, _080C0D98 @ =gUnknown_20399D8
- ldr r0, [r0]
- cmp r0, 0
- beq _080C0DA0
- ldr r1, _080C0D9C @ =0x00001cca
- b _080C0DA6
- .align 2, 0
-_080C0D94: .4byte 0x00004797
-_080C0D98: .4byte gUnknown_20399D8
-_080C0D9C: .4byte 0x00001cca
-_080C0DA0:
- mov r1, r8
- ldr r0, [r1]
- ldr r1, _080C0DF8 @ =0x0000479b
-_080C0DA6:
- adds r0, r1
- ldrb r4, [r0]
- cmp r4, 0x2
- bne _080C0DCC
- ldr r0, _080C0DFC @ =0x000008b5
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C0DCC
- movs r0, 0x3
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0xD
- movs r3, 0xB
- bl FillBgTilemapBufferRect_Palette0
-_080C0DCC:
- cmp r4, 0x3
- bne _080C0DEC
- ldr r0, _080C0E00 @ =0x000008c2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C0DEC
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0x15
- movs r3, 0x10
- bl FillBgTilemapBufferRect_Palette0
-_080C0DEC:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0DF8: .4byte 0x0000479b
-_080C0DFC: .4byte 0x000008b5
-_080C0E00: .4byte 0x000008c2
- thumb_func_end sub_80C0CC8
-
- thumb_func_start sub_80C0E04
-sub_80C0E04: @ 80C0E04
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C0E18 @ =gUnknown_20399D4
- ldr r1, [r1]
- ldr r2, _080C0E1C @ =0x00004797
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_080C0E18: .4byte gUnknown_20399D4
-_080C0E1C: .4byte 0x00004797
- thumb_func_end sub_80C0E04
-
- thumb_func_start sub_80C0E20
-sub_80C0E20: @ 80C0E20
- ldr r0, _080C0E2C @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C0E30 @ =0x0000479b
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080C0E2C: .4byte gUnknown_20399D4
-_080C0E30: .4byte 0x0000479b
- thumb_func_end sub_80C0E20
-
- thumb_func_start sub_80C0E34
-sub_80C0E34: @ 80C0E34
- ldr r0, _080C0E40 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C0E44 @ =0x0000479c
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080C0E40: .4byte gUnknown_20399D4
-_080C0E44: .4byte 0x0000479c
- thumb_func_end sub_80C0E34
-
- thumb_func_start sub_80C0E48
-sub_80C0E48: @ 80C0E48
- ldr r1, _080C0E54 @ =gUnknown_20399D4
- ldr r1, [r1]
- ldr r2, _080C0E58 @ =0x0000479b
- adds r1, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C0E54: .4byte gUnknown_20399D4
-_080C0E58: .4byte 0x0000479b
- thumb_func_end sub_80C0E48
-
- thumb_func_start sub_80C0E5C
-sub_80C0E5C: @ 80C0E5C
- ldr r1, _080C0E68 @ =gUnknown_20399D4
- ldr r1, [r1]
- ldr r2, _080C0E6C @ =0x0000479c
- adds r1, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C0E68: .4byte gUnknown_20399D4
-_080C0E6C: .4byte 0x0000479c
- thumb_func_end sub_80C0E5C
-
- thumb_func_start sub_80C0E70
-sub_80C0E70: @ 80C0E70
- push {r4-r7,lr}
- adds r7, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _080C0EA0 @ =gUnknown_20399D8
- movs r0, 0xE7
- lsls r0, 5
- bl AllocZeroed
- str r0, [r4]
- ldr r0, _080C0EA4 @ =0x00000846
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080C0EAC
- ldr r0, [r4]
- ldr r1, _080C0EA8 @ =0x00001ccc
- adds r0, r1
- movs r1, 0x3
- b _080C0ED2
- .align 2, 0
-_080C0EA0: .4byte gUnknown_20399D8
-_080C0EA4: .4byte 0x00000846
-_080C0EA8: .4byte 0x00001ccc
-_080C0EAC:
- ldr r0, _080C0EC4 @ =0x00000845
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080C0ECC
- ldr r0, [r4]
- ldr r2, _080C0EC8 @ =0x00001ccc
- adds r0, r2
- movs r1, 0x1
- b _080C0ED2
- .align 2, 0
-_080C0EC4: .4byte 0x00000845
-_080C0EC8: .4byte 0x00001ccc
-_080C0ECC:
- ldr r0, [r4]
- ldr r3, _080C0F14 @ =0x00001ccc
- adds r0, r3
-_080C0ED2:
- strb r1, [r0]
- ldr r4, _080C0F18 @ =gUnknown_20399D8
- ldr r2, [r4]
- ldr r0, _080C0F1C @ =0x000018b8
- adds r1, r2, r0
- movs r0, 0x58
- strh r0, [r1]
- ldr r3, _080C0F20 @ =0x00001cc4
- adds r1, r2, r3
- movs r0, 0x98
- strh r0, [r1]
- ldr r1, _080C0F14 @ =0x00001ccc
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080C0F2C
- cmp r0, 0x2
- bgt _080C0F4C
- cmp r0, 0x1
- bne _080C0F4C
- ldr r0, _080C0F24 @ =gUnknown_83F1084
- movs r3, 0x80
- lsls r3, 5
- adds r1, r2, r3
- bl LZ77UnCompWram
- ldr r0, [r4]
- ldr r1, _080C0F28 @ =0x00001cce
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0]
- b _080C0F64
- .align 2, 0
-_080C0F14: .4byte 0x00001ccc
-_080C0F18: .4byte gUnknown_20399D8
-_080C0F1C: .4byte 0x000018b8
-_080C0F20: .4byte 0x00001cc4
-_080C0F24: .4byte gUnknown_83F1084
-_080C0F28: .4byte 0x00001cce
-_080C0F2C:
- ldr r0, _080C0F44 @ =gUnknown_83F1190
- movs r3, 0x80
- lsls r3, 5
- adds r1, r2, r3
- bl LZ77UnCompWram
- ldr r0, [r4]
- ldr r1, _080C0F48 @ =0x00001cce
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0]
- b _080C0F64
- .align 2, 0
-_080C0F44: .4byte gUnknown_83F1190
-_080C0F48: .4byte 0x00001cce
-_080C0F4C:
- ldr r0, _080C0FB4 @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r3, _080C0FB8 @ =0x00001cce
- adds r2, r1, r3
- movs r0, 0x3
- strh r0, [r2]
- ldr r0, _080C0FBC @ =gUnknown_83F0F1C
- movs r2, 0x80
- lsls r2, 5
- adds r1, r2
- bl LZ77UnCompWram
-_080C0F64:
- ldr r0, _080C0FC0 @ =gUnknown_83F0580
- ldr r4, _080C0FB4 @ =gUnknown_20399D8
- ldr r1, [r4]
- bl LZ77UnCompWram
- ldr r0, [r4]
- ldr r3, _080C0FC4 @ =0x00001cc8
- adds r0, r3
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080C0FC8 @ =0x00001cca
- adds r0, r1
- strb r6, [r0]
- ldr r0, [r4]
- ldr r2, _080C0FCC @ =0x00001cd0
- adds r0, r2
- str r7, [r0]
- bl sub_80C0E34
- ldr r1, [r4]
- ldr r3, _080C0FD0 @ =0x00001ccb
- adds r1, r3
- strb r0, [r1]
- movs r0, 0
- bl sub_80C4AAC
- ldr r0, _080C0FD4 @ =gUnknown_8418EB0
- bl sub_80C4E74
- ldr r1, _080C0FD8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C0FDC @ =sub_80C1098
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0FB4: .4byte gUnknown_20399D8
-_080C0FB8: .4byte 0x00001cce
-_080C0FBC: .4byte gUnknown_83F0F1C
-_080C0FC0: .4byte gUnknown_83F0580
-_080C0FC4: .4byte 0x00001cc8
-_080C0FC8: .4byte 0x00001cca
-_080C0FCC: .4byte 0x00001cd0
-_080C0FD0: .4byte 0x00001ccb
-_080C0FD4: .4byte gUnknown_8418EB0
-_080C0FD8: .4byte gTasks
-_080C0FDC: .4byte sub_80C1098
- thumb_func_end sub_80C0E70
-
- thumb_func_start sub_80C0FE0
-sub_80C0FE0: @ 80C0FE0
- push {lr}
- bl sub_80C4BE4
- movs r0, 0x1B
- movs r1, 0x4
- movs r2, 0x40
- bl sub_80C4C2C
- ldr r0, _080C100C @ =gUnknown_20399D8
- ldr r0, [r0]
- ldr r1, _080C1010 @ =0x00001ccd
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_80C4C5C
- pop {r0}
- bx r0
- .align 2, 0
-_080C100C: .4byte gUnknown_20399D8
-_080C1010: .4byte 0x00001ccd
- thumb_func_end sub_80C0FE0
-
- thumb_func_start sub_80C1014
-sub_80C1014: @ 80C1014
- push {r4,lr}
- ldr r4, _080C1028 @ =gUnknown_20399D8
- ldr r0, [r4]
- ldr r2, _080C102C @ =0x00001ccd
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xF
- bls _080C1030
- movs r0, 0x1
- b _080C104C
- .align 2, 0
-_080C1028: .4byte gUnknown_20399D8
-_080C102C: .4byte 0x00001ccd
-_080C1030:
- ldrb r1, [r1]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_80C4C5C
- ldr r1, [r4]
- ldr r0, _080C1054 @ =0x00001ccd
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x2
- strb r0, [r1]
- movs r0, 0
-_080C104C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C1054: .4byte 0x00001ccd
- thumb_func_end sub_80C1014
-
- thumb_func_start sub_80C1058
-sub_80C1058: @ 80C1058
- push {lr}
- ldr r2, _080C106C @ =gUnknown_20399D8
- ldr r0, [r2]
- ldr r3, _080C1070 @ =0x00001ccd
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _080C1074
- movs r0, 0x1
- b _080C108E
- .align 2, 0
-_080C106C: .4byte gUnknown_20399D8
-_080C1070: .4byte 0x00001ccd
-_080C1074:
- subs r0, 0x2
- strb r0, [r1]
- ldr r0, [r2]
- ldr r1, _080C1094 @ =0x00001ccd
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_80C4C5C
- movs r0, 0
-_080C108E:
- pop {r1}
- bx r1
- .align 2, 0
-_080C1094: .4byte 0x00001ccd
- thumb_func_end sub_80C1058
-
- thumb_func_start sub_80C1098
-sub_80C1098: @ 80C1098
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C10BC @ =gUnknown_20399D8
- ldr r0, [r1]
- ldr r3, _080C10C0 @ =0x00001cc8
- adds r0, r3
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xC
- bls _080C10B0
- b _080C1274
-_080C10B0:
- lsls r0, 2
- ldr r1, _080C10C4 @ =_080C10C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C10BC: .4byte gUnknown_20399D8
-_080C10C0: .4byte 0x00001cc8
-_080C10C4: .4byte _080C10C8
- .align 2, 0
-_080C10C8:
- .4byte _080C10FC
- .4byte _080C111C
- .4byte _080C112E
- .4byte _080C1146
- .4byte _080C115C
- .4byte _080C1168
- .4byte _080C1180
- .4byte _080C1192
- .4byte _080C11B0
- .4byte _080C11BE
- .4byte _080C1220
- .4byte _080C1236
- .4byte _080C1254
-_080C10FC:
- bl sub_80C08E0
- ldr r0, _080C1110 @ =gUnknown_8418EBC
- bl sub_80C4E18
- ldr r0, _080C1114 @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r0, _080C1118 @ =0x00001cc8
- adds r1, r0
- b _080C1262
- .align 2, 0
-_080C1110: .4byte gUnknown_8418EBC
-_080C1114: .4byte gUnknown_20399D8
-_080C1118: .4byte 0x00001cc8
-_080C111C:
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 5
- movs r0, 0x2
- movs r3, 0
- bl LoadBgTiles
- ldr r1, [r4]
- b _080C125E
-_080C112E:
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl sub_80C1324
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- ldr r1, [r4]
- b _080C125E
-_080C1146:
- bl sub_80C0CA0
- ldr r0, _080C1154 @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r0, _080C1158 @ =0x00001cc8
- adds r1, r0
- b _080C1262
- .align 2, 0
-_080C1154: .4byte gUnknown_20399D8
-_080C1158: .4byte 0x00001cc8
-_080C115C:
- bl sub_80C0FE0
- movs r0, 0x2
- bl ShowBg
- b _080C125A
-_080C1168:
- bl sub_80C08F4
- ldr r0, _080C1178 @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r0, _080C117C @ =0x00001cc8
- adds r1, r0
- b _080C1262
- .align 2, 0
-_080C1178: .4byte gUnknown_20399D8
-_080C117C: .4byte 0x00001cc8
-_080C1180:
- bl sub_80C1014
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C127A
- bl sub_80C1390
- b _080C125A
-_080C1192:
- bl sub_80C144C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C127A
- ldr r0, _080C11A8 @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r0, _080C11AC @ =0x00001cc8
- adds r1, r0
- b _080C1262
- .align 2, 0
-_080C11A8: .4byte gUnknown_20399D8
-_080C11AC: .4byte 0x00001cc8
-_080C11B0:
- bl sub_80C16D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C127A
- b _080C125A
-_080C11BE:
- bl sub_80C1478
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C127A
- ldr r5, _080C1214 @ =gUnknown_20399D8
- ldr r0, [r5]
- ldr r4, _080C1218 @ =0x00001cca
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80C0E48
- bl sub_80C0E34
- ldr r1, [r5]
- adds r1, r4
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C120C
- movs r0, 0
- bl sub_80C4324
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0
- bl sub_80C48BC
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0
- bl sub_80C4960
-_080C120C:
- ldr r1, [r5]
- ldr r0, _080C121C @ =0x00001cc8
- adds r1, r0
- b _080C1262
- .align 2, 0
-_080C1214: .4byte gUnknown_20399D8
-_080C1218: .4byte 0x00001cca
-_080C121C: .4byte 0x00001cc8
-_080C1220:
- bl sub_80C12EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C127A
- bl sub_80C1880
- bl sub_80C0FE0
- b _080C125A
-_080C1236:
- bl sub_80C1058
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C127A
- ldr r0, _080C124C @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r0, _080C1250 @ =0x00001cc8
- adds r1, r0
- b _080C1262
- .align 2, 0
-_080C124C: .4byte gUnknown_20399D8
-_080C1250: .4byte 0x00001cc8
-_080C1254:
- movs r0, 0
- bl sub_80C3154
-_080C125A:
- ldr r0, _080C126C @ =gUnknown_20399D8
- ldr r1, [r0]
-_080C125E:
- ldr r3, _080C1270 @ =0x00001cc8
- adds r1, r3
-_080C1262:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C127A
- .align 2, 0
-_080C126C: .4byte gUnknown_20399D8
-_080C1270: .4byte 0x00001cc8
-_080C1274:
- adds r0, r2, 0
- bl sub_80C1280
-_080C127A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C1098
-
- thumb_func_start sub_80C1280
-sub_80C1280: @ 80C1280
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C12D4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r4, _080C12D8 @ =gUnknown_20399D8
- ldr r0, [r4]
- ldr r2, _080C12DC @ =0x00001cd0
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x2
- bl HideBg
- ldr r0, _080C12E0 @ =gUnknown_8418EB5
- bl sub_80C4E18
- ldr r0, _080C12E4 @ =gUnknown_8418EA7
- bl sub_80C4E74
- bl sub_80C0AB8
- bl sub_80C0B9C
- ldr r1, _080C12E8 @ =gUnknown_83F1B1C
- movs r0, 0
- bl sub_80C4CF0
- ldr r0, [r4]
- cmp r0, 0
- beq _080C12CC
- bl Free
- movs r0, 0
- str r0, [r4]
-_080C12CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C12D4: .4byte gTasks
-_080C12D8: .4byte gUnknown_20399D8
-_080C12DC: .4byte 0x00001cd0
-_080C12E0: .4byte gUnknown_8418EB5
-_080C12E4: .4byte gUnknown_8418EA7
-_080C12E8: .4byte gUnknown_83F1B1C
- thumb_func_end sub_80C1280
-
- thumb_func_start sub_80C12EC
-sub_80C12EC: @ 80C12EC
- push {lr}
- ldr r0, _080C1308 @ =gUnknown_20399D8
- ldr r0, [r0]
- ldr r2, _080C130C @ =0x00001cdc
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _080C1310
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- b _080C131E
- .align 2, 0
-_080C1308: .4byte gUnknown_20399D8
-_080C130C: .4byte 0x00001cdc
-_080C1310:
- subs r0, 0x1
- strh r0, [r1]
- ldrh r1, [r1]
- movs r0, 0x54
- bl SetGpuReg
- movs r0, 0
-_080C131E:
- pop {r1}
- bx r1
- thumb_func_end sub_80C12EC
-
- thumb_func_start sub_80C1324
-sub_80C1324: @ 80C1324
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 24
- ldr r1, _080C1360 @ =gUnknown_20399D4
- lsrs r0, 12
- ldr r2, _080C1364 @ =0x00001796
- adds r0, r2
- ldr r1, [r1]
- adds r6, r1, r0
- movs r1, 0
-_080C1338:
- movs r2, 0
- lsls r5, r1, 16
- asrs r1, r5, 16
- lsls r3, r1, 5
- lsls r0, r1, 4
- subs r0, r1
- lsls r4, r0, 1
-_080C1346:
- lsls r0, r2, 16
- asrs r1, r0, 16
- adds r2, r0, 0
- cmp r1, 0x1D
- bgt _080C1368
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r6
- adds r1, r4, r1
- lsls r1, 1
- adds r1, r7
- ldrh r1, [r1]
- b _080C1370
- .align 2, 0
-_080C1360: .4byte gUnknown_20399D4
-_080C1364: .4byte 0x00001796
-_080C1368:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r7]
-_080C1370:
- strh r1, [r0]
- movs r1, 0x80
- lsls r1, 9
- adds r0, r2, r1
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080C1346
- adds r0, r5, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080C1338
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C1324
-
- thumb_func_start sub_80C1390
-sub_80C1390: @ 80C1390
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080C1428 @ =gUnknown_20399D8
- ldr r2, [r0]
- ldr r1, _080C142C @ =0x00001cd4
- adds r0, r2, r1
- movs r1, 0x48
- strh r1, [r0]
- ldr r5, _080C1430 @ =0xffff0000
- ldr r0, [sp]
- ands r0, r5
- orrs r0, r1
- str r0, [sp]
- ldr r0, _080C1434 @ =0x00001cce
- adds r3, r2, r0
- ldr r1, _080C1438 @ =0x00001cca
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 2
- ldrh r3, [r3]
- adds r1, r3
- lsls r1, 3
- ldr r0, _080C143C @ =0x00001cd6
- adds r4, r2, r0
- strh r1, [r4]
- lsls r1, 16
- ldr r3, _080C1440 @ =0x0000ffff
- ldr r0, [sp]
- ands r0, r3
- orrs r0, r1
- str r0, [sp]
- ldr r1, _080C1444 @ =0x00001cd8
- adds r0, r2, r1
- movs r1, 0xA8
- strh r1, [r0]
- ldr r0, [sp, 0x4]
- ands r0, r5
- orrs r0, r1
- str r0, [sp, 0x4]
- ldrh r1, [r4]
- adds r1, 0x20
- ldr r0, _080C1448 @ =0x00001cda
- adds r2, r0
- strh r1, [r2]
- ands r1, r3
- lsls r1, 16
- ldr r0, [sp, 0x4]
- ands r0, r3
- orrs r0, r1
- str r0, [sp, 0x4]
- bl sub_80C4BE4
- movs r0, 0
- movs r1, 0x15
- movs r2, 0xC0
- bl sub_80C4C2C
- movs r0, 0x1F
- movs r1, 0x15
- bl sub_80C4C74
- movs r0, 0x3F
- bl sub_80C4C88
- movs r0, 0x1
- movs r1, 0
- bl sub_80C4C9C
- movs r0, 0x1
- mov r1, sp
- bl sub_80C4CF0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1428: .4byte gUnknown_20399D8
-_080C142C: .4byte 0x00001cd4
-_080C1430: .4byte 0xffff0000
-_080C1434: .4byte 0x00001cce
-_080C1438: .4byte 0x00001cca
-_080C143C: .4byte 0x00001cd6
-_080C1440: .4byte 0x0000ffff
-_080C1444: .4byte 0x00001cd8
-_080C1448: .4byte 0x00001cda
- thumb_func_end sub_80C1390
-
- thumb_func_start sub_80C144C
-sub_80C144C: @ 80C144C
- push {lr}
- ldr r0, _080C1460 @ =gUnknown_20399D8
- ldr r0, [r0]
- ldr r2, _080C1464 @ =0x00001cdc
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0x5
- bls _080C1468
- movs r0, 0x1
- b _080C1474
- .align 2, 0
-_080C1460: .4byte gUnknown_20399D8
-_080C1464: .4byte 0x00001cdc
-_080C1468:
- adds r0, 0x1
- strh r0, [r1]
- ldrh r0, [r1]
- bl sub_80C4C48
- movs r0, 0
-_080C1474:
- pop {r1}
- bx r1
- thumb_func_end sub_80C144C
-
- thumb_func_start sub_80C1478
-sub_80C1478: @ 80C1478
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r6, 0
- ldr r0, _080C1574 @ =gUnknown_20399D8
- mov r8, r0
- ldr r5, [r0]
- ldr r1, _080C1578 @ =0x00001cd4
- adds r0, r5, r1
- movs r1, 0x48
- strh r1, [r0]
- ldr r4, _080C157C @ =0xffff0000
- ldr r0, [sp]
- ands r0, r4
- orrs r0, r1
- str r0, [sp]
- ldr r3, _080C1580 @ =0x00001cce
- adds r2, r5, r3
- ldr r7, _080C1584 @ =0x00001cca
- adds r0, r5, r7
- ldrb r1, [r0]
- lsls r1, 2
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 3
- ldr r0, _080C1588 @ =0x00001cd6
- adds r3, r5, r0
- strh r1, [r3]
- lsls r1, 16
- ldr r2, _080C158C @ =0x0000ffff
- ldr r0, [sp]
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
- ldr r1, _080C1590 @ =0x00001cd8
- adds r0, r5, r1
- movs r1, 0xA8
- strh r1, [r0]
- ldr r0, [sp, 0x4]
- ands r0, r4
- orrs r0, r1
- str r0, [sp, 0x4]
- ldrh r1, [r3]
- adds r1, 0x20
- ldr r3, _080C1594 @ =0x00001cda
- adds r0, r5, r3
- strh r1, [r0]
- ands r1, r2
- lsls r1, 16
- ldr r0, [sp, 0x4]
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r0, _080C1598 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080C150E
- adds r1, r7, 0
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C150E
- movs r0, 0xF5
- bl PlaySE
- mov r2, r8
- ldr r1, [r2]
- adds r1, r7
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- movs r6, 0x1
-_080C150E:
- ldr r0, _080C1598 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080C1542
- ldr r4, _080C1574 @ =gUnknown_20399D8
- ldr r0, [r4]
- ldr r3, _080C1584 @ =0x00001cca
- adds r1, r0, r3
- ldr r2, _080C159C @ =0x00001ccc
- adds r0, r2
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _080C1542
- movs r0, 0xF5
- bl PlaySE
- ldr r1, [r4]
- ldr r3, _080C1584 @ =0x00001cca
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r6, 0x1
-_080C1542:
- ldr r2, _080C1598 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- ldr r4, _080C1574 @ =gUnknown_20399D8
- cmp r0, 0
- beq _080C15A8
- ldr r0, [r4]
- ldr r1, _080C15A0 @ =0x00001cdc
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x6
- bne _080C15A8
- movs r0, 0xC7
- bl PlaySE
- ldr r0, [r4]
- ldr r2, _080C1584 @ =0x00001cca
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r3, _080C15A4 @ =0x00001ccb
- adds r0, r3
- strb r1, [r0]
- movs r0, 0x1
- b _080C16AC
- .align 2, 0
-_080C1574: .4byte gUnknown_20399D8
-_080C1578: .4byte 0x00001cd4
-_080C157C: .4byte 0xffff0000
-_080C1580: .4byte 0x00001cce
-_080C1584: .4byte 0x00001cca
-_080C1588: .4byte 0x00001cd6
-_080C158C: .4byte 0x0000ffff
-_080C1590: .4byte 0x00001cd8
-_080C1594: .4byte 0x00001cda
-_080C1598: .4byte gMain
-_080C159C: .4byte 0x00001ccc
-_080C15A0: .4byte 0x00001cdc
-_080C15A4: .4byte 0x00001ccb
-_080C15A8:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C1604
- ldr r0, [r4]
- ldr r2, _080C15FC @ =0x00001ccb
- adds r1, r0, r2
- ldrb r1, [r1]
- subs r2, 0x1
- adds r0, r2
- strb r1, [r0]
- ldr r3, _080C1600 @ =gUnknown_20399D4
- ldr r0, [r4]
- adds r0, r2
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 4
- adds r0, 0x26
- ldr r1, [r3]
- adds r1, r0
- movs r0, 0
- bl sub_80C0CC8
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0xFF
- movs r1, 0x19
- movs r2, 0x1
- bl sub_80C48BC
- movs r0, 0xFF
- movs r1, 0x19
- movs r2, 0x1
- bl sub_80C4960
- movs r0, 0x1
- b _080C16AC
- .align 2, 0
-_080C15FC: .4byte 0x00001ccb
-_080C1600: .4byte gUnknown_20399D4
-_080C1604:
- cmp r6, 0
- beq _080C166C
- ldr r2, _080C168C @ =gUnknown_20399D4
- ldr r5, _080C1690 @ =gUnknown_20399D8
- ldr r0, [r5]
- ldr r4, _080C1694 @ =0x00001cca
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 4
- adds r0, 0x26
- ldr r1, [r2]
- adds r1, r0
- movs r0, 0
- bl sub_80C0CC8
- ldr r0, _080C1698 @ =gUnknown_8418EB0
- bl sub_80C4E74
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0xFF
- movs r1, 0x19
- movs r2, 0x1
- bl sub_80C48BC
- movs r0, 0xFF
- movs r1, 0x19
- movs r2, 0x1
- bl sub_80C4960
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0
- bl sub_80C48BC
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0
- bl sub_80C4960
-_080C166C:
- ldr r0, _080C1690 @ =gUnknown_20399D8
- ldr r4, [r0]
- ldr r3, _080C1694 @ =0x00001cca
- adds r4, r3
- bl sub_80C0E34
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _080C169C
- movs r0, 0x1
- bl sub_80C4324
- b _080C16A2
- .align 2, 0
-_080C168C: .4byte gUnknown_20399D4
-_080C1690: .4byte gUnknown_20399D8
-_080C1694: .4byte 0x00001cca
-_080C1698: .4byte gUnknown_8418EB0
-_080C169C:
- movs r0, 0
- bl sub_80C4324
-_080C16A2:
- movs r0, 0x1
- mov r1, sp
- bl sub_80C4CF0
- movs r0, 0
-_080C16AC:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C1478
-
- thumb_func_start sub_80C16B8
-sub_80C16B8: @ 80C16B8
- ldr r1, _080C16C8 @ =gUnknown_20399D8
- ldr r1, [r1]
- ldr r2, _080C16CC @ =0x00001cd6
- adds r1, r2
- ldrh r1, [r1]
- adds r1, 0x10
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080C16C8: .4byte gUnknown_20399D8
-_080C16CC: .4byte 0x00001cd6
- thumb_func_end sub_80C16B8
-
- thumb_func_start sub_80C16D0
-sub_80C16D0: @ 80C16D0
- push {lr}
- ldr r0, _080C16EC @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r2, _080C16F0 @ =0x00001cc9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080C1708
- cmp r0, 0x1
- bgt _080C16F4
- cmp r0, 0
- beq _080C16FA
- b _080C1732
- .align 2, 0
-_080C16EC: .4byte gUnknown_20399D8
-_080C16F0: .4byte 0x00001cc9
-_080C16F4:
- cmp r0, 0x2
- beq _080C171C
- b _080C1732
-_080C16FA:
- ldr r0, _080C1700 @ =gUnknown_83EF3C4
- ldr r2, _080C1704 @ =0x000014b0
- b _080C170C
- .align 2, 0
-_080C1700: .4byte gUnknown_83EF3C4
-_080C1704: .4byte 0x000014b0
-_080C1708:
- ldr r0, _080C1714 @ =gUnknown_83EF450
- ldr r2, _080C1718 @ =0x000018bc
-_080C170C:
- adds r1, r2
- bl LZ77UnCompWram
- b _080C1736
- .align 2, 0
-_080C1714: .4byte gUnknown_83EF450
-_080C1718: .4byte 0x000018bc
-_080C171C:
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x2
- bl sub_80C1754
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x3
- bl sub_80C1754
- b _080C1736
-_080C1732:
- movs r0, 0x1
- b _080C1746
-_080C1736:
- ldr r0, _080C174C @ =gUnknown_20399D8
- ldr r1, [r0]
- ldr r0, _080C1750 @ =0x00001cc9
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_080C1746:
- pop {r1}
- bx r1
- .align 2, 0
-_080C174C: .4byte gUnknown_20399D8
-_080C1750: .4byte 0x00001cc9
- thumb_func_end sub_80C16D0
-
- thumb_func_start sub_80C1754
-sub_80C1754: @ 80C1754
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- bl sub_80C176C
- pop {r0}
- bx r0
- thumb_func_end sub_80C1754
-
- thumb_func_start sub_80C176C
-sub_80C176C: @ 80C176C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r3, _080C1848 @ =gUnknown_20399D8
- mov r8, r3
- lsls r5, r0, 6
- adds r5, r0
- lsls r5, 2
- subs r5, r0
- lsls r5, 2
- ldr r4, _080C184C @ =0x000014b0
- adds r0, r5, r4
- ldr r3, [r3]
- adds r0, r3, r0
- str r0, [sp, 0x18]
- movs r4, 0x80
- lsls r4, 3
- add r0, sp, 0x18
- lsrs r6, r1, 16
- mov r9, r6
- orrs r1, r4
- str r1, [r0, 0x4]
- ldr r1, _080C1850 @ =gUnknown_83EF384
- str r1, [sp, 0x20]
- ldr r4, _080C1854 @ =0xffff0000
- add r6, sp, 0x20
- ldr r1, [r6, 0x4]
- ands r1, r4
- orrs r1, r2
- str r1, [r6, 0x4]
- mov r1, sp
- movs r4, 0
- mov r7, r9
- strh r7, [r1]
- strh r2, [r1, 0x2]
- ldr r1, _080C1858 @ =gUnknown_83F1B24
- str r1, [sp, 0x4]
- ldr r1, _080C185C @ =gUnknown_83F1B38
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r1, _080C1860 @ =gDummySpriteAffineAnimTable
- str r1, [sp, 0x10]
- ldr r1, _080C1864 @ =sub_80C16B8
- str r1, [sp, 0x14]
- adds r3, r5
- ldr r4, _080C1868 @ =0x000018b4
- adds r1, r3, r4
- strh r7, [r1]
- ldr r1, _080C186C @ =0x000018b6
- adds r3, r1
- strh r2, [r3]
- bl LoadSpriteSheet
- adds r0, r6, 0
- bl LoadSpritePalette
- mov r3, r8
- ldr r2, [r3]
- adds r0, r2, r5
- adds r4, 0x4
- adds r0, r4
- movs r6, 0
- ldrsh r1, [r0, r6]
- ldr r7, _080C1870 @ =0x00001cce
- adds r0, r2, r7
- ldr r3, _080C1874 @ =0x00001cca
- adds r2, r3
- ldrb r2, [r2]
- lsls r2, 2
- ldrh r0, [r0]
- adds r2, r0
- lsls r2, 19
- asrs r2, 16
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r4, r8
- ldr r2, [r4]
- ldr r6, _080C1878 @ =0x000018b0
- adds r2, r6
- adds r2, r5
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080C187C @ =gSprites
- adds r1, r0
- str r1, [r2]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1848: .4byte gUnknown_20399D8
-_080C184C: .4byte 0x000014b0
-_080C1850: .4byte gUnknown_83EF384
-_080C1854: .4byte 0xffff0000
-_080C1858: .4byte gUnknown_83F1B24
-_080C185C: .4byte gUnknown_83F1B38
-_080C1860: .4byte gDummySpriteAffineAnimTable
-_080C1864: .4byte sub_80C16B8
-_080C1868: .4byte 0x000018b4
-_080C186C: .4byte 0x000018b6
-_080C1870: .4byte 0x00001cce
-_080C1874: .4byte 0x00001cca
-_080C1878: .4byte 0x000018b0
-_080C187C: .4byte gSprites
- thumb_func_end sub_80C176C
-
- thumb_func_start sub_80C1880
-sub_80C1880: @ 80C1880
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _080C18D0 @ =gUnknown_20399D8
-_080C1886:
- ldr r1, [r6]
- lsls r0, r5, 6
- adds r0, r5
- lsls r0, 2
- subs r0, r5
- lsls r4, r0, 2
- ldr r0, _080C18D4 @ =0x000018b0
- adds r1, r0
- adds r1, r4
- ldr r0, [r1]
- cmp r0, 0
- beq _080C18BE
- bl DestroySprite
- ldr r0, [r6]
- adds r0, r4
- ldr r1, _080C18D8 @ =0x000018b4
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r6]
- adds r0, r4
- ldr r1, _080C18DC @ =0x000018b6
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080C18BE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _080C1886
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C18D0: .4byte gUnknown_20399D8
-_080C18D4: .4byte 0x000018b0
-_080C18D8: .4byte 0x000018b4
-_080C18DC: .4byte 0x000018b6
- thumb_func_end sub_80C1880
-
- thumb_func_start sub_80C18E0
-sub_80C18E0: @ 80C18E0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- ldr r3, _080C1904 @ =gUnknown_83F1B3C
- adds r5, r3, 0
- adds r5, 0x8
-_080C18EE:
- lsls r0, r2, 1
- adds r0, r2
- lsls r1, r0, 2
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r4
- bne _080C1908
- adds r0, r1, r5
- ldr r0, [r0]
- b _080C1914
- .align 2, 0
-_080C1904: .4byte gUnknown_83F1B3C
-_080C1908:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _080C18EE
- ldr r0, _080C191C @ =gUnknown_8418EC3
-_080C1914:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C191C: .4byte gUnknown_8418EC3
- thumb_func_end sub_80C18E0
-
- thumb_func_start sub_80C1920
-sub_80C1920: @ 80C1920
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- ldr r3, _080C1940 @ =gUnknown_83F1B3C
- adds r5, r3, 0x4
-_080C192C:
- lsls r0, r2, 1
- adds r0, r2
- lsls r1, r0, 2
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r4
- bne _080C1944
- adds r0, r1, r5
- ldr r0, [r0]
- b _080C1950
- .align 2, 0
-_080C1940: .4byte gUnknown_83F1B3C
-_080C1944:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _080C192C
- ldr r0, _080C1958 @ =gUnknown_8418EC3
-_080C1950:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C1958: .4byte gUnknown_8418EC3
- thumb_func_end sub_80C1920
-
- thumb_func_start sub_80C195C
-sub_80C195C: @ 80C195C
- push {r4-r6,lr}
- adds r6, r2, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _080C19E0 @ =gUnknown_20399DC
- ldr r0, _080C19E4 @ =0x00003e28
- bl AllocZeroed
- str r0, [r4]
- bl sub_80C3580
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB8
- bne _080C197C
- movs r0, 0xBC
-_080C197C:
- bl sub_80F8544
- ldr r1, [r4]
- movs r2, 0xF5
- lsls r2, 6
- adds r1, r2
- str r0, [r1]
- cmp r0, 0
- bne _080C199E
- movs r0, 0x8A
- bl sub_80F8544
- ldr r1, [r4]
- movs r3, 0xF5
- lsls r3, 6
- adds r1, r3
- str r0, [r1]
-_080C199E:
- ldr r0, [r4]
- ldr r1, _080C19E8 @ =0x00003d48
- adds r0, r1
- movs r2, 0
- strb r2, [r0]
- ldr r0, [r4]
- ldr r3, _080C19EC @ =0x00003d4a
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r4]
- subs r3, 0x6
- adds r1, r0, r3
- str r6, [r1]
- ldr r1, _080C19F0 @ =0x00003e14
- adds r0, r1
- strh r2, [r0]
- movs r0, 0
- bl sub_80C4AAC
- bl sub_80C4BE4
- bl sub_80C0CA0
- ldr r1, _080C19F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C19F8 @ =sub_80C1A94
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C19E0: .4byte gUnknown_20399DC
-_080C19E4: .4byte 0x00003e28
-_080C19E8: .4byte 0x00003d48
-_080C19EC: .4byte 0x00003d4a
-_080C19F0: .4byte 0x00003e14
-_080C19F4: .4byte gTasks
-_080C19F8: .4byte sub_80C1A94
- thumb_func_end sub_80C195C
-
- thumb_func_start sub_80C19FC
-sub_80C19FC: @ 80C19FC
- push {lr}
- ldr r0, _080C1A18 @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r2, _080C1A1C @ =0x00003d4a
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080C1A3A
- cmp r0, 0x1
- bgt _080C1A20
- cmp r0, 0
- beq _080C1A2A
- b _080C1A72
- .align 2, 0
-_080C1A18: .4byte gUnknown_20399DC
-_080C1A1C: .4byte 0x00003d4a
-_080C1A20:
- cmp r0, 0x2
- beq _080C1A50
- cmp r0, 0x3
- beq _080C1A5E
- b _080C1A72
-_080C1A2A:
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl LZ77UnCompWram
- b _080C1A76
-_080C1A3A:
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- movs r2, 0xE1
- lsls r2, 6
- adds r1, r2
- bl LZ77UnCompWram
- b _080C1A76
-_080C1A50:
- movs r2, 0xE1
- lsls r2, 6
- movs r0, 0x2
- movs r3, 0
- bl LoadBgTiles
- b _080C1A76
-_080C1A5E:
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- movs r1, 0xD0
- movs r2, 0x60
- bl LoadPalette
- b _080C1A76
-_080C1A72:
- movs r0, 0x1
- b _080C1A86
-_080C1A76:
- ldr r0, _080C1A8C @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r0, _080C1A90 @ =0x00003d4a
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_080C1A86:
- pop {r1}
- bx r1
- .align 2, 0
-_080C1A8C: .4byte gUnknown_20399DC
-_080C1A90: .4byte 0x00003d4a
- thumb_func_end sub_80C19FC
-
- thumb_func_start sub_80C1A94
-sub_80C1A94: @ 80C1A94
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C1AB8 @ =gUnknown_20399DC
- ldr r0, [r1]
- ldr r3, _080C1ABC @ =0x00003d48
- adds r0, r3
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x9
- bls _080C1AAC
- b _080C1BD0
-_080C1AAC:
- lsls r0, 2
- ldr r1, _080C1AC0 @ =_080C1AC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1AB8: .4byte gUnknown_20399DC
-_080C1ABC: .4byte 0x00003d48
-_080C1AC0: .4byte _080C1AC4
- .align 2, 0
-_080C1AC4:
- .4byte _080C1AEC
- .4byte _080C1B04
- .4byte _080C1B12
- .4byte _080C1B34
- .4byte _080C1B54
- .4byte _080C1B5C
- .4byte _080C1B74
- .4byte _080C1B84
- .4byte _080C1B9C
- .4byte _080C1BBC
-_080C1AEC:
- bl sub_80C08E0
- ldr r0, _080C1AFC @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r0, _080C1B00 @ =0x00003d48
- adds r1, r0
- b _080C1BCA
- .align 2, 0
-_080C1AFC: .4byte gUnknown_20399DC
-_080C1B00: .4byte 0x00003d48
-_080C1B04:
- bl sub_80C19FC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C1BD0
- b _080C1BC2
-_080C1B12:
- bl sub_80C1E94
- ldr r0, _080C1B28 @ =gUnknown_8418E9E
- bl sub_80C4E74
- ldr r0, _080C1B2C @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r0, _080C1B30 @ =0x00003d48
- adds r1, r0
- b _080C1BCA
- .align 2, 0
-_080C1B28: .4byte gUnknown_8418E9E
-_080C1B2C: .4byte gUnknown_20399DC
-_080C1B30: .4byte 0x00003d48
-_080C1B34:
- ldr r1, [r4]
- movs r3, 0xE1
- lsls r3, 6
- adds r1, r3
- movs r0, 0x2
- bl sub_80C1E78
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- ldr r1, [r4]
- ldr r0, _080C1B50 @ =0x00003d48
- adds r1, r0
- b _080C1BCA
- .align 2, 0
-_080C1B50: .4byte 0x00003d48
-_080C1B54:
- movs r0, 0x2
- bl ShowBg
- b _080C1BC2
-_080C1B5C:
- bl sub_80C08F4
- ldr r0, _080C1B6C @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r0, _080C1B70 @ =0x00003d48
- adds r1, r0
- b _080C1BCA
- .align 2, 0
-_080C1B6C: .4byte gUnknown_20399DC
-_080C1B70: .4byte 0x00003d48
-_080C1B74:
- movs r0, 0
- bl sub_80C1F80
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C1BD0
- b _080C1BC2
-_080C1B84:
- ldr r0, _080C1B94 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C1B98 @ =sub_80C1BE0
- str r0, [r1]
- b _080C1BD0
- .align 2, 0
-_080C1B94: .4byte gTasks
-_080C1B98: .4byte sub_80C1BE0
-_080C1B9C:
- movs r0, 0x1
- bl sub_80C1F80
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C1BD0
- ldr r0, _080C1BB4 @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r0, _080C1BB8 @ =0x00003d48
- adds r1, r0
- b _080C1BCA
- .align 2, 0
-_080C1BB4: .4byte gUnknown_20399DC
-_080C1BB8: .4byte 0x00003d48
-_080C1BBC:
- adds r0, r2, 0
- bl sub_80C1E14
-_080C1BC2:
- ldr r0, _080C1BD8 @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r3, _080C1BDC @ =0x00003d48
- adds r1, r3
-_080C1BCA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080C1BD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1BD8: .4byte gUnknown_20399DC
-_080C1BDC: .4byte 0x00003d48
- thumb_func_end sub_80C1A94
-
- thumb_func_start sub_80C1BE0
-sub_80C1BE0: @ 80C1BE0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C1C08 @ =gUnknown_20399DC
- ldr r0, [r1]
- ldr r3, _080C1C0C @ =0x00003d49
- adds r0, r3
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _080C1BFE
- b _080C1DF0
-_080C1BFE:
- lsls r0, 2
- ldr r1, _080C1C10 @ =_080C1C14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1C08: .4byte gUnknown_20399DC
-_080C1C0C: .4byte 0x00003d49
-_080C1C10: .4byte _080C1C14
- .align 2, 0
-_080C1C14:
- .4byte _080C1C28
- .4byte _080C1C58
- .4byte _080C1C80
- .4byte _080C1CA8
- .4byte _080C1DA0
-_080C1C28:
- ldr r1, [r3]
- ldr r0, _080C1C48 @ =0x00003e0e
- adds r2, r1, r0
- ldr r0, _080C1C4C @ =0x00000133
- strh r0, [r2]
- ldr r3, _080C1C50 @ =0x00003e10
- adds r2, r1, r3
- subs r0, 0x33
- strh r0, [r2]
- ldr r0, _080C1C54 @ =0x00003e12
- adds r2, r1, r0
- movs r0, 0xF0
- strh r0, [r2]
- subs r3, 0xC7
- b _080C1DD6
- .align 2, 0
-_080C1C48: .4byte 0x00003e0e
-_080C1C4C: .4byte 0x00000133
-_080C1C50: .4byte 0x00003e10
-_080C1C54: .4byte 0x00003e12
-_080C1C58:
- ldr r0, [r3]
- ldr r1, _080C1C7C @ =0x00003d4c
- adds r0, r1
- ldrb r1, [r0]
- adds r2, r1, 0x1
- strb r2, [r0]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x28
- bhi _080C1C6E
- b _080C1DFE
-_080C1C6E:
- ldr r0, [r3]
- ldr r1, _080C1C7C @ =0x00003d4c
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, [r3]
- b _080C1DD4
- .align 2, 0
-_080C1C7C: .4byte 0x00003d4c
-_080C1C80:
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x2
- bl PutWindowTilemap
- ldr r0, _080C1CA0 @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r0, _080C1CA4 @ =0x00003d49
- adds r1, r0
- b _080C1DD8
- .align 2, 0
-_080C1CA0: .4byte gUnknown_20399DC
-_080C1CA4: .4byte 0x00003d49
-_080C1CA8:
- ldr r7, _080C1D10 @ =gUnknown_20399DC
- ldr r2, [r7]
- ldr r1, _080C1D14 @ =0x00003d4c
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x19
- bls _080C1D24
- bl sub_80C3580
- lsls r0, 16
- lsrs r0, 16
- bl sub_80C1920
- ldr r1, _080C1D18 @ =gUnknown_83F1A94
- str r1, [sp]
- movs r4, 0x1
- negs r4, r4
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0
- bl AddTextPrinterParameterized3
- bl sub_80C3580
- lsls r0, 16
- lsrs r0, 16
- bl sub_80C18E0
- ldr r1, _080C1D1C @ =gUnknown_83F1A90
- str r1, [sp]
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0xE
- bl AddTextPrinterParameterized3
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, [r7]
- ldr r3, _080C1D20 @ =0x00003d49
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C1D80
- .align 2, 0
-_080C1D10: .4byte gUnknown_20399DC
-_080C1D14: .4byte 0x00003d4c
-_080C1D18: .4byte gUnknown_83F1A94
-_080C1D1C: .4byte gUnknown_83F1A90
-_080C1D20: .4byte 0x00003d49
-_080C1D24:
- cmp r0, 0x14
- bls _080C1D80
- ldr r6, _080C1D88 @ =0x00003e0e
- adds r1, r2, r6
- ldrh r0, [r1]
- subs r0, 0x6
- strh r0, [r1]
- ldr r4, _080C1D8C @ =0x00003e10
- adds r1, r2, r4
- ldrh r0, [r1]
- subs r0, 0x5
- strh r0, [r1]
- ldr r0, _080C1D90 @ =0x00003e12
- mov r8, r0
- adds r1, r2, r0
- ldrh r0, [r1]
- subs r0, 0x5
- strh r0, [r1]
- movs r1, 0xF5
- lsls r1, 6
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- ldr r5, _080C1D94 @ =0x00003d4e
- adds r1, r2, r5
- movs r2, 0x30
- bl CpuSet
- ldr r1, [r7]
- adds r0, r1, r5
- adds r6, r1, r6
- ldrh r2, [r6]
- adds r4, r1, r4
- ldrh r3, [r4]
- add r1, r8
- ldrh r1, [r1]
- str r1, [sp]
- movs r1, 0x30
- bl TintPalette_CustomTone
- ldr r0, [r7]
- adds r0, r5
- movs r1, 0xD0
- movs r2, 0x60
- bl LoadPalette
-_080C1D80:
- ldr r0, _080C1D98 @ =gUnknown_20399DC
- ldr r1, [r0]
- ldr r3, _080C1D9C @ =0x00003d4c
- b _080C1DD6
- .align 2, 0
-_080C1D88: .4byte 0x00003e0e
-_080C1D8C: .4byte 0x00003e10
-_080C1D90: .4byte 0x00003e12
-_080C1D94: .4byte 0x00003d4e
-_080C1D98: .4byte gUnknown_20399DC
-_080C1D9C: .4byte 0x00003d4c
-_080C1DA0:
- ldr r0, _080C1DE0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080C1DB4
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C1DFE
-_080C1DB4:
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r2, _080C1DE4 @ =gUnknown_20399DC
- ldr r1, [r2]
- ldr r0, _080C1DE8 @ =0x00003d48
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r2]
-_080C1DD4:
- ldr r3, _080C1DEC @ =0x00003d49
-_080C1DD6:
- adds r1, r3
-_080C1DD8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C1DFE
- .align 2, 0
-_080C1DE0: .4byte gMain
-_080C1DE4: .4byte gUnknown_20399DC
-_080C1DE8: .4byte 0x00003d48
-_080C1DEC: .4byte 0x00003d49
-_080C1DF0:
- ldr r0, _080C1E0C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C1E10 @ =sub_80C1A94
- str r0, [r1]
-_080C1DFE:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E0C: .4byte gTasks
-_080C1E10: .4byte sub_80C1A94
- thumb_func_end sub_80C1BE0
-
- thumb_func_start sub_80C1E14
-sub_80C1E14: @ 80C1E14
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C1E68 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r4, _080C1E6C @ =gUnknown_20399DC
- ldr r0, [r4]
- ldr r2, _080C1E70 @ =0x00003d44
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x2
- bl HideBg
- movs r0, 0
- bl sub_80C4B30
- bl sub_80C0B18
- bl sub_80C0BB0
- bl sub_80C0AB8
- bl sub_80C0B9C
- ldr r0, _080C1E74 @ =gUnknown_8418E8D
- bl sub_80C4E74
- ldr r0, [r4]
- cmp r0, 0
- beq _080C1E60
- bl Free
- movs r0, 0
- str r0, [r4]
-_080C1E60:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E68: .4byte gTasks
-_080C1E6C: .4byte gUnknown_20399DC
-_080C1E70: .4byte 0x00003d44
-_080C1E74: .4byte gUnknown_8418E8D
- thumb_func_end sub_80C1E14
-
- thumb_func_start sub_80C1E78
-sub_80C1E78: @ 80C1E78
- push {lr}
- sub sp, 0x8
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_80C1E78
-
- thumb_func_start sub_80C1E94
-sub_80C1E94: @ 80C1E94
- push {r4-r6,lr}
- bl sub_80C4BE4
- movs r0, 0
- movs r1, 0x11
- movs r2, 0xC0
- bl sub_80C4C2C
- ldr r5, _080C1F58 @ =gUnknown_20399DC
- ldr r0, [r5]
- ldr r1, _080C1F5C @ =0x00003e14
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80C4C48
- movs r0, 0
- movs r1, 0xD
- bl sub_80C4C74
- movs r0, 0x3B
- bl sub_80C4C88
- movs r0, 0x1
- movs r1, 0
- bl sub_80C4C9C
- bl sub_80C3508
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_80C3514
- lsls r0, 16
- ldr r5, [r5]
- lsls r4, 3
- adds r4, 0x20
- ldr r2, _080C1F60 @ =0x00003e16
- adds r1, r5, r2
- strh r4, [r1]
- lsrs r0, 13
- adds r0, 0x18
- ldr r3, _080C1F64 @ =0x00003e18
- adds r2, r5, r3
- strh r0, [r2]
- ldrh r0, [r1]
- adds r0, 0x8
- ldr r4, _080C1F68 @ =0x00003e1a
- adds r3, r5, r4
- strh r0, [r3]
- ldrh r0, [r2]
- adds r0, 0x8
- ldr r6, _080C1F6C @ =0x00003e1c
- adds r4, r5, r6
- strh r0, [r4]
- ldrh r1, [r1]
- movs r0, 0x10
- subs r0, r1
- cmp r0, 0
- bge _080C1F0E
- adds r0, 0x7
-_080C1F0E:
- asrs r1, r0, 3
- ldr r6, _080C1F70 @ =0x00003e1e
- adds r0, r5, r6
- strh r1, [r0]
- ldrh r1, [r2]
- movs r0, 0x20
- subs r0, r1
- cmp r0, 0
- bge _080C1F22
- adds r0, 0x7
-_080C1F22:
- asrs r1, r0, 3
- ldr r2, _080C1F74 @ =0x00003e20
- adds r0, r5, r2
- strh r1, [r0]
- ldrh r1, [r3]
- movs r0, 0xE0
- subs r0, r1
- cmp r0, 0
- bge _080C1F36
- adds r0, 0x7
-_080C1F36:
- asrs r1, r0, 3
- ldr r3, _080C1F78 @ =0x00003e22
- adds r0, r5, r3
- strh r1, [r0]
- ldrh r1, [r4]
- movs r0, 0x88
- subs r0, r1
- cmp r0, 0
- bge _080C1F4A
- adds r0, 0x7
-_080C1F4A:
- asrs r1, r0, 3
- ldr r4, _080C1F7C @ =0x00003e24
- adds r0, r5, r4
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1F58: .4byte gUnknown_20399DC
-_080C1F5C: .4byte 0x00003e14
-_080C1F60: .4byte 0x00003e16
-_080C1F64: .4byte 0x00003e18
-_080C1F68: .4byte 0x00003e1a
-_080C1F6C: .4byte 0x00003e1c
-_080C1F70: .4byte 0x00003e1e
-_080C1F74: .4byte 0x00003e20
-_080C1F78: .4byte 0x00003e22
-_080C1F7C: .4byte 0x00003e24
- thumb_func_end sub_80C1E94
-
- thumb_func_start sub_80C1F80
-sub_80C1F80: @ 80C1F80
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- cmp r0, 0
- bne _080C2014
- ldr r1, _080C1FF0 @ =gUnknown_20399DC
- ldr r2, [r1]
- ldr r0, _080C1FF4 @ =0x00003d4b
- adds r3, r2, r0
- ldrb r0, [r3]
- adds r6, r1, 0
- cmp r0, 0x7
- bhi _080C2024
- ldr r4, _080C1FF8 @ =0x00003e16
- adds r1, r2, r4
- adds r4, 0x8
- adds r0, r2, r4
- ldrh r0, [r0]
- ldrh r4, [r1]
- adds r0, r4
- strh r0, [r1]
- ldr r0, _080C1FFC @ =0x00003e18
- adds r1, r2, r0
- ldr r4, _080C2000 @ =0x00003e20
- adds r0, r2, r4
- ldrh r0, [r0]
- ldrh r4, [r1]
- adds r0, r4
- strh r0, [r1]
- ldr r0, _080C2004 @ =0x00003e1a
- adds r1, r2, r0
- ldr r4, _080C2008 @ =0x00003e22
- adds r0, r2, r4
- ldrh r0, [r0]
- ldrh r4, [r1]
- adds r0, r4
- strh r0, [r1]
- ldr r0, _080C200C @ =0x00003e1c
- adds r1, r2, r0
- ldr r4, _080C2010 @ =0x00003e24
- adds r0, r2, r4
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r0, [r6]
- subs r4, 0x10
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, 0x5
- bhi _080C2086
- adds r0, 0x1
- b _080C2084
- .align 2, 0
-_080C1FF0: .4byte gUnknown_20399DC
-_080C1FF4: .4byte 0x00003d4b
-_080C1FF8: .4byte 0x00003e16
-_080C1FFC: .4byte 0x00003e18
-_080C2000: .4byte 0x00003e20
-_080C2004: .4byte 0x00003e1a
-_080C2008: .4byte 0x00003e22
-_080C200C: .4byte 0x00003e1c
-_080C2010: .4byte 0x00003e24
-_080C2014:
- ldr r1, _080C2028 @ =gUnknown_20399DC
- ldr r3, [r1]
- ldr r0, _080C202C @ =0x00003d4b
- adds r5, r3, r0
- ldrb r0, [r5]
- adds r6, r1, 0
- cmp r0, 0
- bne _080C2030
-_080C2024:
- movs r0, 0x1
- b _080C20DE
- .align 2, 0
-_080C2028: .4byte gUnknown_20399DC
-_080C202C: .4byte 0x00003d4b
-_080C2030:
- ldr r1, _080C20E8 @ =0x00003e16
- adds r2, r3, r1
- ldr r4, _080C20EC @ =0x00003e1e
- adds r1, r3, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldr r0, _080C20F0 @ =0x00003e18
- adds r2, r3, r0
- adds r4, 0x2
- adds r1, r3, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldr r0, _080C20F4 @ =0x00003e1a
- adds r2, r3, r0
- adds r4, 0x2
- adds r1, r3, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldr r0, _080C20F8 @ =0x00003e1c
- adds r2, r3, r0
- adds r4, 0x2
- adds r1, r3, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldrb r0, [r5]
- subs r0, 0x1
- strb r0, [r5]
- ldr r0, [r6]
- ldr r2, _080C20FC @ =0x00003e14
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0
- beq _080C2086
- subs r0, 0x1
-_080C2084:
- strh r0, [r1]
-_080C2086:
- ldr r4, [r6]
- ldr r1, _080C20E8 @ =0x00003e16
- adds r0, r4, r1
- ldrh r0, [r0]
- ldr r5, _080C2100 @ =0xffff0000
- ldr r2, [sp]
- ands r2, r5
- orrs r2, r0
- str r2, [sp]
- adds r1, 0x2
- adds r0, r4, r1
- ldrh r1, [r0]
- lsls r1, 16
- ldr r3, _080C2104 @ =0x0000ffff
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
- ldr r2, _080C20F4 @ =0x00003e1a
- adds r4, r2
- ldrh r0, [r4]
- ldr r1, [sp, 0x4]
- ands r1, r5
- orrs r1, r0
- str r1, [sp, 0x4]
- ldr r0, [r6]
- ldr r4, _080C20F8 @ =0x00003e1c
- adds r0, r4
- ldrh r0, [r0]
- lsls r0, 16
- ands r3, r1
- orrs r3, r0
- str r3, [sp, 0x4]
- movs r0, 0x1
- mov r1, sp
- bl sub_80C4CF0
- ldr r0, [r6]
- ldr r1, _080C20FC @ =0x00003e14
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80C4C48
- movs r0, 0
-_080C20DE:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080C20E8: .4byte 0x00003e16
-_080C20EC: .4byte 0x00003e1e
-_080C20F0: .4byte 0x00003e18
-_080C20F4: .4byte 0x00003e1a
-_080C20F8: .4byte 0x00003e1c
-_080C20FC: .4byte 0x00003e14
-_080C2100: .4byte 0xffff0000
-_080C2104: .4byte 0x0000ffff
- thumb_func_end sub_80C1F80
-
- thumb_func_start nullsub_63
-nullsub_63: @ 80C2108
- bx lr
- thumb_func_end nullsub_63
-
- thumb_func_start sub_80C210C
-sub_80C210C: @ 80C210C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- adds r5, r0, 0
- lsls r5, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080C21E0 @ =gUnknown_20399E0
- mov r9, r0
- ldr r6, [r0]
- lsrs r5, 22
- adds r6, r5
- ldr r0, [r6]
- str r0, [sp, 0x18]
- movs r3, 0x80
- lsls r3, 3
- mov r10, r3
- add r0, sp, 0x18
- lsls r3, r1, 16
- mov r4, r10
- orrs r3, r4
- str r3, [r0, 0x4]
- ldr r3, _080C21E4 @ =gUnknown_83EF3A4
- str r3, [sp, 0x20]
- ldr r4, _080C21E8 @ =0xffff0000
- add r7, sp, 0x20
- mov r8, r7
- ldr r3, [r7, 0x4]
- ands r3, r4
- orrs r3, r2
- str r3, [r7, 0x4]
- mov r3, sp
- movs r4, 0
- strh r1, [r3]
- strh r2, [r3, 0x2]
- ldr r3, _080C21EC @ =gUnknown_83F1C20
- str r3, [sp, 0x4]
- ldr r3, _080C21F0 @ =gUnknown_83F1C30
- str r3, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r3, _080C21F4 @ =gDummySpriteAffineAnimTable
- str r3, [sp, 0x10]
- ldr r3, _080C21F8 @ =nullsub_63
- str r3, [sp, 0x14]
- ldr r3, [r6]
- movs r4, 0x81
- lsls r4, 3
- adds r3, r4
- strh r1, [r3]
- ldr r1, [r6]
- ldr r7, _080C21FC @ =0x0000040a
- adds r1, r7
- strh r2, [r1]
- bl LoadSpriteSheet
- mov r0, r8
- bl LoadSpritePalette
- mov r1, r9
- ldr r0, [r1]
- adds r0, r5
- ldr r0, [r0]
- ldr r2, _080C2200 @ =0x00000404
- adds r1, r0, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- subs r4, 0x2
- adds r0, r4
- movs r7, 0
- ldrsh r2, [r0, r7]
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r2, r9
- ldr r1, [r2]
- adds r1, r5
- ldr r2, [r1]
- add r2, r10
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080C2204 @ =gSprites
- adds r1, r0
- str r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C21E0: .4byte gUnknown_20399E0
-_080C21E4: .4byte gUnknown_83EF3A4
-_080C21E8: .4byte 0xffff0000
-_080C21EC: .4byte gUnknown_83F1C20
-_080C21F0: .4byte gUnknown_83F1C30
-_080C21F4: .4byte gDummySpriteAffineAnimTable
-_080C21F8: .4byte nullsub_63
-_080C21FC: .4byte 0x0000040a
-_080C2200: .4byte 0x00000404
-_080C2204: .4byte gSprites
- thumb_func_end sub_80C210C
-
- thumb_func_start sub_80C2208
-sub_80C2208: @ 80C2208
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080C22A4 @ =gUnknown_20399E0
- ldr r0, _080C22A8 @ =0x00000cd4
- bl AllocZeroed
- str r0, [r4]
- movs r6, 0
-_080C2224:
- ldr r0, _080C22AC @ =0x0000040c
- bl AllocZeroed
- adds r5, r0, 0
- ldr r7, _080C22A4 @ =gUnknown_20399E0
- ldr r4, [r7]
- lsls r0, r6, 2
- adds r4, r0
- str r5, [r4]
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 19
- adds r0, 0x68
- ldr r1, _080C22B0 @ =0x00000404
- adds r5, r1
- strh r0, [r5]
- ldr r4, [r4]
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 18
- adds r0, 0x28
- ldr r2, _080C22B4 @ =0x00000406
- adds r4, r2
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _080C2224
- movs r0, 0
- bl sub_80C4AAC
- bl sub_80C4BE4
- bl sub_80C24BC
- movs r0, 0x1
- bl sub_80C0A88
- ldr r0, [r7]
- ldr r1, _080C22B8 @ =0x00000cc8
- adds r0, r1
- mov r2, r9
- str r2, [r0]
- ldr r1, _080C22BC @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C22C0 @ =sub_80C267C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C22A4: .4byte gUnknown_20399E0
-_080C22A8: .4byte 0x00000cd4
-_080C22AC: .4byte 0x0000040c
-_080C22B0: .4byte 0x00000404
-_080C22B4: .4byte 0x00000406
-_080C22B8: .4byte 0x00000cc8
-_080C22BC: .4byte gTasks
-_080C22C0: .4byte sub_80C267C
- thumb_func_end sub_80C2208
-
- thumb_func_start sub_80C22C4
-sub_80C22C4: @ 80C22C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r2, 0x6
- bne _080C2310
- movs r3, 0
- ldr r7, _080C230C @ =gUnknown_20399E0
- movs r6, 0x80
- lsls r6, 3
- movs r1, 0x1
- adds r0, r4, 0
- ands r0, r1
- lsls r4, r0, 2
- movs r5, 0x5
- negs r5, r5
-_080C22E6:
- ldr r0, [r7]
- lsls r1, r3, 2
- adds r0, r1
- ldr r0, [r0]
- adds r0, r6
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r4
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _080C22E6
- b _080C2338
- .align 2, 0
-_080C230C: .4byte gUnknown_20399E0
-_080C2310:
- ldr r0, _080C2340 @ =gUnknown_20399E0
- ldr r0, [r0]
- lsls r1, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1
- ldr r2, [r0]
- adds r2, 0x3E
- movs r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_080C2338:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2340: .4byte gUnknown_20399E0
- thumb_func_end sub_80C22C4
-
- thumb_func_start sub_80C2344
-sub_80C2344: @ 80C2344
- push {lr}
- ldr r0, _080C2360 @ =gUnknown_20399E0
- ldr r0, [r0]
- ldr r1, _080C2364 @ =0x00000ccd
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _080C2356
- b _080C249C
-_080C2356:
- lsls r0, 2
- ldr r1, _080C2368 @ =_080C236C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C2360: .4byte gUnknown_20399E0
-_080C2364: .4byte 0x00000ccd
-_080C2368: .4byte _080C236C
- .align 2, 0
-_080C236C:
- .4byte _080C2390
- .4byte _080C23B0
- .4byte _080C23D0
- .4byte _080C23F0
- .4byte _080C2410
- .4byte _080C2430
- .4byte _080C2450
- .4byte _080C2468
- .4byte _080C2484
-_080C2390:
- ldr r0, _080C23A8 @ =gUnknown_83F12CC
- ldr r1, _080C23AC @ =gUnknown_20399E0
- ldr r1, [r1]
- ldr r1, [r1]
- bl LZ77UnCompWram
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x4
- bl sub_80C210C
- b _080C24A0
- .align 2, 0
-_080C23A8: .4byte gUnknown_83F12CC
-_080C23AC: .4byte gUnknown_20399E0
-_080C23B0:
- ldr r0, _080C23C8 @ =gUnknown_83F1550
- ldr r1, _080C23CC @ =gUnknown_20399E0
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- bl LZ77UnCompWram
- movs r0, 0x1
- movs r1, 0x5
- movs r2, 0x5
- bl sub_80C210C
- b _080C24A0
- .align 2, 0
-_080C23C8: .4byte gUnknown_83F1550
-_080C23CC: .4byte gUnknown_20399E0
-_080C23D0:
- ldr r0, _080C23E8 @ =gUnknown_83F1738
- ldr r1, _080C23EC @ =gUnknown_20399E0
- ldr r1, [r1]
- ldr r1, [r1, 0x8]
- bl LZ77UnCompWram
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_80C210C
- b _080C24A0
- .align 2, 0
-_080C23E8: .4byte gUnknown_83F1738
-_080C23EC: .4byte gUnknown_20399E0
-_080C23F0:
- ldr r0, _080C2408 @ =gUnknown_83F13EC
- ldr r1, _080C240C @ =gUnknown_20399E0
- ldr r1, [r1]
- ldr r1, [r1, 0xC]
- bl LZ77UnCompWram
- movs r0, 0x3
- movs r1, 0x7
- movs r2, 0x7
- bl sub_80C210C
- b _080C24A0
- .align 2, 0
-_080C2408: .4byte gUnknown_83F13EC
-_080C240C: .4byte gUnknown_20399E0
-_080C2410:
- ldr r0, _080C2428 @ =gUnknown_83F1640
- ldr r1, _080C242C @ =gUnknown_20399E0
- ldr r1, [r1]
- ldr r1, [r1, 0x10]
- bl LZ77UnCompWram
- movs r0, 0x4
- movs r1, 0x8
- movs r2, 0x8
- bl sub_80C210C
- b _080C24A0
- .align 2, 0
-_080C2428: .4byte gUnknown_83F1640
-_080C242C: .4byte gUnknown_20399E0
-_080C2430:
- ldr r0, _080C2448 @ =gUnknown_83F1804
- ldr r1, _080C244C @ =gUnknown_20399E0
- ldr r1, [r1]
- ldr r1, [r1, 0x14]
- bl LZ77UnCompWram
- movs r0, 0x5
- movs r1, 0x9
- movs r2, 0x9
- bl sub_80C210C
- b _080C24A0
- .align 2, 0
-_080C2448: .4byte gUnknown_83F1804
-_080C244C: .4byte gUnknown_20399E0
-_080C2450:
- ldr r0, _080C2460 @ =gUnknown_83F0330
- ldr r1, _080C2464 @ =gUnknown_20399E0
- ldr r1, [r1]
- adds r1, 0x18
- bl LZ77UnCompWram
- b _080C24A0
- .align 2, 0
-_080C2460: .4byte gUnknown_83F0330
-_080C2464: .4byte gUnknown_20399E0
-_080C2468:
- ldr r0, _080C2478 @ =gUnknown_83F0E0C
- ldr r1, _080C247C @ =gUnknown_20399E0
- ldr r1, [r1]
- ldr r2, _080C2480 @ =0x00000818
- adds r1, r2
- bl LZ77UnCompWram
- b _080C24A0
- .align 2, 0
-_080C2478: .4byte gUnknown_83F0E0C
-_080C247C: .4byte gUnknown_20399E0
-_080C2480: .4byte 0x00000818
-_080C2484:
- ldr r0, _080C2498 @ =gUnknown_20399E0
- ldr r1, [r0]
- adds r1, 0x18
- movs r2, 0x80
- lsls r2, 4
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- b _080C24A0
- .align 2, 0
-_080C2498: .4byte gUnknown_20399E0
-_080C249C:
- movs r0, 0x1
- b _080C24B0
-_080C24A0:
- ldr r0, _080C24B4 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C24B8 @ =0x00000ccd
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_080C24B0:
- pop {r1}
- bx r1
- .align 2, 0
-_080C24B4: .4byte gUnknown_20399E0
-_080C24B8: .4byte 0x00000ccd
- thumb_func_end sub_80C2344
-
- thumb_func_start sub_80C24BC
-sub_80C24BC: @ 80C24BC
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080C252C @ =gUnknown_20399E0
- ldr r3, [r0]
- ldr r0, [r3]
- ldr r2, _080C2530 @ =0x00000404
- adds r0, r2
- ldrh r0, [r0]
- adds r0, 0x8
- lsls r0, 16
- ldr r4, _080C2534 @ =0xffff0000
- ldr r5, _080C2538 @ =0x0000ffff
- lsrs r0, 16
- movs r1, 0x80
- lsls r1, 13
- orrs r0, r1
- str r0, [sp]
- ldr r0, [r3, 0xC]
- adds r0, r2
- ldrh r1, [r0]
- subs r1, 0x8
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x4]
- ands r0, r4
- orrs r0, r1
- ands r0, r5
- movs r1, 0xA0
- lsls r1, 16
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- bl sub_80C4C2C
- movs r0, 0x12
- movs r1, 0
- bl sub_80C4C74
- movs r0, 0x10
- bl sub_80C4C88
- movs r0, 0
- mov r1, sp
- bl sub_80C4CF0
- movs r0, 0
- movs r1, 0
- bl sub_80C4C9C
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C252C: .4byte gUnknown_20399E0
-_080C2530: .4byte 0x00000404
-_080C2534: .4byte 0xffff0000
-_080C2538: .4byte 0x0000ffff
- thumb_func_end sub_80C24BC
-
- thumb_func_start sub_80C253C
-sub_80C253C: @ 80C253C
- push {lr}
- sub sp, 0x8
- ldr r0, _080C258C @ =gUnknown_83F1C34
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- bl sub_80C4BE4
- movs r0, 0x2
- movs r1, 0x29
- movs r2, 0x80
- bl sub_80C4C2C
- ldr r0, _080C2590 @ =gUnknown_20399E0
- ldr r0, [r0]
- movs r1, 0xCD
- lsls r1, 4
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C4C48
- movs r0, 0x37
- movs r1, 0
- bl sub_80C4C74
- movs r0, 0x12
- bl sub_80C4C88
- movs r0, 0
- mov r1, sp
- bl sub_80C4CF0
- movs r0, 0
- movs r1, 0
- bl sub_80C4C9C
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080C258C: .4byte gUnknown_83F1C34
-_080C2590: .4byte gUnknown_20399E0
- thumb_func_end sub_80C253C
-
- thumb_func_start sub_80C2594
-sub_80C2594: @ 80C2594
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C25B0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C25B4 @ =gUnknown_20399E0
- ldr r0, [r0]
- ldr r2, _080C25B8 @ =0x00000cc8
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C25B0: .4byte gTasks
-_080C25B4: .4byte gUnknown_20399E0
-_080C25B8: .4byte 0x00000cc8
- thumb_func_end sub_80C2594
-
- thumb_func_start sub_80C25BC
-sub_80C25BC: @ 80C25BC
- push {r4-r6,lr}
- bl sub_80C2604
- movs r5, 0
- ldr r6, _080C2600 @ =gUnknown_20399E0
-_080C25C6:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080C25DE
- bl Free
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080C25DE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080C25C6
- ldr r4, _080C2600 @ =gUnknown_20399E0
- ldr r0, [r4]
- cmp r0, 0
- beq _080C25F8
- bl Free
- movs r0, 0
- str r0, [r4]
-_080C25F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2600: .4byte gUnknown_20399E0
- thumb_func_end sub_80C25BC
-
- thumb_func_start sub_80C2604
-sub_80C2604: @ 80C2604
- push {r4-r7,lr}
- movs r5, 0
- ldr r7, _080C2670 @ =gUnknown_20399E0
- movs r6, 0x80
- lsls r6, 3
-_080C260E:
- ldr r2, [r7]
- lsls r4, r5, 2
- adds r2, r4
- ldr r1, [r2]
- adds r0, r1, r6
- ldr r0, [r0]
- ldrh r0, [r0, 0x20]
- ldr r3, _080C2674 @ =0x00000404
- adds r1, r3
- strh r0, [r1]
- ldr r1, [r2]
- adds r0, r1, r6
- ldr r0, [r0]
- ldrh r0, [r0, 0x22]
- adds r3, 0x2
- adds r1, r3
- strh r0, [r1]
- ldr r0, [r2]
- adds r0, r6
- ldr r0, [r0]
- cmp r0, 0
- beq _080C2660
- bl DestroySprite
- ldr r0, [r7]
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0x81
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r7]
- adds r0, r4
- ldr r0, [r0]
- ldr r3, _080C2678 @ =0x0000040a
- adds r0, r3
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080C2660:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080C260E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2670: .4byte gUnknown_20399E0
-_080C2674: .4byte 0x00000404
-_080C2678: .4byte 0x0000040a
- thumb_func_end sub_80C2604
-
- thumb_func_start sub_80C267C
-sub_80C267C: @ 80C267C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C26A0 @ =gUnknown_20399E0
- ldr r0, [r1]
- ldr r2, _080C26A4 @ =0x00000ccc
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080C2696
- b _080C2990
-_080C2696:
- lsls r0, 2
- ldr r1, _080C26A8 @ =_080C26AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C26A0: .4byte gUnknown_20399E0
-_080C26A4: .4byte 0x00000ccc
-_080C26A8: .4byte _080C26AC
- .align 2, 0
-_080C26AC:
- .4byte _080C26E4
- .4byte _080C26FC
- .4byte _080C270C
- .4byte _080C272C
- .4byte _080C2768
- .4byte _080C2788
- .4byte _080C27B4
- .4byte _080C27C4
- .4byte _080C27E4
- .4byte _080C281E
- .4byte _080C2868
- .4byte _080C28A4
- .4byte _080C2928
- .4byte _080C296C
-_080C26E4:
- bl sub_80C08E0
- ldr r0, _080C26F4 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C26F8 @ =0x00000ccc
- adds r1, r0
- b _080C297E
- .align 2, 0
-_080C26F4: .4byte gUnknown_20399E0
-_080C26F8: .4byte 0x00000ccc
-_080C26FC:
- bl sub_80C2344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C270A
- b _080C299A
-_080C270A:
- b _080C2976
-_080C270C:
- ldr r1, [r4]
- ldr r0, _080C2728 @ =0x00000818
- adds r1, r0
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect
- ldr r1, [r4]
- b _080C297A
- .align 2, 0
-_080C2728: .4byte 0x00000818
-_080C272C:
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sub_80C08F4
- ldr r0, _080C2760 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2764 @ =0x00000ccc
- adds r1, r0
- b _080C297E
- .align 2, 0
-_080C2760: .4byte gUnknown_20399E0
-_080C2764: .4byte 0x00000ccc
-_080C2768:
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x6
- movs r1, 0
- bl sub_80C22C4
- bl sub_80C2B48
- b _080C2976
-_080C2788:
- ldr r0, _080C27AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080C2796
- b _080C299A
-_080C2796:
- ldr r1, [r4]
- ldr r0, _080C27B0 @ =0x00000ccc
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0xF4
- bl PlaySE
- b _080C299A
- .align 2, 0
-_080C27AC: .4byte gPaletteFade
-_080C27B0: .4byte 0x00000ccc
-_080C27B4:
- bl sub_80C29A4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C27C2
- b _080C299A
-_080C27C2:
- b _080C2976
-_080C27C4:
- movs r0, 0
- bl sub_80C4324
- movs r0, 0
- bl sub_80C3154
- ldr r0, _080C27DC @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C27E0 @ =0x00000ccc
- adds r1, r0
- b _080C297E
- .align 2, 0
-_080C27DC: .4byte gUnknown_20399E0
-_080C27E0: .4byte 0x00000ccc
-_080C27E4:
- ldr r0, [r4]
- movs r1, 0xCD
- lsls r1, 4
- adds r0, r1
- movs r1, 0xF
- strb r1, [r0]
- bl sub_80C253C
- movs r0, 0
- bl sub_80C0A88
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0
- bl sub_80C48BC
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0
- bl sub_80C4960
- ldr r1, [r4]
- b _080C297A
-_080C281E:
- ldr r0, _080C283C @ =gUnknown_8418EB5
- bl sub_80C4E18
- movs r0, 0x1
- bl sub_80C3AC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080C2844
- ldr r0, _080C2840 @ =gUnknown_8418E8B
- bl sub_80C4E74
- b _080C284A
- .align 2, 0
-_080C283C: .4byte gUnknown_8418EB5
-_080C2840: .4byte gUnknown_8418E8B
-_080C2844:
- ldr r0, _080C285C @ =gUnknown_8418E8D
- bl sub_80C4E74
-_080C284A:
- movs r0, 0
- bl sub_80C4ED0
- ldr r0, _080C2860 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2864 @ =0x00000ccc
- adds r1, r0
- b _080C297E
- .align 2, 0
-_080C285C: .4byte gUnknown_8418E8D
-_080C2860: .4byte gUnknown_20399E0
-_080C2864: .4byte 0x00000ccc
-_080C2868:
- ldr r4, _080C28A0 @ =gUnknown_83EF23C + 0x1E
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x20
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x40
- movs r2, 0x2
- bl LoadPalette
- b _080C2976
- .align 2, 0
-_080C28A0: .4byte gUnknown_83EF23C + 0x1E
-_080C28A4:
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0x2
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x3E
- movs r2, 0x1C
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x3F
- movs r2, 0x1D
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r0, 0x1A
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x3D
- movs r2, 0x2
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0xF4
- bl m4aSongNumStop
- movs r0, 0x2A
- bl PlaySE
- ldr r0, _080C2920 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2924 @ =0x00000ccc
- adds r1, r0
- b _080C297E
- .align 2, 0
-_080C2920: .4byte gUnknown_20399E0
-_080C2924: .4byte 0x00000ccc
-_080C2928:
- ldr r0, [r4]
- movs r2, 0xCD
- lsls r2, 4
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _080C2958
- movs r0, 0x6
- movs r1, 0x1
- bl sub_80C22C4
- ldr r1, [r4]
- ldr r0, _080C2954 @ =0x00000ccc
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl sub_80C4C48
- b _080C299A
- .align 2, 0
-_080C2954: .4byte 0x00000ccc
-_080C2958:
- subs r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0xCD
- lsls r1, 4
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C4C48
- b _080C299A
-_080C296C:
- movs r0, 0
- bl sub_80C4B30
- bl sub_80C0BB0
-_080C2976:
- ldr r0, _080C2988 @ =gUnknown_20399E0
- ldr r1, [r0]
-_080C297A:
- ldr r2, _080C298C @ =0x00000ccc
- adds r1, r2
-_080C297E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C299A
- .align 2, 0
-_080C2988: .4byte gUnknown_20399E0
-_080C298C: .4byte 0x00000ccc
-_080C2990:
- bl sub_80C2604
- adds r0, r5, 0
- bl sub_80C2594
-_080C299A:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C267C
-
- thumb_func_start sub_80C29A4
-sub_80C29A4: @ 80C29A4
- push {r4,r5,lr}
- bl sub_80C2B48
- ldr r0, _080C29C8 @ =gUnknown_20399E0
- ldr r2, [r0]
- ldr r0, [r2]
- movs r4, 0x80
- lsls r4, 3
- adds r0, r4
- ldr r1, [r0]
- ldrh r3, [r1, 0x20]
- movs r5, 0x20
- ldrsh r0, [r1, r5]
- cmp r0, 0
- bne _080C29CC
- movs r0, 0x1
- b _080C2B3A
- .align 2, 0
-_080C29C8: .4byte gUnknown_20399E0
-_080C29CC:
- ldr r5, _080C2A18 @ =0x00000cce
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _080C2A1C
- subs r0, r3, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- b _080C2B28
- .align 2, 0
-_080C2A18: .4byte 0x00000cce
-_080C2A1C:
- cmp r0, 0xE
- bls _080C2A60
- subs r0, r3, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x2
- b _080C2B28
-_080C2A60:
- cmp r0, 0xA
- bls _080C2AA4
- subs r0, r3, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x3
- b _080C2B28
-_080C2AA4:
- cmp r0, 0x6
- bls _080C2AE8
- subs r0, r3, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x5
- b _080C2B28
-_080C2AE8:
- adds r0, r3, 0
- subs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
-_080C2B28:
- strh r0, [r1, 0x20]
- ldr r0, _080C2B40 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2B44 @ =0x00000cce
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_080C2B3A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C2B40: .4byte gUnknown_20399E0
-_080C2B44: .4byte 0x00000cce
- thumb_func_end sub_80C29A4
-
- thumb_func_start sub_80C2B48
-sub_80C2B48: @ 80C2B48
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080C2B90 @ =gUnknown_20399E0
- ldr r3, [r0]
- ldr r0, [r3]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- ldr r4, _080C2B94 @ =0xffff0000
- ldr r5, _080C2B98 @ =0x0000ffff
- ldrh r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 13
- orrs r0, r1
- str r0, [sp]
- ldr r0, [r3, 0xC]
- adds r0, r2
- ldr r0, [r0]
- ldrh r1, [r0, 0x20]
- ldr r0, [sp, 0x4]
- ands r0, r4
- orrs r0, r1
- ands r0, r5
- movs r1, 0xA0
- lsls r1, 16
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r0, 0
- mov r1, sp
- bl sub_80C4CF0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2B90: .4byte gUnknown_20399E0
-_080C2B94: .4byte 0xffff0000
-_080C2B98: .4byte 0x0000ffff
- thumb_func_end sub_80C2B48
-
- thumb_func_start sub_80C2B9C
-sub_80C2B9C: @ 80C2B9C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080C2C0C @ =gUnknown_20399E0
- ldr r3, [r0]
- ldr r0, [r3]
- ldr r2, _080C2C10 @ =0x00000404
- adds r0, r2
- ldrh r0, [r0]
- adds r0, 0x10
- lsls r0, 16
- ldr r4, _080C2C14 @ =0xffff0000
- ldr r5, _080C2C18 @ =0x0000ffff
- lsrs r0, 16
- movs r1, 0x80
- lsls r1, 13
- orrs r0, r1
- str r0, [sp]
- ldr r0, [r3, 0xC]
- adds r0, r2
- ldrh r1, [r0]
- subs r1, 0x10
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x4]
- ands r0, r4
- orrs r0, r1
- ands r0, r5
- movs r1, 0xA0
- lsls r1, 16
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- bl sub_80C4C2C
- movs r0, 0x12
- movs r1, 0
- bl sub_80C4C74
- movs r0, 0x10
- bl sub_80C4C88
- movs r0, 0
- mov r1, sp
- bl sub_80C4CF0
- movs r0, 0
- movs r1, 0
- bl sub_80C4C9C
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2C0C: .4byte gUnknown_20399E0
-_080C2C10: .4byte 0x00000404
-_080C2C14: .4byte 0xffff0000
-_080C2C18: .4byte 0x0000ffff
- thumb_func_end sub_80C2B9C
-
- thumb_func_start sub_80C2C1C
-sub_80C2C1C: @ 80C2C1C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2C30 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C2C34 @ =sub_80C2C7C
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C2C30: .4byte gTasks
-_080C2C34: .4byte sub_80C2C7C
- thumb_func_end sub_80C2C1C
-
- thumb_func_start sub_80C2C38
-sub_80C2C38: @ 80C2C38
- push {lr}
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x4
- bl sub_80C210C
- movs r0, 0x1
- movs r1, 0x5
- movs r2, 0x5
- bl sub_80C210C
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_80C210C
- movs r0, 0x3
- movs r1, 0x7
- movs r2, 0x7
- bl sub_80C210C
- movs r0, 0x4
- movs r1, 0x8
- movs r2, 0x8
- bl sub_80C210C
- movs r0, 0x5
- movs r1, 0x9
- movs r2, 0x9
- bl sub_80C210C
- pop {r0}
- bx r0
- thumb_func_end sub_80C2C38
-
- thumb_func_start sub_80C2C7C
-sub_80C2C7C: @ 80C2C7C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C2CA0 @ =gUnknown_20399E0
- ldr r3, [r1]
- ldr r4, _080C2CA4 @ =0x00000ccf
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _080C2C94
- b _080C2DFC
-_080C2C94:
- lsls r0, 2
- ldr r1, _080C2CA8 @ =_080C2CAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C2CA0: .4byte gUnknown_20399E0
-_080C2CA4: .4byte 0x00000ccf
-_080C2CA8: .4byte _080C2CAC
- .align 2, 0
-_080C2CAC:
- .4byte _080C2CCC
- .4byte _080C2CF4
- .4byte _080C2CFA
- .4byte _080C2D1C
- .4byte _080C2D6C
- .4byte _080C2D84
- .4byte _080C2DB8
- .4byte _080C2DD8
-_080C2CCC:
- movs r0, 0x1
- bl sub_80C4ED0
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x4
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _080C2CEC @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2CF0 @ =0x00000ccf
- adds r1, r0
- b _080C2DEC
- .align 2, 0
-_080C2CEC: .4byte gUnknown_20399E0
-_080C2CF0: .4byte 0x00000ccf
-_080C2CF4:
- bl sub_80C2C38
- b _080C2DE4
-_080C2CFA:
- ldr r0, _080C2D10 @ =gUnknown_83EF2DC
- movs r1, 0
- movs r2, 0xA0
- bl LoadPalette
- ldr r0, _080C2D14 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r3, _080C2D18 @ =0x00000ccf
- adds r1, r3
- b _080C2DEC
- .align 2, 0
-_080C2D10: .4byte gUnknown_83EF2DC
-_080C2D14: .4byte gUnknown_20399E0
-_080C2D18: .4byte 0x00000ccf
-_080C2D1C:
- movs r0, 0x6
- movs r1, 0
- bl sub_80C22C4
- movs r0, 0x1
- bl sub_80C4324
- movs r0, 0x1
- bl sub_80C3154
- movs r0, 0xFF
- movs r1, 0x19
- movs r2, 0x1
- bl sub_80C4960
- movs r0, 0xFF
- movs r1, 0x19
- movs r2, 0x1
- bl sub_80C48BC
- ldr r1, _080C2D64 @ =gUnknown_20399E0
- ldr r0, [r1]
- ldr r4, _080C2D68 @ =0x00000cce
- adds r0, r4
- movs r2, 0
- strb r2, [r0]
- ldr r0, [r1]
- movs r3, 0xCD
- lsls r3, 4
- adds r0, r3
- strb r2, [r0]
- ldr r1, [r1]
- adds r4, 0x1
- adds r1, r4
- b _080C2DEC
- .align 2, 0
-_080C2D64: .4byte gUnknown_20399E0
-_080C2D68: .4byte 0x00000cce
-_080C2D6C:
- bl sub_80C253C
- ldr r0, _080C2D7C @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2D80 @ =0x00000ccf
- adds r1, r0
- b _080C2DEC
- .align 2, 0
-_080C2D7C: .4byte gUnknown_20399E0
-_080C2D80: .4byte 0x00000ccf
-_080C2D84:
- ldr r0, [r4]
- movs r2, 0xCD
- lsls r2, 4
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xF
- bne _080C2DA4
- ldrb r0, [r1]
- bl sub_80C4C48
- ldr r1, [r4]
- ldr r3, _080C2DA0 @ =0x00000ccf
- adds r1, r3
- b _080C2DEC
- .align 2, 0
-_080C2DA0: .4byte 0x00000ccf
-_080C2DA4:
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- movs r4, 0xCD
- lsls r4, 4
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80C4C48
- b _080C2E0E
-_080C2DB8:
- bl sub_80C2B9C
- bl sub_80C2B48
- movs r0, 0xF3
- bl PlaySE
- ldr r0, _080C2DD0 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2DD4 @ =0x00000ccf
- adds r1, r0
- b _080C2DEC
- .align 2, 0
-_080C2DD0: .4byte gUnknown_20399E0
-_080C2DD4: .4byte 0x00000ccf
-_080C2DD8:
- bl sub_80C2E1C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C2E0E
-_080C2DE4:
- ldr r0, _080C2DF4 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r2, _080C2DF8 @ =0x00000ccf
- adds r1, r2
-_080C2DEC:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080C2E0E
- .align 2, 0
-_080C2DF4: .4byte gUnknown_20399E0
-_080C2DF8: .4byte 0x00000ccf
-_080C2DFC:
- ldr r1, _080C2E14 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r4, _080C2E18 @ =0x00000cc8
- adds r1, r3, r4
- ldr r1, [r1]
- str r1, [r0]
-_080C2E0E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2E14: .4byte gTasks
-_080C2E18: .4byte 0x00000cc8
- thumb_func_end sub_80C2C7C
-
- thumb_func_start sub_80C2E1C
-sub_80C2E1C: @ 80C2E1C
- push {r4,r5,lr}
- bl sub_80C2B48
- ldr r0, _080C2E40 @ =gUnknown_20399E0
- ldr r2, [r0]
- ldr r0, [r2]
- movs r4, 0x80
- lsls r4, 3
- adds r0, r4
- ldr r1, [r0]
- ldrh r3, [r1, 0x20]
- movs r5, 0x20
- ldrsh r0, [r1, r5]
- cmp r0, 0x68
- bne _080C2E44
- movs r0, 0x1
- b _080C2FB2
- .align 2, 0
-_080C2E40: .4byte gUnknown_20399E0
-_080C2E44:
- ldr r5, _080C2E90 @ =0x00000cce
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _080C2E94
- adds r0, r3, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x1
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x1
- b _080C2FA0
- .align 2, 0
-_080C2E90: .4byte 0x00000cce
-_080C2E94:
- cmp r0, 0xE
- bls _080C2ED8
- adds r0, r3, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x2
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x2
- b _080C2FA0
-_080C2ED8:
- cmp r0, 0xA
- bls _080C2F1C
- adds r0, r3, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x3
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x3
- b _080C2FA0
-_080C2F1C:
- cmp r0, 0x6
- bls _080C2F60
- adds r0, r3, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x5
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x5
- b _080C2FA0
-_080C2F60:
- adds r0, r3, 0
- adds r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x4]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x8]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0xC]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x10]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r0, [r2, 0x14]
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x20]
- subs r0, 0x8
-_080C2FA0:
- strh r0, [r1, 0x20]
- ldr r0, _080C2FB8 @ =gUnknown_20399E0
- ldr r1, [r0]
- ldr r0, _080C2FBC @ =0x00000cce
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_080C2FB2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C2FB8: .4byte gUnknown_20399E0
-_080C2FBC: .4byte 0x00000cce
- thumb_func_end sub_80C2E1C
-
- thumb_func_start sub_80C2FC0
-sub_80C2FC0: @ 80C2FC0
- push {lr}
- adds r1, r0, 0
- ldr r0, _080C2FE8 @ =gUnknown_20399E4
- ldr r2, [r0]
- ldrh r0, [r2, 0xC]
- cmp r0, 0
- beq _080C2FEC
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- strh r0, [r1, 0x20]
- ldrh r0, [r2, 0xA]
- ldrh r3, [r1, 0x22]
- adds r0, r3
- strh r0, [r1, 0x22]
- ldrh r0, [r2, 0xC]
- subs r0, 0x1
- strh r0, [r2, 0xC]
- b _080C3004
- .align 2, 0
-_080C2FE8: .4byte gUnknown_20399E4
-_080C2FEC:
- ldr r1, [r2, 0x1C]
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r0, 3
- adds r0, 0x24
- strh r0, [r1, 0x20]
- ldr r1, [r2, 0x1C]
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- lsls r0, 3
- adds r0, 0x24
- strh r0, [r1, 0x22]
-_080C3004:
- pop {r0}
- bx r0
- thumb_func_end sub_80C2FC0
-
- thumb_func_start sub_80C3008
-sub_80C3008: @ 80C3008
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080C3090 @ =gUnknown_20399E4
- movs r0, 0x92
- lsls r0, 1
- bl AllocZeroed
- adds r1, r0, 0
- str r1, [r6]
- ldr r0, _080C3094 @ =gUnknown_83EF4E0
- adds r1, 0x24
- bl LZ77UnCompWram
- ldr r0, [r6]
- strh r4, [r0, 0x20]
- strh r5, [r0, 0x22]
- bl sub_80C3D40
- ldr r1, [r6]
- movs r2, 0
- ldrsh r0, [r1, r2]
- lsls r0, 3
- adds r0, 0x24
- strh r0, [r1, 0x4]
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- lsls r0, 3
- adds r0, 0x24
- strh r0, [r1, 0x6]
- ldr r0, _080C3098 @ =sub_80C31C0
- str r0, [r1, 0x10]
- ldrb r0, [r1, 0x14]
- bl sub_80C35DC
- ldr r1, [r6]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x16]
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r6]
- movs r4, 0x2
- ldrsh r2, [r1, r4]
- movs r4, 0
- ldrsh r3, [r1, r4]
- movs r1, 0x1
- bl sub_80C4164
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C3878
- ldr r1, [r6]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x18]
- bl sub_80C309C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3090: .4byte gUnknown_20399E4
-_080C3094: .4byte gUnknown_83EF4E0
-_080C3098: .4byte sub_80C31C0
- thumb_func_end sub_80C3008
-
- thumb_func_start sub_80C309C
-sub_80C309C: @ 80C309C
- push {r4-r6,lr}
- sub sp, 0x40
- ldr r6, _080C3134 @ =gUnknown_20399E4
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x24
- str r0, [sp, 0x30]
- movs r1, 0x80
- lsls r1, 1
- add r5, sp, 0x30
- str r1, [r5, 0x4]
- ldrh r0, [r2, 0x20]
- lsls r0, 16
- orrs r0, r1
- str r0, [r5, 0x4]
- ldr r0, _080C3138 @ =gUnknown_83EF25C
- str r0, [sp, 0x38]
- ldrh r3, [r2, 0x22]
- ldr r1, _080C313C @ =0xffff0000
- add r4, sp, 0x38
- ldr r0, [r4, 0x4]
- ands r0, r1
- orrs r0, r3
- str r0, [r4, 0x4]
- ldrh r0, [r2, 0x20]
- add r1, sp, 0x18
- movs r3, 0
- strh r0, [r1]
- ldrh r2, [r2, 0x22]
- mov r0, sp
- adds r0, 0x1A
- strh r2, [r0]
- ldr r0, _080C3140 @ =gUnknown_83F1C3C
- str r0, [sp, 0x1C]
- ldr r0, _080C3144 @ =gUnknown_83F1C50
- str r0, [sp, 0x20]
- str r3, [sp, 0x24]
- ldr r0, _080C3148 @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x28]
- ldr r0, _080C314C @ =sub_80C2FC0
- str r0, [sp, 0x2C]
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- adds r0, r5, 0
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- ldr r0, [r6]
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- movs r3, 0x6
- ldrsh r2, [r0, r3]
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080C3150 @ =gSprites
- adds r1, r0
- str r1, [r2, 0x1C]
- movs r0, 0x1
- bl sub_80C3154
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3134: .4byte gUnknown_20399E4
-_080C3138: .4byte gUnknown_83EF25C
-_080C313C: .4byte 0xffff0000
-_080C3140: .4byte gUnknown_83F1C3C
-_080C3144: .4byte gUnknown_83F1C50
-_080C3148: .4byte gDummySpriteAffineAnimTable
-_080C314C: .4byte sub_80C2FC0
-_080C3150: .4byte gSprites
- thumb_func_end sub_80C309C
-
- thumb_func_start sub_80C3154
-sub_80C3154: @ 80C3154
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C3174 @ =gUnknown_20399E4
- ldr r1, [r1]
- ldr r2, [r1, 0x1C]
- adds r2, 0x3E
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- ldrb r3, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .align 2, 0
-_080C3174: .4byte gUnknown_20399E4
- thumb_func_end sub_80C3154
-
- thumb_func_start sub_80C3178
-sub_80C3178: @ 80C3178
- ldr r0, _080C3184 @ =gUnknown_20399E4
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0xE]
- bx lr
- .align 2, 0
-_080C3184: .4byte gUnknown_20399E4
- thumb_func_end sub_80C3178
-
- thumb_func_start sub_80C3188
-sub_80C3188: @ 80C3188
- push {r4,lr}
- ldr r4, _080C31BC @ =gUnknown_20399E4
- ldr r0, [r4]
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080C31A8
- bl DestroySprite
- ldr r0, [r4]
- ldrh r0, [r0, 0x20]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x22]
- bl FreeSpritePaletteByTag
-_080C31A8:
- ldr r0, [r4]
- cmp r0, 0
- beq _080C31B6
- bl Free
- movs r0, 0
- str r0, [r4]
-_080C31B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C31BC: .4byte gUnknown_20399E4
- thumb_func_end sub_80C3188
-
- thumb_func_start sub_80C31C0
-sub_80C31C0: @ 80C31C0
- push {r4-r6,lr}
- movs r5, 0
- ldr r3, _080C3278 @ =gUnknown_20399E4
- ldr r4, [r3]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r2, _080C327C @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r6, r3, 0
- cmp r0, 0
- beq _080C31E8
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _080C31E8
- ldr r0, _080C3280 @ =0x0000fffe
- strh r0, [r4, 0xA]
- movs r5, 0x1
-_080C31E8:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080C3202
- ldr r1, [r6]
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- cmp r0, 0xD
- bgt _080C3202
- movs r0, 0x2
- strh r0, [r1, 0xA]
- movs r5, 0x1
-_080C3202:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080C321C
- ldr r1, [r6]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x14
- bgt _080C321C
- movs r0, 0x2
- strh r0, [r1, 0x8]
- movs r5, 0x1
-_080C321C:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080C3236
- ldr r1, [r6]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080C3236
- ldr r0, _080C3280 @ =0x0000fffe
- strh r0, [r1, 0x8]
- movs r5, 0x1
-_080C3236:
- ldrh r3, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _080C328C
- movs r5, 0x4
- ldr r0, [r6]
- ldr r1, [r0]
- ldr r0, _080C3284 @ =0x000d0015
- cmp r1, r0
- bne _080C3254
- movs r0, 0xF0
- bl PlaySE
- movs r5, 0x6
-_080C3254:
- ldr r0, [r6]
- ldr r1, [r0]
- ldr r0, _080C3288 @ =0x000b0015
- cmp r1, r0
- bne _080C331A
- movs r0, 0
- bl sub_80C0E04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C331A
- movs r0, 0xF0
- bl PlaySE
- movs r5, 0x5
- b _080C331A
- .align 2, 0
-_080C3278: .4byte gUnknown_20399E4
-_080C327C: .4byte gMain
-_080C3280: .4byte 0x0000fffe
-_080C3284: .4byte 0x000d0015
-_080C3288: .4byte 0x000b0015
-_080C328C:
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- bne _080C3318
- ldrh r1, [r2, 0x30]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080C3300
- bl sub_80C3418
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080C32FC @ =gUnknown_20399E4
- ldr r1, [r4]
- movs r5, 0x2
- ldrsh r2, [r1, r5]
- movs r5, 0
- ldrsh r3, [r1, r5]
- movs r1, 0
- bl sub_80C4164
- ldr r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x14]
- bl sub_80C35DC
- ldr r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x16]
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- movs r3, 0x2
- ldrsh r2, [r1, r3]
- movs r5, 0
- ldrsh r3, [r1, r5]
- movs r1, 0x1
- bl sub_80C4164
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C3878
- ldr r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x18]
- movs r0, 0x3
- b _080C332C
- .align 2, 0
-_080C32FC: .4byte gUnknown_20399E4
-_080C3300:
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _080C331A
- ldr r0, _080C3334 @ =gUnknown_20399D4
- ldr r0, [r0]
- ldr r1, _080C3338 @ =0x000047bc
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _080C333C @ =CB2_ReturnToField
- cmp r1, r0
- bne _080C331A
-_080C3318:
- movs r5, 0x6
-_080C331A:
- cmp r5, 0x1
- bne _080C332A
- ldr r0, _080C3340 @ =gUnknown_20399E4
- ldr r1, [r0]
- movs r0, 0x4
- strh r0, [r1, 0xC]
- ldr r0, _080C3344 @ =sub_80C3348
- str r0, [r1, 0x10]
-_080C332A:
- adds r0, r5, 0
-_080C332C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080C3334: .4byte gUnknown_20399D4
-_080C3338: .4byte 0x000047bc
-_080C333C: .4byte CB2_ReturnToField
-_080C3340: .4byte gUnknown_20399E4
-_080C3344: .4byte sub_80C3348
- thumb_func_end sub_80C31C0
-
- thumb_func_start sub_80C3348
-sub_80C3348: @ 80C3348
- push {r4,r5,lr}
- ldr r4, _080C3358 @ =gUnknown_20399E4
- ldr r1, [r4]
- ldrh r0, [r1, 0xC]
- cmp r0, 0
- beq _080C335C
- movs r0, 0x2
- b _080C33F4
- .align 2, 0
-_080C3358: .4byte gUnknown_20399E4
-_080C335C:
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- ble _080C336A
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080C336A:
- ldr r1, [r4]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bge _080C337A
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_080C337A:
- ldr r1, [r4]
- movs r5, 0xA
- ldrsh r0, [r1, r5]
- cmp r0, 0
- ble _080C338A
- ldrh r0, [r1, 0x2]
- adds r0, 0x1
- strh r0, [r1, 0x2]
-_080C338A:
- ldr r1, [r4]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bge _080C339A
- ldrh r0, [r1, 0x2]
- subs r0, 0x1
- strh r0, [r1, 0x2]
-_080C339A:
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- movs r3, 0x2
- ldrsh r2, [r1, r3]
- movs r5, 0
- ldrsh r3, [r1, r5]
- movs r1, 0
- bl sub_80C4164
- ldr r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x14]
- bl sub_80C35DC
- ldr r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x16]
- bl sub_80C0E20
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- movs r3, 0x2
- ldrsh r2, [r1, r3]
- movs r5, 0
- ldrsh r3, [r1, r5]
- movs r1, 0x1
- bl sub_80C4164
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C3878
- ldr r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x18]
- ldr r0, _080C33FC @ =sub_80C31C0
- str r0, [r1, 0x10]
- movs r0, 0x3
-_080C33F4:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C33FC: .4byte sub_80C31C0
- thumb_func_end sub_80C3348
-
- thumb_func_start sub_80C3400
-sub_80C3400: @ 80C3400
- push {lr}
- ldr r0, _080C3414 @ =gUnknown_20399E4
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C3414: .4byte gUnknown_20399E4
- thumb_func_end sub_80C3400
-
thumb_func_start sub_80C3418
sub_80C3418: @ 80C3418
push {r4,r5,lr}
diff --git a/data/region_map.s b/data/region_map.s
index 5d28f9503..01bbb7a5a 100644
--- a/data/region_map.s
+++ b/data/region_map.s
@@ -7,8 +7,6 @@
.section .rodata
.align 2
- .include "data/text/map_section_names.inc"
-
gUnknown_83EF23C:: @ 83EF23C gbapal
.incbin "graphics/region_map/unk_83EF23C.gbapal"
@@ -239,24 +237,78 @@ gUnknown_83F1A9C:: @ 83F1A9C
.4byte gUnknown_83F1A94
.4byte gUnknown_83F1A98
-gUnknown_83F1AA4:: @ 83F1AA4
- .byte 0x8f, 0x90, 0x91, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xaf, 0xb0, 0xb9, 0xc3, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+sSeviiMapsecs:: @ 83F1AA4
+ .byte MAPSEC_ONE_ISLAND
+ .byte MAPSEC_TWO_ISLAND
+ .byte MAPSEC_THREE_ISLAND
+ .byte MAPSEC_KINDLE_ROAD
+ .byte MAPSEC_TREASURE_BEACH
+ .byte MAPSEC_CAPE_BRINK
+ .byte MAPSEC_BOND_BRIDGE
+ .byte MAPSEC_THREE_ISLE_PORT
+ .byte MAPSEC_MT_EMBER
+ .byte MAPSEC_BERRY_FOREST
+ .byte MAPSEC_THREE_ISLE_PATH
+ .byte MAPSEC_EMBER_SPA
+ .byte MAPSEC_NONE
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x92, 0x93, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xae, 0xb1, 0xb2, 0xb5, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte MAPSEC_FOUR_ISLAND
+ .byte MAPSEC_FIVE_ISLAND
+ .byte MAPSEC_SEVII_ISLE_6
+ .byte MAPSEC_SEVII_ISLE_7
+ .byte MAPSEC_SEVII_ISLE_8
+ .byte MAPSEC_SEVII_ISLE_9
+ .byte MAPSEC_RESORT_GORGEOUS
+ .byte MAPSEC_WATER_LABYRINTH
+ .byte MAPSEC_FIVE_ISLE_MEADOW
+ .byte MAPSEC_MEMORIAL_PILLAR
+ .byte MAPSEC_NAVEL_ROCK
+ .byte MAPSEC_ICEFALL_CAVE
+ .byte MAPSEC_ROCKET_WAREHOUSE
+ .byte MAPSEC_LOST_CAVE
+ .byte MAPSEC_NONE
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x94, 0x95, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xb3, 0xb4, 0xb6, 0xb7, 0xb8, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc5, 0x00, 0x00
+ .byte MAPSEC_SEVEN_ISLAND
+ .byte MAPSEC_SIX_ISLAND
+ .byte MAPSEC_OUTCAST_ISLAND
+ .byte MAPSEC_GREEN_PATH
+ .byte MAPSEC_WATER_PATH
+ .byte MAPSEC_RUIN_VALLEY
+ .byte MAPSEC_TRAINER_TOWER
+ .byte MAPSEC_CANYON_ENTRANCE
+ .byte MAPSEC_SEVAULT_CANYON
+ .byte MAPSEC_TANOBY_RUINS
+ .byte MAPSEC_SEVII_ISLE_22
+ .byte MAPSEC_SEVII_ISLE_23
+ .byte MAPSEC_SEVII_ISLE_24
+ .byte MAPSEC_TRAINER_TOWER_2
+ .byte MAPSEC_DOTTED_HOLE
+ .byte MAPSEC_PATTERN_BUSH
+ .byte MAPSEC_ALTERING_CAVE
+ .byte MAPSEC_TANOBY_CHAMBERS
+ .byte MAPSEC_TANOBY_KEY
+ .byte MAPSEC_BIRTH_ISLAND
+ .byte MAPSEC_MONEAN_CHAMBER
+ .byte MAPSEC_LIPTOO_CHAMBER
+ .byte MAPSEC_WEEPTH_CHAMBER
+ .byte MAPSEC_DILFORD_CHAMBER
+ .byte MAPSEC_SCUFIB_CHAMBER
+ .byte MAPSEC_RIXY_CHAMBER
+ .byte MAPSEC_VIAPOIS_CHAMBER
+ .byte MAPSEC_NONE
+ .byte 0x00, 0x00
.align 2
gUnknown_83F1B00:: @ 83F1B00
- .byte 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
+ .byte 1, 1, 1, 0
+ .byte 0, 0, 0, 0
+ .byte 0, 0, 0, 1
gUnknown_83F1B0C:: @ 83F1B0C
.2byte 0x0018, 0x0010, 0x0090, 0x0020
-
-gUnknown_83F1B14:: @ 83F1B14
.2byte 0x0018, 0x0020, 0x0090, 0x0030
-
-gUnknown_83F1B1C:: @ 83F1B1C
.2byte 0x0000, 0x0000, 0x0000, 0x0000
gUnknown_83F1B24:: @ 83F1B24
diff --git a/data/text/map_section_names.inc b/data/text/map_section_names.inc
deleted file mode 100644
index 070375510..000000000
--- a/data/text/map_section_names.inc
+++ /dev/null
@@ -1,327 +0,0 @@
-gMapSecName_PalletTown::
- .string "PALLET TOWN$"
-
-gMapSecName_ViridianCity::
- .string "VIRIDIAN CITY$"
-
-gMapSecName_PewterCity::
- .string "PEWTER CITY$"
-
-gMapSecName_CeruleanCity::
- .string "CERULEAN CITY$"
-
-gMapSecName_LavenderTown::
- .string "LAVENDER TOWN$"
-
-gMapSecName_VermilionCity::
- .string "VERMILION CITY$"
-
-gMapSecName_CeladonCity::
- .string "CELADON CITY$"
-
-gMapSecName_FuchsiaCity::
- .string "FUCHSIA CITY$"
-
-gMapSecName_CinnabarIsland::
- .string "CINNABAR ISLAND$"
-
-gMapSecName_IndigoPlateau::
- .string "INDIGO PLATEAU$"
-
-gMapSecName_SaffronCity::
- .string "SAFFRON CITY$"
-
-gMapSecName_Route4::
- .string "ROUTE 4$"
-
-gMapSecName_Route10::
- .string "ROUTE 10$"
-
-gMapSecName_Route1::
- .string "ROUTE 1$"
-
-gMapSecName_Route2::
- .string "ROUTE 2$"
-
-gMapSecName_Route3::
- .string "ROUTE 3$"
-
-gMapSecName_Route4_2::
- .string "ROUTE 4$"
-
-gMapSecName_Route5::
- .string "ROUTE 5$"
-
-gMapSecName_Route6::
- .string "ROUTE 6$"
-
-gMapSecName_Route7::
- .string "ROUTE 7$"
-
-gMapSecName_Route8::
- .string "ROUTE 8$"
-
-gMapSecName_Route9::
- .string "ROUTE 9$"
-
-gMapSecName_Route10_2::
- .string "ROUTE 10$"
-
-gMapSecName_Route11::
- .string "ROUTE 11$"
-
-gMapSecName_Route12::
- .string "ROUTE 12$"
-
-gMapSecName_Route13::
- .string "ROUTE 13$"
-
-gMapSecName_Route14::
- .string "ROUTE 14$"
-
-gMapSecName_Route15::
- .string "ROUTE 15$"
-
-gMapSecName_Route16::
- .string "ROUTE 16$"
-
-gMapSecName_Route17::
- .string "ROUTE 17$"
-
-gMapSecName_Route18::
- .string "ROUTE 18$"
-
-gMapSecName_Route19::
- .string "ROUTE 19$"
-
-gMapSecName_Route20::
- .string "ROUTE 20$"
-
-gMapSecName_Route21::
- .string "ROUTE 21$"
-
-gMapSecName_Route22::
- .string "ROUTE 22$"
-
-gMapSecName_Route23::
- .string "ROUTE 23$"
-
-gMapSecName_Route24::
- .string "ROUTE 24$"
-
-gMapSecName_Route25::
- .string "ROUTE 25$"
-
-gMapSecName_ViridianForest::
- .string "VIRIDIAN FOREST$"
-
-gMapSecName_MtMoon::
- .string "MT. MOON$"
-
-gMapSecName_SSAnne::
- .string "S.S. ANNE$"
-
-gMapSecName_UndergroundPath::
- .string "UNDERGROUND PATH$"
-
-gMapSecName_UndergroundPath_2::
- .string "UNDERGROUND PATH$"
-
-gMapSecName_DiglettsCave::
- .string "DIGLETT'S CAVE$"
-
-gMapSecName_VictoryRoad::
- .string "VICTORY ROAD$"
-
-gMapSecName_RocketHideout::
- .string "ROCKET HIDEOUT$"
-
-gMapSecName_SilphCo::
- .string "SILPH CO.$"
-
-gMapSecName_PokemonMansion::
- .string "POKéMON MANSION$"
-
-gMapSecName_SafariZone::
- .string "SAFARI ZONE$"
-
-gMapSecName_PokemonLeague::
- .string "POKéMON LEAGUE$"
-
-gMapSecName_RockTunnel::
- .string "ROCK TUNNEL$"
-
-gMapSecName_SeafoamIslands::
- .string "SEAFOAM ISLANDS$"
-
-gMapSecName_PokemonTower::
- .string "POKéMON TOWER$"
-
-gMapSecName_CeruleanCave::
- .string "CERULEAN CAVE$"
-
-gMapSecName_PowerPlant::
- .string "POWER PLANT$"
-
-gMapSecName_OneIsland::
- .string "ONE ISLAND$"
-
-gMapSecName_TwoIsland::
- .string "TWO ISLAND$"
-
-gMapSecName_ThreeIsland::
- .string "THREE ISLAND$"
-
-gMapSecName_FourIsland::
- .string "FOUR ISLAND$"
-
-gMapSecName_FiveIsland::
- .string "FIVE ISLAND$"
-
-gMapSecName_SevenIsland::
- .string "SEVEN ISLAND$"
-
-gMapSecName_SixIsland::
- .string "SIX ISLAND$"
-
-gMapSecName_KindleRoad::
- .string "KINDLE ROAD$"
-
-gMapSecName_TreasureBeach::
- .string "TREASURE BEACH$"
-
-gMapSecName_CapeBrink::
- .string "CAPE BRINK$"
-
-gMapSecName_BondBridge::
- .string "BOND BRIDGE$"
-
-gMapSecName_ThreeIslePort::
- .string "THREE ISLE PORT$"
-
-gMapSecName_SeviiIsle6::
- .string "SEVII ISLE 6$"
-
-gMapSecName_SeviiIsle7::
- .string "SEVII ISLE 7$"
-
-gMapSecName_SeviiIsle8::
- .string "SEVII ISLE 8$"
-
-gMapSecName_SeviiIsle9::
- .string "SEVII ISLE 9$"
-
-gMapSecName_ResortGorgeous::
- .string "RESORT GORGEOUS$"
-
-gMapSecName_WaterLabyrinth::
- .string "WATER LABYRINTH$"
-
-gMapSecName_FiveIsleMeadow::
- .string "FIVE ISLE MEADOW$"
-
-gMapSecName_MemorialPillar::
- .string "MEMORIAL PILLAR$"
-
-gMapSecName_OutcastIsland::
- .string "OUTCAST ISLAND$"
-
-gMapSecName_GreenPath::
- .string "GREEN PATH$"
-
-gMapSecName_WaterPath::
- .string "WATER PATH$"
-
-gMapSecName_RuinValley::
- .string "RUIN VALLEY$"
-
-gMapSecName_TrainerTower::
- .string "TRAINER TOWER$"
-
-gMapSecName_CanyonEntrance::
- .string "CANYON ENTRANCE$"
-
-gMapSecName_SevaultCanyon::
- .string "SEVAULT CANYON$"
-
-gMapSecName_TanobyRuins::
- .string "TANOBY RUINS$"
-
-gMapSecName_SeviiIsle22::
- .string "SEVII ISLE 22$"
-
-gMapSecName_SeviiIsle23::
- .string "SEVII ISLE 23$"
-
-gMapSecName_SeviiIsle24::
- .string "SEVII ISLE 24$"
-
-gMapSecName_NavelRock::
- .string "NAVEL ROCK$"
-
-gMapSecName_MtEmber::
- .string "MT. EMBER$"
-
-gMapSecName_BerryForest::
- .string "BERRY FOREST$"
-
-gMapSecName_IcefallCave::
- .string "ICEFALL CAVE$"
-
-gMapSecName_RocketWarehouse::
- .string "ROCKET WAREHOUSE$"
-
-gMapSecName_TrainerTower_2::
- .string "TRAINER TOWER$"
-
-gMapSecName_DottedHole::
- .string "DOTTED HOLE$"
-
-gMapSecName_LostCave::
- .string "LOST CAVE$"
-
-gMapSecName_PatternBush::
- .string "PATTERN BUSH$"
-
-gMapSecName_AlteringCave::
- .string "ALTERING CAVE$"
-
-gMapSecName_TanobyChambers::
- .string "TANOBY CHAMBERS$"
-
-gMapSecName_ThreeIslePath::
- .string "THREE ISLE PATH$"
-
-gMapSecName_TanobyKey::
- .string "TANOBY KEY$"
-
-gMapSecName_BirthIsland::
- .string "BIRTH ISLAND$"
-
-gMapSecName_MoneanChamber::
- .string "MONEAN CHAMBER$"
-
-gMapSecName_LiptooChamber::
- .string "LIPTOO CHAMBER$"
-
-gMapSecName_WeepthChamber::
- .string "WEEPTH CHAMBER$"
-
-gMapSecName_DilfordChamber::
- .string "DILFORD CHAMBER$"
-
-gMapSecName_ScufibChamber::
- .string "SCUFIB CHAMBER$"
-
-gMapSecName_RixyChamber::
- .string "RIXY CHAMBER$"
-
-gMapSecName_ViapoisChamber::
- .string "VIAPOIS CHAMBER$"
-
-gMapSecName_EmberSpa::
- .string "EMBER SPA$"
-
-gMapSecName_CeladonDept::
- .string "CELADON DEPT.$"
-
diff --git a/include/constants/region_map.h b/include/constants/region_map.h
index 0957a72ee..bd087bd60 100644
--- a/include/constants/region_map.h
+++ b/include/constants/region_map.h
@@ -89,6 +89,9 @@
#define MAPSEC_SKY_PILLAR 0x55
#define MAPSEC_SECRET_BASE 0x56
#define MAPSEC_DYNAMIC 0x57
+
+#define MAPSECS_KANTO 0x58
+
#define MAPSEC_PALLET_TOWN 0x58
#define MAPSEC_VIRIDIAN_CITY 0x59
#define MAPSEC_PEWTER_CITY 0x5A
@@ -144,6 +147,9 @@
#define MAPSEC_POKEMON_TOWER 0x8C
#define MAPSEC_CERULEAN_CAVE 0x8D
#define MAPSEC_POWER_PLANT 0x8E
+
+#define MAPSECS_SEVII_123 0x8F
+
#define MAPSEC_ONE_ISLAND 0x8F
#define MAPSEC_TWO_ISLAND 0x90
#define MAPSEC_THREE_ISLAND 0x91
diff --git a/include/map_preview_screen.h b/include/map_preview_screen.h
index 5ab5584e5..c4e2fa70c 100644
--- a/include/map_preview_screen.h
+++ b/include/map_preview_screen.h
@@ -49,5 +49,6 @@ void sub_80F85BC(u16 a0);
u16 sub_80F856C(u8 id);
bool8 sub_80F8110(u8 mapsec, bool8 forceFirstTime);
bool32 sub_80F83B0(void);
+const struct MapPreviewScreen * sub_80F8544(u8 mapsec);
#endif //GUARD_MAP_PREVIEW_SCREEN_H
diff --git a/include/strings.h b/include/strings.h
index 90fd49b52..cf26e63fd 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1003,4 +1003,15 @@ extern const u8 gText_UnionRoomTradesBattles[];
extern const u8 gText_LinkBattles[];
extern const u8 gText_LinkCableBattles[];
+// region_map
+extern const u8 gUnknown_8418EB5[];
+extern const u8 gUnknown_8418E8B[];
+extern const u8 gUnknown_8418E8D[];
+extern const u8 gUnknown_8418E95[];
+extern const u8 gUnknown_8418E9E[];
+extern const u8 gUnknown_8418EA7[];
+extern const u8 gUnknown_8418EB0[];
+extern const u8 gUnknown_8418EBC[];
+extern const u8 gUnknown_8418EC3[];
+
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index e3ac7b14c..19fdde8dc 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -182,6 +182,7 @@ SECTIONS {
src/menu_helpers.o(.text);
asm/script_pokemon_util_80BF8FC.o(.text);
src/heal_location.o(.text);
+ src/region_map.o(.text);
asm/region_map.o(.text);
src/battle_ai_script_commands.o(.text);
src/fldeff_rocksmash.o(.text);
@@ -479,6 +480,7 @@ SECTIONS {
src/mon_markings.o(.rodata);
src/mail.o(.rodata);
src/heal_location.o(.rodata);
+ src/region_map.o(.rodata);
data/region_map.o(.rodata);
src/battle_ai_script_commands.o(.rodata);
data/fldeff_flash.o(.rodata);
diff --git a/src/data/text/map_section_names.h b/src/data/text/map_section_names.h
new file mode 100644
index 000000000..5a18fa7c9
--- /dev/null
+++ b/src/data/text/map_section_names.h
@@ -0,0 +1,109 @@
+const u8 gMapSecName_PalletTown[] = _("PALLET TOWN");
+const u8 gMapSecName_ViridianCity[] = _("VIRIDIAN CITY");
+const u8 gMapSecName_PewterCity[] = _("PEWTER CITY");
+const u8 gMapSecName_CeruleanCity[] = _("CERULEAN CITY");
+const u8 gMapSecName_LavenderTown[] = _("LAVENDER TOWN");
+const u8 gMapSecName_VermilionCity[] = _("VERMILION CITY");
+const u8 gMapSecName_CeladonCity[] = _("CELADON CITY");
+const u8 gMapSecName_FuchsiaCity[] = _("FUCHSIA CITY");
+const u8 gMapSecName_CinnabarIsland[] = _("CINNABAR ISLAND");
+const u8 gMapSecName_IndigoPlateau[] = _("INDIGO PLATEAU");
+const u8 gMapSecName_SaffronCity[] = _("SAFFRON CITY");
+const u8 gMapSecName_Route4[] = _("ROUTE 4");
+const u8 gMapSecName_Route10[] = _("ROUTE 10");
+const u8 gMapSecName_Route1[] = _("ROUTE 1");
+const u8 gMapSecName_Route2[] = _("ROUTE 2");
+const u8 gMapSecName_Route3[] = _("ROUTE 3");
+const u8 gMapSecName_Route4_2[] = _("ROUTE 4");
+const u8 gMapSecName_Route5[] = _("ROUTE 5");
+const u8 gMapSecName_Route6[] = _("ROUTE 6");
+const u8 gMapSecName_Route7[] = _("ROUTE 7");
+const u8 gMapSecName_Route8[] = _("ROUTE 8");
+const u8 gMapSecName_Route9[] = _("ROUTE 9");
+const u8 gMapSecName_Route10_2[] = _("ROUTE 10");
+const u8 gMapSecName_Route11[] = _("ROUTE 11");
+const u8 gMapSecName_Route12[] = _("ROUTE 12");
+const u8 gMapSecName_Route13[] = _("ROUTE 13");
+const u8 gMapSecName_Route14[] = _("ROUTE 14");
+const u8 gMapSecName_Route15[] = _("ROUTE 15");
+const u8 gMapSecName_Route16[] = _("ROUTE 16");
+const u8 gMapSecName_Route17[] = _("ROUTE 17");
+const u8 gMapSecName_Route18[] = _("ROUTE 18");
+const u8 gMapSecName_Route19[] = _("ROUTE 19");
+const u8 gMapSecName_Route20[] = _("ROUTE 20");
+const u8 gMapSecName_Route21[] = _("ROUTE 21");
+const u8 gMapSecName_Route22[] = _("ROUTE 22");
+const u8 gMapSecName_Route23[] = _("ROUTE 23");
+const u8 gMapSecName_Route24[] = _("ROUTE 24");
+const u8 gMapSecName_Route25[] = _("ROUTE 25");
+const u8 gMapSecName_ViridianForest[] = _("VIRIDIAN FOREST");
+const u8 gMapSecName_MtMoon[] = _("MT. MOON");
+const u8 gMapSecName_SSAnne[] = _("S.S. ANNE");
+const u8 gMapSecName_UndergroundPath[] = _("UNDERGROUND PATH");
+const u8 gMapSecName_UndergroundPath_2[] = _("UNDERGROUND PATH");
+const u8 gMapSecName_DiglettsCave[] = _("DIGLETT'S CAVE");
+const u8 gMapSecName_VictoryRoad[] = _("VICTORY ROAD");
+const u8 gMapSecName_RocketHideout[] = _("ROCKET HIDEOUT");
+const u8 gMapSecName_SilphCo[] = _("SILPH CO.");
+const u8 gMapSecName_PokemonMansion[] = _("POKéMON MANSION");
+const u8 gMapSecName_SafariZone[] = _("SAFARI ZONE");
+const u8 gMapSecName_PokemonLeague[] = _("POKéMON LEAGUE");
+const u8 gMapSecName_RockTunnel[] = _("ROCK TUNNEL");
+const u8 gMapSecName_SeafoamIslands[] = _("SEAFOAM ISLANDS");
+const u8 gMapSecName_PokemonTower[] = _("POKéMON TOWER");
+const u8 gMapSecName_CeruleanCave[] = _("CERULEAN CAVE");
+const u8 gMapSecName_PowerPlant[] = _("POWER PLANT");
+const u8 gMapSecName_OneIsland[] = _("ONE ISLAND");
+const u8 gMapSecName_TwoIsland[] = _("TWO ISLAND");
+const u8 gMapSecName_ThreeIsland[] = _("THREE ISLAND");
+const u8 gMapSecName_FourIsland[] = _("FOUR ISLAND");
+const u8 gMapSecName_FiveIsland[] = _("FIVE ISLAND");
+const u8 gMapSecName_SevenIsland[] = _("SEVEN ISLAND");
+const u8 gMapSecName_SixIsland[] = _("SIX ISLAND");
+const u8 gMapSecName_KindleRoad[] = _("KINDLE ROAD");
+const u8 gMapSecName_TreasureBeach[] = _("TREASURE BEACH");
+const u8 gMapSecName_CapeBrink[] = _("CAPE BRINK");
+const u8 gMapSecName_BondBridge[] = _("BOND BRIDGE");
+const u8 gMapSecName_ThreeIslePort[] = _("THREE ISLE PORT");
+const u8 gMapSecName_SeviiIsle6[] = _("SEVII ISLE 6");
+const u8 gMapSecName_SeviiIsle7[] = _("SEVII ISLE 7");
+const u8 gMapSecName_SeviiIsle8[] = _("SEVII ISLE 8");
+const u8 gMapSecName_SeviiIsle9[] = _("SEVII ISLE 9");
+const u8 gMapSecName_ResortGorgeous[] = _("RESORT GORGEOUS");
+const u8 gMapSecName_WaterLabyrinth[] = _("WATER LABYRINTH");
+const u8 gMapSecName_FiveIsleMeadow[] = _("FIVE ISLE MEADOW");
+const u8 gMapSecName_MemorialPillar[] = _("MEMORIAL PILLAR");
+const u8 gMapSecName_OutcastIsland[] = _("OUTCAST ISLAND");
+const u8 gMapSecName_GreenPath[] = _("GREEN PATH");
+const u8 gMapSecName_WaterPath[] = _("WATER PATH");
+const u8 gMapSecName_RuinValley[] = _("RUIN VALLEY");
+const u8 gMapSecName_TrainerTower[] = _("TRAINER TOWER");
+const u8 gMapSecName_CanyonEntrance[] = _("CANYON ENTRANCE");
+const u8 gMapSecName_SevaultCanyon[] = _("SEVAULT CANYON");
+const u8 gMapSecName_TanobyRuins[] = _("TANOBY RUINS");
+const u8 gMapSecName_SeviiIsle22[] = _("SEVII ISLE 22");
+const u8 gMapSecName_SeviiIsle23[] = _("SEVII ISLE 23");
+const u8 gMapSecName_SeviiIsle24[] = _("SEVII ISLE 24");
+const u8 gMapSecName_NavelRock[] = _("NAVEL ROCK");
+const u8 gMapSecName_MtEmber[] = _("MT. EMBER");
+const u8 gMapSecName_BerryForest[] = _("BERRY FOREST");
+const u8 gMapSecName_IcefallCave[] = _("ICEFALL CAVE");
+const u8 gMapSecName_RocketWarehouse[] = _("ROCKET WAREHOUSE");
+const u8 gMapSecName_TrainerTower_2[] = _("TRAINER TOWER");
+const u8 gMapSecName_DottedHole[] = _("DOTTED HOLE");
+const u8 gMapSecName_LostCave[] = _("LOST CAVE");
+const u8 gMapSecName_PatternBush[] = _("PATTERN BUSH");
+const u8 gMapSecName_AlteringCave[] = _("ALTERING CAVE");
+const u8 gMapSecName_TanobyChambers[] = _("TANOBY CHAMBERS");
+const u8 gMapSecName_ThreeIslePath[] = _("THREE ISLE PATH");
+const u8 gMapSecName_TanobyKey[] = _("TANOBY KEY");
+const u8 gMapSecName_BirthIsland[] = _("BIRTH ISLAND");
+const u8 gMapSecName_MoneanChamber[] = _("MONEAN CHAMBER");
+const u8 gMapSecName_LiptooChamber[] = _("LIPTOO CHAMBER");
+const u8 gMapSecName_WeepthChamber[] = _("WEEPTH CHAMBER");
+const u8 gMapSecName_DilfordChamber[] = _("DILFORD CHAMBER");
+const u8 gMapSecName_ScufibChamber[] = _("SCUFIB CHAMBER");
+const u8 gMapSecName_RixyChamber[] = _("RIXY CHAMBER");
+const u8 gMapSecName_ViapoisChamber[] = _("VIAPOIS CHAMBER");
+const u8 gMapSecName_EmberSpa[] = _("EMBER SPA");
+const u8 gMapSecName_CeladonDept[] = _("CELADON DEPT.");
diff --git a/src/region_map.c b/src/region_map.c
new file mode 100644
index 000000000..8ea4c9bb6
--- /dev/null
+++ b/src/region_map.c
@@ -0,0 +1,2225 @@
+#include "global.h"
+#include "palette.h"
+#include "gpu_regs.h"
+#include "scanline_effect.h"
+#include "task.h"
+#include "m4a.h"
+#include "malloc.h"
+#include "overworld.h"
+#include "event_data.h"
+#include "region_map.h"
+#include "window.h"
+#include "sound.h"
+#include "new_menu_helpers.h"
+#include "menu.h"
+#include "string_util.h"
+#include "strings.h"
+#include "map_preview_screen.h"
+#include "constants/flags.h"
+#include "constants/songs.h"
+#include "constants/region_map.h"
+
+#define FREE_IF_NOT_NULL(ptr) ({ \
+ if (ptr) { \
+ FREE_AND_SET_NULL(ptr); \
+ } \
+})
+
+struct UnkStruct_20399D4
+{
+ u8 field_0000[19];
+ u8 field_0013[19];
+ u16 field_0026[5][600];
+ // Inefficiency: these should be u8 or have half the elements each
+ u16 field_1796[3][BG_SCREEN_SIZE];
+ u8 field_4796;
+ u8 field_4797[4];
+ u8 field_479B;
+ u8 field_479C;
+ u8 filler_479D[3];
+ u8 field_47A0;
+ u8 filler_47A1[3];
+ u8 field_47A4;
+ u8 filler_47A5[3];
+ u8 field_47A8;
+ u16 field_47AA;
+ u16 field_47AC;
+ u16 field_47AE;
+ u16 field_47B0;
+ u8 filler_47B2[6];
+ TaskFunc field_47B8;
+ MainCallback field_47BC;
+}; // size = 0x47C0
+
+struct UnkStruct_20399D8_14B0
+{
+ u8 field_000[0x400];
+ struct Sprite * field_400;
+ u16 field_404;
+ u16 field_406;
+ s16 field_408;
+};
+
+struct UnkStruct_20399D8
+{
+ u8 field_0000[0x1000];
+ u16 field_1000[0x258];
+ struct UnkStruct_20399D8_14B0 field_14B0[2];
+ u8 field_1CC8;
+ u8 field_1CC9;
+ u8 field_1CCA;
+ u8 field_1CCB;
+ u8 field_1CCC;
+ u8 field_1CCD;
+ u16 field_1CCE;
+ TaskFunc field_1CD0;
+ u16 field_1CD4[4];
+ u16 field_1CDC;
+}; // size = 0x1CE0
+
+struct UnkStruct_80C4CF0
+{
+ u16 v0;
+ u16 v2;
+ u16 v4;
+ u16 v6;
+};
+
+struct UnkStruct_83F1B3C
+{
+ u16 field_0;
+ const u8 *field_4;
+ const u8 *field_8;
+};
+
+struct UnkStruct_20399DC
+{
+ u16 field_0000[0x1C20];
+ u16 field_3840[0x280];
+ const struct MapPreviewScreen * field_3D40;
+ TaskFunc field_3D44;
+ u8 field_3D48;
+ u8 field_3D49;
+ u8 field_3D4A;
+ u8 field_3D4B;
+ u8 field_3D4C;
+ u16 field_3D4E[0x30];
+ u8 filler_3DAE[0x60];
+ u16 field_3E0E;
+ u16 field_3E10;
+ u16 field_3E12;
+ u16 field_3E14;
+ u16 field_3E16;
+ u16 field_3E18;
+ u16 field_3E1A;
+ u16 field_3E1C;
+ u16 field_3E1E;
+ u16 field_3E20;
+ u16 field_3E22;
+ u16 field_3E24;
+}; // size = 0x3E28
+
+struct UnkStruct_20399E0_000
+{
+ u16 field_000[0x200];
+ struct Sprite * field_400;
+ s16 field_404;
+ s16 field_406;
+ u16 field_408;
+ u16 field_40A;
+};
+
+struct UnkStruct_20399E0
+{
+ struct UnkStruct_20399E0_000 * field_000[6];
+ u16 field_018[0x400];
+ u16 field_818[0x258];
+ TaskFunc field_CC8;
+ u8 field_CCC;
+ u8 field_CCD;
+ u8 field_CCE;
+ u8 field_CCF;
+ u8 field_CD0;
+}; // size = 0xCD4
+
+struct UnkStruct_20399E4
+{
+ s16 field_000;
+ s16 field_002;
+ u16 field_004;
+ u16 field_006;
+ s16 field_008;
+ s16 field_00A;
+ u16 field_00C;
+ u8 field_00E;
+ u8 (*field_010)(void);
+ u16 field_014;
+ u16 field_016;
+ u16 field_018;
+ struct Sprite * field_01C;
+ u16 field_020;
+ u16 field_022;
+ u16 field_024[0x080];
+};
+
+EWRAM_DATA struct UnkStruct_20399D4 * gUnknown_20399D4 = NULL;
+EWRAM_DATA struct UnkStruct_20399D8 * gUnknown_20399D8 = NULL;
+EWRAM_DATA struct UnkStruct_20399DC * gUnknown_20399DC = NULL;
+EWRAM_DATA struct UnkStruct_20399E0 * gUnknown_20399E0 = NULL;
+EWRAM_DATA struct UnkStruct_20399E4 * gUnknown_20399E4 = NULL;
+EWRAM_DATA void * gUnknown_20399E8 = NULL;
+EWRAM_DATA void * gUnknown_20399EC = NULL;
+EWRAM_DATA void * gUnknown_20399F0[3] = {};
+EWRAM_DATA void * gUnknown_20399FC = NULL;
+
+static void sub_80BFFD0(void);
+void sub_80C0100(void);
+bool8 sub_80C0238(void);
+void sub_80C03E8(void);
+void sub_80C04E4(u8 taskId);
+void sub_80C07F8(u8 taskId);
+void sub_80C0820(u8 taskId);
+void sub_80C08B4(void);
+void sub_80C08E0(void);
+void sub_80C08F4(void);
+void sub_80C0904(void);
+void sub_80C0A2C(void);
+void sub_80C0A6C(void);
+void sub_80C0A88(u8 a0);
+void sub_80C0AB8(void);
+void sub_80C0B18(void);
+void sub_80C0B9C(void);
+void sub_80C0BB0(void);
+void sub_80C0CC8(u8 bg, u16 *map);
+bool8 sub_80C0E04(u8 a0);
+u8 sub_80C0E20(void);
+void sub_80C0E70(u8 a0, u8 taskId, TaskFunc taskFunc);
+void sub_80C1098(u8 taskId);
+void sub_80C1280(u8 taskId);
+bool8 sub_80C12EC(void);
+void sub_80C1324(u8 bg, u16 *map);
+void sub_80C1390(void);
+bool8 sub_80C144C(void);
+bool8 sub_80C1478(void);
+bool8 sub_80C16D0(void);
+void sub_80C1754(u8 a0, u16 a1, u16 a2);
+void sub_80C176C(u8 a0, u16 a1, u16 a2);
+void sub_80C1880(void);
+void sub_80C195C(u8 a0, u8 taskId, TaskFunc taskFunc);
+void sub_80C1A94(u8 taskId);
+void sub_80C1BE0(u8 taskId);
+void sub_80C1E14(u8 taskId);
+void sub_80C1E94(void);
+void sub_80C1E78(u8 bgId, const u16 * tilemap);
+bool8 sub_80C1F80(bool8 a0);
+void sub_80C2208(u8 taskId, TaskFunc taskFunc);
+void sub_80C24BC(void);
+void sub_80C267C(u8 taskId);
+void sub_80C25BC(void);
+void sub_80C2604(void);
+bool8 sub_80C29A4(void);
+void sub_80C2B48(void);
+void sub_80C2C1C(u8 taskId);
+void sub_80C2C7C(u8 taskId);
+bool8 sub_80C2E1C(void);
+void sub_80C3008(u16 a0, u16 a1);
+void sub_80C309C(void);
+void sub_80C3154(bool8 a0);
+void sub_80C3178(void);
+void sub_80C3188(void);
+u8 sub_80C31C0(void);
+u8 sub_80C3348(void);
+u8 sub_80C3400(void);
+void sub_80C3418(void);
+u8 sub_80C3878(u8 a0);
+u16 sub_80C3520(void);
+u8 sub_80C35DC(u8 a0);
+u8 sub_80C3AC8(u8 a0);
+void sub_80C3D40(void);
+u8 sub_80C4164(u8 a0, u8 a1, s16 a2, s16 a3);
+void sub_80C41D8(u16 a0, u16 a1);
+void sub_80C4324(u8 a0);
+void sub_80C4398(u8 a0, u8 taskId, TaskFunc taskFunc);
+void sub_80C4348(void);
+void sub_80C48BC(u8 a0, u8 a1, u8 a2);
+void sub_80C4960(u8 a0, u8 a1, u8 a2);
+void sub_80C4A04(void);
+void sub_80C4B30(u8 a0);
+void sub_80C4AAC(u8 a0);
+void sub_80C4BE4(void);
+void sub_80C4C2C(u8 a0, u16 a1, u16 a2);
+void sub_80C4C48(u16 a0);
+void sub_80C4C5C(u16 a0);
+void sub_80C4C74(u16 a0, u16 a1);
+void sub_80C4C88(u16 a0);
+void sub_80C4C9C(u8 a0, u8 a1);
+void sub_80C4CF0(u8 a0, const struct UnkStruct_80C4CF0 *a1);
+void sub_80C4D30(void);
+void sub_80C4E18(const u8 *str);
+void sub_80C4E74(const u8 *str);
+void sub_80C4ED0(bool8 a0);
+void sub_80C4F08(u8 taskId);
+u16 sub_80C3508(void);
+u16 sub_80C3514(void);
+u16 sub_80C3580(void);
+
+#include "data/text/map_section_names.h"
+extern const u16 gUnknown_83EF23C[];
+extern const u16 gUnknown_83EF25C[];
+extern const u16 gUnknown_83EF2DC[];
+extern const u16 gUnknown_83EF384[];
+extern const u16 gUnknown_83EF3A4[];
+extern const u32 gUnknown_83EF3C4[];
+extern const u32 gUnknown_83EF450[];
+extern const u32 gUnknown_83EF4E0[];
+extern const u32 gUnknown_83EF61C[];
+extern const u32 gUnknown_83F0330[];
+extern const u32 gUnknown_83F0E0C[];
+extern const u32 gUnknown_83F0580[];
+extern const u32 gUnknown_83F089C[];
+extern const u32 gUnknown_83F0AFC[];
+extern const u32 gUnknown_83F0C0C[];
+extern const u32 gUnknown_83F0CF0[];
+extern const u32 gUnknown_83F0F1C[];
+extern const u32 gUnknown_83F1084[];
+extern const u32 gUnknown_83F1190[];
+extern const u32 gUnknown_83F12CC[];
+extern const u32 gUnknown_83F13EC[];
+extern const u32 gUnknown_83F1550[];
+extern const u32 gUnknown_83F1640[];
+extern const u32 gUnknown_83F1738[];
+extern const u32 gUnknown_83F1804[];
+extern const u32 gUnknown_83F1978[];
+extern const u32 gUnknown_83F19A0[];
+extern const struct BgTemplate gUnknown_83F1A50[4];
+extern const struct WindowTemplate gUnknown_83F1A60[];
+extern const u8 gUnknown_83F1A90[];
+extern const u8 gUnknown_83F1A94[];
+extern const u8 *const gUnknown_83F1A9C[];
+extern const u8 sSeviiMapsecs[3][30];
+extern const u8 gUnknown_83F1B00[3][4];
+extern const struct UnkStruct_80C4CF0 gUnknown_83F1B0C[3];
+extern const struct OamData gUnknown_83F1B24;
+extern const union AnimCmd *const gUnknown_83F1B38[];
+extern const struct UnkStruct_83F1B3C gUnknown_83F1B3C[];
+extern const struct OamData gUnknown_83F1C20;
+extern const union AnimCmd *const gUnknown_83F1C30[];
+extern const struct UnkStruct_80C4CF0 gUnknown_83F1C34;
+extern const struct OamData gUnknown_83F1C3C;
+extern const union AnimCmd *const gUnknown_83F1C50[];
+extern const u8 *const gUnknown_83F1CAC[];
+
+static void RegionMap_DarkenPalette(u16 *pal, u16 size, u16 tint)
+{
+ int i;
+ int r, g, b;
+
+ for (i = 0; i < size; i++)
+ {
+ r = (*pal) & 0x1F;
+ g = ((*pal) >> 5) & 0x1F;
+ b = ((*pal) >> 10) & 0x1F;
+
+ r = (((r << 8) / 100) * tint) >> 8;
+ g = (((g << 8) / 100) * tint) >> 8;
+ b = (((b << 8) / 100) * tint) >> 8;
+
+ *pal = RGB2(r, g, b);
+ pal++;
+ }
+}
+
+void sub_80BFEA0(void)
+{
+ u16 pal[16];
+ CpuCopy16(&gUnknown_83EF2DC[0x20], pal, sizeof(pal));
+ RegionMap_DarkenPalette(pal, NELEMS(pal), 95);
+ LoadPalette(pal, 0x20, 0x20);
+ LoadPalette(&gUnknown_83EF2DC[0x2F], 0x2F, sizeof(u16));
+}
+
+void sub_80BFEDC(u8 kind)
+{
+ gUnknown_20399D4 = AllocZeroed(sizeof(struct UnkStruct_20399D4));
+ if (gUnknown_20399D4 == NULL)
+ {
+ SetMainCallback2(CB2_ReturnToField);
+ }
+ else
+ {
+ gUnknown_2031DE0 = TRUE;
+ gUnknown_20399D4->field_4796 = kind;
+ gUnknown_20399D4->field_47A0 = 0;
+ gUnknown_20399D4->field_47A4 = 0;
+ gUnknown_20399D4->field_47A8 = 0;
+ sub_80BFFD0();
+ SetMainCallback2(sub_80C0100);
+ }
+}
+
+void sub_80BFF50(u8 kind, MainCallback cb)
+{
+ gUnknown_20399D4 = AllocZeroed(sizeof(struct UnkStruct_20399D4));
+ if (gUnknown_20399D4 == NULL)
+ {
+ SetMainCallback2(CB2_ReturnToField);
+ }
+ else
+ {
+ gUnknown_2031DE0 = TRUE;
+ gUnknown_20399D4->field_4796 = kind;
+ gUnknown_20399D4->field_47A0 = 0;
+ gUnknown_20399D4->field_47A4 = 0;
+ gUnknown_20399D4->field_47A8 = 0;
+ gUnknown_20399D4->field_47BC = cb;
+ sub_80BFFD0();
+ SetMainCallback2(sub_80C0100);
+ }
+}
+
+static void sub_80BFFD0(void)
+{
+ u8 i;
+ u8 j;
+ u8 r7;
+
+ switch (gUnknown_20399D4->field_4796)
+ {
+ default:
+ case 0:
+ case 1:
+ gUnknown_20399D4->field_47B8 = sub_80C04E4;
+ break;
+ case 2:
+ gUnknown_20399D4->field_47B8 = sub_80C4F08;
+ break;
+ }
+ for (i = 0; i < 4; i++)
+ {
+ gUnknown_20399D4->field_4797[i] = gUnknown_83F1B00[gUnknown_20399D4->field_4796][i];
+ }
+ if (!FlagGet(FLAG_SYS_SEVII_MAP_123))
+ gUnknown_20399D4->field_4797[0] = FALSE;
+ r7 = 0;
+ j = 0;
+ if (gMapHeader.regionMapSectionId >= MAPSECS_SEVII_123)
+ {
+ while (r7 == 0)
+ {
+ for (i = 0; sSeviiMapsecs[j][i] != MAPSEC_NONE; i++)
+ {
+ if (gMapHeader.regionMapSectionId == sSeviiMapsecs[j][i])
+ {
+ r7 = j + 1;
+ break;
+ }
+ }
+ j++;
+ }
+ }
+ gUnknown_20399D4->field_479B = r7;
+ gUnknown_20399D4->field_479C = r7;
+}
+
+void sub_80C0100(void)
+{
+ switch (gUnknown_20399D4->field_47A4)
+ {
+ case 0:
+ sub_80C08E0();
+ break;
+ case 1:
+ sub_80C0904();
+ break;
+ case 2:
+ sub_80C0A6C();
+ break;
+ case 3:
+ if (!sub_80C0238())
+ return;
+ break;
+ case 4:
+ FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
+ CopyBgTilemapBufferToVram(1);
+ break;
+ case 5:
+ sub_80C0CC8(0, gUnknown_20399D4->field_0026[gUnknown_20399D4->field_479B]);
+ CopyBgTilemapBufferToVram(0);
+ if (gUnknown_20399D4->field_4796 != 0)
+ {
+ sub_80C0CC8(1, gUnknown_20399D4->field_0026[4]);
+ CopyBgTilemapBufferToVram(1);
+ }
+ break;
+ case 6:
+ sub_80C0B18();
+ PutWindowTilemap(0);
+ break;
+ case 7:
+ sub_80C0BB0();
+ PutWindowTilemap(1);
+ break;
+ case 8:
+ if (sub_80C0E04(2) == TRUE)
+ sub_80C0A88(1);
+ break;
+ default:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ sub_80C03E8();
+ sub_80C08F4();
+ break;
+ }
+ gUnknown_20399D4->field_47A4++;
+}
+
+bool8 sub_80C0238(void)
+{
+ switch (gUnknown_20399D4->field_47A8)
+ {
+ case 0:
+ LoadPalette(gUnknown_83EF23C, 0xC0, 0x20);
+ break;
+ case 1:
+ LoadPalette(gUnknown_83EF2DC, 0x00, 0xA0);
+ sub_80BFEA0();
+ if (gUnknown_20399D4->field_4796 != 0)
+ {
+ LoadPalette(&gUnknown_83EF23C[15], 0x00, 0x02);
+ LoadPalette(&gUnknown_83EF23C[15], 0x10, 0x02);
+ LoadPalette(&gUnknown_83EF23C[15], 0x20, 0x02);
+ LoadPalette(&gUnknown_83EF23C[15], 0x30, 0x02);
+ LoadPalette(&gUnknown_83EF23C[15], 0x40, 0x02);
+ }
+ break;
+ case 2:
+ ResetTempTileDataBuffers();
+ break;
+ case 3:
+ DecompressAndCopyTileDataToVram(0, gUnknown_83EF61C, 0, 0, 0);
+ if (gUnknown_20399D4->field_4796 != 0)
+ {
+ DecompressAndCopyTileDataToVram(1, gUnknown_83F1978, 0, 0, 0);
+ }
+ break;
+ case 4:
+ if (FreeTempTileDataBuffersIfPossible() == TRUE)
+ return FALSE;
+ break;
+ case 5:
+ LZ77UnCompWram(gUnknown_83F089C, gUnknown_20399D4->field_0026[0]);
+ break;
+ case 6:
+ LZ77UnCompWram(gUnknown_83F0AFC, gUnknown_20399D4->field_0026[1]);
+ break;
+ case 7:
+ LZ77UnCompWram(gUnknown_83F0C0C, gUnknown_20399D4->field_0026[2]);
+ break;
+ case 8:
+ LZ77UnCompWram(gUnknown_83F0CF0, gUnknown_20399D4->field_0026[3]);
+ break;
+ default:
+ LZ77UnCompWram(gUnknown_83F19A0, gUnknown_20399D4->field_0026[4]);
+ return TRUE;
+ }
+ gUnknown_20399D4->field_47A8++;
+ return FALSE;
+}
+
+void sub_80C03E8(void)
+{
+ CreateTask(gUnknown_20399D4->field_47B8, 0);
+ SetMainCallback2(sub_80C08B4);
+}
+
+bool32 sub_80C0410(void)
+{
+ if (sub_80C4164(sub_80C0E20(), 0, sub_80C3514(), sub_80C3508()) == 99)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+void sub_80C0450(void)
+{
+ if (sub_80C0410())
+ {
+ if ((sub_80C3AC8(0) != 1 && sub_80C3AC8(0) != 0) || (sub_80C3AC8(1) != 1 && sub_80C3AC8(1) != 0))
+ PlaySE(SE_Z_SCROLL);
+ if (sub_80C3508() == 21 && sub_80C3514() == 11 && sub_80C0E04(0) == TRUE)
+ PlaySE(SE_W255);
+ else if (sub_80C3508() == 21 && sub_80C3514() == 13)
+ PlaySE(SE_W255);
+ }
+}
+
+void sub_80C04E4(u8 taskId)
+{
+ switch (gUnknown_20399D4->field_47A0)
+ {
+ case 0:
+ sub_80C4398(sub_80C0E20(), taskId, gUnknown_20399D4->field_47B8);
+ sub_80C3008(0, 0);
+ sub_80C41D8(1, 1);
+ gUnknown_20399D4->field_47A0++;
+ break;
+ case 1:
+ if (gUnknown_20399D4->field_4797[2] == 1)
+ {
+ sub_80C2208(taskId, gUnknown_20399D4->field_47B8);
+ }
+ else
+ {
+ ShowBg(0);
+ ShowBg(3);
+ ShowBg(1);
+ sub_80C4E18(gUnknown_8418EB5);
+ sub_80C4E74(gUnknown_8418E8B);
+ sub_80C4ED0(FALSE);
+ sub_80C4324(0);
+ sub_80C3154(FALSE);
+ sub_80C48BC(sub_80C0E20(), 25, 0);
+ sub_80C4960(sub_80C0E20(), 25, 0);
+ }
+ gUnknown_20399D4->field_47A0++;
+ break;
+ case 2:
+ if (!gPaletteFade.active && !IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_80C0B18();
+ PutWindowTilemap(0);
+ sub_80C0BB0();
+ PutWindowTilemap(1);
+ gUnknown_20399D4->field_47A0++;
+ }
+ break;
+ case 3:
+ switch (sub_80C3400())
+ {
+ case 1:
+ sub_80C3178();
+ break;
+ case 2:
+ break;
+ case 3:
+ sub_80C0B18();
+ sub_80C0BB0();
+ sub_80C0B9C();
+ sub_80C0450();
+ if (sub_80C3580() != MAPSEC_NONE)
+ {
+ if (sub_80C0E04(1) == TRUE)
+ {
+ if (sub_80C3AC8(1) == 2)
+ {
+ sub_80C4E74(gUnknown_8418E8D);
+ }
+ else
+ {
+ sub_80C4E74(gUnknown_8418E8B);
+ }
+ }
+ }
+ else
+ {
+ if (sub_80C3508() == 21 && sub_80C3514() == 11 && sub_80C0E04(0) == TRUE)
+ {
+ sub_80C4E74(gUnknown_8418EA7);
+ }
+ else if (sub_80C3508() == 21 && sub_80C3514() == 13)
+ {
+ sub_80C4E74(gUnknown_8418E95);
+ }
+ else
+ {
+ sub_80C4E74(gUnknown_8418E8B);
+ }
+ }
+ break;
+ case 4:
+ if (sub_80C3AC8(1) == 2 && gUnknown_20399D4->field_4797[1] == 1)
+ {
+ sub_80C195C(0, taskId, sub_80C07F8);
+ }
+ break;
+ case 5:
+ sub_80C0E70(gUnknown_20399D4->field_479B, taskId, sub_80C07F8);
+ break;
+ case 6:
+ gUnknown_20399D4->field_47A0++;
+ break;
+ }
+ break;
+ case 4:
+ if (sub_80C0E04(2) == 1)
+ {
+ sub_80C2C1C(taskId);
+ // FIXME: goto required to match
+ // gUnknown_20399D4->field_47A0++;
+ goto _080C0798;
+ }
+ else
+ {
+ gUnknown_20399D4->field_47A0++;
+ }
+ break;
+ case 5:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ _080C0798:
+ gUnknown_20399D4->field_47A0++;
+ break;
+ default:
+ if (!gPaletteFade.active)
+ {
+ sub_80C0820(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80C07D0(TaskFunc taskFunc)
+{
+ gUnknown_20399D4->field_47B8 = taskFunc;
+}
+
+TaskFunc sub_80C07E4(void)
+{
+ return gUnknown_20399D4->field_47B8;
+}
+
+void sub_80C07F8(u8 taskId)
+{
+ gTasks[taskId].func = gUnknown_20399D4->field_47B8;
+}
+
+void sub_80C0820(u8 taskId)
+{
+ if (sub_80C0E04(2) == TRUE)
+ sub_80C25BC();
+ sub_80C4A04();
+ sub_80C3188();
+ sub_80C4348();
+ sub_80C4D30();
+ DestroyTask(taskId);
+ FreeAllWindowBuffers();
+ if (gUnknown_20399D4->field_47BC == NULL)
+ SetMainCallback2(gMain.savedCallback);
+ else
+ SetMainCallback2(gUnknown_20399D4->field_47BC);
+ FREE_IF_NOT_NULL(gUnknown_20399D4);
+}
+
+void sub_80C0898(void)
+{
+ FREE_IF_NOT_NULL(gUnknown_20399D4);
+}
+
+void sub_80C08B4(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_80C08CC(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void sub_80C08E0(void)
+{
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+}
+
+void sub_80C08F4(void)
+{
+ SetVBlankCallback(sub_80C08CC);
+}
+
+void sub_80C0904(void)
+{
+ DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000);
+ DmaFill32Defvars(3, 0, (void *)OAM, OAM_SIZE);
+ DmaFill16Defvars(3, 0, (void *)PLTT, PLTT_SIZE);
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, gUnknown_83F1A50, NELEMS(gUnknown_83F1A50));
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+ InitWindows(gUnknown_83F1A60);
+ DeactivateAllTextPrinters();
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
+ sub_80C0A2C();
+ sub_80C0AB8();
+}
+
+void sub_80C0A2C(void)
+{
+ SetBgTilemapBuffer(0, gUnknown_20399D4->field_1796[0]);
+ SetBgTilemapBuffer(1, gUnknown_20399D4->field_1796[1]);
+ SetBgTilemapBuffer(2, gUnknown_20399D4->field_1796[2]);
+}
+
+void sub_80C0A6C(void)
+{
+ ResetSpriteData();
+ ResetPaletteFade();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ ScanlineEffect_Stop();
+}
+
+void sub_80C0A88(u8 mode)
+{
+ switch (mode)
+ {
+ case 0:
+ ShowBg(0);
+ ShowBg(3);
+ break;
+ case 1:
+ HideBg(0);
+ HideBg(3);
+ break;
+ }
+}
+
+void sub_80C0AB8(void)
+{
+ sub_80C4BE4();
+ sub_80C4C2C(0, 0x11, 0xc0);
+ sub_80C4C48(6);
+ sub_80C4C74(0x39, 0x39);
+ sub_80C4C88(0x1b);
+ sub_80C4CF0(0, &gUnknown_83F1B0C[0]);
+ sub_80C4CF0(1, &gUnknown_83F1B0C[1]);
+ sub_80C4C9C(0, 0);
+ if (sub_80C3580() != MAPSEC_NONE)
+ sub_80C4C9C(1, 0);
+}
+
+void sub_80C0B18(void)
+{
+ ClearWindowTilemap(0);
+ FillWindowPixelBuffer(0, PIXEL_FILL(0));
+ if (sub_80C3520() == MAPSEC_NONE)
+ {
+ sub_80C4CF0(0, &gUnknown_83F1B0C[2]);
+ }
+ else
+ {
+ GetMapName(gUnknown_20399D4->field_0000, sub_80C3520(), 0);
+ AddTextPrinterParameterized3(0, 2, 2, 2, gUnknown_83F1A90, 0, gUnknown_20399D4->field_0000);
+ PutWindowTilemap(0);
+ CopyWindowToVram(0, 2);
+ sub_80C4CF0(0, &gUnknown_83F1B0C[0]);
+ }
+}
+
+void sub_80C0B9C(void)
+{
+ sub_80C4CF0(1, &gUnknown_83F1B0C[1]);
+}
+
+void sub_80C0BB0(void)
+{
+ u16 mapsecId;
+ u16 descOffset;
+ gUnknown_20399D4->field_47AC = 0;
+ gUnknown_20399D4->field_47AE = 24;
+ gUnknown_20399D4->field_47B0 = 32;
+ sub_80C4C9C(1, 1);
+ ClearWindowTilemap(1);
+ mapsecId = sub_80C3580();
+ if (mapsecId != MAPSEC_NONE)
+ {
+ descOffset = mapsecId - MAPSECS_KANTO;
+ sub_80C4C9C(1, 0);
+ gUnknown_20399D4->field_47AC = 1;
+ gUnknown_20399D4->field_47AA = StringLength(gUnknown_83F1CAC[descOffset]);
+ gUnknown_20399D4->field_47AE = gUnknown_20399D4->field_47AA * 10 + 50;
+ gUnknown_20399D4->field_47B0 = 48;
+ FillWindowPixelBuffer(1, PIXEL_FILL(0));
+ StringCopy(gUnknown_20399D4->field_0013, gUnknown_83F1CAC[descOffset]);
+ AddTextPrinterParameterized3(1, 2, 12, 2, gUnknown_83F1A9C[sub_80C3AC8(1) - 2], 0, gUnknown_20399D4->field_0013);
+ PutWindowTilemap(1);
+ CopyWindowToVram(1, 3);
+ }
+}
+
+void sub_80C0CA0(void)
+{
+ FillWindowPixelBuffer(0, PIXEL_FILL(0));
+ CopyWindowToVram(0, 3);
+ FillWindowPixelBuffer(1, PIXEL_FILL(0));
+ CopyWindowToVram(1, 3);
+}
+
+void sub_80C0CC8(u8 bg, u16 *map)
+{
+ s16 i;
+ s16 j;
+ u8 r4;
+ u16 *buffer = gUnknown_20399D4->field_1796[bg];
+ for (i = 0; i < 20; i++)
+ {
+ for (j = 0; j < 32; j++)
+ {
+ if (j < 30)
+ buffer[32 * i + j] = map[30 * i + j];
+ else
+ buffer[32 * i + j] = map[0];
+ }
+ }
+ if (gUnknown_20399D4->field_4797[0] == 1)
+ {
+ WriteSequenceToBgTilemapBuffer(0, 0x0F0, 0x18, 0x0E, 3, 1, 0x3, 0x001);
+ WriteSequenceToBgTilemapBuffer(0, 0x100, 0x18, 0x0F, 3, 1, 0x3, 0x001);
+ WriteSequenceToBgTilemapBuffer(0, 0x110, 0x18, 0x10, 3, 1, 0x3, 0x001);
+ }
+ if (gUnknown_20399D8 != NULL)
+ r4 = gUnknown_20399D8->field_1CCA;
+ else
+ r4 = gUnknown_20399D4->field_479B;
+ if (r4 == 2 && !FlagGet(FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR))
+ FillBgTilemapBufferRect_Palette0(0, 0x003, 13, 11, 3, 2);
+ if (r4 == 3 && !FlagGet(FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR))
+ FillBgTilemapBufferRect_Palette0(0, 0x003, 21, 16, 3, 3);
+}
+
+u8 sub_80C0E04(u8 a0)
+{
+ return gUnknown_20399D4->field_4797[a0];
+}
+
+u8 sub_80C0E20(void)
+{
+ return gUnknown_20399D4->field_479B;
+}
+
+u8 sub_80C0E34(void)
+{
+ return gUnknown_20399D4->field_479C;
+}
+
+void sub_80C0E48(u8 a0)
+{
+ gUnknown_20399D4->field_479B = a0;
+}
+
+void sub_80C0E5C(u8 a0)
+{
+ gUnknown_20399D4->field_479C = a0;
+}
+
+void sub_80C0E70(u8 a0, u8 taskId, TaskFunc taskFunc)
+{
+ gUnknown_20399D8 = AllocZeroed(sizeof(struct UnkStruct_20399D8));
+ if (FlagGet(FLAG_SYS_SEVII_MAP_4567))
+ gUnknown_20399D8->field_1CCC = 3;
+ else if (FlagGet(FLAG_SYS_SEVII_MAP_123))
+ gUnknown_20399D8->field_1CCC = 1;
+ else
+ gUnknown_20399D8->field_1CCC = 0;
+ gUnknown_20399D8->field_14B0[0].field_408 = 0x58;
+ gUnknown_20399D8->field_14B0[1].field_408 = 0x98;
+ switch (gUnknown_20399D8->field_1CCC)
+ {
+ case 1:
+ LZ77UnCompWram(gUnknown_83F1084, gUnknown_20399D8->field_1000);
+ gUnknown_20399D8->field_1CCE = 6;
+ break;
+ case 2: // never reached
+ LZ77UnCompWram(gUnknown_83F1190, gUnknown_20399D8->field_1000);
+ gUnknown_20399D8->field_1CCE = 4;
+ break;
+ case 3:
+ default:
+ gUnknown_20399D8->field_1CCE = 3;
+ LZ77UnCompWram(gUnknown_83F0F1C, gUnknown_20399D8->field_1000);
+ break;
+ }
+ LZ77UnCompWram(gUnknown_83F0580, gUnknown_20399D8->field_0000);
+ gUnknown_20399D8->field_1CC8 = 0;
+ gUnknown_20399D8->field_1CCA = a0;
+ gUnknown_20399D8->field_1CD0 = taskFunc;
+ gUnknown_20399D8->field_1CCB = sub_80C0E34();
+ sub_80C4AAC(0);
+ sub_80C4E74(gUnknown_8418EB0);
+ gTasks[taskId].func = sub_80C1098;
+}
+
+void sub_80C0FE0(void)
+{
+ sub_80C4BE4();
+ sub_80C4C2C(27, 4, 64);
+ sub_80C4C5C(16 - gUnknown_20399D8->field_1CCD);
+}
+
+bool8 sub_80C1014(void)
+{
+ if (gUnknown_20399D8->field_1CCD < 16)
+ {
+ sub_80C4C5C(16 - gUnknown_20399D8->field_1CCD);
+ gUnknown_20399D8->field_1CCD += 2;
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+bool8 sub_80C1058(void)
+{
+ if (gUnknown_20399D8->field_1CCD >= 2)
+ {
+ gUnknown_20399D8->field_1CCD -= 2;
+ sub_80C4C5C(16 - gUnknown_20399D8->field_1CCD);
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+void sub_80C1098(u8 taskId)
+{
+ switch (gUnknown_20399D8->field_1CC8)
+ {
+ case 0:
+ sub_80C08E0();
+ sub_80C4E18(gUnknown_8418EBC);
+ gUnknown_20399D8->field_1CC8++;
+ break;
+ case 1:
+ LoadBgTiles(2, gUnknown_20399D8->field_0000, 0x1000, 0x000);
+ gUnknown_20399D8->field_1CC8++;
+ break;
+ case 2:
+ sub_80C1324(2, gUnknown_20399D8->field_1000);
+ CopyBgTilemapBufferToVram(2);
+ gUnknown_20399D8->field_1CC8++;
+ break;
+ case 3:
+ sub_80C0CA0();
+ gUnknown_20399D8->field_1CC8++;
+ break;
+ case 4:
+ sub_80C0FE0();
+ ShowBg(2);
+ gUnknown_20399D8->field_1CC8++;
+ break;
+ case 5:
+ sub_80C08F4();
+ gUnknown_20399D8->field_1CC8++;
+ break;
+ case 6:
+ if (sub_80C1014() == TRUE)
+ {
+ sub_80C1390();
+ gUnknown_20399D8->field_1CC8++;
+ }
+ break;
+ case 7:
+ if (sub_80C144C() == TRUE)
+ {
+ gUnknown_20399D8->field_1CC8++;
+ }
+ break;
+ case 8:
+ if (sub_80C16D0() == TRUE)
+ {
+ gUnknown_20399D8->field_1CC8++;
+ }
+ break;
+ case 9:
+ if (sub_80C1478() == TRUE)
+ {
+ sub_80C0E48(gUnknown_20399D8->field_1CCA);
+ if (sub_80C0E34() == gUnknown_20399D8->field_1CCA)
+ {
+ sub_80C4324(0);
+ sub_80C48BC(gUnknown_20399D8->field_1CCA, 25, 0);
+ sub_80C4960(gUnknown_20399D8->field_1CCA, 25, 0);
+ }
+ gUnknown_20399D8->field_1CC8++;
+ }
+ break;
+ case 10:
+ if (sub_80C12EC() == TRUE)
+ {
+ sub_80C1880();
+ sub_80C0FE0();
+ gUnknown_20399D8->field_1CC8++;
+ }
+ break;
+ case 11:
+ if (sub_80C1058() == TRUE)
+ {
+ gUnknown_20399D8->field_1CC8++;
+ }
+ break;
+ case 12:
+ sub_80C3154(FALSE);
+ gUnknown_20399D8->field_1CC8++;
+ break;
+ default:
+ sub_80C1280(taskId);
+ break;
+ }
+}
+
+void sub_80C1280(u8 taskId)
+{
+ gTasks[taskId].func = gUnknown_20399D8->field_1CD0;
+ HideBg(2);
+ sub_80C4E18(gUnknown_8418EB5);
+ sub_80C4E74(gUnknown_8418EA7);
+ sub_80C0AB8();
+ sub_80C0B9C();
+ sub_80C4CF0(0, &gUnknown_83F1B0C[2]);
+ FREE_IF_NOT_NULL(gUnknown_20399D8);
+}
+
+bool8 sub_80C12EC(void)
+{
+ if (gUnknown_20399D8->field_1CDC != 0)
+ {
+ gUnknown_20399D8->field_1CDC--;
+ SetGpuReg(REG_OFFSET_BLDY, gUnknown_20399D8->field_1CDC);
+ return FALSE;
+ }
+ else
+ {
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ return TRUE;
+ }
+}
+
+void sub_80C1324(u8 bg, u16 *map)
+{
+ s16 i;
+ s16 j;
+ u16 *buffer = gUnknown_20399D4->field_1796[bg];
+ for (i = 0; i < 20; i++)
+ {
+ for (j = 0; j < 32; j++)
+ {
+ if (j < 30)
+ buffer[32 * i + j] = map[30 * i + j];
+ else
+ buffer[32 * i + j] = map[0];
+ }
+ }
+}
+
+void sub_80C1390(void)
+{
+ struct UnkStruct_80C4CF0 data;
+ data.v0 = gUnknown_20399D8->field_1CD4[0] = 0x48;
+ data.v2 = gUnknown_20399D8->field_1CD4[1] = 8 * (gUnknown_20399D8->field_1CCE + 4 * gUnknown_20399D8->field_1CCA);
+ data.v4 = gUnknown_20399D8->field_1CD4[2] = 0xA8;
+ data.v6 = gUnknown_20399D8->field_1CD4[3] = gUnknown_20399D8->field_1CD4[1] + 32;
+ sub_80C4BE4();
+ sub_80C4C2C(0, 0x15, 0xc0);
+ sub_80C4C74(0x1f, 0x15);
+ sub_80C4C88(0x3f);
+ sub_80C4C9C(1, 0);
+ sub_80C4CF0(1, &data);
+}
+
+bool8 sub_80C144C(void)
+{
+ if (gUnknown_20399D8->field_1CDC < 6)
+ {
+ gUnknown_20399D8->field_1CDC++;
+ sub_80C4C48(gUnknown_20399D8->field_1CDC);
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+bool8 sub_80C1478(void)
+{
+ bool8 r6 = FALSE;
+ struct UnkStruct_80C4CF0 data;
+ data.v0 = gUnknown_20399D8->field_1CD4[0] = 0x48;
+ data.v2 = gUnknown_20399D8->field_1CD4[1] = 8 * (gUnknown_20399D8->field_1CCE + 4 * gUnknown_20399D8->field_1CCA);
+ data.v4 = gUnknown_20399D8->field_1CD4[2] = 0xA8;
+ data.v6 = gUnknown_20399D8->field_1CD4[3] = gUnknown_20399D8->field_1CD4[1] + 32;
+ if (JOY_NEW(DPAD_UP) && gUnknown_20399D8->field_1CCA != 0)
+ {
+ PlaySE(SE_BAG1);
+ gUnknown_20399D8->field_1CCA--;
+ r6 = TRUE;
+ }
+ if (JOY_NEW(DPAD_DOWN) && gUnknown_20399D8->field_1CCA < gUnknown_20399D8->field_1CCC)
+ {
+ PlaySE(SE_BAG1);
+ gUnknown_20399D8->field_1CCA++;
+ r6 = TRUE;
+ }
+ if (JOY_NEW(A_BUTTON) && gUnknown_20399D8->field_1CDC == 6)
+ {
+ PlaySE(SE_W129);
+ gUnknown_20399D8->field_1CCB = gUnknown_20399D8->field_1CCA;
+ return TRUE;
+ }
+ if (JOY_NEW(B_BUTTON))
+ {
+ gUnknown_20399D8->field_1CCA = gUnknown_20399D8->field_1CCB;
+ sub_80C0CC8(0, gUnknown_20399D4->field_0026[gUnknown_20399D8->field_1CCA]);
+ CopyBgTilemapBufferToVram(0);
+ sub_80C48BC(255, 25, 1);
+ sub_80C4960(255, 25, 1);
+ return TRUE;
+ }
+ if (r6)
+ {
+ sub_80C0CC8(0, gUnknown_20399D4->field_0026[gUnknown_20399D8->field_1CCA]);
+ sub_80C4E74(gUnknown_8418EB0);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(3);
+ sub_80C48BC(255, 25, 1);
+ sub_80C4960(255, 25, 1);
+ sub_80C48BC(gUnknown_20399D8->field_1CCA, 25, 0);
+ sub_80C4960(gUnknown_20399D8->field_1CCA, 25, 0);
+ }
+ if (gUnknown_20399D8->field_1CCA != sub_80C0E34())
+ sub_80C4324(1);
+ else
+ sub_80C4324(0);
+ sub_80C4CF0(1, &data);
+ return FALSE;
+}
+
+void sub_80C16B8(struct Sprite * sprite)
+{
+ sprite->pos1.y = gUnknown_20399D8->field_1CD4[1] + 16;
+}
+
+bool8 sub_80C16D0(void)
+{
+ switch (gUnknown_20399D8->field_1CC9)
+ {
+ case 0:
+ LZ77UnCompWram(gUnknown_83EF3C4, gUnknown_20399D8->field_14B0[0].field_000);
+ break;
+ case 1:
+ LZ77UnCompWram(gUnknown_83EF450, gUnknown_20399D8->field_14B0[1].field_000);
+ break;
+ case 2:
+ sub_80C1754(0, 2, 2);
+ sub_80C1754(1, 3, 3);
+ break;
+ default:
+ return TRUE;
+ }
+ gUnknown_20399D8->field_1CC9++;
+ return FALSE;
+}
+
+void sub_80C1754(u8 a0, u16 a1, u16 a2)
+{
+ sub_80C176C(a0, a1, a2);
+}
+
+void sub_80C176C(u8 a0, u16 a1, u16 a2)
+{
+ u8 spriteId;
+
+ struct SpriteSheet spriteSheet = {
+ .data = gUnknown_20399D8->field_14B0[a0].field_000,
+ .size = 0x400,
+ .tag = a1
+ };
+ struct SpritePalette spritePalette = {
+ .data = gUnknown_83EF384,
+ .tag = a2
+ };
+ struct SpriteTemplate template = {
+ .tileTag = a1,
+ .paletteTag = a2,
+ .oam = &gUnknown_83F1B24,
+ .anims = gUnknown_83F1B38,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C16B8
+ };
+
+ gUnknown_20399D8->field_14B0[a0].field_404 = a1;
+ gUnknown_20399D8->field_14B0[a0].field_406 = a2;
+
+ LoadSpriteSheet(&spriteSheet);
+ LoadSpritePalette(&spritePalette);
+
+ spriteId = CreateSprite(&template, gUnknown_20399D8->field_14B0[a0].field_408, 8 * (gUnknown_20399D8->field_1CCE + 4 * gUnknown_20399D8->field_1CCA), 0);
+ gUnknown_20399D8->field_14B0[a0].field_400 = &gSprites[spriteId];
+ gSprites[spriteId].invisible = FALSE;
+}
+
+void sub_80C1880(void)
+{
+ u8 i;
+ for (i = 0; i < 2; i++)
+ {
+ if (gUnknown_20399D8->field_14B0[i].field_400 != NULL)
+ {
+ DestroySprite(gUnknown_20399D8->field_14B0[i].field_400);
+ FreeSpriteTilesByTag(gUnknown_20399D8->field_14B0[i].field_404);
+ FreeSpritePaletteByTag(gUnknown_20399D8->field_14B0[i].field_406);
+ }
+ }
+}
+
+const u8 *sub_80C18E0(u16 a0)
+{
+ u8 i;
+ for (i = 0; i < 19; i++)
+ {
+ if (gUnknown_83F1B3C[i].field_0 == a0)
+ return gUnknown_83F1B3C[i].field_8;
+ }
+ return gUnknown_8418EC3;
+}
+
+const u8 *sub_80C1920(u16 a0)
+{
+ u8 i;
+ for (i = 0; i < 19; i++)
+ {
+ if (gUnknown_83F1B3C[i].field_0 == a0)
+ return gUnknown_83F1B3C[i].field_4;
+ }
+ return gUnknown_8418EC3;
+}
+
+void sub_80C195C(u8 a0, u8 taskId, TaskFunc taskFunc)
+{
+ u8 r0;
+ gUnknown_20399DC = AllocZeroed(sizeof(struct UnkStruct_20399DC));
+ r0 = sub_80C3580();
+ if (r0 == MAPSEC_TANOBY_CHAMBERS)
+ r0 = MAPSEC_MONEAN_CHAMBER;
+ gUnknown_20399DC->field_3D40 = sub_80F8544(r0);
+ if (gUnknown_20399DC->field_3D40 == NULL)
+ gUnknown_20399DC->field_3D40 = sub_80F8544(MAPSEC_ROCK_TUNNEL);
+ gUnknown_20399DC->field_3D48 = 0;
+ gUnknown_20399DC->field_3D4A = 0;
+ gUnknown_20399DC->field_3D44 = taskFunc;
+ gUnknown_20399DC->field_3E14 = 0;
+ sub_80C4AAC(0);
+ sub_80C4BE4();
+ sub_80C0CA0();
+ gTasks[taskId].func = sub_80C1A94;
+}
+
+bool8 sub_80C19FC(void)
+{
+ switch (gUnknown_20399DC->field_3D4A)
+ {
+ case 0:
+ LZ77UnCompWram(gUnknown_20399DC->field_3D40->tilesptr, gUnknown_20399DC->field_0000);
+ break;
+ case 1:
+ LZ77UnCompWram(gUnknown_20399DC->field_3D40->tilemapptr, gUnknown_20399DC->field_3840);
+ break;
+ case 2:
+ LoadBgTiles(2, gUnknown_20399DC->field_0000, 0x3840, 0x000);
+ break;
+ case 3:
+ LoadPalette(gUnknown_20399DC->field_3D40->palptr, 0xD0, 0x60);
+ break;
+ default:
+ return TRUE;
+ }
+ gUnknown_20399DC->field_3D4A++;
+ return FALSE;
+}
+
+void sub_80C1A94(u8 taskId)
+{
+ switch (gUnknown_20399DC->field_3D48)
+ {
+ case 0:
+ sub_80C08E0();
+ gUnknown_20399DC->field_3D48++;
+ break;
+ case 1:
+ if (sub_80C19FC() == TRUE)
+ gUnknown_20399DC->field_3D48++;
+ break;
+ case 2:
+ sub_80C1E94();
+ sub_80C4E74(gUnknown_8418E9E);
+ gUnknown_20399DC->field_3D48++;
+ break;
+ case 3:
+ sub_80C1E78(2, gUnknown_20399DC->field_3840);
+ CopyBgTilemapBufferToVram(2);
+ gUnknown_20399DC->field_3D48++;
+ break;
+ case 4:
+ ShowBg(2);
+ gUnknown_20399DC->field_3D48++;
+ break;
+ case 5:
+ sub_80C08F4();
+ gUnknown_20399DC->field_3D48++;
+ break;
+ case 6:
+ if (sub_80C1F80(FALSE) == TRUE)
+ gUnknown_20399DC->field_3D48++;
+ break;
+ case 7:
+ gTasks[taskId].func = sub_80C1BE0;
+ break;
+ case 8:
+ if (sub_80C1F80(TRUE) == TRUE)
+ {
+ gUnknown_20399DC->field_3D48++;
+ }
+ break;
+ case 9:
+ sub_80C1E14(taskId);
+ gUnknown_20399DC->field_3D48++;
+ break;
+ }
+}
+
+void sub_80C1BE0(u8 taskId)
+{
+ switch (gUnknown_20399DC->field_3D49)
+ {
+ case 0:
+ gUnknown_20399DC->field_3E0E = 0x0133;
+ gUnknown_20399DC->field_3E10 = 0x0100;
+ gUnknown_20399DC->field_3E12 = 0x00F0;
+ gUnknown_20399DC->field_3D49++;
+ break;
+ case 1:
+ if (gUnknown_20399DC->field_3D4C++ > 40)
+ {
+ gUnknown_20399DC->field_3D4C = 0;
+ gUnknown_20399DC->field_3D49++;
+ }
+ break;
+ case 2:
+ FillWindowPixelBuffer(2, PIXEL_FILL(0));
+ CopyWindowToVram(2, 3);
+ PutWindowTilemap(2);
+ gUnknown_20399DC->field_3D49++;
+ break;
+ case 3:
+ if (gUnknown_20399DC->field_3D4C > 25)
+ {
+ AddTextPrinterParameterized3(2, 2, 4, 0, gUnknown_83F1A94, -1, sub_80C1920(sub_80C3580()));
+ AddTextPrinterParameterized3(2, 2, 2, 14, gUnknown_83F1A90, -1, sub_80C18E0(sub_80C3580()));
+ CopyWindowToVram(2, 3);
+ gUnknown_20399DC->field_3D49++;
+ }
+ else if (gUnknown_20399DC->field_3D4C > 20)
+ {
+ gUnknown_20399DC->field_3E0E -= 6;
+ gUnknown_20399DC->field_3E10 -= 5;
+ gUnknown_20399DC->field_3E12 -= 5;
+ CpuCopy16(gUnknown_20399DC->field_3D40->palptr, gUnknown_20399DC->field_3D4E, 0x60);
+ TintPalette_CustomTone(gUnknown_20399DC->field_3D4E, 0x30, gUnknown_20399DC->field_3E0E, gUnknown_20399DC->field_3E10, gUnknown_20399DC->field_3E12);
+ LoadPalette(gUnknown_20399DC->field_3D4E, 0xD0, 0x60);
+ }
+ gUnknown_20399DC->field_3D4C++;
+ break;
+ case 4:
+ if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON))
+ {
+ FillWindowPixelBuffer(2, PIXEL_FILL(0));
+ CopyWindowToVram(2, 3);
+ gUnknown_20399DC->field_3D48++;
+ gUnknown_20399DC->field_3D49++;
+ }
+ break;
+ default:
+ gTasks[taskId].func = sub_80C1A94;
+ break;
+ }
+}
+
+void sub_80C1E14(u8 taskId)
+{
+ gTasks[taskId].func = gUnknown_20399DC->field_3D44;
+ HideBg(2);
+ sub_80C4B30(0);
+ sub_80C0B18();
+ sub_80C0BB0();
+ sub_80C0AB8();
+ sub_80C0B9C();
+ sub_80C4E74(gUnknown_8418E8D);
+ FREE_IF_NOT_NULL(gUnknown_20399DC);
+}
+
+void sub_80C1E78(u8 bgId, const u16 * tilemap)
+{
+ CopyToBgTilemapBufferRect(2, tilemap, 0, 0, 32, 20);
+}
+
+void sub_80C1E94(void)
+{
+ u16 r4;
+ u16 r0;
+ sub_80C4BE4();
+ sub_80C4C2C(0, 17, 192);
+ sub_80C4C48(gUnknown_20399DC->field_3E14);
+ sub_80C4C74(0, 13);
+ sub_80C4C88(59);
+ sub_80C4C9C(1, 0);
+ r4 = sub_80C3508();
+ r0 = sub_80C3514();
+ gUnknown_20399DC->field_3E16 = 8 * r4 + 32;
+ gUnknown_20399DC->field_3E18 = 8 * r0 + 24;
+ gUnknown_20399DC->field_3E1A = gUnknown_20399DC->field_3E16 + 8;
+ gUnknown_20399DC->field_3E1C = gUnknown_20399DC->field_3E18 + 8;
+ gUnknown_20399DC->field_3E1E = (0x10 - gUnknown_20399DC->field_3E16) / 8;
+ gUnknown_20399DC->field_3E20 = (0x20 - gUnknown_20399DC->field_3E18) / 8;
+ gUnknown_20399DC->field_3E22 = (0xE0 - gUnknown_20399DC->field_3E1A) / 8;
+ gUnknown_20399DC->field_3E24 = (0x88 - gUnknown_20399DC->field_3E1C) / 8;
+}
+
+bool8 sub_80C1F80(bool8 a0)
+{
+ struct UnkStruct_80C4CF0 data;
+
+ if (!a0)
+ {
+ if (gUnknown_20399DC->field_3D4B < 8)
+ {
+ gUnknown_20399DC->field_3E16 += gUnknown_20399DC->field_3E1E;
+ gUnknown_20399DC->field_3E18 += gUnknown_20399DC->field_3E20;
+ gUnknown_20399DC->field_3E1A += gUnknown_20399DC->field_3E22;
+ gUnknown_20399DC->field_3E1C += gUnknown_20399DC->field_3E24;
+ gUnknown_20399DC->field_3D4B++;
+ if (gUnknown_20399DC->field_3E14 < 6)
+ gUnknown_20399DC->field_3E14++;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ else
+ {
+ if (gUnknown_20399DC->field_3D4B == 0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ gUnknown_20399DC->field_3E16 -= gUnknown_20399DC->field_3E1E;
+ gUnknown_20399DC->field_3E18 -= gUnknown_20399DC->field_3E20;
+ gUnknown_20399DC->field_3E1A -= gUnknown_20399DC->field_3E22;
+ gUnknown_20399DC->field_3E1C -= gUnknown_20399DC->field_3E24;
+ gUnknown_20399DC->field_3D4B--;
+ if (gUnknown_20399DC->field_3E14 > 0)
+ gUnknown_20399DC->field_3E14--;
+ }
+ }
+ data.v0 = gUnknown_20399DC->field_3E16;
+ data.v2 = gUnknown_20399DC->field_3E18;
+ data.v4 = gUnknown_20399DC->field_3E1A;
+ data.v6 = gUnknown_20399DC->field_3E1C;
+ sub_80C4CF0(1, &data);
+ sub_80C4C48(gUnknown_20399DC->field_3E14);
+ return FALSE;
+}
+
+void nullsub_63(struct Sprite * sprite)
+{
+
+}
+
+void sub_80C210C(u8 a0, u8 a1, u8 a2)
+{
+ u8 spriteId;
+ struct SpriteSheet spriteSheet = {
+ .data = gUnknown_20399E0->field_000[a0],
+ .size = 0x400,
+ .tag = a1
+ };
+ struct SpritePalette spritePalette = {
+ .data = gUnknown_83EF3A4,
+ .tag = a2
+ };
+ struct SpriteTemplate template = {
+ .tileTag = a1,
+ .paletteTag = a2,
+ .oam = &gUnknown_83F1C20,
+ .anims = gUnknown_83F1C30,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = nullsub_63
+ };
+
+ gUnknown_20399E0->field_000[a0]->field_408 = a1;
+ gUnknown_20399E0->field_000[a0]->field_40A = a2;
+ LoadSpriteSheet(&spriteSheet);
+ LoadSpritePalette(&spritePalette);
+ spriteId = CreateSprite(&template, gUnknown_20399E0->field_000[a0]->field_404, gUnknown_20399E0->field_000[a0]->field_406, 0);
+ gUnknown_20399E0->field_000[a0]->field_400 = &gSprites[spriteId];
+ gSprites[spriteId].invisible = TRUE;
+}
+
+void sub_80C2208(u8 taskId, TaskFunc taskFunc)
+{
+ u8 i;
+
+ gUnknown_20399E0 = AllocZeroed(sizeof(struct UnkStruct_20399E0));
+ for (i = 0; i < 6; i++)
+ {
+ gUnknown_20399E0->field_000[i] = AllocZeroed(sizeof(struct UnkStruct_20399E0_000));
+ gUnknown_20399E0->field_000[i]->field_404 = 32 * (i / 3) + 0x68;
+ gUnknown_20399E0->field_000[i]->field_406 = 64 * (i % 3) + 0x28;
+ }
+ sub_80C4AAC(0);
+ sub_80C4BE4();
+ sub_80C24BC();
+ sub_80C0A88(1);
+ gUnknown_20399E0->field_CC8 = taskFunc;
+ gTasks[taskId].func = sub_80C267C;
+}
+
+void sub_80C22C4(u8 a0, bool8 a1)
+{
+ u8 i;
+ if (a0 == 6)
+ {
+ for (i = 0; i < 6; i++)
+ {
+ gUnknown_20399E0->field_000[i]->field_400->invisible = a1;
+ }
+ }
+ else
+ {
+ gUnknown_20399E0->field_000[a0]->field_400->invisible = a1;
+ }
+}
+
+bool8 sub_80C2344(void)
+{
+ switch (gUnknown_20399E0->field_CCD)
+ {
+ case 0:
+ LZ77UnCompWram(gUnknown_83F12CC, gUnknown_20399E0->field_000[0]->field_000);
+ sub_80C210C(0, 4, 4);
+ break;
+ case 1:
+ LZ77UnCompWram(gUnknown_83F1550, gUnknown_20399E0->field_000[1]->field_000);
+ sub_80C210C(1, 5, 5);
+ break;
+ case 2:
+ LZ77UnCompWram(gUnknown_83F1738, gUnknown_20399E0->field_000[2]->field_000);
+ sub_80C210C(2, 6, 6);
+ break;
+ case 3:
+ LZ77UnCompWram(gUnknown_83F13EC, gUnknown_20399E0->field_000[3]->field_000);
+ sub_80C210C(3, 7, 7);
+ break;
+ case 4:
+ LZ77UnCompWram(gUnknown_83F1640, gUnknown_20399E0->field_000[4]->field_000);
+ sub_80C210C(4, 8, 8);
+ break;
+ case 5:
+ LZ77UnCompWram(gUnknown_83F1804, gUnknown_20399E0->field_000[5]->field_000);
+ sub_80C210C(5, 9, 9);
+ break;
+ case 6:
+ LZ77UnCompWram(gUnknown_83F0330, gUnknown_20399E0->field_018);
+ break;
+ case 7:
+ LZ77UnCompWram(gUnknown_83F0E0C, gUnknown_20399E0->field_818);
+ break;
+ case 8:
+ LoadBgTiles(1, gUnknown_20399E0->field_018, BG_SCREEN_SIZE, 0x000);
+ break;
+ default:
+ return TRUE;
+ }
+ gUnknown_20399E0->field_CCD++;
+ return FALSE;
+}
+
+void sub_80C24BC(void)
+{
+ struct UnkStruct_80C4CF0 data;
+ data.v0 = gUnknown_20399E0->field_000[0]->field_404 + 8;
+ data.v2 = 0x10;
+ data.v4 = gUnknown_20399E0->field_000[3]->field_404 - 8;
+ data.v6 = 0xA0;
+ sub_80C4C2C(0, 2, 0);
+ sub_80C4C74(18, 0);
+ sub_80C4C88(16);
+ sub_80C4CF0(0, &data);
+ sub_80C4C9C(0, 0);
+}
+
+void sub_80C253C(void)
+{
+ struct UnkStruct_80C4CF0 data = gUnknown_83F1C34;
+ sub_80C4BE4();
+ sub_80C4C2C(2, 41, 128);
+ sub_80C4C48(gUnknown_20399E0->field_CD0);
+ sub_80C4C74(55, 0);
+ sub_80C4C88(18);
+ sub_80C4CF0(0, &data);
+ sub_80C4C9C(0, 0);
+}
+
+void sub_80C2594(u8 taskId)
+{
+ gTasks[taskId].func = gUnknown_20399E0->field_CC8;
+}
+
+void sub_80C25BC(void)
+{
+ u8 i;
+ sub_80C2604();
+ for (i = 0; i < 6; i++)
+ {
+ FREE_IF_NOT_NULL(gUnknown_20399E0->field_000[i]);
+ }
+ FREE_IF_NOT_NULL(gUnknown_20399E0);
+}
+
+void sub_80C2604(void)
+{
+ u8 i;
+ for (i = 0; i < 6; i++)
+ {
+ gUnknown_20399E0->field_000[i]->field_404 = gUnknown_20399E0->field_000[i]->field_400->pos1.x;
+ gUnknown_20399E0->field_000[i]->field_406 = gUnknown_20399E0->field_000[i]->field_400->pos1.y;
+ if (gUnknown_20399E0->field_000[i]->field_400 != NULL)
+ {
+ DestroySprite(gUnknown_20399E0->field_000[i]->field_400);
+ FreeSpriteTilesByTag(gUnknown_20399E0->field_000[i]->field_408);
+ FreeSpritePaletteByTag(gUnknown_20399E0->field_000[i]->field_40A);
+ }
+ }
+}
+
+void sub_80C267C(u8 taskId)
+{
+ switch (gUnknown_20399E0->field_CCC)
+ {
+ case 0:
+ sub_80C08E0();
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 1:
+ if (sub_80C2344() == TRUE)
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 2:
+ CopyToBgTilemapBufferRect(1, gUnknown_20399E0->field_818, 0, 0, 30, 20);
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 3:
+ CopyBgTilemapBufferToVram(1);
+ BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ sub_80C08F4();
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 4:
+ ShowBg(0);
+ ShowBg(3);
+ ShowBg(1);
+ sub_80C22C4(6, FALSE);
+ sub_80C2B48();
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 5:
+ if (!gPaletteFade.active)
+ {
+ gUnknown_20399E0->field_CCC++;
+ PlaySE(SE_CARD3);
+ }
+ break;
+ case 6:
+ if (sub_80C29A4() == TRUE)
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 7:
+ sub_80C4324(0);
+ sub_80C3154(FALSE);
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 8:
+ gUnknown_20399E0->field_CD0 = 15;
+ sub_80C253C();
+ sub_80C0A88(0);
+ sub_80C48BC(sub_80C0E20(), 25, 0);
+ sub_80C4960(sub_80C0E20(), 25, 0);
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 9:
+ sub_80C4E18(gUnknown_8418EB5);
+ if (sub_80C3AC8(1) != 2)
+ sub_80C4E74(gUnknown_8418E8B);
+ else
+ sub_80C4E74(gUnknown_8418E8D);
+ sub_80C4ED0(FALSE);
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 10:
+ LoadPalette(&gUnknown_83EF23C[15], 0x00, 2);
+ LoadPalette(&gUnknown_83EF23C[15], 0x10, 2);
+ LoadPalette(&gUnknown_83EF23C[15], 0x20, 2);
+ LoadPalette(&gUnknown_83EF23C[15], 0x30, 2);
+ LoadPalette(&gUnknown_83EF23C[15], 0x40, 2);
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 11:
+ FillBgTilemapBufferRect(1, 0x002, 0, 1, 1, 1, 0x2);
+ FillBgTilemapBufferRect(1, 0x003, 1, 1, 1, 1, 0x2);
+ FillBgTilemapBufferRect(1, 0x03E, 28, 1, 1, 1, 0x2);
+ FillBgTilemapBufferRect(1, 0x03F, 29, 1, 1, 1, 0x2);
+ FillBgTilemapBufferRect(1, 0x03D, 2, 1, 26, 1, 0x2);
+ CopyBgTilemapBufferToVram(1);
+ m4aSongNumStop(SE_CARD3);
+ PlaySE(SE_HI_TURUN);
+ gUnknown_20399E0->field_CCC++;
+ break;
+ case 12:
+ if (gUnknown_20399E0->field_CD0 == 2)
+ {
+ sub_80C22C4(6, TRUE);
+ gUnknown_20399E0->field_CCC++;
+ sub_80C4C48(0);
+ }
+ else
+ {
+ gUnknown_20399E0->field_CD0--;
+ sub_80C4C48(gUnknown_20399E0->field_CD0);
+ }
+ break;
+ case 13:
+ sub_80C4B30(0);
+ sub_80C0BB0();
+ gUnknown_20399E0->field_CCC++;
+ break;
+ default:
+ sub_80C2604();
+ sub_80C2594(taskId);
+ break;
+ }
+}
+
+bool8 sub_80C29A4(void)
+{
+ sub_80C2B48();
+ if (gUnknown_20399E0->field_000[0]->field_400->pos1.x == 0)
+ {
+ return TRUE;
+ }
+ else if (gUnknown_20399E0->field_CCE > 17)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x -= 1;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x -= 1;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x -= 1;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x += 1;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x += 1;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x += 1;
+ }
+ else if (gUnknown_20399E0->field_CCE > 14)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x -= 2;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x -= 2;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x -= 2;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x += 2;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x += 2;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x += 2;
+ }
+ else if (gUnknown_20399E0->field_CCE > 10)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x -= 3;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x -= 3;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x -= 3;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x += 3;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x += 3;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x += 3;
+ }
+ else if (gUnknown_20399E0->field_CCE > 6)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x -= 5;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x -= 5;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x -= 5;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x += 5;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x += 5;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x += 5;
+ }
+ else
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x -= 8;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x -= 8;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x -= 8;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x += 8;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x += 8;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x += 8;
+ }
+ gUnknown_20399E0->field_CCE++;
+ return FALSE;
+}
+
+void sub_80C2B48(void)
+{
+ struct UnkStruct_80C4CF0 data;
+ data.v0 = gUnknown_20399E0->field_000[0]->field_400->pos1.x;
+ data.v2 = 0x10;
+ data.v4 = gUnknown_20399E0->field_000[3]->field_400->pos1.x;
+ data.v6 = 0xA0;
+ sub_80C4CF0(0, &data);
+}
+
+void sub_80C2B9C(void)
+{
+ struct UnkStruct_80C4CF0 data;
+ data.v0 = gUnknown_20399E0->field_000[0]->field_404 + 16;
+ data.v2 = 0x10;
+ data.v4 = gUnknown_20399E0->field_000[3]->field_404 - 16;
+ data.v6 = 0xA0;
+ sub_80C4C2C(0, 2, 0);
+ sub_80C4C74(18, 0);
+ sub_80C4C88(16);
+ sub_80C4CF0(0, &data);
+ sub_80C4C9C(0, 0);
+}
+
+void sub_80C2C1C(u8 taskId)
+{
+ gTasks[taskId].func = sub_80C2C7C;
+}
+
+void sub_80C2C38(void)
+{
+ sub_80C210C(0, 4, 4);
+ sub_80C210C(1, 5, 5);
+ sub_80C210C(2, 6, 6);
+ sub_80C210C(3, 7, 7);
+ sub_80C210C(4, 8, 8);
+ sub_80C210C(5, 9, 9);
+}
+
+void sub_80C2C7C(u8 taskId)
+{
+ switch (gUnknown_20399E0->field_CCF)
+ {
+ case 0:
+ sub_80C4ED0(TRUE);
+ CopyWindowToVram(3, 3);
+ CopyWindowToVram(4, 3);
+ gUnknown_20399E0->field_CCF++;
+ break;
+ case 1:
+ sub_80C2C38();
+ gUnknown_20399E0->field_CCF++;
+ break;
+ case 2:
+ LoadPalette(gUnknown_83EF2DC, 0x00, 0xA0);
+ gUnknown_20399E0->field_CCF++;
+ break;
+ case 3:
+ sub_80C22C4(6, FALSE);
+ sub_80C4324(1);
+ sub_80C3154(TRUE);
+ sub_80C4960(255, 25, 1);
+ sub_80C48BC(255, 25, 1);
+ gUnknown_20399E0->field_CCE = 0;
+ gUnknown_20399E0->field_CD0 = 0;
+ gUnknown_20399E0->field_CCF++;
+ break;
+ case 4:
+ sub_80C253C();
+ gUnknown_20399E0->field_CCF++;
+ break;
+ case 5:
+ if (gUnknown_20399E0->field_CD0 == 15)
+ {
+ sub_80C4C48(gUnknown_20399E0->field_CD0);
+ gUnknown_20399E0->field_CCF++;
+ }
+ else
+ {
+ gUnknown_20399E0->field_CD0++;
+ sub_80C4C48(gUnknown_20399E0->field_CD0);
+ }
+ break;
+ case 6:
+ sub_80C2B9C();
+ sub_80C2B48();
+ PlaySE(SE_CARD2);
+ gUnknown_20399E0->field_CCF++;
+ break;
+ case 7:
+ if (sub_80C2E1C() == TRUE)
+ gUnknown_20399E0->field_CCF++;
+ break;
+ default:
+ gTasks[taskId].func = gUnknown_20399E0->field_CC8;
+ break;
+ }
+}
+
+
+bool8 sub_80C2E1C(void)
+{
+ sub_80C2B48();
+ if (gUnknown_20399E0->field_000[0]->field_400->pos1.x == 104)
+ {
+ return TRUE;
+ }
+ else if (gUnknown_20399E0->field_CCE > 17)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x += 1;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x += 1;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x += 1;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x -= 1;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x -= 1;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x -= 1;
+ }
+ else if (gUnknown_20399E0->field_CCE > 14)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x += 2;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x += 2;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x += 2;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x -= 2;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x -= 2;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x -= 2;
+ }
+ else if (gUnknown_20399E0->field_CCE > 10)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x += 3;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x += 3;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x += 3;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x -= 3;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x -= 3;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x -= 3;
+ }
+ else if (gUnknown_20399E0->field_CCE > 6)
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x += 5;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x += 5;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x += 5;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x -= 5;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x -= 5;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x -= 5;
+ }
+ else
+ {
+ gUnknown_20399E0->field_000[0]->field_400->pos1.x += 8;
+ gUnknown_20399E0->field_000[1]->field_400->pos1.x += 8;
+ gUnknown_20399E0->field_000[2]->field_400->pos1.x += 8;
+ gUnknown_20399E0->field_000[3]->field_400->pos1.x -= 8;
+ gUnknown_20399E0->field_000[4]->field_400->pos1.x -= 8;
+ gUnknown_20399E0->field_000[5]->field_400->pos1.x -= 8;
+ }
+ gUnknown_20399E0->field_CCE++;
+ return FALSE;
+}
+
+void sub_80C2FC0(struct Sprite * sprite)
+{
+ if (gUnknown_20399E4->field_00C != 0)
+ {
+ sprite->pos1.x += gUnknown_20399E4->field_008;
+ sprite->pos1.y += gUnknown_20399E4->field_00A;
+ gUnknown_20399E4->field_00C--;
+ }
+ else
+ {
+ gUnknown_20399E4->field_01C->pos1.x = 8 * gUnknown_20399E4->field_000 + 36;
+ gUnknown_20399E4->field_01C->pos1.y = 8 * gUnknown_20399E4->field_002 + 36;
+ }
+}
+
+void sub_80C3008(u16 a0, u16 a1)
+{
+ gUnknown_20399E4 = AllocZeroed(sizeof(struct UnkStruct_20399E4));
+ LZ77UnCompWram(gUnknown_83EF4E0, gUnknown_20399E4->field_024);
+ gUnknown_20399E4->field_020 = a0;
+ gUnknown_20399E4->field_022 = a1;
+ sub_80C3D40();
+ gUnknown_20399E4->field_004 = 8 * gUnknown_20399E4->field_000 + 36;
+ gUnknown_20399E4->field_006 = 8 * gUnknown_20399E4->field_002 + 36;
+ gUnknown_20399E4->field_010 = sub_80C31C0;
+ gUnknown_20399E4->field_016 = sub_80C35DC(gUnknown_20399E4->field_014);
+ gUnknown_20399E4->field_018 = sub_80C3878(sub_80C4164(sub_80C0E20(), 1, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000));
+ sub_80C309C();
+}
+
+void sub_80C309C(void)
+{
+ u8 spriteId;
+ struct SpriteSheet spriteSheet = {
+ .data = gUnknown_20399E4->field_024,
+ .size = 0x100,
+ .tag = gUnknown_20399E4->field_020
+ };
+ struct SpritePalette spritePalette = {
+ .data = gUnknown_83EF25C,
+ .tag = gUnknown_20399E4->field_022
+ };
+ struct SpriteTemplate template = {
+ .tileTag = gUnknown_20399E4->field_020,
+ .paletteTag = gUnknown_20399E4->field_022,
+ .oam = &gUnknown_83F1C3C,
+ .anims = gUnknown_83F1C50,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C2FC0
+ };
+
+ LoadSpriteSheet(&spriteSheet);
+ LoadSpritePalette(&spritePalette);
+ spriteId = CreateSprite(&template, gUnknown_20399E4->field_004, gUnknown_20399E4->field_006, 0);
+ gUnknown_20399E4->field_01C = &gSprites[spriteId];
+ sub_80C3154(TRUE);
+}
+
+void sub_80C3154(bool8 a0)
+{
+ gUnknown_20399E4->field_01C->invisible = a0;
+}
+
+void sub_80C3178(void)
+{
+ gUnknown_20399E4->field_00E = 0;
+}
+
+void sub_80C3188(void)
+{
+ if (gUnknown_20399E4->field_01C != NULL)
+ {
+ DestroySprite(gUnknown_20399E4->field_01C);
+ FreeSpriteTilesByTag(gUnknown_20399E4->field_020);
+ FreeSpritePaletteByTag(gUnknown_20399E4->field_022);
+ }
+ FREE_IF_NOT_NULL(gUnknown_20399E4);
+}
+
+u8 sub_80C31C0(void)
+{
+ u8 ret = 0;
+ gUnknown_20399E4->field_008 = 0;
+ gUnknown_20399E4->field_00A = 0;
+
+ if (JOY_HELD(DPAD_UP))
+ {
+ if (gUnknown_20399E4->field_002 > 0)
+ {
+ gUnknown_20399E4->field_00A = -2;
+ ret = 1;
+ }
+ }
+ if (JOY_HELD(DPAD_DOWN))
+ {
+ if (gUnknown_20399E4->field_002 < 14)
+ {
+ gUnknown_20399E4->field_00A = 2;
+ ret = 1;
+ }
+ }
+ if (JOY_HELD(DPAD_RIGHT))
+ {
+ if (gUnknown_20399E4->field_000 < 21)
+ {
+ gUnknown_20399E4->field_008 = 2;
+ ret = 1;
+ }
+ }
+ if (JOY_HELD(DPAD_LEFT))
+ {
+ if (gUnknown_20399E4->field_000 > 0)
+ {
+ gUnknown_20399E4->field_008 = -2;
+ ret = 1;
+ }
+ }
+ if (JOY_NEW(A_BUTTON))
+ {
+ ret = 4;
+ if (gUnknown_20399E4->field_000 == 21 && gUnknown_20399E4->field_002 == 13)
+ {
+ PlaySE(SE_W063B);
+ ret = 6;
+ }
+ if (gUnknown_20399E4->field_000 == 21 && gUnknown_20399E4->field_002 == 11)
+ {
+ if (sub_80C0E04(0) == TRUE)
+ {
+ PlaySE(SE_W063B);
+ ret = 5;
+ }
+ }
+ }
+ else if (!JOY_NEW(B_BUTTON))
+ {
+ if (JOY_REPT(START_BUTTON))
+ {
+ sub_80C3418();
+ gUnknown_20399E4->field_014 = sub_80C4164(sub_80C0E20(), 0, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000);
+ gUnknown_20399E4->field_016 = sub_80C35DC(gUnknown_20399E4->field_014);
+ gUnknown_20399E4->field_018 = sub_80C3878(sub_80C4164(sub_80C0E20(), 1, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000));
+ return 3;
+ }
+ else if (JOY_NEW(SELECT_BUTTON) && gUnknown_20399D4->field_47BC == CB2_ReturnToField)
+ {
+ ret = 6;
+ }
+ }
+ else
+ {
+ ret = 6;
+ }
+ if (ret == 1)
+ {
+ gUnknown_20399E4->field_00C = 4;
+ gUnknown_20399E4->field_010 = sub_80C3348;
+ }
+ return ret;
+}
+
+u8 sub_80C3348(void)
+{
+ if (gUnknown_20399E4->field_00C != 0)
+ return 2;
+ if (gUnknown_20399E4->field_008 > 0)
+ gUnknown_20399E4->field_000++;
+ if (gUnknown_20399E4->field_008 < 0)
+ gUnknown_20399E4->field_000--;
+ if (gUnknown_20399E4->field_00A > 0)
+ gUnknown_20399E4->field_002++;
+ if (gUnknown_20399E4->field_00A < 0)
+ gUnknown_20399E4->field_002--;
+ gUnknown_20399E4->field_014 = sub_80C4164(sub_80C0E20(), 0, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000);
+ gUnknown_20399E4->field_016 = sub_80C35DC(gUnknown_20399E4->field_014);
+ gUnknown_20399E4->field_018 = sub_80C3878(sub_80C4164(sub_80C0E20(), 1, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000));
+ gUnknown_20399E4->field_010 = sub_80C31C0;
+ return 3;
+}
+
+u8 sub_80C3400(void)
+{
+ return gUnknown_20399E4->field_010();
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 963159658..9e5e91782 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -267,35 +267,10 @@ gUnknown_203998C: @ 203998C
.include "src/mail.o"
.align 2
.include "src/menu_helpers.o"
-
.align 2
-gUnknown_20399D4: @ 20399D4
- .space 0x4
-
-gUnknown_20399D8: @ 20399D8
- .space 0x4
-
-gUnknown_20399DC: @ 20399DC
- .space 0x4
-
-gUnknown_20399E0: @ 20399E0
- .space 0x4
-
-gUnknown_20399E4: @ 20399E4
- .space 0x4
-
-gUnknown_20399E8: @ 20399E8
- .space 0x4
-
-gUnknown_20399EC: @ 20399EC
- .space 0x4
-
-gUnknown_20399F0: @ 20399F0
- .space 0xC
-
-gUnknown_20399FC: @ 20399FC
- .space 0x4
+ .include "src/region_map.o"
+ .align 2
gAIScriptPtr: @ 2039A00
.space 0x4