title_screen: through sub_8079730
This commit is contained in:
@@ -5,642 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start sub_80797AC
|
||||||
sub_80797AC: @ 80797AC
|
sub_80797AC: @ 80797AC
|
||||||
push {r4-r7,lr}
|
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 u16 gUnknown_8EAD5E8[];
|
||||||
extern const u8 gUnknown_8EAD608[];
|
extern const u8 gUnknown_8EAD608[];
|
||||||
extern const u8 gUnknown_8EADEE4[];
|
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_8EAE0B4[];
|
||||||
extern const u8 gUnknown_8EAE374[];
|
extern const u8 gUnknown_8EAE374[];
|
||||||
extern const u16 gUnknown_8EAE488[];
|
extern const u16 gUnknown_8EAE488[];
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ void TintPalette_GrayScale2(u16 *, u16);
|
|||||||
void TintPalette_SepiaTone(u16 *, u16);
|
void TintPalette_SepiaTone(u16 *, u16);
|
||||||
void sub_80717A8(u32, s8, u8, u8, u16, u8, u8);
|
void sub_80717A8(u32, s8, u8, u8, u16, u8, u8);
|
||||||
bool32 sub_807185C(u8);
|
bool32 sub_807185C(u8);
|
||||||
|
void sub_8071898(void);
|
||||||
|
|
||||||
extern struct PaletteFadeControl gPaletteFade;
|
extern struct PaletteFadeControl gPaletteFade;
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
#include "new_game.h"
|
#include "new_game.h"
|
||||||
#include "save.h"
|
#include "save.h"
|
||||||
#include "main_menu.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/songs.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
|
|
||||||
@@ -626,3 +629,231 @@ void sub_80791C0(s16 * data)
|
|||||||
break;
|
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