Link scroll.c and block.c

This commit is contained in:
YohannDR 2023-11-20 20:28:45 +01:00
parent 8c776a2638
commit a2816952fd
29 changed files with 1238 additions and 5142 deletions

File diff suppressed because it is too large Load Diff

View File

@ -648,23 +648,23 @@ lbl_0806135e:
strb r0, [r2]
lbl_08061370:
bl ClearGfxRam
ldr r2, lbl_080613fc @ =gBG0HOFS_NonGameplay
ldr r0, lbl_08061400 @ =gBG0VOFS_NonGameplay
ldr r2, lbl_080613fc @ =gBg0HOFS_NonGameplay
ldr r0, lbl_08061400 @ =gBg0VOFS_NonGameplay
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_08061404 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_08061408 @ =gBG1VOFS_NonGameplay
ldr r2, lbl_08061404 @ =gBg1HOFS_NonGameplay
ldr r0, lbl_08061408 @ =gBg1VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0806140c @ =gBG2HOFS_NonGameplay
ldr r0, lbl_08061410 @ =gBG2VOFS_NonGameplay
ldr r2, lbl_0806140c @ =gBg2HOFS_NonGameplay
ldr r0, lbl_08061410 @ =gBg2VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_08061414 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_08061418 @ =gBG3VOFS_NonGameplay
ldr r2, lbl_08061414 @ =gBg3HOFS_NonGameplay
ldr r0, lbl_08061418 @ =gBg3VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_080613d8 @ =sNonGameplayRamPointer
@ -701,14 +701,14 @@ lbl_080613ec: .4byte gPauseScreenFlag
lbl_080613f0: .4byte 0x06010000
lbl_080613f4: .4byte 0x0201e000
lbl_080613f8: .4byte gCutsceneToSkip
lbl_080613fc: .4byte gBG0HOFS_NonGameplay
lbl_08061400: .4byte gBG0VOFS_NonGameplay
lbl_08061404: .4byte gBG1HOFS_NonGameplay
lbl_08061408: .4byte gBG1VOFS_NonGameplay
lbl_0806140c: .4byte gBG2HOFS_NonGameplay
lbl_08061410: .4byte gBG2VOFS_NonGameplay
lbl_08061414: .4byte gBG3HOFS_NonGameplay
lbl_08061418: .4byte gBG3VOFS_NonGameplay
lbl_080613fc: .4byte gBg0HOFS_NonGameplay
lbl_08061400: .4byte gBg0VOFS_NonGameplay
lbl_08061404: .4byte gBg1HOFS_NonGameplay
lbl_08061408: .4byte gBg1VOFS_NonGameplay
lbl_0806140c: .4byte gBg2HOFS_NonGameplay
lbl_08061410: .4byte gBg2VOFS_NonGameplay
lbl_08061414: .4byte gBg3HOFS_NonGameplay
lbl_08061418: .4byte gBg3VOFS_NonGameplay
thumb_func_start CutsceneSetBgcntPageData
CutsceneSetBgcntPageData: @ 0x0806141c
@ -833,34 +833,34 @@ CutsceneSetBackgroundPosition: @ 0x080614d4
lsls r0, r0, #1
cmp r1, r0
bne lbl_080614fc
ldr r0, lbl_080614f8 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_080614f8 @ =gBg0HOFS_NonGameplay
b lbl_08061526
.align 2, 0
lbl_080614f8: .4byte gBG0HOFS_NonGameplay
lbl_080614f8: .4byte gBg0HOFS_NonGameplay
lbl_080614fc:
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
bne lbl_0806150c
ldr r0, lbl_08061508 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_08061508 @ =gBg1HOFS_NonGameplay
b lbl_08061526
.align 2, 0
lbl_08061508: .4byte gBG1HOFS_NonGameplay
lbl_08061508: .4byte gBg1HOFS_NonGameplay
lbl_0806150c:
movs r0, #0x80
lsls r0, r0, #3
cmp r1, r0
bne lbl_0806151c
ldr r0, lbl_08061518 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_08061518 @ =gBg2HOFS_NonGameplay
b lbl_08061526
.align 2, 0
lbl_08061518: .4byte gBG2HOFS_NonGameplay
lbl_08061518: .4byte gBg2HOFS_NonGameplay
lbl_0806151c:
movs r0, #0x80
lsls r0, r0, #4
cmp r1, r0
bne lbl_08061528
ldr r0, lbl_0806153c @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0806153c @ =gBg3HOFS_NonGameplay
lbl_08061526:
strh r2, [r0]
lbl_08061528:
@ -872,42 +872,42 @@ lbl_08061528:
lsls r0, r0, #1
cmp r1, r0
bne lbl_08061544
ldr r0, lbl_08061540 @ =gBG0VOFS_NonGameplay
ldr r0, lbl_08061540 @ =gBg0VOFS_NonGameplay
b lbl_0806156e
.align 2, 0
lbl_0806153c: .4byte gBG3HOFS_NonGameplay
lbl_08061540: .4byte gBG0VOFS_NonGameplay
lbl_0806153c: .4byte gBg3HOFS_NonGameplay
lbl_08061540: .4byte gBg0VOFS_NonGameplay
lbl_08061544:
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
bne lbl_08061554
ldr r0, lbl_08061550 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_08061550 @ =gBg1VOFS_NonGameplay
b lbl_0806156e
.align 2, 0
lbl_08061550: .4byte gBG1VOFS_NonGameplay
lbl_08061550: .4byte gBg1VOFS_NonGameplay
lbl_08061554:
movs r0, #0x80
lsls r0, r0, #3
cmp r1, r0
bne lbl_08061564
ldr r0, lbl_08061560 @ =gBG2VOFS_NonGameplay
ldr r0, lbl_08061560 @ =gBg2VOFS_NonGameplay
b lbl_0806156e
.align 2, 0
lbl_08061560: .4byte gBG2VOFS_NonGameplay
lbl_08061560: .4byte gBg2VOFS_NonGameplay
lbl_08061564:
movs r0, #0x80
lsls r0, r0, #4
cmp r1, r0
bne lbl_08061570
ldr r0, lbl_08061574 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_08061574 @ =gBg3VOFS_NonGameplay
lbl_0806156e:
strh r2, [r0]
lbl_08061570:
pop {r0}
bx r0
.align 2, 0
lbl_08061574: .4byte gBG3VOFS_NonGameplay
lbl_08061574: .4byte gBg3VOFS_NonGameplay
thumb_func_start CutsceneGetBgHorizontalPointer
CutsceneGetBgHorizontalPointer: @ 0x08061578
@ -920,40 +920,40 @@ CutsceneGetBgHorizontalPointer: @ 0x08061578
lsls r0, r0, #1
cmp r1, r0
bne lbl_08061594
ldr r2, lbl_08061590 @ =gBG0HOFS_NonGameplay
ldr r2, lbl_08061590 @ =gBg0HOFS_NonGameplay
b lbl_080615be
.align 2, 0
lbl_08061590: .4byte gBG0HOFS_NonGameplay
lbl_08061590: .4byte gBg0HOFS_NonGameplay
lbl_08061594:
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
bne lbl_080615a4
ldr r2, lbl_080615a0 @ =gBG1HOFS_NonGameplay
ldr r2, lbl_080615a0 @ =gBg1HOFS_NonGameplay
b lbl_080615be
.align 2, 0
lbl_080615a0: .4byte gBG1HOFS_NonGameplay
lbl_080615a0: .4byte gBg1HOFS_NonGameplay
lbl_080615a4:
movs r0, #0x80
lsls r0, r0, #3
cmp r1, r0
bne lbl_080615b4
ldr r2, lbl_080615b0 @ =gBG2HOFS_NonGameplay
ldr r2, lbl_080615b0 @ =gBg2HOFS_NonGameplay
b lbl_080615be
.align 2, 0
lbl_080615b0: .4byte gBG2HOFS_NonGameplay
lbl_080615b0: .4byte gBg2HOFS_NonGameplay
lbl_080615b4:
movs r0, #0x80
lsls r0, r0, #4
cmp r3, r0
bne lbl_080615be
ldr r2, lbl_080615c4 @ =gBG3HOFS_NonGameplay
ldr r2, lbl_080615c4 @ =gBg3HOFS_NonGameplay
lbl_080615be:
adds r0, r2, #0
pop {r1}
bx r1
.align 2, 0
lbl_080615c4: .4byte gBG3HOFS_NonGameplay
lbl_080615c4: .4byte gBg3HOFS_NonGameplay
thumb_func_start CutsceneGetBgVerticalPointer
CutsceneGetBgVerticalPointer: @ 0x080615c8
@ -966,40 +966,40 @@ CutsceneGetBgVerticalPointer: @ 0x080615c8
lsls r0, r0, #1
cmp r1, r0
bne lbl_080615e4
ldr r2, lbl_080615e0 @ =gBG0VOFS_NonGameplay
ldr r2, lbl_080615e0 @ =gBg0VOFS_NonGameplay
b lbl_0806160e
.align 2, 0
lbl_080615e0: .4byte gBG0VOFS_NonGameplay
lbl_080615e0: .4byte gBg0VOFS_NonGameplay
lbl_080615e4:
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
bne lbl_080615f4
ldr r2, lbl_080615f0 @ =gBG1VOFS_NonGameplay
ldr r2, lbl_080615f0 @ =gBg1VOFS_NonGameplay
b lbl_0806160e
.align 2, 0
lbl_080615f0: .4byte gBG1VOFS_NonGameplay
lbl_080615f0: .4byte gBg1VOFS_NonGameplay
lbl_080615f4:
movs r0, #0x80
lsls r0, r0, #3
cmp r1, r0
bne lbl_08061604
ldr r2, lbl_08061600 @ =gBG2VOFS_NonGameplay
ldr r2, lbl_08061600 @ =gBg2VOFS_NonGameplay
b lbl_0806160e
.align 2, 0
lbl_08061600: .4byte gBG2VOFS_NonGameplay
lbl_08061600: .4byte gBg2VOFS_NonGameplay
lbl_08061604:
movs r0, #0x80
lsls r0, r0, #4
cmp r3, r0
bne lbl_0806160e
ldr r2, lbl_08061614 @ =gBG3VOFS_NonGameplay
ldr r2, lbl_08061614 @ =gBg3VOFS_NonGameplay
lbl_0806160e:
adds r0, r2, #0
pop {r1}
bx r1
.align 2, 0
lbl_08061614: .4byte gBG3VOFS_NonGameplay
lbl_08061614: .4byte gBg3VOFS_NonGameplay
thumb_func_start CutsceneStartBackgroundScrolling
CutsceneStartBackgroundScrolling: @ 0x08061618
@ -1199,11 +1199,11 @@ lbl_08061788:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_080617a0 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_080617a0 @ =gBg0HOFS_NonGameplay
b lbl_0806185c
.align 2, 0
lbl_0806179c: .4byte sNonGameplayRamPointer
lbl_080617a0: .4byte gBG0HOFS_NonGameplay
lbl_080617a0: .4byte gBg0HOFS_NonGameplay
lbl_080617a4:
ldr r2, lbl_080617b8 @ =sNonGameplayRamPointer
ldr r1, [r2]
@ -1212,11 +1212,11 @@ lbl_080617a4:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_080617bc @ =gBG0VOFS_NonGameplay
ldr r0, lbl_080617bc @ =gBg0VOFS_NonGameplay
b lbl_0806185c
.align 2, 0
lbl_080617b8: .4byte sNonGameplayRamPointer
lbl_080617bc: .4byte gBG0VOFS_NonGameplay
lbl_080617bc: .4byte gBg0VOFS_NonGameplay
lbl_080617c0:
ldr r2, lbl_080617d4 @ =sNonGameplayRamPointer
ldr r1, [r2]
@ -1225,11 +1225,11 @@ lbl_080617c0:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_080617d8 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_080617d8 @ =gBg1HOFS_NonGameplay
b lbl_0806185c
.align 2, 0
lbl_080617d4: .4byte sNonGameplayRamPointer
lbl_080617d8: .4byte gBG1HOFS_NonGameplay
lbl_080617d8: .4byte gBg1HOFS_NonGameplay
lbl_080617dc:
ldr r2, lbl_080617f0 @ =sNonGameplayRamPointer
ldr r1, [r2]
@ -1238,11 +1238,11 @@ lbl_080617dc:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_080617f4 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_080617f4 @ =gBg1VOFS_NonGameplay
b lbl_0806185c
.align 2, 0
lbl_080617f0: .4byte sNonGameplayRamPointer
lbl_080617f4: .4byte gBG1VOFS_NonGameplay
lbl_080617f4: .4byte gBg1VOFS_NonGameplay
lbl_080617f8:
ldr r2, lbl_0806180c @ =sNonGameplayRamPointer
ldr r1, [r2]
@ -1251,11 +1251,11 @@ lbl_080617f8:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_08061810 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_08061810 @ =gBg2HOFS_NonGameplay
b lbl_0806185c
.align 2, 0
lbl_0806180c: .4byte sNonGameplayRamPointer
lbl_08061810: .4byte gBG2HOFS_NonGameplay
lbl_08061810: .4byte gBg2HOFS_NonGameplay
lbl_08061814:
ldr r2, lbl_08061828 @ =sNonGameplayRamPointer
ldr r1, [r2]
@ -1264,11 +1264,11 @@ lbl_08061814:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_0806182c @ =gBG2VOFS_NonGameplay
ldr r0, lbl_0806182c @ =gBg2VOFS_NonGameplay
b lbl_0806185c
.align 2, 0
lbl_08061828: .4byte sNonGameplayRamPointer
lbl_0806182c: .4byte gBG2VOFS_NonGameplay
lbl_0806182c: .4byte gBg2VOFS_NonGameplay
lbl_08061830:
ldr r2, lbl_08061844 @ =sNonGameplayRamPointer
ldr r1, [r2]
@ -1277,11 +1277,11 @@ lbl_08061830:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_08061848 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_08061848 @ =gBg3HOFS_NonGameplay
b lbl_0806185c
.align 2, 0
lbl_08061844: .4byte sNonGameplayRamPointer
lbl_08061848: .4byte gBG3HOFS_NonGameplay
lbl_08061848: .4byte gBg3HOFS_NonGameplay
lbl_0806184c:
ldr r2, lbl_08061888 @ =sNonGameplayRamPointer
ldr r1, [r2]
@ -1290,7 +1290,7 @@ lbl_0806184c:
lsls r0, r0, #2
adds r1, #0x38
adds r1, r1, r0
ldr r0, lbl_0806188c @ =gBG3VOFS_NonGameplay
ldr r0, lbl_0806188c @ =gBg3VOFS_NonGameplay
lbl_0806185c:
str r0, [r1]
mov r8, r2
@ -1317,7 +1317,7 @@ lbl_08061880:
b lbl_080618a2
.align 2, 0
lbl_08061888: .4byte sNonGameplayRamPointer
lbl_0806188c: .4byte gBG3VOFS_NonGameplay
lbl_0806188c: .4byte gBg3VOFS_NonGameplay
lbl_08061890:
mov r1, r8
ldr r0, [r1]
@ -1531,35 +1531,35 @@ lbl_080619ee:
lbl_080619f8:
ldr r4, lbl_08061a64 @ =sNonGameplayRamPointer
ldr r1, [r4]
ldr r0, lbl_08061a68 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_08061a68 @ =gBg0HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x30]
ldr r0, lbl_08061a6c @ =gBG0VOFS_NonGameplay
ldr r0, lbl_08061a6c @ =gBg0VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x28]
ldr r0, lbl_08061a70 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_08061a70 @ =gBg1HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x32]
ldr r0, lbl_08061a74 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_08061a74 @ =gBg1VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x2a]
ldr r0, lbl_08061a78 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_08061a78 @ =gBg2HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x34]
ldr r0, lbl_08061a7c @ =gBG2VOFS_NonGameplay
ldr r0, lbl_08061a7c @ =gBg2VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x2c]
ldr r0, lbl_08061a80 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_08061a80 @ =gBg3HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x36]
ldr r0, lbl_08061a84 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_08061a84 @ =gBg3VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1, #0x2e]
@ -1584,14 +1584,14 @@ lbl_08061a5c:
bx r0
.align 2, 0
lbl_08061a64: .4byte sNonGameplayRamPointer
lbl_08061a68: .4byte gBG0HOFS_NonGameplay
lbl_08061a6c: .4byte gBG0VOFS_NonGameplay
lbl_08061a70: .4byte gBG1HOFS_NonGameplay
lbl_08061a74: .4byte gBG1VOFS_NonGameplay
lbl_08061a78: .4byte gBG2HOFS_NonGameplay
lbl_08061a7c: .4byte gBG2VOFS_NonGameplay
lbl_08061a80: .4byte gBG3HOFS_NonGameplay
lbl_08061a84: .4byte gBG3VOFS_NonGameplay
lbl_08061a68: .4byte gBg0HOFS_NonGameplay
lbl_08061a6c: .4byte gBg0VOFS_NonGameplay
lbl_08061a70: .4byte gBg1HOFS_NonGameplay
lbl_08061a74: .4byte gBg1VOFS_NonGameplay
lbl_08061a78: .4byte gBg2HOFS_NonGameplay
lbl_08061a7c: .4byte gBg2VOFS_NonGameplay
lbl_08061a80: .4byte gBg3HOFS_NonGameplay
lbl_08061a84: .4byte gBg3VOFS_NonGameplay
thumb_func_start sub_08061a88
sub_08061a88: @ 0x08061a88

View File

