mirror of
https://github.com/pret/pokefirered.git
synced 2026-06-02 22:04:27 -05:00
title_screen: data and code thru sub_8078C9C
This commit is contained in:
parent
23d917f7c8
commit
ea8f529f2d
|
|
@ -5,468 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start CB2_InitTitleScreen
|
||||
CB2_InitTitleScreen: @ 8078914
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0xC
|
||||
ldr r0, _08078930 @ =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
ldrb r6, [r0]
|
||||
cmp r6, 0x1
|
||||
beq _080789F0
|
||||
cmp r6, 0x1
|
||||
bgt _08078934
|
||||
cmp r6, 0
|
||||
beq _08078946
|
||||
b _0807893A
|
||||
.align 2, 0
|
||||
_08078930: .4byte gMain
|
||||
_08078934:
|
||||
cmp r6, 0x2
|
||||
bne _0807893A
|
||||
b _08078AC0
|
||||
_0807893A:
|
||||
ldr r0, _080789D0 @ =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
_08078946:
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
bl StartTimer1
|
||||
ldr r0, _080789D4 @ =gHeap
|
||||
movs r1, 0xE0
|
||||
lsls r1, 9
|
||||
bl InitHeap
|
||||
bl ResetTasks
|
||||
bl ResetSpriteData
|
||||
bl FreeAllSpritePalettes
|
||||
bl ResetPaletteFade
|
||||
bl sub_8078B34
|
||||
add r1, sp, 0x4
|
||||
movs r0, 0
|
||||
strh r0, [r1]
|
||||
ldr r1, _080789D8 @ =0x040000d4
|
||||
add r0, sp, 0x4
|
||||
str r0, [r1]
|
||||
movs r0, 0xC0
|
||||
lsls r0, 19
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _080789DC @ =0x8100c000
|
||||
str r0, [r1, 0x8]
|
||||
ldr r0, [r1, 0x8]
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x8]
|
||||
add r0, sp, 0x8
|
||||
str r0, [r1]
|
||||
movs r0, 0xE0
|
||||
lsls r0, 19
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _080789E0 @ =0x85000100
|
||||
str r0, [r1, 0x8]
|
||||
ldr r0, [r1, 0x8]
|
||||
add r0, sp, 0x4
|
||||
strh r2, [r0]
|
||||
str r0, [r1]
|
||||
movs r0, 0xA0
|
||||
lsls r0, 19
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _080789E4 @ =0x81000200
|
||||
str r0, [r1, 0x8]
|
||||
ldr r0, [r1, 0x8]
|
||||
movs r0, 0
|
||||
bl ResetBgsAndClearDma3BusyFlags
|
||||
ldr r1, _080789E8 @ =gUnknown_83BFB74
|
||||
movs r0, 0
|
||||
movs r2, 0x4
|
||||
bl InitBgsFromTemplates
|
||||
movs r1, 0x82
|
||||
lsls r1, 5
|
||||
movs r0, 0
|
||||
bl SetGpuRegBits
|
||||
ldr r1, _080789EC @ =gUnknown_2037F30
|
||||
movs r0, 0xFF
|
||||
strb r0, [r1]
|
||||
b _08078B18
|
||||
.align 2, 0
|
||||
_080789D0: .4byte gMain
|
||||
_080789D4: .4byte gHeap
|
||||
_080789D8: .4byte 0x040000d4
|
||||
_080789DC: .4byte 0x8100c000
|
||||
_080789E0: .4byte 0x85000100
|
||||
_080789E4: .4byte 0x81000200
|
||||
_080789E8: .4byte gUnknown_83BFB74
|
||||
_080789EC: .4byte gUnknown_2037F30
|
||||
_080789F0:
|
||||
ldr r0, _08078A94 @ =gUnknown_8EAB6C4
|
||||
movs r2, 0xD0
|
||||
lsls r2, 1
|
||||
movs r1, 0
|
||||
bl LoadPalette
|
||||
ldr r1, _08078A98 @ =gUnknown_8EAB8C4
|
||||
movs r4, 0
|
||||
str r4, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
ldr r1, _08078A9C @ =gUnknown_8EAD390
|
||||
str r6, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
ldr r0, _08078AA0 @ =gUnknown_8EAD5E8
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r1, _08078AA4 @ =gUnknown_8EAD608
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
ldr r1, _08078AA8 @ =gUnknown_8EADEE4
|
||||
str r6, [sp]
|
||||
movs r0, 0x1
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
ldr r5, _08078AAC @ =gUnknown_8EAE094
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xF0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r1, _08078AB0 @ =gUnknown_8EAE0B4
|
||||
str r4, [sp]
|
||||
movs r0, 0x2
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
ldr r1, _08078AB4 @ =gUnknown_8EAE374
|
||||
str r6, [sp]
|
||||
movs r0, 0x2
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xE0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r1, _08078AB8 @ =gUnknown_83BF58C
|
||||
str r4, [sp]
|
||||
movs r0, 0x3
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
ldr r1, _08078ABC @ =gUnknown_83BF5A8
|
||||
str r6, [sp]
|
||||
movs r0, 0x3
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
bl sub_8079708
|
||||
b _08078B18
|
||||
.align 2, 0
|
||||
_08078A94: .4byte gUnknown_8EAB6C4
|
||||
_08078A98: .4byte gUnknown_8EAB8C4
|
||||
_08078A9C: .4byte gUnknown_8EAD390
|
||||
_08078AA0: .4byte gUnknown_8EAD5E8
|
||||
_08078AA4: .4byte gUnknown_8EAD608
|
||||
_08078AA8: .4byte gUnknown_8EADEE4
|
||||
_08078AAC: .4byte gUnknown_8EAE094
|
||||
_08078AB0: .4byte gUnknown_8EAE0B4
|
||||
_08078AB4: .4byte gUnknown_8EAE374
|
||||
_08078AB8: .4byte gUnknown_83BF58C
|
||||
_08078ABC: .4byte gUnknown_83BF5A8
|
||||
_08078AC0:
|
||||
bl FreeTempTileDataBuffersIfPossible
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08078B26
|
||||
ldr r0, _08078B00 @ =0x0000ffff
|
||||
movs r1, 0x10
|
||||
movs r2, 0
|
||||
bl BlendPalettes
|
||||
ldr r0, _08078B04 @ =sub_8078C24
|
||||
movs r1, 0x4
|
||||
bl CreateTask
|
||||
ldr r0, _08078B08 @ =sub_8078BEC
|
||||
movs r1, 0x2
|
||||
bl CreateTask
|
||||
ldr r1, _08078B0C @ =gUnknown_2037F30
|
||||
strb r0, [r1]
|
||||
ldr r0, _08078B10 @ =sub_8078BB4
|
||||
bl SetVBlankCallback
|
||||
ldr r0, _08078B14 @ =sub_8078B9C
|
||||
bl SetMainCallback2
|
||||
movs r0, 0x8B
|
||||
lsls r0, 1
|
||||
bl m4aSongNumStart
|
||||
b _08078B26
|
||||
.align 2, 0
|
||||
_08078B00: .4byte 0x0000ffff
|
||||
_08078B04: .4byte sub_8078C24
|
||||
_08078B08: .4byte sub_8078BEC
|
||||
_08078B0C: .4byte gUnknown_2037F30
|
||||
_08078B10: .4byte sub_8078BB4
|
||||
_08078B14: .4byte sub_8078B9C
|
||||
_08078B18:
|
||||
ldr r1, _08078B30 @ =gMain
|
||||
movs r0, 0x87
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
_08078B26:
|
||||
add sp, 0xC
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078B30: .4byte gMain
|
||||
thumb_func_end CB2_InitTitleScreen
|
||||
|
||||
thumb_func_start sub_8078B34
|
||||
sub_8078B34: @ 8078B34
|
||||
push {lr}
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x50
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x52
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x12
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x14
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x16
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x18
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x1A
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x1C
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x1E
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8078B34
|
||||
|
||||
thumb_func_start sub_8078B9C
|
||||
sub_8078B9C: @ 8078B9C
|
||||
push {lr}
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
bl UpdatePaletteFade
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8078B9C
|
||||
|
||||
thumb_func_start sub_8078BB4
|
||||
sub_8078BB4: @ 8078BB4
|
||||
push {lr}
|
||||
bl LoadOam
|
||||
bl ProcessSpriteCopyRequests
|
||||
bl TransferPlttBuffer
|
||||
bl ScanlineEffect_InitHBlankDmaTransfer
|
||||
ldr r1, _08078BE4 @ =gUnknown_2037F30
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xFF
|
||||
beq _08078BE0
|
||||
ldr r2, _08078BE8 @ =gTasks
|
||||
adds r1, r0, 0
|
||||
lsls r0, r1, 2
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r0, r2
|
||||
ldrh r1, [r0, 0x8]
|
||||
adds r1, 0x1
|
||||
strh r1, [r0, 0x8]
|
||||
_08078BE0:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078BE4: .4byte gUnknown_2037F30
|
||||
_08078BE8: .4byte gTasks
|
||||
thumb_func_end sub_8078BB4
|
||||
|
||||
thumb_func_start sub_8078BEC
|
||||
sub_8078BEC: @ 8078BEC
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
lsls r0, r2, 2
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
ldr r1, _08078C18 @ =gTasks+0x8
|
||||
adds r0, r1
|
||||
movs r3, 0
|
||||
ldrsh r1, [r0, r3]
|
||||
ldr r0, _08078C1C @ =0x00000a8b
|
||||
cmp r1, r0
|
||||
ble _08078C12
|
||||
ldr r1, _08078C20 @ =gUnknown_2037F30
|
||||
movs r0, 0xFF
|
||||
strb r0, [r1]
|
||||
adds r0, r2, 0
|
||||
bl DestroyTask
|
||||
_08078C12:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078C18: .4byte gTasks+0x8
|
||||
_08078C1C: .4byte 0x00000a8b
|
||||
_08078C20: .4byte gUnknown_2037F30
|
||||
thumb_func_end sub_8078BEC
|
||||
|
||||
thumb_func_start sub_8078C24
|
||||
sub_8078C24: @ 8078C24
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _08078C6C @ =gTasks+0x8
|
||||
adds r4, r1, r0
|
||||
ldr r0, _08078C70 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0xB
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08078C74
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x3
|
||||
beq _08078C74
|
||||
cmp r0, 0x4
|
||||
beq _08078C74
|
||||
cmp r0, 0x5
|
||||
beq _08078C74
|
||||
bl sub_8079620
|
||||
bl sub_8079648
|
||||
movs r2, 0xA
|
||||
ldrsh r0, [r4, r2]
|
||||
bl sub_8079A10
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl sub_8078C90
|
||||
b _08078C86
|
||||
.align 2, 0
|
||||
_08078C6C: .4byte gTasks+0x8
|
||||
_08078C70: .4byte gMain
|
||||
_08078C74:
|
||||
ldr r0, _08078C8C @ =gUnknown_83BFB84
|
||||
movs r2, 0
|
||||
ldrsh r1, [r4, r2]
|
||||
lsls r1, 2
|
||||
adds r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, 0
|
||||
bl _call_via_r1
|
||||
_08078C86:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078C8C: .4byte gUnknown_83BFB84
|
||||
thumb_func_end sub_8078C24
|
||||
|
||||
thumb_func_start sub_8078C90
|
||||
sub_8078C90: @ 8078C90
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
movs r2, 0
|
||||
strh r2, [r0, 0x2]
|
||||
strh r1, [r0]
|
||||
bx lr
|
||||
thumb_func_end sub_8078C90
|
||||
|
||||
thumb_func_start sub_8078C9C
|
||||
sub_8078C9C: @ 8078C9C
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
sub sp, 0x10
|
||||
mov r8, r0
|
||||
movs r0, 0
|
||||
bl HideBg
|
||||
movs r0, 0x1
|
||||
bl ShowBg
|
||||
movs r0, 0x2
|
||||
bl ShowBg
|
||||
movs r0, 0x3
|
||||
bl ShowBg
|
||||
ldr r0, _08078D14 @ =0x04000054
|
||||
str r0, [sp]
|
||||
ldr r0, _08078D18 @ =0xa2600001
|
||||
str r0, [sp, 0x4]
|
||||
mov r1, sp
|
||||
movs r5, 0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1, 0x8]
|
||||
mov r0, sp
|
||||
strb r5, [r0, 0x9]
|
||||
add r0, sp, 0xC
|
||||
strh r5, [r0]
|
||||
ldr r4, _08078D1C @ =gScanlineEffectRegBuffers
|
||||
ldr r6, _08078D20 @ =0x010000a0
|
||||
adds r1, r4, 0
|
||||
adds r2, r6, 0
|
||||
bl CpuSet
|
||||
mov r0, sp
|
||||
adds r0, 0xE
|
||||
strh r5, [r0]
|
||||
movs r1, 0xF0
|
||||
lsls r1, 3
|
||||
adds r4, r1
|
||||
adds r1, r4, 0
|
||||
adds r2, r6, 0
|
||||
bl CpuSet
|
||||
ldr r0, [sp]
|
||||
ldr r1, [sp, 0x4]
|
||||
ldr r2, [sp, 0x8]
|
||||
bl ScanlineEffect_SetParams
|
||||
mov r0, r8
|
||||
movs r1, 0x1
|
||||
bl sub_8078C90
|
||||
add sp, 0x10
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078D14: .4byte 0x04000054
|
||||
_08078D18: .4byte 0xa2600001
|
||||
_08078D1C: .4byte gScanlineEffectRegBuffers
|
||||
_08078D20: .4byte 0x010000a0
|
||||
thumb_func_end sub_8078C9C
|
||||
|
||||
thumb_func_start sub_8078D24
|
||||
sub_8078D24: @ 8078D24
|
||||
push {r4,lr}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_83BFBE4:: @ 83BFBE4
|
||||
.incbin "baserom.gba", 0x3BFBE4, 0x2FD8
|
||||
|
||||
gUnknown_83C2BBC:: @ 83C2BBC
|
||||
.incbin "baserom.gba", 0x3C2BBC, 0x4
|
||||
|
||||
|
|
|
|||
|
|
@ -16379,11 +16379,12 @@ gUnknown_8EAE0B4:: @ 8EAE0B4
|
|||
gUnknown_8EAE374:: @ 8EAE374
|
||||
.incbin "baserom.gba", 0xEAE374, 0x114
|
||||
|
||||
@ title_screen
|
||||
gUnknown_8EAE488:: @ 8EAE488
|
||||
.incbin "baserom.gba", 0xEAE488, 0x20 @UNKNOWN
|
||||
.incbin "graphics/title_screen/unk_8eae488.gbapal"
|
||||
|
||||
gUnknown_8EAE4A8:: @ 8EAE4A8
|
||||
.incbin "baserom.gba", 0xEAE4A8, 0x80
|
||||
.incbin "graphics/title_screen/unk_8eae4a8.4bpp.lz"
|
||||
|
||||
gUnknown_8EAE528:: @ 8EAE528
|
||||
.incbin "baserom.gba", 0xEAE528, 0x20 @UNKNOWN
|
||||
|
|
|
|||
BIN
data/graphics/title_screen/unk_83BF58C.png
Normal file
BIN
data/graphics/title_screen/unk_83BF58C.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 78 B |
BIN
data/graphics/title_screen/unk_83BF5A8.bin
Normal file
BIN
data/graphics/title_screen/unk_83BF5A8.bin
Normal file
Binary file not shown.
BIN
data/graphics/title_screen/unk_83bf64c.png
Normal file
BIN
data/graphics/title_screen/unk_83bf64c.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 188 B |
BIN
data/graphics/title_screen/unk_83bf79c.png
Normal file
BIN
data/graphics/title_screen/unk_83bf79c.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 539 B |
BIN
data/graphics/title_screen/unk_83bfa14.png
Normal file
BIN
data/graphics/title_screen/unk_83bfa14.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 150 B |
|
|
@ -1,34 +1,88 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.section .rodata
|
||||
.align 2
|
||||
gUnknown_83BF58C:: @ 83BF58C
|
||||
.incbin "baserom.gba", 0x3BF58C, 0x1C
|
||||
gUnknown_83BF64C:: @ 83BF64C
|
||||
.incbin "data/graphics/title_screen/unk_83bf64c.4bpp.lz"
|
||||
|
||||
gUnknown_83BF5A8:: @ 83BF5A8
|
||||
.incbin "baserom.gba", 0x3BF5A8, 0x55C
|
||||
gUnknown_83BF77C::
|
||||
.incbin "data/graphics/title_screen/unk_83bf77c.gbapal"
|
||||
|
||||
gUnknown_83BF79C::
|
||||
.incbin "data/graphics/title_screen/unk_83bf79c.4bpp.lz"
|
||||
|
||||
gUnknown_83BFA14::
|
||||
.incbin "data/graphics/title_screen/unk_83bfa14.4bpp.lz"
|
||||
|
||||
gOamData_83BFAB4::
|
||||
.4byte 0x40000000, 0x00000c00
|
||||
|
||||
gSpriteAnims_83BFABC::
|
||||
obj_image_anim_frame 0x0, 0x3
|
||||
obj_image_anim_frame 0x4, 0x6
|
||||
obj_image_anim_frame 0x8, 0x6
|
||||
obj_image_anim_frame 0xc, 0x6
|
||||
obj_image_anim_frame 0x10, 0x6
|
||||
obj_image_anim_frame 0x14, 0x6
|
||||
obj_image_anim_frame 0x18, 0x6
|
||||
obj_image_anim_frame 0x1c, 0x6
|
||||
obj_image_anim_frame 0x20, 0x6
|
||||
obj_image_anim_frame 0x24, 0x6
|
||||
obj_image_anim_end
|
||||
|
||||
gSpriteAnims_83BFAE8::
|
||||
obj_image_anim_frame 0x18, 0x6
|
||||
obj_image_anim_frame 0x1c, 0x6
|
||||
obj_image_anim_frame 0x20, 0x6
|
||||
obj_image_anim_frame 0x24, 0x6
|
||||
obj_image_anim_end
|
||||
|
||||
gSpriteAnimTable_83BFAFC::
|
||||
.4byte gSpriteAnims_83BFABC
|
||||
.4byte gSpriteAnims_83BFAE8
|
||||
|
||||
gUnknown_83BFB04:: @ 83BFB04
|
||||
.incbin "baserom.gba", 0x3BFB04, 0x18
|
||||
spr_template 0, 0, gOamData_83BFAB4, gSpriteAnimTable_83BFAFC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_83BFB1C:: @ 83BFB1C
|
||||
.incbin "baserom.gba", 0x3BFB1C, 0x20
|
||||
spr_template 1, 0, gOamData_83BFAB4, gSpriteAnimTable_83BFAFC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gOamData_83BFB34::
|
||||
.4byte 0xc0008000, 0x00000000
|
||||
|
||||
gUnknown_83BFB3C:: @ 83BFB3C
|
||||
.incbin "baserom.gba", 0x3BFB3C, 0x20
|
||||
spr_template 2, 2, gOamData_83BFB34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gOamData_83BFB54::
|
||||
.4byte 0xc0000800, 0x00000000
|
||||
|
||||
gUnknown_83BFB5C:: @ 83BFB5C
|
||||
.incbin "baserom.gba", 0x3BFB5C, 0x18
|
||||
spr_template 3, 2, gOamData_83BFB54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_83BFB74:: @ 83BFB74
|
||||
.incbin "baserom.gba", 0x3BFB74, 0x10
|
||||
.4byte 0x000009f0
|
||||
.4byte 0x000011e5
|
||||
.4byte 0x000021da
|
||||
.4byte 0x000031cf
|
||||
|
||||
gUnknown_83BFB84:: @ 83BFB84
|
||||
.incbin "baserom.gba", 0x3BFB84, 0x18
|
||||
.4byte sub_8078C9C
|
||||
.4byte sub_8078D24
|
||||
.4byte sub_8078DA4
|
||||
.4byte sub_8078FC4
|
||||
.4byte sub_80790CC
|
||||
.4byte sub_80791C0
|
||||
|
||||
gUnknown_83BFB9C:: @ 83BFB9C
|
||||
.incbin "baserom.gba", 0x3BFB9C, 0x20
|
||||
obj_tiles gUnknown_83BF79C, 0x500, 0
|
||||
obj_tiles gUnknown_83BFA14, 0x500, 1
|
||||
obj_tiles gUnknown_8EAE4A8, 0x400, 2
|
||||
obj_tiles gUnknown_83BF64C, 0x800, 3
|
||||
|
||||
gUnknown_83BFBBC:: @ 83BFBBC
|
||||
.incbin "baserom.gba", 0x3BFBBC, 0x18
|
||||
obj_pal gUnknown_83BF77C, 0
|
||||
obj_pal gUnknown_8EAE488, 2
|
||||
null_obj_pal
|
||||
|
||||
gUnknown_83BFBD4:: @ 83BFBD4
|
||||
.incbin "baserom.gba", 0x3BFBD4, 0x2FE8
|
||||
.incbin "baserom.gba", 0x3BFBD4, 0xF
|
||||
|
|
|
|||
BIN
graphics/title_screen/unk_8eae4a8.png
Normal file
BIN
graphics/title_screen/unk_8eae4a8.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 148 B |
|
|
@ -65,6 +65,7 @@ void ClearPokemonCrySongs(void);
|
|||
void RestoreSerialTimer3IntrHandlers(void);
|
||||
void SetVBlankCounter1Ptr(u32 *ptr);
|
||||
void DisableVBlankCounter1(void);
|
||||
void StartTimer1(void);
|
||||
|
||||
extern const char RomHeaderGameCode[4];
|
||||
extern const char RomHeaderSoftwareVersion;
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ SECTIONS {
|
|||
src/task.o(.text);
|
||||
asm/reshow_battle_screen.o(.text);
|
||||
asm/battle_anim_status_effects.o(.text);
|
||||
src/title_screen.o(.text);
|
||||
asm/title_screen.o(.text);
|
||||
src/reset_save_heap.o(.text);
|
||||
asm/field_weather.o(.text);
|
||||
|
|
@ -405,6 +406,7 @@ SECTIONS {
|
|||
data/battle_anim.o(.rodata);
|
||||
data/map_events.o(.rodata);
|
||||
data/battle_anim_status_effects.o(.rodata);
|
||||
src/title_screen.o(.rodata);
|
||||
data/title_screen.o(.rodata);
|
||||
data/field_weather.o(.rodata);
|
||||
data/data_835B488.o(.rodata);
|
||||
|
|
|
|||
192
src/title_screen.c
Normal file
192
src/title_screen.c
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
#include "global.h"
|
||||
#include "malloc.h"
|
||||
#include "palette.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "bg.h"
|
||||
#include "task.h"
|
||||
#include "main.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "m4a.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
EWRAM_DATA u8 gUnknown_2037F30 = 0;
|
||||
|
||||
void sub_8078B34(void);
|
||||
void sub_8078B9C(void);
|
||||
void sub_8078BB4(void);
|
||||
void sub_8078BEC(u8 taskId);
|
||||
void sub_8078C24(u8 taskId);
|
||||
void sub_8078C90(s16 * data, u8 a1);
|
||||
void sub_8078C9C(s16 * data);
|
||||
void sub_8078D24(s16 * data);
|
||||
void sub_8078DA4(s16 * data);
|
||||
void sub_8078FC4(s16 * data);
|
||||
void sub_80790CC(s16 * data);
|
||||
void sub_80791C0(s16 * data);
|
||||
void sub_8079708(void);
|
||||
void sub_8079620(void);
|
||||
void sub_8079648(void);
|
||||
void sub_8079A10(s16 a0);
|
||||
|
||||
const u8 gUnknown_83BF58C[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz");
|
||||
const u8 gUnknown_83BF5A8[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz");
|
||||
extern const struct BgTemplate gUnknown_83BFB74[4];
|
||||
extern const void (*const gUnknown_83BFB84[])(s16 * data);
|
||||
|
||||
/*graphics.h*/
|
||||
extern const u16 gUnknown_8EAB6C4[];
|
||||
extern const u8 gUnknown_8EAB8C4[];
|
||||
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 const u8 gUnknown_8EAE0B4[];
|
||||
extern const u8 gUnknown_8EAE374[];
|
||||
|
||||
void CB2_InitTitleScreen(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
default:
|
||||
gMain.state = 0;
|
||||
// fallthrough
|
||||
case 0:
|
||||
SetVBlankCallback(NULL);
|
||||
StartTimer1();
|
||||
InitHeap(gHeap, HEAP_SIZE);
|
||||
ResetTasks();
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetPaletteFade();
|
||||
sub_8078B34();
|
||||
DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
|
||||
DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
|
||||
DmaFill16(3, 0, (void *)PLTT, PLTT_SIZE);
|
||||
ResetBgsAndClearDma3BusyFlags(FALSE);
|
||||
InitBgsFromTemplates(0, gUnknown_83BFB74, NELEMS(gUnknown_83BFB74));
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
|
||||
gUnknown_2037F30 = 0xFF;
|
||||
break;
|
||||
case 1:
|
||||
LoadPalette(gUnknown_8EAB6C4, 0, 0x1A0);
|
||||
DecompressAndCopyTileDataToVram(0, gUnknown_8EAB8C4, 0, 0, 0);
|
||||
DecompressAndCopyTileDataToVram(0, gUnknown_8EAD390, 0, 0, 1);
|
||||
LoadPalette(gUnknown_8EAD5E8, 0xD0, 0x20);
|
||||
DecompressAndCopyTileDataToVram(1, gUnknown_8EAD608, 0, 0, 0);
|
||||
DecompressAndCopyTileDataToVram(1, gUnknown_8EADEE4, 0, 0, 1);
|
||||
LoadPalette(gUnknown_8EAE094, 0xF0, 0x20);
|
||||
DecompressAndCopyTileDataToVram(2, gUnknown_8EAE0B4, 0, 0, 0);
|
||||
DecompressAndCopyTileDataToVram(2, gUnknown_8EAE374, 0, 0, 1);
|
||||
LoadPalette(gUnknown_8EAE094, 0xE0, 0x20);
|
||||
DecompressAndCopyTileDataToVram(3, gUnknown_83BF58C, 0, 0, 0);
|
||||
DecompressAndCopyTileDataToVram(3, gUnknown_83BF5A8, 0, 0, 1);
|
||||
sub_8079708();
|
||||
break;
|
||||
case 2:
|
||||
if (!FreeTempTileDataBuffersIfPossible())
|
||||
{
|
||||
BlendPalettes(0x0000FFFF, 0x10, RGB_BLACK);
|
||||
CreateTask(sub_8078C24, 4);
|
||||
gUnknown_2037F30 = CreateTask(sub_8078BEC, 2);
|
||||
SetVBlankCallback(sub_8078BB4);
|
||||
SetMainCallback2(sub_8078B9C);
|
||||
m4aSongNumStart(BGM_FRLG_TITLE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
gMain.state++;
|
||||
}
|
||||
|
||||
void sub_8078B34(void)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG3HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
|
||||
}
|
||||
|
||||
void sub_8078B9C(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_8078BB4(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
ScanlineEffect_InitHBlankDmaTransfer();
|
||||
|
||||
if (gUnknown_2037F30 != 0xFF)
|
||||
gTasks[gUnknown_2037F30].data[0]++;
|
||||
}
|
||||
|
||||
void sub_8078BEC(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
if (data[0] >= 2700)
|
||||
{
|
||||
gUnknown_2037F30 = 0xFF;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8078C24(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON | START_BUTTON)
|
||||
&& data[0] != 3 && data[0] != 4 && data[0] != 5)
|
||||
{
|
||||
sub_8079620();
|
||||
sub_8079648();
|
||||
sub_8079A10(data[5]);
|
||||
sub_8078C90(data, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_83BFB84[data[0]](data);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8078C90(s16 * data, u8 a1)
|
||||
{
|
||||
data[1] = 0;
|
||||
data[0] = a1;
|
||||
}
|
||||
|
||||
void sub_8078C9C(s16 * data)
|
||||
{
|
||||
struct ScanlineEffectParams params;
|
||||
|
||||
HideBg(0);
|
||||
ShowBg(1);
|
||||
ShowBg(2);
|
||||
ShowBg(3);
|
||||
|
||||
params.dmaDest = (volatile void *)REG_ADDR_BLDY;
|
||||
params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
|
||||
params.initState = 1;
|
||||
params.unused9 = 0;
|
||||
|
||||
CpuFill16(0, gScanlineEffectRegBuffers[0], 0x140);
|
||||
CpuFill16(0, gScanlineEffectRegBuffers[1], 0x140);
|
||||
|
||||
ScanlineEffect_SetParams(params);
|
||||
|
||||
sub_8078C90(data, 1);
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user