Start decompiling pause screen code

This commit is contained in:
y.demaisonregne 2023-03-31 00:31:54 +02:00
parent c205c43b24
commit 1edc9dbb2b
18 changed files with 574 additions and 221 deletions

View File

@ -2,7 +2,7 @@
This is a work in progress decompilation of Metroid - Zero Mission.
2359/2721 functions decompiled (86.70%, 362 left)
2369/2721 functions decompiled (87.06%, 354 left)
Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0
**This decomp is not shiftable, don't use it as a base to work on anything**

View File

@ -2264,7 +2264,7 @@ sub_08061f60: @ 0x08061f60
ldrb r0, [r0]
cmp r0, #0
beq lbl_08061f90
ldr r0, lbl_08061f9c @ =0x08754bb4
ldr r0, lbl_08061f9c @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -2286,7 +2286,7 @@ lbl_08061f90:
bx r0
.align 2, 0
lbl_08061f98: .4byte sNonGameplayRamPointer
lbl_08061f9c: .4byte 0x08754bb4
lbl_08061f9c: .4byte sEwramPointer
thumb_func_start CutsceneStartBackgroundFading
CutsceneStartBackgroundFading: @ 0x08061fa0
@ -2308,7 +2308,7 @@ CutsceneStartBackgroundFading: @ 0x08061fa0
strh r7, [r0]
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r0, lbl_08061fec @ =0x08754bb4
ldr r0, lbl_08061fec @ =sEwramPointer
ldr r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -2328,7 +2328,7 @@ lbl_08061fde:
mov pc, r0
.align 2, 0
lbl_08061fe8: .4byte sNonGameplayRamPointer
lbl_08061fec: .4byte 0x08754bb4
lbl_08061fec: .4byte sEwramPointer
lbl_08061ff0: .4byte lbl_08061ff4
lbl_08061ff4: @ jump table
.4byte lbl_0806201c @ case 0
@ -2353,7 +2353,7 @@ lbl_0806201c:
adds r2, r6, #0
adds r3, r4, #0
bl BitFill
ldr r0, lbl_08062060 @ =0x08754bb4
ldr r0, lbl_08062060 @ =sEwramPointer
ldr r2, [r0]
adds r2, r2, r4
str r5, [sp]
@ -2375,7 +2375,7 @@ lbl_0806201c:
strb r3, [r0]
b lbl_0806216e
.align 2, 0
lbl_08062060: .4byte 0x08754bb4
lbl_08062060: .4byte sEwramPointer
lbl_08062064: .4byte sNonGameplayRamPointer
lbl_08062068:
movs r6, #0xa0
@ -2389,7 +2389,7 @@ lbl_08062068:
adds r2, r6, #0
adds r3, r4, #0
bl BitFill
ldr r0, lbl_080620b0 @ =0x08754bb4
ldr r0, lbl_080620b0 @ =sEwramPointer
ldr r2, [r0]
adds r2, r2, r4
str r5, [sp]
@ -2412,7 +2412,7 @@ lbl_08062068:
strb r1, [r0]
b lbl_0806216e
.align 2, 0
lbl_080620b0: .4byte 0x08754bb4
lbl_080620b0: .4byte sEwramPointer
lbl_080620b4: .4byte sNonGameplayRamPointer
lbl_080620b8:
movs r6, #0xa0
@ -2426,7 +2426,7 @@ lbl_080620b8:
adds r2, r6, #0
adds r3, r4, #0
bl BitFill
ldr r0, lbl_08062100 @ =0x08754bb4
ldr r0, lbl_08062100 @ =sEwramPointer
ldr r2, [r0]
adds r2, r2, r4
str r5, [sp]
@ -2449,7 +2449,7 @@ lbl_080620b8:
strb r1, [r0]
b lbl_0806216e
.align 2, 0
lbl_08062100: .4byte 0x08754bb4
lbl_08062100: .4byte sEwramPointer
lbl_08062104: .4byte sNonGameplayRamPointer
lbl_08062108:
movs r0, #0x14
@ -2619,7 +2619,7 @@ lbl_08062230:
ldrb r0, [r1]
cmp r0, #0x1f
bhi lbl_080622b0
ldr r4, lbl_080622a8 @ =0x08754bb4
ldr r4, lbl_080622a8 @ =sEwramPointer
ldr r0, [r4]
str r0, [sp, #4]
movs r3, #0x80
@ -2673,10 +2673,10 @@ lbl_08062230:
bgt lbl_08062380
b lbl_08062368
.align 2, 0
lbl_080622a8: .4byte 0x08754bb4
lbl_080622a8: .4byte sEwramPointer
lbl_080622ac: .4byte 0x0000ffff
lbl_080622b0:
ldr r0, lbl_080622d8 @ =0x08754bb4
ldr r0, lbl_080622d8 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -2696,7 +2696,7 @@ lbl_080622b0:
strb r0, [r1]
b lbl_080623fe
.align 2, 0
lbl_080622d8: .4byte 0x08754bb4
lbl_080622d8: .4byte sEwramPointer
lbl_080622dc:
adds r0, r2, #0
adds r0, #0xbc
@ -2721,7 +2721,7 @@ lbl_080622f8:
ldrb r0, [r1]
cmp r0, #0x1f
bhi lbl_08062384
ldr r4, lbl_0806236c @ =0x08754bb4
ldr r4, lbl_0806236c @ =sEwramPointer
ldr r0, [r4]
str r0, [sp, #4]
movs r3, #0x80
@ -2773,7 +2773,7 @@ lbl_08062368:
strb r0, [r2]
b lbl_080623fe
.align 2, 0
lbl_0806236c: .4byte 0x08754bb4
lbl_0806236c: .4byte sEwramPointer
lbl_08062370: .4byte 0x0000ffff
lbl_08062374:
ldrb r0, [r2]
@ -2792,7 +2792,7 @@ lbl_08062384:
cmp r0, #3
bne lbl_080623b0
ldr r1, lbl_080623a8 @ =0x00007fff
ldr r0, lbl_080623ac @ =0x08754bb4
ldr r0, lbl_080623ac @ =sEwramPointer
ldr r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -2804,9 +2804,9 @@ lbl_08062384:
b lbl_080623c6
.align 2, 0
lbl_080623a8: .4byte 0x00007fff
lbl_080623ac: .4byte 0x08754bb4
lbl_080623ac: .4byte sEwramPointer
lbl_080623b0:
ldr r0, lbl_080623dc @ =0x08754bb4
ldr r0, lbl_080623dc @ =sEwramPointer
ldr r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -2828,7 +2828,7 @@ lbl_080623c6:
strb r1, [r0]
b lbl_080623fe
.align 2, 0
lbl_080623dc: .4byte 0x08754bb4
lbl_080623dc: .4byte sEwramPointer
lbl_080623e0: .4byte sNonGameplayRamPointer
lbl_080623e4:
adds r0, r2, #0

View File

@ -1098,7 +1098,7 @@ lbl_080678a0:
ldrh r3, [r4, #0x12]
adds r3, #1
strh r3, [r4, #0x12]
ldr r0, lbl_08067934 @ =0x08754bb4
ldr r0, lbl_08067934 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0xa0
lsls r2, r2, #2
@ -1153,7 +1153,7 @@ lbl_08067910:
lbl_08067928: .4byte 0x0000fffc
lbl_0806792c: .4byte 0x0808c99c
lbl_08067930: .4byte gFrameCounter8Bit
lbl_08067934: .4byte 0x08754bb4
lbl_08067934: .4byte sEwramPointer
lbl_08067938: .4byte 0x00003aa0
lbl_0806793c: .4byte 0x05000280
lbl_08067940: .4byte 0x083f0390
@ -1520,7 +1520,7 @@ lbl_08067ba2:
movs r1, #0
bl PlayMusic
ldr r1, lbl_08067c9c @ =0x05000200
ldr r0, lbl_08067d08 @ =0x08754bb4
ldr r0, lbl_08067d08 @ =sEwramPointer
ldr r2, [r0]
movs r0, #0xe8
lsls r0, r0, #6
@ -1589,7 +1589,7 @@ lbl_08067cf8: .4byte 0x08760090
lbl_08067cfc: .4byte 0x000001fb
lbl_08067d00: .4byte 0x000001fd
lbl_08067d04: .4byte gWrittenToBLDY_NonGameplay
lbl_08067d08: .4byte 0x08754bb4
lbl_08067d08: .4byte sEwramPointer
thumb_func_start enter_tourian_subroutine
enter_tourian_subroutine: @ 0x08067d0c
@ -2389,7 +2389,7 @@ lbl_0806834a:
lbl_08068358:
movs r6, #0xa0
lsls r6, r6, #0x13
ldr r0, lbl_080683b8 @ =0x08754bb4
ldr r0, lbl_080683b8 @ =sEwramPointer
mov r8, r0
ldr r2, [r0]
movs r1, #0xd0
@ -2432,7 +2432,7 @@ lbl_08068358:
movs r1, #3
b lbl_0806856e
.align 2, 0
lbl_080683b8: .4byte 0x08754bb4
lbl_080683b8: .4byte sEwramPointer
lbl_080683bc: .4byte sNonGameplayRamPointer
lbl_080683c0:
ldr r1, [r7]
@ -2448,7 +2448,7 @@ lbl_080683ce:
ldrb r0, [r0]
cmp r0, #0x1f
bhi lbl_08068450
ldr r5, lbl_08068448 @ =0x08754bb4
ldr r5, lbl_08068448 @ =sEwramPointer
ldr r0, [r5]
movs r2, #0xd0
lsls r2, r2, #7
@ -2503,10 +2503,10 @@ lbl_080683ce:
lbl_08068444:
b lbl_0806852e
.align 2, 0
lbl_08068448: .4byte 0x08754bb4
lbl_08068448: .4byte sEwramPointer
lbl_0806844c: .4byte 0x0000ffff
lbl_08068450:
ldr r0, lbl_08068470 @ =0x08754bb4
ldr r0, lbl_08068470 @ =sEwramPointer
ldr r2, [r0]
movs r0, #0xd0
lsls r0, r0, #7
@ -2522,11 +2522,11 @@ lbl_08068450:
bl DMATransfer
b lbl_08068562
.align 2, 0
lbl_08068470: .4byte 0x08754bb4
lbl_08068470: .4byte sEwramPointer
lbl_08068474:
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r0, lbl_080684a8 @ =0x08754bb4
ldr r0, lbl_080684a8 @ =sEwramPointer
ldr r2, [r0]
movs r0, #0xd0
lsls r0, r0, #7
@ -2550,7 +2550,7 @@ lbl_08068474:
movs r1, #5
b lbl_0806856e
.align 2, 0
lbl_080684a8: .4byte 0x08754bb4
lbl_080684a8: .4byte sEwramPointer
lbl_080684ac: .4byte sNonGameplayRamPointer
lbl_080684b0:
mov r8, r7
@ -2566,7 +2566,7 @@ lbl_080684b0:
ldrb r0, [r2]
cmp r0, #0x1f
bhi lbl_08068548
ldr r4, lbl_08068534 @ =0x08754bb4
ldr r4, lbl_08068534 @ =sEwramPointer
ldr r0, [r4]
movs r3, #0xd0
lsls r3, r3, #7
@ -2619,7 +2619,7 @@ lbl_0806852e:
strb r0, [r1]
b lbl_08068570
.align 2, 0
lbl_08068534: .4byte 0x08754bb4
lbl_08068534: .4byte sEwramPointer
lbl_08068538: .4byte 0x0000ffff
lbl_0806853c:
ldrb r0, [r1]
@ -2630,7 +2630,7 @@ lbl_08068544:
movs r0, #0x1f
b lbl_0806852e
lbl_08068548:
ldr r0, lbl_080685b0 @ =0x08754bb4
ldr r0, lbl_080685b0 @ =sEwramPointer
ldr r2, [r0]
movs r3, #0xd8
lsls r3, r3, #7
@ -2659,7 +2659,7 @@ lbl_08068570:
cmp r0, #0
beq lbl_080685a2
lbl_0806857c:
ldr r0, lbl_080685b0 @ =0x08754bb4
ldr r0, lbl_080685b0 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xd8
lsls r0, r0, #7
@ -2687,7 +2687,7 @@ lbl_080685a4:
pop {r1}
bx r1
.align 2, 0
lbl_080685b0: .4byte 0x08754bb4
lbl_080685b0: .4byte sEwramPointer
lbl_080685b4: .4byte sNonGameplayRamPointer
thumb_func_start sub_080685b8
@ -2701,7 +2701,7 @@ sub_080685b8: @ 0x080685b8
bne lbl_08068614
movs r6, #0xa0
lsls r6, r6, #0x13
ldr r0, lbl_08068610 @ =0x08754bb4
ldr r0, lbl_08068610 @ =sEwramPointer
mov r8, r0
ldr r2, [r0]
movs r0, #0xd0
@ -2733,11 +2733,11 @@ sub_080685b8: @ 0x080685b8
bl DMATransfer
b lbl_08068630
.align 2, 0
lbl_08068610: .4byte 0x08754bb4
lbl_08068610: .4byte sEwramPointer
lbl_08068614:
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r0, lbl_08068648 @ =0x08754bb4
ldr r0, lbl_08068648 @ =sEwramPointer
ldr r2, [r0]
movs r0, #0xd0
lsls r0, r0, #7
@ -2761,7 +2761,7 @@ lbl_08068630:
pop {r0}
bx r0
.align 2, 0
lbl_08068648: .4byte 0x08754bb4
lbl_08068648: .4byte sEwramPointer
lbl_0806864c: .4byte sNonGameplayRamPointer
thumb_func_start sub_08068650
@ -2774,7 +2774,7 @@ sub_08068650: @ 0x08068650
ldrb r0, [r0]
cmp r0, #0
beq lbl_08068684
ldr r0, lbl_08068690 @ =0x08754bb4
ldr r0, lbl_08068690 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xd8
lsls r0, r0, #7
@ -2798,7 +2798,7 @@ lbl_08068684:
bx r0
.align 2, 0
lbl_0806868c: .4byte sNonGameplayRamPointer
lbl_08068690: .4byte 0x08754bb4
lbl_08068690: .4byte sEwramPointer
thumb_func_start sub_08068694
sub_08068694: @ 0x08068694
@ -6992,7 +6992,7 @@ lbl_0806a7d4: .4byte 0x0000115f
lbl_0806a7d8: .4byte 0x0600c000
lbl_0806a7dc:
ldr r0, lbl_0806a81c @ =0x08407ba8
ldr r5, lbl_0806a820 @ =0x08754bb4
ldr r5, lbl_0806a820 @ =sEwramPointer
ldr r1, [r5]
movs r4, #0x90
lsls r4, r4, #8
@ -7020,7 +7020,7 @@ lbl_0806a7dc:
b lbl_0806a8f6
.align 2, 0
lbl_0806a81c: .4byte 0x08407ba8
lbl_0806a820: .4byte 0x08754bb4
lbl_0806a820: .4byte sEwramPointer
lbl_0806a824: .4byte 0x0600c800
lbl_0806a828:
movs r0, #1
@ -7088,7 +7088,7 @@ lbl_0806a8a4:
bl DMATransfer
lbl_0806a8ba:
ldr r0, lbl_0806a94c @ =0x08407d90
ldr r4, lbl_0806a950 @ =0x08754bb4
ldr r4, lbl_0806a950 @ =sEwramPointer
ldr r1, [r4]
movs r2, #0x98
lsls r2, r2, #8
@ -7157,7 +7157,7 @@ lbl_0806a8f6:
.align 2, 0
lbl_0806a948: .4byte 0x0600c000
lbl_0806a94c: .4byte 0x08407d90
lbl_0806a950: .4byte 0x08754bb4
lbl_0806a950: .4byte sEwramPointer
lbl_0806a954: .4byte 0x08407f84
lbl_0806a958: .4byte sNonGameplayRamPointer
lbl_0806a95c: .4byte 0x08408c90
@ -7258,7 +7258,7 @@ lbl_0806aa40:
bl check_non_explored_area_has_hint
bl determine_maps_viewable
bl sub_0806fe18
ldr r0, lbl_0806aac8 @ =0x08754bb4
ldr r0, lbl_0806aac8 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x98
lsls r2, r2, #8
@ -7320,7 +7320,7 @@ lbl_0806aa88:
strh r0, [r1]
b lbl_0806ab30
.align 2, 0
lbl_0806aac8: .4byte 0x08754bb4
lbl_0806aac8: .4byte sEwramPointer
lbl_0806aacc: .4byte 0x0600d000
lbl_0806aad0: .4byte sNonGameplayRamPointer
lbl_0806aad4: .4byte gBG1HOFS_NonGameplay
@ -7908,7 +7908,7 @@ determine_maps_viewable: @ 0x0806aed4
lsls r5, r5, #2
ldr r0, lbl_0806b000 @ =0x00000251
mov sl, r0
ldr r0, lbl_0806b004 @ =0x08754bb4
ldr r0, lbl_0806b004 @ =sEwramPointer
mov sb, r0
movs r7, #0
ldr r6, lbl_0806b008 @ =0x000090d0
@ -7954,7 +7954,7 @@ lbl_0806afe2:
lbl_0806aff8: .4byte sNonGameplayRamPointer
lbl_0806affc: .4byte gEquipment
lbl_0806b000: .4byte 0x00000251
lbl_0806b004: .4byte 0x08754bb4
lbl_0806b004: .4byte sEwramPointer
lbl_0806b008: .4byte 0x000090d0
thumb_func_start sub_0806b00c
@ -7967,7 +7967,7 @@ sub_0806b00c: @ 0x0806b00c
lsrs r1, r1, #0x18
ldr r0, lbl_0806b074 @ =0x0600cc40
mov ip, r0
ldr r0, lbl_0806b078 @ =0x08754bb4
ldr r0, lbl_0806b078 @ =sEwramPointer
ldr r0, [r0]
movs r3, #0x97
lsls r3, r3, #8
@ -8014,7 +8014,7 @@ lbl_0806b05a:
b lbl_0806b0ee
.align 2, 0
lbl_0806b074: .4byte 0x0600cc40
lbl_0806b078: .4byte 0x08754bb4
lbl_0806b078: .4byte sEwramPointer
lbl_0806b07c: .4byte sNonGameplayRamPointer
lbl_0806b080:
cmp r3, #0
@ -8251,7 +8251,7 @@ lbl_0806b23c: .4byte 0x0840d224
sub_0806b240: @ 0x0806b240
push {r4, r5, r6, lr}
movs r6, #0
bl check_for_maintained_input
bl CheckForMaintainedInput
ldr r0, lbl_0806b264 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r0, [r1, #0xa]
@ -8920,7 +8920,7 @@ lbl_0806b734:
bne lbl_0806b748
movs r0, #0
lbl_0806b748:
ldr r1, lbl_0806b770 @ =0x08754bb4
ldr r1, lbl_0806b770 @ =sEwramPointer
lsls r0, r0, #7
movs r2, #0x95
lsls r2, r2, #8
@ -8939,7 +8939,7 @@ lbl_0806b748:
bx r0
.align 2, 0
lbl_0806b76c: .4byte sNonGameplayRamPointer
lbl_0806b770: .4byte 0x08754bb4
lbl_0806b770: .4byte sEwramPointer
lbl_0806b774: .4byte 0x0600c800
thumb_func_start sub_0806b778
@ -9080,7 +9080,7 @@ lbl_0806b888:
ldrb r0, [r0, #0x12]
cmp r0, #2
bne lbl_0806b8b8
ldr r0, lbl_0806b8b0 @ =0x08754bb4
ldr r0, lbl_0806b8b0 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0x80
lsls r0, r0, #8
@ -9095,10 +9095,10 @@ lbl_0806b888:
b lbl_0806b8d2
.align 2, 0
lbl_0806b8ac: .4byte gEquipment
lbl_0806b8b0: .4byte 0x08754bb4
lbl_0806b8b0: .4byte sEwramPointer
lbl_0806b8b4: .4byte 0x0600c000
lbl_0806b8b8:
ldr r0, lbl_0806b8d8 @ =0x08754bb4
ldr r0, lbl_0806b8d8 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0xf0
lsls r3, r3, #7
@ -9114,7 +9114,7 @@ lbl_0806b8d2:
movs r4, #1
b lbl_0806b9da
.align 2, 0
lbl_0806b8d8: .4byte 0x08754bb4
lbl_0806b8d8: .4byte sEwramPointer
lbl_0806b8dc: .4byte 0x0600c000
lbl_0806b8e0:
movs r0, #0xf
@ -9591,7 +9591,7 @@ lbl_0806bc9e:
lbl_0806bcbc: .4byte sNonGameplayRamPointer
lbl_0806bcc0: .4byte 0x0000fbff
lbl_0806bcc4:
ldr r0, lbl_0806bce0 @ =0x08754bb4
ldr r0, lbl_0806bce0 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0x88
lsls r0, r0, #8
@ -9605,11 +9605,11 @@ lbl_0806bcc4:
bl DMATransfer
b lbl_0806bef0
.align 2, 0
lbl_0806bce0: .4byte 0x08754bb4
lbl_0806bce0: .4byte sEwramPointer
lbl_0806bce4: .4byte 0x0600d000
lbl_0806bce8:
ldr r1, lbl_0806bd10 @ =0x06006000
ldr r5, lbl_0806bd14 @ =0x08754bb4
ldr r5, lbl_0806bd14 @ =sEwramPointer
ldr r2, [r5]
movs r3, #0xa8
lsls r3, r3, #8
@ -9629,11 +9629,11 @@ lbl_0806bce8:
b lbl_0806be3c
.align 2, 0
lbl_0806bd10: .4byte 0x06006000
lbl_0806bd14: .4byte 0x08754bb4
lbl_0806bd14: .4byte sEwramPointer
lbl_0806bd18: .4byte 0x06006800
lbl_0806bd1c:
ldr r1, lbl_0806bd44 @ =0x06007000
ldr r5, lbl_0806bd48 @ =0x08754bb4
ldr r5, lbl_0806bd48 @ =sEwramPointer
ldr r2, [r5]
movs r3, #0xb8
lsls r3, r3, #8
@ -9653,11 +9653,11 @@ lbl_0806bd1c:
b lbl_0806be3c
.align 2, 0
lbl_0806bd44: .4byte 0x06007000
lbl_0806bd48: .4byte 0x08754bb4
lbl_0806bd48: .4byte sEwramPointer
lbl_0806bd4c: .4byte 0x06007800
lbl_0806bd50:
ldr r0, lbl_0806bda8 @ =0x040000d4
ldr r1, lbl_0806bdac @ =0x08754bb4
ldr r1, lbl_0806bdac @ =sEwramPointer
ldr r2, [r1]
movs r3, #0xc0
lsls r3, r3, #7
@ -9701,7 +9701,7 @@ lbl_0806bd50:
b lbl_0806bef0
.align 2, 0
lbl_0806bda8: .4byte 0x040000d4
lbl_0806bdac: .4byte 0x08754bb4
lbl_0806bdac: .4byte sEwramPointer
lbl_0806bdb0: .4byte 0x80000040
lbl_0806bdb4: .4byte 0x000061c0
lbl_0806bdb8: .4byte 0x000065c0
@ -9713,7 +9713,7 @@ lbl_0806bdbc:
ldrb r0, [r0]
cmp r0, #1
bls lbl_0806be8c
ldr r5, lbl_0806bdf8 @ =0x08754bb4
ldr r5, lbl_0806bdf8 @ =sEwramPointer
ldr r1, [r5]
movs r3, #0x80
lsls r3, r3, #7
@ -9734,7 +9734,7 @@ lbl_0806bdbc:
b lbl_0806be3c
.align 2, 0
lbl_0806bdf4: .4byte sNonGameplayRamPointer
lbl_0806bdf8: .4byte 0x08754bb4
lbl_0806bdf8: .4byte sEwramPointer
lbl_0806bdfc: .4byte 0x06006000
lbl_0806be00: .4byte 0x06006800
lbl_0806be04:
@ -9747,7 +9747,7 @@ lbl_0806be04:
asrs r0, r0, #0x18
cmp r0, #0
bge lbl_0806be8c
ldr r5, lbl_0806be4c @ =0x08754bb4
ldr r5, lbl_0806be4c @ =sEwramPointer
ldr r1, [r5]
movs r3, #0xa0
lsls r3, r3, #7
@ -9773,7 +9773,7 @@ lbl_0806be3c:
b lbl_0806bef0
.align 2, 0
lbl_0806be48: .4byte sNonGameplayRamPointer
lbl_0806be4c: .4byte 0x08754bb4
lbl_0806be4c: .4byte sEwramPointer
lbl_0806be50: .4byte 0x06007000
lbl_0806be54: .4byte 0x06007800
lbl_0806be58:
@ -9954,7 +9954,7 @@ lbl_0806bfbc: .4byte 0x0000fbff
lbl_0806bfc0: .4byte 0x00000123
lbl_0806bfc4:
ldr r1, lbl_0806bfe0 @ =0x040000d4
ldr r0, lbl_0806bfe4 @ =0x08754bb4
ldr r0, lbl_0806bfe4 @ =sEwramPointer
ldr r0, [r0]
movs r2, #0x98
lsls r2, r2, #8
@ -9968,11 +9968,11 @@ lbl_0806bfc4:
b lbl_0806c0c8
.align 2, 0
lbl_0806bfe0: .4byte 0x040000d4
lbl_0806bfe4: .4byte 0x08754bb4
lbl_0806bfe4: .4byte sEwramPointer
lbl_0806bfe8: .4byte 0x0600d000
lbl_0806bfec: .4byte 0x80000400
lbl_0806bff0:
ldr r5, lbl_0806c018 @ =0x08754bb4
ldr r5, lbl_0806c018 @ =sEwramPointer
ldr r1, [r5]
movs r4, #0xa8
lsls r4, r4, #8
@ -9992,11 +9992,11 @@ lbl_0806bff0:
ldr r2, lbl_0806c020 @ =0x06006800
b lbl_0806c04a
.align 2, 0
lbl_0806c018: .4byte 0x08754bb4
lbl_0806c018: .4byte sEwramPointer
lbl_0806c01c: .4byte 0x06006000
lbl_0806c020: .4byte 0x06006800
lbl_0806c024:
ldr r5, lbl_0806c058 @ =0x08754bb4
ldr r5, lbl_0806c058 @ =sEwramPointer
ldr r1, [r5]
movs r2, #0xb8
lsls r2, r2, #8
@ -10021,7 +10021,7 @@ lbl_0806c04a:
bl DMATransfer
b lbl_0806c0c8
.align 2, 0
lbl_0806c058: .4byte 0x08754bb4
lbl_0806c058: .4byte sEwramPointer
lbl_0806c05c: .4byte 0x06007000
lbl_0806c060: .4byte 0x06007800
lbl_0806c064:
@ -10089,8 +10089,8 @@ lbl_0806c0d4:
.align 2, 0
lbl_0806c0dc: .4byte sNonGameplayRamPointer
thumb_func_start check_for_maintained_input
check_for_maintained_input: @ 0x0806c0e0
thumb_func_start CheckForMaintainedInput
CheckForMaintainedInput: @ 0x0806c0e0
push {r4, lr}
ldr r1, lbl_0806c104 @ =gUnk_3005804
ldr r2, lbl_0806c108 @ =gChangedInput
@ -14109,7 +14109,7 @@ lbl_0806df9e:
movs r2, #0x82
lsls r2, r2, #1
adds r0, r0, r2
ldr r1, lbl_0806dff4 @ =0x08754bb4
ldr r1, lbl_0806dff4 @ =sEwramPointer
ldr r1, [r1]
str r1, [r0]
cmp r6, sb
@ -14147,7 +14147,7 @@ lbl_0806dfe4:
bx r0
.align 2, 0
lbl_0806dff0: .4byte sNonGameplayRamPointer
lbl_0806dff4: .4byte 0x08754bb4
lbl_0806dff4: .4byte sEwramPointer
lbl_0806dff8: .4byte 0x0840d674
thumb_func_start check_explored_areas
@ -14445,7 +14445,7 @@ lbl_0806e21e:
ldrb r0, [r0, #0x11]
cmp r0, #0
beq lbl_0806e278
ldr r0, lbl_0806e264 @ =0x08754bb4
ldr r0, lbl_0806e264 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xa0
lsls r0, r0, #8
@ -14470,13 +14470,13 @@ lbl_0806e21e:
b lbl_0806e2aa
.align 2, 0
lbl_0806e260: .4byte sNonGameplayRamPointer
lbl_0806e264: .4byte 0x08754bb4
lbl_0806e264: .4byte sEwramPointer
lbl_0806e268: .4byte 0x0600d000
lbl_0806e26c: .4byte 0x083fd252
lbl_0806e270: .4byte 0x05000002
lbl_0806e274: .4byte 0x00000202
lbl_0806e278:
ldr r0, lbl_0806e2bc @ =0x08754bb4
ldr r0, lbl_0806e2bc @ =sEwramPointer
ldr r1, [r0]
movs r0, #0x98
lsls r0, r0, #8
@ -14508,7 +14508,7 @@ lbl_0806e2b2:
pop {r0}
bx r0
.align 2, 0
lbl_0806e2bc: .4byte 0x08754bb4
lbl_0806e2bc: .4byte sEwramPointer
lbl_0806e2c0: .4byte 0x0600d000
lbl_0806e2c4: .4byte 0x08411362
lbl_0806e2c8: .4byte 0x05000002
@ -17691,7 +17691,7 @@ sub_0806facc: @ 0x0806facc
push {r7}
sub sp, #4
ldr r1, lbl_0806fb48 @ =0x0000ffff
ldr r0, lbl_0806fb4c @ =0x08754bb4
ldr r0, lbl_0806fb4c @ =sEwramPointer
ldr r2, [r0]
movs r0, #0x80
lsls r0, r0, #7
@ -17749,7 +17749,7 @@ lbl_0806fb34:
b lbl_0806fba0
.align 2, 0
lbl_0806fb48: .4byte 0x0000ffff
lbl_0806fb4c: .4byte 0x08754bb4
lbl_0806fb4c: .4byte sEwramPointer
lbl_0806fb50: .4byte sNonGameplayRamPointer
lbl_0806fb54: .4byte 0x08760780
lbl_0806fb58: .4byte gLanguage
@ -17774,7 +17774,7 @@ lbl_0806fb7c:
cmp r2, #0
beq lbl_0806fba0
ldrh r0, [r4]
ldr r1, lbl_0806fbb4 @ =0x08754bb4
ldr r1, lbl_0806fbb4 @ =sEwramPointer
ldr r1, [r1]
movs r3, #0xc0
lsls r3, r3, #7
@ -17800,7 +17800,7 @@ lbl_0806fba8:
pop {r0}
bx r0
.align 2, 0
lbl_0806fbb4: .4byte 0x08754bb4
lbl_0806fbb4: .4byte sEwramPointer
thumb_func_start sub_0806fbb8
sub_0806fbb8: @ 0x0806fbb8
@ -17845,7 +17845,7 @@ lbl_0806fc02:
movs r5, #3
ldr r4, lbl_0806fc4c @ =gCurrentMessage
ldr r7, lbl_0806fc50 @ =0x08760780
ldr r6, lbl_0806fc54 @ =0x08754bb4
ldr r6, lbl_0806fc54 @ =sEwramPointer
lbl_0806fc0a:
ldr r0, lbl_0806fc58 @ =gLanguage
ldrb r0, [r0]
@ -17883,7 +17883,7 @@ lbl_0806fc40:
.align 2, 0
lbl_0806fc4c: .4byte gCurrentMessage
lbl_0806fc50: .4byte 0x08760780
lbl_0806fc54: .4byte 0x08754bb4
lbl_0806fc54: .4byte sEwramPointer
lbl_0806fc58: .4byte gLanguage
lbl_0806fc5c:
ldr r0, lbl_0806fc6c @ =sNonGameplayRamPointer
@ -17924,7 +17924,7 @@ lbl_0806fca0:
movs r5, #3
ldr r4, lbl_0806fcf0 @ =gCurrentMessage
ldr r7, lbl_0806fcf4 @ =0x08760780
ldr r6, lbl_0806fcf8 @ =0x08754bb4
ldr r6, lbl_0806fcf8 @ =sEwramPointer
lbl_0806fca8:
ldr r0, lbl_0806fcfc @ =gLanguage
ldrb r0, [r0]
@ -17966,7 +17966,7 @@ lbl_0806fce8:
.align 2, 0
lbl_0806fcf0: .4byte gCurrentMessage
lbl_0806fcf4: .4byte 0x08760780
lbl_0806fcf8: .4byte 0x08754bb4
lbl_0806fcf8: .4byte sEwramPointer
lbl_0806fcfc: .4byte gLanguage
thumb_func_start update_minimap_anim_palette
@ -18117,7 +18117,7 @@ sub_0806fe18: @ 0x0806fe18
ldr r0, lbl_0806fecc @ =0x083fcef0
adds r0, #0x9e
ldrh r1, [r0]
ldr r3, lbl_0806fed0 @ =0x08754bb4
ldr r3, lbl_0806fed0 @ =sEwramPointer
ldr r0, lbl_0806fed4 @ =0x0840dd04
ldrb r0, [r0, #8]
lsls r0, r0, #1
@ -18142,7 +18142,7 @@ lbl_0806fe48:
ldrb r2, [r0]
asrs r2, r3
ands r2, r5
ldr r4, lbl_0806fed0 @ =0x08754bb4
ldr r4, lbl_0806fed0 @ =sEwramPointer
ldr r6, lbl_0806fed4 @ =0x0840dd04
cmp r2, #0
bne lbl_0806fe6e
@ -18204,7 +18204,7 @@ lbl_0806fe92:
bx r0
.align 2, 0
lbl_0806fecc: .4byte 0x083fcef0
lbl_0806fed0: .4byte 0x08754bb4
lbl_0806fed0: .4byte sEwramPointer
lbl_0806fed4: .4byte 0x0840dd04
lbl_0806fed8: .4byte sNonGameplayRamPointer
lbl_0806fedc: .4byte gCurrentArea
@ -18329,7 +18329,7 @@ lbl_0806ff80:
ldrb r5, [r0]
cmp r4, r5
bge lbl_0806ffe4
ldr r1, lbl_08070018 @ =0x08754bb4
ldr r1, lbl_08070018 @ =sEwramPointer
mov r8, r1
movs r5, #0xe0
lsls r5, r5, #7
@ -18378,7 +18378,7 @@ lbl_08070008: .4byte 0x0840de50
lbl_0807000c: .4byte 0x0840de52
lbl_08070010: .4byte 0x087603d9
lbl_08070014: .4byte 0x087603da
lbl_08070018: .4byte 0x08754bb4
lbl_08070018: .4byte sEwramPointer
lbl_0807001c: .4byte 0x0600c000
thumb_func_start sub_08070020
@ -18573,7 +18573,7 @@ draw_status_screen_tanks_amounts: @ 0x08070180
ldrb r0, [r6, #0x12]
cmp r0, #2
bne lbl_080701ec
ldr r5, lbl_080701e4 @ =0x08754bb4
ldr r5, lbl_080701e4 @ =sEwramPointer
ldr r2, [r5]
movs r0, #0x80
lsls r0, r0, #8
@ -18612,10 +18612,10 @@ draw_status_screen_tanks_amounts: @ 0x08070180
b lbl_08070314
.align 2, 0
lbl_080701e0: .4byte gEquipment
lbl_080701e4: .4byte 0x08754bb4
lbl_080701e4: .4byte sEwramPointer
lbl_080701e8: .4byte sNonGameplayRamPointer
lbl_080701ec:
ldr r5, lbl_0807031c @ =0x08754bb4
ldr r5, lbl_0807031c @ =sEwramPointer
ldr r2, [r5]
movs r0, #0xf0
lsls r0, r0, #7
@ -18756,7 +18756,7 @@ lbl_08070314:
pop {r0}
bx r0
.align 2, 0
lbl_0807031c: .4byte 0x08754bb4
lbl_0807031c: .4byte sEwramPointer
lbl_08070320: .4byte sNonGameplayRamPointer
thumb_func_start sub_08070324
@ -18914,7 +18914,7 @@ draw_status_screen_single_tank_amount: @ 0x08070414
ldr r2, lbl_080704c4 @ =0x0000b2e0
str r2, [sp, #8]
lbl_0807044a:
ldr r0, lbl_080704c8 @ =0x08754bb4
ldr r0, lbl_080704c8 @ =sEwramPointer
ldr r0, [r0]
movs r3, #0xe0
lsls r3, r3, #7
@ -18975,7 +18975,7 @@ lbl_08070494:
.align 2, 0
lbl_080704c0: .4byte 0x0000b08c
lbl_080704c4: .4byte 0x0000b2e0
lbl_080704c8: .4byte 0x08754bb4
lbl_080704c8: .4byte sEwramPointer
lbl_080704cc: .4byte 0x0840de50
lbl_080704d0: .4byte 0x0840d102
lbl_080704d4: .4byte 0x00000fff
@ -20259,7 +20259,7 @@ sub_08070e1c: @ 0x08070e1c
lsls r0, r0, #8
lbl_08070e58:
adds r5, r0, #0
ldr r0, lbl_08070eb0 @ =0x08754bb4
ldr r0, lbl_08070eb0 @ =sEwramPointer
ldr r0, [r0]
lsls r1, r1, #1
adds r0, r1, r0
@ -20306,7 +20306,7 @@ lbl_08070ea6:
bx r0
.align 2, 0
lbl_08070eac: .4byte 0x0840de50
lbl_08070eb0: .4byte 0x08754bb4
lbl_08070eb0: .4byte sEwramPointer
lbl_08070eb4: .4byte 0x00007002
lbl_08070eb8: .4byte 0x00000fff
lbl_08070ebc: .4byte 0x0600c002
@ -20368,7 +20368,7 @@ lbl_08070efa:
adds r5, #1
cmp r1, #1
ble lbl_08070f46
ldr r6, lbl_08070f54 @ =0x08754bb4
ldr r6, lbl_08070f54 @ =sEwramPointer
movs r4, #0xe0
lsls r4, r4, #7
subs r2, r1, #1
@ -20391,7 +20391,7 @@ lbl_08070f46:
.align 2, 0
lbl_08070f4c: .4byte 0x0840de50
lbl_08070f50: .4byte 0x0600c002
lbl_08070f54: .4byte 0x08754bb4
lbl_08070f54: .4byte sEwramPointer
thumb_func_start check_select_pressed_on_status_screen
check_select_pressed_on_status_screen: @ 0x08070f58

View File

@ -3764,7 +3764,7 @@ lbl_080796bc:
orrs r0, r1
strb r0, [r3]
bl sub_0807d0b0
ldr r0, lbl_08079778 @ =0x08754bb4
ldr r0, lbl_08079778 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #4
@ -3797,7 +3797,7 @@ lbl_08079766:
.align 2, 0
lbl_08079770: .4byte gSaveFilesInfo
lbl_08079774: .4byte 0x08760b79
lbl_08079778: .4byte 0x08754bb4
lbl_08079778: .4byte sEwramPointer
lbl_0807977c: .4byte 0x0600d800
lbl_08079780:
movs r0, #0x15
@ -4212,7 +4212,7 @@ lbl_08079a7c:
strb r0, [r1]
lbl_08079ae2:
bl sub_0807d0b0
ldr r0, lbl_08079b28 @ =0x08754bb4
ldr r0, lbl_08079b28 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #4
@ -4243,7 +4243,7 @@ lbl_08079b12:
lbl_08079b1c: .4byte sNonGameplayRamPointer
lbl_08079b20: .4byte gSaveFilesInfo
lbl_08079b24: .4byte 0x08760b79
lbl_08079b28: .4byte 0x08754bb4
lbl_08079b28: .4byte sEwramPointer
lbl_08079b2c: .4byte 0x0600d800
lbl_08079b30:
movs r0, #0xd
@ -4601,7 +4601,7 @@ lbl_08079dee:
movs r0, #0
strb r0, [r1]
lbl_08079df2:
ldr r0, lbl_08079e28 @ =0x08754bb4
ldr r0, lbl_08079e28 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #4
@ -4628,7 +4628,7 @@ lbl_08079df2:
ldr r1, [r3]
b lbl_08079e3e
.align 2, 0
lbl_08079e28: .4byte 0x08754bb4
lbl_08079e28: .4byte sEwramPointer
lbl_08079e2c: .4byte 0x0600d800
lbl_08079e30: .4byte sNonGameplayRamPointer
lbl_08079e34:
@ -4717,7 +4717,7 @@ sub_08079ecc: @ 0x08079ecc
mov r6, r8
push {r6}
sub sp, #4
ldr r0, lbl_08079f9c @ =0x08754bb4
ldr r0, lbl_08079f9c @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xa2
lsls r0, r0, #7
@ -4817,7 +4817,7 @@ sub_08079ecc: @ 0x08079ecc
pop {r0}
bx r0
.align 2, 0
lbl_08079f9c: .4byte 0x08754bb4
lbl_08079f9c: .4byte sEwramPointer
lbl_08079fa0: .4byte 0x0600f000
lbl_08079fa4: .4byte sNonGameplayRamPointer
lbl_08079fa8: .4byte 0x0000010f
@ -4830,7 +4830,7 @@ sub_08079fb8: @ 0x08079fb8
push {r4, r5, r6, r7, lr}
sub sp, #4
ldr r0, lbl_0807a008 @ =0x0845e3ec
ldr r1, lbl_0807a00c @ =0x08754bb4
ldr r1, lbl_0807a00c @ =sEwramPointer
ldr r1, [r1]
movs r2, #0xa2
lsls r2, r2, #7
@ -4871,7 +4871,7 @@ lbl_08079ffe:
mov pc, r0
.align 2, 0
lbl_0807a008: .4byte 0x0845e3ec
lbl_0807a00c: .4byte 0x08754bb4
lbl_0807a00c: .4byte sEwramPointer
lbl_0807a010: .4byte sNonGameplayRamPointer
lbl_0807a014: .4byte lbl_0807a018
lbl_0807a018: @ jump table
@ -4949,7 +4949,7 @@ lbl_0807a0a0:
ldrh r0, [r1]
cmp r0, #0xff
bne lbl_0807a11e
ldr r1, lbl_0807a0e8 @ =0x08754bb4
ldr r1, lbl_0807a0e8 @ =sEwramPointer
ldr r0, lbl_0807a0ec @ =0x08760bec
ldrh r0, [r0, #8]
lsls r0, r0, #1
@ -4976,7 +4976,7 @@ lbl_0807a0ce:
b lbl_0807a11e
.align 2, 0
lbl_0807a0e4: .4byte gFileScreenOptionsUnlocked
lbl_0807a0e8: .4byte 0x08754bb4
lbl_0807a0e8: .4byte sEwramPointer
lbl_0807a0ec: .4byte 0x08760bec
lbl_0807a0f0: .4byte 0x00000fff
lbl_0807a0f4:
@ -5028,7 +5028,7 @@ lbl_0807a136:
beq lbl_0807a190
ldr r7, lbl_0807a19c @ =0x08760bec
mov r4, ip
ldr r6, lbl_0807a1a0 @ =0x08754bb4
ldr r6, lbl_0807a1a0 @ =sEwramPointer
lbl_0807a148:
ldr r0, [r4]
adds r0, #0x5c
@ -5074,7 +5074,7 @@ lbl_0807a190:
.align 2, 0
lbl_0807a198: .4byte gFileScreenOptionsUnlocked
lbl_0807a19c: .4byte 0x08760bec
lbl_0807a1a0: .4byte 0x08754bb4
lbl_0807a1a0: .4byte sEwramPointer
thumb_func_start copy_time_attack_time
copy_time_attack_time: @ 0x0807a1a4
@ -5354,7 +5354,7 @@ lbl_0807a354:
adds r2, r5, #0
adds r3, r6, #0
bl BitFill
ldr r0, lbl_0807a448 @ =0x08754bb4
ldr r0, lbl_0807a448 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xa2
lsls r0, r0, #7
@ -5397,7 +5397,7 @@ lbl_0807a438: .4byte 0x0000010f
lbl_0807a43c: .4byte 0x0000011f
lbl_0807a440: .4byte 0x0000013f
lbl_0807a444: .4byte 0x0600e000
lbl_0807a448: .4byte 0x08754bb4
lbl_0807a448: .4byte sEwramPointer
lbl_0807a44c: .4byte gBG0HOFS_NonGameplay
lbl_0807a450: .4byte gBG0VOFS_NonGameplay
lbl_0807a454:
@ -5567,7 +5567,7 @@ lbl_0807a584:
adds r2, r6, #0
adds r3, r4, #0
bl BitFill
ldr r0, lbl_0807a5e8 @ =0x08754bb4
ldr r0, lbl_0807a5e8 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0xa2
lsls r3, r3, #7
@ -5604,7 +5604,7 @@ lbl_0807a584:
b lbl_0807a77e
.align 2, 0
lbl_0807a5e4: .4byte 0x0600e000
lbl_0807a5e8: .4byte 0x08754bb4
lbl_0807a5e8: .4byte sEwramPointer
lbl_0807a5ec: .4byte gBG0HOFS_NonGameplay
lbl_0807a5f0: .4byte gBG0VOFS_NonGameplay
lbl_0807a5f4: .4byte 0x00003f54
@ -5933,7 +5933,7 @@ lbl_0807a87a:
strb r1, [r0]
b lbl_0807aa20
lbl_0807a88a:
bl check_for_maintained_input
bl CheckForMaintainedInput
ldr r0, lbl_0807a8b8 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
@ -7197,7 +7197,7 @@ lbl_0807b1e4:
lsls r2, r2, #4
adds r0, r2, #0
strh r0, [r1]
ldr r0, lbl_0807b350 @ =0x08754bb4
ldr r0, lbl_0807b350 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x90
lsls r3, r3, #7
@ -7291,7 +7291,7 @@ lbl_0807b340: .4byte gBG1HOFS_NonGameplay
lbl_0807b344: .4byte gBG1VOFS_NonGameplay
lbl_0807b348: .4byte gBG0HOFS_NonGameplay
lbl_0807b34c: .4byte gBG0VOFS_NonGameplay
lbl_0807b350: .4byte 0x08754bb4
lbl_0807b350: .4byte sEwramPointer
lbl_0807b354: .4byte 0x0600e000
lbl_0807b358: .4byte 0x000001cf
lbl_0807b35c: .4byte 0x000001df
@ -7457,7 +7457,7 @@ lbl_0807b478:
bl sub_080790cc
cmp r0, #0
beq lbl_0807b502
ldr r0, lbl_0807b4d4 @ =0x08754bb4
ldr r0, lbl_0807b4d4 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x9c
lsls r2, r2, #7
@ -7472,7 +7472,7 @@ lbl_0807b478:
.align 2, 0
lbl_0807b4cc: .4byte 0x000001ef
lbl_0807b4d0: .4byte 0x000001ff
lbl_0807b4d4: .4byte 0x08754bb4
lbl_0807b4d4: .4byte sEwramPointer
lbl_0807b4d8: .4byte 0x0600e800
lbl_0807b4dc:
movs r0, #1
@ -7481,7 +7481,7 @@ lbl_0807b4dc:
cmp r0, #0
beq lbl_0807b502
movs r5, #1
ldr r0, lbl_0807b534 @ =0x08754bb4
ldr r0, lbl_0807b534 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x96
lsls r3, r3, #7
@ -7520,7 +7520,7 @@ lbl_0807b508:
orrs r0, r1
b lbl_0807b562
.align 2, 0
lbl_0807b534: .4byte 0x08754bb4
lbl_0807b534: .4byte sEwramPointer
lbl_0807b538: .4byte 0x0600e800
lbl_0807b53c: .4byte sNonGameplayRamPointer
lbl_0807b540: .4byte 0x000001cf
@ -8428,7 +8428,7 @@ lbl_0807bc58:
bl sub_080790cc
cmp r0, #0
beq lbl_0807bcb0
ldr r0, lbl_0807bd10 @ =0x08754bb4
ldr r0, lbl_0807bd10 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xf0
lsls r0, r0, #6
@ -8479,7 +8479,7 @@ lbl_0807bcd6:
bne lbl_0807bce4
b lbl_0807c110
lbl_0807bce4:
ldr r0, lbl_0807bd10 @ =0x08754bb4
ldr r0, lbl_0807bd10 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0x90
lsls r0, r0, #7
@ -8500,7 +8500,7 @@ lbl_0807bce4:
b lbl_0807c110
.align 2, 0
lbl_0807bd0c: .4byte 0x000001ff
lbl_0807bd10: .4byte 0x08754bb4
lbl_0807bd10: .4byte sEwramPointer
lbl_0807bd14: .4byte 0x0600e800
lbl_0807bd18: .4byte sNonGameplayRamPointer
lbl_0807bd1c: .4byte 0x000001ef
@ -8792,7 +8792,7 @@ lbl_0807bf3e:
b lbl_0807c110
lbl_0807bf4a:
bl sub_08079fb8
ldr r0, lbl_0807bf74 @ =0x08754bb4
ldr r0, lbl_0807bf74 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0xa2
lsls r3, r3, #7
@ -8810,7 +8810,7 @@ lbl_0807bf4a:
strb r1, [r0]
b lbl_0807c110
.align 2, 0
lbl_0807bf74: .4byte 0x08754bb4
lbl_0807bf74: .4byte sEwramPointer
lbl_0807bf78: .4byte 0x0600f000
lbl_0807bf7c:
ldr r0, [r4]
@ -9303,7 +9303,7 @@ lbl_0807c350:
ldrb r0, [r1, #0xd]
cmp r0, #0x1f
bhi lbl_0807c3bc
ldr r4, lbl_0807c3b4 @ =0x08754bb4
ldr r4, lbl_0807c3b4 @ =sEwramPointer
ldr r0, [r4]
str r0, [sp, #4]
movs r2, #0x80
@ -9348,10 +9348,10 @@ lbl_0807c350:
bgt lbl_0807c45a
b lbl_0807c460
.align 2, 0
lbl_0807c3b4: .4byte 0x08754bb4
lbl_0807c3b4: .4byte sEwramPointer
lbl_0807c3b8: .4byte 0x0000ffff
lbl_0807c3bc:
ldr r0, lbl_0807c3d4 @ =0x08754bb4
ldr r0, lbl_0807c3d4 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -9362,7 +9362,7 @@ lbl_0807c3bc:
bl DMATransfer
b lbl_0807c47a
.align 2, 0
lbl_0807c3d4: .4byte 0x08754bb4
lbl_0807c3d4: .4byte sEwramPointer
lbl_0807c3d8:
ldrb r0, [r1, #0xe]
cmp r0, #0
@ -9377,7 +9377,7 @@ lbl_0807c3d8:
ldrb r0, [r1, #0xd]
cmp r0, #0x1f
bhi lbl_0807c464
ldr r4, lbl_0807c448 @ =0x08754bb4
ldr r4, lbl_0807c448 @ =sEwramPointer
ldr r0, [r4]
str r0, [sp, #4]
movs r2, #0x80
@ -9420,7 +9420,7 @@ lbl_0807c442:
strb r0, [r2, #0xd]
b lbl_0807c4a0
.align 2, 0
lbl_0807c448: .4byte 0x08754bb4
lbl_0807c448: .4byte sEwramPointer
lbl_0807c44c: .4byte 0x0000ffff
lbl_0807c450:
ldrb r1, [r2, #0xd]
@ -9436,7 +9436,7 @@ lbl_0807c460:
strb r1, [r2, #0xd]
b lbl_0807c4a0
lbl_0807c464:
ldr r0, lbl_0807c48c @ =0x08754bb4
ldr r0, lbl_0807c48c @ =sEwramPointer
ldr r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -9456,7 +9456,7 @@ lbl_0807c47a:
strb r0, [r1, #0xc]
b lbl_0807c4a0
.align 2, 0
lbl_0807c48c: .4byte 0x08754bb4
lbl_0807c48c: .4byte sEwramPointer
lbl_0807c490:
ldrb r0, [r1, #0xe]
cmp r0, #0
@ -9498,7 +9498,7 @@ sub_0807c4b0: @ 0x0807c4b0
bne lbl_0807c52c
movs r6, #0xa0
lsls r6, r6, #0x13
ldr r0, lbl_0807c528 @ =0x08754bb4
ldr r0, lbl_0807c528 @ =sEwramPointer
mov r8, r0
ldr r2, [r0]
movs r5, #0x80
@ -9534,11 +9534,11 @@ sub_0807c4b0: @ 0x0807c4b0
b lbl_0807c554
.align 2, 0
lbl_0807c524: .4byte sNonGameplayRamPointer
lbl_0807c528: .4byte 0x08754bb4
lbl_0807c528: .4byte sEwramPointer
lbl_0807c52c:
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r0, lbl_0807c564 @ =0x08754bb4
ldr r0, lbl_0807c564 @ =sEwramPointer
ldr r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -9564,7 +9564,7 @@ lbl_0807c554:
pop {r0}
bx r0
.align 2, 0
lbl_0807c564: .4byte 0x08754bb4
lbl_0807c564: .4byte sEwramPointer
thumb_func_start sub_0807c568
sub_0807c568: @ 0x0807c568
@ -9575,7 +9575,7 @@ sub_0807c568: @ 0x0807c568
ldrb r0, [r0, #0xe]
cmp r0, #0
beq lbl_0807c594
ldr r0, lbl_0807c5a0 @ =0x08754bb4
ldr r0, lbl_0807c5a0 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #3
@ -9596,7 +9596,7 @@ lbl_0807c594:
bx r0
.align 2, 0
lbl_0807c59c: .4byte sNonGameplayRamPointer
lbl_0807c5a0: .4byte 0x08754bb4
lbl_0807c5a0: .4byte sEwramPointer
thumb_func_start sub_0807c5a4
sub_0807c5a4: @ 0x0807c5a4
@ -9680,7 +9680,7 @@ file_select_menu_init: @ 0x0807c5e0
strb r4, [r0]
ldr r0, lbl_0807c7c0 @ =gDebugFlag
strb r4, [r0]
ldr r6, lbl_0807c7c4 @ =0x08754bb4
ldr r6, lbl_0807c7c4 @ =sEwramPointer
ldr r2, [r6]
movs r3, #0x80
lsls r3, r3, #5
@ -9840,7 +9840,7 @@ lbl_0807c7b4: .4byte gOamXOffset_NonGameplay
lbl_0807c7b8: .4byte gOamYOffset_NonGameplay
lbl_0807c7bc: .4byte gSramErrorFlag
lbl_0807c7c0: .4byte gDebugFlag
lbl_0807c7c4: .4byte 0x08754bb4
lbl_0807c7c4: .4byte sEwramPointer
lbl_0807c7c8: .4byte gMostRecentSaveFile
lbl_0807c7cc: .4byte 0x08454818
lbl_0807c7d0: .4byte 0x084548f8
@ -10242,7 +10242,7 @@ display_save_file_info: @ 0x0807cb2c
movs r1, #2
bl sub_0807cf98
bl sub_0807d0b0
ldr r5, lbl_0807cd4c @ =0x08754bb4
ldr r5, lbl_0807cd4c @ =sEwramPointer
ldr r2, [r5]
movs r6, #0xc0
lsls r6, r6, #6
@ -10452,7 +10452,7 @@ display_save_file_info: @ 0x0807cb2c
bx r0
.align 2, 0
lbl_0807cd48: .4byte gSaveFilesInfo
lbl_0807cd4c: .4byte 0x08754bb4
lbl_0807cd4c: .4byte sEwramPointer
thumb_func_start display_save_file_health
display_save_file_health: @ 0x0807cd50
@ -10525,7 +10525,7 @@ sub_0807cdc4: @ 0x0807cdc4
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldr r0, lbl_0807cf18 @ =0x08754bb4
ldr r0, lbl_0807cf18 @ =sEwramPointer
ldr r0, [r0]
movs r1, #0x80
lsls r1, r1, #4
@ -10686,7 +10686,7 @@ lbl_0807ce22:
strh r2, [r0]
b lbl_0807cf7e
.align 2, 0
lbl_0807cf18: .4byte 0x08754bb4
lbl_0807cf18: .4byte sEwramPointer
lbl_0807cf1c: .4byte gSaveFilesInfo
lbl_0807cf20:
ldr r2, lbl_0807cf90 @ =0x000001cb
@ -10781,7 +10781,7 @@ lbl_0807cfba:
lsls r0, r0, #7
lbl_0807cfc8:
adds r6, r0, #0
ldr r2, lbl_0807cff8 @ =0x08754bb4
ldr r2, lbl_0807cff8 @ =sEwramPointer
ldr r0, [r2]
lsls r1, r1, #1
adds r0, r1, r0
@ -10805,7 +10805,7 @@ lbl_0807cfe8:
ldr r0, lbl_0807d000 @ =0x000001af
b lbl_0807d010
.align 2, 0
lbl_0807cff8: .4byte 0x08754bb4
lbl_0807cff8: .4byte sEwramPointer
lbl_0807cffc: .4byte 0x000008cc
lbl_0807d000: .4byte 0x000001af
lbl_0807d004:
@ -10982,7 +10982,7 @@ lbl_0807d12a:
orrs r1, r2
strb r1, [r0]
lbl_0807d136:
ldr r0, lbl_0807d160 @ =0x08754bb4
ldr r0, lbl_0807d160 @ =sEwramPointer
ldr r0, [r0]
movs r1, #0xb4
lsls r1, r1, #4
@ -11001,7 +11001,7 @@ lbl_0807d136:
.align 2, 0
lbl_0807d158: .4byte sNonGameplayRamPointer
lbl_0807d15c: .4byte gSaveFilesInfo
lbl_0807d160: .4byte 0x08754bb4
lbl_0807d160: .4byte sEwramPointer
lbl_0807d164:
movs r4, #1
lbl_0807d166:
@ -11193,7 +11193,7 @@ lbl_0807d2a0: @ jump table
.4byte lbl_0807d560 @ case 6
lbl_0807d2bc:
movs r4, #0
bl check_for_maintained_input
bl CheckForMaintainedInput
ldr r5, lbl_0807d2e0 @ =gChangedInput
ldrh r0, [r5]
cmp r0, #0
@ -11716,7 +11716,7 @@ lbl_0807d720:
adds r0, #1
lsls r4, r0, #1
adds r4, r4, r0
ldr r5, lbl_0807d828 @ =0x08754bb4
ldr r5, lbl_0807d828 @ =sEwramPointer
ldr r2, [r5]
movs r1, #0x86
lsls r1, r1, #5
@ -11836,7 +11836,7 @@ lbl_0807d812:
bl lbl_0807e3b6
.align 2, 0
lbl_0807d824: .4byte gMostRecentSaveFile
lbl_0807d828: .4byte 0x08754bb4
lbl_0807d828: .4byte sEwramPointer
lbl_0807d82c: .4byte 0x0600f000
lbl_0807d830: .4byte 0x04000040
lbl_0807d834: .4byte 0x000046aa
@ -11952,7 +11952,7 @@ lbl_0807d91c:
adds r1, r2, #0
bl lbl_0807e3b8
lbl_0807d922:
ldr r0, lbl_0807d96c @ =0x08754bb4
ldr r0, lbl_0807d96c @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x80
lsls r2, r2, #4
@ -11986,7 +11986,7 @@ lbl_0807d922:
strb r1, [r0]
bl lbl_0807e3e6
.align 2, 0
lbl_0807d96c: .4byte 0x08754bb4
lbl_0807d96c: .4byte sEwramPointer
lbl_0807d970: .4byte 0x0600f000
lbl_0807d974: .4byte 0x0000dfff
lbl_0807d978:
@ -13830,7 +13830,7 @@ lbl_0807e7a4:
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807e7f8 @ =0x08754bb4
ldr r0, lbl_0807e7f8 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xc0
lsls r0, r0, #6
@ -13841,7 +13841,7 @@ lbl_0807e7a4:
lbl_0807e7ec: .4byte sNonGameplayRamPointer
lbl_0807e7f0: .4byte gBG1HOFS_NonGameplay
lbl_0807e7f4: .4byte gBG1VOFS_NonGameplay
lbl_0807e7f8: .4byte 0x08754bb4
lbl_0807e7f8: .4byte sEwramPointer
lbl_0807e7fc: .4byte 0x0600e800
lbl_0807e800:
ldr r4, lbl_0807e830 @ =sNonGameplayRamPointer
@ -13896,7 +13896,7 @@ lbl_0807e838:
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807e884 @ =0x08754bb4
ldr r0, lbl_0807e884 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xe4
lsls r0, r0, #6
@ -13906,7 +13906,7 @@ lbl_0807e838:
lbl_0807e878: .4byte sNonGameplayRamPointer
lbl_0807e87c: .4byte gBG0HOFS_NonGameplay
lbl_0807e880: .4byte gBG0VOFS_NonGameplay
lbl_0807e884: .4byte 0x08754bb4
lbl_0807e884: .4byte sEwramPointer
lbl_0807e888:
ldr r4, lbl_0807e8ac @ =sNonGameplayRamPointer
ldr r0, [r4]
@ -13995,7 +13995,7 @@ lbl_0807e928:
bne lbl_0807e93a
b lbl_0807eec6
lbl_0807e93a:
ldr r5, lbl_0807e964 @ =0x08754bb4
ldr r5, lbl_0807e964 @ =sEwramPointer
ldr r0, [r5]
movs r4, #0xf0
lsls r4, r4, #6
@ -14014,7 +14014,7 @@ lbl_0807e93a:
b lbl_0807ed1c
.align 2, 0
lbl_0807e960: .4byte sNonGameplayRamPointer
lbl_0807e964: .4byte 0x08754bb4
lbl_0807e964: .4byte sEwramPointer
lbl_0807e968: .4byte 0x0600e000
lbl_0807e96c:
ldr r0, lbl_0807e980 @ =sNonGameplayRamPointer
@ -14057,7 +14057,7 @@ lbl_0807e988:
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807ea00 @ =0x08754bb4
ldr r0, lbl_0807ea00 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xfc
lsls r0, r0, #6
@ -14085,7 +14085,7 @@ lbl_0807e988:
lbl_0807e9f4: .4byte sNonGameplayRamPointer
lbl_0807e9f8: .4byte gBG1HOFS_NonGameplay
lbl_0807e9fc: .4byte gBG1VOFS_NonGameplay
lbl_0807ea00: .4byte 0x08754bb4
lbl_0807ea00: .4byte sEwramPointer
lbl_0807ea04: .4byte 0x0600e800
lbl_0807ea08: .4byte 0x0000fdff
lbl_0807ea0c:
@ -14144,7 +14144,7 @@ lbl_0807ea64:
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r0, lbl_0807ea8c @ =0x08754bb4
ldr r0, lbl_0807ea8c @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x84
lsls r3, r3, #7
@ -14152,7 +14152,7 @@ lbl_0807ea64:
.align 2, 0
lbl_0807ea84: .4byte gBG0HOFS_NonGameplay
lbl_0807ea88: .4byte gBG0VOFS_NonGameplay
lbl_0807ea8c: .4byte 0x08754bb4
lbl_0807ea8c: .4byte sEwramPointer
lbl_0807ea90:
movs r0, #1
movs r1, #6
@ -14202,7 +14202,7 @@ lbl_0807eabc:
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807eb34 @ =0x08754bb4
ldr r0, lbl_0807eb34 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xfc
lsls r0, r0, #6
@ -14230,7 +14230,7 @@ lbl_0807eabc:
lbl_0807eb28: .4byte sNonGameplayRamPointer
lbl_0807eb2c: .4byte gBG1HOFS_NonGameplay
lbl_0807eb30: .4byte gBG1VOFS_NonGameplay
lbl_0807eb34: .4byte 0x08754bb4
lbl_0807eb34: .4byte sEwramPointer
lbl_0807eb38: .4byte 0x0600e800
lbl_0807eb3c: .4byte 0x0000fdff
lbl_0807eb40:
@ -14327,7 +14327,7 @@ lbl_0807ebe4:
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r0, lbl_0807ec0c @ =0x08754bb4
ldr r0, lbl_0807ec0c @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x84
lsls r3, r3, #7
@ -14335,7 +14335,7 @@ lbl_0807ebe4:
.align 2, 0
lbl_0807ec04: .4byte gBG0HOFS_NonGameplay
lbl_0807ec08: .4byte gBG0VOFS_NonGameplay
lbl_0807ec0c: .4byte 0x08754bb4
lbl_0807ec0c: .4byte sEwramPointer
lbl_0807ec10:
movs r0, #1
movs r1, #3
@ -14374,7 +14374,7 @@ lbl_0807ec40:
lbl_0807ec54: .4byte sNonGameplayRamPointer
lbl_0807ec58: .4byte 0x0000feff
lbl_0807ec5c:
ldr r0, lbl_0807ec6c @ =0x08754bb4
ldr r0, lbl_0807ec6c @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xfc
lsls r0, r0, #6
@ -14382,10 +14382,10 @@ lbl_0807ec5c:
ldr r2, lbl_0807ec70 @ =0x0600e800
b lbl_0807ee54
.align 2, 0
lbl_0807ec6c: .4byte 0x08754bb4
lbl_0807ec6c: .4byte sEwramPointer
lbl_0807ec70: .4byte 0x0600e800
lbl_0807ec74:
ldr r0, lbl_0807ec84 @ =0x08754bb4
ldr r0, lbl_0807ec84 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x8a
lsls r2, r2, #7
@ -14393,10 +14393,10 @@ lbl_0807ec74:
ldr r2, lbl_0807ec88 @ =0x0600e800
b lbl_0807ee54
.align 2, 0
lbl_0807ec84: .4byte 0x08754bb4
lbl_0807ec84: .4byte sEwramPointer
lbl_0807ec88: .4byte 0x0600e800
lbl_0807ec8c:
ldr r0, lbl_0807ec9c @ =0x08754bb4
ldr r0, lbl_0807ec9c @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x84
lsls r3, r3, #7
@ -14404,7 +14404,7 @@ lbl_0807ec8c:
ldr r2, lbl_0807eca0 @ =0x0600e800
b lbl_0807ee54
.align 2, 0
lbl_0807ec9c: .4byte 0x08754bb4
lbl_0807ec9c: .4byte sEwramPointer
lbl_0807eca0: .4byte 0x0600e800
lbl_0807eca4:
ldr r0, lbl_0807ece4 @ =sNonGameplayRamPointer
@ -14431,7 +14431,7 @@ lbl_0807eca4:
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807ecf0 @ =0x08754bb4
ldr r0, lbl_0807ecf0 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xcc
lsls r0, r0, #6
@ -14441,7 +14441,7 @@ lbl_0807eca4:
lbl_0807ece4: .4byte sNonGameplayRamPointer
lbl_0807ece8: .4byte gBG0HOFS_NonGameplay
lbl_0807ecec: .4byte gBG0VOFS_NonGameplay
lbl_0807ecf0: .4byte 0x08754bb4
lbl_0807ecf0: .4byte sEwramPointer
lbl_0807ecf4:
ldr r4, lbl_0807ed30 @ =sNonGameplayRamPointer
ldr r2, [r4]
@ -14502,7 +14502,7 @@ lbl_0807ed50:
bne lbl_0807ed64
b lbl_0807eec6
lbl_0807ed64:
ldr r0, lbl_0807ed74 @ =0x08754bb4
ldr r0, lbl_0807ed74 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xd8
lsls r0, r0, #6
@ -14510,7 +14510,7 @@ lbl_0807ed64:
b lbl_0807ee52
.align 2, 0
lbl_0807ed70: .4byte sNonGameplayRamPointer
lbl_0807ed74: .4byte 0x08754bb4
lbl_0807ed74: .4byte sEwramPointer
lbl_0807ed78:
ldr r3, lbl_0807eda8 @ =sNonGameplayRamPointer
ldr r1, [r3]
@ -14550,7 +14550,7 @@ lbl_0807edb0:
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
ldr r0, lbl_0807edd8 @ =0x08754bb4
ldr r0, lbl_0807edd8 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0xcc
lsls r2, r2, #6
@ -14558,7 +14558,7 @@ lbl_0807edb0:
b lbl_0807ee52
.align 2, 0
lbl_0807edd4: .4byte sNonGameplayRamPointer
lbl_0807edd8: .4byte 0x08754bb4
lbl_0807edd8: .4byte sEwramPointer
lbl_0807eddc:
ldr r0, lbl_0807ee20 @ =0x000001fd
bl SoundPlay
@ -14586,7 +14586,7 @@ lbl_0807eddc:
ldrb r0, [r0]
cmp r0, #1
bne lbl_0807ee34
ldr r0, lbl_0807ee30 @ =0x08754bb4
ldr r0, lbl_0807ee30 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0x84
lsls r0, r0, #7
@ -14597,20 +14597,20 @@ lbl_0807ee20: .4byte 0x000001fd
lbl_0807ee24: .4byte sNonGameplayRamPointer
lbl_0807ee28: .4byte gBG0HOFS_NonGameplay
lbl_0807ee2c: .4byte gBG0VOFS_NonGameplay
lbl_0807ee30: .4byte 0x08754bb4
lbl_0807ee30: .4byte sEwramPointer
lbl_0807ee34:
cmp r0, #2
bne lbl_0807ee48
ldr r0, lbl_0807ee44 @ =0x08754bb4
ldr r0, lbl_0807ee44 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x8a
lsls r2, r2, #7
adds r1, r1, r2
b lbl_0807ee52
.align 2, 0
lbl_0807ee44: .4byte 0x08754bb4
lbl_0807ee44: .4byte sEwramPointer
lbl_0807ee48:
ldr r0, lbl_0807ee64 @ =0x08754bb4
ldr r0, lbl_0807ee64 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0xfc
lsls r3, r3, #6
@ -14627,7 +14627,7 @@ lbl_0807ee54:
bl DMATransfer
b lbl_0807eec8
.align 2, 0
lbl_0807ee64: .4byte 0x08754bb4
lbl_0807ee64: .4byte sEwramPointer
lbl_0807ee68: .4byte 0x0600e000
lbl_0807ee6c:
ldr r0, lbl_0807ee90 @ =sNonGameplayRamPointer

View File

@ -5,7 +5,7 @@
#define AREA_TOURIAN 0x4
#define AREA_CRATERIA 0x5
#define AREA_CHOZODIA 0x6
#define AREA_INVALID 0x7
#define AREA_DEBUG 0x7
#define AREA_NONE 0xFF
#define DOOR_TYPE_NONE 0x0

View File

@ -0,0 +1,9 @@
#ifndef INTERNAL_PAUSE_SCREEN_DATA_H
#define INTERNAL_PAUSE_SCREEN_DATA_H
#include "types.h"
// FORCE_RODATA
extern u16 sPauseScreenCompletionInfoOamData[6][5];
#endif /* INTERNAL_PAUSE_SCREEN_DATA_H */

View File

@ -0,0 +1,27 @@
#ifndef PAUSE_SCREEN_DATA_H
#define PAUSE_SCREEN_DATA_H
#include "types.h"
#include "structs/cutscene.h"
#include "structs/menus/pause_screen.h"
#include "connection.h"
extern const struct PauseScreenAreaIconData sPauseScreenAreIconsData[MAX_AMOUNT_OF_AREAS];
extern const u16 sPauseScreen_40d0d0[16];
// ...
extern const u8 sBossIcons[7][5];
extern const u16 sMapChunksToUpdate[3];
extern const struct OamArray sPauseScreenMiscOam[56];
extern const struct OamArray sPauseScreenAreaNameOam[33];
extern const struct OamArray sPauseScreenBorderArrowsOam[5];
extern const struct OamArray sPauseScreenSamusIconOam[5];
extern const struct OamArray sPauseScreenBossIconsOam[5];
extern const struct OamArray sPauseScreenTargetsOam[16];
extern const struct OamArray sPauseScreenWorldMapOam[18];
extern const u8 sMaintainedInputDelays[7];
#endif /* PAUSE_SCREEN_DATA_H */

View File

@ -12,7 +12,7 @@ void PauseScreenCopyPalramToEwram_Unused(u8 param_1);
void PauseScreenCopyBackgroundPalette_Unused(void);
void PauseScreenUpdateMapArrows(void);
void PauseScreenUpdateBossIcons(void);
void PauseScreenDrawInfo(void);
void PauseScreenDrawCompletionInfo(u8 dontDraw);
u8 unk_68a58(u8 param_1);
u8 PauseScreenDrawStatusScreenSamus(u8 param_1);
void PauseScreenUpdateWireframeSamus(u8 param_1);

View File

@ -5,7 +5,7 @@
#include "input.h"
struct GameCompletion {
u8 completedGame;
i8 completedGame;
u8 introPlayed;
u8 language;
};

View File

@ -27,4 +27,14 @@ struct MenuOamData {
i16 unk_E;
};
#define MAINTAINED_INPUT_KEYS (KEY_RIGHT | KEY_LEFT | KEY_UP | KEY_DOWN)
struct MaintainedInput {
u8 delay;
u8 set;
};
extern struct MaintainedInput gMaintainedInputData;
extern u16 gUnk_3005804;
#endif /* MENU_OAM_H */

View File

@ -6,6 +6,14 @@
#define PAUSE_SCREEN_DATA sNonGameplayRamPointer->pauseScreen
struct PauseScreenAreaIconData {
u8 unk_0;
u8 nameOamId;
u8 highlightOamId;
u16 xPosition;
u16 yPosition;
};
struct PauseScreenSubroutineData {
u8 currentSubroutine;
u8 padding_1[3];
@ -198,11 +206,13 @@ struct PauseScreenData {
u16* mapsDataPointer;
struct MenuOamData miscOam[30];
struct MenuOamData miscOam[23];
struct MenuOamData unk_278[7];
struct MenuOamData targetsOam[12];
struct MenuOamData chozoHintOam[5];
struct MenuOamData samusIconOam[1];
struct MenuOamData bossIconOam[2];
struct MenuOamData bossIconOam[1];
struct MenuOamData unk_418[1];
struct MenuOamData areaNameOam[4];
struct MenuOamData borderArrowsOam[4];
struct MenuOamData worldMapOam[24];

View File

@ -835,5 +835,5 @@ const u16 sNumberOfHatchLockEventsPerArea[MAX_AMOUNT_OF_AREAS] = {
[AREA_TOURIAN] = 0,
[AREA_CRATERIA] = 2,
[AREA_CHOZODIA] = 15,
[AREA_INVALID] = 0
[AREA_DEBUG] = 0
};

View File

@ -1854,7 +1854,7 @@ u8 OptionsSubroutine(void)
break;
case 2:
check_for_maintained_input(); // Undefined
CheckForMaintainedInput();
if (!gChangedInput)
break;
@ -3659,7 +3659,7 @@ u8 FileSelectUpdateSubMenu(void)
{
case 0:
result = 0;
check_for_maintained_input();
CheckForMaintainedInput();
if (gChangedInput)
{

View File

@ -1,5 +1,22 @@
#include "menus/pause_screen.h"
#include "temp_globals.h"
#include "gba.h"
#include "macros.h"
#include "oam_id.h"
#include "event.h"
#include "data/shortcut_pointers.h"
#include "data/menus/pause_screen_data.h"
#include "data/menus/internal_pause_screen_data.h"
#include "constants/connection.h"
#include "constants/event.h"
#include "constants/game_state.h"
#include "constants/menus/pause_screen.h"
#include "structs/menus/pause_screen.h"
#include "structs/display.h"
#include "structs/game_state.h"
u8 unk_68168(u16 param_1, u8 param_2, u8 param_3)
{
@ -16,29 +33,196 @@ u32 PauseScreenUpdateOrStartFading(u8 stage)
}
/**
* @brief 685b8 | 98 | Copies palram to ewram, unused
*
* @param param_1 To document
*/
void PauseScreenCopyPalramToEwram_Unused(u8 param_1)
{
if (!param_1)
{
DMATransfer(3, PALRAM_BASE, sEwramPointer + 0x6800, PALRAM_SIZE, 16);
BitFill(3, 0, PALRAM_BASE, PALRAM_SIZE, 16);
DMATransfer(3, PALRAM_BASE, sEwramPointer + 0x6C00, PALRAM_SIZE, 16);
}
else
{
DMATransfer(3, PALRAM_BASE, sEwramPointer + 0x6800, PALRAM_SIZE, 16);
}
PAUSE_SCREEN_DATA.mapScreenFading.stage = 0;
}
/**
* @brief 68650 | 44 | Copies the palram backup in ewram to palram
*
*/
void PauseScreenCopyBackgroundPalette_Unused(void)
{
if (PAUSE_SCREEN_DATA.mapScreenFading.unk_2)
{
DMATransfer(3, sEwramPointer + 0x6C00, PALRAM_BASE, PALRAM_SIZE, 16);
PAUSE_SCREEN_DATA.mapScreenFading.unk_2 = FALSE;
}
}
/**
* @brief 68694 | 208 | Updates the map screen scroll arrows
*
*/
void PauseScreenUpdateMapArrows(void)
{
i32 var_0;
if (gPauseScreenFlag != PAUSE_SCREEN_PAUSE_OR_CUTSCENE)
return;
if (PAUSE_SCREEN_DATA.subroutineInfo.currentSubroutine == PAUSE_SCREEN_SUBROUTINE_MAP_SCREEN)
var_0 = 1;
else if (PAUSE_SCREEN_DATA.subroutineInfo.currentSubroutine == PAUSE_SCREEN_SUBROUTINE_STATUS_SCREEN_LEAVING)
var_0 = 2;
else
var_0 = 0;
if (var_0)
{
// Set can scroll flags depending on the view position
PAUSE_SCREEN_DATA.canScrollUp = PAUSE_SCREEN_DATA.mapViewY > PAUSE_SCREEN_DATA.mapTopBorder;
PAUSE_SCREEN_DATA.canScrollDown = PAUSE_SCREEN_DATA.mapBottomBorder > PAUSE_SCREEN_DATA.mapViewY;
PAUSE_SCREEN_DATA.canScrollLeft = PAUSE_SCREEN_DATA.mapViewX > PAUSE_SCREEN_DATA.mapLeftBorder;
PAUSE_SCREEN_DATA.canScrollRight = PAUSE_SCREEN_DATA.mapRightBorder > PAUSE_SCREEN_DATA.mapViewX;
// Draw if can scroll
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[0]].notDrawn = PAUSE_SCREEN_DATA.canScrollRight ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[4]].notDrawn = PAUSE_SCREEN_DATA.canScrollLeft ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[8]].notDrawn = PAUSE_SCREEN_DATA.canScrollUp ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[12]].notDrawn = PAUSE_SCREEN_DATA.canScrollDown ? FALSE : TRUE;
}
else
{
// Not on map screen, set not drawn
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[4]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[8]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[12]].notDrawn = TRUE;
}
// Update world map area highlight
if (var_0 == 1)
{
PAUSE_SCREEN_DATA.areaNameOam[2].notDrawn = PAUSE_SCREEN_DATA.onWorldMap ? TRUE : FALSE;
}
else
{
PAUSE_SCREEN_DATA.areaNameOam[2].notDrawn = TRUE;
}
}
/**
* @brief 6889c | c0 | Updates the boss icons
*
*/
void PauseScreenUpdateBossIcons(void)
{
u32 status;
// Prevent overflow
if (PAUSE_SCREEN_DATA.currentArea >= MAX_AMOUNT_OF_AREAS - 1)
return;
// Event field
status = sBossIcons[PAUSE_SCREEN_DATA.currentArea][0];
if (status != 0)
{
// X Position * tile size + X Offset
PAUSE_SCREEN_DATA.bossIconOam[0].xPosition = sBossIcons[PAUSE_SCREEN_DATA.currentArea][2] * HALF_BLOCK_SIZE +
sBossIcons[PAUSE_SCREEN_DATA.currentArea][4] * 4;
// Y Position * tile size
PAUSE_SCREEN_DATA.bossIconOam[0].yPosition = sBossIcons[PAUSE_SCREEN_DATA.currentArea][3] * HALF_BLOCK_SIZE;
// Check event
if (EventFunction(EVENT_ACTION_CHECKING, status))
{
// Boss dead, set new oam id
if (PAUSE_SCREEN_DATA.currentArea != AREA_CRATERIA)
{
// Boss dead id, flag id changed
PAUSE_SCREEN_DATA.bossIconOam[0].oamID = 3;
status = TRUE << 1;
}
else
{
// Ship, simply remove it
PAUSE_SCREEN_DATA.bossIconOam[0].oamID = 0;
status = FALSE;
}
}
else
{
// Set oam id
PAUSE_SCREEN_DATA.bossIconOam[0].oamID = sBossIcons[PAUSE_SCREEN_DATA.currentArea][1];
// Flag id changed
status = TRUE << 1;
}
}
PAUSE_SCREEN_DATA.bossIconOam[0].exists = status;
}
void PauseScreenDrawInfo(void)
/**
* @brief 6895c | fc | Draws the completion info (tanks, IGT)
*
* @param dontDraw Don't draw flag
*/
void PauseScreenDrawCompletionInfo(u8 dontDraw)
{
u8 cantDraw;
u32 i;
u8 priority;
u16 offset;
cantDraw = FALSE;
// Draw if already completed game
if (!gGameCompletion.completedGame)
cantDraw = TRUE;
// Draw if on map screen
if (PAUSE_SCREEN_DATA.typeFlags & PAUSE_SCREEN_TYPE_ON_MAP_SCREEN)
cantDraw = TRUE;
if (cantDraw)
{
PAUSE_SCREEN_DATA.unk_34 = 0;
return;
}
if (dontDraw)
return;
// Count tanks and prepare VRAM with IGT and tanks
count_tanks_in_area();
draw_igt_and_tanks(FALSE, FALSE);
draw_igt_and_tanks(FALSE, TRUE);
priority = 3;
// Setup oam data
for (i = 0; i < ARRAY_SIZE(sPauseScreenCompletionInfoOamData[0]); i++)
{
// Set oam id and priority
PAUSE_SCREEN_DATA.miscOam[sPauseScreenCompletionInfoOamData[i][0]].oamID = sPauseScreenCompletionInfoOamData[i][1];
PAUSE_SCREEN_DATA.miscOam[sPauseScreenCompletionInfoOamData[i][0]].priority = priority;
// Set positions
PAUSE_SCREEN_DATA.miscOam[sPauseScreenCompletionInfoOamData[i][0]].xPosition = sPauseScreenCompletionInfoOamData[i][2];
PAUSE_SCREEN_DATA.miscOam[sPauseScreenCompletionInfoOamData[i][0]].yPosition = sPauseScreenCompletionInfoOamData[i][3];
// Mark as existing
PAUSE_SCREEN_DATA.miscOam[sPauseScreenCompletionInfoOamData[i][0]].exists = TRUE;
}
}
u8 unk_68a58(u8 param_1)
@ -61,9 +245,26 @@ void unk_68ec0(void)
}
/**
* @brief 68fd0 | 54 | Updates the area name icon
*
* @param area Area
*/
void PauseScreenUpdateWorldMapHighlight(u8 area)
{
// Prevent overflow
if (area >= MAX_AMOUNT_OF_AREAS - 1)
area = AREA_DEBUG;
// Update area name at the top
UpdateMenuOamDataID(&PAUSE_SCREEN_DATA.areaNameOam[0], sPauseScreenAreIconsData[area].nameOamId);
// Update hightlight border oam
UpdateMenuOamDataID(&PAUSE_SCREEN_DATA.areaNameOam[2], sPauseScreenAreIconsData[area].highlightOamId);
// Update hightlight border position
PAUSE_SCREEN_DATA.areaNameOam[2].xPosition = sPauseScreenAreIconsData[area].xPosition;
PAUSE_SCREEN_DATA.areaNameOam[2].yPosition = sPauseScreenAreIconsData[area].yPosition;
}
void PauseScreenUpdateWorldMap(u8 onWorldMap)
@ -76,9 +277,51 @@ void PauseScreenLoadAreaNamesAndIcons(void)
}
/**
* @brief 695bc | f0 | Processes the pause screen oam
*
*/
void PauseScreenProcessOam(void)
{
gNextOamSlot = 0;
// Always process area name oam
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.areaNameOam), PAUSE_SCREEN_DATA.areaNameOam, sPauseScreenAreaNameOam);
// Check process border arrows or world map oam
if (PAUSE_SCREEN_DATA.onWorldMap)
{
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.worldMapOam), PAUSE_SCREEN_DATA.worldMapOam, sPauseScreenWorldMapOam);
}
else
{
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.borderArrowsOam), PAUSE_SCREEN_DATA.borderArrowsOam, sPauseScreenBorderArrowsOam);
}
// Always process misc oam
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.miscOam), PAUSE_SCREEN_DATA.miscOam, sPauseScreenMiscOam);
// Check process chozo hint oam
if (PAUSE_SCREEN_DATA.typeFlags & PAUSE_SCREEN_TYPE_CHOZO_STATUE_HINT)
{
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.chozoHintOam), PAUSE_SCREEN_DATA.chozoHintOam, sPauseScreenTargetsOam);
}
// Check process map oam
if (!PAUSE_SCREEN_DATA.onWorldMap && !(PAUSE_SCREEN_DATA.typeFlags & PAUSE_SCREEN_TYPE_ON_STATUS_SCREEN))
{
// Process samus head icon oam if checking out current area map
if (PAUSE_SCREEN_DATA.currentArea == gCurrentArea)
{
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.samusIconOam), PAUSE_SCREEN_DATA.samusIconOam, sPauseScreenSamusIconOam);
}
// Process targets and boss icons
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.targetsOam), PAUSE_SCREEN_DATA.targetsOam, sPauseScreenTargetsOam);
ProcessMenuOam(ARRAY_SIZE(PAUSE_SCREEN_DATA.bossIconOam), PAUSE_SCREEN_DATA.bossIconOam, sPauseScreenBossIconsOam);
}
ResetFreeOam();
}
/**
@ -963,14 +1206,43 @@ u32 PauseScreenSubroutine(void)
}
/**
* @brief 6a2f8 | 130 | Pause screen V-blank
*
*/
void PauseScreenVBlank(void)
{
dma_set(3, gOamData, OAM_BASE, (DMA_ENABLE | DMA_32BIT) << 16 | OAM_SIZE / 4);
write16(REG_DISPCNT, PAUSE_SCREEN_DATA.dispcnt);
write16(REG_BLDY, gWrittenToBLDY_NonGameplay);
write16(REG_MOSAIC, gWrittenToMOSAIC_L);
write16(REG_BG0HOFS, (gBG0HOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG0VOFS, (gBG0VOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG1HOFS, (gBG1HOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG1VOFS, (gBG1VOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG2HOFS, (gBG2HOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG2VOFS, (gBG2VOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG3HOFS, (gBG3HOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG3VOFS, (gBG3VOFS_NonGameplay / 4) & 0x1FF);
write16(REG_BG0CNT, PAUSE_SCREEN_DATA.bg0cnt);
write16(REG_BG1CNT, PAUSE_SCREEN_DATA.bg1cnt);
write16(REG_BG2CNT, PAUSE_SCREEN_DATA.bg2cnt);
write16(REG_BG3CNT, PAUSE_SCREEN_DATA.bg3cnt);
write16(REG_BLDALPHA, gWrittenToBLDALPHA_H << 8 | gWrittenToBLDALPHA_L);
write16(REG_BLDCNT, PAUSE_SCREEN_DATA.bldcnt);
}
/**
* @brief 6a428 | c | Pause screen empty V-blank
*
*/
void PauseScreenVBlank_Empty(void)
{
vu8 c = 0;
}
void PauseScreenInit(void)
@ -1043,7 +1315,37 @@ i32 PauseScreenQuitEasySleep(void)
}
/**
* @brief 6c0e0 | 74 | Updates the maintained input
*
*/
void CheckForMaintainedInput(void)
{
gUnk_3005804 = gChangedInput;
if (gButtonInput & MAINTAINED_INPUT_KEYS)
{
// Pressing any concerned key
gMaintainedInputData.delay++;
}
else
{
// Not pressing any concerned key, reset
gMaintainedInputData.delay = 0;
gMaintainedInputData.set = 0;
}
// Check delay threshold
if (gMaintainedInputData.delay >= sMaintainedInputDelays[gMaintainedInputData.set])
{
// Apply to changed input
gChangedInput |= gButtonInput & MAINTAINED_INPUT_KEYS;
// Reset delay
gMaintainedInputData.delay = 0;
// Update set
if (gMaintainedInputData.set < ARRAY_SIZE(sMaintainedInputDelays) - 1)
gMaintainedInputData.set++;
}
}

View File

@ -16,9 +16,6 @@
#include "structs/text.h"
#include "structs/menus/pause_screen.h"
// Temp
extern u16 gUnk_03005804;
#define STATUS_SCREEN_TILEMAP ((u16*)(sEwramPointer + 0x7000))
void UpdateMinimapAnimatedPalette(void)
@ -340,7 +337,7 @@ u32 StatusScreenSuitlessItems(void)
ended = FALSE;
if (PAUSE_SCREEN_DATA.subroutineInfo.stage > 5)
ended = gUnk_03005804 != 0;
ended = gUnk_3005804 != 0;
if (ended)
return ended;

View File

@ -4,6 +4,7 @@
#include "data/unsorted.h"
#include "data/shortcut_pointers.h"
#include "data/menus/pause_screen_data.h"
#include "constants/connection.h"
#include "constants/game_state.h"
@ -15,9 +16,6 @@
#include "structs/samus.h"
#include "structs/room.h"
extern const u8 sBossIcons[7][5];
extern const u16 sMapChunksToUpdate[3];
/**
* @brief 6c154 | 24 | Updates the minimap
*

View File

@ -176,7 +176,7 @@ void RoomLoadTileset(void)
DMATransfer(3, entry.pTilemap + 2, gTilemap, sizeof(gTilemap) * 4, 0x10);
if (gCurrentArea > AREA_INVALID)
if (gCurrentArea > AREA_DEBUG)
{
DMATransfer(3, sClipdataCollisionTypes_Debug, gClipdataCollisionTypes, sizeof(gClipdataCollisionTypes), 0x10);
DMATransfer(3, sClipdataBehaviorTypes_Debug, gClipdataBehaviorTypes, sizeof(gClipdataBehaviorTypes), 0x10);

View File

@ -727,7 +727,7 @@ void SpriteLoadSpriteset(void)
spriteset = gSpriteset;
if (spriteset >= MAX_AMOUNT_OF_SPRITESET - 1)
{
if (gCurrentArea > AREA_INVALID)
if (gCurrentArea > AREA_DEBUG)
spriteset = MAX_AMOUNT_OF_SPRITESET - 1;
else
spriteset = 0;