@ -3004,55 +3004,55 @@ lbl_08069892:
ands r1, r0
cmp r1, #0
bne lbl_080698b4
ldr r0, lbl_080698ac @ =gBG0HOFS_NonGameplay
ldr r0, lbl_080698ac @ =gBg0HOFS_NonGameplay
movs r1, #0
ldrsh r7, [r0, r1]
ldr r0, lbl_080698b0 @ =gBG0VOFS_NonGameplay
ldr r0, lbl_080698b0 @ =gBg0VOFS_NonGameplay
movs r2, #0
ldrsh r6, [r0, r2]
b lbl_0806990c
.align 2, 0
lbl_080698ac: .4byte gBG0HOFS_NonGameplay
lbl_080698b0: .4byte gBG0VOFS_NonGameplay
lbl_080698ac: .4byte gBg0HOFS_NonGameplay
lbl_080698b0: .4byte gBg0VOFS_NonGameplay
lbl_080698b4:
cmp r1, #1
bne lbl_080698d0
ldr r0, lbl_080698c8 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_080698c8 @ =gBg1HOFS_NonGameplay
movs r1, #0
ldrsh r7, [r0, r1]
ldr r0, lbl_080698cc @ =gBG1VOFS_NonGameplay
ldr r0, lbl_080698cc @ =gBg1VOFS_NonGameplay
movs r2, #0
ldrsh r6, [r0, r2]
b lbl_0806990c
.align 2, 0
lbl_080698c8: .4byte gBG1HOFS_NonGameplay
lbl_080698cc: .4byte gBG1VOFS_NonGameplay
lbl_080698c8: .4byte gBg1HOFS_NonGameplay
lbl_080698cc: .4byte gBg1VOFS_NonGameplay
lbl_080698d0:
cmp r1, #2
bne lbl_080698ec
ldr r0, lbl_080698e4 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_080698e4 @ =gBg2HOFS_NonGameplay
movs r1, #0
ldrsh r7, [r0, r1]
ldr r0, lbl_080698e8 @ =gBG2VOFS_NonGameplay
ldr r0, lbl_080698e8 @ =gBg2VOFS_NonGameplay
movs r2, #0
ldrsh r6, [r0, r2]
b lbl_0806990c
.align 2, 0
lbl_080698e4: .4byte gBG2HOFS_NonGameplay
lbl_080698e8: .4byte gBG2VOFS_NonGameplay
lbl_080698e4: .4byte gBg2HOFS_NonGameplay
lbl_080698e8: .4byte gBg2VOFS_NonGameplay
lbl_080698ec:
cmp r1, #3
bne lbl_08069908
ldr r0, lbl_08069900 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_08069900 @ =gBg3HOFS_NonGameplay
movs r1, #0
ldrsh r7, [r0, r1]
ldr r0, lbl_08069904 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_08069904 @ =gBg3VOFS_NonGameplay
movs r2, #0
ldrsh r6, [r0, r2]
b lbl_0806990c
.align 2, 0
lbl_08069900: .4byte gBG3HOFS_NonGameplay
lbl_08069904: .4byte gBG3VOFS_NonGameplay
lbl_08069900: .4byte gBg3HOFS_NonGameplay
lbl_08069904: .4byte gBg3VOFS_NonGameplay
lbl_08069908:
movs r7, #0
movs r6, #0
@ -3447,59 +3447,59 @@ lbl_08069bf6:
ands r1, r0
cmp r1, #0
bne lbl_08069c18
ldr r0, lbl_08069c10 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_08069c10 @ =gBg0HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_08069c14 @ =gBG0VOFS_NonGameplay
ldr r0, lbl_08069c14 @ =gBg0VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_08069c72
.align 2, 0
lbl_08069c10: .4byte gBG0HOFS_NonGameplay
lbl_08069c14: .4byte gBG0VOFS_NonGameplay
lbl_08069c10: .4byte gBg0HOFS_NonGameplay
lbl_08069c14: .4byte gBg0VOFS_NonGameplay
lbl_08069c18:
cmp r1, #1
bne lbl_08069c34
ldr r0, lbl_08069c2c @ =gBG1HOFS_NonGameplay
ldr r0, lbl_08069c2c @ =gBg1HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_08069c30 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_08069c30 @ =gBg1VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_08069c72
.align 2, 0
lbl_08069c2c: .4byte gBG1HOFS_NonGameplay
lbl_08069c30: .4byte gBG1VOFS_NonGameplay
lbl_08069c2c: .4byte gBg1HOFS_NonGameplay
lbl_08069c30: .4byte gBg1VOFS_NonGameplay
lbl_08069c34:
cmp r1, #2
bne lbl_08069c50
ldr r0, lbl_08069c48 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_08069c48 @ =gBg2HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_08069c4c @ =gBG2VOFS_NonGameplay
ldr r0, lbl_08069c4c @ =gBg2VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_08069c72
.align 2, 0
lbl_08069c48: .4byte gBG2HOFS_NonGameplay
lbl_08069c4c: .4byte gBG2VOFS_NonGameplay
lbl_08069c48: .4byte gBg2HOFS_NonGameplay
lbl_08069c4c: .4byte gBg2VOFS_NonGameplay
lbl_08069c50:
cmp r1, #3
bne lbl_08069c6c
ldr r0, lbl_08069c64 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_08069c64 @ =gBg3HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_08069c68 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_08069c68 @ =gBg3VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_08069c72
.align 2, 0
lbl_08069c64: .4byte gBG3HOFS_NonGameplay
lbl_08069c68: .4byte gBG3VOFS_NonGameplay
lbl_08069c64: .4byte gBg3HOFS_NonGameplay
lbl_08069c68: .4byte gBg3VOFS_NonGameplay
lbl_08069c6c:
movs r3, #0
mov r8, r3
@ -3935,59 +3935,59 @@ lbl_08069fae:
ands r1, r0
cmp r1, #0
bne lbl_08069fd0
ldr r0, lbl_08069fc8 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_08069fc8 @ =gBg0HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_08069fcc @ =gBG0VOFS_NonGameplay
ldr r0, lbl_08069fcc @ =gBg0VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_0806a02a
.align 2, 0
lbl_08069fc8: .4byte gBG0HOFS_NonGameplay
lbl_08069fcc: .4byte gBG0VOFS_NonGameplay
lbl_08069fc8: .4byte gBg0HOFS_NonGameplay
lbl_08069fcc: .4byte gBg0VOFS_NonGameplay
lbl_08069fd0:
cmp r1, #1
bne lbl_08069fec
ldr r0, lbl_08069fe4 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_08069fe4 @ =gBg1HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_08069fe8 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_08069fe8 @ =gBg1VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_0806a02a
.align 2, 0
lbl_08069fe4: .4byte gBG1HOFS_NonGameplay
lbl_08069fe8: .4byte gBG1VOFS_NonGameplay
lbl_08069fe4: .4byte gBg1HOFS_NonGameplay
lbl_08069fe8: .4byte gBg1VOFS_NonGameplay
lbl_08069fec:
cmp r1, #2
bne lbl_0806a008
ldr r0, lbl_0806a000 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_0806a000 @ =gBg2HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_0806a004 @ =gBG2VOFS_NonGameplay
ldr r0, lbl_0806a004 @ =gBg2VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_0806a02a
.align 2, 0
lbl_0806a000: .4byte gBG2HOFS_NonGameplay
lbl_0806a004: .4byte gBG2VOFS_NonGameplay
lbl_0806a000: .4byte gBg2HOFS_NonGameplay
lbl_0806a004: .4byte gBg2VOFS_NonGameplay
lbl_0806a008:
cmp r1, #3
bne lbl_0806a024
ldr r0, lbl_0806a01c @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0806a01c @ =gBg3HOFS_NonGameplay
movs r1, #0
ldrsh r3, [r0, r1]
mov r8, r3
ldr r0, lbl_0806a020 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_0806a020 @ =gBg3VOFS_NonGameplay
movs r2, #0
ldrsh r7, [r0, r2]
b lbl_0806a02a
.align 2, 0
lbl_0806a01c: .4byte gBG3HOFS_NonGameplay
lbl_0806a020: .4byte gBG3VOFS_NonGameplay
lbl_0806a01c: .4byte gBg3HOFS_NonGameplay
lbl_0806a020: .4byte gBg3VOFS_NonGameplay
lbl_0806a024:
movs r3, #0
mov r8, r3
@ -4361,7 +4361,7 @@ sub_0806a2f8: @ 0x0806a2f8
ldrh r0, [r0]
strh r0, [r1]
ldr r2, lbl_0806a3f0 @ =0x04000010
ldr r0, lbl_0806a3f4 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0806a3f4 @ =gBg0HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ldr r4, lbl_0806a3f8 @ =0x000001ff
@ -4369,43 +4369,43 @@ sub_0806a2f8: @ 0x0806a2f8
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806a3fc @ =gBG0VOFS_NonGameplay
ldr r0, lbl_0806a3fc @ =gBg0VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806a400 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_0806a400 @ =gBg1HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806a404 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_0806a404 @ =gBg1VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806a408 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_0806a408 @ =gBg2HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806a40c @ =gBG2VOFS_NonGameplay
ldr r0, lbl_0806a40c @ =gBg2VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806a410 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0806a410 @ =gBg3HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806a414 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_0806a414 @ =gBg3VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
@ -4454,15 +4454,15 @@ lbl_0806a3e4: .4byte sNonGameplayRamPointer
lbl_0806a3e8: .4byte gWrittenToBLDY_NonGameplay
lbl_0806a3ec: .4byte gWrittenToMOSAIC_L
lbl_0806a3f0: .4byte 0x04000010
lbl_0806a3f4: .4byte gBG0HOFS_NonGameplay
lbl_0806a3f4: .4byte gBg0HOFS_NonGameplay
lbl_0806a3f8: .4byte 0x000001ff
lbl_0806a3fc: .4byte gBG0VOFS_NonGameplay
lbl_0806a400: .4byte gBG1HOFS_NonGameplay
lbl_0806a404: .4byte gBG1VOFS_NonGameplay
lbl_0806a408: .4byte gBG2HOFS_NonGameplay
lbl_0806a40c: .4byte gBG2VOFS_NonGameplay
lbl_0806a410: .4byte gBG3HOFS_NonGameplay
lbl_0806a414: .4byte gBG3VOFS_NonGameplay
lbl_0806a3fc: .4byte gBg0VOFS_NonGameplay
lbl_0806a400: .4byte gBg1HOFS_NonGameplay
lbl_0806a404: .4byte gBg1VOFS_NonGameplay
lbl_0806a408: .4byte gBg2HOFS_NonGameplay
lbl_0806a40c: .4byte gBg2VOFS_NonGameplay
lbl_0806a410: .4byte gBg3HOFS_NonGameplay
lbl_0806a414: .4byte gBg3VOFS_NonGameplay
lbl_0806a418: .4byte 0x04000008
lbl_0806a41c: .4byte gWrittenToBLDALPHA_H
lbl_0806a420: .4byte gWrittenToBLDALPHA_L
@ -4989,21 +4989,21 @@ lbl_0806a8ba:
adds r1, r1, r5
bl CallLZ77UncompWram
lbl_0806a8f6:
ldr r2, lbl_0806a968 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0806a96c @ =gBG0VOFS_NonGameplay
ldr r2, lbl_0806a968 @ =gBg0HOFS_NonGameplay
ldr r0, lbl_0806a96c @ =gBg0VOFS_NonGameplay
movs r1, #0
strh r1, [r0]
strh r1, [r2]
ldr r0, lbl_0806a970 @ =gBG1HOFS_NonGameplay
ldr r4, lbl_0806a974 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_0806a970 @ =gBg1HOFS_NonGameplay
ldr r4, lbl_0806a974 @ =gBg1VOFS_NonGameplay
strh r1, [r4]
strh r1, [r0]
ldr r2, lbl_0806a978 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_0806a97c @ =gBG2VOFS_NonGameplay
ldr r2, lbl_0806a978 @ =gBg2HOFS_NonGameplay
ldr r0, lbl_0806a97c @ =gBg2VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0806a980 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0806a984 @ =gBG3VOFS_NonGameplay
ldr r2, lbl_0806a980 @ =gBg3HOFS_NonGameplay
ldr r0, lbl_0806a984 @ =gBg3VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0806a958 @ =sNonGameplayRamPointer
@ -5038,14 +5038,14 @@ lbl_0806a958: .4byte sNonGameplayRamPointer
lbl_0806a95c: .4byte 0x08408c90
lbl_0806a960: .4byte 0x0600d800
lbl_0806a964: .4byte 0x084086dc
lbl_0806a968: .4byte gBG0HOFS_NonGameplay
lbl_0806a96c: .4byte gBG0VOFS_NonGameplay
lbl_0806a970: .4byte gBG1HOFS_NonGameplay
lbl_0806a974: .4byte gBG1VOFS_NonGameplay
lbl_0806a978: .4byte gBG2HOFS_NonGameplay
lbl_0806a97c: .4byte gBG2VOFS_NonGameplay
lbl_0806a980: .4byte gBG3HOFS_NonGameplay
lbl_0806a984: .4byte gBG3VOFS_NonGameplay
lbl_0806a968: .4byte gBg0HOFS_NonGameplay
lbl_0806a96c: .4byte gBg0VOFS_NonGameplay
lbl_0806a970: .4byte gBg1HOFS_NonGameplay
lbl_0806a974: .4byte gBg1VOFS_NonGameplay
lbl_0806a978: .4byte gBg2HOFS_NonGameplay
lbl_0806a97c: .4byte gBg2VOFS_NonGameplay
lbl_0806a980: .4byte gBg3HOFS_NonGameplay
lbl_0806a984: .4byte gBg3VOFS_NonGameplay
lbl_0806a988: .4byte 0x087600f8
lbl_0806a98c:
movs r0, #0x20
@ -5152,9 +5152,9 @@ lbl_0806aa6a:
movs r0, #2
ands r0, r1
mov sl, r2
ldr r3, lbl_0806aad4 @ =gBG1HOFS_NonGameplay
ldr r3, lbl_0806aad4 @ =gBg1HOFS_NonGameplay
mov ip, r3
ldr r5, lbl_0806aad8 @ =gBG1VOFS_NonGameplay
ldr r5, lbl_0806aad8 @ =gBg1VOFS_NonGameplay
mov sb, r5
cmp r0, #0
beq lbl_0806aa88
@ -5198,8 +5198,8 @@ lbl_0806aa88:
lbl_0806aac8: .4byte sEwramPointer
lbl_0806aacc: .4byte 0x0600d000
lbl_0806aad0: .4byte sNonGameplayRamPointer
lbl_0806aad4: .4byte gBG1HOFS_NonGameplay
lbl_0806aad8: .4byte gBG1VOFS_NonGameplay
lbl_0806aad4: .4byte gBg1HOFS_NonGameplay
lbl_0806aad8: .4byte gBg1VOFS_NonGameplay
lbl_0806aadc: .4byte gWrittenToBLDY_NonGameplay
lbl_0806aae0: .4byte gWrittenToBLDALPHA_H
lbl_0806aae4: .4byte gWrittenToBLDALPHA_L
@ -5249,7 +5249,7 @@ lbl_0806ab30:
movs r6, #0
strh r6, [r0]
ldr r2, lbl_0806ac4c @ =0x04000010
ldr r0, lbl_0806ac50 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0806ac50 @ =gBg0HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ldr r5, lbl_0806ac54 @ =0x000001ff
@ -5257,7 +5257,7 @@ lbl_0806ab30:
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806ac58 @ =gBG0VOFS_NonGameplay
ldr r0, lbl_0806ac58 @ =gBg0VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
@ -5275,25 +5275,25 @@ lbl_0806ab30:
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806ac5c @ =gBG2HOFS_NonGameplay
ldr r0, lbl_0806ac5c @ =gBg2HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806ac60 @ =gBG2VOFS_NonGameplay
ldr r0, lbl_0806ac60 @ =gBg2VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806ac64 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0806ac64 @ =gBg3HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
strh r0, [r2]
adds r2, #2
ldr r0, lbl_0806ac68 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_0806ac68 @ =gBg3VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
ands r0, r1
@ -5379,13 +5379,13 @@ lbl_0806ac40: .4byte 0x0000060a
lbl_0806ac44: .4byte 0x0400004a
lbl_0806ac48: .4byte gWrittenToMOSAIC_L
lbl_0806ac4c: .4byte 0x04000010
lbl_0806ac50: .4byte gBG0HOFS_NonGameplay
lbl_0806ac50: .4byte gBg0HOFS_NonGameplay
lbl_0806ac54: .4byte 0x000001ff
lbl_0806ac58: .4byte gBG0VOFS_NonGameplay
lbl_0806ac5c: .4byte gBG2HOFS_NonGameplay
lbl_0806ac60: .4byte gBG2VOFS_NonGameplay
lbl_0806ac64: .4byte gBG3HOFS_NonGameplay
lbl_0806ac68: .4byte gBG3VOFS_NonGameplay
lbl_0806ac58: .4byte gBg0VOFS_NonGameplay
lbl_0806ac5c: .4byte gBg2HOFS_NonGameplay
lbl_0806ac60: .4byte gBg2VOFS_NonGameplay
lbl_0806ac64: .4byte gBg3HOFS_NonGameplay
lbl_0806ac68: .4byte gBg3VOFS_NonGameplay
lbl_0806ac6c: .4byte 0x0400004c
lbl_0806ac70: .4byte 0x04000050
lbl_0806ac74: .4byte 0x0840d088

View File

