summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokenav_unk_2.s2
-rw-r--r--data/pokenav.s1658
-rw-r--r--data/text/gift_ribbon_descriptions.inc207
-rw-r--r--data/text/ribbon_descriptions.inc84
-rw-r--r--graphics/pokenav/city_maps/lilycove_0.bin4
-rw-r--r--graphics/pokenav/city_maps/lilycove_1.bin4
-rw-r--r--graphics/pokenav/city_maps/mauville_0.bin6
-rw-r--r--graphics/pokenav/city_maps/mauville_1.bin6
-rw-r--r--graphics/pokenav/city_maps/mossdeep_0.bin4
-rw-r--r--graphics/pokenav/city_maps/mossdeep_1.bin4
-rw-r--r--include/strings.h21
-rw-r--r--ld_script.txt5
-rw-r--r--src/data/region_map/city_map_entries.h113
-rw-r--r--src/data/region_map/city_map_tilemaps.h22
-rw-r--r--src/data/text/gift_ribbon_descriptions.h115
-rw-r--r--src/data/text/match_call_messages.h476
-rw-r--r--src/data/text/ribbon_descriptions.h48
-rw-r--r--src/pokenav_unk_10.c71
-rw-r--r--src/pokenav_unk_2.c255
-rwxr-xr-xsrc/pokenav_unk_3.c9
-rwxr-xr-xsrc/pokenav_unk_4.c198
-rwxr-xr-xsrc/pokenav_unk_5.c133
-rw-r--r--src/pokenav_unk_7.c116
-rw-r--r--src/pokenav_unk_8.c78
-rw-r--r--src/pokenav_unk_9.c74
25 files changed, 1690 insertions, 2023 deletions
diff --git a/asm/pokenav_unk_2.s b/asm/pokenav_unk_2.s
index 89a8bde9e..da83ccf55 100644
--- a/asm/pokenav_unk_2.s
+++ b/asm/pokenav_unk_2.s
@@ -943,7 +943,7 @@ sub_81CA0C8: @ 81CA0C8
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
- ldr r1, =gUnknown_08620244
+ ldr r1, =gUnknown_08620240+4
adds r0, r2, r1
subs r1, 0x4
adds r2, r1
diff --git a/data/pokenav.s b/data/pokenav.s
deleted file mode 100644
index 2ed2cf9a0..000000000
--- a/data/pokenav.s
+++ /dev/null
@@ -1,1658 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-// pokenav_unk_2.s
-gUnknown_0861FC78:: @ 861FC78
- .incbin "graphics/pokenav/bg.gbapal"
-
-gUnknown_0861FC98:: @ 861FC98
- .incbin "graphics/pokenav/bg.4bpp.lz"
-
-gUnknown_0861FCAC:: @ 861FCAC
- .incbin "graphics/pokenav/bg.bin.lz"
-
-gUnknown_0861FD4C:: @ 861FD4C
- .incbin "graphics/pokenav/outline.gbapal"
-
-gUnknown_0861FD6C:: @ 861FD6C
- .incbin "graphics/pokenav/outline.4bpp.lz"
-
-gUnknown_0861FFF4:: @ 861FFF4
- .incbin "graphics/pokenav/outline_map.bin.lz"
-
-gUnknown_08620104:: @ 8620104
- .incbin "graphics/pokenav/blue_light.gbapal"
-
-gUnknown_08620124:: @ 8620124
- .incbin "graphics/pokenav/blue_light.4bpp.lz"
-
-gUnknown_08620194:: @ 8620194
- .byte 0xF5, 0x10, 0, 0, 0x7A, 0x21, 0, 0, 0xFF, 0x31, 0, 0
-
-gUnknown_086201A0:: @ 86201A0
- .4byte NULL
- .4byte sub_81C9C6C
- .4byte sub_81C9CA8
- .4byte sub_81C9D44
- .4byte sub_81C9DD8
- .4byte sub_81C9E58
- .4byte sub_81C9EC8
- .4byte sub_81C9EF8
- .4byte sub_81C9F28
-
-gUnknown_086201C4:: @ 86201C4
- .4byte gPokenavOptions_Gfx
- .byte 0, 0x34, 3, 0
- .4byte gUnknown_08620124
- .byte 0, 1, 1, 0
-
-gUnknown_086201D4:: @ 86201D4
- .4byte gPokenavOptions_Pal + 0x0, 4
- .4byte gPokenavOptions_Pal + 0x20, 5
- .4byte gPokenavOptions_Pal + 0x40, 6
- .4byte gPokenavOptions_Pal + 0x60, 7
- .4byte gPokenavOptions_Pal + 0x80, 8
- .4byte gUnknown_08620104, 3
- .4byte 0, 0
-
-gUnknown_0862020C:: @ 862020C
- .2byte 0, 0
-
-gUnknown_08620210:: @ 8620210
- .2byte 0x20, 1
-
-gUnknown_08620214:: @ 8620214
- .2byte 0x40, 4
-
-gUnknown_08620218:: @ 8620218
- .2byte 0x60, 2
-
-gUnknown_0862021C:: @ 862021C
- .2byte 0x80, 3
-
-gUnknown_08620220:: @ 8620220
- .2byte 0xA0, 1
-
-gUnknown_08620224:: @ 8620224
- .2byte 0xC0, 1
-
-gUnknown_08620228:: @ 8620228
- .2byte 0xE0, 4
-
-gUnknown_0862022C:: @ 862022C
- .2byte 0x100, 1
-
-gUnknown_08620230:: @ 8620230
- .2byte 0x120, 2
-
-gUnknown_08620234:: @ 8620234
- .2byte 0x140, 0
-
-gUnknown_08620238:: @ 8620238
- .2byte 0x160, 0
-
-gUnknown_0862023C:: @ 862023C
- .2byte 0x180, 3
-
-gUnknown_08620240:: @ 8620240
- .2byte 0x2A, 0x14
-
-gUnknown_08620244:: @ 8620244
- .4byte gUnknown_0862020C
- .4byte gUnknown_08620210
- .4byte gUnknown_0862021C
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .2byte 0x2A, 0x14
- .4byte gUnknown_0862020C
- .4byte gUnknown_08620210
- .4byte gUnknown_08620214
- .4byte gUnknown_0862021C
- .4byte NULL
- .4byte NULL
- .2byte 0x2A, 0x14
- .4byte gUnknown_0862020C
- .4byte gUnknown_08620210
- .4byte gUnknown_08620214
- .4byte gUnknown_08620218
- .4byte gUnknown_0862021C
- .4byte NULL
- .2byte 0x38, 0x14
- .4byte gUnknown_08620220
- .4byte gUnknown_08620224
- .4byte gUnknown_0862023C
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .2byte 0x28, 0x10
- .4byte gUnknown_08620228
- .4byte gUnknown_0862022C
- .4byte gUnknown_08620230
- .4byte gUnknown_08620234
- .4byte gUnknown_08620238
- .4byte gUnknown_0862023C
-
-gUnknown_086202CC:: @ 86202CC
- window_template 1, 3, 17, 0x18, 2, 1, 8
-
-gUnknown_086202D4:: @ 86202D4
- .4byte gUnknown_085EBCC5
- .4byte gUnknown_085EBCE8
- .4byte gUnknown_085EBD01
- .4byte gUnknown_085EBD1C
- .4byte gUnknown_085EBD34
- .4byte gUnknown_085EBD83
- .4byte gUnknown_085EBDA2
- .4byte gUnknown_085EBDBF
- .4byte gUnknown_085EBDDB
- .4byte gUnknown_085EBDEE
- .4byte gUnknown_085EBE06
- .4byte gUnknown_085EBE19
- .4byte gUnknown_085EBE2D
- .4byte gUnknown_085EBE41
-
-gUnknown_0862030C:: @ 862030C
- .byte 6, 8, 7
-
-gUnknown_0862030F:: @ 862030F
- .byte 6, 8, 7, 0, 0
-
-gUnknown_08620314:: @ 8620314
- .byte 0, 0x40, 0, 0x80, 0, 8, 0, 0
-
-gUnknown_0862031C:: @ 862031C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
-gUnknown_0862032C:: @ 862032C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0x12
- obj_rot_scal_anim_end
-
-gUnknown_08620344:: @ 8620344
- .4byte gUnknown_0862031C
- .4byte gUnknown_0862032C
-
-gUnknown_0862034C:: @ 862034C
- spr_template 3, 4, gUnknown_08620314, gDummySpriteAnimTable, NULL, gUnknown_08620344, SpriteCallbackDummy
-
-gUnknown_08620364:: @ 8620364
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x800
- .2byte 0
-
-gUnknown_0862036C:: @ 862036C
- spr_template 1, 3, gUnknown_08620364, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_08620384:: @ 8620384
- .4byte 0x4000040
- .4byte 0xa2600001
- .byte 1, 0, 0, 0
-
-// pokenav_unk_3.s
-gUnknown_08620390:: @ 8620390
- .string "Becalm fighting emotions.$"
-
-gUnknown_086203AA:: @ 86203AA
- .string "Fragrant GRASS POKéMON.$"
-
-gUnknown_086203C2:: @ 86203C2
- .string "Soothing aromas make the$"
-
-gUnknown_086203DB:: @ 86203DB
- .string "body and mind healthy.$"
-
-gUnknown_086203F2:: @ 86203F2
- .string "I'm not very good at this.$"
-
-gUnknown_0862040D:: @ 862040D
- .string "Ruin-exploration partners.$"
-
-gUnknown_08620428:: @ 8620428
- .string "I am searching for undersea$"
-
-gUnknown_08620444:: @ 8620444
- .string "ruins and relics.$"
-
-gUnknown_08620456:: @ 8620456
- .string "Overwhelm with power!$"
-
-gUnknown_0862046C:: @ 862046C
- .string "Craggy ROCK POKéMON.$"
-
-gUnknown_08620481:: @ 8620481
- .string "In search of ancient lore,$"
-
-gUnknown_0862049C:: @ 862049C
- .string "I travel the world.$"
-
-gUnknown_086204B0:: @ 86204B0
- .string "I'm going to try hard!$"
-
-gUnknown_086204C7:: @ 86204C7
- .string "Good swimmer POKéMON.$"
-
-gUnknown_086204DD:: @ 86204DD
- .string "I wish I could swim without$"
-
-gUnknown_086204F9:: @ 86204F9
- .string "using an inner tube.$"
-
-gUnknown_0862050E:: @ 862050E
- .string "I don't know. I'll try hard.$"
-
-gUnknown_0862052B:: @ 862052B
- .string "WATER POKéMON are buddies.$"
-
-gUnknown_08620546:: @ 8620546
- .string "It's not like I can't swim.$"
-
-gUnknown_08620562:: @ 8620562
- .string "I just like my inner tube.$"
-
-gUnknown_0862057D:: @ 862057D
- .string "We split our duties.$"
-
-gUnknown_08620592:: @ 8620592
- .string "We like friendly POKéMON.$"
-
-gUnknown_086205AC:: @ 86205AC
- .string "We enjoy POKéMON together$"
-
-gUnknown_086205C6:: @ 86205C6
- .string "as sister and brother.$"
-
-gUnknown_086205DD:: @ 86205DD
- .string "I finish with power moves!$"
-
-gUnknown_086205F8:: @ 86205F8
- .string "A mix of different types.$"
-
-gUnknown_08620612:: @ 8620612
- .string "I aim to become the ultimate$"
-
-gUnknown_0862062F:: @ 862062F
- .string "TRAINER!$"
-
-gUnknown_08620638:: @ 8620638
- .string "Exploit the foe's weakness.$"
-
-gUnknown_08620654:: @ 8620654
- .string "Balance is crucial.$"
-
-gUnknown_08620668:: @ 8620668
- .string "My goal is to become the$"
-
-gUnknown_08620681:: @ 8620681
- .string "POKéMON CHAMPION.$"
-
-gUnknown_08620693:: @ 8620693
- .string "Upset the opponent.$"
-
-gUnknown_086206A7:: @ 86206A7
- .string "Type doesn't matter.$"
-
-gUnknown_086206BC:: @ 86206BC
- .string "I'm a top student at the$"
-
-gUnknown_086206D5:: @ 86206D5
- .string "TRAINER'S SCHOOL.$"
-
-gUnknown_086206E7:: @ 86206E7
- .string "Slow, steady suffering.$"
-
-gUnknown_086206FF:: @ 86206FF
- .string "Scary to meet at night.$"
-
-gUnknown_08620717:: @ 8620717
- .string "I see things that others$"
-
-gUnknown_08620730:: @ 8620730
- .string "can't see...$"
-
-gUnknown_0862073D:: @ 862073D
- .string "Anything to win.$"
-
-gUnknown_0862074E:: @ 862074E
- .string "Gorgeous type!$"
-
-gUnknown_0862075D:: @ 862075D
- .string "I have a pool specially for$"
-
-gUnknown_08620779:: @ 8620779
- .string "my POKéMON at home.$"
-
-gUnknown_0862078D:: @ 862078D
- .string "You'll fall under my spell!$"
-
-gUnknown_086207A9:: @ 86207A9
- .string "Mature WATER type.$"
-
-gUnknown_086207BC:: @ 86207BC
- .string "I dream of cruising around$"
-
-gUnknown_086207D7:: @ 86207D7
- .string "the world on a luxury liner.$"
-
-gUnknown_086207F4:: @ 86207F4
- .string "I'll lead you astray.$"
-
-gUnknown_0862080A:: @ 862080A
- .string "Cute, of course.$"
-
-gUnknown_0862081B:: @ 862081B
- .string "I love the SAFARI ZONE.$"
-
-gUnknown_08620833:: @ 8620833
- .string "I seem to end up there.$"
-
-gUnknown_0862084B:: @ 862084B
- .string "Strategy? Who needs it?$"
-
-gUnknown_08620863:: @ 8620863
- .string "I spent big money on it!$"
-
-gUnknown_0862087C:: @ 862087C
- .string "I, being rich, sleep in a$"
-
-gUnknown_08620896:: @ 8620896
- .string "custom POKéMON bed.$"
-
-gUnknown_086208AA:: @ 86208AA
- .string "Wrestle down with power.$"
-
-gUnknown_086208C3:: @ 86208C3
- .string "Took all night to catch.$"
-
-gUnknown_086208DC:: @ 86208DC
- .string "Big, burly, and buff$"
-
-gUnknown_086208F1:: @ 86208F1
- .string "POKéMON are the best...$"
-
-gUnknown_08620909:: @ 8620909
- .string "Ram at full speed!$"
-
-gUnknown_0862091C:: @ 862091C
- .string "Funky WATER type!$"
-
-gUnknown_0862092E:: @ 862092E
- .string "If I can't be out swimming,$"
-
-gUnknown_0862094A:: @ 862094A
- .string "I'll be pumping weights.$"
-
-gUnknown_08620963:: @ 8620963
- .string "Grand slam pummeling!$"
-
-gUnknown_08620979:: @ 8620979
- .string "FIGHTING type.$"
-
-gUnknown_08620988:: @ 8620988
- .string "Not to brag, but I can bust$"
-
-gUnknown_086209A4:: @ 86209A4
- .string "ten roof tiles!$"
-
-gUnknown_086209B4:: @ 86209B4
- .string "Witness karate power!$"
-
-gUnknown_086209CA:: @ 86209CA
- .string "My partners in training!$"
-
-gUnknown_086209E3:: @ 86209E3
- .string "Let us discuss matters of$"
-
-gUnknown_086209FD:: @ 86209FD
- .string "the world with bare fists!$"
-
-gUnknown_08620A18:: @ 8620A18
- .string "Rock to stunning sounds!$"
-
-gUnknown_08620A31:: @ 8620A31
- .string "Electric-and-sound combo!$"
-
-gUnknown_08620A4B:: @ 8620A4B
- .string "My compositions will shock$"
-
-gUnknown_08620A66:: @ 8620A66
- .string "you and stun you!$"
-
-gUnknown_08620A78:: @ 8620A78
- .string "I'll electrify you!$"
-
-gUnknown_08620A8C:: @ 8620A8C
- .string "They're ELECTRIC!$"
-
-gUnknown_08620A9E:: @ 8620A9E
- .string "I want to make people cry$"
-
-gUnknown_08620AB8:: @ 8620AB8
- .string "with songs from my heart.$"
-
-gUnknown_08620AD2:: @ 8620AD2
- .string "Burn it all down!$"
-
-gUnknown_08620AE4:: @ 8620AE4
- .string "Burn-inducing POKéMON.$"
-
-gUnknown_08620AFB:: @ 8620AFB
- .string "When you light a campfire,$"
-
-gUnknown_08620B16:: @ 8620B16
- .string "be sure there's some water.$"
-
-gUnknown_08620B32:: @ 8620B32
- .string "Hang in and be tenacious!$"
-
-gUnknown_08620B4C:: @ 8620B4C
- .string "I'll raise any POKéMON.$"
-
-gUnknown_08620B64:: @ 8620B64
- .string "POKéMON raised in the wild$"
-
-gUnknown_08620B7F:: @ 8620B7F
- .string "grow strong!$"
-
-gUnknown_08620B8C:: @ 8620B8C
- .string "Our love lets us prevail.$"
-
-gUnknown_08620BA6:: @ 8620BA6
- .string "We've had them for years.$"
-
-gUnknown_08620BC0:: @ 8620BC0
- .string "Married 50 years, we've$"
-
-gUnknown_08620BD8:: @ 8620BD8
- .string "devotedly raised POKéMON.$"
-
-gUnknown_08620BF2:: @ 8620BF2
- .string "Attack in waves!$"
-
-gUnknown_08620C03:: @ 8620C03
- .string "BUG POKéMON are cool.$"
-
-gUnknown_08620C19:: @ 8620C19
- .string "I go into the forest every$"
-
-gUnknown_08620C34:: @ 8620C34
- .string "day to catch BUG POKéMON.$"
-
-gUnknown_08620C4E:: @ 8620C4E
- .string "Daze and confuse!$"
-
-gUnknown_08620C60:: @ 8620C60
- .string "Ones with weird powers.$"
-
-gUnknown_08620C78:: @ 8620C78
- .string "I can see through exactly$"
-
-gUnknown_08620C92:: @ 8620C92
- .string "what you're thinking!$"
-
-gUnknown_08620CA8:: @ 8620CA8
- .string "Battle at full power.$"
-
-gUnknown_08620CBE:: @ 8620CBE
- .string "POKéMON of many mysteries.$"
-
-gUnknown_08620CD9:: @ 8620CD9
- .string "When we spoke, I was really$"
-
-gUnknown_08620CF5:: @ 8620CF5
- .string "using telepathy.$"
-
-gUnknown_08620D06:: @ 8620D06
- .string "Calm and collected.$"
-
-gUnknown_08620D1A:: @ 8620D1A
- .string "POKéMON of distinction.$"
-
-gUnknown_08620D32:: @ 8620D32
- .string "We enjoy a spot of tea$"
-
-gUnknown_08620D49:: @ 8620D49
- .string "every day. It's imported.$"
-
-gUnknown_08620D63:: @ 8620D63
- .string "I use my head to battle.$"
-
-gUnknown_08620D7C:: @ 8620D7C
- .string "I love any kind of POKéMON!$"
-
-gUnknown_08620D98:: @ 8620D98
- .string "My daddy gives me spending$"
-
-gUnknown_08620DB3:: @ 8620DB3
- .string "money if I ace a test.$"
-
-gUnknown_08620DCA:: @ 8620DCA
- .string "My knowledge rules!$"
-
-gUnknown_08620DDE:: @ 8620DDE
- .string "Any smart POKéMON!$"
-
-gUnknown_08620DF1:: @ 8620DF1
- .string "I want to be a POKéMON$"
-
-gUnknown_08620E08:: @ 8620E08
- .string "researcher in the future.$"
-
-gUnknown_08620E22:: @ 8620E22
- .string "We talk it over first.$"
-
-gUnknown_08620E39:: @ 8620E39
- .string "POKéMON that we both like.$"
-
-gUnknown_08620E54:: @ 8620E54
- .string "We're senior and junior$"
-
-gUnknown_08620E6C:: @ 8620E6C
- .string "students into POKéMON!$"
-
-gUnknown_08620E83:: @ 8620E83
- .string "Go for it, my dears!$"
-
-gUnknown_08620E98:: @ 8620E98
- .string "I have no likes or dislikes.$"
-
-gUnknown_08620EB5:: @ 8620EB5
- .string "While out shopping for$"
-
-gUnknown_08620ECC:: @ 8620ECC
- .string "supper, I battle too.$"
-
-gUnknown_08620EE2:: @ 8620EE2
- .string "I battle with love!$"
-
-gUnknown_08620EF6:: @ 8620EF6
- .string "A POKéMON raised with love!$"
-
-gUnknown_08620F12:: @ 8620F12
- .string "It's important to build$"
-
-gUnknown_08620F2A:: @ 8620F2A
- .string "trust with your POKéMON.$"
-
-gUnknown_08620F43:: @ 8620F43
- .string "I see through your moves!$"
-
-gUnknown_08620F5D:: @ 8620F5D
- .string "The essence of FIGHTING.$"
-
-gUnknown_08620F76:: @ 8620F76
- .string "I'm not ready to give way$"
-
-gUnknown_08620F90:: @ 8620F90
- .string "to the young yet!$"
-
-gUnknown_08620FA2:: @ 8620FA2
- .string "Attack while defending.$"
-
-gUnknown_08620FBA:: @ 8620FBA
- .string "The FIGHTING type.$"
-
-gUnknown_08620FCD:: @ 8620FCD
- .string "Being old, I have my own$"
-
-gUnknown_08620FE6:: @ 8620FE6
- .string "style of battling.$"
-
-gUnknown_08620FF9:: @ 8620FF9
- .string "I do what I can.$"
-
-gUnknown_0862100A:: @ 862100A
- .string "I use different types.$"
-
-gUnknown_08621021:: @ 8621021
- .string "I'm going to keep working$"
-
-gUnknown_0862103B:: @ 862103B
- .string "until I beat a GYM LEADER.$"
-
-gUnknown_08621056:: @ 8621056
- .string "I battle patiently.$"
-
-gUnknown_0862106A:: @ 862106A
- .string "WATER POKéMON to battle!$"
-
-gUnknown_08621083:: @ 8621083
- .string "I'm the world's only guy to$"
-
-gUnknown_0862109F:: @ 862109F
- .string "catch a huge POKéMON!$"
-
-gUnknown_086210B5:: @ 86210B5
- .string "Exploit the environment!$"
-
-gUnknown_086210CE:: @ 86210CE
- .string "All hail the WATER type!$"
-
-gUnknown_086210E7:: @ 86210E7
- .string "I won't be beaten by some$"
-
-gUnknown_08621101:: @ 8621101
- .string "beach bum SWIMMER!$"
-
-gUnknown_08621114:: @ 8621114
- .string "Speed above all!$"
-
-gUnknown_08621125:: @ 8621125
- .string "I use a speedy POKéMON.$"
-
-gUnknown_0862113D:: @ 862113D
- .string "A marathon is a challenge$"
-
-gUnknown_08621157:: @ 8621157
- .string "against your own self.$"
-
-gUnknown_0862116E:: @ 862116E
- .string "Defense is crucial.$"
-
-gUnknown_08621182:: @ 8621182
- .string "My POKéMON is solid.$"
-
-gUnknown_08621197:: @ 8621197
- .string "I started this for dieting,$"
-
-gUnknown_086211B3:: @ 86211B3
- .string "but I got right into it.$"
-
-gUnknown_086211CC:: @ 86211CC
- .string "Strike before stricken!$"
-
-gUnknown_086211E4:: @ 86211E4
- .string "A fast-running POKéMON!$"
-
-gUnknown_086211FC:: @ 86211FC
- .string "If you ran and ran, you'd$"
-
-gUnknown_08621216:: @ 8621216
- .string "become one with the wind.$"
-
-gUnknown_08621230:: @ 8621230
- .string "All-out offensive!$"
-
-gUnknown_08621243:: @ 8621243
- .string "WATER POKéMON rule!$"
-
-gUnknown_08621257:: @ 8621257
- .string "I must swim over 6 miles$"
-
-gUnknown_08621270:: @ 8621270
- .string "every day.$"
-
-gUnknown_0862127B:: @ 862127B
- .string "Push and push again!$"
-
-gUnknown_08621290:: @ 8621290
- .string "The strength of STEEL.$"
-
-gUnknown_086212A7:: @ 86212A7
- .string "If you're sweating, get$"
-
-gUnknown_086212BF:: @ 86212BF
- .string "fluids into you regularly.$"
-
-gUnknown_086212DA:: @ 86212DA
- .string "Draw the power of WATER.$"
-
-gUnknown_086212F3:: @ 86212F3
- .string "Toughened WATER POKéMON.$"
-
-gUnknown_0862130C:: @ 862130C
- .string "Training POKéMON is good,$"
-
-gUnknown_08621326:: @ 8621326
- .string "but don't neglect yourself.$"
-
-gUnknown_08621342:: @ 8621342
- .string "It's about POKéMON power!$"
-
-gUnknown_0862135C:: @ 862135C
- .string "See the power of DRAGONS!$"
-
-gUnknown_08621376:: @ 8621376
- .string "I'll become legendary as the$"
-
-gUnknown_08621393:: @ 8621393
- .string "strongest one day!$"
-
-gUnknown_086213A6:: @ 86213A6
- .string "I'll show you my technique!$"
-
-gUnknown_086213C2:: @ 86213C2
- .string "Elegantly wheeling BIRDS.$"
-
-gUnknown_086213DC:: @ 86213DC
- .string "My BIRD POKéMON, deliver my$"
-
-gUnknown_086213F8:: @ 86213F8
- .string "love to that girl!$"
-
-gUnknown_0862140B:: @ 862140B
- .string "You'll suffer from poison!$"
-
-gUnknown_08621426:: @ 8621426
- .string "Poisonous POKéMON.$"
-
-gUnknown_08621439:: @ 8621439
- .string "I undertake training so$"
-
-gUnknown_08621451:: @ 8621451
- .string "that I may become a ninja.$"
-
-gUnknown_0862146C:: @ 862146C
- .string "The first strike wins!$"
-
-gUnknown_08621483:: @ 8621483
- .string "Speedy FIGHTING type.$"
-
-gUnknown_08621499:: @ 8621499
- .string "If my POKéMON lose,$"
-
-gUnknown_086214AD:: @ 86214AD
- .string "I'll carry on the fight!$"
-
-gUnknown_086214C6:: @ 86214C6
- .string "Go, go, my POKéMON!$"
-
-gUnknown_086214DA:: @ 86214DA
- .string "I'll raise anything.$"
-
-gUnknown_086214EF:: @ 86214EF
- .string "UV rays are your skin's$"
-
-gUnknown_08621507:: @ 8621507
- .string "enemy. Get protected.$"
-
-gUnknown_0862151D:: @ 862151D
- .string "No mercy!$"
-
-gUnknown_08621527:: @ 8621527
- .string "Cute WATER POKéMON.$"
-
-gUnknown_0862153B:: @ 862153B
- .string "I have too many fans.$"
-
-gUnknown_08621551:: @ 8621551
- .string "I was interviewed on TV.$"
-
-gUnknown_0862156A:: @ 862156A
- .string "I think about this & that.$"
-
-gUnknown_08621585:: @ 8621585
- .string "I like all POKéMON.$"
-
-gUnknown_08621599:: @ 8621599
- .string "What lies beyond that$"
-
-gUnknown_086215AF:: @ 86215AF
- .string "yonder hill?$"
-
-gUnknown_086215BC:: @ 86215BC
- .string "We battle together!$"
-
-gUnknown_086215D0:: @ 86215D0
- .string "We train together!$"
-
-gUnknown_086215E3:: @ 86215E3
- .string "We like the same POKéMON,$"
-
-gUnknown_086215FD:: @ 86215FD
- .string "but different desserts.$"
-
-gUnknown_08621615:: @ 8621615
- .string "I force things with power!$"
-
-gUnknown_08621630:: @ 8621630
- .string "WATER and FIGHTING types.$"
-
-gUnknown_0862164A:: @ 862164A
- .string "Seamen are rough spirits!$"
-
-gUnknown_08621664:: @ 8621664
- .string "Any complaints?$"
-
-gUnknown_08621674:: @ 8621674
- .string "Up for a fight anytime!$"
-
-gUnknown_0862168C:: @ 862168C
- .string "WATER POKéMON are my faves!$"
-
-gUnknown_086216A8:: @ 86216A8
- .string "If you want to shout loud,$"
-
-gUnknown_086216C3:: @ 86216C3
- .string "suck in air with your belly!$"
-
-gUnknown_086216E0:: @ 86216E0
- .string "Protect POKéMON from harm.$"
-
-gUnknown_086216FB:: @ 86216FB
- .string "I love rare POKéMON.$"
-
-gUnknown_08621710:: @ 8621710
- .string "I want to collect all the$"
-
-gUnknown_0862172A:: @ 862172A
- .string "world's rare POKéMON.$"
-
-gUnknown_08621740:: @ 8621740
- .string "I count on power.$"
-
-gUnknown_08621752:: @ 8621752
- .string "POKéMON are my children.$"
-
-gUnknown_0862176B:: @ 862176B
- .string "It takes knowledge and$"
-
-gUnknown_08621782:: @ 8621782
- .string "love to raise POKéMON.$"
-
-gUnknown_08621799:: @ 8621799
- .string "Full-on attack!$"
-
-gUnknown_086217A9:: @ 86217A9
- .string "Anything. I'll raise it.$"
-
-gUnknown_086217C2:: @ 86217C2
- .string "I give them {POKEBLOCK}S for$"
-
-gUnknown_086217D9:: @ 86217D9
- .string "going after CONTEST titles.$"
-
-gUnknown_086217F5:: @ 86217F5
- .string "I raise POKéMON with care.$"
-
-gUnknown_08621810:: @ 8621810
- .string "Fun-to-raise POKéMON.$"
-
-gUnknown_08621826:: @ 8621826
- .string "Treat every POKéMON you$"
-
-gUnknown_0862183E:: @ 862183E
- .string "meet with respect.$"
-
-gUnknown_08621851:: @ 8621851
- .string "I believe in my POKéMON.$"
-
-gUnknown_0862186A:: @ 862186A
- .string "I like strong POKéMON.$"
-
-gUnknown_08621881:: @ 8621881
- .string "I'm training for rescue$"
-
-gUnknown_08621899:: @ 8621899
- .string "work with my POKéMON.$"
-
-gUnknown_086218AF:: @ 86218AF
- .string "Attack in waves!$"
-
-gUnknown_086218C0:: @ 86218C0
- .string "I use different types.$"
-
-gUnknown_086218D7:: @ 86218D7
- .string "Those who destroy nature$"
-
-gUnknown_086218F0:: @ 86218F0
- .string "must never be forgiven!$"
-
-gUnknown_08621908:: @ 8621908
- .string "I'll show you some guts!$"
-
-gUnknown_08621921:: @ 8621921
- .string "Cute POKéMON are my faves!$"
-
-gUnknown_0862193C:: @ 862193C
- .string "After a battle, I always$"
-
-gUnknown_08621955:: @ 8621955
- .string "bathe with my POKéMON.$"
-
-gUnknown_0862196C:: @ 862196C
- .string "Lightning-fast attack!$"
-
-gUnknown_08621983:: @ 8621983
- .string "BUG POKéMON are number 1!$"
-
-gUnknown_0862199D:: @ 862199D
- .string "If you want to catch BUG$"
-
-gUnknown_086219B6:: @ 86219B6
- .string "POKéMON, wake up early.$"
-
-gUnknown_086219CE:: @ 86219CE
- .string "I battle with power.$"
-
-gUnknown_086219E3:: @ 86219E3
- .string "Hard-bodied POKéMON.$"
-
-gUnknown_086219F8:: @ 86219F8
- .string "I've been planning a month$"
-
-gUnknown_08621A13:: @ 8621A13
- .string "for today's hike.$"
-
-gUnknown_08621A25:: @ 8621A25
- .string "I like it hot!$"
-
-gUnknown_08621A34:: @ 8621A34
- .string "Hot POKéMON!$"
-
-gUnknown_08621A41:: @ 8621A41
- .string "As much as I love POKéMON,$"
-
-gUnknown_08621A5C:: @ 8621A5C
- .string "I surely like hiking!$"
-
-gUnknown_08621A72:: @ 8621A72
- .string "Lovey-dovey strategy!$"
-
-gUnknown_08621A88:: @ 8621A88
- .string "Lovey-dovey POKéMON!$"
-
-gUnknown_08621A9D:: @ 8621A9D
- .string "We're lovey-dovey!$"
-
-gUnknown_08621AB0:: @ 8621AB0
- .string "Forever lovey-dovey!$"
-
-gUnknown_08621AC5:: @ 8621AC5
- .string "We let it all hang out.$"
-
-gUnknown_08621ADD:: @ 8621ADD
- .string "The 1st POKéMON I caught.$"
-
-gUnknown_08621AF7:: @ 8621AF7
- .string "POKéMON and I have grown$"
-
-gUnknown_08621B10:: @ 8621B10
- .string "stronger together.$"
-
-gUnknown_08621B23:: @ 8621B23
- .string "ROCK-type power attack.$"
-
-gUnknown_08621B3B:: @ 8621B3B
- .string "I prefer rock-hard POKéMON.$"
-
-gUnknown_08621B57:: @ 8621B57
- .string "A LEADER of a big GYM bears$"
-
-gUnknown_08621B73:: @ 8621B73
- .string "a lot of responsibility.$"
-
-gUnknown_08621B8C:: @ 8621B8C
- .string "Direct physical action!$"
-
-gUnknown_08621BA4:: @ 8621BA4
- .string "FIGHTING POKéMON rule!$"
-
-gUnknown_08621BBB:: @ 8621BBB
- .string "The world awaits me as the$"
-
-gUnknown_08621BD6:: @ 8621BD6
- .string "next big wave!$"
-
-gUnknown_08621BE5:: @ 8621BE5
- .string "I choose to electrify.$"
-
-gUnknown_08621BFC:: @ 8621BFC
- .string "Get shocked by electricity!$"
-
-gUnknown_08621C18:: @ 8621C18
- .string "One must never throw a$"
-
-gUnknown_08621C2F:: @ 8621C2F
- .string "match. Even I must not.$"
-
-gUnknown_08621C47:: @ 8621C47
- .string "Battle aggressively.$"
-
-gUnknown_08621C5C:: @ 8621C5C
- .string "Burn with passion!$"
-
-gUnknown_08621C6F:: @ 8621C6F
- .string "Completely wash away daily$"
-
-gUnknown_08621C8A:: @ 8621C8A
- .string "fatigue in hot springs!$"
-
-gUnknown_08621CA2:: @ 8621CA2
- .string "I flexibly adapt my style.$"
-
-gUnknown_08621CBD:: @ 8621CBD
- .string "Grown in a balanced manner.$"
-
-gUnknown_08621CD9:: @ 8621CD9
- .string "I walk the 30 minutes from$"
-
-gUnknown_08621CF4:: @ 8621CF4
- .string "home to here every day.$"
-
-gUnknown_08621D0C:: @ 8621D0C
- .string "I take advantage of speed.$"
-
-gUnknown_08621D27:: @ 8621D27
- .string "Graceful sky dancers.$"
-
-gUnknown_08621D3D:: @ 8621D3D
- .string "The ultimate would be to$"
-
-gUnknown_08621D56:: @ 8621D56
- .string "live as one with nature.$"
-
-gUnknown_08621D6F:: @ 8621D6F
- .string "We battle in cooperation.$"
-
-gUnknown_08621D89:: @ 8621D89
- .string "Always friendly POKéMON.$"
-
-gUnknown_08621DA2:: @ 8621DA2
- .string "Papa has trouble telling$"
-
-gUnknown_08621DBB:: @ 8621DBB
- .string "the two of us apart!$"
-
-gUnknown_08621DD0:: @ 8621DD0
- .string "I use splendid waterpower.$"
-
-gUnknown_08621DEB:: @ 8621DEB
- .string "POKéMON of elegance!$"
-
-gUnknown_08621E00:: @ 8621E00
- .string "The adulation of beautiful$"
-
-gUnknown_08621E1B:: @ 8621E1B
- .string "ladies fills me with energy!$"
-
-gUnknown_08621E38:: @ 8621E38
- .string "Offense over defense!$"
-
-gUnknown_08621E4E:: @ 8621E4E
- .string "The DARK side's beauties.$"
-
-gUnknown_08621E68:: @ 8621E68
- .string "They said I was a punk, but$"
-
-gUnknown_08621E84:: @ 8621E84
- .string "I'm one of the ELITE FOUR!$"
-
-gUnknown_08621E9F:: @ 8621E9F
- .string "Confuse and confound.$"
-
-gUnknown_08621EB5:: @ 8621EB5
- .string "There's nothing definite.$"
-
-gUnknown_08621ECF:: @ 8621ECF
- .string "I wonder how my grandma at$"
-
-gUnknown_08621EEA:: @ 8621EEA
- .string "MT. PYRE is doing?$"
-
-gUnknown_08621EFD:: @ 8621EFD
- .string "I use items for help.$"
-
-gUnknown_08621F13:: @ 8621F13
- .string "Flaming passion in icy cold!$"
-
-gUnknown_08621F30:: @ 8621F30
- .string "The ICE type can be better$"
-
-gUnknown_08621F4B:: @ 8621F4B
- .string "trained in this hot land.$"
-
-gUnknown_08621F65:: @ 8621F65
- .string "Harness strong abilities.$"
-
-gUnknown_08621F7F:: @ 8621F7F
- .string "The raw power of DRAGONS!$"
-
-gUnknown_08621F99:: @ 8621F99
- .string "I dedicate myself to the$"
-
-gUnknown_08621FB2:: @ 8621FB2
- .string "POKéMON that saved me.$"
-
-gUnknown_08621FC9:: @ 8621FC9
- .string "Dignity and respect.$"
-
-gUnknown_08621FDE:: @ 8621FDE
- .string "I prefer POKéMON of grace.$"
-
-gUnknown_08621FF9:: @ 8621FF9
- .string "I represent beauty as$"
-
-gUnknown_0862200F:: @ 862200F
- .string "well as intelligence.$"
-
-.align 2
-
-@ strategy, mon text, introduction1, introduction2
-gUnknown_08622028:: @ 8622028
- .4byte gUnknown_08620390, gUnknown_086203AA, gUnknown_086203C2, gUnknown_086203DB
- .4byte gUnknown_086203F2, gUnknown_0862040D, gUnknown_08620428, gUnknown_08620444
- .4byte gUnknown_08620456, gUnknown_0862046C, gUnknown_08620481, gUnknown_0862049C
- .4byte gUnknown_086204B0, gUnknown_086204C7, gUnknown_086204DD, gUnknown_086204F9
- .4byte gUnknown_0862050E, gUnknown_0862052B, gUnknown_08620546, gUnknown_08620562
- .4byte gUnknown_0862057D, gUnknown_08620592, gUnknown_086205AC, gUnknown_086205C6
- .4byte gUnknown_086205DD, gUnknown_086205F8, gUnknown_08620612, gUnknown_0862062F
- .4byte gUnknown_08620638, gUnknown_08620654, gUnknown_08620668, gUnknown_08620681
- .4byte gUnknown_08620693, gUnknown_086206A7, gUnknown_086206BC, gUnknown_086206D5
- .4byte gUnknown_086206E7, gUnknown_086206FF, gUnknown_08620717, gUnknown_08620730
- .4byte gUnknown_0862073D, gUnknown_0862074E, gUnknown_0862075D, gUnknown_08620779
- .4byte gUnknown_0862078D, gUnknown_086207A9, gUnknown_086207BC, gUnknown_086207D7
- .4byte gUnknown_086207F4, gUnknown_0862080A, gUnknown_0862081B, gUnknown_08620833
- .4byte gUnknown_0862084B, gUnknown_08620863, gUnknown_0862087C, gUnknown_08620896
- .4byte gUnknown_086208AA, gUnknown_086208C3, gUnknown_086208DC, gUnknown_086208F1
- .4byte gUnknown_08620909, gUnknown_0862091C, gUnknown_0862092E, gUnknown_0862094A
- .4byte gUnknown_08620963, gUnknown_08620979, gUnknown_08620988, gUnknown_086209A4
- .4byte gUnknown_086209B4, gUnknown_086209CA, gUnknown_086209E3, gUnknown_086209FD
- .4byte gUnknown_08620A18, gUnknown_08620A31, gUnknown_08620A4B, gUnknown_08620A66
- .4byte gUnknown_08620A78, gUnknown_08620A8C, gUnknown_08620A9E, gUnknown_08620AB8
- .4byte gUnknown_08620AD2, gUnknown_08620AE4, gUnknown_08620AFB, gUnknown_08620B16
- .4byte gUnknown_08620B32, gUnknown_08620B4C, gUnknown_08620B64, gUnknown_08620B7F
- .4byte gUnknown_08620B8C, gUnknown_08620BA6, gUnknown_08620BC0, gUnknown_08620BD8
- .4byte gUnknown_08620BF2, gUnknown_08620C03, gUnknown_08620C19, gUnknown_08620C34
- .4byte gUnknown_08620C4E, gUnknown_08620C60, gUnknown_08620C78, gUnknown_08620C92
- .4byte gUnknown_08620CA8, gUnknown_08620CBE, gUnknown_08620CD9, gUnknown_08620CF5
- .4byte gUnknown_08620D06, gUnknown_08620D1A, gUnknown_08620D32, gUnknown_08620D49
- .4byte gUnknown_08620D63, gUnknown_08620D7C, gUnknown_08620D98, gUnknown_08620DB3
- .4byte gUnknown_08620DCA, gUnknown_08620DDE, gUnknown_08620DF1, gUnknown_08620E08
- .4byte gUnknown_08620E22, gUnknown_08620E39, gUnknown_08620E54, gUnknown_08620E6C
- .4byte gUnknown_08620E83, gUnknown_08620E98, gUnknown_08620EB5, gUnknown_08620ECC
- .4byte gUnknown_08620EE2, gUnknown_08620EF6, gUnknown_08620F12, gUnknown_08620F2A
- .4byte gUnknown_08620F43, gUnknown_08620F5D, gUnknown_08620F76, gUnknown_08620F90
- .4byte gUnknown_08620FA2, gUnknown_08620FBA, gUnknown_08620FCD, gUnknown_08620FE6
- .4byte gUnknown_08620FF9, gUnknown_0862100A, gUnknown_08621021, gUnknown_0862103B
- .4byte gUnknown_08621056, gUnknown_0862106A, gUnknown_08621083, gUnknown_0862109F
- .4byte gUnknown_086210B5, gUnknown_086210CE, gUnknown_086210E7, gUnknown_08621101
- .4byte gUnknown_08621114, gUnknown_08621125, gUnknown_0862113D, gUnknown_08621157
- .4byte gUnknown_0862116E, gUnknown_08621182, gUnknown_08621197, gUnknown_086211B3
- .4byte gUnknown_086211CC, gUnknown_086211E4, gUnknown_086211FC, gUnknown_08621216
- .4byte gUnknown_08621230, gUnknown_08621243, gUnknown_08621257, gUnknown_08621270
- .4byte gUnknown_0862127B, gUnknown_08621290, gUnknown_086212A7, gUnknown_086212BF
- .4byte gUnknown_086212DA, gUnknown_086212F3, gUnknown_0862130C, gUnknown_08621326
- .4byte gUnknown_08621342, gUnknown_0862135C, gUnknown_08621376, gUnknown_08621393
- .4byte gUnknown_086213A6, gUnknown_086213C2, gUnknown_086213DC, gUnknown_086213F8
- .4byte gUnknown_0862140B, gUnknown_08621426, gUnknown_08621439, gUnknown_08621451
- .4byte gUnknown_0862146C, gUnknown_08621483, gUnknown_08621499, gUnknown_086214AD
- .4byte gUnknown_086214C6, gUnknown_086214DA, gUnknown_086214EF, gUnknown_08621507
- .4byte gUnknown_0862151D, gUnknown_08621527, gUnknown_0862153B, gUnknown_08621551
- .4byte gUnknown_0862156A, gUnknown_08621585, gUnknown_08621599, gUnknown_086215AF
- .4byte gUnknown_086215BC, gUnknown_086215D0, gUnknown_086215E3, gUnknown_086215FD
- .4byte gUnknown_08621615, gUnknown_08621630, gUnknown_0862164A, gUnknown_08621664
- .4byte gUnknown_08621674, gUnknown_0862168C, gUnknown_086216A8, gUnknown_086216C3
- .4byte gUnknown_086216E0, gUnknown_086216FB, gUnknown_08621710, gUnknown_0862172A
- .4byte gUnknown_08621740, gUnknown_08621752, gUnknown_0862176B, gUnknown_08621782
- .4byte gUnknown_08621799, gUnknown_086217A9, gUnknown_086217C2, gUnknown_086217D9
- .4byte gUnknown_086217F5, gUnknown_08621810, gUnknown_08621826, gUnknown_0862183E
- .4byte gUnknown_08621851, gUnknown_0862186A, gUnknown_08621881, gUnknown_08621899
- .4byte gUnknown_086218AF, gUnknown_086218C0, gUnknown_086218D7, gUnknown_086218F0
- .4byte gUnknown_08621908, gUnknown_08621921, gUnknown_0862193C, gUnknown_08621955
- .4byte gUnknown_0862196C, gUnknown_08621983, gUnknown_0862199D, gUnknown_086219B6
- .4byte gUnknown_086219CE, gUnknown_086219E3, gUnknown_086219F8, gUnknown_08621A13
- .4byte gUnknown_08621A25, gUnknown_08621A34, gUnknown_08621A41, gUnknown_08621A5C
- .4byte gUnknown_08621A72, gUnknown_08621A88, gUnknown_08621A9D, gUnknown_08621AB0
- .4byte gUnknown_08621AC5, gUnknown_08621ADD, gUnknown_08621AF7, gUnknown_08621B10
- .4byte gUnknown_08621B23, gUnknown_08621B3B, gUnknown_08621B57, gUnknown_08621B73
- .4byte gUnknown_08621B8C, gUnknown_08621BA4, gUnknown_08621BBB, gUnknown_08621BD6
- .4byte gUnknown_08621BE5, gUnknown_08621BFC, gUnknown_08621C18, gUnknown_08621C2F
- .4byte gUnknown_08621C47, gUnknown_08621C5C, gUnknown_08621C6F, gUnknown_08621C8A
- .4byte gUnknown_08621CA2, gUnknown_08621CBD, gUnknown_08621CD9, gUnknown_08621CF4
- .4byte gUnknown_08621D0C, gUnknown_08621D27, gUnknown_08621D3D, gUnknown_08621D56
- .4byte gUnknown_08621D6F, gUnknown_08621D89, gUnknown_08621DA2, gUnknown_08621DBB
- .4byte gUnknown_08621DD0, gUnknown_08621DEB, gUnknown_08621E00, gUnknown_08621E1B
- .4byte gUnknown_08621E38, gUnknown_08621E4E, gUnknown_08621E68, gUnknown_08621E84
- .4byte gUnknown_08621E9F, gUnknown_08621EB5, gUnknown_08621ECF, gUnknown_08621EEA
- .4byte gUnknown_08621EFD, gUnknown_08621F13, gUnknown_08621F30, gUnknown_08621F4B
- .4byte gUnknown_08621F65, gUnknown_08621F7F, gUnknown_08621F99, gUnknown_08621FB2
- .4byte gUnknown_08621FC9, gUnknown_08621FDE, gUnknown_08621FF9, gUnknown_0862200F
-
-gUnknown_08622508:: @ 8622508
- .byte 0, 2
-
-gUnknown_0862250A:: @ 862250A
- .byte 0, 1, 2, 0, 0, 0
-
-// pokenav_unk_4.s
-gUnknown_08622510:: @ 8622510
- .incbin "graphics/pokenav/ui_matchcall.gbapal"
-
-gUnknown_08622530:: @ 8622530
- .incbin "graphics/pokenav/ui_matchcall.4bpp.lz"
-
-gUnknown_086225D4:: @ 86225D4
- .incbin "graphics/pokenav/ui_matchcall.bin.lz"
-
-gUnknown_08622698:: @ 8622698
- .incbin "graphics/pokenav/arrow2.gbapal"
-
-gUnknown_086226B8:: @ 86226B8
- .incbin "graphics/pokenav/arrow2.4bpp.lz"
-
-gUnknown_086226E0:: @ 86226E0
- .incbin "graphics/pokenav/86226E0.gbapal"
-
-gUnknown_08622700:: @ 8622700
- .incbin "graphics/pokenav/8622700.gbapal"
-
-gUnknown_08622720:: @ 8622720
- .incbin "graphics/pokenav/pokeball_matchcall.gbapal"
-
-gUnknown_08622760:: @ 8622760
- .incbin "graphics/pokenav/pokeball_matchcall.4bpp.lz"
-
-gUnknown_0862278C:: @ 862278C
- .4byte 0x11FD
- .4byte 0x20206A
-
-gUnknown_08622794:: @ 8622794
- .4byte 0x00003077
-
-gUnknown_08622798:: @ 8622798
- .4byte NULL
- .4byte sub_81CB510
- .4byte sub_81CB588
- .4byte sub_81CB600
- .4byte sub_81CB678
- .4byte sub_81CB6F0
- .4byte sub_81CB734
- .4byte sub_81CB75C
- .4byte sub_81CB7A0
- .4byte sub_81CB824
- .4byte sub_81CB888
- .4byte sub_81CB93C
- .4byte sub_81CBAD4
- .4byte sub_81CB9C8
- .4byte sub_81CBA68
- .4byte sub_81CBB74
-
-gUnknown_086227D8:: @ 86227D8
- window_template 2, 0, 5, 11, 2, 2, 16
-
-gUnknown_086227E0:: @ 86227E0
- window_template 2, 0, 9, 11, 8, 2, 0x26
-
-gUnknown_086227E8:: @ 86227E8
- .4byte gUnknown_085EC017
- .4byte gUnknown_085EC01C
- .4byte gUnknown_085EC022
-
-gUnknown_086227F4:: @ 86227F4
- .string "·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p"
- .string "$"
- .align 2
-
-gUnknown_08622808:: @ 8622808
- window_template 1, 1, 12, 0x1C, 4, 1, 10
-
-gUnknown_08622810:: @ 8622810
- obj_tiles gUnknown_086226B8, 0x40, 7
-
-gUnknown_08622818:: @ 8622818
- obj_pal gUnknown_08622698, 12
- null_obj_pal
-
-gUnknown_08622828:: @ 8622828
- .2byte 0x8000
- .2byte 0x0
- .2byte 0x400
- .2byte 0x0
-
-gUnknown_08622830:: @ 8622830
- spr_template 7, 12, gUnknown_08622828, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CC34C
-
-gUnknown_08622848:: @ 8622848
- .2byte 0x0
- .2byte 0xC000
- .2byte 0x400
- .2byte 0x0
-
-gUnknown_08622850:: @ 8622850
- spr_template 8, 13, gUnknown_08622848, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-// pokenav_unk_5.s
-gUnknown_08622868:: @ 8622868
- .incbin "graphics/pokenav/8622868.gbapal"
-
-gUnknown_08622888:: @ 8622888
- .incbin "graphics/pokenav/zoom_tiles.4bpp.lz"
-
-gUnknown_08622A7C:: @ 8622A7C
- .incbin "graphics/pokenav/city_maps/lavaridge_0.bin.lz"
-
-gUnknown_08622AC0:: @ 8622AC0
- .incbin "graphics/pokenav/city_maps/fallarbor_0.bin.lz"
-
-gUnknown_08622B08:: @ 8622B08
- .incbin "graphics/pokenav/city_maps/fortree_0.bin.lz"
-
-gUnknown_08622B58:: @ 8622B58
- .incbin "graphics/pokenav/city_maps/slateport_0.bin.lz"
-
-gUnknown_08622BB8:: @ 8622BB8
- .incbin "graphics/pokenav/city_maps/slateport_1.bin.lz"
-
-gUnknown_08622C04:: @ 8622C04
- .incbin "graphics/pokenav/city_maps/rustboro_0.bin.lz"
-
-gUnknown_08622C58:: @ 8622C58
- .incbin "graphics/pokenav/city_maps/rustboro_1.bin.lz"
-
-gUnknown_08622CAC:: @ 8622CAC
- .incbin "graphics/pokenav/city_maps/pacifidlog_0.bin.lz"
-
-gUnknown_08622CEC:: @ 8622CEC
- .incbin "graphics/pokenav/city_maps/mauville_0.bin.lz"
-
-gUnknown_08622D44:: @ 8622D44
- .incbin "graphics/pokenav/city_maps/mauville_1.bin.lz"
-
-gUnknown_08622D98:: @ 8622D98
- .incbin "graphics/pokenav/city_maps/oldale_0.bin.lz"
-
-gUnknown_08622DC8:: @ 8622DC8
- .incbin "graphics/pokenav/city_maps/lilycove_0.bin.lz"
-
-gUnknown_08622E14:: @ 8622E14
- .incbin "graphics/pokenav/city_maps/lilycove_1.bin.lz"
-
-gUnknown_08622E6C:: @ 8622E6C
- .incbin "graphics/pokenav/city_maps/littleroot_0.bin.lz"
-
-gUnknown_08622E9C:: @ 8622E9C
- .incbin "graphics/pokenav/city_maps/dewford_0.bin.lz"
-
-gUnknown_08622ED4:: @ 8622ED4
- .incbin "graphics/pokenav/city_maps/sootopolis_0.bin.lz"
-
-gUnknown_08622F14:: @ 8622F14
- .incbin "graphics/pokenav/city_maps/ever_grande_0.bin.lz"
-
-gUnknown_08622F5C:: @ 8622F5C
- .incbin "graphics/pokenav/city_maps/ever_grande_1.bin.lz"
-
-gUnknown_08622FA0:: @ 8622FA0
- .incbin "graphics/pokenav/city_maps/verdanturf_0.bin.lz"
-
-gUnknown_08622FD8:: @ 8622FD8
- .incbin "graphics/pokenav/city_maps/mossdeep_0.bin.lz"
-
-gUnknown_08623020:: @ 8623020
- .incbin "graphics/pokenav/city_maps/mossdeep_1.bin.lz"
-
-gUnknown_0862307C:: @ 862307C
- .incbin "graphics/pokenav/city_maps/petalburg_0.bin.lz"
-
-gUnknown_086230D8:: @ 86230D8
- .4byte 0x11F5
- .4byte 0x206A
- .4byte 0x3402
-
-gUnknown_086230E4:: @ 86230E4
- .4byte NULL
- .4byte sub_81CC848
- .4byte sub_81CC878
- .4byte sub_81CC8D8
- .4byte sub_81CC95C
-
-gUnknown_086230F8:: @ 86230F8
- obj_tiles gHoennMapZoomIcons_Gfx, 0x800, 6
-
-gUnknown_08623100:: @ 8623100
- obj_pal gHoennMapZoomIcons_Pal, 11
- null_obj_pal
-
-gUnknown_08623110:: @ 8623110
- .byte 1
- .byte 17
- .byte 4
- .byte 12
- .byte 13
- .byte 1
- .2byte 0x4C
-
-gUnknown_08623118:: @ 8623118
- .4byte 0, gUnknown_08622E6C
- .4byte 1, gUnknown_08622D98
- .4byte 2, gUnknown_08622E9C
- .4byte 3, gUnknown_08622A7C
- .4byte 4, gUnknown_08622AC0
- .4byte 5, gUnknown_08622FA0
- .4byte 6, gUnknown_08622CAC
- .4byte 7, gUnknown_0862307C
- .4byte 8, gUnknown_08622B58
- .4byte 0x10008, gUnknown_08622BB8
- .4byte 9, gUnknown_08622D44
- .4byte 0x10009, gUnknown_08622CEC
- .4byte 0xA, gUnknown_08622C04
- .4byte 0x1000A, gUnknown_08622C58
- .4byte 0xB, gUnknown_08622B08
- .4byte 0xC, gUnknown_08622E14
- .4byte 0x1000C, gUnknown_08622DC8
- .4byte 0xD, gUnknown_08623020
- .4byte 0x1000D, gUnknown_08622FD8
- .4byte 0xE, gUnknown_08622ED4
- .4byte 0xF, gUnknown_08622F14
- .4byte 0x1000F, gUnknown_08622F5C
-
-gUnknown_086231C8:: @ 86231C8
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x400
- .2byte 0x0
-
-gUnknown_086231D0:: @ 86231D0
- spr_template 6, 11, gUnknown_086231C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CCEF4
-
-// pokenav_unk_6.s
-// <none>
-
-// pokenav_unk_7.s
-gUnknown_086231E8:: @ 86231E8
- .incbin "graphics/pokenav/86231E8.gbapal"
-
-gUnknown_08623208:: @ 8623208
- .incbin "graphics/pokenav/8623208.gbapal"
-
-gUnknown_08623228:: @ 8623228
- .incbin "graphics/pokenav/8623228.4bpp.lz"
-
-gUnknown_0862323C:: @ 862323C
- .incbin "graphics/pokenav/862323C.bin.lz"
-
-gUnknown_08623338:: @ 8623338
- .incbin "graphics/pokenav/8623338.gbapal"
-
-gUnknown_08623358:: @ 8623358
- .4byte 0x11F5
- .4byte 0x21DE
- .4byte 0x31EB
-
-gUnknown_08623364:: @ 8623364
- window_template 1, 13, 1, 13, 4, 15, 2
-
-gUnknown_0862336C:: @ 862336C
- window_template 1, 1, 6, 7, 2, 15, 0x36
-
-gUnknown_08623374:: @ 8623374
- window_template 1, 1, 0x1C, 5, 2, 15, 0x44
-
-gUnknown_0862337C:: @ 862337C
- window_template 1, 13, 0x1C, 3, 2, 15, 0x44
-
-// pokenav_unk_8.s
-gUnknown_08623384:: @ 8623384
- .4byte NULL
- .4byte sub_81CE37C
- .4byte sub_81CE2D0
- .4byte sub_81CE4D8
- .4byte sub_81CE5E4
- .4byte sub_81CE6BC
- .4byte sub_81CE700
-
-gUnknown_086233A0:: @ 86233A0
- .4byte 0x16, 0x17, 0x18, 0x21, 0x2F
-
-gUnknown_086233B4:: @ 86233B4
- .4byte sub_81CF134
- .4byte sub_81CF1C4
- .4byte sub_81CF1D8
- .4byte sub_81CF278
-
-gUnknown_086233C4:: @ 86233C4
- .incbin "graphics/pokenav/condition_search2.gbapal"
-
-gUnknown_086233E4:: @ 86233E4
- .incbin "graphics/pokenav/condition_search2.4bpp.lz"
-
-gUnknown_086234AC:: @ 86234AC
- .incbin "graphics/pokenav/condition_search2.bin.lz"
-
-gUnknown_08623570:: @ 8623570
- .incbin "graphics/pokenav/8623570.gbapal"
-
-gUnknown_08623590:: @ 8623590
- .4byte 0x2065
-
-gUnknown_08623594:: @ 8623594
- .4byte 0x307A
-
-gUnknown_08623598:: @ 8623598
- .4byte NULL
- .4byte sub_81CF578
- .4byte sub_81CF5F0
- .4byte sub_81CF668
- .4byte sub_81CF6E0
- .4byte sub_81CF758
- .4byte sub_81CF798
-
-gUnknown_086235B4:: @ 86235B4
- window_template 1, 1, 6, 7, 2, 1, 20
-
-gUnknown_086235BC:: @ 86235BC
- .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$"
- .align 2
-
-gUnknown_086235C8:: @ 86235C8
- .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$"
- .align 2
-
-gUnknown_086235D4:: @ 86235D4
- .string "{UNK_SPACER}$"
- .align 2
-
-// pokenav_unk_9.s
-gUnknown_086235D8:: @ 86235D8
- .4byte sub_81CFB8C
- .4byte sub_81CFC2C
- .4byte sub_81CFC40
-
-gUnknown_086235E4:: @ 86235E4
- .incbin "graphics/pokenav/ui_ribbons.gbapal"
-
-gUnknown_08623604:: @ 8623604
- .incbin "graphics/pokenav/ui_ribbons.4bpp.lz"
-
-gUnknown_086236CC:: @ 86236CC
- .incbin "graphics/pokenav/ui_ribbons.bin.lz"
-
-gUnknown_08623790:: @ 8623790
- .incbin "graphics/pokenav/8623790.gbapal"
-
-gUnknown_086237B0:: @ 86237B0
- .4byte 0x2065
-
-gUnknown_086237B4:: @ 86237B4
- .4byte 0x307A
-
-gUnknown_086237B8:: @ 86237B8
- .4byte NULL
- .4byte sub_81CFFFC
- .4byte sub_81D0074
- .4byte sub_81D00EC
- .4byte sub_81D0164
- .4byte sub_81D01DC
- .4byte sub_81D021C
-
-gUnknown_086237D4:: @ 86237D4
- window_template 1, 1, 6, 7, 2, 1, 20
-
-gUnknown_086237DC:: @ 86237DC
- .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$"
- .align 2
-
-gUnknown_086237E8:: @ 86237E8
- .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$"
- .align 2
-
-gUnknown_086237F4:: @ 86237F4
- .string "{UNK_SPACER}$"
- .align 2
-
-// pokenav_unk_10.s
-gUnknown_086237F8:: @ 86237F8
- .byte 1, 1, 0, 0
- .byte 3, 4, 1, 0
- .byte 3, 4, 5, 0
- .byte 3, 4, 9, 0
- .byte 3, 4, 13, 0
- .byte 3, 4, 17, 0
- .byte 1, 1, 21, 0
- .byte 1, 1, 22, 0
- .byte 1, 1, 23, 0
- .byte 1, 1, 24, 0
- .byte 1, 1, 25, 1
- .byte 1, 1, 26, 1
- .byte 1, 1, 27, 1
- .byte 1, 1, 28, 1
- .byte 1, 1, 29, 1
- .byte 1, 1, 30, 1
- .byte 1, 1, 31, 1
-
-@ 862383C
- .include "data/text/ribbon_descriptions.inc"
-
-@ 8623A74
- .include "data/text/gift_ribbon_descriptions.inc"
-
-gUnknown_08623FF8:: @ 8623FF8
- .incbin "graphics/pokenav/ribbons_icon1.gbapal"
-
-gUnknown_08624018:: @ 8624018
- .incbin "graphics/pokenav/ribbons_icon2.gbapal"
-
-gUnknown_08624038:: @ 8624038
- .incbin "graphics/pokenav/ribbons_icon3.gbapal"
-
-gUnknown_08624058:: @ 8624058
- .incbin "graphics/pokenav/ribbons_icon4.gbapal"
-
-gUnknown_08624078:: @ 8624078
- .incbin "graphics/pokenav/ribbons_icon5.gbapal"
-
-gUnknown_08624098:: @ 8624098
- .incbin "graphics/pokenav/8624098.gbapal"
-
-gUnknown_086240B8:: @ 86240B8
- .incbin "graphics/pokenav/ribbons_icon.4bpp.lz"
-
-gUnknown_08624280:: @ 8624280
- .incbin "graphics/pokenav/ribbons_icon_big.4bpp.lz"
-
-gUnknown_08624B98:: @ 8624B98
- .4byte 0x107D
- .4byte 0x2066
-
-gUnknown_08624BA0:: @ 8624BA0
- .4byte NULL
- .4byte sub_81D0C84
- .4byte sub_81D0D2C
- .4byte sub_81D0D8C
- .4byte sub_81D0E00
- .4byte sub_81D0C54
diff --git a/data/text/gift_ribbon_descriptions.inc b/data/text/gift_ribbon_descriptions.inc
deleted file mode 100644
index 47e004d67..000000000
--- a/data/text/gift_ribbon_descriptions.inc
+++ /dev/null
@@ -1,207 +0,0 @@
-gGiftRibbonDescriptionPart1_2003RegionalTourney:: @ 8623A74
- .string "2003 REGIONAL TOURNEY$"
-
-gGiftRibbonDescriptionPart2_Champion:: @ 8623A8A
- .string "CHAMPION RIBBON$"
-
-gGiftRibbonDescriptionPart1_2003NationalTourney:: @ 8623A9A
- .string "2003 NATIONAL TOURNEY$"
-
-gGiftRibbonDescriptionPart1_2003GlobalCup:: @ 8623AB0
- .string "2003 GLOBAL CUP$"
-
-gGiftRibbonDescriptionPart2_RunnerUp:: @ 8623AC0
- .string "Runner-up RIBBON$"
-
-gGiftRibbonDescriptionPart2_Semifinalist:: @ 8623AD1
- .string "Semifinalist RIBBON$"
-
-gGiftRibbonDescriptionPart1_2004RegionalTourney:: @ 8623AE5
- .string "2004 REGIONAL TOURNEY$"
-
-gGiftRibbonDescriptionPart1_2004NationalTourney:: @ 8623AFB
- .string "2004 NATIONAL TOURNEY$"
-
-gGiftRibbonDescriptionPart1_2004GlobalCup:: @ 8623B11
- .string "2004 GLOBAL CUP$"
-
-gGiftRibbonDescriptionPart1_2005RegionalTourney:: @ 8623B21
- .string "2005 REGIONAL TOURNEY$"
-
-gGiftRibbonDescriptionPart1_2005NationalTourney:: @ 8623B37
- .string "2005 NATIONAL TOURNEY$"
-
-gGiftRibbonDescriptionPart1_2005GlobalCup:: @ 8623B4D
- .string "2005 GLOBAL CUP$"
-
-gGiftRibbonDescriptionPart1_PokemonBattleCup:: @ 8623B5D
- .string "POKéMON BATTLE CUP$"
-
-gGiftRibbonDescriptionPart2_Participation:: @ 8623B70
- .string "Participation RIBBON$"
-
-gGiftRibbonDescriptionPart1_PokemonLeague:: @ 8623B85
- .string "POKéMON LEAGUE$"
-
-gGiftRibbonDescriptionPart1_AdvanceCup:: @ 8623B94
- .string "ADVANCE CUP$"
-
-gGiftRibbonDescriptionPart1_PokemonTournament:: @ 8623BA0
- .string "POKéMON Tournament$"
-
-gGiftRibbonDescriptionPart2_Participation2:: @ 8623BB3
- .string "Participation RIBBON$"
-
-gGiftRibbonDescriptionPart1_PokemonEvent:: @ 8623BC8
- .string "POKéMON Event$"
-
-gGiftRibbonDescriptionPart1_PokemonFestival:: @ 8623BD6
- .string "POKéMON Festival$"
-
-gGiftRibbonDescriptionPart1_DifficultyClearing:: @ 8623BE7
- .string "Difficulty-clearing$"
-
-gGiftRibbonDescriptionPart2_Commemorative:: @ 8623BFB
- .string "Commemorative RIBBON$"
-
-gGiftRibbonDescriptionPart1_ClearingAllChallenges:: @ 8623C10
- .string "RIBBON awarded for$"
-
-gGiftRibbonDescriptionPart2_ClearingAllChallenges:: @ 8623C23
- .string "clearing all challenges.$"
-
-gGiftRibbonDescriptionPart1_100StraightWin:: @ 8623C3C
- .string "100-straight Win$"
-
-gGiftRibbonDescriptionPart1_DarknessTower:: @ 8623C4D
- .string "DARKNESS TOWER Clear$"
-
-gGiftRibbonDescriptionPart1_RedTower:: @ 8623C62
- .string "RED TOWER Clear$"
-
-gGiftRibbonDescriptionPart1_BlackironTower:: @ 8623C72
- .string "BLACKIRON TOWER Clear$"
-
-gGiftRibbonDescriptionPart1_FinalTower:: @ 8623C88
- .string "FINAL TOWER Clear$"
-
-gGiftRibbonDescriptionPart1_LegendMaking:: @ 8623C9A
- .string "Legend-making$"
-
-gGiftRibbonDescriptionPart1_PokemonCenterTokyo:: @ 8623CA8
- .string "POKéMON CENTER TOKYO$"
-
-gGiftRibbonDescriptionPart1_PokemonCenterOsaka:: @ 8623CBD
- .string "POKéMON CENTER OSAKA$"
-
-gGiftRibbonDescriptionPart1_PokemonCenterNagoya:: @ 8623CD2
- .string "POKéMON CENTER NAGOYA$"
-
-gGiftRibbonDescriptionPart1_PokemonCenterNY:: @ 8623CE8
- .string "POKéMON CENTER NY$"
-
-gGiftRibbonDescriptionPart1_SummerHolidays:: @ 8623CFA
- .string "Summer Holidays RIBBON$"
-
-gGiftRibbonDescriptionPart2_EmptyString:: @ 8623D11
- .string "$"
-
-gGiftRibbonDescriptionPart1_WinterHolidays:: @ 8623D12
- .string "Winter Holidays RIBBON$"
-
-gGiftRibbonDescriptionPart1_SpringHolidays:: @ 8623D29
- .string "Spring Holidays RIBBON$"
-
-gGiftRibbonDescriptionPart1_Evergreen:: @ 8623D40
- .string "Evergreen RIBBON$"
-
-gGiftRibbonDescriptionPart1_SpecialHoliday:: @ 8623D51
- .string "Special Holiday RIBBON$"
-
-gGiftRibbonDescriptionPart1_HardWorker:: @ 8623D68
- .string "Hard Worker RIBBON$"
-
-gGiftRibbonDescriptionPart1_LotsOfFriends:: @ 8623D7B
- .string "Lots of Friends RIBBON$"
-
-gGiftRibbonDescriptionPart1_FullOfEnergy:: @ 8623D92
- .string "Full of Energy RIBBON$"
-
-gGiftRibbonDescriptionPart1_LovedPokemon:: @ 8623DA8
- .string "A commemorative RIBBON$"
-
-gGiftRibbonDescriptionPart2_LovedPokemon:: @ 8623DBF
- .string "for a loved POKéMON.$"
-
-gGiftRibbonDescriptionPart1_LoveForPokemon:: @ 8623DD4
- .string "RIBBON that shows$"
-
-gGiftRibbonDescriptionPart2_LoveForPokemon:: @ 8623DE6
- .string "love for POKéMON.$"
-
- .align 2
-gGiftRibbonDescriptionPointers:: @ 8623DF8
- .4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation
- .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation
- .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion
- .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp
- .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist
- .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation
- .4byte gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2
- .4byte gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2
- .4byte gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2
- .4byte gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges
- .4byte gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative
- .4byte gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString
- .4byte gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon
- .4byte gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon
diff --git a/data/text/ribbon_descriptions.inc b/data/text/ribbon_descriptions.inc
deleted file mode 100644
index 6dd82c288..000000000
--- a/data/text/ribbon_descriptions.inc
+++ /dev/null
@@ -1,84 +0,0 @@
-gRibbonDescriptionPart1_Champion:: @ 862383C
- .string "CHAMPION-beating, HALL$"
-
-gRibbonDescriptionPart2_Champion:: @ 8623853
- .string "OF FAME Member RIBBON$"
-
-gRibbonDescriptionPart1_CoolContest:: @ 8623869
- .string "COOL CONTEST$"
-
-gRibbonDescriptionPart1_BeautyContest:: @ 8623876
- .string "BEAUTY CONTEST$"
-
-gRibbonDescriptionPart1_CuteContest:: @ 8623885
- .string "CUTE CONTEST$"
-
-gRibbonDescriptionPart1_SmartContest:: @ 8623892
- .string "SMART CONTEST$"
-
-gRibbonDescriptionPart1_ToughContest:: @ 86238A0
- .string "TOUGH CONTEST$"
-
-gRibbonDescriptionPart2_NormalRank:: @ 86238AE
- .string "Normal Rank winner!$"
-
-gRibbonDescriptionPart2_SuperRank:: @ 86238C2
- .string "Super Rank winner!$"
-
-gRibbonDescriptionPart2_HyperRank:: @ 86238D5
- .string "Hyper Rank winner!$"
-
-gRibbonDescriptionPart2_MasterRank:: @ 86238E8
- .string "Master Rank winner!$"
-
-gRibbonDescriptionPart1_Winning:: @ 86238FC
- .string "For clearing LV50$"
-
-gRibbonDescriptionPart2_Winning:: @ 862390E
- .string "at the BATTLE TOWER.$"
-
-gRibbonDescriptionPart1_Victory:: @ 8623923
- .string "For clearing Open Level$"
-
-gRibbonDescriptionPart2_Victory:: @ 862393B
- .string "at the BATTLE TOWER.$"
-
-gRibbonDescriptionPart1_Artist:: @ 8623950
- .string "RIBBON for being chosen$"
-
-gRibbonDescriptionPart2_Artist:: @ 8623968
- .string "as a super sketch model.$"
-
-gRibbonDescriptionPart1_Effort:: @ 8623981
- .string "RIBBON awarded for$"
-
-gRibbonDescriptionPart2_Effort:: @ 8623994
- .string "being a hard worker.$"
-
- .align 2
-gRibbonDescriptionPointers:: @ 86239AC
- .4byte gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion
- .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank
- .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank
- .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank
- .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank
- .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank
- .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank
- .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank
- .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank
- .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank
- .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank
- .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank
- .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank
- .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank
- .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank
- .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank
- .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank
- .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank
- .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank
- .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank
- .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank
- .4byte gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning
- .4byte gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory
- .4byte gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist
- .4byte gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort
diff --git a/graphics/pokenav/city_maps/lilycove_0.bin b/graphics/pokenav/city_maps/lilycove_0.bin
index e8bf09eae..99895574d 100644
--- a/graphics/pokenav/city_maps/lilycove_0.bin
+++ b/graphics/pokenav/city_maps/lilycove_0.bin
@@ -1 +1,3 @@
-0000000000000000000000000000000 0 0000000000000000000 00000000000000000000 00000000000000000000000000000 \ No newline at end of file
+00000000000000000000000000000000 0 0 0 0 00 000000000
+0000 0 0 0 0 0 00 000000000
+000000 0 0 0 00 0000000000000000000000 \ No newline at end of file
diff --git a/graphics/pokenav/city_maps/lilycove_1.bin b/graphics/pokenav/city_maps/lilycove_1.bin
index 99895574d..e8bf09eae 100644
--- a/graphics/pokenav/city_maps/lilycove_1.bin
+++ b/graphics/pokenav/city_maps/lilycove_1.bin
@@ -1,3 +1 @@
-00000000000000000000000000000000 0 0 0 0 00 000000000
-0000 0 0 0 0 0 00 000000000
-000000 0 0 0 00 0000000000000000000000 \ No newline at end of file
+0000000000000000000000000000000 0 0000000000000000000 00000000000000000000 00000000000000000000000000000 \ No newline at end of file
diff --git a/graphics/pokenav/city_maps/mauville_0.bin b/graphics/pokenav/city_maps/mauville_0.bin
index 103d39e54..a0662010a 100644
--- a/graphics/pokenav/city_maps/mauville_0.bin
+++ b/graphics/pokenav/city_maps/mauville_0.bin
@@ -1,3 +1,3 @@
-000000000000000000000000000000000000000000 00 00 0 000000
-0000000000
-00000000 0 00 00000000000000000000000000 \ No newline at end of file
+000000000000000000000000000000000000
+000000 000 00 0 000000
+0000000000 0000000000000 0 00000000 00000000000000 \ No newline at end of file
diff --git a/graphics/pokenav/city_maps/mauville_1.bin b/graphics/pokenav/city_maps/mauville_1.bin
index a0662010a..103d39e54 100644
--- a/graphics/pokenav/city_maps/mauville_1.bin
+++ b/graphics/pokenav/city_maps/mauville_1.bin
@@ -1,3 +1,3 @@
-000000000000000000000000000000000000
-000000 000 00 0 000000
-0000000000 0000000000000 0 00000000 00000000000000 \ No newline at end of file
+000000000000000000000000000000000000000000 00 00 0 000000
+0000000000
+00000000 0 00 00000000000000000000000000 \ No newline at end of file
diff --git a/graphics/pokenav/city_maps/mossdeep_0.bin b/graphics/pokenav/city_maps/mossdeep_0.bin
index fd03cfe02..6c11d5624 100644
--- a/graphics/pokenav/city_maps/mossdeep_0.bin
+++ b/graphics/pokenav/city_maps/mossdeep_0.bin
@@ -1 +1,3 @@
-0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000 \ No newline at end of file
+00000000000000000000000000 0 00000000
+0000000000
+000000000 000000000 000 0 00000000 0000000000000000000000000 \ No newline at end of file
diff --git a/graphics/pokenav/city_maps/mossdeep_1.bin b/graphics/pokenav/city_maps/mossdeep_1.bin
index 6c11d5624..fd03cfe02 100644
--- a/graphics/pokenav/city_maps/mossdeep_1.bin
+++ b/graphics/pokenav/city_maps/mossdeep_1.bin
@@ -1,3 +1 @@
-00000000000000000000000000 0 00000000
-0000000000
-000000000 000000000 000 0 00000000 0000000000000000000000000 \ No newline at end of file
+0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000 \ No newline at end of file
diff --git a/include/strings.h b/include/strings.h
index a959821d4..5d8d2eb79 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -2723,4 +2723,25 @@ extern const u8 gText_NumberOfBattles[];
extern const u8 gText_Unknown[];
extern const u8 gText_TrainerCloseBy[];
+// pokenav_unk_2
+extern const u8 gUnknown_085EBCC5[];
+extern const u8 gUnknown_085EBCE8[];
+extern const u8 gUnknown_085EBD01[];
+extern const u8 gUnknown_085EBD1C[];
+extern const u8 gUnknown_085EBD34[];
+extern const u8 gUnknown_085EBD83[];
+extern const u8 gUnknown_085EBDA2[];
+extern const u8 gUnknown_085EBDBF[];
+extern const u8 gUnknown_085EBDDB[];
+extern const u8 gUnknown_085EBDEE[];
+extern const u8 gUnknown_085EBE06[];
+extern const u8 gUnknown_085EBE19[];
+extern const u8 gUnknown_085EBE2D[];
+extern const u8 gUnknown_085EBE41[];
+
+// pokenav_unk_4
+extern const u8 gUnknown_085EC017[];
+extern const u8 gUnknown_085EC01C[];
+extern const u8 gUnknown_085EC022[];
+
#endif // GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index 9bb3dbb41..0b416109d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -658,10 +658,13 @@ SECTIONS {
src/pokenav_main_menu.o(.rodata);
src/pokenav_match_call_ui.o(.rodata);
src/pokenav_unk_1.o(.rodata);
- data/pokenav.o(.rodata);
+ src/pokenav_unk_2.o(.rodata);
src/pokenav_unk_3.o(.rodata);
src/pokenav_unk_4.o(.rodata);
src/pokenav_unk_5.o(.rodata);
+ src/pokenav_unk_7.o(.rodata);
+ src/pokenav_unk_8.o(.rodata);
+ src/pokenav_unk_9.o(.rodata);
src/pokenav_unk_10.o(.rodata);
src/pokenav_match_call_data.o(.rodata);
src/menu_specialized.o(.rodata);
diff --git a/src/data/region_map/city_map_entries.h b/src/data/region_map/city_map_entries.h
new file mode 100644
index 000000000..7b8361a7c
--- /dev/null
+++ b/src/data/region_map/city_map_entries.h
@@ -0,0 +1,113 @@
+const struct CityMapEntry gPokenavCityMaps[] =
+{
+ {
+ .mapSecId = 0,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Littleroot_0,
+ },
+ {
+ .mapSecId = 1,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Oldale_0,
+ },
+ {
+ .mapSecId = 2,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Dewford_0,
+ },
+ {
+ .mapSecId = 3,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Lavarige_0,
+ },
+ {
+ .mapSecId = 4,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Fallarbor_0,
+ },
+ {
+ .mapSecId = 5,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Verdanturf_0,
+ },
+ {
+ .mapSecId = 6,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Pacifidlog_0,
+ },
+ {
+ .mapSecId = 7,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Petalburg_0,
+ },
+ {
+ .mapSecId = 8,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Slateport_0,
+ },
+ {
+ .mapSecId = 8,
+ .index = 1,
+ .tilemap = gPokenavCityMap_Slateport_1,
+ },
+ {
+ .mapSecId = 9,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Mauville_0,
+ },
+ {
+ .mapSecId = 9,
+ .index = 1,
+ .tilemap = gPokenavCityMap_Mauville_1,
+ },
+ {
+ .mapSecId = 10,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Rustboro_0,
+ },
+ {
+ .mapSecId = 10,
+ .index = 1,
+ .tilemap = gPokenavCityMap_Rustboro_1,
+ },
+ {
+ .mapSecId = 11,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Fortree_0,
+ },
+ {
+ .mapSecId = 12,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Lilycove_0,
+ },
+ {
+ .mapSecId = 12,
+ .index = 1,
+ .tilemap = gPokenavCityMap_Lilycove_1,
+ },
+ {
+ .mapSecId = 13,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Mossdeep_0,
+ },
+ {
+ .mapSecId = 13,
+ .index = 1,
+ .tilemap = gPokenavCityMap_Mossdeep_1,
+ },
+ {
+ .mapSecId = 14,
+ .index = 0,
+ .tilemap = gPokenavCityMap_Sootopolis_0,
+ },
+ {
+ .mapSecId = 15,
+ .index = 0,
+ .tilemap = gPokenavCityMap_EverGrande_0,
+ },
+ {
+ .mapSecId = 15,
+ .index = 1,
+ .tilemap = gPokenavCityMap_EverGrande_1,
+ },
+};
diff --git a/src/data/region_map/city_map_tilemaps.h b/src/data/region_map/city_map_tilemaps.h
new file mode 100644
index 000000000..8a8a931f9
--- /dev/null
+++ b/src/data/region_map/city_map_tilemaps.h
@@ -0,0 +1,22 @@
+const u32 gPokenavCityMap_Lavarige_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz");
+const u32 gPokenavCityMap_Fallarbor_0[] = INCBIN_U32("graphics/pokenav/city_maps/fallarbor_0.bin.lz");
+const u32 gPokenavCityMap_Fortree_0[] = INCBIN_U32("graphics/pokenav/city_maps/fortree_0.bin.lz");
+const u32 gPokenavCityMap_Slateport_0[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_0.bin.lz");
+const u32 gPokenavCityMap_Slateport_1[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_1.bin.lz");
+const u32 gPokenavCityMap_Rustboro_0[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_0.bin.lz");
+const u32 gPokenavCityMap_Rustboro_1[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_1.bin.lz");
+const u32 gPokenavCityMap_Pacifidlog_0[] = INCBIN_U32("graphics/pokenav/city_maps/pacifidlog_0.bin.lz");
+const u32 gPokenavCityMap_Mauville_1[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_1.bin.lz");
+const u32 gPokenavCityMap_Mauville_0[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_0.bin.lz");
+const u32 gPokenavCityMap_Oldale_0[] = INCBIN_U32("graphics/pokenav/city_maps/oldale_0.bin.lz");
+const u32 gPokenavCityMap_Lilycove_1[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_1.bin.lz");
+const u32 gPokenavCityMap_Lilycove_0[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_0.bin.lz");
+const u32 gPokenavCityMap_Littleroot_0[] = INCBIN_U32("graphics/pokenav/city_maps/littleroot_0.bin.lz");
+const u32 gPokenavCityMap_Dewford_0[] = INCBIN_U32("graphics/pokenav/city_maps/dewford_0.bin.lz");
+const u32 gPokenavCityMap_Sootopolis_0[] = INCBIN_U32("graphics/pokenav/city_maps/sootopolis_0.bin.lz");
+const u32 gPokenavCityMap_EverGrande_0[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_0.bin.lz");
+const u32 gPokenavCityMap_EverGrande_1[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_1.bin.lz");
+const u32 gPokenavCityMap_Verdanturf_0[] = INCBIN_U32("graphics/pokenav/city_maps/verdanturf_0.bin.lz");
+const u32 gPokenavCityMap_Mossdeep_1[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_1.bin.lz");
+const u32 gPokenavCityMap_Mossdeep_0[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_0.bin.lz");
+const u32 gPokenavCityMap_Petalburg_0[] = INCBIN_U32("graphics/pokenav/city_maps/petalburg_0.bin.lz");
diff --git a/src/data/text/gift_ribbon_descriptions.h b/src/data/text/gift_ribbon_descriptions.h
new file mode 100644
index 000000000..ea108be18
--- /dev/null
+++ b/src/data/text/gift_ribbon_descriptions.h
@@ -0,0 +1,115 @@
+const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _("2003 REGIONAL TOURNEY");
+const u8 gGiftRibbonDescriptionPart2_Champion[] = _("CHAMPION RIBBON");
+const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _("2003 NATIONAL TOURNEY");
+const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _("2003 GLOBAL CUP");
+const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _("Runner-up RIBBON");
+const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _("Semifinalist RIBBON");
+const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _("2004 REGIONAL TOURNEY");
+const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _("2004 NATIONAL TOURNEY");
+const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _("2004 GLOBAL CUP");
+const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _("2005 REGIONAL TOURNEY");
+const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _("2005 NATIONAL TOURNEY");
+const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _("2005 GLOBAL CUP");
+const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _("POKéMON BATTLE CUP");
+const u8 gGiftRibbonDescriptionPart2_Participation[] = _("Participation RIBBON");
+const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _("POKéMON LEAGUE");
+const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _("ADVANCE CUP");
+const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _("POKéMON Tournament");
+const u8 gGiftRibbonDescriptionPart2_Participation2[] = _("Participation RIBBON");
+const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _("POKéMON Event");
+const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _("POKéMON Festival");
+const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _("Difficulty-clearing");
+const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _("Commemorative RIBBON");
+const u8 gGiftRibbonDescriptionPart1_ClearingAllChallenges[] = _("RIBBON awarded for");
+const u8 gGiftRibbonDescriptionPart2_ClearingAllChallenges[] = _("clearing all challenges.");
+const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _("100-straight Win");
+const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _("DARKNESS TOWER Clear");
+const u8 gGiftRibbonDescriptionPart1_RedTower[] = _("RED TOWER Clear");
+const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _("BLACKIRON TOWER Clear");
+const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _("FINAL TOWER Clear");
+const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _("Legend-making");
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _("POKéMON CENTER TOKYO");
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _("POKéMON CENTER OSAKA");
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _("POKéMON CENTER NAGOYA");
+const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _("POKéMON CENTER NY");
+const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _("Summer Holidays RIBBON");
+const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _("");
+const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _("Winter Holidays RIBBON");
+const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _("Spring Holidays RIBBON");
+const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _("Evergreen RIBBON");
+const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _("Special Holiday RIBBON");
+const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _("Hard Worker RIBBON");
+const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _("Lots of Friends RIBBON");
+const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _("Full of Energy RIBBON");
+const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _("A commemorative RIBBON");
+const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _("for a loved POKéMON.");
+const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _("RIBBON that shows");
+const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _("love for POKéMON.");
+
+const u8 *const gGiftRibbonDescriptionPointers[][2] =
+{
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist},
+ {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation},
+ {gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2},
+ {gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges},
+ {gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative},
+ {gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString},
+ {gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon},
+ {gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon}
+};
diff --git a/src/data/text/match_call_messages.h b/src/data/text/match_call_messages.h
new file mode 100644
index 000000000..c3015b5a7
--- /dev/null
+++ b/src/data/text/match_call_messages.h
@@ -0,0 +1,476 @@
+#define MCFLAVOR(name) {gMatchCallFlavorText_##name##_Strategy, \
+ gMatchCallFlavorText_##name##_Pokemon, \
+ gMatchCallFlavorText_##name##_Intro1, \
+ gMatchCallFlavorText_##name##_Intro2}
+
+const u8 gMatchCallFlavorText_AromaLady_Rose_Strategy[] = _("Becalm fighting emotions.");
+const u8 gMatchCallFlavorText_AromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON.");
+const u8 gMatchCallFlavorText_AromaLady_Rose_Intro1[] = _("Soothing aromas make the");
+const u8 gMatchCallFlavorText_AromaLady_Rose_Intro2[] = _("body and mind healthy.");
+
+const u8 gMatchCallFlavorText_RuinManiac_Andres_Strategy[] = _("I'm not very good at this.");
+const u8 gMatchCallFlavorText_RuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners.");
+const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro1[] = _("I am searching for undersea");
+const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro2[] = _("ruins and relics.");
+
+const u8 gMatchCallFlavorText_RuinManiac_Dusty_Strategy[] = _("Overwhelm with power!");
+const u8 gMatchCallFlavorText_RuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON.");
+const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro1[] = _("In search of ancient lore,");
+const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro2[] = _("I travel the world.");
+
+const u8 gMatchCallFlavorText_Tuber_Lola_Strategy[] = _("I'm going to try hard!");
+const u8 gMatchCallFlavorText_Tuber_Lola_Pokemon[] = _("Good swimmer POKéMON.");
+const u8 gMatchCallFlavorText_Tuber_Lola_Intro1[] = _("I wish I could swim without");
+const u8 gMatchCallFlavorText_Tuber_Lola_Intro2[] = _("using an inner tube.");
+
+const u8 gMatchCallFlavorText_Tuber_Ricky_Strategy[] = _("I don't know. I'll try hard.");
+const u8 gMatchCallFlavorText_Tuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies.");
+const u8 gMatchCallFlavorText_Tuber_Ricky_Intro1[] = _("It's not like I can't swim.");
+const u8 gMatchCallFlavorText_Tuber_Ricky_Intro2[] = _("I just like my inner tube.");
+
+const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Strategy[] = _("We split our duties.");
+const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON.");
+const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together");
+const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother.");
+
+const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Strategy[] = _("I finish with power moves!");
+const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Pokemon[] = _("A mix of different types.");
+const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate");
+const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro2[] = _("TRAINER!");
+
+const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness.");
+const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Pokemon[] = _("Balance is crucial.");
+const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro1[] = _("My goal is to become the");
+const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION.");
+
+const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Strategy[] = _("Upset the opponent.");
+const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Pokemon[] = _("Type doesn't matter.");
+const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro1[] = _("I'm a top student at the");
+const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL.");
+
+const u8 gMatchCallFlavorText_HexManiac_Valerie_Strategy[] = _("Slow, steady suffering.");
+const u8 gMatchCallFlavorText_HexManiac_Valerie_Pokemon[] = _("Scary to meet at night.");
+const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro1[] = _("I see things that others");
+const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro2[] = _("can't see...");
+
+const u8 gMatchCallFlavorText_Lady_Cindy_Strategy[] = _("Anything to win.");
+const u8 gMatchCallFlavorText_Lady_Cindy_Pokemon[] = _("Gorgeous type!");
+const u8 gMatchCallFlavorText_Lady_Cindy_Intro1[] = _("I have a pool specially for");
+const u8 gMatchCallFlavorText_Lady_Cindy_Intro2[] = _("my POKéMON at home.");
+
+const u8 gMatchCallFlavorText_Beauty_Thalia_Strategy[] = _("You'll fall under my spell!");
+const u8 gMatchCallFlavorText_Beauty_Thalia_Pokemon[] = _("Mature WATER type.");
+const u8 gMatchCallFlavorText_Beauty_Thalia_Intro1[] = _("I dream of cruising around");
+const u8 gMatchCallFlavorText_Beauty_Thalia_Intro2[] = _("the world on a luxury liner.");
+
+const u8 gMatchCallFlavorText_Beauty_Jessica_Strategy[] = _("I'll lead you astray.");
+const u8 gMatchCallFlavorText_Beauty_Jessica_Pokemon[] = _("Cute, of course.");
+const u8 gMatchCallFlavorText_Beauty_Jessica_Intro1[] = _("I love the SAFARI ZONE.");
+const u8 gMatchCallFlavorText_Beauty_Jessica_Intro2[] = _("I seem to end up there.");
+
+const u8 gMatchCallFlavorText_RichBoy_Winston_Strategy[] = _("Strategy? Who needs it?");
+const u8 gMatchCallFlavorText_RichBoy_Winston_Pokemon[] = _("I spent big money on it!");
+const u8 gMatchCallFlavorText_RichBoy_Winston_Intro1[] = _("I, being rich, sleep in a");
+const u8 gMatchCallFlavorText_RichBoy_Winston_Intro2[] = _("custom POKéMON bed.");
+
+const u8 gMatchCallFlavorText_PokeManiac_Steve_Strategy[] = _("Wrestle down with power.");
+const u8 gMatchCallFlavorText_PokeManiac_Steve_Pokemon[] = _("Took all night to catch.");
+const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro1[] = _("Big, burly, and buff");
+const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro2[] = _("POKéMON are the best...");
+
+const u8 gMatchCallFlavorText_Swimmer_Tony_Strategy[] = _("Ram at full speed!");
+const u8 gMatchCallFlavorText_Swimmer_Tony_Pokemon[] = _("Funky WATER type!");
+const u8 gMatchCallFlavorText_Swimmer_Tony_Intro1[] = _("If I can't be out swimming,");
+const u8 gMatchCallFlavorText_Swimmer_Tony_Intro2[] = _("I'll be pumping weights.");
+
+const u8 gMatchCallFlavorText_BlackBelt_Nob_Strategy[] = _("Grand slam pummeling!");
+const u8 gMatchCallFlavorText_BlackBelt_Nob_Pokemon[] = _("FIGHTING type.");
+const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust");
+const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro2[] = _("ten roof tiles!");
+
+const u8 gMatchCallFlavorText_BlackBelt_Koji_Strategy[] = _("Witness karate power!");
+const u8 gMatchCallFlavorText_BlackBelt_Koji_Pokemon[] = _("My partners in training!");
+const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro1[] = _("Let us discuss matters of");
+const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro2[] = _("the world with bare fists!");
+
+const u8 gMatchCallFlavorText_Guitarist_Fernando_Strategy[] = _("Rock to stunning sounds!");
+const u8 gMatchCallFlavorText_Guitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!");
+const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro1[] = _("My compositions will shock");
+const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro2[] = _("you and stun you!");
+
+const u8 gMatchCallFlavorText_Guitarist_Dalton_Strategy[] = _("I'll electrify you!");
+const u8 gMatchCallFlavorText_Guitarist_Dalton_Pokemon[] = _("They're ELECTRIC!");
+const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro1[] = _("I want to make people cry");
+const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro2[] = _("with songs from my heart.");
+
+const u8 gMatchCallFlavorText_Kindler_Bernie_Strategy[] = _("Burn it all down!");
+const u8 gMatchCallFlavorText_Kindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON.");
+const u8 gMatchCallFlavorText_Kindler_Bernie_Intro1[] = _("When you light a campfire,");
+const u8 gMatchCallFlavorText_Kindler_Bernie_Intro2[] = _("be sure there's some water.");
+
+const u8 gMatchCallFlavorText_Camper_Ethan_Strategy[] = _("Hang in and be tenacious!");
+const u8 gMatchCallFlavorText_Camper_Ethan_Pokemon[] = _("I'll raise any POKéMON.");
+const u8 gMatchCallFlavorText_Camper_Ethan_Intro1[] = _("POKéMON raised in the wild");
+const u8 gMatchCallFlavorText_Camper_Ethan_Intro2[] = _("grow strong!");
+
+const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail.");
+const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Pokemon[] = _("We've had them for years.");
+const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've");
+const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON.");
+
+const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Strategy[] = _("Attack in waves!");
+const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool.");
+const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro1[] = _("I go into the forest every");
+const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON.");
+
+const u8 gMatchCallFlavorText_Psychic_Cameron_Strategy[] = _("Daze and confuse!");
+const u8 gMatchCallFlavorText_Psychic_Cameron_Pokemon[] = _("Ones with weird powers.");
+const u8 gMatchCallFlavorText_Psychic_Cameron_Intro1[] = _("I can see through exactly");
+const u8 gMatchCallFlavorText_Psychic_Cameron_Intro2[] = _("what you're thinking!");
+
+const u8 gMatchCallFlavorText_Psychic_Jacki_Strategy[] = _("Battle at full power.");
+const u8 gMatchCallFlavorText_Psychic_Jacki_Pokemon[] = _("POKéMON of many mysteries.");
+const u8 gMatchCallFlavorText_Psychic_Jacki_Intro1[] = _("When we spoke, I was really");
+const u8 gMatchCallFlavorText_Psychic_Jacki_Intro2[] = _("using telepathy.");
+
+const u8 gMatchCallFlavorText_Gentleman_Walter_Strategy[] = _("Calm and collected.");
+const u8 gMatchCallFlavorText_Gentleman_Walter_Pokemon[] = _("POKéMON of distinction.");
+const u8 gMatchCallFlavorText_Gentleman_Walter_Intro1[] = _("We enjoy a spot of tea");
+const u8 gMatchCallFlavorText_Gentleman_Walter_Intro2[] = _("every day. It's imported.");
+
+const u8 gMatchCallFlavorText_SchoolKid_Karen_Strategy[] = _("I use my head to battle.");
+const u8 gMatchCallFlavorText_SchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!");
+const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro1[] = _("My daddy gives me spending");
+const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro2[] = _("money if I ace a test.");
+
+const u8 gMatchCallFlavorText_SchoolKid_Jerry_Strategy[] = _("My knowledge rules!");
+const u8 gMatchCallFlavorText_SchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!");
+const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON");
+const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro2[] = _("researcher in the future.");
+
+const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first.");
+const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like.");
+const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior");
+const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!");
+
+const u8 gMatchCallFlavorText_Pokefan_Isabel_Strategy[] = _("Go for it, my dears!");
+const u8 gMatchCallFlavorText_Pokefan_Isabel_Pokemon[] = _("I have no likes or dislikes.");
+const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro1[] = _("While out shopping for");
+const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro2[] = _("supper, I battle too.");
+
+const u8 gMatchCallFlavorText_Pokefan_Miguel_Strategy[] = _("I battle with love!");
+const u8 gMatchCallFlavorText_Pokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!");
+const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro1[] = _("It's important to build");
+const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro2[] = _("trust with your POKéMON.");
+
+const u8 gMatchCallFlavorText_Expert_Timothy_Strategy[] = _("I see through your moves!");
+const u8 gMatchCallFlavorText_Expert_Timothy_Pokemon[] = _("The essence of FIGHTING.");
+const u8 gMatchCallFlavorText_Expert_Timothy_Intro1[] = _("I'm not ready to give way");
+const u8 gMatchCallFlavorText_Expert_Timothy_Intro2[] = _("to the young yet!");
+
+const u8 gMatchCallFlavorText_Expert_Shelby_Strategy[] = _("Attack while defending.");
+const u8 gMatchCallFlavorText_Expert_Shelby_Pokemon[] = _("The FIGHTING type.");
+const u8 gMatchCallFlavorText_Expert_Shelby_Intro1[] = _("Being old, I have my own");
+const u8 gMatchCallFlavorText_Expert_Shelby_Intro2[] = _("style of battling.");
+
+const u8 gMatchCallFlavorText_Youngster_Calvin_Strategy[] = _("I do what I can.");
+const u8 gMatchCallFlavorText_Youngster_Calvin_Pokemon[] = _("I use different types.");
+const u8 gMatchCallFlavorText_Youngster_Calvin_Intro1[] = _("I'm going to keep working");
+const u8 gMatchCallFlavorText_Youngster_Calvin_Intro2[] = _("until I beat a GYM LEADER.");
+
+const u8 gMatchCallFlavorText_Fisherman_Elliot_Strategy[] = _("I battle patiently.");
+const u8 gMatchCallFlavorText_Fisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!");
+const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro1[] = _("I'm the world's only guy to");
+const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro2[] = _("catch a huge POKéMON!");
+
+const u8 gMatchCallFlavorText_Triathlete_Isaiah_Strategy[] = _("Exploit the environment!");
+const u8 gMatchCallFlavorText_Triathlete_Isaiah_Pokemon[] = _("All hail the WATER type!");
+const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro1[] = _("I won't be beaten by some");
+const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!");
+
+const u8 gMatchCallFlavorText_Triathlete_Maria_Strategy[] = _("Speed above all!");
+const u8 gMatchCallFlavorText_Triathlete_Maria_Pokemon[] = _("I use a speedy POKéMON.");
+const u8 gMatchCallFlavorText_Triathlete_Maria_Intro1[] = _("A marathon is a challenge");
+const u8 gMatchCallFlavorText_Triathlete_Maria_Intro2[] = _("against your own self.");
+
+const u8 gMatchCallFlavorText_Triathlete_Abigail_Strategy[] = _("Defense is crucial.");
+const u8 gMatchCallFlavorText_Triathlete_Abigail_Pokemon[] = _("My POKéMON is solid.");
+const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro1[] = _("I started this for dieting,");
+const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro2[] = _("but I got right into it.");
+
+const u8 gMatchCallFlavorText_Triathlete_Dylan_Strategy[] = _("Strike before stricken!");
+const u8 gMatchCallFlavorText_Triathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!");
+const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro1[] = _("If you ran and ran, you'd");
+const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro2[] = _("become one with the wind.");
+
+const u8 gMatchCallFlavorText_Triathlete_Katelyn_Strategy[] = _("All-out offensive!");
+const u8 gMatchCallFlavorText_Triathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!");
+const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro1[] = _("I must swim over 6 miles");
+const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro2[] = _("every day.");
+
+const u8 gMatchCallFlavorText_Triathlete_Benjamin_Strategy[] = _("Push and push again!");
+const u8 gMatchCallFlavorText_Triathlete_Benjamin_Pokemon[] = _("The strength of STEEL.");
+const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro1[] = _("If you're sweating, get");
+const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro2[] = _("fluids into you regularly.");
+
+const u8 gMatchCallFlavorText_Triathlete_Pablo_Strategy[] = _("Draw the power of WATER.");
+const u8 gMatchCallFlavorText_Triathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON.");
+const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro1[] = _("Training POKéMON is good,");
+const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro2[] = _("but don't neglect yourself.");
+
+const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!");
+const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!");
+const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the");
+const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro2[] = _("strongest one day!");
+
+const u8 gMatchCallFlavorText_BirdKeeper_Robert_Strategy[] = _("I'll show you my technique!");
+const u8 gMatchCallFlavorText_BirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS.");
+const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my");
+const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro2[] = _("love to that girl!");
+
+const u8 gMatchCallFlavorText_NinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!");
+const u8 gMatchCallFlavorText_NinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON.");
+const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro1[] = _("I undertake training so");
+const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro2[] = _("that I may become a ninja.");
+
+const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Strategy[] = _("The first strike wins!");
+const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type.");
+const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,");
+const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!");
+
+const u8 gMatchCallFlavorText_ParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!");
+const u8 gMatchCallFlavorText_ParasolLady_Madeline_Pokemon[] = _("I'll raise anything.");
+const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro1[] = _("UV rays are your skin's");
+const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro2[] = _("enemy. Get protected.");
+
+const u8 gMatchCallFlavorText_Swimmer_Jenny_Strategy[] = _("No mercy!");
+const u8 gMatchCallFlavorText_Swimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON.");
+const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro1[] = _("I have too many fans.");
+const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro2[] = _("I was interviewed on TV.");
+
+const u8 gMatchCallFlavorText_Picnicker_Diana_Strategy[] = _("I think about this & that.");
+const u8 gMatchCallFlavorText_Picnicker_Diana_Pokemon[] = _("I like all POKéMON.");
+const u8 gMatchCallFlavorText_Picnicker_Diana_Intro1[] = _("What lies beyond that");
+const u8 gMatchCallFlavorText_Picnicker_Diana_Intro2[] = _("yonder hill?");
+
+const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Strategy[] = _("We battle together!");
+const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Pokemon[] = _("We train together!");
+const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,");
+const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro2[] = _("but different desserts.");
+
+const u8 gMatchCallFlavorText_Sailor_Ernest_Strategy[] = _("I force things with power!");
+const u8 gMatchCallFlavorText_Sailor_Ernest_Pokemon[] = _("WATER and FIGHTING types.");
+const u8 gMatchCallFlavorText_Sailor_Ernest_Intro1[] = _("Seamen are rough spirits!");
+const u8 gMatchCallFlavorText_Sailor_Ernest_Intro2[] = _("Any complaints?");
+
+const u8 gMatchCallFlavorText_Sailor_Cory_Strategy[] = _("Up for a fight anytime!");
+const u8 gMatchCallFlavorText_Sailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!");
+const u8 gMatchCallFlavorText_Sailor_Cory_Intro1[] = _("If you want to shout loud,");
+const u8 gMatchCallFlavorText_Sailor_Cory_Intro2[] = _("suck in air with your belly!");
+
+const u8 gMatchCallFlavorText_Collector_Edwin_Strategy[] = _("Protect POKéMON from harm.");
+const u8 gMatchCallFlavorText_Collector_Edwin_Pokemon[] = _("I love rare POKéMON.");
+const u8 gMatchCallFlavorText_Collector_Edwin_Intro1[] = _("I want to collect all the");
+const u8 gMatchCallFlavorText_Collector_Edwin_Intro2[] = _("world's rare POKéMON.");
+
+const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Strategy[] = _("I count on power.");
+const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children.");
+const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and");
+const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON.");
+
+const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Strategy[] = _("Full-on attack!");
+const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it.");
+const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for");
+const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles.");
+
+const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care.");
+const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON.");
+const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you");
+const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro2[] = _("meet with respect.");
+
+const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON.");
+const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON.");
+const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro1[] = _("I'm training for rescue");
+const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro2[] = _("work with my POKéMON.");
+
+const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Strategy[] = _("Attack in waves!");
+const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Pokemon[] = _("I use different types.");
+const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro1[] = _("Those who destroy nature");
+const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro2[] = _("must never be forgiven!");
+
+const u8 gMatchCallFlavorText_Lass_Haley_Strategy[] = _("I'll show you some guts!");
+const u8 gMatchCallFlavorText_Lass_Haley_Pokemon[] = _("Cute POKéMON are my faves!");
+const u8 gMatchCallFlavorText_Lass_Haley_Intro1[] = _("After a battle, I always");
+const u8 gMatchCallFlavorText_Lass_Haley_Intro2[] = _("bathe with my POKéMON.");
+
+const u8 gMatchCallFlavorText_BugCatcher_James_Strategy[] = _("Lightning-fast attack!");
+const u8 gMatchCallFlavorText_BugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!");
+const u8 gMatchCallFlavorText_BugCatcher_James_Intro1[] = _("If you want to catch BUG");
+const u8 gMatchCallFlavorText_BugCatcher_James_Intro2[] = _("POKéMON, wake up early.");
+
+const u8 gMatchCallFlavorText_Hiker_Trent_Strategy[] = _("I battle with power.");
+const u8 gMatchCallFlavorText_Hiker_Trent_Pokemon[] = _("Hard-bodied POKéMON.");
+const u8 gMatchCallFlavorText_Hiker_Trent_Intro1[] = _("I've been planning a month");
+const u8 gMatchCallFlavorText_Hiker_Trent_Intro2[] = _("for today's hike.");
+
+const u8 gMatchCallFlavorText_Hiker_Sawyer_Strategy[] = _("I like it hot!");
+const u8 gMatchCallFlavorText_Hiker_Sawyer_Pokemon[] = _("Hot POKéMON!");
+const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro1[] = _("As much as I love POKéMON,");
+const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro2[] = _("I surely like hiking!");
+
+const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!");
+const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!");
+const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!");
+const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!");
+
+const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Strategy[] = _("We let it all hang out.");
+const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught.");
+const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown");
+const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro2[] = _("stronger together.");
+
+const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack.");
+const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON.");
+const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears");
+const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility.");
+
+const u8 gMatchCallFlavorText_TheBigHit_Brawly_Strategy[] = _("Direct physical action!");
+const u8 gMatchCallFlavorText_TheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!");
+const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro1[] = _("The world awaits me as the");
+const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro2[] = _("next big wave!");
+
+const u8 gMatchCallFlavorText_SwellShock_Wattson_Strategy[] = _("I choose to electrify.");
+const u8 gMatchCallFlavorText_SwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!");
+const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro1[] = _("One must never throw a");
+const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro2[] = _("match. Even I must not.");
+
+const u8 gMatchCallFlavorText_PassionBurn_Flannery_Strategy[] = _("Battle aggressively.");
+const u8 gMatchCallFlavorText_PassionBurn_Flannery_Pokemon[] = _("Burn with passion!");
+const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro1[] = _("Completely wash away daily");
+const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!");
+
+const u8 gMatchCallFlavorText_ReliableOne_Dad_Strategy[] = _("I flexibly adapt my style.");
+const u8 gMatchCallFlavorText_ReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner.");
+const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from");
+const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro2[] = _("home to here every day.");
+
+const u8 gMatchCallFlavorText_SkyTamer_Winona_Strategy[] = _("I take advantage of speed.");
+const u8 gMatchCallFlavorText_SkyTamer_Winona_Pokemon[] = _("Graceful sky dancers.");
+const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro1[] = _("The ultimate would be to");
+const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro2[] = _("live as one with nature.");
+
+const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation.");
+const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON.");
+const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling");
+const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!");
+
+const u8 gMatchCallFlavorText_DandyCharm_Juan_Strategy[] = _("I use splendid waterpower.");
+const u8 gMatchCallFlavorText_DandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!");
+const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro1[] = _("The adulation of beautiful");
+const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro2[] = _("ladies fills me with energy!");
+
+const u8 gMatchCallFlavorText_EliteFour_Sidney_Strategy[] = _("Offense over defense!");
+const u8 gMatchCallFlavorText_EliteFour_Sidney_Pokemon[] = _("The DARK side's beauties.");
+const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro1[] = _("They said I was a punk, but");
+const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!");
+
+const u8 gMatchCallFlavorText_EliteFour_Phoebe_Strategy[] = _("Confuse and confound.");
+const u8 gMatchCallFlavorText_EliteFour_Phoebe_Pokemon[] = _("There's nothing definite.");
+const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at");
+const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?");
+
+const u8 gMatchCallFlavorText_EliteFour_Glacia_Strategy[] = _("I use items for help.");
+const u8 gMatchCallFlavorText_EliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!");
+const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro1[] = _("The ICE type can be better");
+const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro2[] = _("trained in this hot land.");
+
+const u8 gMatchCallFlavorText_EliteFour_Drake_Strategy[] = _("Harness strong abilities.");
+const u8 gMatchCallFlavorText_EliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!");
+const u8 gMatchCallFlavorText_EliteFour_Drake_Intro1[] = _("I dedicate myself to the");
+const u8 gMatchCallFlavorText_EliteFour_Drake_Intro2[] = _("POKéMON that saved me.");
+
+const u8 gMatchCallFlavorText_Champion_Wallace_Strategy[] = _("Dignity and respect.");
+const u8 gMatchCallFlavorText_Champion_Wallace_Pokemon[] = _("I prefer POKéMON of grace.");
+const u8 gMatchCallFlavorText_Champion_Wallace_Intro1[] = _("I represent beauty as");
+const u8 gMatchCallFlavorText_Champion_Wallace_Intro2[] = _("well as intelligence.");
+
+const u8 *const gMatchCallMessages[][4] =
+{
+ [REMATCH_ROSE] = MCFLAVOR(AromaLady_Rose),
+ [REMATCH_ANDRES] = MCFLAVOR(RuinManiac_Andres),
+ [REMATCH_DUSTY] = MCFLAVOR(RuinManiac_Dusty),
+ [REMATCH_LOLA] = MCFLAVOR(Tuber_Lola),
+ [REMATCH_RICKY] = MCFLAVOR(Tuber_Ricky),
+ [REMATCH_LILA_AND_ROY] = MCFLAVOR(SisAndBro_LilaAndRoy),
+ [REMATCH_CRISTIN] = MCFLAVOR(Cooltrainer_Cristin),
+ [REMATCH_BROOKE] = MCFLAVOR(Cooltrainer_Brooke),
+ [REMATCH_WILTON] = MCFLAVOR(Cooltrainer_Wilton),
+ [REMATCH_VALERIE] = MCFLAVOR(HexManiac_Valerie),
+ [REMATCH_CINDY] = MCFLAVOR(Lady_Cindy),
+ [REMATCH_THALIA] = MCFLAVOR(Beauty_Thalia),
+ [REMATCH_JESSICA] = MCFLAVOR(Beauty_Jessica),
+ [REMATCH_WINSTON] = MCFLAVOR(RichBoy_Winston),
+ [REMATCH_STEVE] = MCFLAVOR(PokeManiac_Steve),
+ [REMATCH_TONY] = MCFLAVOR(Swimmer_Tony),
+ [REMATCH_NOB] = MCFLAVOR(BlackBelt_Nob),
+ [REMATCH_KOJI] = MCFLAVOR(BlackBelt_Koji),
+ [REMATCH_FERNANDO] = MCFLAVOR(Guitarist_Fernando),
+ [REMATCH_DALTON] = MCFLAVOR(Guitarist_Dalton),
+ [REMATCH_BERNIE] = MCFLAVOR(Kindler_Bernie),
+ [REMATCH_ETHAN] = MCFLAVOR(Camper_Ethan),
+ [REMATCH_JOHN_AND_JAY] = MCFLAVOR(OldCouple_JohnAndJay),
+ [REMATCH_JEFFREY] = MCFLAVOR(BugManiac_Jeffrey),
+ [REMATCH_CAMERON] = MCFLAVOR(Psychic_Cameron),
+ [REMATCH_JACKI] = MCFLAVOR(Psychic_Jacki),
+ [REMATCH_WALTER] = MCFLAVOR(Gentleman_Walter),
+ [REMATCH_KAREN] = MCFLAVOR(SchoolKid_Karen),
+ [REMATCH_JERRY] = MCFLAVOR(SchoolKid_Jerry),
+ [REMATCH_ANNA_AND_MEG] = MCFLAVOR(SrAndJr_AnnaAndMeg),
+ [REMATCH_ISABEL] = MCFLAVOR(Pokefan_Isabel),
+ [REMATCH_MIGUEL] = MCFLAVOR(Pokefan_Miguel),
+ [REMATCH_TIMOTHY] = MCFLAVOR(Expert_Timothy),
+ [REMATCH_SHELBY] = MCFLAVOR(Expert_Shelby),
+ [REMATCH_CALVIN] = MCFLAVOR(Youngster_Calvin),
+ [REMATCH_ELLIOT] = MCFLAVOR(Fisherman_Elliot),
+ [REMATCH_ISAIAH] = MCFLAVOR(Triathlete_Isaiah),
+ [REMATCH_MARIA] = MCFLAVOR(Triathlete_Maria),
+ [REMATCH_ABIGAIL] = MCFLAVOR(Triathlete_Abigail),
+ [REMATCH_DYLAN] = MCFLAVOR(Triathlete_Dylan),
+ [REMATCH_KATELYN] = MCFLAVOR(Triathlete_Katelyn),
+ [REMATCH_BENJAMIN] = MCFLAVOR(Triathlete_Benjamin),
+ [REMATCH_PABLO] = MCFLAVOR(Triathlete_Pablo),
+ [REMATCH_NICOLAS] = MCFLAVOR(DragonTamer_Nicolas),
+ [REMATCH_ROBERT] = MCFLAVOR(BirdKeeper_Robert),
+ [REMATCH_LAO] = MCFLAVOR(NinjaBoy_Lao),
+ [REMATCH_CYNDY] = MCFLAVOR(BattleGirl_Cyndy),
+ [REMATCH_MADELINE] = MCFLAVOR(ParasolLady_Madeline),
+ [REMATCH_JENNY] = MCFLAVOR(Swimmer_Jenny),
+ [REMATCH_DIANA] = MCFLAVOR(Picnicker_Diana),
+ [REMATCH_AMY_AND_LIV] = MCFLAVOR(Twins_AmyAndLiv),
+ [REMATCH_ERNEST] = MCFLAVOR(Sailor_Ernest),
+ [REMATCH_CORY] = MCFLAVOR(Sailor_Cory),
+ [REMATCH_EDWIN] = MCFLAVOR(Collector_Edwin),
+ [REMATCH_LYDIA] = MCFLAVOR(PkmnBreeder_Lydia),
+ [REMATCH_ISAAC] = MCFLAVOR(PkmnBreeder_Isaac),
+ [REMATCH_GABRIELLE] = MCFLAVOR(PkmnBreeder_Gabrielle),
+ [REMATCH_CATHERINE] = MCFLAVOR(PkmnRanger_Catherine),
+ [REMATCH_JACKSON] = MCFLAVOR(PkmnRanger_Jackson),
+ [REMATCH_HALEY] = MCFLAVOR(Lass_Haley),
+ [REMATCH_JAMES] = MCFLAVOR(BugCatcher_James),
+ [REMATCH_TRENT] = MCFLAVOR(Hiker_Trent),
+ [REMATCH_SAWYER] = MCFLAVOR(Hiker_Sawyer),
+ [REMATCH_KIRA_AND_DAN] = MCFLAVOR(YoungCouple_LoisAndHal),
+ [REMATCH_WALLY_3] = MCFLAVOR(PkmnTrainer_Wally),
+ [REMATCH_ROXANNE] = MCFLAVOR(RockinWhiz_Roxanne),
+ [REMATCH_BRAWLY] = MCFLAVOR(TheBigHit_Brawly),
+ [REMATCH_WATTSON] = MCFLAVOR(SwellShock_Wattson),
+ [REMATCH_FLANNERY] = MCFLAVOR(PassionBurn_Flannery),
+ [REMATCH_NORMAN] = MCFLAVOR(ReliableOne_Dad),
+ [REMATCH_WINONA] = MCFLAVOR(SkyTamer_Winona),
+ [REMATCH_TATE_AND_LIZA] = MCFLAVOR(MysticDuo_TateAndLiza),
+ [REMATCH_JUAN] = MCFLAVOR(DandyCharm_Juan),
+ [REMATCH_SIDNEY] = MCFLAVOR(EliteFour_Sidney),
+ [REMATCH_PHOEBE] = MCFLAVOR(EliteFour_Phoebe),
+ [REMATCH_GLACIA] = MCFLAVOR(EliteFour_Glacia),
+ [REMATCH_DRAKE] = MCFLAVOR(EliteFour_Drake),
+ [REMATCH_WALLACE] = MCFLAVOR(Champion_Wallace),
+};
diff --git a/src/data/text/ribbon_descriptions.h b/src/data/text/ribbon_descriptions.h
new file mode 100644
index 000000000..f455a7771
--- /dev/null
+++ b/src/data/text/ribbon_descriptions.h
@@ -0,0 +1,48 @@
+const u8 gRibbonDescriptionPart1_Champion[] = _("CHAMPION-beating, HALL");
+const u8 gRibbonDescriptionPart2_Champion[] = _("OF FAME Member RIBBON");
+const u8 gRibbonDescriptionPart1_CoolContest[] = _("COOL CONTEST");
+const u8 gRibbonDescriptionPart1_BeautyContest[] = _("BEAUTY CONTEST");
+const u8 gRibbonDescriptionPart1_CuteContest[] = _("CUTE CONTEST");
+const u8 gRibbonDescriptionPart1_SmartContest[] = _("SMART CONTEST");
+const u8 gRibbonDescriptionPart1_ToughContest[] = _("TOUGH CONTEST");
+const u8 gRibbonDescriptionPart2_NormalRank[] = _("Normal Rank winner!");
+const u8 gRibbonDescriptionPart2_SuperRank[] = _("Super Rank winner!");
+const u8 gRibbonDescriptionPart2_HyperRank[] = _("Hyper Rank winner!");
+const u8 gRibbonDescriptionPart2_MasterRank[] = _("Master Rank winner!");
+const u8 gRibbonDescriptionPart1_Winning[] = _("For clearing LV50");
+const u8 gRibbonDescriptionPart2_Winning[] = _("at the BATTLE TOWER.");
+const u8 gRibbonDescriptionPart1_Victory[] = _("For clearing Open Level");
+const u8 gRibbonDescriptionPart2_Victory[] = _("at the BATTLE TOWER.");
+const u8 gRibbonDescriptionPart1_Artist[] = _("RIBBON for being chosen");
+const u8 gRibbonDescriptionPart2_Artist[] = _("as a super sketch model.");
+const u8 gRibbonDescriptionPart1_Effort[] = _("RIBBON awarded for");
+const u8 gRibbonDescriptionPart2_Effort[] = _("being a hard worker.");
+
+const u8 *const gRibbonDescriptionPointers[][2] =
+{
+ {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank},
+ {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank},
+ {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning},
+ {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory},
+ {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist},
+ {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort},
+};
diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c
index dd91e930a..0ca0ea20d 100644
--- a/src/pokenav_unk_10.c
+++ b/src/pokenav_unk_10.c
@@ -60,8 +60,77 @@ u32 sub_81D0954(void);
void sub_81D1500(struct Pokenav10Struct *structPtr);
bool32 sub_81D1524(struct Pokenav10Struct *structPtr);
void sub_81D1538(struct Sprite *sprite);
+u32 sub_81D0C84(s32);
+u32 sub_81D0D2C(s32);
+u32 sub_81D0D8C(s32);
+u32 sub_81D0E00(s32);
+u32 sub_81D0C54(s32);
+
+const u8 gUnknown_086237F8[][4] =
+{
+ {1, 1, 0, 0},
+ {3, 4, 1, 0},
+ {3, 4, 5, 0},
+ {3, 4, 9, 0},
+ {3, 4, 13, 0},
+ {3, 4, 17, 0},
+ {1, 1, 21, 0},
+ {1, 1, 22, 0},
+ {1, 1, 23, 0},
+ {1, 1, 24, 0},
+ {1, 1, 25, 1},
+ {1, 1, 26, 1},
+ {1, 1, 27, 1},
+ {1, 1, 28, 1},
+ {1, 1, 29, 1},
+ {1, 1, 30, 1},
+ {1, 1, 31, 1}
+};
+
+#include "data/text/ribbon_descriptions.h"
+#include "data/text/gift_ribbon_descriptions.h"
+
+const u16 gUnknown_08623FF8[] = INCBIN_U16("graphics/pokenav/ribbons_icon1.gbapal");
+const u16 gUnknown_08624018[] = INCBIN_U16("graphics/pokenav/ribbons_icon2.gbapal");
+const u16 gUnknown_08624038[] = INCBIN_U16("graphics/pokenav/ribbons_icon3.gbapal");
+const u16 gUnknown_08624058[] = INCBIN_U16("graphics/pokenav/ribbons_icon4.gbapal");
+const u16 gUnknown_08624078[] = INCBIN_U16("graphics/pokenav/ribbons_icon5.gbapal");
+const u16 gUnknown_08624098[] = INCBIN_U16("graphics/pokenav/8624098.gbapal");
+const u32 gUnknown_086240B8[] = INCBIN_U32("graphics/pokenav/ribbons_icon.4bpp.lz");
+const u32 gUnknown_08624280[] = INCBIN_U32("graphics/pokenav/ribbons_icon_big.4bpp.lz");
+
+const struct BgTemplate gUnknown_08624B98[2] =
+{
+ {
+ .bg = 1,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 0x07,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 0x06,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ }
+};
+
+const LoopedTask gUnknown_08624BA0[] =
+{
+ NULL,
+ sub_81D0C84,
+ sub_81D0D2C,
+ sub_81D0D8C,
+ sub_81D0E00,
+ sub_81D0C54
+};
-// code
static const struct WindowTemplate gUnknown_08624BB8 =
{
.bg = 2,
diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c
index 3aec4685e..60aa5ea5e 100644
--- a/src/pokenav_unk_2.c
+++ b/src/pokenav_unk_2.c
@@ -1,6 +1,261 @@
#include "global.h"
+#include "bg.h"
#include "gym_leader_rematch.h"
#include "pokenav.h"
+#include "sprite.h"
+#include "window.h"
+#include "strings.h"
+#include "scanline_effect.h"
+
+extern const u32 gPokenavOptions_Gfx[];
+extern const u16 gPokenavOptions_Pal[];
+
+const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal");
+const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz");
+const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz");
+const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal");
+const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz");
+const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz");
+const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal");
+const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz");
+
+const struct BgTemplate gUnknown_08620194[3] =
+{
+ {
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 0x0F,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 0x17,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 0x1F,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+ }
+};
+
+u32 sub_81C9C6C(s32);
+u32 sub_81C9CA8(s32);
+u32 sub_81C9D44(s32);
+u32 sub_81C9DD8(s32);
+u32 sub_81C9E58(s32);
+u32 sub_81C9EC8(s32);
+u32 sub_81C9EF8(s32);
+u32 sub_81C9F28(s32);
+
+u32 (*const gUnknown_086201A0[])(s32) =
+{
+ NULL,
+ sub_81C9C6C,
+ sub_81C9CA8,
+ sub_81C9D44,
+ sub_81C9DD8,
+ sub_81C9E58,
+ sub_81C9EC8,
+ sub_81C9EF8,
+ sub_81C9F28
+};
+
+const struct CompressedSpriteSheet gUnknown_086201C4[] =
+{
+ {
+ .data = gPokenavOptions_Gfx,
+ .size = 0x3400,
+ .tag = 0x0003
+ },
+ {
+ .data = gUnknown_08620124,
+ .size = 0x0100,
+ .tag = 0x0001
+ }
+};
+
+ const struct SpritePalette gUnknown_086201D4[] =
+ {
+ {gPokenavOptions_Pal + 0x00, 4},
+ {gPokenavOptions_Pal + 0x10, 5},
+ {gPokenavOptions_Pal + 0x20, 6},
+ {gPokenavOptions_Pal + 0x30, 7},
+ {gPokenavOptions_Pal + 0x40, 8},
+ {gUnknown_08620104, 3},
+ {}
+};
+
+const u16 gUnknown_0862020C[] = {0, 0};
+const u16 gUnknown_08620210[] = {0x20, 1};
+const u16 gUnknown_08620214[] = {0x40, 4};
+const u16 gUnknown_08620218[] = {0x60, 2};
+const u16 gUnknown_0862021C[] = {0x80, 3};
+const u16 gUnknown_08620220[] = {0xA0, 1};
+const u16 gUnknown_08620224[] = {0xC0, 1};
+const u16 gUnknown_08620228[] = {0xE0, 4};
+const u16 gUnknown_0862022C[] = {0x100, 1};
+const u16 gUnknown_08620230[] = {0x120, 2};
+const u16 gUnknown_08620234[] = {0x140, 0};
+const u16 gUnknown_08620238[] = {0x160, 0};
+const u16 gUnknown_0862023C[] = {0x180, 3};
+
+struct UnkStruct_08620240
+{
+ u16 unk0;
+ u16 unk2;
+ const u16 *unk4[6];
+};
+
+const struct UnkStruct_08620240 gUnknown_08620240[5] =
+{
+ {
+ 0x2A,
+ 0x14,
+ {gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C, NULL, NULL, NULL}
+ },
+ {
+ 0x2A,
+ 0x14,
+ {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C, NULL, NULL}
+ },
+ {
+ 0x2A,
+ 0x14,
+ {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C, NULL}
+ },
+ {
+ 0x38,
+ 0x14,
+ {gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C, NULL, NULL, NULL}
+ },
+ {
+ 0x28,
+ 0x10,
+ {gUnknown_08620228, gUnknown_0862022C, gUnknown_08620230, gUnknown_08620234, gUnknown_08620238, gUnknown_0862023C}
+ },
+};
+
+const struct WindowTemplate gUnknown_086202CC =
+{
+ .bg = 1,
+ .tilemapLeft = 3,
+ .tilemapTop = 17,
+ .width = 0x18,
+ .height = 0x2,
+ .paletteNum = 1,
+ .baseBlock = 8
+};
+
+const u8 *const gUnknown_086202D4[] =
+{
+ gUnknown_085EBCC5,
+ gUnknown_085EBCE8,
+ gUnknown_085EBD01,
+ gUnknown_085EBD1C,
+ gUnknown_085EBD34,
+ gUnknown_085EBD83,
+ gUnknown_085EBDA2,
+ gUnknown_085EBDBF,
+ gUnknown_085EBDDB,
+ gUnknown_085EBDEE,
+ gUnknown_085EBE06,
+ gUnknown_085EBE19,
+ gUnknown_085EBE2D,
+ gUnknown_085EBE41
+};
+
+const u8 gUnknown_0862030C[] = {6, 8, 7};
+
+const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0};
+
+const struct OamData gUnknown_08620314 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(32x16),
+ .x = 0,
+ .size = SPRITE_SIZE(32x16),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+};
+
+const union AffineAnimCmd gUnknown_0862031C[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gUnknown_0862032C[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0x12),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gUnknown_08620344[] =
+{
+ gUnknown_0862031C,
+ gUnknown_0862032C
+};
+
+const struct SpriteTemplate gUnknown_0862034C =
+{
+ .tileTag = 3,
+ .paletteTag = 4,
+ .oam = &gUnknown_08620314,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_08620344,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct OamData gUnknown_08620364 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(32x16),
+ .x = 0,
+ .size = SPRITE_SIZE(32x16),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+};
+
+const struct SpriteTemplate gUnknown_0862036C =
+{
+ .tileTag = 1,
+ .paletteTag = 3,
+ .oam = &gUnknown_08620364,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct ScanlineEffectParams gUnknown_08620384 =
+{
+ (void *)REG_ADDR_WIN0H,
+ ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
+ 1,
+ 0
+};
bool32 sub_81C98D4(void)
{
diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c
index d7afada49..bf3d82df7 100755
--- a/src/pokenav_unk_3.c
+++ b/src/pokenav_unk_3.c
@@ -37,9 +37,10 @@ static u32 sub_81CACF8(struct Pokenav3Struct *);
static u32 sub_81CAD20(s32);
static bool32 sub_81CB1D0(void);
-extern const u8 gUnknown_08622508[];
-extern const u8 gUnknown_0862250A[];
-extern const u8 *const gUnknown_08622028[][4];
+#include "data/text/match_call_messages.h"
+
+const u8 gUnknown_08622508[] = {0, 2};
+const u8 gUnknown_0862250A[] = {0, 1, 2};
bool32 sub_81CAAE8(void)
{
@@ -364,7 +365,7 @@ const u8 *sub_81CAFD8(int index, int textType)
var0 = state->unk1C[index].unk2;
}
- return gUnknown_08622028[var0][textType];
+ return gMatchCallMessages[var0][textType];
}
u16 sub_81CB01C(void)
diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c
index cd9651580..93dab4491 100755
--- a/src/pokenav_unk_4.c
+++ b/src/pokenav_unk_4.c
@@ -93,27 +93,191 @@ static void sub_81CC330(struct Pokenav4Struct *);
static struct Sprite *sub_81CC370(void);
static void sub_81CC440(struct Sprite *sprite);
static void sub_81CC4A4(struct Sprite *sprite);
+void sub_81CC34C(struct Sprite *sprite);
+u32 sub_81CB510(s32);
+u32 sub_81CB588(s32);
+u32 sub_81CB600(s32);
+u32 sub_81CB678(s32);
+u32 sub_81CB6F0(s32);
+u32 sub_81CB734(s32);
+u32 sub_81CB75C(s32);
+u32 sub_81CB7A0(s32);
+u32 sub_81CB824(s32);
+u32 sub_81CB888(s32);
+u32 sub_81CB93C(s32);
+u32 sub_81CBAD4(s32);
+u32 sub_81CB9C8(s32);
+u32 sub_81CBA68(s32);
+u32 sub_81CBB74(s32);
-extern const LoopedTask gUnknown_08622798[];
-extern const struct BgTemplate gUnknown_0862278C[3];
-extern const u16 gUnknown_08622510[];
-extern const u32 gUnknown_08622530[];
-extern const u32 gUnknown_08622760[];
-extern const u16 gUnknown_08622700[];
-extern const u16 gUnknown_08622720[];
-extern const u8 gUnknown_086225D4[];
-extern const u16 gUnknown_086226E0[];
-extern const struct BgTemplate gUnknown_08622794;
-extern const struct WindowTemplate gUnknown_086227D8;
-extern const struct WindowTemplate gUnknown_086227E0;
-extern const u8 *const gUnknown_086227E8[];
extern const struct WindowTemplate gUnknown_08622808;
-extern const u8 gUnknown_086227F4[];
-extern const struct CompressedSpriteSheet gUnknown_08622810[1];
-extern const struct SpritePalette gUnknown_08622818[];
extern const struct SpriteTemplate gUnknown_08622830;
extern const struct SpriteTemplate gUnknown_08622850;
+const u16 gUnknown_08622510[] = INCBIN_U16("graphics/pokenav/ui_matchcall.gbapal");
+const u32 gUnknown_08622530[] = INCBIN_U32("graphics/pokenav/ui_matchcall.4bpp.lz");
+const u32 gUnknown_086225D4[] = INCBIN_U32("graphics/pokenav/ui_matchcall.bin.lz");
+const u16 gUnknown_08622698[] = INCBIN_U16("graphics/pokenav/arrow2.gbapal");
+const u32 gUnknown_086226B8[] = INCBIN_U32("graphics/pokenav/arrow2.4bpp.lz");
+const u16 gUnknown_086226E0[] = INCBIN_U16("graphics/pokenav/86226E0.gbapal");
+const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/8622700.gbapal");
+const u16 gUnknown_08622720[] = INCBIN_U16("graphics/pokenav/pokeball_matchcall.gbapal");
+const u32 gUnknown_08622760[] = INCBIN_U32("graphics/pokenav/pokeball_matchcall.4bpp.lz");
+
+const struct BgTemplate gUnknown_0862278C[3] =
+{
+ {
+ .bg = 1,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 0x1F,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 0x06,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x80
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 0x07,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+ }
+};
+
+const LoopedTask gUnknown_08622798[] =
+{
+ NULL,
+ sub_81CB510,
+ sub_81CB588,
+ sub_81CB600,
+ sub_81CB678,
+ sub_81CB6F0,
+ sub_81CB734,
+ sub_81CB75C,
+ sub_81CB7A0,
+ sub_81CB824,
+ sub_81CB888,
+ sub_81CB93C,
+ sub_81CBAD4,
+ sub_81CB9C8,
+ sub_81CBA68,
+ sub_81CBB74
+};
+
+const struct WindowTemplate gUnknown_086227D8 =
+{
+ .bg = 2,
+ .tilemapLeft = 0,
+ .tilemapTop = 5,
+ .width = 11,
+ .height = 2,
+ .paletteNum = 2,
+ .baseBlock = 16
+};
+
+const struct WindowTemplate gUnknown_086227E0 =
+{
+ .bg = 2,
+ .tilemapLeft = 0,
+ .tilemapTop = 9,
+ .width = 11,
+ .height = 8,
+ .paletteNum = 2,
+ .baseBlock = 38
+};
+
+const u8 *const gUnknown_086227E8[] =
+{
+ gUnknown_085EC017,
+ gUnknown_085EC01C,
+ gUnknown_085EC022
+};
+
+const u8 gUnknown_086227F4[] = _("·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p");
+
+const struct WindowTemplate gUnknown_08622808 =
+{
+ .bg = 1,
+ .tilemapLeft = 1,
+ .tilemapTop = 12,
+ .width = 0x1C,
+ .height = 0x04,
+ .paletteNum = 1,
+ .baseBlock = 10
+};
+
+const struct CompressedSpriteSheet gUnknown_08622810[1] =
+{
+ {gUnknown_086226B8, 0x40, 7}
+};
+
+const struct SpritePalette gUnknown_08622818[] =
+{
+ {gUnknown_08622698, 12},
+ {}
+};
+
+const struct OamData gUnknown_08622828 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(8x16),
+ .x = 0,
+ .size = SPRITE_SIZE(8x16),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+};
+
+const struct SpriteTemplate gUnknown_08622830 =
+{
+ .tileTag = 7,
+ .paletteTag = 12,
+ .oam = &gUnknown_08622828,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_81CC34C,
+};
+
+const struct OamData gUnknown_08622848 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+};
+
+const struct SpriteTemplate gUnknown_08622850 =
+{
+ .tileTag = 8,
+ .paletteTag = 13,
+ .oam = &gUnknown_08622848,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
bool32 sub_81CB260(void)
{
struct Pokenav4Struct *state = AllocSubstruct(6, sizeof(struct Pokenav4Struct));
@@ -718,7 +882,7 @@ static void sub_81CBBB8(void)
template.unkE = 7;
template.unk10 = sub_81CB050;
template.unk14 = sub_81CBCEC;
- sub_81C81D4(&gUnknown_08622794, &template, 2);
+ sub_81C81D4(&gUnknown_0862278C[2], &template, 2);
CreateTask(sub_81CBC64, 7);
}
diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c
index 5f24fd07f..ccab58078 100755
--- a/src/pokenav_unk_5.c
+++ b/src/pokenav_unk_5.c
@@ -32,11 +32,11 @@ struct Pokenav5Struct_2
u8 cityZoomPics[22][0xC8];
};
-struct CityZoomPic
+struct CityMapEntry
{
u16 mapSecId;
- u16 unk2;
- const u32 *data;
+ u16 index;
+ const u32 *tilemap;
};
static u32 sub_81CC568(struct Pokenav5Struct *);
@@ -61,17 +61,110 @@ static void sub_81CCDE8(struct Pokenav5Struct_2 *, int, int);
static void sub_81CCFA4(int);
static void sub_81CCC9C(u8 taskId);
static void sub_81CCF78(void);
+void sub_81CCEF4(struct Sprite *sprite);
+u32 sub_81CC848(s32);
+u32 sub_81CC878(s32);
+u32 sub_81CC8D8(s32);
+u32 sub_81CC95C(s32);
-extern const LoopedTask gUnknown_086230E4[];
-extern const struct BgTemplate gUnknown_086230D8[2];
-extern const struct CompressedSpriteSheet gUnknown_086230F8[1];
-extern const struct SpritePalette gUnknown_08623100[];
-extern const struct WindowTemplate gUnknown_08623110;
-extern const u32 gUnknown_08622888[];
-extern const u16 gUnknown_08622868[];
extern const u16 gHoennMapZoomIcons_Pal[];
-extern const struct CityZoomPic gUnknown_08623118[22];
extern const struct SpriteTemplate gUnknown_086231D0;
+extern const u32 gHoennMapZoomIcons_Gfx[];
+
+const u16 gUnknown_08622868[] = INCBIN_U16("graphics/pokenav/8622868.gbapal");
+const u32 gUnknown_08622888[] = INCBIN_U32("graphics/pokenav/zoom_tiles.4bpp.lz");
+
+#include "data/region_map/city_map_tilemaps.h"
+
+
+const struct BgTemplate gUnknown_086230D8[3] =
+{
+ {
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 0x1F,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 0x06,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 0x00,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+ },
+};
+
+const LoopedTask gUnknown_086230E4[] =
+{
+ NULL,
+ sub_81CC848,
+ sub_81CC878,
+ sub_81CC8D8,
+ sub_81CC95C
+};
+
+const struct CompressedSpriteSheet gUnknown_086230F8[1] =
+{
+ {gHoennMapZoomIcons_Gfx, 0x800, 6}
+};
+
+const struct SpritePalette gUnknown_08623100[] =
+{
+ {gHoennMapZoomIcons_Pal, 11},
+ {}
+};
+
+const struct WindowTemplate gUnknown_08623110 =
+{
+ .bg = 1,
+ .tilemapLeft = 17,
+ .tilemapTop = 4,
+ .width = 12,
+ .height = 13,
+ .paletteNum = 1,
+ .baseBlock = 0x4C
+};
+
+#include "data/region_map/city_map_entries.h"
+
+const struct OamData gUnknown_086231C8 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(32x8),
+ .x = 0,
+ .size = SPRITE_SIZE(32x8),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+};
+
+const struct SpriteTemplate gUnknown_086231D0 =
+{
+ .tileTag = 6,
+ .paletteTag = 11,
+ .oam = &gUnknown_086231C8,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_81CCEF4,
+};
u32 sub_81CC4D4(void)
{
@@ -215,7 +308,7 @@ static u32 sub_81CC6F4(s32 taskState)
HideBg(2);
HideBg(3);
SetBgMode(1);
- InitBgTemplates(gUnknown_086230D8, ARRAY_COUNT(gUnknown_086230D8));
+ InitBgTemplates(gUnknown_086230D8, ARRAY_COUNT(gUnknown_086230D8) - 1);
regionMap = GetSubstructPtr(16);
sub_8122CF8(regionMap, &gUnknown_086230D8[1], sub_81CC6D0());
sub_81CC9C0();
@@ -278,7 +371,7 @@ static u32 sub_81CC6F4(s32 taskState)
}
}
-u32 sub_81CC848(int taskState)
+u32 sub_81CC848(s32 taskState)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
switch (taskState)
@@ -295,7 +388,7 @@ u32 sub_81CC848(int taskState)
return 4;
}
-u32 sub_81CC878(int taskState)
+u32 sub_81CC878(s32 taskState)
{
switch (taskState)
{
@@ -321,7 +414,7 @@ u32 sub_81CC878(int taskState)
return 4;
}
-u32 sub_81CC8D8(int taskState)
+u32 sub_81CC8D8(s32 taskState)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
switch (taskState)
@@ -354,7 +447,7 @@ u32 sub_81CC8D8(int taskState)
return 4;
}
-u32 sub_81CC95C(int taskState)
+u32 sub_81CC95C(s32 taskState)
{
switch (taskState)
{
@@ -521,9 +614,9 @@ static bool32 sub_81CCD24(void)
static u32 sub_81CCD34(s32 taskState)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
- if (taskState < (int)ARRAY_COUNT(gUnknown_08623118))
+ if (taskState < (int)ARRAY_COUNT(gPokenavCityMaps))
{
- LZ77UnCompWram(gUnknown_08623118[taskState].data, state->cityZoomPics[taskState]);
+ LZ77UnCompWram(gPokenavCityMaps[taskState].tilemap, state->cityZoomPics[taskState]);
return 1;
}
@@ -533,10 +626,10 @@ static u32 sub_81CCD34(s32 taskState)
static void sub_81CCD70(struct Pokenav5Struct_2 *state, int mapSecId, int pos)
{
int i;
- for (i = 0; i < (int)ARRAY_COUNT(gUnknown_08623118) && (gUnknown_08623118[i].mapSecId != mapSecId || gUnknown_08623118[i].unk2 != pos); i++)
+ for (i = 0; i < (int)ARRAY_COUNT(gPokenavCityMaps) && (gPokenavCityMaps[i].mapSecId != mapSecId || gPokenavCityMaps[i].index != pos); i++)
;
- if (i == ARRAY_COUNT(gUnknown_08623118))
+ if (i == ARRAY_COUNT(gPokenavCityMaps))
return;
FillBgTilemapBufferRect_Palette0(1, 0x1041, 17, 6, 12, 11);
diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c
index ff5d2cc6e..90b677fa7 100644
--- a/src/pokenav_unk_7.c
+++ b/src/pokenav_unk_7.c
@@ -1,5 +1,7 @@
#include "global.h"
#include "bg.h"
+#include "window.h"
+#include "pokenav.h"
#include "decompress.h"
#include "gpu_regs.h"
#include "graphics.h"
@@ -13,7 +15,106 @@
#include "strings.h"
#include "text.h"
-static u8 gUnknown_030012BC;
+u32 sub_81CE37C(s32);
+u32 sub_81CE2D0(s32);
+u32 sub_81CE4D8(s32);
+u32 sub_81CE5E4(s32);
+u32 sub_81CE6BC(s32);
+u32 sub_81CE700(s32);
+
+BSS_DATA u8 gUnknown_030012BC;
+
+const u16 gUnknown_086231E8[] = INCBIN_U16("graphics/pokenav/86231E8.gbapal");
+const u16 gUnknown_08623208[] = INCBIN_U16("graphics/pokenav/8623208.gbapal");
+const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz");
+const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz");
+const u16 gUnknown_08623338[] = INCBIN_U16("graphics/pokenav/8623338.gbapal");
+
+const struct BgTemplate gUnknown_08623358[3] =
+{
+ {
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 0x1F,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 0x1D,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 0x1E,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+ }
+};
+
+const struct WindowTemplate gUnknown_08623364 =
+{
+ .bg = 1,
+ .tilemapLeft = 13,
+ .tilemapTop = 1,
+ .width = 13,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 2
+};
+
+const struct WindowTemplate gUnknown_0862336C =
+{
+ .bg = 1,
+ .tilemapLeft = 1,
+ .tilemapTop = 6,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x36
+};
+
+const struct WindowTemplate gUnknown_08623374 =
+{
+ .bg = 1,
+ .tilemapLeft = 1,
+ .tilemapTop = 0x1C,
+ .width = 5,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x44
+};
+
+const struct WindowTemplate gUnknown_0862337C =
+{
+ .bg = 1,
+ .tilemapLeft = 13,
+ .tilemapTop = 0x1C,
+ .width = 3,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x44
+};
+
+const LoopedTask gUnknown_08623384[] =
+{
+ NULL,
+ sub_81CE37C,
+ sub_81CE2D0,
+ sub_81CE4D8,
+ sub_81CE5E4,
+ sub_81CE6BC,
+ sub_81CE700
+};
struct Pokenav7Struct
{
@@ -52,19 +153,6 @@ void sub_81CEEC8(void);
void sub_81CEE68(void);
void sub_81CEE74(bool8 showBg);
-// const data
-extern const LoopedTask gUnknown_08623384[];
-extern const struct BgTemplate gUnknown_08623358[3];
-extern const u32 gUnknown_08623228[];
-extern const u32 gUnknown_0862323C[];
-extern const u16 gUnknown_086231E8[];
-extern const u16 gUnknown_08623338[];
-extern const u16 gUnknown_08623208[];
-extern const struct WindowTemplate gUnknown_08623364;
-extern const struct WindowTemplate gUnknown_0862336C;
-extern const struct WindowTemplate gUnknown_08623374;
-extern const struct WindowTemplate gUnknown_0862337C;
-
// code
bool32 sub_81CDDD4(void)
{
diff --git a/src/pokenav_unk_8.c b/src/pokenav_unk_8.c
index 56ffd0f0a..bcafc14d0 100644
--- a/src/pokenav_unk_8.c
+++ b/src/pokenav_unk_8.c
@@ -1,5 +1,81 @@
#include "global.h"
#include "pokenav.h"
+#include "bg.h"
+#include "window.h"
+
+u32 sub_81CF134(void);
+u32 sub_81CF1C4(void);
+u32 sub_81CF1D8(void);
+u32 sub_81CF278(void);
+u32 sub_81CF578(s32);
+u32 sub_81CF5F0(s32);
+u32 sub_81CF668(s32);
+u32 sub_81CF6E0(s32);
+u32 sub_81CF758(s32);
+u32 sub_81CF798(s32);
+
+const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F};
+
+u32 (*const gUnknown_086233B4[])(void) =
+{
+ sub_81CF134,
+ sub_81CF1C4,
+ sub_81CF1D8,
+ sub_81CF278
+};
+
+const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
+const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz");
+const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz");
+const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal");
+
+const struct BgTemplate gUnknown_08623590 =
+{
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 0x06,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+};
+
+const struct BgTemplate gUnknown_08623594 =
+{
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 0x07,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+};
+
+const LoopedTask gUnknown_08623598[] =
+{
+ NULL,
+ sub_81CF578,
+ sub_81CF5F0,
+ sub_81CF668,
+ sub_81CF6E0,
+ sub_81CF758,
+ sub_81CF798
+};
+
+const struct WindowTemplate gUnknown_086235B4 =
+{
+ .bg = 1,
+ .tilemapLeft = 1,
+ .tilemapTop = 6,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 1,
+ .baseBlock = 20
+};
+
+const u8 gUnknown_086235BC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
+const u8 gUnknown_086235C8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
+const u8 gUnknown_086235D4[] = _("{UNK_SPACER}");
struct PokenavSub7
{
@@ -12,8 +88,6 @@ struct PokenavSub7
struct PokenavSub18 *unkPtr;
};
-extern const u32 gUnknown_086233A0[];
-
u32 sub_81CF010(struct PokenavSub7 *structPtr);
u32 sub_81CF030(struct PokenavSub7 *structPtr);
u32 sub_81CF0B8(struct PokenavSub7 *structPtr);
diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c
new file mode 100644
index 000000000..2927d7211
--- /dev/null
+++ b/src/pokenav_unk_9.c
@@ -0,0 +1,74 @@
+#include "global.h"
+#include "pokenav.h"
+#include "bg.h"
+#include "window.h"
+
+u32 sub_81CFB8C(void);
+u32 sub_81CFC2C(void);
+u32 sub_81CFC40(void);
+u32 sub_81CFFFC(s32);
+u32 sub_81D0074(s32);
+u32 sub_81D00EC(s32);
+u32 sub_81D0164(s32);
+u32 sub_81D01DC(s32);
+u32 sub_81D021C(s32);
+
+u32 (*const gUnknown_086235D8[])(void) =
+{
+ sub_81CFB8C,
+ sub_81CFC2C,
+ sub_81CFC40
+};
+
+const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal");
+const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz");
+const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz");
+const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal");
+
+const struct BgTemplate gUnknown_086237B0 =
+{
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 0x06,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+};
+
+const struct BgTemplate gUnknown_086237B4 =
+{
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 0x07,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+};
+
+const LoopedTask gUnknown_086237B8[] =
+{
+ NULL,
+ sub_81CFFFC,
+ sub_81D0074,
+ sub_81D00EC,
+ sub_81D0164,
+ sub_81D01DC,
+ sub_81D021C
+};
+
+const struct WindowTemplate gUnknown_086237D4 =
+{
+ .bg = 1,
+ .tilemapLeft = 1,
+ .tilemapTop = 6,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 1,
+ .baseBlock = 20
+};
+
+const u8 gUnknown_086237DC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
+const u8 gUnknown_086237E8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
+const u8 gUnknown_086237F4[] = _("{UNK_SPACER}");