through sub_812F33C

This commit is contained in:
scnorton
2019-04-10 10:16:20 -04:00
parent dbd4851087
commit bf7084cb60
8 changed files with 356 additions and 503 deletions
-480
View File
@@ -5,486 +5,6 @@
.text
thumb_func_start sub_812F0B0
sub_812F0B0: @ 812F0B0
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0812F10C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812F162
ldr r0, _0812F110 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _0812F162
movs r3, 0x1
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _0812F120
ldr r1, _0812F114 @ =gTasks
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
adds r0, r1
strh r3, [r0, 0x26]
ldr r0, _0812F118 @ =sOakSpeechResources
ldr r0, [r0]
ldrh r0, [r0, 0x12]
adds r4, r2, 0
cmp r0, 0x1
bhi _0812F150
movs r0, 0x2
bl stdpal_get
ldrh r2, [r0, 0x1E]
ldr r0, _0812F11C @ =0xffffdfff
movs r1, 0x1
negs r1, r1
str r2, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
b _0812F150
.align 2, 0
_0812F10C: .4byte gPaletteFade
_0812F110: .4byte gMain
_0812F114: .4byte gTasks
_0812F118: .4byte sOakSpeechResources
_0812F11C: .4byte 0xffffdfff
_0812F120:
ldr r0, _0812F16C @ =sOakSpeechResources
ldr r0, [r0]
ldrh r0, [r0, 0x12]
cmp r0, 0
beq _0812F162
ldr r1, _0812F170 @ =gTasks
lsls r4, r5, 2
adds r0, r4, r5
lsls r0, 3
adds r0, r1
ldr r1, _0812F174 @ =0x0000ffff
strh r1, [r0, 0x26]
movs r0, 0x2
bl stdpal_get
ldrh r2, [r0, 0x1E]
ldr r0, _0812F178 @ =0xffffdfff
movs r1, 0x1
negs r1, r1
str r2, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_0812F150:
movs r0, 0x5
bl PlaySE
ldr r0, _0812F170 @ =gTasks
adds r1, r4, r5
lsls r1, 3
adds r1, r0
ldr r0, _0812F17C @ =sub_812F180
str r0, [r1]
_0812F162:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0812F16C: .4byte sOakSpeechResources
_0812F170: .4byte gTasks
_0812F174: .4byte 0x0000ffff
_0812F178: .4byte 0xffffdfff
_0812F17C: .4byte sub_812F180
thumb_func_end sub_812F0B0
thumb_func_start sub_812F180
sub_812F180: @ 812F180
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0
mov r8, r0
ldr r0, _0812F1B0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812F260
ldr r1, _0812F1B4 @ =sOakSpeechResources
ldr r0, [r1]
ldrh r0, [r0, 0x12]
adds r5, r1, 0
cmp r0, 0
bne _0812F1B8
movs r1, 0x1
mov r8, r1
b _0812F1C4
.align 2, 0
_0812F1B0: .4byte gPaletteFade
_0812F1B4: .4byte sOakSpeechResources
_0812F1B8:
cmp r0, 0
blt _0812F1C4
cmp r0, 0x2
bgt _0812F1C4
movs r2, 0x3
mov r8, r2
_0812F1C4:
ldr r2, [r5]
ldr r1, _0812F244 @ =gTasks
lsls r3, r7, 2
adds r0, r3, r7
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x26]
ldrh r1, [r2, 0x12]
adds r0, r1
movs r1, 0
strh r0, [r2, 0x12]
lsls r0, 16
lsrs r0, 16
mov r9, r3
cmp r0, 0x2
bhi _0812F24C
movs r6, 0
cmp r1, r8
bcs _0812F234
_0812F1EA:
ldr r0, [r5]
lsls r4, r6, 1
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
movs r1, 0
strh r1, [r0]
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, r8
bcc _0812F1EA
_0812F234:
ldr r0, _0812F244 @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldr r0, _0812F248 @ =sub_812EF50
str r0, [r1]
b _0812F260
.align 2, 0
_0812F244: .4byte gTasks
_0812F248: .4byte sub_812EF50
_0812F24C:
movs r0, 0x1
negs r0, r0
str r1, [sp]
movs r1, 0x2
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _0812F270 @ =sub_812F274
str r0, [r4]
_0812F260:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F270: .4byte sub_812F274
thumb_func_end sub_812F180
thumb_func_start sub_812F274
sub_812F274: @ 812F274
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r6, 0
ldr r0, _0812F32C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812F320
ldr r5, _0812F330 @ =sOakSpeechResources
_0812F292:
ldr r0, [r5]
lsls r4, r6, 1
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
movs r7, 0
strh r7, [r0]
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x2
bls _0812F292
movs r0, 0x1E
str r0, [sp]
movs r0, 0x12
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _0812F334 @ =gTasks
mov r1, r8
lsls r4, r1, 2
add r4, r8
lsls r4, 3
adds r4, r0
ldrb r0, [r4, 0x12]
bl sub_8006398
ldr r0, _0812F330 @ =sOakSpeechResources
ldr r0, [r0]
strh r7, [r0, 0x14]
adds r0, 0x14
movs r1, 0
movs r2, 0x2
bl LoadPalette
movs r0, 0x20
strh r0, [r4, 0xE]
ldr r0, _0812F338 @ =sub_812F33C
str r0, [r4]
_0812F320:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F32C: .4byte gPaletteFade
_0812F330: .4byte sOakSpeechResources
_0812F334: .4byte gTasks
_0812F338: .4byte sub_812F33C
thumb_func_end sub_812F274
thumb_func_start sub_812F33C
sub_812F33C: @ 812F33C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x18
lsls r0, 24
lsrs r7, r0, 24
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
mov r8, r0
ldr r0, _0812F370 @ =gTasks+0x8
mov r9, r0
mov r5, r8
add r5, r9
movs r0, 0
str r0, [sp, 0x14]
ldrh r0, [r5, 0x6]
movs r1, 0x6
ldrsh r6, [r5, r1]
cmp r6, 0
beq _0812F374
subs r0, 0x1
strh r0, [r5, 0x6]
b _0812F476
.align 2, 0
_0812F370: .4byte gTasks+0x8
_0812F374:
movs r0, 0xA2
lsls r0, 1
bl PlayBGM
bl sub_810F71C
ldr r0, _0812F484 @ =gUnknown_8415D48
movs r1, 0
movs r2, 0x1
bl sub_810F5E8
ldr r0, _0812F488 @ =gUnknown_8460BA8
add r1, sp, 0x14
bl malloc_and_decompress
adds r1, r0, 0
ldr r4, _0812F48C @ =sOakSpeechResources
ldr r0, [r4]
str r1, [r0, 0x8]
movs r0, 0x1E
str r0, [sp]
movs r0, 0x13
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0
movs r3, 0x2
bl CopyToBgTilemapBufferRect
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, [r4]
ldr r0, [r0, 0x8]
bl Free
ldr r0, [r4]
str r6, [r0, 0x8]
ldr r0, _0812F490 @ =gUnknown_8462EC0
bl AddWindow
strh r0, [r5, 0x1C]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrb r0, [r5, 0x1C]
movs r1, 0
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x1C]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, [r4]
movs r1, 0
strh r6, [r0, 0x12]
ldr r0, _0812F494 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
strb r1, [r0]
movs r0, 0x10
strh r0, [r5, 0x1E]
ldrb r0, [r5, 0x1C]
movs r1, 0x1
str r1, [sp]
str r6, [sp, 0x4]
ldr r1, _0812F498 @ =gUnknown_8462EEC
str r1, [sp, 0x8]
str r6, [sp, 0xC]
ldr r1, _0812F49C @ =gUnknown_8462EF0
ldr r1, [r1]
str r1, [sp, 0x10]
movs r1, 0x2
movs r2, 0x3
movs r3, 0x5
bl AddTextPrinterParametrized2
str r6, [sp]
movs r0, 0
movs r1, 0xE2
movs r2, 0x91
movs r3, 0
bl sub_8006300
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xA]
ldr r4, _0812F4A0 @ =gSprites
movs r1, 0xA
ldrsh r0, [r5, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r2, [r1, 0x1]
movs r3, 0xD
negs r3, r3
adds r0, r3, 0
ands r0, r2
movs r2, 0x4
orrs r0, r2
strb r0, [r1, 0x1]
movs r2, 0xA
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x5]
ands r3, r1
strb r3, [r0, 0x5]
adds r0, r7, 0
movs r1, 0
bl sub_8130FD4
movs r0, 0x1
negs r0, r0
str r6, [sp]
movs r1, 0x2
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
mov r0, r9
subs r0, 0x8
add r0, r8
ldr r1, _0812F4A4 @ =sub_812F4A8
str r1, [r0]
_0812F476:
add sp, 0x18
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F484: .4byte gUnknown_8415D48
_0812F488: .4byte gUnknown_8460BA8
_0812F48C: .4byte sOakSpeechResources
_0812F490: .4byte gUnknown_8462EC0
_0812F494: .4byte gMain
_0812F498: .4byte gUnknown_8462EEC
_0812F49C: .4byte gUnknown_8462EF0
_0812F4A0: .4byte gSprites
_0812F4A4: .4byte sub_812F4A8
thumb_func_end sub_812F33C
thumb_func_start sub_812F4A8
sub_812F4A8: @ 812F4A8
push {r4-r7,lr}
+9 -7
View File
@@ -5,9 +5,6 @@
.align 2
// oak_speech
gUnknown_8460BA8:: @ 8460BA8
.incbin "baserom.gba", 0x460BA8, 0xFC
gUnknown_8460CA4:: @ 8460CA4
.incbin "baserom.gba", 0x460CA4, 0x44
@@ -83,7 +80,7 @@ gUnknown_8462EB4:: @ 8462EB4
.4byte gUnknown_8462E94
gUnknown_8462EC0:: @ 8462EC0
.incbin "baserom.gba", 0x462EC0, 0x8
window_template 0x00, 0x01, 0x04, 0x1c, 0x0f, 0x0f, 0x0001
gUnknown_8462EC8:: @ 8462EC8
.incbin "baserom.gba", 0x462EC8, 0x8
@@ -94,14 +91,19 @@ gUnknown_8462ED0:: @ 8462ED0
gUnknown_8462ED8:: @ 8462ED8
.incbin "baserom.gba", 0x462ED8, 0x10
.align 2
gUnknown_8462EE8:: @ 8462EE8
.incbin "baserom.gba", 0x462EE8, 0x4
.byte 0x00, 0x01, 0x02
.align 2
gUnknown_8462EEC:: @ 8462EEC
.incbin "baserom.gba", 0x462EEC, 0x4
.byte 0x00, 0x02, 0x03
.align 2
gUnknown_8462EF0:: @ 8462EF0
.incbin "baserom.gba", 0x462EF0, 0xC
.4byte gUnknown_81C5A04
.4byte gUnknown_81C5AEB
.4byte gUnknown_81C5BB9
gUnknown_8462EFC:: @ 8462EFC
.incbin "baserom.gba", 0x462EFC, 0x18
+205 -15
View File
@@ -429,49 +429,239 @@ gUnknown_81C566A:: @ 81C566A
.incbin "baserom.gba", 0x1C566A, 0xE5
gUnknown_81C574F:: @ 81C574F
.incbin "baserom.gba", 0x1C574F, 0xDE
.string "NEW NAME$"
gUnknown_81C5758:: @ 81C5758
.string "GREEN$"
gUnknown_81C575E:: @ 81C575E
.string "RED$"
gUnknown_81C5762:: @ 81C5762
.string "LEAF$"
gUnknown_81C5767:: @ 81C5767
.string "FIRE$"
gUnknown_81C576C:: @ 81C576C
.string "GARY$"
gUnknown_81C5771:: @ 81C5771
.string "KAZ$"
gUnknown_81C5775:: @ 81C5775
.string "TORU$"
gUnknown_81C577A:: @ 81C577A
.string "ASH$"
gUnknown_81C577E:: @ 81C577E
.string "KENE$"
gUnknown_81C5783:: @ 81C5783
.string "GEKI$"
gUnknown_81C5788:: @ 81C5788
.string "JAK$"
gUnknown_81C578C:: @ 81C578C
.string "JANNE$"
gUnknown_81C5792:: @ 81C5792
.string "JONN$"
gUnknown_81C5797:: @ 81C5797
.string "KAMON$"
gUnknown_81C579D:: @ 81C579D
.string "KARL$"
gUnknown_81C57A2:: @ 81C57A2
.string "TAYLOR$"
gUnknown_81C57A9:: @ 81C57A9
.string "OSCAR$"
gUnknown_81C57AF:: @ 81C57AF
.string "HIRO$"
gUnknown_81C57B4:: @ 81C57B4
.string "MAX$"
gUnknown_81C57B8:: @ 81C57B8
.string "JON$"
gUnknown_81C57BC:: @ 81C57BC
.string "RALPH$"
gUnknown_81C57C2:: @ 81C57C2
.string "KAY$"
gUnknown_81C57C6:: @ 81C57C6
.string "TOSH$"
gUnknown_81C57CB:: @ 81C57CB
.string "ROAK$"
gUnknown_81C57D0:: @ 81C57D0
.string "OMI$"
gUnknown_81C57D4:: @ 81C57D4
.string "JODI$"
gUnknown_81C57D9:: @ 81C57D9
.string "AMANDA$"
gUnknown_81C57E0:: @ 81C57E0
.string "HILLARY$"
gUnknown_81C57E8:: @ 81C57E8
.string "MAKEY$"
gUnknown_81C57EE:: @ 81C57EE
.string "MICHI$"
gUnknown_81C57F4:: @ 81C57F4
.string "PAULA$"
gUnknown_81C57FA:: @ 81C57FA
.string "JUNE$"
gUnknown_81C57FF:: @ 81C57FF
.string "CASSIE$"
gUnknown_81C5806:: @ 81C5806
.string "REY$"
gUnknown_81C580A:: @ 81C580A
.string "SEDA$"
gUnknown_81C580F:: @ 81C580F
.string "KIKO$"
gUnknown_81C5814:: @ 81C5814
.string "MINA$"
gUnknown_81C5819:: @ 81C5819
.string "NORIE$"
gUnknown_81C581F:: @ 81C581F
.string "SAI$"
gUnknown_81C5823:: @ 81C5823
.string "MOMO$"
gUnknown_81C5828:: @ 81C5828
.string "SUZI$"
gUnknown_81C582D:: @ 81C582D
.incbin "baserom.gba", 0x1C582D, 0x1A8
.string "The various buttons will be explained in\n"
.string "the order of their importance.$"
gUnknown_81C5875:: @ 81C5875
.string "Moves the main character.\n"
.string "Also used to choose various data\n"
.string "headings.$"
gUnknown_81C58BA:: @ 81C58BA
.string "Used to confirm a choice, check\n"
.string "things, chat, and scroll text.$"
gUnknown_81C58F9:: @ 81C58F9
.string "Used to exit, cancel a choice,\n"
.string "and cancel a mode.$"
gUnknown_81C592B:: @ 81C592B
.string "Press this button to open the\n"
.string "MENU.$"
gUnknown_81C594F:: @ 81C594F
.string "Used to shift items and to use\n"
.string "a registered item.$"
gUnknown_81C5981:: @ 81C5981
.string "If you need help playing the\n"
.string "game, or on how to do things,\n"
.string "press the L or R Button.$"
gUnknown_81C59D5:: @ 81C59D5
.incbin "baserom.gba", 0x1C59D5, 0x2A3
.string "Now tell me. Are you a boy?\n"
.string "Or are you a girl?$"
gUnknown_81C5A04::
.string "In the world which you are about to\n"
.string "enter, you will embark on a grand\n"
.string "adventure with you as the hero.\n"
.string "\n"
.string "Speak to people and check things\n"
.string "wherever you go, be it towns, roads,\n"
.string "or caves. Gather information and\n"
.string "hints from every source.$"
gUnknown_81C5AEB::
.string "New paths will open to you by helping\n"
.string "people in need, overcoming challenges,\n"
.string "and solving mysteries.\n"
.string "\n"
.string "At times, you will be challenged by\n"
.string "others and attacked by wild creatures.\n"
.string "Be brave and keep pushing on.$"
gUnknown_81C5BB9::
.string "Through your adventure, we hope\n"
.string "that you will interact with all sorts\n"
.string "of people and achieve personal growth.\n"
.string "That is our biggest objective.\n"
.string "\n"
.string "Press the A Button, and let your\n"
.string "adventure begin!$"
gUnknown_81C5C78:: @ 81C5C78
.incbin "baserom.gba", 0x1C5C78, 0x8E
.string "Hello, there!\n"
.string "Glad to meet you!\pWelcome to the world of POKéMON!\pMy name is OAK.\pPeople affectionately refer to me\n"
.string "as the POKéMON PROFESSOR.\p$"
gUnknown_81C5D06:: @ 81C5D06
.incbin "baserom.gba", 0x1C5D06, 0xC
.string "This world$"
gUnknown_81C5D12:: @ 81C5D12
.incbin "baserom.gba", 0x1C5D12, 0x39
.string "is inhabited far and wide by\n"
.string "creatures called POKéMON.\p$"
gUnknown_81C5D4B:: @ 81C5D4B
.incbin "baserom.gba", 0x1C5D4B, 0x72
.string "For some people, POKéMON are pets.\n"
.string "Others use them for battling.\pAs for myself\pI study POKéMON as a profession.\p$"
gUnknown_81C5DBD:: @ 81C5DBD
.incbin "baserom.gba", 0x1C5DBD, 0x2D
.string "But first, tell me a little about\n"
.string "yourself.\p$"
gUnknown_81C5DEA:: @ 81C5DEA
.incbin "baserom.gba", 0x1C5DEA, 0x29
.string "Lets begin with your name.\n"
.string "What is it?\p$"
gUnknown_81C5E13:: @ 81C5E13
.incbin "baserom.gba", 0x1C5E13, 0x1B
.string "Right\n"
.string "So your name is {PLAYER}.$"
gUnknown_81C5E2E:: @ 81C5E2E
.incbin "baserom.gba", 0x1C5E2E, 0x63
.string "This is my grandson.\pHes been your rival since you both\n"
.string "were babies.\pErm, what was his name now?$"
gUnknown_81C5E91:: @ 81C5E91
.incbin "baserom.gba", 0x1C5E91, 0x24
.string "Your rivals name, what was it now?$"
gUnknown_81C5EB5:: @ 81C5EB5
.incbin "baserom.gba", 0x1C5EB5, 0x10
.string "Er, was it {RIVAL}?$"
gUnknown_81C5EC5:: @ 81C5EC5
.incbin "baserom.gba", 0x1C5EC5, 0x2F
.string "Thats right! I remember now!\n"
.string "His name is {RIVAL}!\p$"
gUnknown_81C5EF4:: @ 81C5EF4
.incbin "baserom.gba", 0x1C5EF4, 0x75
.string "{PLAYER}!\pYour very own POKéMON legend is\n"
.string "about to unfold!\pA world of dreams and adventures\n"
.string "with POKéMON awaits! Lets go!$"
@ pokedude data
.incbin "baserom.gba", 0x1C5F69, 0x983
+2
View File
@@ -0,0 +1,2 @@
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^                                ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ` a b c d e f   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (p q r s t u v   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` g h i j k l m   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (w x y z { | }   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` n o ƒ „ … †   ` ~  ’ “ ” •  
+1
View File
@@ -41,5 +41,6 @@ void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
void sub_810F558(u8, u8, u8, u8, u16);
void sub_810F650(const u8 *, const u8 *, u8, u32, u8);
void sub_810F5E8(const u8 *, u32, u8);
void sub_810F71C(void);
#endif // GUARD_MENU_H
+1
View File
@@ -27,5 +27,6 @@ void sub_80F6F1C(u8 windowId, bool8 copyNow);
void sub_80F6C6C(void);
void sub_80F6C98(void);
void sub_80F77CC(u16);
void * malloc_and_decompress(const void * src, u32 * size);
#endif // GUARD_NEW_MENU_HELPERS_H
+1
View File
@@ -251,5 +251,6 @@ s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese);
s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese);
void sub_80062B0(struct Sprite *sprite);
u8 sub_8006300(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority);
void sub_8006398(u8 spriteId);
#endif // GUARD_TEXT_H
+137 -1
View File
@@ -17,10 +17,13 @@
#include "event_scripts.h"
#include "scanline_effect.h"
#include "constants/species.h"
#include "constants/songs.h"
struct OakSpeechResources
{
u8 filler_0000[0x12];
u8 filler_0000[0x8];
void * unk_0008;
u8 filler_000C[6];
u16 unk_0012;
u16 unk_0014[3];
u8 filler_001A[5];
@@ -36,6 +39,11 @@ void sub_812E9F8(u8 taskId);
void sub_812EB58(u8 taskId);
void sub_812EEB0(void);
void sub_812F0B0(u8 taskId);
void sub_812F180(u8 taskId);
void sub_812F274(u8 taskId);
void sub_812F33C(u8 taskId);
void sub_812F4A8(u8 taskId);
void sub_8130FD4(u8 taskId, u8 state);
extern const u8 gUnknown_8415D2C[];
extern const u8 gUnknown_8415D48[];
@@ -459,13 +467,17 @@ const u8 gUnknown_845FD54[][5] = {
ALIGNED(4) const u16 gUnknown_8460568[] = INCBIN_U16("data/oak_speech/unk_8460568.gbapal");
const u32 gUnknown_84605E8[] = INCBIN_U32("data/oak_speech/unk_84605E8.4bpp.lz");
const u32 gUnknown_8460BA8[] = INCBIN_U32("data/oak_speech/unk_8460BA8.bin.lz");
extern const u16 gUnknown_8460D94[];
extern const u16 gUnknown_8460E34[];
extern const struct BgTemplate gUnknown_8462E58[3];
extern const struct WindowTemplate *const gUnknown_8462EB4[3];
extern const struct WindowTemplate gUnknown_8462EC0;
extern const struct TextColor gUnknown_8462EE8;
extern const struct TextColor gUnknown_8462EEC;
extern const u8 *const gUnknown_8462EF0[];
extern const u8 *const gUnknown_8463074[];
void sub_812E944(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5)
@@ -708,3 +720,127 @@ void sub_812EF50(u8 taskId)
BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, stdpal_get(2)[15]);
gTasks[taskId].func = sub_812F0B0;
}
void sub_812F0B0(u8 taskId)
{
if (!gPaletteFade.active && JOY_NEW((A_BUTTON | B_BUTTON)))
{
if (JOY_NEW(A_BUTTON))
{
gTasks[taskId].data[15] = 1;
if (sOakSpeechResources->unk_0012 < 2)
{
BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]);
}
}
else
{
if (sOakSpeechResources->unk_0012 != 0)
{
gTasks[taskId].data[15] = -1;
BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]);
}
else
return;
}
}
else
return;
PlaySE(SE_SELECT);
gTasks[taskId].func = sub_812F180;
}
void sub_812F180(u8 taskId)
{
u8 r8 = 0;
u8 i;
if (!gPaletteFade.active)
{
switch (sOakSpeechResources->unk_0012) {
case 0:
r8 = 1;
break;
case 1:
case 2:
r8 = 3;
break;
}
sOakSpeechResources->unk_0012 += gTasks[taskId].data[15];
if (sOakSpeechResources->unk_0012 < 3)
{
for (i = 0; i < r8; i++)
{
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
RemoveWindow(sOakSpeechResources->unk_0014[i]);
sOakSpeechResources->unk_0014[i] = 0;
}
gTasks[taskId].func = sub_812EF50;
}
else
{
BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, 0);
gTasks[taskId].func = sub_812F274;
}
}
}
void sub_812F274(u8 taskId)
{
u8 i = 0;
if (!gPaletteFade.active)
{
for (i = 0; i < 3; i++)
{
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
RemoveWindow(sOakSpeechResources->unk_0014[i]);
sOakSpeechResources->unk_0014[i] = 0;
}
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 18);
CopyBgTilemapBufferToVram(1);
sub_8006398(gTasks[taskId].data[5]);
sOakSpeechResources->unk_0014[0] = RGB_BLACK;
LoadPalette(sOakSpeechResources->unk_0014, 0, 2);
gTasks[taskId].data[3] = 32;
gTasks[taskId].func = sub_812F33C;
}
}
void sub_812F33C(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u32 sp14 = 0;
if (data[3] != 0)
data[3]--;
else
{
PlayBGM(324);
sub_810F71C();
sub_810F5E8(gUnknown_8415D48, 0, 1);
sOakSpeechResources->unk_0008 = malloc_and_decompress(gUnknown_8460BA8, &sp14);
CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19);
CopyBgTilemapBufferToVram(1);
Free(sOakSpeechResources->unk_0008);
sOakSpeechResources->unk_0008 = NULL;
data[14] = AddWindow(&gUnknown_8462EC0);
PutWindowTilemap(data[14]);
FillWindowPixelBuffer(data[14], 0x00);
CopyWindowToVram(data[14], 3);
sOakSpeechResources->unk_0012 = 0;
gMain.state = 0;
data[15] = 16;
AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &gUnknown_8462EEC, 0, gUnknown_8462EF0[0]);
data[5] = sub_8006300(0, 0xe2, 0x91, 0, 0);
gSprites[data[5]].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[data[5]].oam.priority = 0;
sub_8130FD4(taskId, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 2, 16, 0, 0);
gTasks[taskId].func = sub_812F4A8;
}
}