@ -4264,9 +4264,9 @@ lbl_0807a354:
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r0, lbl_0807a44c @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807a44c @ =gBg0HOFS_NonGameplay
strh r6, [r0]
ldr r1, lbl_0807a450 @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807a450 @ =gBg0VOFS_NonGameplay
movs r3, #0xc0
lsls r3, r3, #3
adds r0, r3, #0
@ -4289,8 +4289,8 @@ lbl_0807a43c: .4byte 0x0000011f
lbl_0807a440: .4byte 0x0000013f
lbl_0807a444: .4byte 0x0600e000
lbl_0807a448: .4byte sEwramPointer
lbl_0807a44c: .4byte gBG0HOFS_NonGameplay
lbl_0807a450: .4byte gBG0VOFS_NonGameplay
lbl_0807a44c: .4byte gBg0HOFS_NonGameplay
lbl_0807a450: .4byte gBg0VOFS_NonGameplay
lbl_0807a454:
movs r2, #1
ldr r1, lbl_0807a46c @ =gWrittenToBLDALPHA_L
@ -4358,7 +4358,7 @@ lbl_0807a4c8: .4byte gWrittenToBLDALPHA_H
lbl_0807a4cc: .4byte 0x0000010f
lbl_0807a4d0: .4byte 0x0000fdff
lbl_0807a4d4:
ldr r1, lbl_0807a500 @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807a500 @ =gBg0VOFS_NonGameplay
ldrh r0, [r1]
ldr r2, lbl_0807a504 @ =0x000007ff
cmp r0, r2
@ -4380,7 +4380,7 @@ lbl_0807a4ec:
ldr r1, [r0]
b lbl_0807a77e
.align 2, 0
lbl_0807a500: .4byte gBG0VOFS_NonGameplay
lbl_0807a500: .4byte gBg0VOFS_NonGameplay
lbl_0807a504: .4byte 0x000007ff
lbl_0807a508: .4byte sNonGameplayRamPointer
lbl_0807a50c:
@ -4468,8 +4468,8 @@ lbl_0807a584:
adds r2, r6, #0
movs r3, #0xc0
bl DmaTransfer
ldr r1, lbl_0807a5ec @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807a5f0 @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807a5ec @ =gBg0HOFS_NonGameplay
ldr r0, lbl_0807a5f0 @ =gBg0VOFS_NonGameplay
strh r4, [r0]
strh r4, [r1]
ldr r1, [r7]
@ -4480,9 +4480,9 @@ lbl_0807a584:
strh r2, [r0]
ldr r0, lbl_0807a5fc @ =gWrittenToBLDALPHA_L
strh r5, [r0]
ldr r0, lbl_0807a600 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_0807a600 @ =gBg1HOFS_NonGameplay
strh r4, [r0]
ldr r0, lbl_0807a604 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_0807a604 @ =gBg1VOFS_NonGameplay
strh r4, [r0]
ldrh r0, [r1, #0x1e]
strh r0, [r1, #4]
@ -4496,13 +4496,13 @@ lbl_0807a584:
.align 2, 0
lbl_0807a5e4: .4byte 0x0600e000
lbl_0807a5e8: .4byte sEwramPointer
lbl_0807a5ec: .4byte gBG0HOFS_NonGameplay
lbl_0807a5f0: .4byte gBG0VOFS_NonGameplay
lbl_0807a5ec: .4byte gBg0HOFS_NonGameplay
lbl_0807a5f0: .4byte gBg0VOFS_NonGameplay
lbl_0807a5f4: .4byte 0x00003f54
lbl_0807a5f8: .4byte gWrittenToBLDALPHA_H
lbl_0807a5fc: .4byte gWrittenToBLDALPHA_L
lbl_0807a600: .4byte gBG1HOFS_NonGameplay
lbl_0807a604: .4byte gBG1VOFS_NonGameplay
lbl_0807a600: .4byte gBg1HOFS_NonGameplay
lbl_0807a604: .4byte gBg1VOFS_NonGameplay
lbl_0807a608:
movs r2, #1
ldr r1, lbl_0807a620 @ =gWrittenToBLDALPHA_L
@ -4540,7 +4540,7 @@ lbl_0807a640:
.align 2, 0
lbl_0807a644: .4byte gWrittenToBLDALPHA_H
lbl_0807a648:
ldr r2, lbl_0807a668 @ =gBG0VOFS_NonGameplay
ldr r2, lbl_0807a668 @ =gBg0VOFS_NonGameplay
ldrh r0, [r2]
movs r1, #0xc0
lsls r1, r1, #3
@ -4557,7 +4557,7 @@ lbl_0807a662:
strh r1, [r2]
b lbl_0807a77c
.align 2, 0
lbl_0807a668: .4byte gBG0VOFS_NonGameplay
lbl_0807a668: .4byte gBg0VOFS_NonGameplay
lbl_0807a66c:
ldr r0, [r7]
adds r0, #0x3f
@ -4716,12 +4716,12 @@ lbl_0807a7a0:
ands r0, r1
movs r3, #0
strh r0, [r2]
ldr r0, lbl_0807a7c8 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807a7c8 @ =gBg0HOFS_NonGameplay
movs r2, #0x80
lsls r2, r2, #4
adds r1, r2, #0
strh r1, [r0]
ldr r0, lbl_0807a7cc @ =gBG0VOFS_NonGameplay
ldr r0, lbl_0807a7cc @ =gBg0VOFS_NonGameplay
strh r1, [r0]
ldr r0, lbl_0807a7d0 @ =gGameModeSub2
strb r3, [r0]
@ -4729,8 +4729,8 @@ lbl_0807a7a0:
b lbl_0807a7d6
.align 2, 0
lbl_0807a7c4: .4byte 0x0000feff
lbl_0807a7c8: .4byte gBG0HOFS_NonGameplay
lbl_0807a7cc: .4byte gBG0VOFS_NonGameplay
lbl_0807a7c8: .4byte gBg0HOFS_NonGameplay
lbl_0807a7cc: .4byte gBg0VOFS_NonGameplay
lbl_0807a7d0: .4byte gGameModeSub2
lbl_0807a7d4:
movs r0, #0
@ -6068,22 +6068,22 @@ lbl_0807b1e4:
adds r1, r2, r0
movs r0, #0x80
strh r0, [r1]
ldr r1, lbl_0807b340 @ =gBG1HOFS_NonGameplay
ldr r1, lbl_0807b340 @ =gBg1HOFS_NonGameplay
movs r2, #0xdb
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807b344 @ =gBG1VOFS_NonGameplay
ldr r1, lbl_0807b344 @ =gBg1VOFS_NonGameplay
movs r3, #0xe0
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807b348 @ =gBG0HOFS_NonGameplay
ldr r1, lbl_0807b348 @ =gBg0HOFS_NonGameplay
movs r4, #0xcc
lsls r4, r4, #3
adds r0, r4, #0
strh r0, [r1]
ldr r1, lbl_0807b34c @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807b34c @ =gBg0VOFS_NonGameplay
movs r2, #0x80
lsls r2, r2, #4
adds r0, r2, #0
@ -6178,10 +6178,10 @@ lbl_0807b1e4:
.align 2, 0
lbl_0807b338: .4byte sNonGameplayRamPointer
lbl_0807b33c: .4byte 0x000001ff
lbl_0807b340: .4byte gBG1HOFS_NonGameplay
lbl_0807b344: .4byte gBG1VOFS_NonGameplay
lbl_0807b348: .4byte gBG0HOFS_NonGameplay
lbl_0807b34c: .4byte gBG0VOFS_NonGameplay
lbl_0807b340: .4byte gBg1HOFS_NonGameplay
lbl_0807b344: .4byte gBg1VOFS_NonGameplay
lbl_0807b348: .4byte gBg0HOFS_NonGameplay
lbl_0807b34c: .4byte gBg0VOFS_NonGameplay
lbl_0807b350: .4byte sEwramPointer
lbl_0807b354: .4byte 0x0600e000
lbl_0807b358: .4byte 0x000001cf
@ -7210,22 +7210,22 @@ lbl_0807bac4:
adds r0, r0, r4
movs r1, #0x10
bl UpdateMenuOamDataID
ldr r1, lbl_0807bbec @ =gBG1HOFS_NonGameplay
ldr r1, lbl_0807bbec @ =gBg1HOFS_NonGameplay
movs r2, #0xdb
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807bbf0 @ =gBG1VOFS_NonGameplay
ldr r1, lbl_0807bbf0 @ =gBg1VOFS_NonGameplay
movs r3, #0xdf
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807bbf4 @ =gBG0HOFS_NonGameplay
ldr r1, lbl_0807bbf4 @ =gBg0HOFS_NonGameplay
movs r4, #0xcc
lsls r4, r4, #3
adds r0, r4, #0
strh r0, [r1]
ldr r1, lbl_0807bbf8 @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807bbf8 @ =gBg0VOFS_NonGameplay
movs r2, #0xfc
lsls r2, r2, #3
adds r0, r2, #0
@ -7246,10 +7246,10 @@ lbl_0807bbdc: .4byte sNonGameplayRamPointer
lbl_0807bbe0: .4byte 0x000001ff
lbl_0807bbe4: .4byte 0x000001bf
lbl_0807bbe8: .4byte 0x000001ef
lbl_0807bbec: .4byte gBG1HOFS_NonGameplay
lbl_0807bbf0: .4byte gBG1VOFS_NonGameplay
lbl_0807bbf4: .4byte gBG0HOFS_NonGameplay
lbl_0807bbf8: .4byte gBG0VOFS_NonGameplay
lbl_0807bbec: .4byte gBg1HOFS_NonGameplay
lbl_0807bbf0: .4byte gBg1VOFS_NonGameplay
lbl_0807bbf4: .4byte gBg0HOFS_NonGameplay
lbl_0807bbf8: .4byte gBg0VOFS_NonGameplay
lbl_0807bbfc:
ldr r0, lbl_0807bc34 @ =gChangedInput
ldrh r1, [r0]
@ -8795,23 +8795,23 @@ lbl_0807c85c:
movs r1, #0
lbl_0807c872:
strb r1, [r0]
ldr r2, lbl_0807c970 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807c974 @ =gBG0VOFS_NonGameplay
ldr r2, lbl_0807c970 @ =gBg0HOFS_NonGameplay
ldr r0, lbl_0807c974 @ =gBg0VOFS_NonGameplay
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0807c978 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_0807c97c @ =gBG1VOFS_NonGameplay
ldr r2, lbl_0807c978 @ =gBg1HOFS_NonGameplay
ldr r0, lbl_0807c97c @ =gBg1VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0807c980 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_0807c984 @ =gBG2VOFS_NonGameplay
ldr r2, lbl_0807c980 @ =gBg2HOFS_NonGameplay
ldr r0, lbl_0807c984 @ =gBg2VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0807c988 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0807c98c @ =gBG3VOFS_NonGameplay
ldr r2, lbl_0807c988 @ =gBg3HOFS_NonGameplay
ldr r0, lbl_0807c98c @ =gBg3VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r5, lbl_0807c96c @ =sNonGameplayRamPointer
@ -8917,14 +8917,14 @@ lbl_0807c872:
.align 2, 0
lbl_0807c968: .4byte gOptionsOptionSelected
lbl_0807c96c: .4byte sNonGameplayRamPointer
lbl_0807c970: .4byte gBG0HOFS_NonGameplay
lbl_0807c974: .4byte gBG0VOFS_NonGameplay
lbl_0807c978: .4byte gBG1HOFS_NonGameplay
lbl_0807c97c: .4byte gBG1VOFS_NonGameplay
lbl_0807c980: .4byte gBG2HOFS_NonGameplay
lbl_0807c984: .4byte gBG2VOFS_NonGameplay
lbl_0807c988: .4byte gBG3HOFS_NonGameplay
lbl_0807c98c: .4byte gBG3VOFS_NonGameplay
lbl_0807c970: .4byte gBg0HOFS_NonGameplay
lbl_0807c974: .4byte gBg0VOFS_NonGameplay
lbl_0807c978: .4byte gBg1HOFS_NonGameplay
lbl_0807c97c: .4byte gBg1VOFS_NonGameplay
lbl_0807c980: .4byte gBg2HOFS_NonGameplay
lbl_0807c984: .4byte gBg2VOFS_NonGameplay
lbl_0807c988: .4byte gBg3HOFS_NonGameplay
lbl_0807c98c: .4byte gBg3VOFS_NonGameplay
lbl_0807c990: .4byte 0x00001f0b
lbl_0807c994: .4byte 0x00001e02
lbl_0807c998: .4byte 0x00001b01
@ -9001,42 +9001,42 @@ lbl_0807ca36:
str r0, [r1, #8]
ldr r0, [r1, #8]
subs r1, #0xc4
ldr r0, lbl_0807cae8 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807cae8 @ =gBg0HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caec @ =gBG0VOFS_NonGameplay
ldr r0, lbl_0807caec @ =gBg0VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caf0 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_0807caf0 @ =gBg1HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caf4 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_0807caf4 @ =gBg1VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caf8 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_0807caf8 @ =gBg2HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807cafc @ =gBG2VOFS_NonGameplay
ldr r0, lbl_0807cafc @ =gBg2VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807cb00 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0807cb00 @ =gBg3HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807cb04 @ =gBG3VOFS_NonGameplay
ldr r0, lbl_0807cb04 @ =gBg3VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
@ -9076,14 +9076,14 @@ lbl_0807cad8: .4byte gIoTransferInfo
lbl_0807cadc: .4byte 0x040000d4
lbl_0807cae0: .4byte gOamData
lbl_0807cae4: .4byte 0x84000100
lbl_0807cae8: .4byte gBG0HOFS_NonGameplay
lbl_0807caec: .4byte gBG0VOFS_NonGameplay
lbl_0807caf0: .4byte gBG1HOFS_NonGameplay
lbl_0807caf4: .4byte gBG1VOFS_NonGameplay
lbl_0807caf8: .4byte gBG2HOFS_NonGameplay
lbl_0807cafc: .4byte gBG2VOFS_NonGameplay
lbl_0807cb00: .4byte gBG3HOFS_NonGameplay
lbl_0807cb04: .4byte gBG3VOFS_NonGameplay
lbl_0807cae8: .4byte gBg0HOFS_NonGameplay
lbl_0807caec: .4byte gBg0VOFS_NonGameplay
lbl_0807caf0: .4byte gBg1HOFS_NonGameplay
lbl_0807caf4: .4byte gBg1VOFS_NonGameplay
lbl_0807caf8: .4byte gBg2HOFS_NonGameplay
lbl_0807cafc: .4byte gBg2VOFS_NonGameplay
lbl_0807cb00: .4byte gBg3HOFS_NonGameplay
lbl_0807cb04: .4byte gBg3VOFS_NonGameplay
lbl_0807cb08: .4byte sNonGameplayRamPointer
lbl_0807cb0c: .4byte gWrittenToBLDY_NonGameplay
lbl_0807cb10: .4byte 0x04000052
@ -10827,7 +10827,7 @@ lbl_0807d8ec:
movs r1, #0x80
lsls r1, r1, #4
adds r5, r0, r1
ldr r1, lbl_0807d918 @ =gBG2VOFS_NonGameplay
ldr r1, lbl_0807d918 @ =gBg2VOFS_NonGameplay
ldrh r0, [r1]
cmp r5, r0
beq lbl_0807d91c
@ -10838,7 +10838,7 @@ lbl_0807d8ec:
lbl_0807d912:
bl lbl_0807e30c
.align 2, 0
lbl_0807d918: .4byte gBG2VOFS_NonGameplay
lbl_0807d918: .4byte gBg2VOFS_NonGameplay
lbl_0807d91c:
adds r1, r2, #0
bl lbl_0807e3b8
@ -12067,18 +12067,18 @@ lbl_0807e298:
strh r0, [r2]
ldrh r0, [r2, #0x18]
strh r0, [r2, #6]
ldr r0, lbl_0807e2bc @ =gBG1HOFS_NonGameplay
ldr r0, lbl_0807e2bc @ =gBg1HOFS_NonGameplay
movs r5, #0x80
lsls r5, r5, #4
adds r1, r5, #0
strh r1, [r0]
ldr r0, lbl_0807e2c0 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_0807e2c0 @ =gBg1VOFS_NonGameplay
strh r1, [r0]
adds r1, r2, #0
b lbl_0807e3b8
.align 2, 0
lbl_0807e2bc: .4byte gBG1HOFS_NonGameplay
lbl_0807e2c0: .4byte gBG1VOFS_NonGameplay
lbl_0807e2bc: .4byte gBg1HOFS_NonGameplay
lbl_0807e2c0: .4byte gBg1VOFS_NonGameplay
lbl_0807e2c4:
ldr r0, [r7]
adds r0, #0x3f
@ -12102,7 +12102,7 @@ lbl_0807e2c4:
lbl_0807e2ec:
movs r5, #0x80
lsls r5, r5, #4
ldr r1, lbl_0807e308 @ =gBG2VOFS_NonGameplay
ldr r1, lbl_0807e308 @ =gBg2VOFS_NonGameplay
ldrh r0, [r1]
cmp r5, r0
beq lbl_0807e310
@ -12116,7 +12116,7 @@ sub_0807e2fe: @ 0x0807e2fe
b lbl_0807e3e6
.align 2, 0
lbl_0807e304: .4byte 0x0600f000
lbl_0807e308: .4byte gBG2VOFS_NonGameplay
lbl_0807e308: .4byte gBg2VOFS_NonGameplay
lbl_0807e30c:
strh r0, [r1]
b lbl_0807e3e6
@ -12711,12 +12711,12 @@ lbl_0807e7a4:
bl UpdateMenuOamDataID
movs r0, #5
bl FileSelectPlayMenuSound
ldr r1, lbl_0807e7f0 @ =gBG1HOFS_NonGameplay
ldr r1, lbl_0807e7f0 @ =gBg1HOFS_NonGameplay
movs r2, #0xf8
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e7f4 @ =gBG1VOFS_NonGameplay
ldr r1, lbl_0807e7f4 @ =gBg1VOFS_NonGameplay
movs r3, #0xed
lsls r3, r3, #3
adds r0, r3, #0
@ -12730,8 +12730,8 @@ lbl_0807e7a4:
b lbl_0807ee54
.align 2, 0
lbl_0807e7ec: .4byte sNonGameplayRamPointer
lbl_0807e7f0: .4byte gBG1HOFS_NonGameplay
lbl_0807e7f4: .4byte gBG1VOFS_NonGameplay
lbl_0807e7f0: .4byte gBg1HOFS_NonGameplay
lbl_0807e7f4: .4byte gBg1VOFS_NonGameplay
lbl_0807e7f8: .4byte sEwramPointer
lbl_0807e7fc: .4byte 0x0600e800
lbl_0807e800:
@ -12777,12 +12777,12 @@ lbl_0807e838:
bl UpdateMenuOamDataID
movs r0, #5
bl FileSelectPlayMenuSound
ldr r1, lbl_0807e87c @ =gBG0HOFS_NonGameplay
ldr r1, lbl_0807e87c @ =gBg0HOFS_NonGameplay
movs r2, #0xe0
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e880 @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807e880 @ =gBg0VOFS_NonGameplay
movs r3, #0xe4
lsls r3, r3, #3
adds r0, r3, #0
@ -12795,8 +12795,8 @@ lbl_0807e838:
b lbl_0807ee52
.align 2, 0
lbl_0807e878: .4byte sNonGameplayRamPointer
lbl_0807e87c: .4byte gBG0HOFS_NonGameplay
lbl_0807e880: .4byte gBG0VOFS_NonGameplay
lbl_0807e87c: .4byte gBg0HOFS_NonGameplay
lbl_0807e880: .4byte gBg0VOFS_NonGameplay
lbl_0807e884: .4byte sEwramPointer
lbl_0807e888:
ldr r4, lbl_0807e8ac @ =sNonGameplayRamPointer
@ -12848,12 +12848,12 @@ lbl_0807e8cc:
bl UpdateMenuOamDataID
movs r0, #5
bl FileSelectPlayMenuSound
ldr r1, lbl_0807e908 @ =gBG0HOFS_NonGameplay
ldr r1, lbl_0807e908 @ =gBg0HOFS_NonGameplay
movs r2, #0xe0
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e90c @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807e90c @ =gBg0VOFS_NonGameplay
movs r3, #0xe4
lsls r3, r3, #3
adds r0, r3, #0
@ -12861,8 +12861,8 @@ lbl_0807e8cc:
b lbl_0807eec8
.align 2, 0
lbl_0807e904: .4byte sNonGameplayRamPointer
lbl_0807e908: .4byte gBG0HOFS_NonGameplay
lbl_0807e90c: .4byte gBG0VOFS_NonGameplay
lbl_0807e908: .4byte gBg0HOFS_NonGameplay
lbl_0807e90c: .4byte gBg0VOFS_NonGameplay
lbl_0807e910:
ldr r0, lbl_0807e960 @ =sNonGameplayRamPointer
mov r8, r0
@ -12938,12 +12938,12 @@ lbl_0807e988:
bl UpdateMenuOamDataID
movs r0, #5
bl FileSelectPlayMenuSound
ldr r1, lbl_0807e9f8 @ =gBG1HOFS_NonGameplay
ldr r1, lbl_0807e9f8 @ =gBg1HOFS_NonGameplay
movs r2, #0xd9
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e9fc @ =gBG1VOFS_NonGameplay
ldr r1, lbl_0807e9fc @ =gBg1VOFS_NonGameplay
movs r3, #0xd5
lsls r3, r3, #3
adds r0, r3, #0
@ -12974,8 +12974,8 @@ lbl_0807e988:
b lbl_0807ee8a
.align 2, 0
lbl_0807e9f4: .4byte sNonGameplayRamPointer
lbl_0807e9f8: .4byte gBG1HOFS_NonGameplay
lbl_0807e9fc: .4byte gBG1VOFS_NonGameplay
lbl_0807e9f8: .4byte gBg1HOFS_NonGameplay
lbl_0807e9fc: .4byte gBg1VOFS_NonGameplay
lbl_0807ea00: .4byte sEwramPointer
lbl_0807ea04: .4byte 0x0600e800
lbl_0807ea08: .4byte 0x0000fdff
@ -13025,12 +13025,12 @@ lbl_0807ea44:
lbl_0807ea5c: .4byte sNonGameplayRamPointer
lbl_0807ea60: .4byte 0x0000fdff
lbl_0807ea64:
ldr r1, lbl_0807ea84 @ =gBG0HOFS_NonGameplay
ldr r1, lbl_0807ea84 @ =gBg0HOFS_NonGameplay
movs r3, #0xd9
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807ea88 @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807ea88 @ =gBg0VOFS_NonGameplay
movs r2, #0xd5
lsls r2, r2, #3
adds r0, r2, #0
@ -13041,8 +13041,8 @@ lbl_0807ea64:
lsls r3, r3, #7
b lbl_0807ee50
.align 2, 0
lbl_0807ea84: .4byte gBG0HOFS_NonGameplay
lbl_0807ea88: .4byte gBG0VOFS_NonGameplay
lbl_0807ea84: .4byte gBg0HOFS_NonGameplay
lbl_0807ea88: .4byte gBg0VOFS_NonGameplay
lbl_0807ea8c: .4byte sEwramPointer
lbl_0807ea90:
movs r0, #1
@ -13083,12 +13083,12 @@ lbl_0807eabc:
bl UpdateMenuOamDataID
movs r0, #5
bl FileSelectPlayMenuSound
ldr r1, lbl_0807eb2c @ =gBG1HOFS_NonGameplay
ldr r1, lbl_0807eb2c @ =gBg1HOFS_NonGameplay
movs r2, #0xd9
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807eb30 @ =gBG1VOFS_NonGameplay
ldr r1, lbl_0807eb30 @ =gBg1VOFS_NonGameplay
movs r3, #0xd5
lsls r3, r3, #3
adds r0, r3, #0
@ -13119,8 +13119,8 @@ lbl_0807eabc:
b lbl_0807ee8a
.align 2, 0
lbl_0807eb28: .4byte sNonGameplayRamPointer
lbl_0807eb2c: .4byte gBG1HOFS_NonGameplay
lbl_0807eb30: .4byte gBG1VOFS_NonGameplay
lbl_0807eb2c: .4byte gBg1HOFS_NonGameplay
lbl_0807eb30: .4byte gBg1VOFS_NonGameplay
lbl_0807eb34: .4byte sEwramPointer
lbl_0807eb38: .4byte 0x0600e800
lbl_0807eb3c: .4byte 0x0000fdff
@ -13192,12 +13192,12 @@ lbl_0807ebaa:
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r0, lbl_0807ebdc @ =gBG1HOFS_NonGameplay
ldr r0, lbl_0807ebdc @ =gBg1HOFS_NonGameplay
movs r2, #0x80
lsls r2, r2, #4
adds r1, r2, #0
strh r1, [r0]
ldr r0, lbl_0807ebe0 @ =gBG1VOFS_NonGameplay
ldr r0, lbl_0807ebe0 @ =gBg1VOFS_NonGameplay
strh r1, [r0]
lbl_0807ebd0:
movs r6, #1
@ -13205,15 +13205,15 @@ lbl_0807ebd0:
.align 2, 0
lbl_0807ebd4: .4byte sNonGameplayRamPointer
lbl_0807ebd8: .4byte 0x0000fbff
lbl_0807ebdc: .4byte gBG1HOFS_NonGameplay
lbl_0807ebe0: .4byte gBG1VOFS_NonGameplay
lbl_0807ebdc: .4byte gBg1HOFS_NonGameplay
lbl_0807ebe0: .4byte gBg1VOFS_NonGameplay
lbl_0807ebe4:
ldr r1, lbl_0807ec04 @ =gBG0HOFS_NonGameplay
ldr r1, lbl_0807ec04 @ =gBg0HOFS_NonGameplay
movs r3, #0xd9
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807ec08 @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807ec08 @ =gBg0VOFS_NonGameplay
movs r2, #0xd5
lsls r2, r2, #3
adds r0, r2, #0
@ -13224,8 +13224,8 @@ lbl_0807ebe4:
lsls r3, r3, #7
b lbl_0807ee50
.align 2, 0
lbl_0807ec04: .4byte gBG0HOFS_NonGameplay
lbl_0807ec08: .4byte gBG0VOFS_NonGameplay
lbl_0807ec04: .4byte gBg0HOFS_NonGameplay
lbl_0807ec08: .4byte gBg0VOFS_NonGameplay
lbl_0807ec0c: .4byte sEwramPointer
lbl_0807ec10:
movs r0, #1
@ -13312,12 +13312,12 @@ lbl_0807eca4:
bl UpdateMenuOamDataID
movs r0, #5
bl FileSelectPlayMenuSound
ldr r1, lbl_0807ece8 @ =gBG0HOFS_NonGameplay
ldr r1, lbl_0807ece8 @ =gBg0HOFS_NonGameplay
movs r2, #0xe0
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807ecec @ =gBG0VOFS_NonGameplay
ldr r1, lbl_0807ecec @ =gBg0VOFS_NonGameplay
movs r3, #0xe4
lsls r3, r3, #3
adds r0, r3, #0
@ -13330,8 +13330,8 @@ lbl_0807eca4:
b lbl_0807ee52
.align 2, 0
lbl_0807ece4: .4byte sNonGameplayRamPointer
lbl_0807ece8: .4byte gBG0HOFS_NonGameplay
lbl_0807ecec: .4byte gBG0VOFS_NonGameplay
lbl_0807ece8: .4byte gBg0HOFS_NonGameplay
lbl_0807ecec: .4byte gBg0VOFS_NonGameplay
lbl_0807ecf0: .4byte sEwramPointer
lbl_0807ecf4:
ldr r4, lbl_0807ed30 @ =sNonGameplayRamPointer
@ -13465,12 +13465,12 @@ lbl_0807eddc:
strh r1, [r0]
movs r1, #0x26
bl UpdateMenuOamDataID
ldr r0, lbl_0807ee28 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807ee28 @ =gBg0HOFS_NonGameplay
movs r3, #0xec
lsls r3, r3, #3
adds r1, r3, #0
strh r1, [r0]
ldr r0, lbl_0807ee2c @ =gBG0VOFS_NonGameplay
ldr r0, lbl_0807ee2c @ =gBg0VOFS_NonGameplay
strh r1, [r0]
ldr r0, [r4]
adds r0, #0x47
@ -13486,8 +13486,8 @@ lbl_0807eddc:
.align 2, 0
lbl_0807ee20: .4byte 0x000001fd
lbl_0807ee24: .4byte sNonGameplayRamPointer
lbl_0807ee28: .4byte gBG0HOFS_NonGameplay
lbl_0807ee2c: .4byte gBG0VOFS_NonGameplay
lbl_0807ee28: .4byte gBg0HOFS_NonGameplay
lbl_0807ee2c: .4byte gBg0VOFS_NonGameplay
lbl_0807ee30: .4byte sEwramPointer
lbl_0807ee34:
cmp r0, #2

View File

@ -12,6 +12,6 @@ extern const u16 sHazardClipdataValues[4];
extern const u8 sGroundEffectsClipdataValues[8];
extern const struct ElevatorPair sElevatorRoomPairs[9];
extern const u8 sScroll_Empty[11];
extern const struct Unk_3005714 sUnk_8345988[3];
extern const struct CameraScrollVelocityCaps sScrollVelocityCaps[3];
#endif /* CLIPDATA_DATA_H */

View File

@ -28,7 +28,7 @@ union TileData {
///
extern struct BG2Movement gBG2Movement;
extern struct BG2Movement gBg2Movement;
extern u16 gInterruptCode[0x100];
extern void *sp_sys;

View File

@ -46,9 +46,9 @@ extern u8 gNumberOfItemsCollected[MAX_AMOUNT_OF_AREAS];
extern struct LastTank gLastTankCollected;
extern struct BackgroundPointersAndDimensions gBgPointersAndDimensions;
extern struct BG2Movement gBG2Movement;
extern struct BG3Movement gBG3Movement;
extern struct BG0Movement gBG0Movement;
extern struct BG2Movement gBg2Movement;
extern struct BG3Movement gBg3Movement;
extern struct BG0Movement gBg0Movement;
extern u16 gBg0XPosition;
extern u16 gBg0YPosition;

View File

@ -91,20 +91,20 @@ struct BackgroundPositions {
struct WaterMovement {
u8 moving;
u8 stage;
u8 loopCounter;
s8 loopCounter;
s8 yOffset;
};
struct BG0Movement {
u8 type;
u8 yOffset;
u8 counter;
u16 unused;
u16 xOffset;
u16 snowflakesRelated;
u16 yOffset;
};
struct BG3Movement {
u8 direction;
u8 active;
u8 counter;
u8 undefined; // Needed for correct alignement
u16 xOffset;
@ -134,8 +134,8 @@ extern u16 gDecompBg3Map[2048];
extern u8 gSpriteset;
extern u8 gSpritesetEntryUsed;
extern struct RawCoordsX gWaitingSpacePiratesPosition;
extern struct BG3Movement gBG3Movement;
extern struct BG0Movement gBG0Movement;
extern struct BG3Movement gBg3Movement;
extern struct BG0Movement gBg0Movement;
extern u16 gRainSoundEffect;
extern struct WaterMovement gWaterMovement;
extern u8 gScrollCounter;

View File

@ -14,6 +14,15 @@
#define LOCK_SCREEN_TYPE_POSITION 1
#define LOCK_SCREEN_TYPE_MIDDLE 2
#define SCROLL_VELOCITY_CAP_SET_DEFAULT 0
#define SCROLL_VELOCITY_CAP_SET_SLOW 1
#define SCROLL_VELOCITY_CAP_SET_FAST 2
#define BG3_SCROLLING_TYPE_NONE 0
#define BG3_SCROLLING_TYPE_NORMAL 1
#define BG3_SCROLLING_TYPE_HALVED 2
#define BG3_SCROLLING_TYPE_QUARTERED 3
#define SCROLL_X_ANCHOR (SCREEN_SIZE_X_SUB_PIXEL / 2)
#define SCROLL_Y_ANCHOR (FRACT_MUL(SCREEN_SIZE_Y_SUB_PIXEL, 3, 5))
@ -38,11 +47,11 @@ struct LockScreen {
u16 yPositionCenter;
};
struct Unk_3005714 {
s16 unk0;
s16 unk2;
s16 unk4;
s16 unk6;
struct CameraScrollVelocityCaps {
s16 leftCap;
s16 rightCap;
s16 upCap;
s16 downCap;
};
@ -56,7 +65,7 @@ extern s8 gScreenYOffset;
extern s16 gScreenXOffset;
extern u8 gFreeMovementLockCamera;
extern struct Unk_3005714 gUnk_3005714;
extern struct CameraScrollVelocityCaps gScrollingVelocityCaps;
extern const u8* gCurrentRoomScrollDataPointer;
#endif

View File

@ -44,14 +44,14 @@ extern u16 unk_02035400;
extern u8 gUnk_03004fc9;
extern union NonGameplayRAM gNonGameplayRAM;
extern u16 gBG0HOFS_NonGameplay;
extern u16 gBG0VOFS_NonGameplay;
extern u16 gBG1HOFS_NonGameplay;
extern u16 gBG1VOFS_NonGameplay;
extern u16 gBG2HOFS_NonGameplay;
extern u16 gBG2VOFS_NonGameplay;
extern u16 gBG3HOFS_NonGameplay;
extern u16 gBG3VOFS_NonGameplay;
extern u16 gBg0HOFS_NonGameplay;
extern u16 gBg0VOFS_NonGameplay;
extern u16 gBg1HOFS_NonGameplay;
extern u16 gBg1VOFS_NonGameplay;
extern u16 gBg2HOFS_NonGameplay;
extern u16 gBg2VOFS_NonGameplay;
extern u16 gBg3HOFS_NonGameplay;
extern u16 gBg3VOFS_NonGameplay;
extern u16 gCurrentOamRotation;
extern u16 gCurrentOamScaling;

View File

@ -112,7 +112,7 @@ SECTIONS {
. = 0x000000DC; gCurrentAffectingClipdata = .;
. = 0x000000E4; gBackgroundPositions = .;
. = 0x000000F8; gWaitingSpacePiratesPosition = .;
. = 0x000000FC; gBG2Movement = .;
. = 0x000000FC; gBg2Movement = .;
. = 0x00000100; gLockScreen = .;
. = 0x00000108; gSuitFlashEffect = .;
. = 0x00000110; gScreenShakeY = .;
@ -169,14 +169,14 @@ SECTIONS {
. = 0x00000bf1; gAreaBeforeTransition = .;
. = 0x00000bf2; gCurrentItemBeingAcquired = .;
. = 0x00000bf3; gOptionsOptionSelected = .;
. = 0x00000bf4; gBG0HOFS_NonGameplay = .;
. = 0x00000bf6; gBG0VOFS_NonGameplay = .;
. = 0x00000bf8; gBG1HOFS_NonGameplay = .;
. = 0x00000bfA; gBG1VOFS_NonGameplay = .;
. = 0x00000bfC; gBG2HOFS_NonGameplay = .;
. = 0x00000bfE; gBG2VOFS_NonGameplay = .;
. = 0x00000C00; gBG3HOFS_NonGameplay = .;
. = 0x00000C02; gBG3VOFS_NonGameplay = .;
. = 0x00000bf4; gBg0HOFS_NonGameplay = .;
. = 0x00000bf6; gBg0VOFS_NonGameplay = .;
. = 0x00000bf8; gBg1HOFS_NonGameplay = .;
. = 0x00000bfA; gBg1VOFS_NonGameplay = .;
. = 0x00000bfC; gBg2HOFS_NonGameplay = .;
. = 0x00000bfE; gBg2VOFS_NonGameplay = .;
. = 0x00000C00; gBg3HOFS_NonGameplay = .;
. = 0x00000C02; gBg3VOFS_NonGameplay = .;
. = 0x00000c04; gCurrentOamRotation = .;
. = 0x00000c06; gCurrentOamScaling = .;
. = 0x00000c08; gLastAreaNameVisited = .;
@ -288,8 +288,8 @@ SECTIONS {
. = 0x000054DC; gNumberOfValidHatchesInRoom = .;
. = 0x000054E0; gDoorPositionStart = .;
. = 0x000054E4; gHatchesState = .;
. = 0x000054EC; gBG3Movement = .;
. = 0x000054F4; gBG0Movement = .;
. = 0x000054EC; gBg3Movement = .;
. = 0x000054F4; gBg0Movement = .;
. = 0x000054Fc; gTilesetTransparentColor = .;
. = 0x00005504; gUnusedStruct_3005504 = .;
. = 0x0000550C; gSamusDoorPositionOffset = .;
@ -319,7 +319,7 @@ SECTIONS {
. = 0x00005700; gScrollCounter = .;
. = 0x00005704; gClipdataCodePointer = .;
. = 0x00005708; gCurrentRoomScrollDataPointer = .;
. = 0x00005714; gUnk_3005714 = .;
. = 0x00005714; gScrollingVelocityCaps = .;
. = 0x0000571c; gHazeLoops = .;
. = 0x00005728; gUnk_3005728 = .;
. = 0x00005729; gUnk_3005729 = .;
@ -522,9 +522,8 @@ SECTIONS {
src/process_pause_press.o(.text);
src/room_cutscene.o(.text);
src/clipdata.o(.text);
asm/disasm_0x080582c4.o(.text);
src/scroll.o(.text);
src/block.o(.text);
src/bg_clip.o(.text);
asm/disasm_0x0805b24c.o(.text);

View File

@ -21,6 +21,7 @@
* @param pClipBlock Clipdata Block Data Pointer
* @return u32 1 if detroyed, 0 otherwise
*/
#ifdef NON_MATCHING
u32 BlockCheckCCAA(struct ClipdataBlockData* pClipBlock)
{
// https://decomp.me/scratch/o1iEv
@ -181,6 +182,264 @@ u32 BlockCheckCCAA(struct ClipdataBlockData* pClipBlock)
return result;
}
#else
NAKED_FUNCTION
u32 BlockCheckCCAA(struct ClipdataBlockData* pClipBlock)
{
asm(" \n\
push {r4, r5, r6, r7, lr} \n\
add r5, r0, #0 \n\
movs r7, #0 \n\
ldrh r1, [r5, #4] \n\
add r0, r1, #0 \n\
sub r0, #0x10 \n\
lsl r0, r0, #0x10 \n\
lsr r0, r0, #0x10 \n\
cmp r0, #0x2f \n\
bls lbl_080590c6 \n\
b lbl_080591ec \n\
lbl_080590c6: \n\
add r0, r1, #0 \n\
sub r0, #0x10 \n\
strb r0, [r5, #6] \n\
ldr r3, lbl_080590ec @ =gCurrentClipdataAffectingAction \n\
ldrb r0, [r3] \n\
cmp r0, #0xd \n\
bne lbl_080590f4 \n\
ldr r1, lbl_080590f0 @ =sBlockBehaviors \n\
ldrb r2, [r5, #6] \n\
lsl r0, r2, #2 \n\
add r0, r0, r1 \n\
ldrb r0, [r0, #3] \n\
lsl r0, r0, #0x1c \n\
cmp r0, #0 \n\
bne lbl_080590e6 \n\
b lbl_080591ec \n\
lbl_080590e6: \n\
movs r0, #0xc \n\
strb r0, [r3] \n\
b lbl_08059108 \n\
.align 2, 0 \n\
lbl_080590ec: .4byte gCurrentClipdataAffectingAction \n\
lbl_080590f0: .4byte sBlockBehaviors \n\
lbl_080590f4: \n\
ldrb r2, [r5, #6] \n\
cmp r0, #0xf \n\
bne lbl_08059108 \n\
ldr r0, lbl_0805911c @ =sBlockBehaviors \n\
lsl r1, r2, #2 \n\
add r1, r1, r0 \n\
ldrb r0, [r1, #3] \n\
lsr r0, r0, #4 \n\
cmp r0, #0 \n\
beq lbl_080591ec \n\
lbl_08059108: \n\
movs r4, #1 \n\
movs r6, #0 \n\
sub r0, r2, #2 \n\
cmp r0, #0x1c \n\
bhi lbl_080591e8 \n\
lsl r0, r0, #2 \n\
ldr r1, lbl_08059120 @ =lbl_08059124 \n\
add r0, r0, r1 \n\
ldr r0, [r0] \n\
mov pc, r0 \n\
.align 2, 0 \n\
lbl_0805911c: .4byte sBlockBehaviors \n\
lbl_08059120: .4byte lbl_08059124 \n\
lbl_08059124: @ jump table \n\
.4byte lbl_08059198 @ case 0 \n\
.4byte lbl_080591a6 @ case 1 \n\
.4byte lbl_080591a0 @ case 2 \n\
.4byte lbl_080591e8 @ case 3 \n\
.4byte lbl_080591e8 @ case 4 \n\
.4byte lbl_08059198 @ case 5 \n\
.4byte lbl_080591a6 @ case 6 \n\
.4byte lbl_080591a0 @ case 7 \n\
.4byte lbl_080591e8 @ case 8 \n\
.4byte lbl_080591ae @ case 9 \n\
.4byte lbl_080591ae @ case 10 \n\
.4byte lbl_080591b8 @ case 11 \n\
.4byte lbl_080591b8 @ case 12 \n\
.4byte lbl_080591b8 @ case 13 \n\
.4byte lbl_080591b8 @ case 14 \n\
.4byte lbl_080591b8 @ case 15 \n\
.4byte lbl_080591b8 @ case 16 \n\
.4byte lbl_080591c2 @ case 17 \n\
.4byte lbl_080591b8 @ case 18 \n\
.4byte lbl_080591b8 @ case 19 \n\
.4byte lbl_080591ca @ case 20 \n\
.4byte lbl_080591ce @ case 21 \n\
.4byte lbl_080591d2 @ case 22 \n\
.4byte lbl_080591d6 @ case 23 \n\
.4byte lbl_080591da @ case 24 \n\
.4byte lbl_080591de @ case 25 \n\
.4byte lbl_080591e2 @ case 26 \n\
.4byte lbl_080591e6 @ case 27 \n\
.4byte lbl_080591c2 @ case 28 \n\
lbl_08059198: \n\
ldrh r0, [r5] \n\
sub r0, #1 \n\
strh r0, [r5] \n\
b lbl_080591e8 \n\
lbl_080591a0: \n\
ldrh r0, [r5] \n\
sub r0, #1 \n\
strh r0, [r5] \n\
lbl_080591a6: \n\
ldrh r0, [r5, #2] \n\
sub r0, #1 \n\
strh r0, [r5, #2] \n\
b lbl_080591e8 \n\
lbl_080591ae: \n\
add r0, r5, #0 \n\
bl BlockCheckRevealOrDestroyBombBlock \n\
add r4, r0, #0 \n\
b lbl_080591e8 \n\
lbl_080591b8: \n\
add r0, r5, #0 \n\
bl BlockCheckRevealOrDestroyNonBombBlock \n\
add r4, r0, #0 \n\
b lbl_080591e8 \n\
lbl_080591c2: \n\
add r0, r5, #0 \n\
bl BlockCheckRevealOrDestroyNonBombBlock \n\
b lbl_080591ec \n\
lbl_080591ca: \n\
movs r6, #0 \n\
b lbl_080591e8 \n\
lbl_080591ce: \n\
movs r6, #1 \n\
b lbl_080591e8 \n\
lbl_080591d2: \n\
movs r6, #2 \n\
b lbl_080591e8 \n\
lbl_080591d6: \n\
movs r6, #3 \n\
b lbl_080591e8 \n\
lbl_080591da: \n\
movs r6, #4 \n\
b lbl_080591e8 \n\
lbl_080591de: \n\
movs r6, #5 \n\
b lbl_080591e8 \n\
lbl_080591e2: \n\
movs r6, #6 \n\
b lbl_080591e8 \n\
lbl_080591e6: \n\
movs r6, #7 \n\
lbl_080591e8: \n\
cmp r4, #0 \n\
bne lbl_080591f0 \n\
lbl_080591ec: \n\
movs r0, #0 \n\
b lbl_080592b0 \n\
lbl_080591f0: \n\
ldr r1, lbl_08059208 @ =sBlockBehaviors \n\
ldrb r0, [r5, #6] \n\
lsl r0, r0, #2 \n\
add r0, r0, r1 \n\
ldrb r1, [r0] \n\
cmp r1, #2 \n\
beq lbl_08059222 \n\
cmp r1, #2 \n\
bgt lbl_0805920c \n\
cmp r1, #1 \n\
beq lbl_08059216 \n\
b lbl_080592ae \n\
.align 2, 0 \n\
lbl_08059208: .4byte sBlockBehaviors \n\
lbl_0805920c: \n\
cmp r1, #3 \n\
beq lbl_08059234 \n\
cmp r1, #4 \n\
beq lbl_08059274 \n\
b lbl_080592ae \n\
lbl_08059216: \n\
add r0, r5, #0 \n\
bl BlockDestroyNonReformBlock \n\
cmp r0, #0 \n\
beq lbl_080592ae \n\
b lbl_080592ac \n\
lbl_08059222: \n\
ldrb r0, [r0, #2] \n\
ldrh r1, [r5] \n\
ldrh r2, [r5, #2] \n\
movs r3, #0 \n\
bl BlockStoreBrokenReformBlock \n\
cmp r0, #0 \n\
beq lbl_080592ae \n\
b lbl_080592ac \n\
lbl_08059234: \n\
add r0, r5, #0 \n\
bl BlockCheckRevealOrDestroyBombBlock \n\
cmp r0, #0 \n\
beq lbl_080592ae \n\
ldr r2, lbl_0805926c @ =gActiveBombChainTypes \n\
ldr r1, lbl_08059270 @ =sBombChainReverseData \n\
lsl r0, r6, #2 \n\
add r0, r0, r1 \n\
ldrb r1, [r2] \n\
ldrb r0, [r0] \n\
and r0, r1 \n\
cmp r0, #0 \n\
bne lbl_080592ae \n\
add r0, r6, #0 \n\
ldrh r1, [r5] \n\
ldrh r2, [r5, #2] \n\
bl BlockStartBombChain \n\
cmp r0, #0 \n\
beq lbl_080592ae \n\
add r0, r5, #0 \n\
bl BlockDestroyNonReformBlock \n\
cmp r0, #0 \n\
beq lbl_080592ae \n\
b lbl_080592ac \n\
.align 2, 0 \n\
lbl_0805926c: .4byte gActiveBombChainTypes \n\
lbl_08059270: .4byte sBombChainReverseData \n\
lbl_08059274: \n\
ldr r1, lbl_080592b8 @ =sClipdataAffectingActionDamageTypes \n\
ldr r0, lbl_080592bc @ =gCurrentClipdataAffectingAction \n\
ldrb r0, [r0] \n\
lsl r0, r0, #1 \n\
add r0, r0, r1 \n\
ldrh r1, [r0] \n\
movs r0, #0x1f \n\
and r0, r1 \n\
cmp r0, #0 \n\
beq lbl_080592ae \n\
ldr r1, lbl_080592c0 @ =sTankBehaviors \n\
ldrh r0, [r5, #4] \n\
sub r0, #0x34 \n\
lsl r0, r0, #3 \n\
add r0, r0, r1 \n\
ldrh r4, [r0, #4] \n\
cmp r4, #0 \n\
beq lbl_080592ae \n\
ldrh r1, [r5, #2] \n\
ldrh r2, [r5] \n\
add r0, r4, #0 \n\
bl BgClipSetBg1BlockValue \n\
ldrh r1, [r5, #2] \n\
ldrh r2, [r5] \n\
add r0, r4, #0 \n\
bl BgClipSetClipdataBlockValue \n\
lbl_080592ac: \n\
movs r7, #1 \n\
lbl_080592ae: \n\
add r0, r7, #0 \n\
lbl_080592b0: \n\
pop {r4, r5, r6, r7} \n\
pop {r1} \n\
bx r1 \n\
.align 2, 0 \n\
lbl_080592b8: .4byte sClipdataAffectingActionDamageTypes \n\
lbl_080592bc: .4byte gCurrentClipdataAffectingAction \n\
lbl_080592c0: .4byte sTankBehaviors \n\
");
}
#endif
/**
* @brief 592c4 | 6c | Handles the destruction of non reform blocks

View File

@ -306,10 +306,10 @@ void CutsceneInit(void)
ClearGfxRam();
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = 0x800;
gBG1HOFS_NonGameplay = gBG1VOFS_NonGameplay = 0x800;
gBG2HOFS_NonGameplay = gBG2VOFS_NonGameplay = 0x800;
gBG3HOFS_NonGameplay = gBG3VOFS_NonGameplay= 0x800;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = 0x800;
gBg1HOFS_NonGameplay = gBg1VOFS_NonGameplay = 0x800;
gBg2HOFS_NonGameplay = gBg2VOFS_NonGameplay = 0x800;
gBg3HOFS_NonGameplay = gBg3VOFS_NonGameplay= 0x800;
CUTSCENE_DATA.timeInfo.stage = 0;
CUTSCENE_DATA.timeInfo.timer = 0;
@ -375,25 +375,25 @@ void CutsceneSetBackgroundPosition(u8 type, u16 bg, u16 value)
if (type & CUTSCENE_BG_EDIT_HOFS)
{
if (bg == DCNT_BG0)
gBG0HOFS_NonGameplay = value;
gBg0HOFS_NonGameplay = value;
else if (bg == DCNT_BG1)
gBG1HOFS_NonGameplay = value;
gBg1HOFS_NonGameplay = value;
else if (bg == DCNT_BG2)
gBG2HOFS_NonGameplay = value;
gBg2HOFS_NonGameplay = value;
else if (bg == DCNT_BG3)
gBG3HOFS_NonGameplay = value;
gBg3HOFS_NonGameplay = value;
}
if (type & CUTSCENE_BG_EDIT_VOFS)
{
if (bg == DCNT_BG0)
gBG0VOFS_NonGameplay = value;
gBg0VOFS_NonGameplay = value;
else if (bg == DCNT_BG1)
gBG1VOFS_NonGameplay = value;
gBg1VOFS_NonGameplay = value;
else if (bg == DCNT_BG2)
gBG2VOFS_NonGameplay = value;
gBg2VOFS_NonGameplay = value;
else if (bg == DCNT_BG3)
gBG3VOFS_NonGameplay = value;
gBg3VOFS_NonGameplay = value;
}
}
@ -409,13 +409,13 @@ u16* CutsceneGetBgHorizontalPointer(u16 bg)
pBg = NULL;
if (bg == DCNT_BG0)
pBg = &gBG0HOFS_NonGameplay;
pBg = &gBg0HOFS_NonGameplay;
else if (bg == DCNT_BG1)
pBg = &gBG1HOFS_NonGameplay;
pBg = &gBg1HOFS_NonGameplay;
else if (bg == DCNT_BG2)
pBg = &gBG2HOFS_NonGameplay;
pBg = &gBg2HOFS_NonGameplay;
else if (bg == DCNT_BG3)
pBg = &gBG3HOFS_NonGameplay;
pBg = &gBg3HOFS_NonGameplay;
return pBg;
}
@ -432,13 +432,13 @@ u16* CutsceneGetBgVerticalPointer(u16 bg)
pBg = NULL;
if (bg == DCNT_BG0)
pBg = &gBG0VOFS_NonGameplay;
pBg = &gBg0VOFS_NonGameplay;
else if (bg == DCNT_BG1)
pBg = &gBG1VOFS_NonGameplay;
pBg = &gBg1VOFS_NonGameplay;
else if (bg == DCNT_BG2)
pBg = &gBG2VOFS_NonGameplay;
pBg = &gBg2VOFS_NonGameplay;
else if (bg == DCNT_BG3)
pBg = &gBG3VOFS_NonGameplay;
pBg = &gBg3VOFS_NonGameplay;
return pBg;
}
@ -525,35 +525,35 @@ u32 CutsceneStartBackgroundScrolling(struct CutsceneScrollingInfo scrollingData,
switch (slot)
{
case 0:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG0HOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg0HOFS_NonGameplay;
break;
case 1:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG0VOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg0VOFS_NonGameplay;
break;
case 2:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG1HOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg1HOFS_NonGameplay;
break;
case 3:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG1VOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg1VOFS_NonGameplay;
break;
case 4:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG2HOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg2HOFS_NonGameplay;
break;
case 5:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG2VOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg2VOFS_NonGameplay;
break;
case 6:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG3HOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg3HOFS_NonGameplay;
break;
case 7:
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBG3VOFS_NonGameplay;
CUTSCENE_DATA.bgScrolling[slot].pPosition = &gBg3VOFS_NonGameplay;
break;
}
@ -689,14 +689,14 @@ void CutsceneUpdateBackgroundsPosition(u8 updateScrolling)
}
}
CUTSCENE_DATA.bg0hofs = gBG0HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg0vofs = gBG0VOFS_NonGameplay / 4;
CUTSCENE_DATA.bg1hofs = gBG1HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg1vofs = gBG1VOFS_NonGameplay / 4;
CUTSCENE_DATA.bg2hofs = gBG2HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg2vofs = gBG2VOFS_NonGameplay / 4;
CUTSCENE_DATA.bg3hofs = gBG3HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg3vofs = gBG3VOFS_NonGameplay / 4;
CUTSCENE_DATA.bg0hofs = gBg0HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg0vofs = gBg0VOFS_NonGameplay / 4;
CUTSCENE_DATA.bg1hofs = gBg1HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg1vofs = gBg1VOFS_NonGameplay / 4;
CUTSCENE_DATA.bg2hofs = gBg2HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg2vofs = gBg2VOFS_NonGameplay / 4;
CUTSCENE_DATA.bg3hofs = gBg3HOFS_NonGameplay / 4;
CUTSCENE_DATA.bg3vofs = gBg3VOFS_NonGameplay / 4;
if (CUTSCENE_DATA.horizontalScreenShake.bg != 0)
CutsceneUpdateScreenShake(FALSE, &CUTSCENE_DATA.horizontalScreenShake);

View File

@ -471,7 +471,7 @@ void MotherBrainCloseUpUpdateBubble(struct CutsceneOamData* pOam)
// Convert position to to have 0 Y be the top of background 3
yPosition = pOam->yPosition + NON_GAMEPLAY_START_BG_POS;
convertedY = yPosition - gBG3VOFS_NonGameplay;
convertedY = yPosition - gBg3VOFS_NonGameplay;
// Check above screen
if (convertedY < -(BLOCK_SIZE * 2 + QUARTER_BLOCK_SIZE))

View File

@ -247,9 +247,9 @@ u8 RidleyLandingShipLanding(void)
if (movement == 0)
break;
gBG3VOFS_NonGameplay += movement / 2;
gBG1VOFS_NonGameplay += movement;
gBG0VOFS_NonGameplay += movement;
gBg3VOFS_NonGameplay += movement / 2;
gBg1VOFS_NonGameplay += movement;
gBg0VOFS_NonGameplay += movement;
CUTSCENE_DATA.oam[6].yPosition -= movement;
break;
@ -269,21 +269,21 @@ u8 RidleyLandingShipLanding(void)
CUTSCENE_DATA.oam[8].xPosition = CUTSCENE_DATA.oam[6].xPosition;
CUTSCENE_DATA.oam[8].yPosition = CUTSCENE_DATA.oam[6].yPosition;
movement = gBG3VOFS_NonGameplay - CUTSCENE_DATA.oam[6].yPosition;
movement = gBg3VOFS_NonGameplay - CUTSCENE_DATA.oam[6].yPosition;
if (BLOCK_SIZE * 15u + HALF_BLOCK_SIZE < movement - BLOCK_SIZE * 37 + HALF_BLOCK_SIZE)
movement = TRUE;
else
movement = FALSE;
CUTSCENE_DATA.oam[6].notDrawn = movement;
movement = gBG3VOFS_NonGameplay - CUTSCENE_DATA.oam[7].yPosition;
movement = gBg3VOFS_NonGameplay - CUTSCENE_DATA.oam[7].yPosition;
if (BLOCK_SIZE * 17u < movement - BLOCK_SIZE * 32)
movement = TRUE;
else
movement = FALSE;
CUTSCENE_DATA.oam[7].notDrawn = movement;
movement = gBG3VOFS_NonGameplay - CUTSCENE_DATA.oam[8].yPosition;
movement = gBg3VOFS_NonGameplay - CUTSCENE_DATA.oam[8].yPosition;
if (BLOCK_SIZE * 13u + HALF_BLOCK_SIZE < movement - BLOCK_SIZE * 31 + QUARTER_BLOCK_SIZE)
movement = TRUE;
else

View File

@ -154,24 +154,24 @@ const u8 sScroll_Empty[11] = {
UCHAR_MAX
};
const struct Unk_3005714 sUnk_8345988[3] = {
[0] = {
.unk0 = -8,
.unk2 = 8,
.unk4 = -8,
.unk6 = 8
const struct CameraScrollVelocityCaps sScrollVelocityCaps[3] = {
[SCROLL_VELOCITY_CAP_SET_DEFAULT] = {
.leftCap = -EIGHTH_BLOCK_SIZE,
.rightCap = EIGHTH_BLOCK_SIZE,
.upCap = -EIGHTH_BLOCK_SIZE,
.downCap = EIGHTH_BLOCK_SIZE
},
[1] = {
.unk0 = -4,
.unk2 = 4,
.unk4 = -4,
.unk6 = 4
[SCROLL_VELOCITY_CAP_SET_SLOW] = {
.leftCap = -PIXEL_SIZE,
.rightCap = PIXEL_SIZE,
.upCap = -PIXEL_SIZE,
.downCap = PIXEL_SIZE
},
[2] = {
.unk0 = -48,
.unk2 = 48,
.unk4 = -48,
.unk6 = 48
[SCROLL_VELOCITY_CAP_SET_FAST] = {
.leftCap = -(BLOCK_SIZE - QUARTER_BLOCK_SIZE),
.rightCap = (BLOCK_SIZE - QUARTER_BLOCK_SIZE),
.upCap = -(BLOCK_SIZE - QUARTER_BLOCK_SIZE),
.downCap = (BLOCK_SIZE - QUARTER_BLOCK_SIZE)
}
};

View File

@ -87,14 +87,14 @@ const struct ScreenShake sScreenShake_Empty = {
const struct BG0Movement sBg0Movement_Empty = {
.type = 0,
.yOffset = 0,
.counter = 0,
.unused = 0,
.xOffset = 0,
.snowflakesRelated = 0
.yOffset = 0
};
const struct BG3Movement sBg3Movement_Empty = {
.direction = 0,
.active = FALSE,
.counter = 0,
.xOffset = 0,
.undefined = 0

View File

@ -350,10 +350,10 @@ void EraseSramInit(void)
gGameModeSub3 = 0;
gBG1HOFS_NonGameplay = 0;
gBG1VOFS_NonGameplay = 0;
gBG3HOFS_NonGameplay = 0;
gBG3VOFS_NonGameplay = 0;
gBg1HOFS_NonGameplay = 0;
gBg1VOFS_NonGameplay = 0;
gBg3HOFS_NonGameplay = 0;
gBg3VOFS_NonGameplay = 0;
EraseSramResetOam();
EraseSramUpdateCursorPosition();
@ -422,11 +422,11 @@ void EraseSramVBlank(void)
write16(REG_BLDY, gWrittenToBLDY_NonGameplay);
write16(REG_BG1HOFS, SUB_PIXEL_TO_PIXEL(gBG1HOFS_NonGameplay));
write16(REG_BG1VOFS, SUB_PIXEL_TO_PIXEL(gBG1VOFS_NonGameplay));
write16(REG_BG1HOFS, SUB_PIXEL_TO_PIXEL(gBg1HOFS_NonGameplay));
write16(REG_BG1VOFS, SUB_PIXEL_TO_PIXEL(gBg1VOFS_NonGameplay));
write16(REG_BG3HOFS, SUB_PIXEL_TO_PIXEL(gBG3HOFS_NonGameplay));
write16(REG_BG3VOFS, SUB_PIXEL_TO_PIXEL(gBG3VOFS_NonGameplay));
write16(REG_BG3HOFS, SUB_PIXEL_TO_PIXEL(gBg3HOFS_NonGameplay));
write16(REG_BG3VOFS, SUB_PIXEL_TO_PIXEL(gBg3VOFS_NonGameplay));
write16(REG_BLDCNT, ERASE_SRAM_DATA.bldcnt);
write16(REG_DISPCNT, ERASE_SRAM_DATA.dispcnt);

View File

@ -1716,8 +1716,8 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
FILE_SELECT_DATA.bg0cnt = FILE_SELECT_DATA.unk_1E;
FILE_SELECT_DATA.dispcnt |= DCNT_BG0;
gBG0HOFS_NonGameplay = BLOCK_SIZE * 32;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 24;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 32;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 24;
FILE_SELECT_DATA.subroutineTimer = 0;
FILE_SELECT_DATA.subroutineStage++;
@ -1762,14 +1762,14 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
case 3:
// Scroll BG0 up until it's all the way to the top
if (gBG0VOFS_NonGameplay < BLOCK_SIZE * 32)
if (gBg0VOFS_NonGameplay < BLOCK_SIZE * 32)
{
gBG0VOFS_NonGameplay += BLOCK_SIZE;
if (gBG0VOFS_NonGameplay < BLOCK_SIZE * 32)
gBg0VOFS_NonGameplay += BLOCK_SIZE;
if (gBg0VOFS_NonGameplay < BLOCK_SIZE * 32)
break;
}
gBG0VOFS_NonGameplay = BLOCK_SIZE * 32;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 32;
// Initializes options
OptionsSetupTiletable();
@ -1826,7 +1826,7 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
BitFill(3, 0, VRAM_BASE + 0xE000, 0x800, 16);
DmaTransfer(3, (void*)sEwramPointer + 0x5100, VRAM_BASE + 0xE000, 0xC0, 16);
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = BLOCK_SIZE * 32;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = BLOCK_SIZE * 32;
FILE_SELECT_DATA.bldcnt = BLDCNT_BG2_FIRST_TARGET_PIXEL | BLDCNT_OBJ_FIRST_TARGET_PIXEL | BLDCNT_ALPHA_BLENDING_EFFECT |
BLDCNT_BG0_SECOND_TARGET_PIXEL | BLDCNT_BG1_SECOND_TARGET_PIXEL | BLDCNT_BG2_SECOND_TARGET_PIXEL |
@ -1835,8 +1835,8 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
gWrittenToBLDALPHA_H = 0;
gWrittenToBLDALPHA_L = 16;
gBG1HOFS_NonGameplay = BLOCK_SIZE * 32;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 32;
gBg1HOFS_NonGameplay = BLOCK_SIZE * 32;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 32;
FILE_SELECT_DATA.bg0cnt = FILE_SELECT_DATA.unk_1E;
FILE_SELECT_DATA.dispcnt |= DCNT_BG0;
@ -1873,14 +1873,14 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
case 9:
// Scroll BG0 down until the "options" text is at the bottom
if (gBG0VOFS_NonGameplay > BLOCK_SIZE * 24)
if (gBg0VOFS_NonGameplay > BLOCK_SIZE * 24)
{
gBG0VOFS_NonGameplay -= BLOCK_SIZE;
if (gBG0VOFS_NonGameplay > BLOCK_SIZE * 24)
gBg0VOFS_NonGameplay -= BLOCK_SIZE;
if (gBg0VOFS_NonGameplay > BLOCK_SIZE * 24)
break;
}
gBG0VOFS_NonGameplay = BLOCK_SIZE * 24;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 24;
FILE_SELECT_DATA.subroutineStage++;
break;
@ -1948,8 +1948,8 @@ u8 FileSelectOptionTransition(u8 leavingOptions)
case 12:
FILE_SELECT_DATA.dispcnt &= ~DCNT_BG0;
gBG0HOFS_NonGameplay = BLOCK_SIZE * 32;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 32;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 32;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 32;
gGameModeSub2 = 0;
return TRUE;
@ -2542,10 +2542,10 @@ u8 OptionsTimeAttackRecordsSubroutine(void)
FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_LARGE_PANEL].xPosition = BLOCK_SIZE * 4;
FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_LARGE_PANEL].yPosition = BLOCK_SIZE * 2;
gBG1HOFS_NonGameplay = BLOCK_SIZE * 27 + QUARTER_BLOCK_SIZE + 8;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 28;
gBG0HOFS_NonGameplay = BLOCK_SIZE * 25 + HALF_BLOCK_SIZE;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 32;
gBg1HOFS_NonGameplay = BLOCK_SIZE * 27 + QUARTER_BLOCK_SIZE + 8;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 28;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 25 + HALF_BLOCK_SIZE;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 32;
DmaTransfer(3, (void*)sEwramPointer + 0x4800, VRAM_BASE + 0xE000, 0x300, 16);
@ -2957,10 +2957,10 @@ u8 OptionsMetroidFusionLinkSubroutine(void)
UpdateMenuOamDataID(&FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_HUGE_PANEL], OPTIONS_OAM_ID_HUGE_PANEL);
UpdateMenuOamDataID(&FILE_SELECT_DATA.optionsOam[OPTIONS_OAM_LARGE_PANEL], OPTIONS_OAM_ID_LARGE_PANEL);
gBG1HOFS_NonGameplay = 0x6D8;
gBG1VOFS_NonGameplay = 0x6F8;
gBG0HOFS_NonGameplay = 0x660,
gBG0VOFS_NonGameplay = 0x7E0;
gBg1HOFS_NonGameplay = 0x6D8;
gBg1VOFS_NonGameplay = 0x6F8;
gBg0HOFS_NonGameplay = 0x660,
gBg0VOFS_NonGameplay = 0x7E0;
FILE_SELECT_DATA.subroutineStage = 2;
}
@ -3594,10 +3594,10 @@ void FileSelectInit(void)
}
}
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = 0x800;
gBG1HOFS_NonGameplay = gBG1VOFS_NonGameplay = 0x800;
gBG2HOFS_NonGameplay = gBG2VOFS_NonGameplay = 0x800;
gBG3HOFS_NonGameplay = gBG3VOFS_NonGameplay = 0x800;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = 0x800;
gBg1HOFS_NonGameplay = gBg1VOFS_NonGameplay = 0x800;
gBg2HOFS_NonGameplay = gBg2VOFS_NonGameplay = 0x800;
gBg3HOFS_NonGameplay = gBg3VOFS_NonGameplay = 0x800;
FILE_SELECT_DATA.dispcnt = DCNT_BG1 | DCNT_BG3 | DCNT_OBJ;
FILE_SELECT_DATA.unk_14 = 0x1F0B;
@ -3665,14 +3665,14 @@ void FileSelectVBlank(void)
DMA_SET(3, gOamData, OAM_BASE, (DMA_ENABLE | DMA_32BIT) << 16 | OAM_SIZE / sizeof(u32))
write16(REG_BG0HOFS, gBG0HOFS_NonGameplay / 4);
write16(REG_BG0VOFS, gBG0VOFS_NonGameplay / 4);
write16(REG_BG1HOFS, gBG1HOFS_NonGameplay / 4);
write16(REG_BG1VOFS, gBG1VOFS_NonGameplay / 4);
write16(REG_BG2HOFS, gBG2HOFS_NonGameplay / 4);
write16(REG_BG2VOFS, gBG2VOFS_NonGameplay / 4);
write16(REG_BG3HOFS, gBG3HOFS_NonGameplay / 4);
write16(REG_BG3VOFS, gBG3VOFS_NonGameplay / 4);
write16(REG_BG0HOFS, gBg0HOFS_NonGameplay / 4);
write16(REG_BG0VOFS, gBg0VOFS_NonGameplay / 4);
write16(REG_BG1HOFS, gBg1HOFS_NonGameplay / 4);
write16(REG_BG1VOFS, gBg1VOFS_NonGameplay / 4);
write16(REG_BG2HOFS, gBg2HOFS_NonGameplay / 4);
write16(REG_BG2VOFS, gBg2VOFS_NonGameplay / 4);
write16(REG_BG3HOFS, gBg3HOFS_NonGameplay / 4);
write16(REG_BG3VOFS, gBg3VOFS_NonGameplay / 4);
write16(REG_DISPCNT, FILE_SELECT_DATA.dispcnt);
write16(REG_BLDY, gWrittenToBLDY_NonGameplay);
@ -4422,12 +4422,12 @@ u8 FileSelectProcessFileSelection(void)
case 2:
action = FILE_SELECT_DATA.fileSelectCursorPosition * 0x60 + 0x800;
if (action != gBG2VOFS_NonGameplay)
if (action != gBg2VOFS_NonGameplay)
{
if (gBG2VOFS_NonGameplay + 12 > action)
gBG2VOFS_NonGameplay = action;
if (gBg2VOFS_NonGameplay + 12 > action)
gBg2VOFS_NonGameplay = action;
else
gBG2VOFS_NonGameplay += 12;
gBg2VOFS_NonGameplay += 12;
break;
}
@ -4973,8 +4973,8 @@ u8 FileSelectProcessFileSelection(void)
{
FILE_SELECT_DATA.dispcnt |= DCNT_WIN0;
FILE_SELECT_DATA.bg1cnt = FILE_SELECT_DATA.unk_18;
gBG1HOFS_NonGameplay = BLOCK_SIZE * 32;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 32;
gBg1HOFS_NonGameplay = BLOCK_SIZE * 32;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 32;
FILE_SELECT_DATA.subroutineStage++;
}
break;
@ -4985,12 +4985,12 @@ u8 FileSelectProcessFileSelection(void)
case 42:
action = BLOCK_SIZE * 32;
if (action != gBG2VOFS_NonGameplay)
if (action != gBg2VOFS_NonGameplay)
{
if (gBG2VOFS_NonGameplay - 12 < action)
gBG2VOFS_NonGameplay = action;
if (gBg2VOFS_NonGameplay - 12 < action)
gBg2VOFS_NonGameplay = action;
else
gBG2VOFS_NonGameplay -= 12;
gBg2VOFS_NonGameplay -= 12;
break;
}
@ -5257,8 +5257,8 @@ u32 FileSelectUpdateTilemap(u8 request)
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SMALL_PANEL].yPosition = BLOCK_SIZE * 2;
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SMALL_PANEL], FILE_SELECT_OAM_ID_SMALL_PANEL);
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_OPEN_SUB_MENU);
gBG1HOFS_NonGameplay = BLOCK_SIZE * 31;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 29 + HALF_BLOCK_SIZE + 8;
gBg1HOFS_NonGameplay = BLOCK_SIZE * 31;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 29 + HALF_BLOCK_SIZE + 8;
DmaTransfer(3, (void*)sEwramPointer + 0x3000, VRAM_BASE + 0xE800, 0x300, 16);
break;
@ -5278,8 +5278,8 @@ u32 FileSelectUpdateTilemap(u8 request)
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL].yPosition = BLOCK_SIZE * 2 + HALF_BLOCK_SIZE;
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL], FILE_SELECT_OAM_ID_MEDIUM_PANEL);
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_OPEN_SUB_MENU);
gBG0HOFS_NonGameplay = BLOCK_SIZE * 28;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 28 + HALF_BLOCK_SIZE;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 28;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 28 + HALF_BLOCK_SIZE;
DmaTransfer(3, (void*)sEwramPointer + 0x3900, VRAM_BASE + 0xE000, 0x300, 16);
break;
@ -5305,8 +5305,8 @@ u32 FileSelectUpdateTilemap(u8 request)
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL].yPosition = BLOCK_SIZE * 3;
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL], FILE_SELECT_OAM_ID_LARGE_PANEL);
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_OPEN_SUB_MENU);
gBG0HOFS_NonGameplay = BLOCK_SIZE * 28;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 28 + HALF_BLOCK_SIZE;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 28;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 28 + HALF_BLOCK_SIZE;
break;
case TILEMAP_REQUEST_DIFFICULTY_SPAWN:
@ -5333,8 +5333,8 @@ u32 FileSelectUpdateTilemap(u8 request)
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SMALL_PANEL], FILE_SELECT_OAM_ID_MEDIUM_PANEL);
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_OPEN_SUB_MENU);
gBG1HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
gBg1HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
DmaTransfer(3, (void*)sEwramPointer + 0x3F00, VRAM_BASE + 0xE800, 0x300, 16);
@ -5361,8 +5361,8 @@ u32 FileSelectUpdateTilemap(u8 request)
break;
case TILEMAP_REQUEST_ERASE_YES_NO_SPAWN_INIT:
gBG0HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
DmaTransfer(3, (void*)sEwramPointer + 0x4200, VRAM_BASE + 0xE000, 0x300, 16);
break;
@ -5389,8 +5389,8 @@ u32 FileSelectUpdateTilemap(u8 request)
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_SMALL_PANEL], FILE_SELECT_OAM_ID_MEDIUM_PANEL);
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_OPEN_SUB_MENU);
gBG1HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
gBg1HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
DmaTransfer(3, (void*)sEwramPointer + 0x3F00, VRAM_BASE + 0xE800, 0x300, 16);
FILE_SELECT_DATA.bg1cnt = FILE_SELECT_DATA.unk_1C;
@ -5425,8 +5425,8 @@ u32 FileSelectUpdateTilemap(u8 request)
FILE_SELECT_DATA.dispcnt &= ~DCNT_BG2;
FILE_SELECT_DATA.dispcnt |= DCNT_BG1;
gBG1HOFS_NonGameplay = BLOCK_SIZE * 32;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 32;
gBg1HOFS_NonGameplay = BLOCK_SIZE * 32;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 32;
}
else
{
@ -5440,8 +5440,8 @@ u32 FileSelectUpdateTilemap(u8 request)
break;
case TILEMAP_REQUEST_COPY_OVERRIDE_SPAWN_INIT:
gBG0HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 27 + 8;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 26 + HALF_BLOCK_SIZE + 8;
DmaTransfer(3, (void*)sEwramPointer + 0x4200, VRAM_BASE + 0xE000, 0x300, 16);
break;
@ -5480,8 +5480,8 @@ u32 FileSelectUpdateTilemap(u8 request)
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL], FILE_SELECT_OAM_ID_LARGE_PANEL);
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_OPEN_SUB_MENU);
gBG0HOFS_NonGameplay = BLOCK_SIZE * 28;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 28 + HALF_BLOCK_SIZE;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 28;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 28 + HALF_BLOCK_SIZE;
DmaTransfer(3, (void*)sEwramPointer + 0x3300, VRAM_BASE + 0xE000, 0x300, 16);
break;
@ -5534,8 +5534,8 @@ u32 FileSelectUpdateTilemap(u8 request)
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL].yPosition = BLOCK_SIZE * 2 + HALF_BLOCK_SIZE;
UpdateMenuOamDataID(&FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_MEDIUM_PANEL], FILE_SELECT_OAM_ID_MEDIUM_PANEL);
gBG0HOFS_NonGameplay = BLOCK_SIZE * 29 + HALF_BLOCK_SIZE;
gBG0VOFS_NonGameplay = BLOCK_SIZE * 29 + HALF_BLOCK_SIZE;
gBg0HOFS_NonGameplay = BLOCK_SIZE * 29 + HALF_BLOCK_SIZE;
gBg0VOFS_NonGameplay = BLOCK_SIZE * 29 + HALF_BLOCK_SIZE;
if (FILE_SELECT_DATA.unk_47 == 1)
DmaTransfer(3, (void*)sEwramPointer + 0x4200, VRAM_BASE + 0xE000, 0x300, 16);

View File

@ -281,10 +281,10 @@ void GameOverInit(void)
gGameModeSub3 = 0;
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = 0;
gBG1HOFS_NonGameplay = gBG1VOFS_NonGameplay = 0;
gBG3HOFS_NonGameplay = gBG3VOFS_NonGameplay = 0;
gBG2HOFS_NonGameplay = gBG2VOFS_NonGameplay = 0;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = 0;
gBg1HOFS_NonGameplay = gBg1VOFS_NonGameplay = 0;
gBg3HOFS_NonGameplay = gBg3VOFS_NonGameplay = 0;
gBg2HOFS_NonGameplay = gBg2VOFS_NonGameplay = 0;
GAME_OVER_DATA.optionSelected = GAME_OVER_DATA.unk_35 = 0;
@ -331,10 +331,10 @@ void GameOverInit_Unused(void)
gGameModeSub3 = 0;
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = 0;
gBG1HOFS_NonGameplay = gBG1VOFS_NonGameplay = 0;
gBG2HOFS_NonGameplay = gBG2VOFS_NonGameplay = 0;
gBG3HOFS_NonGameplay = gBG3VOFS_NonGameplay = 0;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = 0;
gBg1HOFS_NonGameplay = gBg1VOFS_NonGameplay = 0;
gBg2HOFS_NonGameplay = gBg2VOFS_NonGameplay = 0;
gBg3HOFS_NonGameplay = gBg3VOFS_NonGameplay = 0;
GAME_OVER_DATA.bldcnt = BLDCNT_SCREEN_FIRST_TARGET | BLDCNT_ALPHA_BLENDING_EFFECT | BLDCNT_BRIGHTNESS_INCREASE_EFFECT;
@ -356,17 +356,17 @@ void GameOverVBlank(void)
{
DMA_SET(3, gOamData, OAM_BASE, (DMA_ENABLE | DMA_32BIT) << 16 | OAM_SIZE / sizeof(u32))
write16(REG_BG0HOFS, SUB_PIXEL_TO_PIXEL(gBG0HOFS_NonGameplay));
write16(REG_BG0VOFS, SUB_PIXEL_TO_PIXEL(gBG0VOFS_NonGameplay));
write16(REG_BG0HOFS, SUB_PIXEL_TO_PIXEL(gBg0HOFS_NonGameplay));
write16(REG_BG0VOFS, SUB_PIXEL_TO_PIXEL(gBg0VOFS_NonGameplay));
write16(REG_BG1HOFS, SUB_PIXEL_TO_PIXEL(gBG1HOFS_NonGameplay));
write16(REG_BG1VOFS, SUB_PIXEL_TO_PIXEL(gBG1VOFS_NonGameplay));
write16(REG_BG1HOFS, SUB_PIXEL_TO_PIXEL(gBg1HOFS_NonGameplay));
write16(REG_BG1VOFS, SUB_PIXEL_TO_PIXEL(gBg1VOFS_NonGameplay));
write16(REG_BG2HOFS, SUB_PIXEL_TO_PIXEL(gBG2HOFS_NonGameplay));
write16(REG_BG2VOFS, SUB_PIXEL_TO_PIXEL(gBG2VOFS_NonGameplay));
write16(REG_BG2HOFS, SUB_PIXEL_TO_PIXEL(gBg2HOFS_NonGameplay));
write16(REG_BG2VOFS, SUB_PIXEL_TO_PIXEL(gBg2VOFS_NonGameplay));
write16(REG_BG3HOFS, SUB_PIXEL_TO_PIXEL(gBG3HOFS_NonGameplay));
write16(REG_BG3VOFS, SUB_PIXEL_TO_PIXEL(gBG3VOFS_NonGameplay));
write16(REG_BG3HOFS, SUB_PIXEL_TO_PIXEL(gBg3HOFS_NonGameplay));
write16(REG_BG3VOFS, SUB_PIXEL_TO_PIXEL(gBg3VOFS_NonGameplay));
write16(REG_DISPCNT, GAME_OVER_DATA.dispcnt);
write16(REG_BLDY, gWrittenToBLDY_NonGameplay);

View File

@ -1206,23 +1206,23 @@ void ProcessMenuOam(u8 length, struct MenuOamData* pOam, const struct OamArray*
// Fetch background positions based on the bound background
if (pOam->boundBackground == 0)
{
xPosition = (s16)gBG0HOFS_NonGameplay;
yPosition = (s16)gBG0VOFS_NonGameplay;
xPosition = (s16)gBg0HOFS_NonGameplay;
yPosition = (s16)gBg0VOFS_NonGameplay;
}
else if (pOam->boundBackground == 1)
{
xPosition = (s16)gBG1HOFS_NonGameplay;
yPosition = (s16)gBG1VOFS_NonGameplay;
xPosition = (s16)gBg1HOFS_NonGameplay;
yPosition = (s16)gBg1VOFS_NonGameplay;
}
else if (pOam->boundBackground == 2)
{
xPosition = (s16)gBG2HOFS_NonGameplay;
yPosition = (s16)gBG2VOFS_NonGameplay;
xPosition = (s16)gBg2HOFS_NonGameplay;
yPosition = (s16)gBg2VOFS_NonGameplay;
}
else if (pOam->boundBackground == 3)
{
xPosition = (s16)gBG3HOFS_NonGameplay;
yPosition = (s16)gBG3VOFS_NonGameplay;
xPosition = (s16)gBg3HOFS_NonGameplay;
yPosition = (s16)gBg3VOFS_NonGameplay;
}
else
{
@ -1487,23 +1487,23 @@ void ProcessComplexMenuOam(u8 length, struct MenuOamData* pOam, const struct Oam
// Fetch background positions based on the bound background
if (pOam->boundBackground == 0)
{
xPosition = (s16)gBG0HOFS_NonGameplay;
yPosition = (s16)gBG0VOFS_NonGameplay;
xPosition = (s16)gBg0HOFS_NonGameplay;
yPosition = (s16)gBg0VOFS_NonGameplay;
}
else if (pOam->boundBackground == 1)
{
xPosition = (s16)gBG1HOFS_NonGameplay;
yPosition = (s16)gBG1VOFS_NonGameplay;
xPosition = (s16)gBg1HOFS_NonGameplay;
yPosition = (s16)gBg1VOFS_NonGameplay;
}
else if (pOam->boundBackground == 2)
{
xPosition = (s16)gBG2HOFS_NonGameplay;
yPosition = (s16)gBG2VOFS_NonGameplay;
xPosition = (s16)gBg2HOFS_NonGameplay;
yPosition = (s16)gBg2VOFS_NonGameplay;
}
else if (pOam->boundBackground == 3)
{
xPosition = (s16)gBG3HOFS_NonGameplay;
yPosition = (s16)gBG3VOFS_NonGameplay;
xPosition = (s16)gBg3HOFS_NonGameplay;
yPosition = (s16)gBg3VOFS_NonGameplay;
}
else
{
@ -1785,23 +1785,23 @@ void ProcessCutsceneOam(u8 length, struct CutsceneOamData* pOam, const struct Oa
// Fetch background positions based on the bound background
if (pOam->boundBackground == 0)
{
xPosition = (s16)gBG0HOFS_NonGameplay;
yPosition = (s16)gBG0VOFS_NonGameplay;
xPosition = (s16)gBg0HOFS_NonGameplay;
yPosition = (s16)gBg0VOFS_NonGameplay;
}
else if (pOam->boundBackground == 1)
{
xPosition = (s16)gBG1HOFS_NonGameplay;
yPosition = (s16)gBG1VOFS_NonGameplay;
xPosition = (s16)gBg1HOFS_NonGameplay;
yPosition = (s16)gBg1VOFS_NonGameplay;
}
else if (pOam->boundBackground == 2)
{
xPosition = (s16)gBG2HOFS_NonGameplay;
yPosition = (s16)gBG2VOFS_NonGameplay;
xPosition = (s16)gBg2HOFS_NonGameplay;
yPosition = (s16)gBg2VOFS_NonGameplay;
}
else if (pOam->boundBackground == 3)
{
xPosition = (s16)gBG3HOFS_NonGameplay;
yPosition = (s16)gBG3VOFS_NonGameplay;
xPosition = (s16)gBg3HOFS_NonGameplay;
yPosition = (s16)gBg3VOFS_NonGameplay;
}
else
{
@ -1977,14 +1977,14 @@ void PauseScreenVBlank(void)
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_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);
@ -2153,16 +2153,16 @@ void PauseScreenInit(void)
}
}
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = 0;
gBG1HOFS_NonGameplay = gBG1VOFS_NonGameplay = 0;
gBG2HOFS_NonGameplay = gBG2VOFS_NonGameplay = 0;
gBG3HOFS_NonGameplay = gBG3VOFS_NonGameplay = 0;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = 0;
gBg1HOFS_NonGameplay = gBg1VOFS_NonGameplay = 0;
gBg2HOFS_NonGameplay = gBg2VOFS_NonGameplay = 0;
gBg3HOFS_NonGameplay = gBg3VOFS_NonGameplay = 0;
PAUSE_SCREEN_DATA.subroutineInfo.stage = 0;
PAUSE_SCREEN_DATA.subroutineInfo.timer = 0;
PAUSE_SCREEN_DATA.subroutineInfo = sMapScreenSubroutineInfo_Empty;
gBG1VOFS_NonGameplay = BLOCK_SIZE * 16;
gBg1VOFS_NonGameplay = BLOCK_SIZE * 16;
if (PAUSE_SCREEN_DATA.typeFlags & PAUSE_SCREEN_TYPE_CHOZO_STATUE_HINT)
{
@ -2216,8 +2216,8 @@ void PauseScreenInit(void)
if (PAUSE_SCREEN_DATA.typeFlags & PAUSE_SCREEN_TYPE_ON_MAP_SCREEN)
{
gBG1HOFS_NonGameplay = QUARTER_BLOCK_SIZE;
gBG1VOFS_NonGameplay = QUARTER_BLOCK_SIZE;
gBg1HOFS_NonGameplay = QUARTER_BLOCK_SIZE;
gBg1VOFS_NonGameplay = QUARTER_BLOCK_SIZE;
}
gWrittenToBLDY_NonGameplay = gWrittenToBLDALPHA_H = 0;
@ -2257,14 +2257,14 @@ void PauseScreenInit(void)
write8(REG_WINOUT + 1, WIN0_BG3 | WIN0_OBJ);
gWrittenToMOSAIC_L = 0;
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_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_MOSAIC, 0);
write16(REG_BLDCNT, PAUSE_SCREEN_DATA.bldcnt);

View File

@ -408,7 +408,7 @@ u32 PauseScreenMapDownloadInstantWithLine_Unused(void)
PAUSE_SCREEN_DATA.downloadStage++;
PAUSE_SCREEN_DATA.downloadTimer = 0;
PAUSE_SCREEN_DATA.currentDownloadedLine = (gBG3VOFS_NonGameplay & 0x3FF) / 4;
PAUSE_SCREEN_DATA.currentDownloadedLine = (gBg3VOFS_NonGameplay & 0x3FF) / 4;
}
break;
@ -503,13 +503,13 @@ u32 PauseScreenMapDownload(void)
PAUSE_SCREEN_DATA.currentDownloadedLine = 0;
PAUSE_SCREEN_DATA.unk_4F = 0;
if (gBG3VOFS_NonGameplay < BLOCK_SIZE * 32)
if (gBg3VOFS_NonGameplay < BLOCK_SIZE * 32)
{
PAUSE_SCREEN_DATA.currentDownloadedLine = 0x3F - ((BLOCK_SIZE * 32 - gBG3VOFS_NonGameplay) >> 5);
PAUSE_SCREEN_DATA.currentDownloadedLine = 0x3F - ((BLOCK_SIZE * 32 - gBg3VOFS_NonGameplay) >> 5);
}
else if (gBG3VOFS_NonGameplay > BLOCK_SIZE * 32)
else if (gBg3VOFS_NonGameplay > BLOCK_SIZE * 32)
{
PAUSE_SCREEN_DATA.currentDownloadedLine = (gBG3VOFS_NonGameplay - BLOCK_SIZE * 32) >> 5;
PAUSE_SCREEN_DATA.currentDownloadedLine = (gBg3VOFS_NonGameplay - BLOCK_SIZE * 32) >> 5;
}
PAUSE_SCREEN_DATA.downloadStage++;
@ -735,8 +735,8 @@ void unk_6db58(u8 param_1)
else if (PAUSE_SCREEN_DATA.mapViewY > PAUSE_SCREEN_DATA.mapBottomBorder)
PAUSE_SCREEN_DATA.mapBottomBorder = PAUSE_SCREEN_DATA.mapViewY;
gBG3HOFS_NonGameplay = (0x204 - (15 - PAUSE_SCREEN_DATA.mapViewX) * 8) * 4;
gBG3VOFS_NonGameplay = (0x204 - (10 - PAUSE_SCREEN_DATA.mapViewY) * 8) * 4;
gBg3HOFS_NonGameplay = (0x204 - (15 - PAUSE_SCREEN_DATA.mapViewX) * 8) * 4;
gBg3VOFS_NonGameplay = (0x204 - (10 - PAUSE_SCREEN_DATA.mapViewY) * 8) * 4;
}
/**
@ -990,8 +990,8 @@ void MapScreenSubroutine(void)
}
// Update BG3 position
gBG3HOFS_NonGameplay = (0x204 - (15 - PAUSE_SCREEN_DATA.mapViewX) * 8) * 4;
gBG3VOFS_NonGameplay = (0x204 - (10 - PAUSE_SCREEN_DATA.mapViewY) * 8) * 4;
gBg3HOFS_NonGameplay = (0x204 - (15 - PAUSE_SCREEN_DATA.mapViewX) * 8) * 4;
gBg3VOFS_NonGameplay = (0x204 - (10 - PAUSE_SCREEN_DATA.mapViewY) * 8) * 4;
if (action == 1)
{

View File

@ -412,8 +412,8 @@ void ChozoStatueHintScrolling(void)
PAUSE_SCREEN_DATA.unk_8C[1].unk_4 = (0x204 - (0xA - PAUSE_SCREEN_DATA.hintTargetY) * 8) * 4;
PAUSE_SCREEN_DATA.unk_8C[1].unk_6 = (0x204 - (0xF - PAUSE_SCREEN_DATA.hintTargetX) * 8) * 4;
PAUSE_SCREEN_DATA.unk_8C[1].unk_0 = gBG3VOFS_NonGameplay;
PAUSE_SCREEN_DATA.unk_8C[1].unk_2 = gBG3HOFS_NonGameplay;
PAUSE_SCREEN_DATA.unk_8C[1].unk_0 = gBg3VOFS_NonGameplay;
PAUSE_SCREEN_DATA.unk_8C[1].unk_2 = gBg3HOFS_NonGameplay;
PAUSE_SCREEN_DATA.unk_8C[1].unk_A = PAUSE_SCREEN_DATA.unk_8C[1].unk_6 - PAUSE_SCREEN_DATA.unk_8C[1].unk_2;
@ -469,8 +469,8 @@ void ChozoStatueHintScrolling(void)
var_1 = var_0 >> 16;
var_0 = var_0 & 0xFFFF;
gBG3VOFS_NonGameplay = var_1;
gBG3HOFS_NonGameplay = var_0;
gBg3VOFS_NonGameplay = var_1;
gBg3HOFS_NonGameplay = var_0;
var_1 = var_1 == PAUSE_SCREEN_DATA.unk_8C[1].unk_4 ? TRUE : FALSE;
var_0 = var_0 == PAUSE_SCREEN_DATA.unk_8C[1].unk_6 ? TRUE : FALSE;

View File

@ -390,7 +390,7 @@ void unk_76978(u8 param_1)
if (param_1 & 8)
{
DmaTransfer(3, (void*)sEwramPointer + 0x7000, VRAM_BASE + 0x7000, 0x400, 16);
TITLE_SCREEN_DATA.unk_24 = gBG3VOFS_NonGameplay = BLOCK_SIZE * 12 + HALF_BLOCK_SIZE;
TITLE_SCREEN_DATA.unk_24 = gBg3VOFS_NonGameplay = BLOCK_SIZE * 12 + HALF_BLOCK_SIZE;
}
}
@ -518,14 +518,14 @@ u32 TitleScreenCometsView(void)
case 4:
// Scroll screen
if (gBG3VOFS_NonGameplay >= BLOCK_SIZE * 12 + HALF_BLOCK_SIZE)
if (gBg3VOFS_NonGameplay >= BLOCK_SIZE * 12 + HALF_BLOCK_SIZE)
{
gBG3VOFS_NonGameplay = BLOCK_SIZE * 12 + HALF_BLOCK_SIZE;
gBg3VOFS_NonGameplay = BLOCK_SIZE * 12 + HALF_BLOCK_SIZE;
TITLE_SCREEN_DATA.cometsStage++;
break;
}
if (BLOCK_SIZE * 12 + HALF_BLOCK_SIZE - gBG3VOFS_NonGameplay < 9)
if (BLOCK_SIZE * 12 + HALF_BLOCK_SIZE - gBg3VOFS_NonGameplay < 9)
screenOffset += PIXEL_SIZE / 2;
else
screenOffset += PIXEL_SIZE;
@ -538,18 +538,18 @@ u32 TitleScreenCometsView(void)
if (!ended)
{
screenOffset += gBG3VOFS_NonGameplay;
screenOffset += gBg3VOFS_NonGameplay;
if (screenOffset > BLOCK_SIZE * 12 + HALF_BLOCK_SIZE)
screenOffset = BLOCK_SIZE * 12 + HALF_BLOCK_SIZE;
else if (screenOffset < 0)
screenOffset = 0;
gBG3VOFS_NonGameplay = screenOffset;
gBg3VOFS_NonGameplay = screenOffset;
TitleScreenTransferGroundGraphics();
}
TITLE_SCREEN_DATA.unk_24 = gBG3VOFS_NonGameplay;
TITLE_SCREEN_DATA.unk_24 = gBg3VOFS_NonGameplay;
return ended;
}
@ -567,22 +567,22 @@ void TitleScreenTransferGroundGraphics(void)
var_0 = -1;
var_1 = -1;
if (TITLE_SCREEN_DATA.unk_24 != gBG3VOFS_NonGameplay)
if (TITLE_SCREEN_DATA.unk_24 != gBg3VOFS_NonGameplay)
{
if (TITLE_SCREEN_DATA.unk_24 < gBG3VOFS_NonGameplay)
if (TITLE_SCREEN_DATA.unk_24 < gBg3VOFS_NonGameplay)
{
if (gBG3VOFS_NonGameplay >= (BLOCK_SIZE * 5 + HALF_BLOCK_SIZE))
if (gBg3VOFS_NonGameplay >= (BLOCK_SIZE * 5 + HALF_BLOCK_SIZE))
{
var_0 = (gBG3VOFS_NonGameplay - (BLOCK_SIZE * 5 + HALF_BLOCK_SIZE)) >> 5;
var_0 = (gBg3VOFS_NonGameplay - (BLOCK_SIZE * 5 + HALF_BLOCK_SIZE)) >> 5;
var_1 = (TITLE_SCREEN_DATA.unk_24 - (BLOCK_SIZE * 5 + HALF_BLOCK_SIZE)) >> 5;
src = (void*)sEwramPointer + 0x4000;
}
}
else
{
if (gBG3VOFS_NonGameplay <= (BLOCK_SIZE * 7 + HALF_BLOCK_SIZE))
if (gBg3VOFS_NonGameplay <= (BLOCK_SIZE * 7 + HALF_BLOCK_SIZE))
{
var_0 = 13 - (((BLOCK_SIZE * 7 + HALF_BLOCK_SIZE) - gBG3VOFS_NonGameplay) >> 5);
var_0 = 13 - (((BLOCK_SIZE * 7 + HALF_BLOCK_SIZE) - gBg3VOFS_NonGameplay) >> 5);
var_1 = 13 - (((BLOCK_SIZE * 7 + HALF_BLOCK_SIZE) - TITLE_SCREEN_DATA.unk_24) >> 5);
src = (void*)sEwramPointer;
}
@ -688,8 +688,8 @@ void TitleScreenProcessComets(struct TitleScrenOamTiming* pTiming, struct MenuOa
pOam->yPosition += movement;
// Check out of bounds
yLimit = pOam->yPosition - (s16)gBG3VOFS_NonGameplay;
xLimit = pOam->xPosition - (s16)gBG3HOFS_NonGameplay;
yLimit = pOam->yPosition - (s16)gBg3VOFS_NonGameplay;
xLimit = pOam->xPosition - (s16)gBg3HOFS_NonGameplay;
pOam->notDrawn = FALSE;
@ -1134,10 +1134,10 @@ void TitleScreenInit(void)
TitleScreenSetBGCNTPageData(&sTitleScreenPageData[1]);
gGameModeSub3 = 0;
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = 0;
gBG1HOFS_NonGameplay = gBG1VOFS_NonGameplay = 0;
gBG2HOFS_NonGameplay = gBG2VOFS_NonGameplay = 0;
gBG3HOFS_NonGameplay = gBG3VOFS_NonGameplay = 0;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = 0;
gBg1HOFS_NonGameplay = gBg1VOFS_NonGameplay = 0;
gBg2HOFS_NonGameplay = gBg2VOFS_NonGameplay = 0;
gBg3HOFS_NonGameplay = gBg3VOFS_NonGameplay = 0;
gWrittenToBLDALPHA_H = 16;
gWrittenToBLDALPHA_L = 0;
@ -1190,17 +1190,17 @@ void TitleScreenVBlank(void)
{
DMA_SET(3, gOamData, OAM_BASE, C_32_2_16(DMA_ENABLE | DMA_32BIT, OAM_SIZE / sizeof(u32)));
write16(REG_BG0HOFS, SUB_PIXEL_TO_PIXEL(gBG0HOFS_NonGameplay));
write16(REG_BG0VOFS, SUB_PIXEL_TO_PIXEL(gBG0VOFS_NonGameplay));
write16(REG_BG0HOFS, SUB_PIXEL_TO_PIXEL(gBg0HOFS_NonGameplay));
write16(REG_BG0VOFS, SUB_PIXEL_TO_PIXEL(gBg0VOFS_NonGameplay));
write16(REG_BG1HOFS, SUB_PIXEL_TO_PIXEL(gBG1HOFS_NonGameplay));
write16(REG_BG1VOFS, SUB_PIXEL_TO_PIXEL(gBG1VOFS_NonGameplay));
write16(REG_BG1HOFS, SUB_PIXEL_TO_PIXEL(gBg1HOFS_NonGameplay));
write16(REG_BG1VOFS, SUB_PIXEL_TO_PIXEL(gBg1VOFS_NonGameplay));
write16(REG_BG2HOFS, SUB_PIXEL_TO_PIXEL(gBG2HOFS_NonGameplay));
write16(REG_BG2VOFS, SUB_PIXEL_TO_PIXEL(gBG2VOFS_NonGameplay));
write16(REG_BG2HOFS, SUB_PIXEL_TO_PIXEL(gBg2HOFS_NonGameplay));
write16(REG_BG2VOFS, SUB_PIXEL_TO_PIXEL(gBg2VOFS_NonGameplay));
write16(REG_BG3HOFS, SUB_PIXEL_TO_PIXEL(gBG3HOFS_NonGameplay));
write16(REG_BG3VOFS, SUB_PIXEL_TO_PIXEL(gBG3VOFS_NonGameplay));
write16(REG_BG3HOFS, SUB_PIXEL_TO_PIXEL(gBg3HOFS_NonGameplay));
write16(REG_BG3VOFS, SUB_PIXEL_TO_PIXEL(gBg3VOFS_NonGameplay));
write16(REG_DISPCNT, TITLE_SCREEN_DATA.dispcnt);
write16(REG_BLDY, gWrittenToBLDY_NonGameplay);

View File

@ -294,7 +294,7 @@ void RoomLoadEntry(void)
if (gCurrentRoomEntry.Bg3Prop == BG_PROP_STARTS_FROM_BOTTOM)
{
gCurrentRoomEntry.BG3FromBottomFlag = TRUE;
gBG0Movement.type = BG0_MOVEMENT_WATER_CLOUDS;
gBg0Movement.type = BG0_MOVEMENT_WATER_CLOUDS;
}
}
@ -469,9 +469,9 @@ void RoomReset(void)
gEffectYPositionOffset = 0;
gUnusedStruct_3005504 = sUnusedStruct_3005504_Empty;
gBG0Movement = sBg0Movement_Empty;
gBG2Movement.xOffset = 0;
gBG2Movement.yOffset = 0;
gBg0Movement = sBg0Movement_Empty;
gBg2Movement.xOffset = 0;
gBg2Movement.yOffset = 0;
for (i = 0; i < MAX_AMOUNT_OF_BROKEN_BLOCKS; i++)
gBrokenBlocks[i] = sBrokenBlock_Empty;
@ -549,22 +549,22 @@ void RoomReset(void)
*/
void RoomSetBackgroundScrolling(void)
{
gBG3Movement = sBg3Movement_Empty;
gBg3Movement = sBg3Movement_Empty;
switch (gCurrentRoomEntry.Bg3Scrolling)
{
case 0x7:
case 0x8:
case 0xA:
gBG3Movement.direction = TRUE;
case 7:
case 8:
case 10:
gBg3Movement.active = TRUE;
}
if (gCurrentRoomEntry.visualEffect == EFFECT_WATER)
gBG0Movement.type = BG0_MOVEMENT_WATER_CLOUDS;
gBg0Movement.type = BG0_MOVEMENT_WATER_CLOUDS;
else if (gCurrentRoomEntry.visualEffect == EFFECT_SNOWFLAKES_COLD_KNOCKBACK)
gBG0Movement.type = BG0_MOVEMENT_SNOWFLAKES;
gBg0Movement.type = BG0_MOVEMENT_SNOWFLAKES;
else if (gCurrentRoomEntry.visualEffect == EFFECT_SNOWFLAKES_COLD)
gBG0Movement.type = BG0_MOVEMENT_SNOWFLAKES;
gBg0Movement.type = BG0_MOVEMENT_SNOWFLAKES;
gInGameCutscene.queriedCutscene = 0;
}
@ -1277,16 +1277,16 @@ void RoomUpdateBackgroundsPosition(void)
if (gScreenShakeRelated & 0x100)
{
gBackgroundPositions.bg[0].x = (gBg0XPosition >> 0x2) + gBG0Movement.xOffset & 0x1FF;
gBackgroundPositions.bg[0].y = (gBg0YPosition >> 0x2) + gBG0Movement.snowflakesRelated & 0x1FF;
gBackgroundPositions.bg[0].x = (gBg0XPosition >> 0x2) + gBg0Movement.xOffset & 0x1FF;
gBackgroundPositions.bg[0].y = (gBg0YPosition >> 0x2) + gBg0Movement.yOffset & 0x1FF;
}
else
{
gBackgroundPositions.bg[0].x = ((gBg0XPosition >> 0x2) + gBG0Movement.xOffset & 0x1FF) + xOffset;
gBackgroundPositions.bg[0].y = ((gBg0YPosition >> 0x2) + gBG0Movement.snowflakesRelated & 0x1FF) + yOffset;
gBackgroundPositions.bg[0].x = ((gBg0XPosition >> 0x2) + gBg0Movement.xOffset & 0x1FF) + xOffset;
gBackgroundPositions.bg[0].y = ((gBg0YPosition >> 0x2) + gBg0Movement.yOffset & 0x1FF) + yOffset;
}
bg3X = (gBg3XPosition >> 0x2) + gBG3Movement.xOffset & 0x1FF;
bg3X = (gBg3XPosition >> 0x2) + gBg3Movement.xOffset & 0x1FF;
bbg3Y = gBg3YPosition >> 0x2 & 0x1FF;
if (gScreenShakeRelated & 0x800)

View File

@ -22,31 +22,37 @@
*/
void ScrollProcess(struct RawCoordsX* pCoords)
{
u32 screenX;
u32 screenY;
u32 newPosition;
s32 screenX;
s32 screenY;
struct Scroll* pScroll;
// Update scrolls
ScrollUpdateCurrent(pCoords);
// Get current screen coords
screenX = gCamera.xPosition;
screenY = gCamera.yPosition;
// Check for first scroll
pScroll = gCurrentScrolls;
if (pScroll->within != SCROLL_NOT_WITHIN_FLAG)
{
// Get positions
screenX = ScrollProcessX(pScroll, pCoords);
screenY = ScrollProcessY(pScroll, pCoords);
}
pScroll = &gCurrentScrolls[1];
// Check for second scroll
pScroll++;
if (pScroll->within != SCROLL_NOT_WITHIN_FLAG)
{
newPosition = ScrollProcessX(pScroll, pCoords);
screenX = DIV_SHIFT(screenX + newPosition, 2);
newPosition = ScrollProcessY(pScroll, pCoords);
screenY = DIV_SHIFT(screenY + newPosition, 2);
// Get positions, compute middle between previous and new positions
// This merges the results of this scroll with the previous one
screenX = DIV_SHIFT(screenX + ScrollProcessX(pScroll, pCoords), 2);
screenY = DIV_SHIFT(screenY + ScrollProcessY(pScroll, pCoords), 2);
}
// Apply new positions
ScrollScreen(screenX, screenY);
}
@ -60,54 +66,68 @@ void ScrollScreen(u16 screenX, u16 screenY)
{
s32 velocity;
// Set wanted position
gCamera.xPosition = screenX;
gCamera.yPosition = screenY;
if (gGameModeSub1 == 0)
return;
// Check needs to scroll
if (screenY != gBg1YPosition)
{
// Compute Y difference
velocity = screenY - gBg1YPosition;
// Apply velocity caps
if (velocity > 0)
{
if (gUnk_3005714.unk6 < velocity)
velocity = gUnk_3005714.unk6;
if (gScrollingVelocityCaps.downCap < velocity)
velocity = gScrollingVelocityCaps.downCap;
}
else
{
if (gUnk_3005714.unk4 > velocity)
velocity = gUnk_3005714.unk4;
if (gScrollingVelocityCaps.upCap > velocity)
velocity = gScrollingVelocityCaps.upCap;
}
// Set velocity and apply it
gCamera.yVelocity = velocity;
gBg1YPosition += velocity;
}
else
{
// Already at position
gCamera.yVelocity = 0;
}
if (screenX != gBg1XPosition)
{
// Compute X difference
velocity = screenX - gBg1XPosition;
// Apply velocity caps
if (velocity > 0)
{
if (gUnk_3005714.unk2 < velocity)
velocity = gUnk_3005714.unk2;
if (gScrollingVelocityCaps.rightCap < velocity)
velocity = gScrollingVelocityCaps.rightCap;
}
else
{
if (gUnk_3005714.unk0 > velocity)
velocity = gUnk_3005714.unk0;
if (gScrollingVelocityCaps.leftCap > velocity)
velocity = gScrollingVelocityCaps.leftCap;
}
// Set velocity and apply it
gCamera.xVelocity = velocity;
gBg1XPosition += velocity;
}
else
{
// Already at position
gCamera.xVelocity = 0;
}
}
/**
* @brief 583e4 | 40 | Processes the X scrolling
@ -201,6 +221,7 @@ void ScrollLoad(void)
}
}
#ifdef NON_MATCHING
void ScrollUpdateCurrent(struct RawCoordsX* pCoords)
{
// https://decomp.me/scratch/VHsfW
@ -309,6 +330,204 @@ void ScrollUpdateCurrent(struct RawCoordsX* pCoords)
gCurrentScrolls[0].yEnd = 0;
}
}
#else
NAKED_FUNCTION
void ScrollUpdateCurrent(struct RawCoordsX* pCoords)
{
asm(" \n\
push {r4, r5, r6, r7, lr} \n\
mov r7, sb \n\
mov r6, r8 \n\
push {r6, r7} \n\
sub sp, #0x10 \n\
ldr r2, lbl_08058554 @ =gCurrentScrolls \n\
movs r1, #0 \n\
strb r1, [r2] \n\
strb r1, [r2, #0xc] \n\
ldrh r1, [r0] \n\
lsr r1, r1, #6 \n\
mov r8, r1 \n\
ldrh r0, [r0, #2] \n\
sub r0, #1 \n\
lsl r0, r0, #0xa \n\
lsr r0, r0, #0x10 \n\
mov ip, r0 \n\
ldr r0, lbl_08058558 @ =gCurrentRoomScrollDataPointer \n\
ldr r0, [r0] \n\
add r0, #1 \n\
ldrb r5, [r0] \n\
add r4, r0, #1 \n\
add r7, r2, #0 \n\
cmp r5, #0 \n\
bne lbl_0805850c \n\
b lbl_08058616 \n\
lbl_0805850c: \n\
ldr r6, lbl_0805855c @ =gBgPointersAndDimensions \n\
mov sb, r7 \n\
lbl_08058510: \n\
mov r0, sb \n\
add r0, #0x18 \n\
cmp r2, r0 \n\
bne lbl_0805851a \n\
b lbl_0805862c \n\
lbl_0805851a: \n\
movs r0, #0 \n\
str r0, [sp] \n\
movs r0, #1 \n\
str r0, [sp, #4] \n\
movs r0, #2 \n\
str r0, [sp, #8] \n\
movs r0, #3 \n\
str r0, [sp, #0xc] \n\
ldrb r0, [r4, #4] \n\
cmp r0, #0xff \n\
beq lbl_08058560 \n\
ldrb r0, [r4, #7] \n\
cmp r0, #0xff \n\
beq lbl_08058560 \n\
ldrb r1, [r4, #5] \n\
ldrh r0, [r6, #0x1c] \n\
mul r0, r1, r0 \n\
ldrb r1, [r4, #4] \n\
add r3, r0, r1 \n\
ldr r1, [r6, #0x18] \n\
lsl r0, r3, #1 \n\
add r0, r0, r1 \n\
ldrh r0, [r0] \n\
cmp r0, #0 \n\
bne lbl_08058586 \n\
ldrb r0, [r4, #6] \n\
cmp r0, #0xff \n\
beq lbl_08058586 \n\
b lbl_0805857c \n\
.align 2, 0 \n\
lbl_08058554: .4byte gCurrentScrolls \n\
lbl_08058558: .4byte gCurrentRoomScrollDataPointer \n\
lbl_0805855c: .4byte gBgPointersAndDimensions \n\
lbl_08058560: \n\
ldr r0, lbl_0805863c @ =gSamusData \n\
ldrb r0, [r0] \n\
cmp r0, #0x1d \n\
bne lbl_08058586 \n\
ldrb r0, [r4, #7] \n\
cmp r0, #0xff \n\
beq lbl_08058586 \n\
ldrb r0, [r4, #6] \n\
sub r0, #2 \n\
lsl r0, r0, #0x18 \n\
lsr r0, r0, #0x18 \n\
cmp r0, #1 \n\
bhi lbl_08058586 \n\
ldrb r0, [r4, #6] \n\
lbl_0805857c: \n\
lsl r0, r0, #2 \n\
mov r3, sp \n\
add r1, r3, r0 \n\
movs r0, #7 \n\
str r0, [r1] \n\
lbl_08058586: \n\
ldr r0, [sp] \n\
add r0, r4, r0 \n\
ldrb r1, [r0] \n\
cmp r1, r8 \n\
bhi lbl_0805860c \n\
ldr r0, [sp, #4] \n\
add r0, r4, r0 \n\
ldrb r0, [r0] \n\
cmp r8, r0 \n\
bhi lbl_0805860c \n\
ldr r0, [sp, #8] \n\
add r0, r4, r0 \n\
ldrb r0, [r0] \n\
cmp r0, ip \n\
bhi lbl_0805860c \n\
ldr r0, [sp, #0xc] \n\
add r0, r4, r0 \n\
ldrb r0, [r0] \n\
cmp ip, r0 \n\
bhi lbl_0805860c \n\
ldrb r0, [r2] \n\
cmp r0, #0 \n\
bne lbl_0805860c \n\
lsl r0, r1, #6 \n\
cmp r0, #0x80 \n\
bge lbl_080585bc \n\
movs r0, #0x80 \n\
lbl_080585bc: \n\
strh r0, [r2, #4] \n\
ldrh r0, [r6, #0x1c] \n\
lsl r0, r0, #6 \n\
add r3, r0, #0 \n\
sub r3, #0x80 \n\
ldr r0, [sp, #4] \n\
add r0, r4, r0 \n\
ldrb r0, [r0] \n\
add r0, #1 \n\
lsl r0, r0, #6 \n\
add r1, r3, #0 \n\
cmp r0, r3 \n\
bge lbl_080585d8 \n\
add r1, r0, #0 \n\
lbl_080585d8: \n\
strh r1, [r2, #2] \n\
ldr r0, [sp, #8] \n\
add r0, r4, r0 \n\
ldrb r0, [r0] \n\
lsl r0, r0, #6 \n\
cmp r0, #0x80 \n\
bge lbl_080585e8 \n\
movs r0, #0x80 \n\
lbl_080585e8: \n\
strh r0, [r2, #6] \n\
ldrh r0, [r6, #0x1e] \n\
lsl r0, r0, #6 \n\
add r3, r0, #0 \n\
sub r3, #0x80 \n\
ldr r0, [sp, #0xc] \n\
add r0, r4, r0 \n\
ldrb r0, [r0] \n\
add r0, #1 \n\
lsl r0, r0, #6 \n\
add r1, r3, #0 \n\
cmp r0, r3 \n\
bge lbl_08058604 \n\
add r1, r0, #0 \n\
lbl_08058604: \n\
strh r1, [r2, #8] \n\
movs r0, #2 \n\
strb r0, [r2] \n\
add r2, #0xc \n\
lbl_0805860c: \n\
add r4, #8 \n\
sub r5, #1 \n\
cmp r5, #0 \n\
beq lbl_08058616 \n\
b lbl_08058510 \n\
lbl_08058616: \n\
ldrb r0, [r7] \n\
cmp r0, #0 \n\
bne lbl_0805862c \n\
ldrb r0, [r7, #0xc] \n\
cmp r0, #0 \n\
bne lbl_0805862c \n\
strb r0, [r7] \n\
strh r0, [r7, #2] \n\
strh r0, [r7, #4] \n\
strh r0, [r7, #6] \n\
strh r0, [r7, #8] \n\
lbl_0805862c: \n\
add sp, #0x10 \n\
pop {r3, r4} \n\
mov r8, r3 \n\
mov sb, r4 \n\
pop {r4, r5, r6, r7} \n\
pop {r0} \n\
bx r0 \n\
.align 2, 0 \n\
lbl_0805863c: .4byte gSamusData \n\
");
}
#endif
/**
* @brief 58640 | 1f4 | Processes the general scrolling
@ -375,35 +594,45 @@ void ScrollProcessGeneral(void)
if (coords.y & 0x8000)
coords.y = 0;
gUnk_3005714 = sUnk_8345988[0];
// Set default velocity caps
gScrollingVelocityCaps = sScrollVelocityCaps[SCROLL_VELOCITY_CAP_SET_DEFAULT];
if (gLockScreen.lock == LOCK_SCREEN_TYPE_NONE)
{
if (gSlowScrollingTimer == 0)
{
// Compute new velocity caps to accomodate for samus movements
distance = gSamusData.xPosition - gPreviousXPosition;
if (distance > 0)
{
if (distance >= gUnk_3005714.unk2)
gUnk_3005714.unk2 = distance + 4;
if (distance >= gScrollingVelocityCaps.rightCap)
gScrollingVelocityCaps.rightCap = distance + PIXEL_SIZE;
}
else if (distance < 0)
{
if (distance <= gScrollingVelocityCaps.leftCap)
gScrollingVelocityCaps.leftCap = distance - PIXEL_SIZE;
}
else if (distance < 0 && distance <= gUnk_3005714.unk0)
gUnk_3005714.unk0 = distance - 4;
distance = gSamusData.yPosition - gPreviousYPosition;
if (distance > 0)
{
if (distance >= gUnk_3005714.unk6)
gUnk_3005714.unk6 = distance + 4;
if (distance >= gScrollingVelocityCaps.downCap)
gScrollingVelocityCaps.downCap = distance + PIXEL_SIZE;
}
else if (distance < 0)
{
if (distance <= gScrollingVelocityCaps.upCap)
gScrollingVelocityCaps.upCap = distance - PIXEL_SIZE;
}
else if (distance < 0 && distance <= gUnk_3005714.unk4)
gUnk_3005714.unk4 = distance - 4;
}
else
gUnk_3005714 = sUnk_8345988[1];
{
// Use slow velocity caps since slow scrolling is active
gScrollingVelocityCaps = sScrollVelocityCaps[SCROLL_VELOCITY_CAP_SET_SLOW];
}
}
if (!gDisableScrolling)
@ -429,7 +658,7 @@ void ScrollProcessGeneral(void)
ScrollBg2(&coords);
// Check auto scroll bg0
if (gBG0Movement.type != 0 && gCurrentRoomEntry.Bg0Prop & BG_PROP_LZ77_COMPRESSED)
if (gBg0Movement.type != 0 && gCurrentRoomEntry.Bg0Prop & BG_PROP_LZ77_COMPRESSED)
ScrollAutoBg0();
// Update effect and haze
@ -439,7 +668,7 @@ void ScrollProcessGeneral(void)
ScrollBg3();
// Check auto scroll bg3
if (gBG3Movement.direction != 0)
if (gBg3Movement.active != 0)
ScrollAutoBg3();
}
}
@ -475,8 +704,8 @@ void ScrollWithNoScrollsY(struct RawCoordsX* pCoords)
if (gSamusData.pose == SPOSE_MORPH_BALL || gSamusData.pose == SPOSE_ROLLING || gSamusData.pose == SPOSE_PULLING_YOURSELF_INTO_A_MORPH_BALL_TUNNEL)
{
if (gScreenYOffset + 4 < HALF_BLOCK_SIZE)
gScreenYOffset += 2;
if (gScreenYOffset + PIXEL_SIZE < HALF_BLOCK_SIZE)
gScreenYOffset += PIXEL_SIZE / 2;
else
gScreenYOffset = HALF_BLOCK_SIZE;
}
@ -490,16 +719,17 @@ void ScrollWithNoScrollsY(struct RawCoordsX* pCoords)
yPosition = pCoords->y;
offsetY = gScreenYOffset;
if (yPosition < BLOCK_SIZE * 8 - offsetY)
yOffset = BLOCK_SIZE * 2;
else
{
clipPosition = (gBgPointersAndDimensions.backgrounds[1].height * BLOCK_SIZE) - BLOCK_SIZE * 6;
clipPosition = (gBgPointersAndDimensions.backgrounds[1].height * BLOCK_SIZE) - SCROLL_Y_ANCHOR;
clipPosition -= offsetY;
if (yPosition > clipPosition)
clipPosition = clipPosition - BLOCK_SIZE * 6;
clipPosition = clipPosition - SCROLL_Y_ANCHOR;
else
clipPosition = yPosition - BLOCK_SIZE * 6;
clipPosition = yPosition - SCROLL_Y_ANCHOR;
yOffset = clipPosition + offsetY;
}
@ -508,13 +738,13 @@ void ScrollWithNoScrollsY(struct RawCoordsX* pCoords)
yOffset -= gBg1YPosition;
if (yOffset > 0)
{
if (gUnk_3005714.unk6 < yOffset)
yOffset = gUnk_3005714.unk6;
if (gScrollingVelocityCaps.downCap < yOffset)
yOffset = gScrollingVelocityCaps.downCap;
}
else
{
if (yOffset < gUnk_3005714.unk4)
yOffset = gUnk_3005714.unk4;
if (yOffset < gScrollingVelocityCaps.upCap)
yOffset = gScrollingVelocityCaps.upCap;
}
gCamera.yVelocity = yOffset;
@ -555,9 +785,9 @@ void ScrollWithNoScrollsX(struct RawCoordsX* pCoords)
clipPosition -= offsetX;
}while(0);
if (xPosition > clipPosition)
clipPosition = clipPosition - (BLOCK_SIZE * 7 + HALF_BLOCK_SIZE);
clipPosition = clipPosition - SCROLL_X_ANCHOR;
else
clipPosition = xPosition - (BLOCK_SIZE * 7 + HALF_BLOCK_SIZE);
clipPosition = xPosition - SCROLL_X_ANCHOR;
xOffset = clipPosition + offsetX;
}
@ -566,13 +796,13 @@ void ScrollWithNoScrollsX(struct RawCoordsX* pCoords)
xOffset -= gBg1XPosition;
if (xOffset > 0)
{
if (gUnk_3005714.unk2 < xOffset)
xOffset = gUnk_3005714.unk2;
if (gScrollingVelocityCaps.rightCap < xOffset)
xOffset = gScrollingVelocityCaps.rightCap;
}
else
{
if (xOffset < gUnk_3005714.unk0)
xOffset = gUnk_3005714.unk0;
if (xOffset < gScrollingVelocityCaps.leftCap)
xOffset = gScrollingVelocityCaps.leftCap;
}
gCamera.xVelocity = xOffset;
@ -725,28 +955,28 @@ void ScrollUpdateEffectAndHazePosition(struct RawCoordsX* pCoords)
*/
void ScrollAutoBg0(void)
{
if (gBG0Movement.type == BG0_MOVEMENT_WATER_CLOUDS)
if (gBg0Movement.type == BG0_MOVEMENT_WATER_CLOUDS)
{
if (!(gBG0Movement.yOffset & 7))
gBG0Movement.xOffset++;
if (MOD_AND(gBg0Movement.counter, 8) == 0)
gBg0Movement.xOffset++;
}
else if (gBG0Movement.type == 2)
else if (gBg0Movement.type == 2)
{
if (!(gBG0Movement.yOffset & 3))
gBG0Movement.xOffset++;
if (MOD_AND(gBg0Movement.counter, 4) == 0)
gBg0Movement.xOffset++;
}
else if (gBG0Movement.type == 3)
else if (gBg0Movement.type == 3)
{
if (!(gBG0Movement.yOffset & 7))
gBG0Movement.snowflakesRelated++;
if (MOD_AND(gBg0Movement.counter, 8) == 0)
gBg0Movement.yOffset++;
}
else if (gBG0Movement.type == BG0_MOVEMENT_SNOWFLAKES)
else if (gBg0Movement.type == BG0_MOVEMENT_SNOWFLAKES)
{
if (!(gBG0Movement.yOffset & 7))
gBG0Movement.snowflakesRelated--;
if (MOD_AND(gBg0Movement.counter, 8) == 0)
gBg0Movement.yOffset--;
}
gBG0Movement.yOffset++;
gBg0Movement.counter++;
}
/**
@ -759,8 +989,8 @@ u32 ScrollGetBG3Scroll(void)
u32 xScroll;
u32 yScroll;
yScroll = 0;
xScroll = 0;
yScroll = BG3_SCROLLING_TYPE_NONE;
xScroll = BG3_SCROLLING_TYPE_NONE;
switch (gCurrentRoomEntry.Bg3Scrolling)
{
@ -768,47 +998,48 @@ u32 ScrollGetBG3Scroll(void)
break;
case 1:
xScroll = 2;
yScroll = 0;
xScroll = BG3_SCROLLING_TYPE_HALVED;
yScroll = BG3_SCROLLING_TYPE_NONE;
break;
case 2:
xScroll = 0;
yScroll = 2;
xScroll = BG3_SCROLLING_TYPE_NONE;
yScroll = BG3_SCROLLING_TYPE_HALVED;
break;
case 3:
xScroll = 2;
yScroll = 2;
xScroll = BG3_SCROLLING_TYPE_HALVED;
yScroll = BG3_SCROLLING_TYPE_HALVED;
break;
case 4:
xScroll = 1;
yScroll = 2;
xScroll = BG3_SCROLLING_TYPE_NORMAL;
yScroll = BG3_SCROLLING_TYPE_HALVED;
break;
case 5:
xScroll = 2;
yScroll = 1;
xScroll = BG3_SCROLLING_TYPE_HALVED;
yScroll = BG3_SCROLLING_TYPE_NORMAL;
break;
case 6:
case 10:
xScroll = 1;
yScroll = 1;
xScroll = BG3_SCROLLING_TYPE_NORMAL;
yScroll = BG3_SCROLLING_TYPE_NORMAL;
break;
case 9:
xScroll = 3;
yScroll = 0;
xScroll = BG3_SCROLLING_TYPE_QUARTERED;
yScroll = BG3_SCROLLING_TYPE_NONE;
break;
case 7:
xScroll = 1;
yScroll = 0;
case 8:
xScroll = BG3_SCROLLING_TYPE_NORMAL;
yScroll = BG3_SCROLLING_TYPE_NONE;
}
return yScroll << 16 | xScroll;
return C_32_2_16(yScroll, xScroll);
}
/**
@ -817,28 +1048,29 @@ u32 ScrollGetBG3Scroll(void)
*/
void ScrollBg3(void)
{
u32 xScrolling;
s32 xScrolling;
s32 yScrolling;
s32 offset;
s32 size;
// Get scrolling values
yScrolling = ScrollGetBG3Scroll();
xScrolling = yScrolling & 0xFF;
yScrolling = yScrolling >> 16;
xScrolling = LOW_BYTE(yScrolling);
yScrolling = HIGH_SHORT(yScrolling);
if (xScrolling != 0)
if (xScrolling != BG3_SCROLLING_TYPE_NONE)
{
if (xScrolling == 1)
if (xScrolling == BG3_SCROLLING_TYPE_NORMAL)
gBg3XPosition = gBg1XPosition - BLOCK_SIZE * 2;
else if (xScrolling == 2)
gBg3XPosition = (gBg1XPosition - BLOCK_SIZE * 2) >> 1;
else if (xScrolling == 3)
gBg3XPosition = (gBg1XPosition - BLOCK_SIZE * 2) >> 2;
else if (xScrolling == BG3_SCROLLING_TYPE_HALVED)
gBg3XPosition = DIV_SHIFT(gBg1XPosition - BLOCK_SIZE * 2, 2);
else if (xScrolling == BG3_SCROLLING_TYPE_QUARTERED)
gBg3XPosition = DIV_SHIFT(gBg1XPosition - BLOCK_SIZE * 2, 4);
}
if (gCurrentRoomEntry.BG3FromBottomFlag)
{
size = (gBgPointersAndDimensions.clipdataHeight - 0xC) * BLOCK_SIZE;
size = BLOCK_TO_SUB_PIXEL(gBgPointersAndDimensions.clipdataHeight - (SCREEN_SIZE_Y_BLOCKS + 2));
if (gCurrentRoomEntry.Bg3Size & 2)
offset = 0x800;
@ -847,15 +1079,15 @@ void ScrollBg3(void)
offset -= 0x280;
if (yScrolling == 0)
if (yScrolling == BG3_SCROLLING_TYPE_NONE)
{
offset = 0;
size = 0;
}
else if (yScrolling == 1)
else if (yScrolling == BG3_SCROLLING_TYPE_NORMAL)
size -= gBg1YPosition;
else
size = (size - gBg1YPosition) >> 2;
size = DIV_SHIFT(size - gBg1YPosition, 4);
if (offset - size > 0)
gBg3YPosition = offset - size;
@ -864,14 +1096,14 @@ void ScrollBg3(void)
}
else
{
if (yScrolling == 0)
if (yScrolling == BG3_SCROLLING_TYPE_NONE)
gBg3YPosition = 0;
else if (yScrolling == 1)
else if (yScrolling == BG3_SCROLLING_TYPE_NORMAL)
gBg3YPosition = gBg1YPosition - BLOCK_SIZE * 2;
else if (yScrolling == 2)
gBg3YPosition = (gBg1YPosition - BLOCK_SIZE * 2) >> 1;
else if (yScrolling == BG3_SCROLLING_TYPE_HALVED)
gBg3YPosition = DIV_SHIFT(gBg1YPosition - BLOCK_SIZE * 2, 2);
else
gBg3YPosition = (gBg1YPosition - BLOCK_SIZE * 2) >> 2;
gBg3YPosition = DIV_SHIFT(gBg1YPosition - BLOCK_SIZE * 2, 4);
}
}
@ -883,14 +1115,14 @@ void ScrollBg3Related(void)
{
u32 xScroll;
xScroll = ScrollGetBG3Scroll();
xScroll &= 0xFF;
if (xScroll == 0x0)
gBg3XPosition = 0x0;
else if (xScroll == 0x2)
gBg3XPosition = (gBg1XPosition - 0x80) >> 0x1;
else if (xScroll == 0x3)
gBg3XPosition = (gBg1XPosition - 0x80) >> 0x2;
xScroll = LOW_BYTE(ScrollGetBG3Scroll());
if (xScroll == BG3_SCROLLING_TYPE_NONE)
gBg3XPosition = 0;
else if (xScroll == BG3_SCROLLING_TYPE_HALVED)
gBg3XPosition = DIV_SHIFT(gBg1XPosition - BLOCK_SIZE * 2, 2);
else if (xScroll == BG3_SCROLLING_TYPE_QUARTERED)
gBg3XPosition = DIV_SHIFT(gBg1XPosition - BLOCK_SIZE * 2, 4);
}
/**
@ -899,13 +1131,13 @@ void ScrollBg3Related(void)
*/
void ScrollAutoBg3(void)
{
if (gBG3Movement.direction == 0x1)
if (gBg3Movement.active == TRUE)
{
if (!(gBG3Movement.counter & 0x7))
gBG3Movement.xOffset++;
if (MOD_AND(gBg3Movement.counter, 8) == 0)
gBg3Movement.xOffset++;
}
gBG3Movement.counter++;
gBg3Movement.counter++;
}
/**
@ -927,24 +1159,24 @@ void ScrollBg2(struct RawCoordsX* pCoords)
{
if (gCurrentRoomEntry.Bg2Prop == BG_PROP_MOVING)
{
position = gBg1XPosition + gBG2Movement.xOffset;
position = gBg1XPosition + gBg2Movement.xOffset;
if (position < 0)
position = 0;
else
{
size = (gBgPointersAndDimensions.backgrounds[2].width - 0xF) * BLOCK_SIZE;
size = (gBgPointersAndDimensions.backgrounds[2].width - SCREEN_SIZE_X_BLOCKS) * BLOCK_SIZE;
if (size < position)
position = size;
}
gBg2XPosition = position;
position = gBg1YPosition + gBG2Movement.yOffset;
position = gBg1YPosition + gBg2Movement.yOffset;
if (position < 0)
position = 0;
else
{
size = (gBgPointersAndDimensions.backgrounds[2].height - 0xA) * BLOCK_SIZE;
size = (gBgPointersAndDimensions.backgrounds[2].height - SCREEN_SIZE_Y_BLOCKS) * BLOCK_SIZE;
if (size < position)
position = size;
}
@ -975,25 +1207,25 @@ void ScrollFreeMovementDebugCameraLock(struct RawCoordsX* pCoords)
{
gBg1XPosition = 0;
}
else if (pCoords->x > gBgPointersAndDimensions.backgrounds[1].width * BLOCK_SIZE - (BLOCK_SIZE * 7 + HALF_BLOCK_SIZE))
else if (pCoords->x > BLOCK_TO_SUB_PIXEL(gBgPointersAndDimensions.backgrounds[1].width) - SCROLL_X_ANCHOR)
{
gBg1XPosition = gBgPointersAndDimensions.backgrounds[1].width * BLOCK_SIZE - ((BLOCK_SIZE * 7 + HALF_BLOCK_SIZE) * 2);
gBg1XPosition = BLOCK_TO_SUB_PIXEL(gBgPointersAndDimensions.backgrounds[1].width) - SCREEN_SIZE_X_SUB_PIXEL;
}
else
{
gBg1XPosition = pCoords->x - (BLOCK_SIZE * 7 + HALF_BLOCK_SIZE);
gBg1XPosition = pCoords->x - SCROLL_X_ANCHOR;
}
if (pCoords->y < BLOCK_SIZE * 6)
if (pCoords->y < SCROLL_Y_ANCHOR)
{
gBg1YPosition = 0;
}
else if (pCoords->y > gBgPointersAndDimensions.backgrounds[1].height * BLOCK_SIZE - (BLOCK_SIZE * 3))
else if (pCoords->y > BLOCK_TO_SUB_PIXEL(gBgPointersAndDimensions.backgrounds[1].height) - SCROLL_Y_ANCHOR / 2)
{
gBg1YPosition = gBgPointersAndDimensions.backgrounds[1].height * BLOCK_SIZE - (BLOCK_SIZE * 9);
gBg1YPosition = BLOCK_TO_SUB_PIXEL(gBgPointersAndDimensions.backgrounds[1].height) - (BLOCK_SIZE * 9);
}
else
{
gBg1YPosition = pCoords->y - (BLOCK_SIZE * 6);
gBg1YPosition = pCoords->y - SCROLL_Y_ANCHOR;
}
}

View File

@ -71,10 +71,10 @@ void SoftresetInit(void)
SET_BACKDROP_COLOR(COLOR_BLACK);
gGameModeSub3 = 0;
gBG0HOFS_NonGameplay = gBG0VOFS_NonGameplay = 0;
gBG1HOFS_NonGameplay = gBG1VOFS_NonGameplay = 0;
gBG2HOFS_NonGameplay = gBG2VOFS_NonGameplay = 0;
gBG3HOFS_NonGameplay = gBG3VOFS_NonGameplay = 0;
gBg0HOFS_NonGameplay = gBg0VOFS_NonGameplay = 0;
gBg1HOFS_NonGameplay = gBg1VOFS_NonGameplay = 0;
gBg2HOFS_NonGameplay = gBg2VOFS_NonGameplay = 0;
gBg3HOFS_NonGameplay = gBg3VOFS_NonGameplay = 0;
write16(REG_BG0HOFS, 0);
write16(REG_BG0VOFS, 0);

View File

@ -1075,7 +1075,7 @@ void KraidPartUpdateLeftArmAttackingHitbox(void)
void KraidMoveBG2ToRight(u8 movement)
{
gSubSpriteData1.xPosition += movement;
gBG2Movement.xOffset -= movement;
gBg2Movement.xOffset -= movement;
}
/**
@ -1086,7 +1086,7 @@ void KraidMoveBG2ToRight(u8 movement)
void KraidMoveBG2ToLeft(u8 movement)
{
gSubSpriteData1.xPosition -= movement;
gBG2Movement.xOffset += movement;
gBg2Movement.xOffset += movement;
}
/**
@ -1171,7 +1171,7 @@ void KraidInit(void)
SpriteSpawnSecondary(SSPRITE_KRAID_PART, KRAID_PART_RIGHT_FEET, gfxSlot, ramSlot, yPosition, xPosition, 0x0);
gSubSpriteData1.yPosition += (BLOCK_SIZE * 2);
gBG2Movement.yOffset -= (BLOCK_SIZE * 2);
gBg2Movement.yOffset -= (BLOCK_SIZE * 2);
}
/**
@ -1188,7 +1188,7 @@ u8 KraidMoveUp(void)
if (gSubSpriteData1.yPosition > gCurrentSprite.yPositionSpawn)
{
gSubSpriteData1.yPosition--;
gBG2Movement.yOffset++;
gBg2Movement.yOffset++;
return FALSE;
}
else
@ -1601,7 +1601,7 @@ void KraidDying(void)
else
{
gSubSpriteData1.yPosition++;
gBG2Movement.yOffset--;
gBg2Movement.yOffset--;
}
}
}
@ -2440,24 +2440,24 @@ void Kraid(void)
pSub->pMultiOam == sKraidMultiSpriteData_StandingBetweenSteps)
{
if (pSub->currentAnimationFrame == 1)
gBG2Movement.yOffset -= 4;
gBg2Movement.yOffset -= 4;
else if (pSub->currentAnimationFrame == 2)
gBG2Movement.yOffset += 4;
gBg2Movement.yOffset += 4;
}
else if (pSub->pMultiOam == sKraidMultiSpriteData_MovingLeftFeetToRight ||
pSub->pMultiOam == sKraidMultiSpriteData_MovingRightFeetToLeft)
{
if (pSub->currentAnimationFrame == 1)
gBG2Movement.xOffset -= 4;
gBg2Movement.xOffset -= 4;
else if (pSub->currentAnimationFrame == 2)
gBG2Movement.xOffset -= 4;
gBg2Movement.xOffset -= 4;
else if (pSub->currentAnimationFrame == 3)
gBG2Movement.xOffset -= 4;
gBg2Movement.xOffset -= 4;
else if (pSub->currentAnimationFrame == 4)
gBG2Movement.yOffset -= 4;
gBg2Movement.yOffset -= 4;
else if (pSub->currentAnimationFrame == 5)
{
gBG2Movement.yOffset += 4;
gBg2Movement.yOffset += 4;
ScreenShakeStartVertical(10, 0x80 | 1);
SoundPlay(0x1CC);
if (pSub->pMultiOam == sKraidMultiSpriteData_MovingLeftFeetToRight)
@ -2482,16 +2482,16 @@ void Kraid(void)
pSub->pMultiOam == sKraidMultiSpriteData_MovingLeftFeetToLeft)
{
if (pSub->currentAnimationFrame == 1)
gBG2Movement.xOffset += 4;
gBg2Movement.xOffset += 4;
else if (pSub->currentAnimationFrame == 2)
gBG2Movement.xOffset += 4;
gBg2Movement.xOffset += 4;
else if (pSub->currentAnimationFrame == 3)
gBG2Movement.xOffset += 4;
gBg2Movement.xOffset += 4;
else if (pSub->currentAnimationFrame == 4)
gBG2Movement.yOffset -= 4;
gBg2Movement.yOffset -= 4;
else if (pSub->currentAnimationFrame == 5)
{
gBG2Movement.yOffset += 4;
gBg2Movement.yOffset += 4;
ScreenShakeStartVertical(10, 0x80 | 1);
SoundPlay(0x1CC);
if (pSub->pMultiOam == sKraidMultiSpriteData_MovingLeftFeetToLeft)
@ -2742,7 +2742,7 @@ void Kraid(void)
beq lbl_0801aca2 \n\
b lbl_0801ae26 \n\
lbl_0801aca2: \n\
ldr r1, lbl_0801acc0 @ =gBG2Movement \n\
ldr r1, lbl_0801acc0 @ =gBg2Movement \n\
ldrh r0, [r1, #2] \n\
add r0, #4 \n\
strh r0, [r1, #2] \n\
@ -2753,7 +2753,7 @@ void Kraid(void)
lbl_0801acb4: .4byte sKraidMultiSpriteData_Rising \n\
lbl_0801acb8: .4byte sKraidMultiSpriteData_Standing \n\
lbl_0801acbc: .4byte sKraidMultiSpriteData_StandingBetweenSteps \n\
lbl_0801acc0: .4byte gBG2Movement \n\
lbl_0801acc0: .4byte gBg2Movement \n\
lbl_0801acc4: \n\
ldr r4, lbl_0801ace8 @ =sKraidMultiSpriteData_MovingLeftFeetToRight \n\
cmp r1, r4 \n\
@ -2770,7 +2770,7 @@ void Kraid(void)
cmp r0, #3 \n\
bne lbl_0801acf4 \n\
lbl_0801acde: \n\
ldr r1, lbl_0801acf0 @ =gBG2Movement \n\
ldr r1, lbl_0801acf0 @ =gBg2Movement \n\
ldrh r0, [r1] \n\
sub r0, #4 \n\
strh r0, [r1] \n\
@ -2778,7 +2778,7 @@ void Kraid(void)
.align 2, 0 \n\
lbl_0801ace8: .4byte sKraidMultiSpriteData_MovingLeftFeetToRight \n\
lbl_0801acec: .4byte sKraidMultiSpriteData_MovingRightFeetToLeft \n\
lbl_0801acf0: .4byte gBG2Movement \n\
lbl_0801acf0: .4byte gBg2Movement \n\
lbl_0801acf4: \n\
cmp r0, #4 \n\
beq lbl_0801ad98 \n\
@ -2786,7 +2786,7 @@ void Kraid(void)
beq lbl_0801acfe \n\
b lbl_0801ae26 \n\
lbl_0801acfe: \n\
ldr r1, lbl_0801ad38 @ =gBG2Movement \n\
ldr r1, lbl_0801ad38 @ =gBg2Movement \n\
ldrh r0, [r1, #2] \n\
add r0, #4 \n\
strh r0, [r1, #2] \n\
@ -2813,7 +2813,7 @@ void Kraid(void)
sub r1, #0x90 \n\
b lbl_0801ade8 \n\
.align 2, 0 \n\
lbl_0801ad38: .4byte gBG2Movement \n\
lbl_0801ad38: .4byte gBg2Movement \n\
lbl_0801ad3c: \n\
ldr r5, lbl_0801ad60 @ =gCurrentSprite \n\
ldrh r0, [r5, #6] \n\
@ -2849,7 +2849,7 @@ void Kraid(void)
cmp r0, #3 \n\
bne lbl_0801ad94 \n\
lbl_0801ad7e: \n\
ldr r1, lbl_0801ad90 @ =gBG2Movement \n\
ldr r1, lbl_0801ad90 @ =gBg2Movement \n\
ldrh r0, [r1] \n\
add r0, #4 \n\
strh r0, [r1] \n\
@ -2857,22 +2857,22 @@ void Kraid(void)
.align 2, 0 \n\
lbl_0801ad88: .4byte sKraidMultiSpriteData_MovingRightFeetToRight \n\
lbl_0801ad8c: .4byte sKraidMultiSpriteData_MovingLeftFeetToLeft \n\
lbl_0801ad90: .4byte gBG2Movement \n\
lbl_0801ad90: .4byte gBg2Movement \n\
lbl_0801ad94: \n\
cmp r0, #4 \n\
bne lbl_0801ada8 \n\
lbl_0801ad98: \n\
ldr r1, lbl_0801ada4 @ =gBG2Movement \n\
ldr r1, lbl_0801ada4 @ =gBg2Movement \n\
ldrh r0, [r1, #2] \n\
sub r0, #4 \n\
strh r0, [r1, #2] \n\
b lbl_0801ae26 \n\
.align 2, 0 \n\
lbl_0801ada4: .4byte gBG2Movement \n\
lbl_0801ada4: .4byte gBg2Movement \n\
lbl_0801ada8: \n\
cmp r0, #5 \n\
bne lbl_0801ae26 \n\
ldr r1, lbl_0801adf0 @ =gBG2Movement \n\
ldr r1, lbl_0801adf0 @ =gBg2Movement \n\
ldrh r0, [r1, #2] \n\
add r0, #4 \n\
strh r0, [r1, #2] \n\
@ -2904,7 +2904,7 @@ void Kraid(void)
bl ParticleSet \n\
b lbl_0801ae26 \n\
.align 2, 0 \n\
lbl_0801adf0: .4byte gBG2Movement \n\
lbl_0801adf0: .4byte gBg2Movement \n\
lbl_0801adf4: .4byte sKraidMultiSpriteData_MovingLeftFeetToLeft \n\
lbl_0801adf8: .4byte gCurrentSprite \n\
lbl_0801adfc: \n\

View File

@ -237,7 +237,7 @@ void RisingChozoPillar(void)
gCurrentSprite.oamScaling--;
if (gCurrentSprite.oamScaling != 0)
{
gBG2Movement.yOffset += 2;
gBg2Movement.yOffset += 2;
}
else
{