title_screen: through sub_8079730
This commit is contained in:
@@ -5,642 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80792C8
|
||||
sub_80792C8: @ 80792C8
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
ldr r1, _080792EC @ =gTasks+0x8
|
||||
adds r4, r0, r1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x5
|
||||
bls _080792E2
|
||||
b _08079414
|
||||
_080792E2:
|
||||
lsls r0, 2
|
||||
ldr r1, _080792F0 @ =_080792F4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080792EC: .4byte gTasks+0x8
|
||||
_080792F0: .4byte _080792F4
|
||||
.align 2, 0
|
||||
_080792F4:
|
||||
.4byte _0807930C
|
||||
.4byte _08079344
|
||||
.4byte _08079368
|
||||
.4byte _0807937C
|
||||
.4byte _080793BC
|
||||
.4byte _08079404
|
||||
_0807930C:
|
||||
movs r1, 0x80
|
||||
lsls r1, 6
|
||||
movs r0, 0
|
||||
bl SetGpuRegBits
|
||||
movs r0, 0x48
|
||||
movs r1, 0x3F
|
||||
bl SetGpuReg
|
||||
movs r0, 0x4A
|
||||
movs r1, 0x37
|
||||
bl SetGpuReg
|
||||
movs r0, 0x44
|
||||
movs r1, 0xA0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x40
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x80
|
||||
lsls r0, 7
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl BlendPalettes
|
||||
b _080793AA
|
||||
_08079344:
|
||||
movs r1, 0xC0
|
||||
lsls r1, 1
|
||||
adds r0, r1, 0
|
||||
ldrh r1, [r4, 0x2]
|
||||
adds r0, r1
|
||||
strh r0, [r4, 0x2]
|
||||
lsls r0, 16
|
||||
asrs r0, 20
|
||||
strh r0, [r4, 0x4]
|
||||
cmp r0, 0xEF
|
||||
ble _08079364
|
||||
movs r0, 0xF0
|
||||
strh r0, [r4, 0x4]
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
_08079364:
|
||||
ldrh r1, [r4, 0x4]
|
||||
b _080793F6
|
||||
_08079368:
|
||||
ldrh r0, [r4, 0x6]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x6]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x9
|
||||
ble _08079414
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x6]
|
||||
b _080793AA
|
||||
_0807937C:
|
||||
movs r0, 0x4A
|
||||
movs r1, 0x3B
|
||||
bl SetGpuReg
|
||||
ldr r1, _080793B4 @ =0x0000f0f0
|
||||
movs r0, 0x40
|
||||
bl SetGpuReg
|
||||
ldr r1, _080793B8 @ =0xffff1000
|
||||
movs r0, 0x2
|
||||
movs r2, 0
|
||||
bl ChangeBgX
|
||||
movs r0, 0x80
|
||||
lsls r0, 8
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl BlendPalettes
|
||||
movs r1, 0xF0
|
||||
lsls r1, 4
|
||||
adds r0, r1, 0
|
||||
strh r0, [r4, 0x2]
|
||||
_080793AA:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _08079414
|
||||
.align 2, 0
|
||||
_080793B4: .4byte 0x0000f0f0
|
||||
_080793B8: .4byte 0xffff1000
|
||||
_080793BC:
|
||||
ldr r1, _08079400 @ =0xfffffe80
|
||||
adds r0, r1, 0
|
||||
ldrh r1, [r4, 0x2]
|
||||
adds r0, r1
|
||||
strh r0, [r4, 0x2]
|
||||
lsls r0, 16
|
||||
asrs r0, 20
|
||||
strh r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
bgt _080793DA
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x4]
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
_080793DA:
|
||||
movs r0, 0x4
|
||||
ldrsh r1, [r4, r0]
|
||||
negs r1, r1
|
||||
lsls r1, 8
|
||||
movs r0, 0x2
|
||||
movs r2, 0
|
||||
bl ChangeBgX
|
||||
ldrh r1, [r4, 0x4]
|
||||
lsls r1, 8
|
||||
movs r0, 0xF0
|
||||
orrs r1, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
_080793F6:
|
||||
movs r0, 0x40
|
||||
bl SetGpuReg
|
||||
b _08079414
|
||||
.align 2, 0
|
||||
_08079400: .4byte 0xfffffe80
|
||||
_08079404:
|
||||
movs r1, 0x80
|
||||
lsls r1, 6
|
||||
movs r0, 0
|
||||
bl ClearGpuRegBits
|
||||
adds r0, r5, 0
|
||||
bl DestroyTask
|
||||
_08079414:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80792C8
|
||||
|
||||
thumb_func_start sub_807941C
|
||||
sub_807941C: @ 807941C
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
lsls r0, r2, 2
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
ldr r1, _08079460 @ =gTasks+0x8
|
||||
adds r5, r0, r1
|
||||
movs r1, 0x1E
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, 0
|
||||
beq _08079444
|
||||
ldr r0, _08079464 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08079444
|
||||
movs r0, 0x1
|
||||
strh r0, [r5, 0x1C]
|
||||
_08079444:
|
||||
movs r3, 0x1C
|
||||
ldrsh r0, [r5, r3]
|
||||
cmp r0, 0
|
||||
beq _08079468
|
||||
ldr r0, _08079464 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08079468
|
||||
adds r0, r2, 0
|
||||
bl DestroyTask
|
||||
b _08079510
|
||||
.align 2, 0
|
||||
_08079460: .4byte gTasks+0x8
|
||||
_08079464: .4byte gPaletteFade
|
||||
_08079468:
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r2, [r5, 0x2]
|
||||
cmp r0, 0
|
||||
bne _08079476
|
||||
movs r0, 0x3C
|
||||
b _08079478
|
||||
_08079476:
|
||||
movs r0, 0x1E
|
||||
_08079478:
|
||||
strh r0, [r5, 0x4]
|
||||
ldrh r0, [r5]
|
||||
adds r0, 0x1
|
||||
strh r0, [r5]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
movs r3, 0x4
|
||||
ldrsh r1, [r5, r3]
|
||||
cmp r0, r1
|
||||
blt _08079510
|
||||
movs r0, 0
|
||||
strh r0, [r5]
|
||||
movs r0, 0x1
|
||||
eors r0, r2
|
||||
strh r0, [r5, 0x2]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
beq _080794CC
|
||||
ldr r2, _080794C0 @ =gPlttBufferUnfaded
|
||||
ldr r4, _080794C4 @ =gUnknown_8EAE094
|
||||
ldr r1, _080794C8 @ =gPlttBufferFaded
|
||||
movs r0, 0xF1
|
||||
lsls r0, 1
|
||||
adds r1, r0
|
||||
adds r2, r0
|
||||
movs r3, 0x4
|
||||
_080794AC:
|
||||
ldrh r0, [r4, 0xC]
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r4, 0xC]
|
||||
strh r0, [r1]
|
||||
adds r1, 0x2
|
||||
adds r2, 0x2
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _080794AC
|
||||
b _080794F2
|
||||
.align 2, 0
|
||||
_080794C0: .4byte gPlttBufferUnfaded
|
||||
_080794C4: .4byte gUnknown_8EAE094
|
||||
_080794C8: .4byte gPlttBufferFaded
|
||||
_080794CC:
|
||||
movs r3, 0
|
||||
ldr r2, _08079518 @ =gPlttBufferUnfaded
|
||||
ldr r0, _0807951C @ =gUnknown_8EAE094
|
||||
ldr r1, _08079520 @ =gPlttBufferFaded
|
||||
adds r4, r0, 0x2
|
||||
movs r0, 0xF1
|
||||
lsls r0, 1
|
||||
adds r1, r0
|
||||
adds r2, r0
|
||||
_080794DE:
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r1]
|
||||
adds r4, 0x2
|
||||
adds r1, 0x2
|
||||
adds r2, 0x2
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x4
|
||||
ble _080794DE
|
||||
_080794F2:
|
||||
movs r1, 0x1C
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, 0
|
||||
beq _08079510
|
||||
movs r0, 0x80
|
||||
lsls r0, 8
|
||||
ldr r2, _08079524 @ =gPaletteFade
|
||||
ldrh r1, [r2, 0x4]
|
||||
lsls r1, 21
|
||||
lsrs r1, 27
|
||||
ldrh r2, [r2, 0x6]
|
||||
lsls r2, 17
|
||||
lsrs r2, 17
|
||||
bl BlendPalettes
|
||||
_08079510:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08079518: .4byte gPlttBufferUnfaded
|
||||
_0807951C: .4byte gUnknown_8EAE094
|
||||
_08079520: .4byte gPlttBufferFaded
|
||||
_08079524: .4byte gPaletteFade
|
||||
thumb_func_end sub_807941C
|
||||
|
||||
thumb_func_start sub_8079528
|
||||
sub_8079528: @ 8079528
|
||||
push {lr}
|
||||
ldr r0, _08079548 @ =sub_807941C
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _0807954C @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
movs r0, 0x1
|
||||
strh r0, [r1, 0x26]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08079548: .4byte sub_807941C
|
||||
_0807954C: .4byte gTasks
|
||||
thumb_func_end sub_8079528
|
||||
|
||||
thumb_func_start sub_8079550
|
||||
sub_8079550: @ 8079550
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r5, r0, 16
|
||||
asrs r4, r5, 16
|
||||
cmp r4, 0
|
||||
blt _08079574
|
||||
ldr r3, _08079618 @ =gScanlineEffectRegBuffers
|
||||
lsls r2, r4, 1
|
||||
ldr r0, _0807961C @ =gScanlineEffect
|
||||
ldrb r1, [r0, 0x14]
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 7
|
||||
adds r2, r0
|
||||
adds r2, r3
|
||||
movs r0, 0x10
|
||||
strh r0, [r2]
|
||||
_08079574:
|
||||
movs r3, 0
|
||||
mov r8, r5
|
||||
adds r6, r4, 0
|
||||
ldr r0, _08079618 @ =gScanlineEffectRegBuffers
|
||||
mov r12, r0
|
||||
ldr r7, _0807961C @ =gScanlineEffect
|
||||
movs r5, 0xF
|
||||
lsls r2, r6, 1
|
||||
adds r4, r2, 0
|
||||
_08079586:
|
||||
adds r0, r6, r3
|
||||
cmp r0, 0
|
||||
blt _0807959A
|
||||
ldrb r1, [r7, 0x14]
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 7
|
||||
adds r0, r4, r0
|
||||
add r0, r12
|
||||
strh r5, [r0]
|
||||
_0807959A:
|
||||
subs r0, r6, r3
|
||||
cmp r0, 0
|
||||
blt _080795AE
|
||||
ldrb r1, [r7, 0x14]
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 7
|
||||
adds r0, r2, r0
|
||||
add r0, r12
|
||||
strh r5, [r0]
|
||||
_080795AE:
|
||||
subs r5, 0x1
|
||||
subs r2, 0x2
|
||||
adds r4, 0x2
|
||||
adds r3, 0x1
|
||||
cmp r3, 0xF
|
||||
ble _08079586
|
||||
mov r1, r8
|
||||
asrs r0, r1, 16
|
||||
adds r3, r0, 0
|
||||
adds r3, 0x10
|
||||
cmp r3, 0x9F
|
||||
bgt _080795E6
|
||||
ldr r6, _08079618 @ =gScanlineEffectRegBuffers
|
||||
ldr r5, _0807961C @ =gScanlineEffect
|
||||
movs r4, 0
|
||||
_080795CC:
|
||||
cmp r3, 0
|
||||
blt _080795E0
|
||||
lsls r2, r3, 1
|
||||
ldrb r1, [r5, 0x14]
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 7
|
||||
adds r2, r0
|
||||
adds r2, r6
|
||||
strh r4, [r2]
|
||||
_080795E0:
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x9F
|
||||
ble _080795CC
|
||||
_080795E6:
|
||||
mov r1, r8
|
||||
asrs r0, r1, 16
|
||||
adds r3, r0, 0
|
||||
subs r3, 0x10
|
||||
cmp r3, 0
|
||||
blt _0807960E
|
||||
ldr r6, _08079618 @ =gScanlineEffectRegBuffers
|
||||
ldr r5, _0807961C @ =gScanlineEffect
|
||||
movs r4, 0
|
||||
_080795F8:
|
||||
lsls r2, r3, 1
|
||||
ldrb r1, [r5, 0x14]
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 7
|
||||
adds r2, r0
|
||||
adds r2, r6
|
||||
strh r4, [r2]
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _080795F8
|
||||
_0807960E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08079618: .4byte gScanlineEffectRegBuffers
|
||||
_0807961C: .4byte gScanlineEffect
|
||||
thumb_func_end sub_8079550
|
||||
|
||||
thumb_func_start sub_8079620
|
||||
sub_8079620: @ 8079620
|
||||
push {lr}
|
||||
ldr r1, _08079644 @ =gScanlineEffect
|
||||
ldrb r0, [r1, 0x15]
|
||||
cmp r0, 0
|
||||
beq _0807962E
|
||||
movs r0, 0x3
|
||||
strb r0, [r1, 0x15]
|
||||
_0807962E:
|
||||
movs r0, 0x50
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08079644: .4byte gScanlineEffect
|
||||
thumb_func_end sub_8079620
|
||||
|
||||
thumb_func_start sub_8079648
|
||||
sub_8079648: @ 8079648
|
||||
push {r4,lr}
|
||||
ldr r0, _080796BC @ =sub_80792C8
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0xFF
|
||||
beq _0807965C
|
||||
bl DestroyTask
|
||||
_0807965C:
|
||||
bl sub_8071898
|
||||
bl ResetPaletteFadeControl
|
||||
ldr r0, _080796C0 @ =gUnknown_8EAB6C4
|
||||
movs r2, 0xD0
|
||||
lsls r2, 1
|
||||
movs r1, 0
|
||||
bl LoadPalette
|
||||
ldr r0, _080796C4 @ =gUnknown_8EAD5E8
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r4, _080796C8 @ =gUnknown_8EAE094
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xF0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xE0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
bl ResetBgPositions
|
||||
movs r1, 0xE0
|
||||
lsls r1, 8
|
||||
movs r0, 0
|
||||
bl ClearGpuRegBits
|
||||
movs r0, 0x1
|
||||
bl ShowBg
|
||||
movs r0, 0x2
|
||||
bl ShowBg
|
||||
movs r0, 0
|
||||
bl ShowBg
|
||||
movs r0, 0x3
|
||||
bl ShowBg
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080796BC: .4byte sub_80792C8
|
||||
_080796C0: .4byte gUnknown_8EAB6C4
|
||||
_080796C4: .4byte gUnknown_8EAD5E8
|
||||
_080796C8: .4byte gUnknown_8EAE094
|
||||
thumb_func_end sub_8079648
|
||||
|
||||
thumb_func_start sub_80796CC
|
||||
sub_80796CC: @ 80796CC
|
||||
push {lr}
|
||||
bl UpdatePaletteFade
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080796DE
|
||||
ldr r0, _080796E4 @ =sub_80F55A0
|
||||
bl SetMainCallback2
|
||||
_080796DE:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080796E4: .4byte sub_80F55A0
|
||||
thumb_func_end sub_80796CC
|
||||
|
||||
thumb_func_start sub_80796E8
|
||||
sub_80796E8: @ 80796E8
|
||||
push {lr}
|
||||
bl UpdatePaletteFade
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080796FE
|
||||
bl m4aMPlayAllStop
|
||||
ldr r0, _08079704 @ =mb_berry_fix_serve
|
||||
bl SetMainCallback2
|
||||
_080796FE:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08079704: .4byte mb_berry_fix_serve
|
||||
thumb_func_end sub_80796E8
|
||||
|
||||
thumb_func_start sub_8079708
|
||||
sub_8079708: @ 8079708
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
ldr r4, _08079728 @ =gUnknown_83BFB9C
|
||||
_0807970E:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x3
|
||||
bls _0807970E
|
||||
ldr r0, _0807972C @ =gUnknown_83BFBBC
|
||||
bl LoadSpritePalettes
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08079728: .4byte gUnknown_83BFB9C
|
||||
_0807972C: .4byte gUnknown_83BFBBC
|
||||
thumb_func_end sub_8079708
|
||||
|
||||
thumb_func_start sub_8079730
|
||||
sub_8079730: @ 8079730
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x2E
|
||||
ldrh r0, [r4, 0x2E]
|
||||
ldrh r1, [r2, 0x2]
|
||||
subs r0, r1
|
||||
strh r0, [r4, 0x2E]
|
||||
lsls r0, 16
|
||||
asrs r0, 20
|
||||
strh r0, [r4, 0x20]
|
||||
movs r1, 0x8
|
||||
negs r1, r1
|
||||
cmp r0, r1
|
||||
blt _08079774
|
||||
ldrh r0, [r2, 0x6]
|
||||
ldrh r1, [r2, 0x4]
|
||||
adds r0, r1
|
||||
strh r0, [r2, 0x4]
|
||||
lsls r0, 16
|
||||
asrs r0, 20
|
||||
strh r0, [r4, 0x22]
|
||||
subs r0, 0x10
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0xB8
|
||||
bhi _08079774
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x3F
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0807977C
|
||||
_08079774:
|
||||
adds r0, r4, 0
|
||||
bl DestroySprite
|
||||
b _080797A6
|
||||
_0807977C:
|
||||
ldrh r1, [r2, 0xE]
|
||||
movs r3, 0xE
|
||||
ldrsh r0, [r2, r3]
|
||||
cmp r0, 0
|
||||
beq _080797A6
|
||||
subs r0, r1, 0x1
|
||||
strh r0, [r2, 0xE]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _080797A6
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl StartSpriteAnim
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x3E
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_080797A6:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8079730
|
||||
|
||||
thumb_func_start sub_80797AC
|
||||
sub_80797AC: @ 80797AC
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_BERRY_FIX_PROGRAM_H
|
||||
#define GUARD_BERRY_FIX_PROGRAM_H
|
||||
|
||||
void mb_berry_fix_serve(void);
|
||||
|
||||
#endif //GUARD_BERRY_FIX_PROGRAM_H
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_CLEAR_SAVE_DATA_SCREEN_H
|
||||
#define GUARD_CLEAR_SAVE_DATA_SCREEN_H
|
||||
|
||||
void sub_80F55A0(void);
|
||||
|
||||
#endif //GUARD_CLEAR_SAVE_DATA_SCREEN_H
|
||||
+1
-1
@@ -968,7 +968,7 @@ extern const u8 gUnknown_8EAD390[];
|
||||
extern const u16 gUnknown_8EAD5E8[];
|
||||
extern const u8 gUnknown_8EAD608[];
|
||||
extern const u8 gUnknown_8EADEE4[];
|
||||
extern const u16 gUnknown_8EAE094[];
|
||||
extern u16 gUnknown_8EAE094[]; // If this is const, title_screen.c does not match
|
||||
extern const u8 gUnknown_8EAE0B4[];
|
||||
extern const u8 gUnknown_8EAE374[];
|
||||
extern const u16 gUnknown_8EAE488[];
|
||||
|
||||
@@ -75,6 +75,7 @@ void TintPalette_GrayScale2(u16 *, u16);
|
||||
void TintPalette_SepiaTone(u16 *, u16);
|
||||
void sub_80717A8(u32, s8, u8, u8, u16, u8, u8);
|
||||
bool32 sub_807185C(u8);
|
||||
void sub_8071898(void);
|
||||
|
||||
extern struct PaletteFadeControl gPaletteFade;
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
#include "new_game.h"
|
||||
#include "save.h"
|
||||
#include "main_menu.h"
|
||||
#include "clear_save_data_screen.h"
|
||||
#include "berry_fix_program.h"
|
||||
#include "decompress.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
|
||||
@@ -626,3 +629,231 @@ void sub_80791C0(s16 * data)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80792C8(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
|
||||
SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0x00, 0x3F));
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0x00, 0x37));
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0xA0);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0x00);
|
||||
BlendPalettes(0x00004000, 0, RGB_BLACK);
|
||||
data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
data[1] += 0x180;
|
||||
data[2] = data[1] >> 4;
|
||||
if (data[2] >= 0xF0)
|
||||
{
|
||||
data[2] = 0xF0;
|
||||
data[0]++;
|
||||
}
|
||||
SetGpuReg(REG_OFFSET_WIN0H, data[2]);
|
||||
break;
|
||||
case 2:
|
||||
data[3]++;
|
||||
if (data[3] >= 10)
|
||||
{
|
||||
data[3] = 0;
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 0x3B));
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0xF0F0);
|
||||
ChangeBgX(2, -0xF000, 0);
|
||||
BlendPalettes(0x00008000, 0, RGB_BLACK);
|
||||
data[1] = 0xF00;
|
||||
data[0]++;
|
||||
break;
|
||||
case 4:
|
||||
data[1] -= 0x180;
|
||||
data[2] = data[1] >> 4;
|
||||
if (data[2] <= 0)
|
||||
{
|
||||
data[2] = 0;
|
||||
data[0]++;
|
||||
}
|
||||
ChangeBgX(2, -data[2] << 8, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, (data[2] << 8) | 0xF0);
|
||||
break;
|
||||
case 5:
|
||||
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_807941C(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
s32 i;
|
||||
|
||||
if (data[15] && gPaletteFade.active)
|
||||
data[14] = 1;
|
||||
if (data[14] && !gPaletteFade.active)
|
||||
DestroyTask(taskId);
|
||||
else
|
||||
{
|
||||
if (!data[1])
|
||||
data[2] = 60;
|
||||
else
|
||||
data[2] = 30;
|
||||
data[0]++;
|
||||
if (data[0] >= data[2])
|
||||
{
|
||||
data[0] = 0;
|
||||
data[1] ^= 1;
|
||||
if (data[1])
|
||||
{
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[6];
|
||||
gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[6];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[1 + i];
|
||||
gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[1 + i];
|
||||
}
|
||||
}
|
||||
if (data[14])
|
||||
{
|
||||
BlendPalettes(0x00008000, gPaletteFade.y, gPaletteFade.blendColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8079528(void)
|
||||
{
|
||||
u8 taskId = FindTaskIdByFunc(sub_807941C);
|
||||
gTasks[taskId].data[15] = TRUE;
|
||||
}
|
||||
|
||||
void sub_8079550(s16 a0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (a0 >= 0)
|
||||
{
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0] = 16;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
if (a0 + i >= 0)
|
||||
{
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0 + i] = 15 - i;
|
||||
}
|
||||
if (a0 - i >= 0)
|
||||
{
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0 - i] = 15 - i;
|
||||
}
|
||||
}
|
||||
for (i = a0 + 16; i < 160; i++)
|
||||
{
|
||||
if (i >= 0)
|
||||
{
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = 0;
|
||||
}
|
||||
}
|
||||
for (i = a0 - 16; i >= 0; i--)
|
||||
{
|
||||
if (i >= 0)
|
||||
{
|
||||
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8079620(void)
|
||||
{
|
||||
if (gScanlineEffect.state)
|
||||
gScanlineEffect.state = 3;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
}
|
||||
|
||||
void sub_8079648(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
taskId = FindTaskIdByFunc(sub_80792C8);
|
||||
if (taskId != 0xFF)
|
||||
DestroyTask(taskId);
|
||||
|
||||
sub_8071898();
|
||||
ResetPaletteFadeControl();
|
||||
LoadPalette(gUnknown_8EAB6C4, 0x00, 0x1A0);
|
||||
LoadPalette(gUnknown_8EAD5E8, 0xD0, 0x20);
|
||||
LoadPalette(gUnknown_8EAE094, 0xF0, 0x20);
|
||||
LoadPalette(gUnknown_8EAE094, 0xE0, 0x20);
|
||||
ResetBgPositions();
|
||||
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON);
|
||||
ShowBg(1);
|
||||
ShowBg(2);
|
||||
ShowBg(0);
|
||||
ShowBg(3);
|
||||
}
|
||||
|
||||
void sub_80796CC(void)
|
||||
{
|
||||
if (!UpdatePaletteFade())
|
||||
SetMainCallback2(sub_80F55A0);
|
||||
}
|
||||
|
||||
void sub_80796E8(void)
|
||||
{
|
||||
if (!UpdatePaletteFade())
|
||||
{
|
||||
m4aMPlayAllStop();
|
||||
SetMainCallback2(mb_berry_fix_serve);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8079708(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < NELEMS(gUnknown_83BFB9C); i++)
|
||||
LoadCompressedSpriteSheet(&gUnknown_83BFB9C[i]);
|
||||
LoadSpritePalettes(gUnknown_83BFBBC);
|
||||
}
|
||||
|
||||
void sub_8079730(struct Sprite * sprite)
|
||||
{
|
||||
s16 * data = sprite->data;
|
||||
sprite->data[0] -= data[1];
|
||||
sprite->pos1.x = sprite->data[0] >> 4;
|
||||
if (sprite->pos1.x < -8)
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
return;
|
||||
}
|
||||
data[2] += data[3];
|
||||
sprite->pos1.y = data[2] >> 4;
|
||||
if (sprite->pos1.y < 0x10 || sprite->pos1.y > 0xc8)
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
return;
|
||||
}
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
return;
|
||||
}
|
||||
if (data[7] != 0 && --data[7] == 0)
|
||||
{
|
||||
StartSpriteAnim(sprite, 0);
|
||||
sprite->invisible = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user