summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-03-28 23:56:42 -0400
committerGriffinR <griffin.g.richards@gmail.com>2021-03-29 08:52:40 -0400
commit357c5439f5170ec1ebb1fe52c00d8d934b65c6bc (patch)
tree3481dfde0ddaf1194b2f0d50349931fb6078a41f /src
parentc86cc8b371efa875446796fb44c7e285c4b26f70 (diff)
Document some credits
Diffstat (limited to 'src')
-rw-r--r--src/credits.c1340
-rw-r--r--src/data/credits.h787
-rw-r--r--src/intro_credits_graphics.c16
3 files changed, 1085 insertions, 1058 deletions
diff --git a/src/credits.c b/src/credits.c
index f39c0ff85..16d71f3e9 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -23,71 +23,21 @@
#include "event_data.h"
#include "random.h"
-enum
-{
- PAGE_TITLE,
- PAGE_DIRECTOR,
- PAGE_ART_DIRECTOR,
- PAGE_WORLD_DIRECTOR,
- PAGE_LEAD_PROGRAMMER,
- PAGE_PROGRAMMERS_1,
- PAGE_PROGRAMMERS_2,
- PAGE_PROGRAMMERS_3,
- PAGE_PROGRAMMERS_4,
- PAGE_GRAPHIC_DESIGNERS_1,
- PAGE_GRAPHIC_DESIGNERS_2,
- PAGE_GRAPHIC_DESIGNERS_3,
- PAGE_MUSIC_COMPOSITION,
- PAGE_SOUND_EFFECTS,
- PAGE_GAME_DESIGNERS_1,
- PAGE_GAME_DESIGNERS_2,
- PAGE_GAME_DESIGNERS_3,
- PAGE_SCENARIO_PLOT,
- PAGE_SCENARIO,
- PAGE_SCRIPT_DESIGNERS,
- PAGE_MAP_DESIGNERS,
- PAGE_BATTLE_FRONTIER_DATA,
- PAGE_PARAMETRIC_DESIGNERS,
- PAGE_POKEDEX_TEXT,
- PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_1,
- PAGE_PKMN_DESIGNERS_1,
- PAGE_PKMN_DESIGNERS_2,
- PAGE_PKMN_DESIGNERS_3,
- PAGE_PKMN_DESIGNERS_4,
- PAGE_SUPPORT_PROGRAMMERS,
- PAGE_NCL_PRODUCT_TESTING,
- PAGE_PACKAGE_AND_MANUAL,
- PAGE_SPECIAL_THANKS_1,
- PAGE_SPECIAL_THANKS_2,
- PAGE_SPECIAL_THANKS_3,
- PAGE_SPECIAL_THANKS_4,
- PAGE_INFORMATION_SUPERVISORS,
- PAGE_ARTWORK_1,
- PAGE_ARTWORK_2,
- PAGE_ARTWORK_3,
- PAGE_COORDINATORS,
- PAGE_ENGLISH_VERSION,
- PAGE_TRANSLATOR,
- PAGE_TEXT_EDITOR,
- PAGE_NCL_COORDINATOR,
- PAGE_PROGRAMMERS_5,
- PAGE_GRAPHIC_DESIGNER,
- PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_2,
- PAGE_NOA_TESTING,
- PAGE_BRAILLE_CODE_CHECK_1,
- PAGE_BRAILLE_CODE_CHECK_2,
- PAGE_SPECIAL_THANKS_5,
- PAGE_TASK_MANAGERS,
- PAGE_PRODUCERS,
- PAGE_EXECUTIVE_DIRECTOR,
- PAGE_EXECUTIVE_PRODUCERS_1,
- PAGE_EXECUTIVE_PRODUCERS_2,
- PAGE_COUNT
-};
-
#define COLOR_DARK_GREEN RGB(7, 11, 6)
#define COLOR_LIGHT_GREEN RGB(13, 20, 12)
+#define TAG_MON_BG 1001
+
+// Positions for the Pokémon images
+enum {
+ POS_LEFT,
+ POS_CENTER,
+ POS_RIGHT,
+};
+
+#define tPlayerSpriteId data[5]
+#define tRivalSpriteId data[6]
+
enum
{
TDA_0 = 0,
@@ -142,30 +92,50 @@ struct CreditsData
struct CreditsEntry
{
- u8 var_0;
+ u8 unk; // Never read
bool8 isTitle;
const u8 *text;
};
-static EWRAM_DATA s16 gUnknown_0203BCE0 = 0;
-static EWRAM_DATA u16 gUnknown_0203BCE2 = 0; // TASK A
+static EWRAM_DATA s16 sUnkVar = 0; // Never read, only set to 0
+static EWRAM_DATA u16 sSavedTaskId = 0;
EWRAM_DATA bool8 gHasHallOfFameRecords = 0;
-static EWRAM_DATA u8 gUnknown_0203BCE5 = 0;
+static EWRAM_DATA bool8 sUsedSpeedUp = 0; // Never read
static EWRAM_DATA struct CreditsData *sCreditsData = {0};
-static const u16 gUnknown_085E56F0[][16] =
-{
- INCBIN_U16("graphics/credits/credits_1.gbapal"),
- INCBIN_U16("graphics/credits/credits_2.gbapal"),
- INCBIN_U16("graphics/credits/credits_3.gbapal"),
- INCBIN_U16("graphics/credits/credits_4.gbapal"),
-};
-
+static const u16 sCredits_Pal[] = INCBIN_U16("graphics/credits/credits.gbapal");
static const u32 sCreditsCopyrightEnd_Gfx[] = INCBIN_U32("graphics/credits/the_end_copyright.4bpp.lz");
-static void sub_81772B8(struct Sprite *sprite);
+static void SpriteCB_CreditsMonBg(struct Sprite *);
+static void Task_WaitPaletteFade(u8);
+static void Task_ProgressCreditTasks(u8);
+static void sub_8175808(u8);
+static void c2_080C9BFC(u8);
+static void Task_CreditsLoadGrassScene(u8);
+static void sub_81758A4(u8);
+static void Task_CreditsTheEnd1(u8);
+static void Task_CreditsTheEnd2(u8);
+static void Task_CreditsTheEnd3(u8);
+static void Task_CreditsTheEnd4(u8);
+static void Task_CreditsTheEnd5(u8);
+static void Task_CreditsTheEnd6(u8);
+static void Task_CreditsSoftReset(u8);
+static void ResetGpuAndVram(void);
+static void sub_8175DA0(u8);
+static u8 CheckChangeScene(u8, u8);
+static void sub_81760FC(u8);
+static void sub_817651C(u8);
+static void sub_817624C(u8);
+static bool8 sub_8176AB0(u8 data, u8);
+static void ResetCreditsTasks(u8);
+static void LoadTheEndScreen(u16, u16, u16);
+static void DrawTheEnd(u16, u16);
+static void SpriteCB_PlayerCyclist(struct Sprite *);
+static void SpriteCB_RivalCyclist(struct Sprite *);
+static u8 CreateCreditsMonSprite(u16, s16, s16, u16);
+static void DeterminePokemonToShow(void);
-static const u8 sTheEnd_LetterTMap[] =
+static const u8 sTheEnd_LetterMap_T[] =
{
0, 1, 0,
0xFF, 1, 0xFF,
@@ -174,7 +144,7 @@ static const u8 sTheEnd_LetterTMap[] =
0xFF, 1, 0xFF,
};
-static const u8 sTheEnd_LetterHMap[] =
+static const u8 sTheEnd_LetterMap_H[] =
{
1, 0xFF, 1,
1, 0xFF, 1,
@@ -183,7 +153,7 @@ static const u8 sTheEnd_LetterHMap[] =
1, 0xFF, 1,
};
-static const u8 sTheEnd_LetterEMap[] =
+static const u8 sTheEnd_LetterMap_E[] =
{
1, 0, 0,
1, 0xFF, 0xFF,
@@ -192,7 +162,7 @@ static const u8 sTheEnd_LetterEMap[] =
1, 0x80, 0x80,
};
-static const u8 sTheEnd_LetterNMap[] =
+static const u8 sTheEnd_LetterMap_N[] =
{
1, 3, 1,
1, 4, 1,
@@ -201,7 +171,7 @@ static const u8 sTheEnd_LetterNMap[] =
1, 0xC3, 1,
};
-static const u8 sTheEnd_LetterDMap[] =
+static const u8 sTheEnd_LetterMap_D[] =
{
1, 6, 7,
1, 8, 9,
@@ -210,729 +180,7 @@ static const u8 sTheEnd_LetterDMap[] =
1, 0x86, 0x87,
};
-static const u8 sCreditsText_EmptyString[] = _("");
-static const u8 sCreditsText_PkmnEmeraldVersion[] = _("POKéMON EMERALD VERSION");
-static const u8 sCreditsText_Credits[] = _("Credits");
-static const u8 sCreditsText_ExecutiveDirector[] = _("Executive Director");
-static const u8 sCreditsText_Director[] = _("Director");
-static const u8 sCreditsText_ArtDirector[] = _("Art Director");
-static const u8 sCreditsText_BattleDirector[] = _("Battle Director");
-static const u8 sCreditsText_MainProgrammer[] = _("Main Programmer");
-static const u8 sCreditsText_BattleSystemPgrms[] = _("Battle System Programmers");
-static const u8 sCreditsText_FieldSystemPgrms[] = _("Field System Programmer");
-static const u8 sCreditsText_Programmers[] = _("Programmers");
-static const u8 sCreditsText_MainGraphicDesigner[] = _("Main Graphic Designer");
-static const u8 sCreditsText_GraphicDesigners[] = _("Graphic Designers");
-static const u8 sCreditsText_PkmnDesigners[] = _("POKéMON Designers");
-static const u8 sCreditsText_MusicComposition[] = _("Music Composition");
-static const u8 sCreditsText_SoundEffectsAndPkmnVoices[] = _("Sound Effects & POKéMON Voices");
-static const u8 sCreditsText_GameDesigners[] = _("Game Designers");
-static const u8 sCreditsText_ScenarioPlot[] = _("Scenario Plot");
-static const u8 sCreditsText_Scenario[] = _("Scenario");
-static const u8 sCreditsText_ScriptDesigners[] = _("Script Designers");
-static const u8 sCreditsText_MapDesigners[] = _("Map Designers");
-static const u8 sCreditsText_MapDataDesigners[] = _("Map Data Designers");
-static const u8 sCreditsText_ParametricDesigners[] = _("Parametric Designers");
-static const u8 sCreditsText_PokedexText[] = _("POKéDEX Text");
-static const u8 sCreditsText_EnvAndToolPgrms[] = _("Environment & Tool Programmers");
-static const u8 sCreditsText_NCLProductTesting[] = _("NCL Product Testing");
-static const u8 sCreditsText_SpecialThanks[] = _("Special Thanks");
-static const u8 sCreditsText_Coordinators[] = _("Coordinators");
-static const u8 sCreditsText_Producers[] = _("Producers");
-static const u8 sCreditsText_ExecProducers[] = _("Executive Producers");
-static const u8 sCreditsText_InfoSupervisors[] = _("Information Supervisors");
-static const u8 sCreditsText_TaskManagers[] = _("Task Managers");
-static const u8 sCreditsText_BrailleCodeCheck[] = _("Braille Code Check");
-static const u8 sCreditsText_WorldDirector[] = _("World Director");
-static const u8 sCreditsText_BattleFrontierData[] = _("Battle Frontier Data");
-static const u8 sCreditsText_SupportProgrammers[] = _("Support Programmers");
-static const u8 sCreditsText_Artwork[] = _("Artwork");
-static const u8 sCreditsText_LeadProgrammer[] = _("Lead Programmer");
-static const u8 sCreditsText_LeadGraphicArtist[] = _("Lead Graphic Artist");
-static const u8 sCreditsText_SatoshiTajiri[] = _("Satoshi Tajiri");
-static const u8 sCreditsText_JunichiMasuda[] = _("Junichi Masuda");
-static const u8 sCreditsText_KenSugimori[] = _("Ken Sugimori");
-static const u8 sCreditsText_ShigekiMorimoto[] = _("Shigeki Morimoto");
-static const u8 sCreditsText_TetsuyaWatanabe[] = _("Tetsuya Watanabe");
-static const u8 sCreditsText_HisashiSogabe[] = _("Hisashi Sogabe");
-static const u8 sCreditsText_SosukeTamada[] = _("Sosuke Tamada");
-static const u8 sCreditsText_AkitoMori[] = _("Akito Mori");
-static const u8 sCreditsText_KeitaKagaya[] = _("Keita Kagaya");
-static const u8 sCreditsText_YoshinoriMatsuda[] = _("Yoshinori Matsuda");
-static const u8 sCreditsText_HiroyukiNakamura[] = _("Hiroyuki Nakamura");
-static const u8 sCreditsText_MasaoTaya[] = _("Masao Taya");
-static const u8 sCreditsText_SatoshiNohara[] = _("Satoshi Nohara");
-static const u8 sCreditsText_TomomichiOhta[] = _("Tomomichi Ohta");
-static const u8 sCreditsText_MiyukiIwasawa[] = _("Miyuki Iwasawa");
-static const u8 sCreditsText_TakenoriOhta[] = _("Takenori Ohta");
-static const u8 sCreditsText_HironobuYoshida[] = _("Hironobu Yoshida");
-static const u8 sCreditsText_MotofumiFujiwara[] = _("Motofumi Fujiwara");
-static const u8 sCreditsText_SatoshiOhta[] = _("Satoshi Ohta");
-static const u8 sCreditsText_AsukaIwashita[] = _("Asuka Iwashita");
-static const u8 sCreditsText_AimiTomita[] = _("Aimi Tomita");
-static const u8 sCreditsText_TakaoUnno[] = _("Takao Unno");
-static const u8 sCreditsText_KanakoEo[] = _("Kanako Eo");
-static const u8 sCreditsText_JunOkutani[] = _("Jun Okutani");
-static const u8 sCreditsText_AtsukoNishida[] = _("Atsuko Nishida");
-static const u8 sCreditsText_MuneoSaito[] = _("Muneo Saito");
-static const u8 sCreditsText_RenaYoshikawa[] = _("Rena Yoshikawa");
-static const u8 sCreditsText_GoIchinose[] = _("Go Ichinose");
-static const u8 sCreditsText_MorikazuAoki[] = _("Morikazu Aoki");
-static const u8 sCreditsText_KojiNishino[] = _("Koji Nishino");
-static const u8 sCreditsText_KenjiMatsushima[] = _("Kenji Matsushima");
-static const u8 sCreditsText_TetsujiOhta[] = _("Tetsuji Ohta");
-static const u8 sCreditsText_HitomiSato[] = _("Hitomi Sato");
-static const u8 sCreditsText_TakeshiKawachimaru[] = _("Takeshi Kawachimaru");
-static const u8 sCreditsText_TeruyukiShimoyamada[] = _("Teruyuki Shimoyamada");
-static const u8 sCreditsText_ShigeruOhmori[] = _("Shigeru Ohmori");
-static const u8 sCreditsText_TadashiTakahashi[] = _("Tadashi Takahashi");
-static const u8 sCreditsText_ToshinobuMatsumiya[] = _("Toshinobu Matsumiya");
-static const u8 sCreditsText_AkihitoTomisawa[] = _("Akihito Tomisawa");
-static const u8 sCreditsText_HirokiEnomoto[] = _("Hiroki Enomoto");
-static const u8 sCreditsText_KazuyukiTerada[] = _("Kazuyuki Terada");
-static const u8 sCreditsText_YuriSakurai[] = _("Yuri Sakurai");
-static const u8 sCreditsText_HiromiSagawa[] = _("Hiromi Sagawa");
-static const u8 sCreditsText_KenjiTominaga[] = _("Kenji Tominaga");
-static const u8 sCreditsText_YoshioTajiri[] = _("Yoshio Tajiri");
-static const u8 sCreditsText_TeikoSasaki[] = _("Teiko Sasaki");
-static const u8 sCreditsText_SachikoHamano[] = _("Sachiko Hamano");
-static const u8 sCreditsText_ChieMatsumiya[] = _("Chie Matsumiya");
-static const u8 sCreditsText_AkikoShinozaki[] = _("Akiko Shinozaki");
-static const u8 sCreditsText_AstukoFujii[] = _("Astuko Fujii");
-static const u8 sCreditsText_NozomuSaito[] = _("Nozomu Saito");
-static const u8 sCreditsText_KenkichiToyama[] = _("Kenkichi Toyama");
-static const u8 sCreditsText_SuguruNakatsui[] = _("Suguru Nakatsui");
-static const u8 sCreditsText_YumiFunasaka[] = _("Yumi Funasaka");
-static const u8 sCreditsText_NaokoYanase[] = _("Naoko Yanase");
-static const u8 sCreditsText_NCLSuperMarioClub[] = _("NCL Super Mario Club");
-static const u8 sCreditsText_AtsushiTada[] = _("Atsushi Tada");
-static const u8 sCreditsText_TakahiroOhnishi[] = _("Takahiro Ohnishi");
-static const u8 sCreditsText_NorihideOkamura[] = _("Norihide Okamura");
-static const u8 sCreditsText_HiroNakamura[] = _("Hiro Nakamura");
-static const u8 sCreditsText_HiroyukiUesugi[] = _("Hiroyuki Uesugi");
-static const u8 sCreditsText_TerukiMurakawa[] = _("Teruki Murakawa");
-static const u8 sCreditsText_AkiraKinashi[] = _("Akira Kinashi");
-static const u8 sCreditsText_MichikoTakizawa[] = _("Michiko Takizawa");
-static const u8 sCreditsText_MakikoTakada[] = _("Makiko Takada");
-static const u8 sCreditsText_TakanaoKondo[] = _("Takanao Kondo");
-static const u8 sCreditsText_AiMashima[] = _("Ai Mashima");
-static const u8 sCreditsText_GakujiNomoto[] = _("Gakuji Nomoto");
-static const u8 sCreditsText_TakehiroIzushi[] = _("Takehiro Izushi");
-static const u8 sCreditsText_HitoshiYamagami[] = _("Hitoshi Yamagami");
-static const u8 sCreditsText_KyokoWatanabe[] = _("Kyoko Watanabe");
-static const u8 sCreditsText_TakaoNakano[] = _("Takao Nakano");
-static const u8 sCreditsText_HiroyukiJinnai[] = _("Hiroyuki Jinnai");
-static const u8 sCreditsText_HiroakiTsuru[] = _("Hiroaki Tsuru");
-static const u8 sCreditsText_TsunekazIshihara[] = _("Tsunekaz Ishihara");
-static const u8 sCreditsText_SatoruIwata[] = _("Satoru Iwata");
-static const u8 sCreditsText_KazuyaSuyama[] = _("Kazuya Suyama");
-static const u8 sCreditsText_SatoshiMitsuhara[] = _("Satoshi Mitsuhara");
-static const u8 sCreditsText_JapanBrailleLibrary[] = _("Japan Braille Library");
-static const u8 sCreditsText_TomotakaKomura[] = _("Tomotaka Komura");
-static const u8 sCreditsText_MikikoOhhashi[] = _("Mikiko Ohhashi");
-static const u8 sCreditsText_DaisukeHoshino[] = _("Daisuke Hoshino");
-static const u8 sCreditsText_KenjiroIto[] = _("Kenjiro Ito");
-static const u8 sCreditsText_RuiKawaguchi[] = _("Rui Kawaguchi");
-static const u8 sCreditsText_ShunsukeKohori[] = _("Shunsuke Kohori");
-static const u8 sCreditsText_SachikoNakamichi[] = _("Sachiko Nakamichi");
-static const u8 sCreditsText_FujikoNomura[] = _("Fujiko Nomura");
-static const u8 sCreditsText_KazukiYoshihara[] = _("Kazuki Yoshihara");
-static const u8 sCreditsText_RetsujiNomoto[] = _("Retsuji Nomoto");
-static const u8 sCreditsText_AzusaTajima[] = _("Azusa Tajima");
-static const u8 sCreditsText_ShusakuEgami[] = _("Shusaku Egami");
-static const u8 sCreditsText_PackageAndManual[] = _("Package & Manual Illustration");
-static const u8 sCreditsText_EnglishVersion[] = _("English Version Coordinators");
-static const u8 sCreditsText_Translator[] = _("Translator");
-static const u8 sCreditsText_TextEditor[] = _("Text Editor");
-static const u8 sCreditsText_NCLCoordinator[] = _("NCL Coordinator");
-static const u8 sCreditsText_GraphicDesigner[] = _("Graphic Designer");
-static const u8 sCreditsText_NOAProductTesting[] = _("NOA Product Testing");
-static const u8 sCreditsText_HideyukiNakajima[] = _("Hideyuki Nakajima");
-static const u8 sCreditsText_HidenoriSaeki[] = _("Hidenori Saeki");
-static const u8 sCreditsText_YokoWatanabe[] = _("Yoko Watanabe");
-static const u8 sCreditsText_SakaeKimura[] = _("Sakae Kimura");
-static const u8 sCreditsText_ChiakiShinkai[] = _("Chiaki Shinkai");
-static const u8 sCreditsText_SethMcMahill[] = _("Seth McMahill");
-static const u8 sCreditsText_NobOgasawara[] = _("Nob Ogasawara");
-static const u8 sCreditsText_TeresaLillygren[] = _("Teresa Lillygren");
-static const u8 sCreditsText_KimikoNakamichi[] = _("Kimiko Nakamichi");
-static const u8 sCreditsText_SouichiYamamoto[] = _("Souichi Yamamoto");
-static const u8 sCreditsText_YuichiroIto[] = _("Yuichiro Ito");
-static const u8 sCreditsText_ThomasHertzog[] = _("Thomas Hertzog");
-static const u8 sCreditsText_MikaKurosawa[] = _("Mika Kurosawa");
-static const u8 sCreditsText_NationalFederationBlind[] = _("National Federation of the Blind");
-static const u8 sCreditsText_PatriciaAMaurer[] = _("Patricia A. Maurer");
-static const u8 sCreditsText_EuropeanBlindUnion[] = _("European Blind Union");
-static const u8 sCreditsText_AustralianBrailleAuthority[] = _("Australian Braille Authority");
-static const u8 sCreditsText_RoyalNewZealandFederationBlind[] = _("Royal New Zealand Federation for the Blind");
-static const u8 sCreditsText_MotoyasuTojima[] = _("Motoyasu Tojima");
-static const u8 sCreditsText_NicolaPrattBarlow[] = _("Nicola Pratt-Barlow");
-static const u8 sCreditsText_ShellieDow[] = _("Shellie Dow");
-static const u8 sCreditsText_ErikJohnson[] = _("Erik Johnson");
-static const struct CreditsEntry sCreditsEntry_EmptyString[] = { 0, FALSE, sCreditsText_EmptyString};
-static const struct CreditsEntry sCreditsEntry_PkmnEmeraldVersion[] = { 7, TRUE, sCreditsText_PkmnEmeraldVersion};
-static const struct CreditsEntry sCreditsEntry_Credits[] = {11, TRUE, sCreditsText_Credits};
-static const struct CreditsEntry sCreditsEntry_ExecutiveDirector[] = { 8, TRUE, sCreditsText_ExecutiveDirector};
-static const struct CreditsEntry sCreditsEntry_Director[] = {12, TRUE, sCreditsText_Director};
-static const struct CreditsEntry sCreditsEntry_ArtDirector[] = {10, TRUE, sCreditsText_ArtDirector};
-static const struct CreditsEntry sCreditsEntry_BattleDirector[] = {10, TRUE, sCreditsText_BattleDirector};
-static const struct CreditsEntry sCreditsEntry_MainProgrammer[] = {10, TRUE, sCreditsText_MainProgrammer};
-static const struct CreditsEntry sCreditsEntry_BattleSystemPgrms[] = { 8, TRUE, sCreditsText_BattleSystemPgrms};
-static const struct CreditsEntry sCreditsEntry_FieldSystemPgrms[] = { 7, TRUE, sCreditsText_FieldSystemPgrms};
-static const struct CreditsEntry sCreditsEntry_Programmers[] = {12, TRUE, sCreditsText_Programmers};
-static const struct CreditsEntry sCreditsEntry_MainGraphicDesigner[] = { 7, TRUE, sCreditsText_MainGraphicDesigner};
-static const struct CreditsEntry sCreditsEntry_GraphicDesigners[] = { 9, TRUE, sCreditsText_GraphicDesigners};
-static const struct CreditsEntry sCreditsEntry_PkmnDesigners[] = {10, TRUE, sCreditsText_PkmnDesigners};
-static const struct CreditsEntry sCreditsEntry_MusicComposition[] = {13, TRUE, sCreditsText_MusicComposition};
-static const struct CreditsEntry sCreditsEntry_SoundEffectsAndPkmnVoices[] = { 4, TRUE, sCreditsText_SoundEffectsAndPkmnVoices};
-static const struct CreditsEntry sCreditsEntry_GameDesigners[] = {11, TRUE, sCreditsText_GameDesigners};
-static const struct CreditsEntry sCreditsEntry_ScenarioPlot[] = {11, TRUE, sCreditsText_ScenarioPlot};
-static const struct CreditsEntry sCreditsEntry_Scenario[] = {13, TRUE, sCreditsText_Scenario};
-static const struct CreditsEntry sCreditsEntry_ScriptDesigners[] = {10, TRUE, sCreditsText_ScriptDesigners};
-static const struct CreditsEntry sCreditsEntry_MapDesigners[] = {11, TRUE, sCreditsText_MapDesigners};
-static const struct CreditsEntry sCreditsEntry_MapDataDesigners[] = { 9, TRUE, sCreditsText_MapDataDesigners};
-static const struct CreditsEntry sCreditsEntry_ParametricDesigners[] = { 9, TRUE, sCreditsText_ParametricDesigners};
-static const struct CreditsEntry sCreditsEntry_PokedexText[] = {11, TRUE, sCreditsText_PokedexText};
-static const struct CreditsEntry sCreditsEntry_EnvAndToolPgrms[] = { 6, TRUE, sCreditsText_EnvAndToolPgrms};
-static const struct CreditsEntry sCreditsEntry_NCLProductTesting[] = {11, TRUE, sCreditsText_NCLProductTesting};
-static const struct CreditsEntry sCreditsEntry_SpecialThanks[] = {10, TRUE, sCreditsText_SpecialThanks};
-static const struct CreditsEntry sCreditsEntry_Coordinators[] = {11, TRUE, sCreditsText_Coordinators};
-static const struct CreditsEntry sCreditsEntry_Producers[] = {11, TRUE, sCreditsText_Producers};
-static const struct CreditsEntry sCreditsEntry_ExecProducers[] = { 7, TRUE, sCreditsText_ExecProducers};
-static const struct CreditsEntry sCreditsEntry_InfoSupervisors[] = {10, TRUE, sCreditsText_InfoSupervisors};
-static const struct CreditsEntry sCreditsEntry_TaskManagers[] = { 8, TRUE, sCreditsText_TaskManagers};
-static const struct CreditsEntry sCreditsEntry_BrailleCodeCheck[] = {10, TRUE, sCreditsText_BrailleCodeCheck};
-static const struct CreditsEntry sCreditsEntry_WorldDirector[] = {10, TRUE, sCreditsText_WorldDirector};
-static const struct CreditsEntry sCreditsEntry_BattleFrontierData[] = { 8, TRUE, sCreditsText_BattleFrontierData};
-static const struct CreditsEntry sCreditsEntry_SupportProgrammers[] = {10, TRUE, sCreditsText_SupportProgrammers};
-static const struct CreditsEntry sCreditsEntry_Artwork[] = {12, TRUE, sCreditsText_Artwork};
-static const struct CreditsEntry sCreditsEntry_LeadProgrammer[] = {10, TRUE, sCreditsText_LeadProgrammer};
-static const struct CreditsEntry sCreditsEntry_LeadGraphicArtist[] = { 9, TRUE, sCreditsText_LeadGraphicArtist};
-static const struct CreditsEntry sCreditsEntry_SatoshiTajiri[] = {11, FALSE, sCreditsText_SatoshiTajiri};
-static const struct CreditsEntry sCreditsEntry_JunichiMasuda[] = {11, FALSE, sCreditsText_JunichiMasuda};
-static const struct CreditsEntry sCreditsEntry_KenSugimori[] = {11, FALSE, sCreditsText_KenSugimori};
-static const struct CreditsEntry sCreditsEntry_ShigekiMorimoto[] = {11, FALSE, sCreditsText_ShigekiMorimoto};
-static const struct CreditsEntry sCreditsEntry_TetsuyaWatanabe[] = {11, FALSE, sCreditsText_TetsuyaWatanabe};
-static const struct CreditsEntry sCreditsEntry_HisashiSogabe[] = {11, FALSE, sCreditsText_HisashiSogabe};
-static const struct CreditsEntry sCreditsEntry_SosukeTamada[] = {11, FALSE, sCreditsText_SosukeTamada};
-static const struct CreditsEntry sCreditsEntry_AkitoMori[] = {11, FALSE, sCreditsText_AkitoMori};
-static const struct CreditsEntry sCreditsEntry_KeitaKagaya[] = {11, FALSE, sCreditsText_KeitaKagaya};
-static const struct CreditsEntry sCreditsEntry_YoshinoriMatsuda[] = {11, FALSE, sCreditsText_YoshinoriMatsuda};
-static const struct CreditsEntry sCreditsEntry_HiroyukiNakamura[] = {11, FALSE, sCreditsText_HiroyukiNakamura};
-static const struct CreditsEntry sCreditsEntry_MasaoTaya[] = {11, FALSE, sCreditsText_MasaoTaya};
-static const struct CreditsEntry sCreditsEntry_SatoshiNohara[] = {11, FALSE, sCreditsText_SatoshiNohara};
-static const struct CreditsEntry sCreditsEntry_TomomichiOhta[] = {11, FALSE, sCreditsText_TomomichiOhta};
-static const struct CreditsEntry sCreditsEntry_MiyukiIwasawa[] = {11, FALSE, sCreditsText_MiyukiIwasawa};
-static const struct CreditsEntry sCreditsEntry_TakenoriOhta[] = {11, FALSE, sCreditsText_TakenoriOhta};
-static const struct CreditsEntry sCreditsEntry_HironobuYoshida[] = {11, FALSE, sCreditsText_HironobuYoshida};
-static const struct CreditsEntry sCreditsEntry_MotofumiFujiwara[] = {11, FALSE, sCreditsText_MotofumiFujiwara};
-static const struct CreditsEntry sCreditsEntry_SatoshiOhta[] = {11, FALSE, sCreditsText_SatoshiOhta};
-static const struct CreditsEntry sCreditsEntry_AsukaIwashita[] = {11, FALSE, sCreditsText_AsukaIwashita};
-static const struct CreditsEntry sCreditsEntry_AimiTomita[] = {11, FALSE, sCreditsText_AimiTomita};
-static const struct CreditsEntry sCreditsEntry_TakaoUnno[] = {11, FALSE, sCreditsText_TakaoUnno};
-static const struct CreditsEntry sCreditsEntry_KanakoEo[] = {11, FALSE, sCreditsText_KanakoEo};
-static const struct CreditsEntry sCreditsEntry_JunOkutani[] = {11, FALSE, sCreditsText_JunOkutani};
-static const struct CreditsEntry sCreditsEntry_AtsukoNishida[] = {11, FALSE, sCreditsText_AtsukoNishida};
-static const struct CreditsEntry sCreditsEntry_MuneoSaito[] = {11, FALSE, sCreditsText_MuneoSaito};
-static const struct CreditsEntry sCreditsEntry_RenaYoshikawa[] = {11, FALSE, sCreditsText_RenaYoshikawa};
-static const struct CreditsEntry sCreditsEntry_GoIchinose[] = {11, FALSE, sCreditsText_GoIchinose};
-static const struct CreditsEntry sCreditsEntry_MorikazuAoki[] = {11, FALSE, sCreditsText_MorikazuAoki};
-static const struct CreditsEntry sCreditsEntry_KojiNishino[] = {11, FALSE, sCreditsText_KojiNishino};
-static const struct CreditsEntry sCreditsEntry_KenjiMatsushima[] = {11, FALSE, sCreditsText_KenjiMatsushima};
-static const struct CreditsEntry sCreditsEntry_TetsujiOhta[] = {11, FALSE, sCreditsText_TetsujiOhta};
-static const struct CreditsEntry sCreditsEntry_HitomiSato[] = {11, FALSE, sCreditsText_HitomiSato};
-static const struct CreditsEntry sCreditsEntry_TakeshiKawachimaru[] = {11, FALSE, sCreditsText_TakeshiKawachimaru};
-static const struct CreditsEntry sCreditsEntry_TeruyukiShimoyamada[] = {11, FALSE, sCreditsText_TeruyukiShimoyamada};
-static const struct CreditsEntry sCreditsEntry_ShigeruOhmori[] = {11, FALSE, sCreditsText_ShigeruOhmori};
-static const struct CreditsEntry sCreditsEntry_TadashiTakahashi[] = {11, FALSE, sCreditsText_TadashiTakahashi};
-static const struct CreditsEntry sCreditsEntry_ToshinobuMatsumiya[] = {11, FALSE, sCreditsText_ToshinobuMatsumiya};
-static const struct CreditsEntry sCreditsEntry_AkihitoTomisawa[] = {11, FALSE, sCreditsText_AkihitoTomisawa};
-static const struct CreditsEntry sCreditsEntry_HirokiEnomoto[] = {11, FALSE, sCreditsText_HirokiEnomoto};
-static const struct CreditsEntry sCreditsEntry_KazuyukiTerada[] = {11, FALSE, sCreditsText_KazuyukiTerada};
-static const struct CreditsEntry sCreditsEntry_YuriSakurai[] = {11, FALSE, sCreditsText_YuriSakurai};
-static const struct CreditsEntry sCreditsEntry_HiromiSagawa[] = {11, FALSE, sCreditsText_HiromiSagawa};
-static const struct CreditsEntry sCreditsEntry_KenjiTominaga[] = {11, FALSE, sCreditsText_KenjiTominaga};
-static const struct CreditsEntry sCreditsEntry_YoshioTajiri[] = {11, FALSE, sCreditsText_YoshioTajiri};
-static const struct CreditsEntry sCreditsEntry_TeikoSasaki[] = {11, FALSE, sCreditsText_TeikoSasaki};
-static const struct CreditsEntry sCreditsEntry_SachikoHamano[] = {11, FALSE, sCreditsText_SachikoHamano};
-static const struct CreditsEntry sCreditsEntry_ChieMatsumiya[] = {11, FALSE, sCreditsText_ChieMatsumiya};
-static const struct CreditsEntry sCreditsEntry_AkikoShinozaki[] = {11, FALSE, sCreditsText_AkikoShinozaki};
-static const struct CreditsEntry sCreditsEntry_AstukoFujii[] = {11, FALSE, sCreditsText_AstukoFujii};
-static const struct CreditsEntry sCreditsEntry_NozomuSaito[] = {11, FALSE, sCreditsText_NozomuSaito};
-static const struct CreditsEntry sCreditsEntry_KenkichiToyama[] = {11, FALSE, sCreditsText_KenkichiToyama};
-static const struct CreditsEntry sCreditsEntry_SuguruNakatsui[] = {11, FALSE, sCreditsText_SuguruNakatsui};
-static const struct CreditsEntry sCreditsEntry_YumiFunasaka[] = {11, FALSE, sCreditsText_YumiFunasaka};
-static const struct CreditsEntry sCreditsEntry_NaokoYanase[] = {11, FALSE, sCreditsText_NaokoYanase};
-static const struct CreditsEntry sCreditsEntry_NCLSuperMarioClub[] = {11, FALSE, sCreditsText_NCLSuperMarioClub};
-static const struct CreditsEntry sCreditsEntry_AtsushiTada[] = {11, FALSE, sCreditsText_AtsushiTada};
-static const struct CreditsEntry sCreditsEntry_TakahiroOhnishi[] = {11, FALSE, sCreditsText_TakahiroOhnishi};
-static const struct CreditsEntry sCreditsEntry_NorihideOkamura[] = {11, FALSE, sCreditsText_NorihideOkamura};
-static const struct CreditsEntry sCreditsEntry_HiroNakamura[] = {11, FALSE, sCreditsText_HiroNakamura};
-static const struct CreditsEntry sCreditsEntry_HiroyukiUesugi[] = {11, FALSE, sCreditsText_HiroyukiUesugi};
-static const struct CreditsEntry sCreditsEntry_TerukiMurakawa[] = {11, FALSE, sCreditsText_TerukiMurakawa};
-static const struct CreditsEntry sCreditsEntry_AkiraKinashi[] = {11, FALSE, sCreditsText_AkiraKinashi};
-static const struct CreditsEntry sCreditsEntry_MichikoTakizawa[] = {11, FALSE, sCreditsText_MichikoTakizawa};
-static const struct CreditsEntry sCreditsEntry_MakikoTakada[] = {11, FALSE, sCreditsText_MakikoTakada};
-static const struct CreditsEntry sCreditsEntry_TakanaoKondo[] = {11, FALSE, sCreditsText_TakanaoKondo};
-static const struct CreditsEntry sCreditsEntry_AiMashima[] = {11, FALSE, sCreditsText_AiMashima};
-static const struct CreditsEntry sCreditsEntry_GakujiNomoto[] = {11, FALSE, sCreditsText_GakujiNomoto};
-static const struct CreditsEntry sCreditsEntry_TakehiroIzushi[] = {11, FALSE, sCreditsText_TakehiroIzushi};
-static const struct CreditsEntry sCreditsEntry_HitoshiYamagami[] = {11, FALSE, sCreditsText_HitoshiYamagami};
-static const struct CreditsEntry sCreditsEntry_KyokoWatanabe[] = {11, FALSE, sCreditsText_KyokoWatanabe};
-static const struct CreditsEntry sCreditsEntry_TakaoNakano[] = {11, FALSE, sCreditsText_TakaoNakano};
-static const struct CreditsEntry sCreditsEntry_HiroyukiJinnai[] = {11, FALSE, sCreditsText_HiroyukiJinnai};
-static const struct CreditsEntry sCreditsEntry_HiroakiTsuru[] = {11, FALSE, sCreditsText_HiroakiTsuru};
-static const struct CreditsEntry sCreditsEntry_TsunekazIshihara[] = {11, FALSE, sCreditsText_TsunekazIshihara};
-static const struct CreditsEntry sCreditsEntry_SatoruIwata[] = {11, FALSE, sCreditsText_SatoruIwata};
-static const struct CreditsEntry sCreditsEntry_KazuyaSuyama[] = {11, FALSE, sCreditsText_KazuyaSuyama};
-static const struct CreditsEntry sCreditsEntry_SatoshiMitsuhara[] = {11, FALSE, sCreditsText_SatoshiMitsuhara};
-static const struct CreditsEntry sCreditsEntry_JapanBrailleLibrary[] = { 9, FALSE, sCreditsText_JapanBrailleLibrary};
-static const struct CreditsEntry sCreditsEntry_TomotakaKomura[] = {11, FALSE, sCreditsText_TomotakaKomura};
-static const struct CreditsEntry sCreditsEntry_MikikoOhhashi[] = {11, FALSE, sCreditsText_MikikoOhhashi};
-static const struct CreditsEntry sCreditsEntry_DaisukeHoshino[] = {11, FALSE, sCreditsText_DaisukeHoshino};
-static const struct CreditsEntry sCreditsEntry_KenjiroIto[] = {11, FALSE, sCreditsText_KenjiroIto};
-static const struct CreditsEntry sCreditsEntry_RuiKawaguchi[] = {11, FALSE, sCreditsText_RuiKawaguchi};
-static const struct CreditsEntry sCreditsEntry_ShunsukeKohori[] = {11, FALSE, sCreditsText_ShunsukeKohori};
-static const struct CreditsEntry sCreditsEntry_SachikoNakamichi[] = {11, FALSE, sCreditsText_SachikoNakamichi};
-static const struct CreditsEntry sCreditsEntry_FujikoNomura[] = {11, FALSE, sCreditsText_FujikoNomura};
-static const struct CreditsEntry sCreditsEntry_KazukiYoshihara[] = {11, FALSE, sCreditsText_KazukiYoshihara};
-static const struct CreditsEntry sCreditsEntry_RetsujiNomoto[] = {11, FALSE, sCreditsText_RetsujiNomoto};
-static const struct CreditsEntry sCreditsEntry_AzusaTajima[] = {11, FALSE, sCreditsText_AzusaTajima};
-static const struct CreditsEntry sCreditsEntry_ShusakuEgami[] = {11, FALSE, sCreditsText_ShusakuEgami};
-static const struct CreditsEntry sCreditsEntry_PackageAndManual[] = { 0, TRUE, sCreditsText_PackageAndManual};
-static const struct CreditsEntry sCreditsEntry_EnglishVersion[] = { 0, TRUE, sCreditsText_EnglishVersion};
-static const struct CreditsEntry sCreditsEntry_Translator[] = { 0, TRUE, sCreditsText_Translator};
-static const struct CreditsEntry sCreditsEntry_TextEditor[] = { 0, TRUE, sCreditsText_TextEditor};
-static const struct CreditsEntry sCreditsEntry_NCLCoordinator[] = { 0, TRUE, sCreditsText_NCLCoordinator};
-static const struct CreditsEntry sCreditsEntry_GraphicDesigner[] = { 0, TRUE, sCreditsText_GraphicDesigner};
-static const struct CreditsEntry sCreditsEntry_NOAProductTesting[] = { 0, TRUE, sCreditsText_NOAProductTesting};
-static const struct CreditsEntry sCreditsEntry_HideyukiNakajima[] = { 0, FALSE, sCreditsText_HideyukiNakajima};
-static const struct CreditsEntry sCreditsEntry_HidenoriSaeki[] = { 0, FALSE, sCreditsText_HidenoriSaeki};
-static const struct CreditsEntry sCreditsEntry_YokoWatanabe[] = { 0, FALSE, sCreditsText_YokoWatanabe};
-static const struct CreditsEntry sCreditsEntry_SakaeKimura[] = { 0, FALSE, sCreditsText_SakaeKimura};
-static const struct CreditsEntry sCreditsEntry_ChiakiShinkai[] = { 0, FALSE, sCreditsText_ChiakiShinkai};
-static const struct CreditsEntry sCreditsEntry_SethMcMahill[] = { 0, FALSE, sCreditsText_SethMcMahill};
-static const struct CreditsEntry sCreditsEntry_NobOgasawara[] = { 0, FALSE, sCreditsText_NobOgasawara};
-static const struct CreditsEntry sCreditsEntry_TeresaLillygren[] = { 0, FALSE, sCreditsText_TeresaLillygren};
-static const struct CreditsEntry sCreditsEntry_KimikoNakamichi[] = { 0, FALSE, sCreditsText_KimikoNakamichi};
-static const struct CreditsEntry sCreditsEntry_SouichiYamamoto[] = { 0, FALSE, sCreditsText_SouichiYamamoto};
-static const struct CreditsEntry sCreditsEntry_YuichiroIto[] = { 0, FALSE, sCreditsText_YuichiroIto};
-static const struct CreditsEntry sCreditsEntry_ThomasHertzog[] = { 0, FALSE, sCreditsText_ThomasHertzog};
-static const struct CreditsEntry sCreditsEntry_MikaKurosawa[] = { 0, FALSE, sCreditsText_MikaKurosawa};
-static const struct CreditsEntry sCreditsEntry_NationalFederationBlind[] = { 0, FALSE, sCreditsText_NationalFederationBlind};
-static const struct CreditsEntry sCreditsEntry_PatriciaAMaurer[] = { 0, FALSE, sCreditsText_PatriciaAMaurer};
-static const struct CreditsEntry sCreditsEntry_EuropeanBlindUnion[] = { 0, FALSE, sCreditsText_EuropeanBlindUnion};
-static const struct CreditsEntry sCreditsEntry_AustralianBrailleAuthority[] = { 0, FALSE, sCreditsText_AustralianBrailleAuthority};
-static const struct CreditsEntry sCreditsEntry_RoyalNewZealandFederationBlind[] = { 0, FALSE, sCreditsText_RoyalNewZealandFederationBlind};
-static const struct CreditsEntry sCreditsEntry_MotoyasuTojima[] = { 0, FALSE, sCreditsText_MotoyasuTojima};
-static const struct CreditsEntry sCreditsEntry_NicolaPrattBarlow[] = { 0, FALSE, sCreditsText_NicolaPrattBarlow};
-static const struct CreditsEntry sCreditsEntry_ShellieDow[] = { 0, FALSE, sCreditsText_ShellieDow};
-static const struct CreditsEntry sCreditsEntry_ErikJohnson[] = { 0, FALSE, sCreditsText_ErikJohnson};
-
-#define _ sCreditsEntry_EmptyString
-static const struct CreditsEntry *const gCreditsEntryPointerTable[][5] =
-{
- {
- _,
- sCreditsEntry_PkmnEmeraldVersion,
- sCreditsEntry_Credits,
- _,
- _
- },
- {
- _,
- sCreditsEntry_Director,
- sCreditsEntry_ShigekiMorimoto,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_ArtDirector,
- sCreditsEntry_KenSugimori,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_WorldDirector,
- sCreditsEntry_JunichiMasuda,
- _,
- _,
- },
- {
- sCreditsEntry_LeadProgrammer,
- sCreditsEntry_HisashiSogabe,
- sCreditsEntry_LeadGraphicArtist,
- sCreditsEntry_MotofumiFujiwara,
- _,
- },
- {
- sCreditsEntry_Programmers,
- sCreditsEntry_HisashiSogabe,
- sCreditsEntry_TomomichiOhta,
- sCreditsEntry_NozomuSaito,
- sCreditsEntry_EmptyString,
- },
- {
- sCreditsEntry_Programmers,
- sCreditsEntry_AkitoMori,
- sCreditsEntry_HiroyukiNakamura,
- sCreditsEntry_MasaoTaya,
- _,
- },
- {
- sCreditsEntry_Programmers,
- sCreditsEntry_SatoshiNohara,
- sCreditsEntry_MiyukiIwasawa,
- sCreditsEntry_YoshinoriMatsuda,
- sCreditsEntry_KeitaKagaya,
- },
- {
- sCreditsEntry_Programmers,
- sCreditsEntry_TetsuyaWatanabe,
- sCreditsEntry_SosukeTamada,
- sCreditsEntry_TakenoriOhta,
- _,
- },
- {
- _,
- sCreditsEntry_GraphicDesigners,
- sCreditsEntry_MotofumiFujiwara,
- sCreditsEntry_SatoshiOhta,
- _,
- },
- {
- sCreditsEntry_GraphicDesigners,
- sCreditsEntry_KenkichiToyama,
- sCreditsEntry_AsukaIwashita,
- sCreditsEntry_TakaoUnno,
- _,
- },
- {
- sCreditsEntry_GraphicDesigners,
- sCreditsEntry_KenSugimori,
- sCreditsEntry_HironobuYoshida,
- sCreditsEntry_AimiTomita,
- sCreditsEntry_KanakoEo,
- },
- {
- sCreditsEntry_MusicComposition,
- sCreditsEntry_GoIchinose,
- sCreditsEntry_JunichiMasuda,
- sCreditsEntry_MorikazuAoki,
- sCreditsEntry_HitomiSato,
- },
- {
- _,
- sCreditsEntry_SoundEffectsAndPkmnVoices,
- sCreditsEntry_GoIchinose,
- sCreditsEntry_MorikazuAoki,
- _,
- },
- {
- sCreditsEntry_GameDesigners,
- sCreditsEntry_ShigekiMorimoto,
- sCreditsEntry_TeruyukiShimoyamada,
- sCreditsEntry_TakeshiKawachimaru,
- sCreditsEntry_AkihitoTomisawa,
- },
- {
- sCreditsEntry_GameDesigners,
- sCreditsEntry_SuguruNakatsui,
- sCreditsEntry_TetsujiOhta,
- sCreditsEntry_HitomiSato,
- sCreditsEntry_KenjiMatsushima,
- },
- {
- sCreditsEntry_GameDesigners,
- sCreditsEntry_JunichiMasuda,
- sCreditsEntry_KojiNishino,
- sCreditsEntry_ShigeruOhmori,
- sCreditsEntry_TadashiTakahashi,
- },
- {
- sCreditsEntry_ScenarioPlot,
- sCreditsEntry_AkihitoTomisawa,
- sCreditsEntry_JunichiMasuda,
- sCreditsEntry_KojiNishino,
- _,
- },
- {
- sCreditsEntry_Scenario,
- sCreditsEntry_AkihitoTomisawa,
- sCreditsEntry_HitomiSato,
- sCreditsEntry_ToshinobuMatsumiya,
- _,
- },
- {
- sCreditsEntry_ScriptDesigners,
- sCreditsEntry_TomomichiOhta,
- sCreditsEntry_SatoshiNohara,
- _,
- _,
- },
- {
- sCreditsEntry_MapDesigners,
- sCreditsEntry_SuguruNakatsui,
- sCreditsEntry_TeruyukiShimoyamada,
- sCreditsEntry_ShigeruOhmori,
- sCreditsEntry_TetsujiOhta,
- },
- {
- _,
- sCreditsEntry_BattleFrontierData,
- sCreditsEntry_TetsujiOhta,
- _,
- _,
- },
- {
- sCreditsEntry_ParametricDesigners,
- sCreditsEntry_TeruyukiShimoyamada,
- sCreditsEntry_ShigekiMorimoto,
- sCreditsEntry_TetsujiOhta,
- sCreditsEntry_KojiNishino,
- },
- {
- _,
- sCreditsEntry_PokedexText,
- sCreditsEntry_KenjiMatsushima,
- _,
- _,
- },
- {
- sCreditsEntry_EnvAndToolPgrms,
- sCreditsEntry_HisashiSogabe,
- sCreditsEntry_SosukeTamada,
- sCreditsEntry_HiroyukiNakamura,
- sCreditsEntry_AkitoMori,
- },
- {
- sCreditsEntry_PkmnDesigners,
- sCreditsEntry_KenSugimori,
- sCreditsEntry_MotofumiFujiwara,
- sCreditsEntry_ShigekiMorimoto,
- _,
- },
- {
- sCreditsEntry_PkmnDesigners,
- sCreditsEntry_HironobuYoshida,
- sCreditsEntry_SatoshiOhta,
- sCreditsEntry_AsukaIwashita,
- _,
- },
- {
- sCreditsEntry_PkmnDesigners,
- sCreditsEntry_TakaoUnno,
- sCreditsEntry_KanakoEo,
- sCreditsEntry_AimiTomita,
- _,
- },
- {
- sCreditsEntry_PkmnDesigners,
- sCreditsEntry_AtsukoNishida,
- sCreditsEntry_MuneoSaito,
- sCreditsEntry_RenaYoshikawa,
- sCreditsEntry_JunOkutani,
- },
- {
- _,
- sCreditsEntry_SupportProgrammers,
- sCreditsEntry_SatoshiMitsuhara,
- sCreditsEntry_DaisukeHoshino,
- _,
- },
- {
- _,
- sCreditsEntry_NCLProductTesting,
- sCreditsEntry_NCLSuperMarioClub,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_PackageAndManual,
- sCreditsEntry_KenSugimori,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_SpecialThanks,
- sCreditsEntry_KenjiTominaga,
- sCreditsEntry_HirokiEnomoto,
- _,
- },
- {
- sCreditsEntry_SpecialThanks,
- sCreditsEntry_KazuyaSuyama,
- sCreditsEntry_KenjiroIto,
- sCreditsEntry_MichikoTakizawa,
- sCreditsEntry_MakikoTakada,
- },
- {
- sCreditsEntry_SpecialThanks,
- sCreditsEntry_MikikoOhhashi,
- sCreditsEntry_TakanaoKondo,
- sCreditsEntry_RuiKawaguchi,
- _,
- },
- {
- sCreditsEntry_SpecialThanks,
- sCreditsEntry_TakahiroOhnishi,
- sCreditsEntry_NorihideOkamura,
- sCreditsEntry_ShunsukeKohori,
- _,
- },
- {
- sCreditsEntry_InfoSupervisors,
- sCreditsEntry_KazuyukiTerada,
- sCreditsEntry_YuriSakurai,
- sCreditsEntry_YumiFunasaka,
- sCreditsEntry_NaokoYanase,
- },
- {
- _,
- sCreditsEntry_Artwork,
- sCreditsEntry_SachikoNakamichi,
- sCreditsEntry_FujikoNomura,
- _,
- },
- {
- _,
- sCreditsEntry_Artwork,
- sCreditsEntry_HideyukiNakajima,
- sCreditsEntry_HidenoriSaeki,
- _,
- },
- {
- sCreditsEntry_Artwork,
- sCreditsEntry_YokoWatanabe,
- sCreditsEntry_SakaeKimura,
- sCreditsEntry_ChiakiShinkai,
- _,
- },
- {
- sCreditsEntry_Coordinators,
- sCreditsEntry_KazukiYoshihara,
- sCreditsEntry_AkiraKinashi,
- sCreditsEntry_RetsujiNomoto,
- _,
- },
- {
- _,
- sCreditsEntry_EnglishVersion,
- sCreditsEntry_HiroNakamura,
- sCreditsEntry_SethMcMahill,
- _,
- },
- {
- _,
- sCreditsEntry_Translator,
- sCreditsEntry_NobOgasawara,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_TextEditor,
- sCreditsEntry_TeresaLillygren,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_NCLCoordinator,
- sCreditsEntry_KimikoNakamichi,
- _,
- _,
- },
- {
- sCreditsEntry_Programmers,
- sCreditsEntry_TerukiMurakawa,
- sCreditsEntry_SouichiYamamoto,
- sCreditsEntry_YuichiroIto,
- sCreditsEntry_AkiraKinashi,
- },
- {
- _,
- sCreditsEntry_GraphicDesigner,
- sCreditsEntry_AkiraKinashi,
- _,
- _,
- },
- {
- sCreditsEntry_EnvAndToolPgrms,
- sCreditsEntry_TerukiMurakawa,
- sCreditsEntry_SouichiYamamoto,
- sCreditsEntry_KimikoNakamichi,
- _,
- },
- {
- sCreditsEntry_NOAProductTesting,
- sCreditsEntry_ThomasHertzog,
- sCreditsEntry_ErikJohnson,
- sCreditsEntry_MikaKurosawa,
- _,
- },
- {
- sCreditsEntry_BrailleCodeCheck,
- sCreditsEntry_NationalFederationBlind,
- sCreditsEntry_PatriciaAMaurer,
- sCreditsEntry_JapanBrailleLibrary,
- sCreditsEntry_EuropeanBlindUnion,
- },
- {
- _,
- sCreditsEntry_BrailleCodeCheck,
- sCreditsEntry_AustralianBrailleAuthority,
- sCreditsEntry_RoyalNewZealandFederationBlind,
- _,
- },
- {
- sCreditsEntry_SpecialThanks,
- sCreditsEntry_HiroyukiUesugi,
- sCreditsEntry_MotoyasuTojima,
- sCreditsEntry_NicolaPrattBarlow,
- sCreditsEntry_ShellieDow,
- },
- {
- _,
- sCreditsEntry_TaskManagers,
- sCreditsEntry_AzusaTajima,
- sCreditsEntry_ShusakuEgami,
- _,
- },
- {
- sCreditsEntry_Producers,
- sCreditsEntry_HiroyukiJinnai,
- sCreditsEntry_HitoshiYamagami,
- sCreditsEntry_GakujiNomoto,
- sCreditsEntry_HiroakiTsuru,
- },
- {
- _,
- sCreditsEntry_ExecutiveDirector,
- sCreditsEntry_SatoshiTajiri,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_ExecProducers,
- sCreditsEntry_SatoruIwata,
- _,
- _,
- },
- {
- _,
- sCreditsEntry_ExecProducers,
- sCreditsEntry_TsunekazIshihara,
- _,
- _,
- },
-};
-#undef _
+#include "data/credits.h"
static const struct BgTemplate sBackgroundTemplates[] =
{
@@ -966,7 +214,7 @@ static const u8 sMonSpritePos[][2] =
{136, 36},
};
-static const union AnimCmd gUnknown_085E6F84[] =
+static const union AnimCmd sAnim_Player_Slow[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(64, 8),
@@ -975,7 +223,7 @@ static const union AnimCmd gUnknown_085E6F84[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd gUnknown_085E6F98[] =
+static const union AnimCmd sAnim_Player_Fast[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(64, 4),
@@ -984,7 +232,7 @@ static const union AnimCmd gUnknown_085E6F98[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd gUnknown_085E6FAC[] =
+static const union AnimCmd sAnim_Player_LookBack[] =
{
ANIMCMD_FRAME(256, 4),
ANIMCMD_FRAME(320, 4),
@@ -992,7 +240,7 @@ static const union AnimCmd gUnknown_085E6FAC[] =
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_085E6FBC[] =
+static const union AnimCmd sAnim_Player_LookForward[] =
{
ANIMCMD_FRAME(384, 30),
ANIMCMD_FRAME(320, 30),
@@ -1001,15 +249,15 @@ static const union AnimCmd gUnknown_085E6FBC[] =
ANIMCMD_END,
};
-static const union AnimCmd *const gUnknown_085E6FD0[] =
+static const union AnimCmd *const sAnims_Player[] =
{
- gUnknown_085E6F84,
- gUnknown_085E6F98,
- gUnknown_085E6FAC,
- gUnknown_085E6FBC,
+ sAnim_Player_Slow,
+ sAnim_Player_Fast,
+ sAnim_Player_LookBack,
+ sAnim_Player_LookForward,
};
-static const union AnimCmd gUnknown_085E6FE0[] =
+static const union AnimCmd sAnim_Rival_Slow[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(64, 8),
@@ -1018,7 +266,7 @@ static const union AnimCmd gUnknown_085E6FE0[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd gUnknown_085E6FF4[] =
+static const union AnimCmd sAnim_Rival_Fast[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(64, 4),
@@ -1027,31 +275,32 @@ static const union AnimCmd gUnknown_085E6FF4[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd gUnknown_085E7008[] =
+static const union AnimCmd sAnim_Rival_Still[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_END,
};
-static const union AnimCmd *const gUnknown_085E7010[] =
+static const union AnimCmd *const sAnims_Rival[] =
{
- gUnknown_085E6FE0,
- gUnknown_085E6FF4,
- gUnknown_085E7008,
+ sAnim_Rival_Slow,
+ sAnim_Rival_Fast,
+ sAnim_Rival_Still,
};
-static const struct SpriteSheet gUnknown_085E701C[] = {
- { gDecompressionBuffer, 6144, 1001 },
- { NULL },
+#define MONBG_OFFSET (0x800 * 3)
+static const struct SpriteSheet sSpriteSheet_MonBg[] = {
+ { gDecompressionBuffer, MONBG_OFFSET, TAG_MON_BG },
+ {},
};
-static const struct SpritePalette gUnknown_085E702C[] = {
- { (const u16 *)(gDecompressionBuffer + 0x1800), 1001 },
- { NULL },
+static const struct SpritePalette sSpritePalette_MonBg[] = {
+ { (const u16 *)&gDecompressionBuffer[MONBG_OFFSET], TAG_MON_BG },
+ {},
};
-static const struct OamData gUnknown_085E703C =
+static const struct OamData sOamData_MonBg =
{
- .y = 160,
+ .y = DISPLAY_HEIGHT,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
@@ -1066,90 +315,63 @@ static const struct OamData gUnknown_085E703C =
.affineParam = 0,
};
-static const union AnimCmd gUnknown_085E7044[] =
+static const union AnimCmd sAnim_MonBg_Yellow[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_085E704C[] =
+static const union AnimCmd sAnim_MonBg_Red[] =
{
ANIMCMD_FRAME(64, 8),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_085E7054[] =
+static const union AnimCmd sAnim_MonBg_Blue[] =
{
ANIMCMD_FRAME(128, 8),
ANIMCMD_END,
};
-static const union AnimCmd *const gUnknown_085E705C[] =
+static const union AnimCmd *const sAnims_MonBg[] =
{
- gUnknown_085E7044,
- gUnknown_085E704C,
- gUnknown_085E7054,
+ [POS_LEFT] = sAnim_MonBg_Yellow,
+ [POS_CENTER] = sAnim_MonBg_Red,
+ [POS_RIGHT] = sAnim_MonBg_Blue,
};
-static const struct SpriteTemplate gUnknown_085E7068 =
+static const struct SpriteTemplate sSpriteTemplate_CreditsMonBg =
{
- .tileTag = 1001,
- .paletteTag = 1001,
- .oam = &gUnknown_085E703C,
- .anims = gUnknown_085E705C,
+ .tileTag = TAG_MON_BG,
+ .paletteTag = TAG_MON_BG,
+ .oam = &sOamData_MonBg,
+ .anims = sAnims_MonBg,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_81772B8,
+ .callback = SpriteCB_CreditsMonBg,
};
-static void Task_WaitPaletteFade(u8 taskIdA);
-static void Task_ProgressCreditTasks(u8 taskIdA);
-static void sub_8175808(u8 taskIdA);
-static void c2_080C9BFC(u8 taskIdA);
-static void Task_CreditsLoadGrassScene(u8 taskIdA);
-static void sub_81758A4(u8 taskIdA);
-static void Task_CreditsTheEnd1(u8 taskIdA);
-static void Task_CreditsTheEnd2(u8 taskIdA);
-static void Task_CreditsTheEnd3(u8 taskIdA);
-static void Task_CreditsTheEnd4(u8 taskIdA);
-static void Task_CreditsTheEnd5(u8 taskIdA);
-static void Task_CreditsTheEnd6(u8 taskIdA);
-static void Task_CreditsSoftReset(u8 taskIdA);
-static void ResetGpuAndVram(void);
-static void sub_8175DA0(u8 taskIdB);
-static u8 CheckChangeScene(u8 page, u8 taskIdA);
-static void sub_81760FC(u8 taskIdA);
-static void sub_817651C(u8 taskIdA);
-static void sub_817624C(u8 taskIdA);
-static bool8 sub_8176AB0(u8 data, u8 taskIdA);
-static void ResetCreditsTasks(u8 taskIdA);
-static void LoadTheEndScreen(u16, u16, u16);
-static void sub_8176E40(u16 arg0, u16 palette);
-static void sub_8176EE8(struct Sprite *sprite);
-static void sub_8176F90(struct Sprite *sprite);
-static u8 MakeMonSprite(u16 species, s16 x, s16 y, u16 position);
-static void DeterminePokemonToShow(void);
-
-static void CreditsVBlankCallback(void)
+static void VBlankCB_Credits(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-static void CB2_RunCreditsSequence(void)
+static void CB2_Credits(void)
{
RunTasks();
AnimateSprites();
if ((JOY_HELD(B_BUTTON))
- && gHasHallOfFameRecords != 0
- && gTasks[gUnknown_0203BCE2].func == Task_ProgressCreditTasks)
+ && gHasHallOfFameRecords
+ && gTasks[sSavedTaskId].func == Task_ProgressCreditTasks)
{
- CreditsVBlankCallback();
+ // Speed up credits
+ VBlankCB_Credits();
RunTasks();
AnimateSprites();
- gUnknown_0203BCE5 = 1;
+ sUsedSpeedUp = TRUE;
}
BuildOamBuffer();
UpdatePaletteFade();
@@ -1160,7 +382,7 @@ static void InitCreditsBgsAndWindows(void)
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates));
SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE));
- LoadPalette(gUnknown_085E56F0, 0x80, 0x40);
+ LoadPalette(sCredits_Pal, 0x80, 64);
InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
PutWindowTilemap(0);
@@ -1182,20 +404,20 @@ static void PrintCreditsText(const u8 *string, u8 y, bool8 isTitle)
u8 x;
u8 color[3];
- color[0] = 0;
+ color[0] = TEXT_COLOR_TRANSPARENT;
if (isTitle == TRUE)
{
- color[1] = 3;
- color[2] = 4;
+ color[1] = TEXT_COLOR_LIGHT_GREY;
+ color[2] = TEXT_COLOR_RED;
}
else
{
- color[1] = 1;
- color[2] = 2;
+ color[1] = TEXT_COLOR_WHITE;
+ color[2] = TEXT_COLOR_DARK_GREY;
}
- x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, 0xF0, 1);
+ x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, DISPLAY_WIDTH, 1);
AddTextPrinterParameterized4(0, 1, x, y, 1, 0, color, -1, string);
}
@@ -1237,19 +459,19 @@ void CB2_StartCreditsSequence(void)
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
EnableInterrupts(INTR_FLAG_VBLANK);
- SetVBlankCallback(CreditsVBlankCallback);
+ SetVBlankCallback(VBlankCB_Credits);
m4aSongNumStart(MUS_CREDITS);
- SetMainCallback2(CB2_RunCreditsSequence);
- gUnknown_0203BCE5 = 0;
+ SetMainCallback2(CB2_Credits);
+ sUsedSpeedUp = FALSE;
sCreditsData = AllocZeroed(sizeof(struct CreditsData));
DeterminePokemonToShow();
sCreditsData->imgCounter = 0;
- sCreditsData->nextImgPos = 0;
+ sCreditsData->nextImgPos = POS_LEFT;
sCreditsData->currShownMon = 0;
- gUnknown_0203BCE2 = taskIdA;
+ sSavedTaskId = taskIdA;
}
static void Task_WaitPaletteFade(u8 taskIdA)
@@ -1274,7 +496,7 @@ static void Task_ProgressCreditTasks(u8 taskIdA)
return;
}
- gUnknown_0203BCE0 = 0;
+ sUnkVar = 0;
data1 = gTasks[taskIdA].data[TDA_11];
if (gTasks[taskIdA].data[TDA_11] == 1)
@@ -1311,7 +533,7 @@ static void c2_080C9BFC(u8 taskIdA)
{
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
EnableInterrupts(INTR_FLAG_VBLANK);
- SetVBlankCallback(CreditsVBlankCallback);
+ SetVBlankCallback(VBlankCB_Credits);
gTasks[taskIdA].func = Task_WaitPaletteFade;
}
}
@@ -1349,18 +571,18 @@ static void Task_CreditsLoadGrassScene(u8 taskIdA)
for (i = 0; i < 0x800; i++)
(gDecompressionBuffer + 0x800)[i] = 0x22;
for (i = 0; i < 0x800; i++)
- (gDecompressionBuffer + 0x1000)[i] = 0x33;
+ (gDecompressionBuffer + 0x800 * 2)[i] = 0x33;
- temp = (u16 *)(&gDecompressionBuffer[0x1800]);
+ temp = (u16 *)(&gDecompressionBuffer[MONBG_OFFSET]);
temp[0] = RGB_BLACK;
temp[1] = RGB(31, 31, 20); // light yellow
temp[2] = RGB(31, 20, 20); // light red
temp[3] = RGB(20, 20, 31); // light blue
- LoadSpriteSheet(gUnknown_085E701C);
- LoadSpritePalette(gUnknown_085E702C);
+ LoadSpriteSheet(sSpriteSheet_MonBg);
+ LoadSpritePalette(sSpritePalette_MonBg);
- gMain.state += 1;
+ gMain.state++;
break;
}
case 1:
@@ -1384,7 +606,7 @@ static void Task_CreditsLoadGrassScene(u8 taskIdA)
| DISPCNT_OBJ_ON);
gMain.state = 0;
- gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_MOVING;
+ gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_NORMAL;
gTasks[taskIdA].func = Task_WaitPaletteFade;
break;
}
@@ -1394,7 +616,7 @@ static void Task_CreditsTheEnd1(u8 taskIdA)
{
if (gTasks[taskIdA].data[TDA_12])
{
- gTasks[taskIdA].data[TDA_12] -= 1;
+ gTasks[taskIdA].data[TDA_12]--;
return;
}
@@ -1411,6 +633,8 @@ static void Task_CreditsTheEnd2(u8 taskIdA)
}
}
+#define tDelay data[0]
+
static void Task_CreditsTheEnd3(u8 taskIdA)
{
ResetGpuAndVram();
@@ -1430,15 +654,15 @@ static void Task_CreditsTheEnd3(u8 taskIdA)
| DISPCNT_OBJ_1D_MAP
| DISPCNT_BG0_ON);
- gTasks[taskIdA].data[TDA_0] = 235; //set this to 215 to actually show "THE END" in time to the last song beat
+ gTasks[taskIdA].tDelay = 235; //set this to 215 to actually show "THE END" in time to the last song beat
gTasks[taskIdA].func = Task_CreditsTheEnd4;
}
static void Task_CreditsTheEnd4(u8 taskIdA)
{
- if (gTasks[taskIdA].data[TDA_0])
+ if (gTasks[taskIdA].tDelay)
{
- gTasks[taskIdA].data[TDA_0] -= 1;
+ gTasks[taskIdA].tDelay--;
return;
}
@@ -1450,10 +674,10 @@ static void Task_CreditsTheEnd5(u8 taskIdA)
{
if (!gPaletteFade.active)
{
- sub_8176E40(0x3800, 0);
+ DrawTheEnd(0x3800, 0);
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0, RGB_BLACK);
- gTasks[taskIdA].data[TDA_0] = 7200;
+ gTasks[taskIdA].tDelay = 7200;
gTasks[taskIdA].func = Task_CreditsTheEnd6;
}
}
@@ -1462,7 +686,7 @@ static void Task_CreditsTheEnd6(u8 taskIdA)
{
if (!gPaletteFade.active)
{
- if (gTasks[taskIdA].data[TDA_0] == 0 || gMain.newKeys)
+ if (gTasks[taskIdA].tDelay == 0 || gMain.newKeys)
{
FadeOutBGM(4);
BeginNormalPaletteFade(PALETTES_ALL, 8, 0, 16, RGB_WHITEALPHA);
@@ -1470,20 +694,22 @@ static void Task_CreditsTheEnd6(u8 taskIdA)
return;
}
- if (gTasks[taskIdA].data[TDA_0] == 7144)
+ if (gTasks[taskIdA].tDelay == 7144)
FadeOutBGM(8);
- if (gTasks[taskIdA].data[TDA_0] == 6840)
+ if (gTasks[taskIdA].tDelay == 6840)
m4aSongNumStart(MUS_END);
- gTasks[taskIdA].data[TDA_0] -= 1;
+ gTasks[taskIdA].tDelay--;
}
}
+#undef tDelay
+
static void Task_CreditsSoftReset(u8 taskIdA)
{
if (!gPaletteFade.active)
- SoftReset(0xFF);
+ SoftReset(RESET_ALL);
}
static void ResetGpuAndVram(void)
@@ -1525,32 +751,32 @@ static void sub_8175DA0(u8 taskIdB)
gTasks[taskIdB].data[TDB_0] = 1;
gTasks[taskIdB].data[TDB_3] = 0x48;
gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0;
- gUnknown_0203BCE0 = 0;
+ sUnkVar = 0;
}
return;
case 1:
if (gTasks[taskIdB].data[TDB_3] != 0)
{
- gTasks[taskIdB].data[TDB_3] -= 1;
+ gTasks[taskIdB].data[TDB_3]--;
return;
}
- gTasks[taskIdB].data[TDB_0] += 1;
+ gTasks[taskIdB].data[TDB_0]++;
return;
case 2:
if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == Task_ProgressCreditTasks)
{
if (gTasks[taskIdB].data[TDB_CURRENT_PAGE] < PAGE_COUNT)
{
- for (i = 0; i < 5; i++)
+ for (i = 0; i < ENTRIES_PER_PAGE; i++)
PrintCreditsText(
- gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text,
+ sCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text,
5 + i * 16,
- gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->isTitle);
+ sCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->isTitle);
CopyWindowToVram(0, 2);
- gTasks[taskIdB].data[TDB_CURRENT_PAGE] += 1;
- gTasks[taskIdB].data[TDB_0] += 1;
+ gTasks[taskIdB].data[TDB_CURRENT_PAGE]++;
+ gTasks[taskIdB].data[TDB_0]++;
gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 1;
@@ -1569,22 +795,22 @@ static void sub_8175DA0(u8 taskIdB)
if (!gPaletteFade.active)
{
gTasks[taskIdB].data[TDB_3] = 0x73;
- gTasks[taskIdB].data[TDB_0] += 1;
+ gTasks[taskIdB].data[TDB_0]++;
}
return;
case 4:
if (gTasks[taskIdB].data[TDB_3] != 0)
{
- gTasks[taskIdB].data[TDB_3] -= 1;
+ gTasks[taskIdB].data[TDB_3]--;
return;
}
if (CheckChangeScene((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID]))
{
- gTasks[taskIdB].data[TDB_0] += 1;
+ gTasks[taskIdB].data[TDB_0]++;
return;
}
- gTasks[taskIdB].data[TDB_0] += 1;
+ gTasks[taskIdB].data[TDB_0]++;
if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_13] == 1)
BeginNormalPaletteFade(0x00000300, 0, 0, 16, COLOR_LIGHT_GREEN);
else
@@ -1613,7 +839,7 @@ static u8 CheckChangeScene(u8 page, u8 taskIdA)
if (page == 6)
{
- // Grass patch
+ // Pokémon interlude
gTasks[taskIdA].data[TDA_11] = 2;
}
@@ -1626,7 +852,7 @@ static u8 CheckChangeScene(u8 page, u8 taskIdA)
if (page == 18)
{
- // Grass patch
+ // Pokémon interlude
gTasks[taskIdA].data[TDA_11] = 2;
}
@@ -1639,7 +865,7 @@ static u8 CheckChangeScene(u8 page, u8 taskIdA)
if (page == 30)
{
- // Grass patch
+ // Pokémon interlude
gTasks[taskIdA].data[TDA_11] = 2;
}
@@ -1652,7 +878,7 @@ static u8 CheckChangeScene(u8 page, u8 taskIdA)
if (page == 42)
{
- // Grass patch
+ // Pokémon interlude
gTasks[taskIdA].data[TDA_11] = 2;
}
@@ -1681,14 +907,17 @@ static void sub_81760FC(u8 taskIdD)
case 0:
break;
case 1:
- if (sCreditsData->nextImgPos == 0 && gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].data[TDA_14] == 0)
+ if (sCreditsData->nextImgPos == POS_LEFT && gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].data[TDA_14] == 0)
break;
gTasks[taskIdD].data[TDD_STATE]++;
break;
case 2:
if (sCreditsData->imgCounter == NUM_MON_SLIDES || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != Task_ProgressCreditTasks)
break;
- r2 = MakeMonSprite(sCreditsData->monToShow[sCreditsData->currShownMon], sMonSpritePos[sCreditsData->nextImgPos][0], sMonSpritePos[sCreditsData->nextImgPos][1], sCreditsData->nextImgPos);
+ r2 = CreateCreditsMonSprite(sCreditsData->monToShow[sCreditsData->currShownMon],
+ sMonSpritePos[sCreditsData->nextImgPos][0],
+ sMonSpritePos[sCreditsData->nextImgPos][1],
+ sCreditsData->nextImgPos);
if (sCreditsData->currShownMon < sCreditsData->numMonToShow - 1)
{
sCreditsData->currShownMon++;
@@ -1700,10 +929,12 @@ static void sub_81760FC(u8 taskIdD)
gSprites[r2].data[3] = 512;
}
sCreditsData->imgCounter++;
- if (sCreditsData->nextImgPos == 2)
- sCreditsData->nextImgPos = 0;
+
+ if (sCreditsData->nextImgPos == POS_RIGHT)
+ sCreditsData->nextImgPos = POS_LEFT;
else
sCreditsData->nextImgPos++;
+
gTasks[taskIdD].data[TDD_3] = 50;
gTasks[taskIdD].data[TDD_STATE]++;
break;
@@ -1846,7 +1077,7 @@ static void sub_817651C(u8 taskIdE)
}
else
{
- gTasks[taskIdE].data[TDE_1] += 1;
+ gTasks[taskIdE].data[TDE_1]++;
}
}
CycleSceneryPalette(1);
@@ -1857,63 +1088,63 @@ static void sub_817651C(u8 taskIdE)
}
}
-static void sub_817664C(u8 scene, u8 taskIdA)
+static void InitCreditsSceneGfx(u8 scene, u8 taskIdA)
{
switch (scene)
{
case 0:
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 272;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.x = 272;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.x = 272;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].data[0] = 0;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = CreateBicycleBgAnimationTask(0, 0x2000, 0x20, 8);
break;
case 1:
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.x = 120;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.x = 272;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].data[0] = 0;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = CreateBicycleBgAnimationTask(0, 0x2000, 0x20, 8);
break;
case 2:
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.x = 120;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.x = 272;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].data[0] = 0;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = CreateBicycleBgAnimationTask(1, 0x2000, 0x200, 8);
break;
case 3:
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = -32;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.x = 120;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.x = -32;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].data[0] = 0;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = CreateBicycleBgAnimationTask(1, 0x2000, 0x200, 8);
break;
case 4:
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 88;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 152;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].invisible = FALSE;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.x = 88;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.x = 152;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].pos1.y = 46;
+ gSprites[gTasks[taskIdA].tPlayerSpriteId].data[0] = 0;
+ gSprites[gTasks[taskIdA].tRivalSpriteId].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = CreateBicycleBgAnimationTask(2, 0x2000, 0x200, 8);
break;
}
@@ -1926,8 +1157,8 @@ static void sub_817664C(u8 scene, u8 taskIdA)
gTasks[taskIdA].data[TDA_TASK_C_ID] = CreateTask(sub_817624C, 0);
gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_0] = 0;
gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_1] = taskIdA;
- gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_2] = gTasks[taskIdA].data[TDA_PLAYER_CYCLIST];
- gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_3] = gTasks[taskIdA].data[TDA_RIVAL_CYCLIST];
+ gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_2] = gTasks[taskIdA].tPlayerSpriteId;
+ gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_3] = gTasks[taskIdA].tRivalSpriteId;
gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_4] = 0;
if (scene == 2)
@@ -1959,7 +1190,7 @@ static bool8 sub_8176AB0(u8 scene, u8 taskIdA)
gIntroCredits_MovingSceneryVBase = 34;
gIntroCredits_MovingSceneryVOffset = 0;
LoadCreditsSceneGraphics(scene);
- gMain.state += 1;
+ gMain.state++;
break;
case 2:
if (gSaveBlock2Ptr->playerGender == MALE)
@@ -1970,14 +1201,14 @@ static bool8 sub_8176AB0(u8 scene, u8 taskIdA)
LoadSpritePalettes(gSpritePalettes_Credits);
spriteId = CreateIntroBrendanSprite(120, 46);
- gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId;
- gSprites[spriteId].callback = sub_8176EE8;
- gSprites[spriteId].anims = gUnknown_085E6FD0;
+ gTasks[taskIdA].tPlayerSpriteId = spriteId;
+ gSprites[spriteId].callback = SpriteCB_PlayerCyclist;
+ gSprites[spriteId].anims = sAnims_Player;
spriteId = CreateIntroMaySprite(272, 46);
- gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId;
- gSprites[spriteId].callback = sub_8176F90;
- gSprites[spriteId].anims = gUnknown_085E7010;
+ gTasks[taskIdA].tRivalSpriteId = spriteId;
+ gSprites[spriteId].callback = SpriteCB_RivalCyclist;
+ gSprites[spriteId].anims = sAnims_Rival;
}
else
{
@@ -1987,19 +1218,19 @@ static bool8 sub_8176AB0(u8 scene, u8 taskIdA)
LoadSpritePalettes(gSpritePalettes_Credits);
spriteId = CreateIntroMaySprite(120, 46);
- gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId;
- gSprites[spriteId].callback = sub_8176EE8;
- gSprites[spriteId].anims = gUnknown_085E6FD0;
+ gTasks[taskIdA].tPlayerSpriteId = spriteId;
+ gSprites[spriteId].callback = SpriteCB_PlayerCyclist;
+ gSprites[spriteId].anims = sAnims_Player;
spriteId = CreateIntroBrendanSprite(272, 46);
- gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId;
- gSprites[spriteId].callback = sub_8176F90;
- gSprites[spriteId].anims = gUnknown_085E7010;
+ gTasks[taskIdA].tRivalSpriteId = spriteId;
+ gSprites[spriteId].callback = SpriteCB_RivalCyclist;
+ gSprites[spriteId].anims = sAnims_Rival;
};
- gMain.state += 1;
+ gMain.state++;
break;
case 3:
- sub_817664C(scene, taskIdA);
+ InitCreditsSceneGfx(scene, taskIdA);
SetCreditsSceneBgCnt(scene);
gMain.state = 0;
return TRUE;
@@ -2036,21 +1267,21 @@ static void ResetCreditsTasks(u8 taskIdA)
gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_DESTROY;
}
-static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 arg2)
+static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 palOffset)
{
u16 baseTile;
u16 i;
LZ77UnCompVram(sCreditsCopyrightEnd_Gfx, (void *)(VRAM + arg0));
- LoadPalette(gIntroCopyright_Pal, arg2, sizeof(gIntroCopyright_Pal));
+ LoadPalette(gIntroCopyright_Pal, palOffset, sizeof(gIntroCopyright_Pal));
- baseTile = (arg2 / 16) << 12;
+ baseTile = (palOffset / 16) << 12;
for (i = 0; i < 32 * 32; i++)
((u16 *) (VRAM + arg1))[i] = baseTile + 1;
}
-static u16 sub_8176D78(u8 baseTiles)
+static u16 GetLetterMapTile(u8 baseTiles)
{
u16 out = (baseTiles & 0x3F) + 80;
@@ -2065,7 +1296,7 @@ static u16 sub_8176D78(u8 baseTiles)
return out;
}
-static void sub_8176DBC(const u8 baseTiles[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
+static void DrawLetterMapTiles(const u8 baseTiles[], u8 baseX, u8 baseY, u16 offset, u16 palette)
{
u8 y, x;
const u16 tileOffset = (palette / 16) << 12;
@@ -2073,35 +1304,37 @@ static void sub_8176DBC(const u8 baseTiles[], u8 baseX, u8 baseY, u16 arg3, u16
for (y = 0; y < 5; y++)
{
for (x = 0; x < 3; x++)
- ((u16 *) (VRAM + arg3 + (baseY + y) * 64))[baseX + x] = tileOffset + sub_8176D78(baseTiles[y * 3 + x]);
+ ((u16 *) (VRAM + offset + (baseY + y) * 64))[baseX + x] = tileOffset + GetLetterMapTile(baseTiles[y * 3 + x]);
}
}
-static void sub_8176E40(u16 arg0, u16 palette)
+static void DrawTheEnd(u16 offset, u16 palette)
{
u16 pos;
u16 baseTile = (palette / 16) << 12;
for (pos = 0; pos < 32 * 32; pos++)
- ((u16 *) (VRAM + arg0))[pos] = baseTile + 1;
-
- sub_8176DBC(sTheEnd_LetterTMap, 3, 7, arg0, palette);
- sub_8176DBC(sTheEnd_LetterHMap, 7, 7, arg0, palette);
- sub_8176DBC(sTheEnd_LetterEMap, 11, 7, arg0, palette);
- sub_8176DBC(sTheEnd_LetterEMap, 16, 7, arg0, palette);
- sub_8176DBC(sTheEnd_LetterNMap, 20, 7, arg0, palette);
- sub_8176DBC(sTheEnd_LetterDMap, 24, 7, arg0, palette);
+ ((u16 *) (VRAM + offset))[pos] = baseTile + 1;
+
+ DrawLetterMapTiles(sTheEnd_LetterMap_T, 3, 7, offset, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_H, 7, 7, offset, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_E, 11, 7, offset, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_E, 16, 7, offset, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_N, 20, 7, offset, palette);
+ DrawLetterMapTiles(sTheEnd_LetterMap_D, 24, 7, offset, palette);
}
-static void sub_8176EE8(struct Sprite *sprite)
+#define sState data[0]
+
+static void SpriteCB_PlayerCyclist(struct Sprite *sprite)
{
- if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_MOVING)
+ if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL)
{
DestroySprite(sprite);
return;
}
- switch (sprite->data[0])
+ switch (sprite->sState)
{
case 0:
StartSpriteAnimIfDifferent(sprite, 0);
@@ -2109,7 +1342,7 @@ static void sub_8176EE8(struct Sprite *sprite)
case 1:
StartSpriteAnimIfDifferent(sprite, 1);
if (sprite->pos1.x > -32)
- sprite->pos1.x -= 1;
+ sprite->pos1.x--;
break;
case 2:
StartSpriteAnimIfDifferent(sprite, 2);
@@ -2120,25 +1353,25 @@ static void sub_8176EE8(struct Sprite *sprite)
case 4:
StartSpriteAnimIfDifferent(sprite, 0);
if (sprite->pos1.x > 120)
- sprite->pos1.x -= 1;
+ sprite->pos1.x--;
break;
case 5:
StartSpriteAnimIfDifferent(sprite, 0);
if (sprite->pos1.x > -32)
- sprite->pos1.x -= 1;
+ sprite->pos1.x--;
break;
}
}
-static void sub_8176F90(struct Sprite *sprite)
+static void SpriteCB_RivalCyclist(struct Sprite *sprite)
{
- if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_MOVING)
+ if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL)
{
DestroySprite(sprite);
return;
}
- switch (sprite->data[0])
+ switch (sprite->sState)
{
case 0:
sprite->pos2.y = 0;
@@ -2154,29 +1387,32 @@ static void sub_8176F90(struct Sprite *sprite)
sprite->pos2.y = -gIntroCredits_MovingSceneryVOffset;
break;
case 2:
- sprite->data[7] += 1;
+ sprite->data[7]++;
StartSpriteAnimIfDifferent(sprite, 0);
if ((sprite->data[7] & 3) == 0)
- sprite->pos1.x += 1;
+ sprite->pos1.x++;
break;
case 3:
StartSpriteAnimIfDifferent(sprite, 0);
if (sprite->pos1.x > -32)
- sprite->pos1.x -= 1;
+ sprite->pos1.x--;
break;
}
}
-static void sub_8177050(struct Sprite *sprite)
+#define sPosition data[1]
+#define sSpriteId data[6]
+
+static void SpriteCB_CreditsMon(struct Sprite *sprite)
{
- if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_MOVING)
+ if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL)
{
- FreeAndDestroyMonPicSprite(sprite->data[6]);
+ FreeAndDestroyMonPicSprite(sprite->sSpriteId);
return;
}
- sprite->data[7] += 1;
- switch (sprite->data[0])
+ sprite->data[7]++;
+ switch (sprite->sState)
{
case 0:
default:
@@ -2185,7 +1421,7 @@ static void sub_8177050(struct Sprite *sprite)
sprite->data[2] = 16;
SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]);
sprite->invisible = FALSE;
- sprite->data[0] = 1;
+ sprite->sState = 1;
break;
case 1:
if (sprite->data[2] < 256)
@@ -2195,20 +1431,20 @@ static void sub_8177050(struct Sprite *sprite)
}
else
{
- sprite->data[0] += 1;
+ sprite->sState++;
}
- switch (sprite->data[1])
+ switch (sprite->sPosition)
{
- case 1:
+ case POS_LEFT + 1:
if ((sprite->data[7] & 3) == 0)
- sprite->pos1.y += 1;
+ sprite->pos1.y++;
sprite->pos1.x -= 2;
break;
- case 2:
+ case POS_CENTER + 1:
break;
- case 3:
+ case POS_RIGHT + 1:
if ((sprite->data[7] & 3) == 0)
- sprite->pos1.y += 1;
+ sprite->pos1.y++;
sprite->pos1.x += 2;
break;
}
@@ -2216,7 +1452,7 @@ static void sub_8177050(struct Sprite *sprite)
case 2:
if (sprite->data[3] != 0)
{
- sprite->data[3] -= 1;
+ sprite->data[3]--;
}
else
{
@@ -2224,7 +1460,7 @@ static void sub_8177050(struct Sprite *sprite)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
sprite->oam.objMode = ST_OAM_OBJ_BLEND;
sprite->data[3] = 16;
- sprite->data[0] += 1;
+ sprite->sState++;
}
break;
case 3:
@@ -2232,7 +1468,7 @@ static void sub_8177050(struct Sprite *sprite)
{
int data3;
- sprite->data[3] -= 1;
+ sprite->data[3]--;
data3 = 16 - sprite->data[3];
SetGpuReg(REG_OFFSET_BLDALPHA, (data3 << 8) + sprite->data[3]);
@@ -2240,11 +1476,11 @@ static void sub_8177050(struct Sprite *sprite)
else
{
sprite->invisible = TRUE;
- sprite->data[0] = 9;
+ sprite->sState = 9;
}
break;
case 9:
- sprite->data[0] += 1;
+ sprite->sState++;
break;
case 10:
SetGpuReg(REG_OFFSET_BLDCNT, 0);
@@ -2254,40 +1490,44 @@ static void sub_8177050(struct Sprite *sprite)
}
}
-static u8 MakeMonSprite(u16 nationalDexNum, s16 x, s16 y, u16 position)
+#define sMonSpriteId data[0]
+
+static u8 CreateCreditsMonSprite(u16 nationalDexNum, s16 x, s16 y, u16 position)
{
- u8 spriteId;
- u8 spriteId2;
+ u8 monSpriteId;
+ u8 bgSpriteId;
- spriteId = CreateMonSpriteFromNationalDexNumber(nationalDexNum, x, y, position);
- gSprites[spriteId].oam.priority = 1;
- gSprites[spriteId].data[1] = position + 1;
- gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].callback = sub_8177050;
- gSprites[spriteId].data[6] = spriteId;
+ monSpriteId = CreateMonSpriteFromNationalDexNumber(nationalDexNum, x, y, position);
+ gSprites[monSpriteId].oam.priority = 1;
+ gSprites[monSpriteId].sPosition = position + 1;
+ gSprites[monSpriteId].invisible = TRUE;
+ gSprites[monSpriteId].callback = SpriteCB_CreditsMon;
+ gSprites[monSpriteId].sSpriteId = monSpriteId;
- spriteId2 = CreateSprite(&gUnknown_085E7068, gSprites[spriteId].pos1.x, gSprites[spriteId].pos1.y, 1);
- gSprites[spriteId2].data[0] = spriteId;
+ bgSpriteId = CreateSprite(&sSpriteTemplate_CreditsMonBg, gSprites[monSpriteId].pos1.x, gSprites[monSpriteId].pos1.y, 1);
+ gSprites[bgSpriteId].sMonSpriteId = monSpriteId;
- StartSpriteAnimIfDifferent(&gSprites[spriteId2], position);
+ StartSpriteAnimIfDifferent(&gSprites[bgSpriteId], position);
- return spriteId;
+ return monSpriteId;
}
-static void sub_81772B8(struct Sprite *sprite)
+static void SpriteCB_CreditsMonBg(struct Sprite *sprite)
{
- if (gSprites[sprite->data[0]].data[0] == 10 || gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_MOVING)
+ if (gSprites[sprite->sMonSpriteId].data[0] == 10
+ || gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL)
{
DestroySprite(sprite);
return;
}
- sprite->invisible = gSprites[sprite->data[0]].invisible;
- sprite->oam.objMode = gSprites[sprite->data[0]].oam.objMode;
- sprite->oam.affineMode = gSprites[sprite->data[0]].oam.affineMode;
- sprite->oam.matrixNum = gSprites[sprite->data[0]].oam.matrixNum;
- sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
- sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
+ // Copy sprite data from the associated Pokémon
+ sprite->invisible = gSprites[sprite->sMonSpriteId].invisible;
+ sprite->oam.objMode = gSprites[sprite->sMonSpriteId].oam.objMode;
+ sprite->oam.affineMode = gSprites[sprite->sMonSpriteId].oam.affineMode;
+ sprite->oam.matrixNum = gSprites[sprite->sMonSpriteId].oam.matrixNum;
+ sprite->pos1.x = gSprites[sprite->sMonSpriteId].pos1.x;
+ sprite->pos1.y = gSprites[sprite->sMonSpriteId].pos1.y;
}
static void DeterminePokemonToShow(void)
diff --git a/src/data/credits.h b/src/data/credits.h
new file mode 100644
index 000000000..3ae2b1d3b
--- /dev/null
+++ b/src/data/credits.h
@@ -0,0 +1,787 @@
+enum
+{
+ PAGE_TITLE,
+ PAGE_DIRECTOR,
+ PAGE_ART_DIRECTOR,
+ PAGE_WORLD_DIRECTOR,
+ PAGE_LEAD_PROGRAMMER,
+ PAGE_PROGRAMMERS_1,
+ PAGE_PROGRAMMERS_2,
+ PAGE_PROGRAMMERS_3,
+ PAGE_PROGRAMMERS_4,
+ PAGE_GRAPHIC_DESIGNERS_1,
+ PAGE_GRAPHIC_DESIGNERS_2,
+ PAGE_GRAPHIC_DESIGNERS_3,
+ PAGE_MUSIC_COMPOSITION,
+ PAGE_SOUND_EFFECTS,
+ PAGE_GAME_DESIGNERS_1,
+ PAGE_GAME_DESIGNERS_2,
+ PAGE_GAME_DESIGNERS_3,
+ PAGE_SCENARIO_PLOT,
+ PAGE_SCENARIO,
+ PAGE_SCRIPT_DESIGNERS,
+ PAGE_MAP_DESIGNERS,
+ PAGE_BATTLE_FRONTIER_DATA,
+ PAGE_PARAMETRIC_DESIGNERS,
+ PAGE_POKEDEX_TEXT,
+ PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_1,
+ PAGE_PKMN_DESIGNERS_1,
+ PAGE_PKMN_DESIGNERS_2,
+ PAGE_PKMN_DESIGNERS_3,
+ PAGE_PKMN_DESIGNERS_4,
+ PAGE_SUPPORT_PROGRAMMERS,
+ PAGE_NCL_PRODUCT_TESTING,
+ PAGE_PACKAGE_AND_MANUAL,
+ PAGE_SPECIAL_THANKS_1,
+ PAGE_SPECIAL_THANKS_2,
+ PAGE_SPECIAL_THANKS_3,
+ PAGE_SPECIAL_THANKS_4,
+ PAGE_INFORMATION_SUPERVISORS,
+ PAGE_ARTWORK_1,
+ PAGE_ARTWORK_2,
+ PAGE_ARTWORK_3,
+ PAGE_COORDINATORS,
+ PAGE_ENGLISH_VERSION,
+ PAGE_TRANSLATOR,
+ PAGE_TEXT_EDITOR,
+ PAGE_NCL_COORDINATOR,
+ PAGE_PROGRAMMERS_5,
+ PAGE_GRAPHIC_DESIGNER,
+ PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_2,
+ PAGE_NOA_TESTING,
+ PAGE_BRAILLE_CODE_CHECK_1,
+ PAGE_BRAILLE_CODE_CHECK_2,
+ PAGE_SPECIAL_THANKS_5,
+ PAGE_TASK_MANAGERS,
+ PAGE_PRODUCERS,
+ PAGE_EXECUTIVE_DIRECTOR,
+ PAGE_EXECUTIVE_PRODUCERS_1,
+ PAGE_EXECUTIVE_PRODUCERS_2,
+ PAGE_COUNT
+};
+
+#define ENTRIES_PER_PAGE 5
+
+static const u8 sCreditsText_EmptyString[] = _("");
+static const u8 sCreditsText_PkmnEmeraldVersion[] = _("POKéMON EMERALD VERSION");
+static const u8 sCreditsText_Credits[] = _("Credits");
+static const u8 sCreditsText_ExecutiveDirector[] = _("Executive Director");
+static const u8 sCreditsText_Director[] = _("Director");
+static const u8 sCreditsText_ArtDirector[] = _("Art Director");
+static const u8 sCreditsText_BattleDirector[] = _("Battle Director");
+static const u8 sCreditsText_MainProgrammer[] = _("Main Programmer");
+static const u8 sCreditsText_BattleSystemPgrms[] = _("Battle System Programmers");
+static const u8 sCreditsText_FieldSystemPgrms[] = _("Field System Programmer");
+static const u8 sCreditsText_Programmers[] = _("Programmers");
+static const u8 sCreditsText_MainGraphicDesigner[] = _("Main Graphic Designer");
+static const u8 sCreditsText_GraphicDesigners[] = _("Graphic Designers");
+static const u8 sCreditsText_PkmnDesigners[] = _("POKéMON Designers");
+static const u8 sCreditsText_MusicComposition[] = _("Music Composition");
+static const u8 sCreditsText_SoundEffectsAndPkmnVoices[] = _("Sound Effects & POKéMON Voices");
+static const u8 sCreditsText_GameDesigners[] = _("Game Designers");
+static const u8 sCreditsText_ScenarioPlot[] = _("Scenario Plot");
+static const u8 sCreditsText_Scenario[] = _("Scenario");
+static const u8 sCreditsText_ScriptDesigners[] = _("Script Designers");
+static const u8 sCreditsText_MapDesigners[] = _("Map Designers");
+static const u8 sCreditsText_MapDataDesigners[] = _("Map Data Designers");
+static const u8 sCreditsText_ParametricDesigners[] = _("Parametric Designers");
+static const u8 sCreditsText_PokedexText[] = _("POKéDEX Text");
+static const u8 sCreditsText_EnvAndToolPgrms[] = _("Environment & Tool Programmers");
+static const u8 sCreditsText_NCLProductTesting[] = _("NCL Product Testing");
+static const u8 sCreditsText_SpecialThanks[] = _("Special Thanks");
+static const u8 sCreditsText_Coordinators[] = _("Coordinators");
+static const u8 sCreditsText_Producers[] = _("Producers");
+static const u8 sCreditsText_ExecProducers[] = _("Executive Producers");
+static const u8 sCreditsText_InfoSupervisors[] = _("Information Supervisors");
+static const u8 sCreditsText_TaskManagers[] = _("Task Managers");
+static const u8 sCreditsText_BrailleCodeCheck[] = _("Braille Code Check");
+static const u8 sCreditsText_WorldDirector[] = _("World Director");
+static const u8 sCreditsText_BattleFrontierData[] = _("Battle Frontier Data");
+static const u8 sCreditsText_SupportProgrammers[] = _("Support Programmers");
+static const u8 sCreditsText_Artwork[] = _("Artwork");
+static const u8 sCreditsText_LeadProgrammer[] = _("Lead Programmer");
+static const u8 sCreditsText_LeadGraphicArtist[] = _("Lead Graphic Artist");
+static const u8 sCreditsText_SatoshiTajiri[] = _("Satoshi Tajiri");
+static const u8 sCreditsText_JunichiMasuda[] = _("Junichi Masuda");
+static const u8 sCreditsText_KenSugimori[] = _("Ken Sugimori");
+static const u8 sCreditsText_ShigekiMorimoto[] = _("Shigeki Morimoto");
+static const u8 sCreditsText_TetsuyaWatanabe[] = _("Tetsuya Watanabe");
+static const u8 sCreditsText_HisashiSogabe[] = _("Hisashi Sogabe");
+static const u8 sCreditsText_SosukeTamada[] = _("Sosuke Tamada");
+static const u8 sCreditsText_AkitoMori[] = _("Akito Mori");
+static const u8 sCreditsText_KeitaKagaya[] = _("Keita Kagaya");
+static const u8 sCreditsText_YoshinoriMatsuda[] = _("Yoshinori Matsuda");
+static const u8 sCreditsText_HiroyukiNakamura[] = _("Hiroyuki Nakamura");
+static const u8 sCreditsText_MasaoTaya[] = _("Masao Taya");
+static const u8 sCreditsText_SatoshiNohara[] = _("Satoshi Nohara");
+static const u8 sCreditsText_TomomichiOhta[] = _("Tomomichi Ohta");
+static const u8 sCreditsText_MiyukiIwasawa[] = _("Miyuki Iwasawa");
+static const u8 sCreditsText_TakenoriOhta[] = _("Takenori Ohta");
+static const u8 sCreditsText_HironobuYoshida[] = _("Hironobu Yoshida");
+static const u8 sCreditsText_MotofumiFujiwara[] = _("Motofumi Fujiwara");
+static const u8 sCreditsText_SatoshiOhta[] = _("Satoshi Ohta");
+static const u8 sCreditsText_AsukaIwashita[] = _("Asuka Iwashita");
+static const u8 sCreditsText_AimiTomita[] = _("Aimi Tomita");
+static const u8 sCreditsText_TakaoUnno[] = _("Takao Unno");
+static const u8 sCreditsText_KanakoEo[] = _("Kanako Eo");
+static const u8 sCreditsText_JunOkutani[] = _("Jun Okutani");
+static const u8 sCreditsText_AtsukoNishida[] = _("Atsuko Nishida");
+static const u8 sCreditsText_MuneoSaito[] = _("Muneo Saito");
+static const u8 sCreditsText_RenaYoshikawa[] = _("Rena Yoshikawa");
+static const u8 sCreditsText_GoIchinose[] = _("Go Ichinose");
+static const u8 sCreditsText_MorikazuAoki[] = _("Morikazu Aoki");
+static const u8 sCreditsText_KojiNishino[] = _("Koji Nishino");
+static const u8 sCreditsText_KenjiMatsushima[] = _("Kenji Matsushima");
+static const u8 sCreditsText_TetsujiOhta[] = _("Tetsuji Ohta");
+static const u8 sCreditsText_HitomiSato[] = _("Hitomi Sato");
+static const u8 sCreditsText_TakeshiKawachimaru[] = _("Takeshi Kawachimaru");
+static const u8 sCreditsText_TeruyukiShimoyamada[] = _("Teruyuki Shimoyamada");
+static const u8 sCreditsText_ShigeruOhmori[] = _("Shigeru Ohmori");
+static const u8 sCreditsText_TadashiTakahashi[] = _("Tadashi Takahashi");
+static const u8 sCreditsText_ToshinobuMatsumiya[] = _("Toshinobu Matsumiya");
+static const u8 sCreditsText_AkihitoTomisawa[] = _("Akihito Tomisawa");
+static const u8 sCreditsText_HirokiEnomoto[] = _("Hiroki Enomoto");
+static const u8 sCreditsText_KazuyukiTerada[] = _("Kazuyuki Terada");
+static const u8 sCreditsText_YuriSakurai[] = _("Yuri Sakurai");
+static const u8 sCreditsText_HiromiSagawa[] = _("Hiromi Sagawa");
+static const u8 sCreditsText_KenjiTominaga[] = _("Kenji Tominaga");
+static const u8 sCreditsText_YoshioTajiri[] = _("Yoshio Tajiri");
+static const u8 sCreditsText_TeikoSasaki[] = _("Teiko Sasaki");
+static const u8 sCreditsText_SachikoHamano[] = _("Sachiko Hamano");
+static const u8 sCreditsText_ChieMatsumiya[] = _("Chie Matsumiya");
+static const u8 sCreditsText_AkikoShinozaki[] = _("Akiko Shinozaki");
+static const u8 sCreditsText_AstukoFujii[] = _("Astuko Fujii");
+static const u8 sCreditsText_NozomuSaito[] = _("Nozomu Saito");
+static const u8 sCreditsText_KenkichiToyama[] = _("Kenkichi Toyama");
+static const u8 sCreditsText_SuguruNakatsui[] = _("Suguru Nakatsui");
+static const u8 sCreditsText_YumiFunasaka[] = _("Yumi Funasaka");
+static const u8 sCreditsText_NaokoYanase[] = _("Naoko Yanase");
+static const u8 sCreditsText_NCLSuperMarioClub[] = _("NCL Super Mario Club");
+static const u8 sCreditsText_AtsushiTada[] = _("Atsushi Tada");
+static const u8 sCreditsText_TakahiroOhnishi[] = _("Takahiro Ohnishi");
+static const u8 sCreditsText_NorihideOkamura[] = _("Norihide Okamura");
+static const u8 sCreditsText_HiroNakamura[] = _("Hiro Nakamura");
+static const u8 sCreditsText_HiroyukiUesugi[] = _("Hiroyuki Uesugi");
+static const u8 sCreditsText_TerukiMurakawa[] = _("Teruki Murakawa");
+static const u8 sCreditsText_AkiraKinashi[] = _("Akira Kinashi");
+static const u8 sCreditsText_MichikoTakizawa[] = _("Michiko Takizawa");
+static const u8 sCreditsText_MakikoTakada[] = _("Makiko Takada");
+static const u8 sCreditsText_TakanaoKondo[] = _("Takanao Kondo");
+static const u8 sCreditsText_AiMashima[] = _("Ai Mashima");
+static const u8 sCreditsText_GakujiNomoto[] = _("Gakuji Nomoto");
+static const u8 sCreditsText_TakehiroIzushi[] = _("Takehiro Izushi");
+static const u8 sCreditsText_HitoshiYamagami[] = _("Hitoshi Yamagami");
+static const u8 sCreditsText_KyokoWatanabe[] = _("Kyoko Watanabe");
+static const u8 sCreditsText_TakaoNakano[] = _("Takao Nakano");
+static const u8 sCreditsText_HiroyukiJinnai[] = _("Hiroyuki Jinnai");
+static const u8 sCreditsText_HiroakiTsuru[] = _("Hiroaki Tsuru");
+static const u8 sCreditsText_TsunekazIshihara[] = _("Tsunekaz Ishihara");
+static const u8 sCreditsText_SatoruIwata[] = _("Satoru Iwata");
+static const u8 sCreditsText_KazuyaSuyama[] = _("Kazuya Suyama");
+static const u8 sCreditsText_SatoshiMitsuhara[] = _("Satoshi Mitsuhara");
+static const u8 sCreditsText_JapanBrailleLibrary[] = _("Japan Braille Library");
+static const u8 sCreditsText_TomotakaKomura[] = _("Tomotaka Komura");
+static const u8 sCreditsText_MikikoOhhashi[] = _("Mikiko Ohhashi");
+static const u8 sCreditsText_DaisukeHoshino[] = _("Daisuke Hoshino");
+static const u8 sCreditsText_KenjiroIto[] = _("Kenjiro Ito");
+static const u8 sCreditsText_RuiKawaguchi[] = _("Rui Kawaguchi");
+static const u8 sCreditsText_ShunsukeKohori[] = _("Shunsuke Kohori");
+static const u8 sCreditsText_SachikoNakamichi[] = _("Sachiko Nakamichi");
+static const u8 sCreditsText_FujikoNomura[] = _("Fujiko Nomura");
+static const u8 sCreditsText_KazukiYoshihara[] = _("Kazuki Yoshihara");
+static const u8 sCreditsText_RetsujiNomoto[] = _("Retsuji Nomoto");
+static const u8 sCreditsText_AzusaTajima[] = _("Azusa Tajima");
+static const u8 sCreditsText_ShusakuEgami[] = _("Shusaku Egami");
+static const u8 sCreditsText_PackageAndManual[] = _("Package & Manual Illustration");
+static const u8 sCreditsText_EnglishVersion[] = _("English Version Coordinators");
+static const u8 sCreditsText_Translator[] = _("Translator");
+static const u8 sCreditsText_TextEditor[] = _("Text Editor");
+static const u8 sCreditsText_NCLCoordinator[] = _("NCL Coordinator");
+static const u8 sCreditsText_GraphicDesigner[] = _("Graphic Designer");
+static const u8 sCreditsText_NOAProductTesting[] = _("NOA Product Testing");
+static const u8 sCreditsText_HideyukiNakajima[] = _("Hideyuki Nakajima");
+static const u8 sCreditsText_HidenoriSaeki[] = _("Hidenori Saeki");
+static const u8 sCreditsText_YokoWatanabe[] = _("Yoko Watanabe");
+static const u8 sCreditsText_SakaeKimura[] = _("Sakae Kimura");
+static const u8 sCreditsText_ChiakiShinkai[] = _("Chiaki Shinkai");
+static const u8 sCreditsText_SethMcMahill[] = _("Seth McMahill");
+static const u8 sCreditsText_NobOgasawara[] = _("Nob Ogasawara");
+static const u8 sCreditsText_TeresaLillygren[] = _("Teresa Lillygren");
+static const u8 sCreditsText_KimikoNakamichi[] = _("Kimiko Nakamichi");
+static const u8 sCreditsText_SouichiYamamoto[] = _("Souichi Yamamoto");
+static const u8 sCreditsText_YuichiroIto[] = _("Yuichiro Ito");
+static const u8 sCreditsText_ThomasHertzog[] = _("Thomas Hertzog");
+static const u8 sCreditsText_MikaKurosawa[] = _("Mika Kurosawa");
+static const u8 sCreditsText_NationalFederationBlind[] = _("National Federation of the Blind");
+static const u8 sCreditsText_PatriciaAMaurer[] = _("Patricia A. Maurer");
+static const u8 sCreditsText_EuropeanBlindUnion[] = _("European Blind Union");
+static const u8 sCreditsText_AustralianBrailleAuthority[] = _("Australian Braille Authority");
+static const u8 sCreditsText_RoyalNewZealandFederationBlind[] = _("Royal New Zealand Federation for the Blind");
+static const u8 sCreditsText_MotoyasuTojima[] = _("Motoyasu Tojima");
+static const u8 sCreditsText_NicolaPrattBarlow[] = _("Nicola Pratt-Barlow");
+static const u8 sCreditsText_ShellieDow[] = _("Shellie Dow");
+static const u8 sCreditsText_ErikJohnson[] = _("Erik Johnson");
+static const struct CreditsEntry sCreditsEntry_EmptyString[] = { 0, FALSE, sCreditsText_EmptyString};
+static const struct CreditsEntry sCreditsEntry_PkmnEmeraldVersion[] = { 7, TRUE, sCreditsText_PkmnEmeraldVersion};
+static const struct CreditsEntry sCreditsEntry_Credits[] = {11, TRUE, sCreditsText_Credits};
+static const struct CreditsEntry sCreditsEntry_ExecutiveDirector[] = { 8, TRUE, sCreditsText_ExecutiveDirector};
+static const struct CreditsEntry sCreditsEntry_Director[] = {12, TRUE, sCreditsText_Director};
+static const struct CreditsEntry sCreditsEntry_ArtDirector[] = {10, TRUE, sCreditsText_ArtDirector};
+static const struct CreditsEntry sCreditsEntry_BattleDirector[] = {10, TRUE, sCreditsText_BattleDirector};
+static const struct CreditsEntry sCreditsEntry_MainProgrammer[] = {10, TRUE, sCreditsText_MainProgrammer};
+static const struct CreditsEntry sCreditsEntry_BattleSystemPgrms[] = { 8, TRUE, sCreditsText_BattleSystemPgrms};
+static const struct CreditsEntry sCreditsEntry_FieldSystemPgrms[] = { 7, TRUE, sCreditsText_FieldSystemPgrms};
+static const struct CreditsEntry sCreditsEntry_Programmers[] = {12, TRUE, sCreditsText_Programmers};
+static const struct CreditsEntry sCreditsEntry_MainGraphicDesigner[] = { 7, TRUE, sCreditsText_MainGraphicDesigner};
+static const struct CreditsEntry sCreditsEntry_GraphicDesigners[] = { 9, TRUE, sCreditsText_GraphicDesigners};
+static const struct CreditsEntry sCreditsEntry_PkmnDesigners[] = {10, TRUE, sCreditsText_PkmnDesigners};
+static const struct CreditsEntry sCreditsEntry_MusicComposition[] = {13, TRUE, sCreditsText_MusicComposition};
+static const struct CreditsEntry sCreditsEntry_SoundEffectsAndPkmnVoices[] = { 4, TRUE, sCreditsText_SoundEffectsAndPkmnVoices};
+static const struct CreditsEntry sCreditsEntry_GameDesigners[] = {11, TRUE, sCreditsText_GameDesigners};
+static const struct CreditsEntry sCreditsEntry_ScenarioPlot[] = {11, TRUE, sCreditsText_ScenarioPlot};
+static const struct CreditsEntry sCreditsEntry_Scenario[] = {13, TRUE, sCreditsText_Scenario};
+static const struct CreditsEntry sCreditsEntry_ScriptDesigners[] = {10, TRUE, sCreditsText_ScriptDesigners};
+static const struct CreditsEntry sCreditsEntry_MapDesigners[] = {11, TRUE, sCreditsText_MapDesigners};
+static const struct CreditsEntry sCreditsEntry_MapDataDesigners[] = { 9, TRUE, sCreditsText_MapDataDesigners};
+static const struct CreditsEntry sCreditsEntry_ParametricDesigners[] = { 9, TRUE, sCreditsText_ParametricDesigners};
+static const struct CreditsEntry sCreditsEntry_PokedexText[] = {11, TRUE, sCreditsText_PokedexText};
+static const struct CreditsEntry sCreditsEntry_EnvAndToolPgrms[] = { 6, TRUE, sCreditsText_EnvAndToolPgrms};
+static const struct CreditsEntry sCreditsEntry_NCLProductTesting[] = {11, TRUE, sCreditsText_NCLProductTesting};
+static const struct CreditsEntry sCreditsEntry_SpecialThanks[] = {10, TRUE, sCreditsText_SpecialThanks};
+static const struct CreditsEntry sCreditsEntry_Coordinators[] = {11, TRUE, sCreditsText_Coordinators};
+static const struct CreditsEntry sCreditsEntry_Producers[] = {11, TRUE, sCreditsText_Producers};
+static const struct CreditsEntry sCreditsEntry_ExecProducers[] = { 7, TRUE, sCreditsText_ExecProducers};
+static const struct CreditsEntry sCreditsEntry_InfoSupervisors[] = {10, TRUE, sCreditsText_InfoSupervisors};
+static const struct CreditsEntry sCreditsEntry_TaskManagers[] = { 8, TRUE, sCreditsText_TaskManagers};
+static const struct CreditsEntry sCreditsEntry_BrailleCodeCheck[] = {10, TRUE, sCreditsText_BrailleCodeCheck};
+static const struct CreditsEntry sCreditsEntry_WorldDirector[] = {10, TRUE, sCreditsText_WorldDirector};
+static const struct CreditsEntry sCreditsEntry_BattleFrontierData[] = { 8, TRUE, sCreditsText_BattleFrontierData};
+static const struct CreditsEntry sCreditsEntry_SupportProgrammers[] = {10, TRUE, sCreditsText_SupportProgrammers};
+static const struct CreditsEntry sCreditsEntry_Artwork[] = {12, TRUE, sCreditsText_Artwork};
+static const struct CreditsEntry sCreditsEntry_LeadProgrammer[] = {10, TRUE, sCreditsText_LeadProgrammer};
+static const struct CreditsEntry sCreditsEntry_LeadGraphicArtist[] = { 9, TRUE, sCreditsText_LeadGraphicArtist};
+static const struct CreditsEntry sCreditsEntry_SatoshiTajiri[] = {11, FALSE, sCreditsText_SatoshiTajiri};
+static const struct CreditsEntry sCreditsEntry_JunichiMasuda[] = {11, FALSE, sCreditsText_JunichiMasuda};
+static const struct CreditsEntry sCreditsEntry_KenSugimori[] = {11, FALSE, sCreditsText_KenSugimori};
+static const struct CreditsEntry sCreditsEntry_ShigekiMorimoto[] = {11, FALSE, sCreditsText_ShigekiMorimoto};
+static const struct CreditsEntry sCreditsEntry_TetsuyaWatanabe[] = {11, FALSE, sCreditsText_TetsuyaWatanabe};
+static const struct CreditsEntry sCreditsEntry_HisashiSogabe[] = {11, FALSE, sCreditsText_HisashiSogabe};
+static const struct CreditsEntry sCreditsEntry_SosukeTamada[] = {11, FALSE, sCreditsText_SosukeTamada};
+static const struct CreditsEntry sCreditsEntry_AkitoMori[] = {11, FALSE, sCreditsText_AkitoMori};
+static const struct CreditsEntry sCreditsEntry_KeitaKagaya[] = {11, FALSE, sCreditsText_KeitaKagaya};
+static const struct CreditsEntry sCreditsEntry_YoshinoriMatsuda[] = {11, FALSE, sCreditsText_YoshinoriMatsuda};
+static const struct CreditsEntry sCreditsEntry_HiroyukiNakamura[] = {11, FALSE, sCreditsText_HiroyukiNakamura};
+static const struct CreditsEntry sCreditsEntry_MasaoTaya[] = {11, FALSE, sCreditsText_MasaoTaya};
+static const struct CreditsEntry sCreditsEntry_SatoshiNohara[] = {11, FALSE, sCreditsText_SatoshiNohara};
+static const struct CreditsEntry sCreditsEntry_TomomichiOhta[] = {11, FALSE, sCreditsText_TomomichiOhta};
+static const struct CreditsEntry sCreditsEntry_MiyukiIwasawa[] = {11, FALSE, sCreditsText_MiyukiIwasawa};
+static const struct CreditsEntry sCreditsEntry_TakenoriOhta[] = {11, FALSE, sCreditsText_TakenoriOhta};
+static const struct CreditsEntry sCreditsEntry_HironobuYoshida[] = {11, FALSE, sCreditsText_HironobuYoshida};
+static const struct CreditsEntry sCreditsEntry_MotofumiFujiwara[] = {11, FALSE, sCreditsText_MotofumiFujiwara};
+static const struct CreditsEntry sCreditsEntry_SatoshiOhta[] = {11, FALSE, sCreditsText_SatoshiOhta};
+static const struct CreditsEntry sCreditsEntry_AsukaIwashita[] = {11, FALSE, sCreditsText_AsukaIwashita};
+static const struct CreditsEntry sCreditsEntry_AimiTomita[] = {11, FALSE, sCreditsText_AimiTomita};
+static const struct CreditsEntry sCreditsEntry_TakaoUnno[] = {11, FALSE, sCreditsText_TakaoUnno};
+static const struct CreditsEntry sCreditsEntry_KanakoEo[] = {11, FALSE, sCreditsText_KanakoEo};
+static const struct CreditsEntry sCreditsEntry_JunOkutani[] = {11, FALSE, sCreditsText_JunOkutani};
+static const struct CreditsEntry sCreditsEntry_AtsukoNishida[] = {11, FALSE, sCreditsText_AtsukoNishida};
+static const struct CreditsEntry sCreditsEntry_MuneoSaito[] = {11, FALSE, sCreditsText_MuneoSaito};
+static const struct CreditsEntry sCreditsEntry_RenaYoshikawa[] = {11, FALSE, sCreditsText_RenaYoshikawa};
+static const struct CreditsEntry sCreditsEntry_GoIchinose[] = {11, FALSE, sCreditsText_GoIchinose};
+static const struct CreditsEntry sCreditsEntry_MorikazuAoki[] = {11, FALSE, sCreditsText_MorikazuAoki};
+static const struct CreditsEntry sCreditsEntry_KojiNishino[] = {11, FALSE, sCreditsText_KojiNishino};
+static const struct CreditsEntry sCreditsEntry_KenjiMatsushima[] = {11, FALSE, sCreditsText_KenjiMatsushima};
+static const struct CreditsEntry sCreditsEntry_TetsujiOhta[] = {11, FALSE, sCreditsText_TetsujiOhta};
+static const struct CreditsEntry sCreditsEntry_HitomiSato[] = {11, FALSE, sCreditsText_HitomiSato};
+static const struct CreditsEntry sCreditsEntry_TakeshiKawachimaru[] = {11, FALSE, sCreditsText_TakeshiKawachimaru};
+static const struct CreditsEntry sCreditsEntry_TeruyukiShimoyamada[] = {11, FALSE, sCreditsText_TeruyukiShimoyamada};
+static const struct CreditsEntry sCreditsEntry_ShigeruOhmori[] = {11, FALSE, sCreditsText_ShigeruOhmori};
+static const struct CreditsEntry sCreditsEntry_TadashiTakahashi[] = {11, FALSE, sCreditsText_TadashiTakahashi};
+static const struct CreditsEntry sCreditsEntry_ToshinobuMatsumiya[] = {11, FALSE, sCreditsText_ToshinobuMatsumiya};
+static const struct CreditsEntry sCreditsEntry_AkihitoTomisawa[] = {11, FALSE, sCreditsText_AkihitoTomisawa};
+static const struct CreditsEntry sCreditsEntry_HirokiEnomoto[] = {11, FALSE, sCreditsText_HirokiEnomoto};
+static const struct CreditsEntry sCreditsEntry_KazuyukiTerada[] = {11, FALSE, sCreditsText_KazuyukiTerada};
+static const struct CreditsEntry sCreditsEntry_YuriSakurai[] = {11, FALSE, sCreditsText_YuriSakurai};
+static const struct CreditsEntry sCreditsEntry_HiromiSagawa[] = {11, FALSE, sCreditsText_HiromiSagawa};
+static const struct CreditsEntry sCreditsEntry_KenjiTominaga[] = {11, FALSE, sCreditsText_KenjiTominaga};
+static const struct CreditsEntry sCreditsEntry_YoshioTajiri[] = {11, FALSE, sCreditsText_YoshioTajiri};
+static const struct CreditsEntry sCreditsEntry_TeikoSasaki[] = {11, FALSE, sCreditsText_TeikoSasaki};
+static const struct CreditsEntry sCreditsEntry_SachikoHamano[] = {11, FALSE, sCreditsText_SachikoHamano};
+static const struct CreditsEntry sCreditsEntry_ChieMatsumiya[] = {11, FALSE, sCreditsText_ChieMatsumiya};
+static const struct CreditsEntry sCreditsEntry_AkikoShinozaki[] = {11, FALSE, sCreditsText_AkikoShinozaki};
+static const struct CreditsEntry sCreditsEntry_AstukoFujii[] = {11, FALSE, sCreditsText_AstukoFujii};
+static const struct CreditsEntry sCreditsEntry_NozomuSaito[] = {11, FALSE, sCreditsText_NozomuSaito};
+static const struct CreditsEntry sCreditsEntry_KenkichiToyama[] = {11, FALSE, sCreditsText_KenkichiToyama};
+static const struct CreditsEntry sCreditsEntry_SuguruNakatsui[] = {11, FALSE, sCreditsText_SuguruNakatsui};
+static const struct CreditsEntry sCreditsEntry_YumiFunasaka[] = {11, FALSE, sCreditsText_YumiFunasaka};
+static const struct CreditsEntry sCreditsEntry_NaokoYanase[] = {11, FALSE, sCreditsText_NaokoYanase};
+static const struct CreditsEntry sCreditsEntry_NCLSuperMarioClub[] = {11, FALSE, sCreditsText_NCLSuperMarioClub};
+static const struct CreditsEntry sCreditsEntry_AtsushiTada[] = {11, FALSE, sCreditsText_AtsushiTada};
+static const struct CreditsEntry sCreditsEntry_TakahiroOhnishi[] = {11, FALSE, sCreditsText_TakahiroOhnishi};
+static const struct CreditsEntry sCreditsEntry_NorihideOkamura[] = {11, FALSE, sCreditsText_NorihideOkamura};
+static const struct CreditsEntry sCreditsEntry_HiroNakamura[] = {11, FALSE, sCreditsText_HiroNakamura};
+static const struct CreditsEntry sCreditsEntry_HiroyukiUesugi[] = {11, FALSE, sCreditsText_HiroyukiUesugi};
+static const struct CreditsEntry sCreditsEntry_TerukiMurakawa[] = {11, FALSE, sCreditsText_TerukiMurakawa};
+static const struct CreditsEntry sCreditsEntry_AkiraKinashi[] = {11, FALSE, sCreditsText_AkiraKinashi};
+static const struct CreditsEntry sCreditsEntry_MichikoTakizawa[] = {11, FALSE, sCreditsText_MichikoTakizawa};
+static const struct CreditsEntry sCreditsEntry_MakikoTakada[] = {11, FALSE, sCreditsText_MakikoTakada};
+static const struct CreditsEntry sCreditsEntry_TakanaoKondo[] = {11, FALSE, sCreditsText_TakanaoKondo};
+static const struct CreditsEntry sCreditsEntry_AiMashima[] = {11, FALSE, sCreditsText_AiMashima};
+static const struct CreditsEntry sCreditsEntry_GakujiNomoto[] = {11, FALSE, sCreditsText_GakujiNomoto};
+static const struct CreditsEntry sCreditsEntry_TakehiroIzushi[] = {11, FALSE, sCreditsText_TakehiroIzushi};
+static const struct CreditsEntry sCreditsEntry_HitoshiYamagami[] = {11, FALSE, sCreditsText_HitoshiYamagami};
+static const struct CreditsEntry sCreditsEntry_KyokoWatanabe[] = {11, FALSE, sCreditsText_KyokoWatanabe};
+static const struct CreditsEntry sCreditsEntry_TakaoNakano[] = {11, FALSE, sCreditsText_TakaoNakano};
+static const struct CreditsEntry sCreditsEntry_HiroyukiJinnai[] = {11, FALSE, sCreditsText_HiroyukiJinnai};
+static const struct CreditsEntry sCreditsEntry_HiroakiTsuru[] = {11, FALSE, sCreditsText_HiroakiTsuru};
+static const struct CreditsEntry sCreditsEntry_TsunekazIshihara[] = {11, FALSE, sCreditsText_TsunekazIshihara};
+static const struct CreditsEntry sCreditsEntry_SatoruIwata[] = {11, FALSE, sCreditsText_SatoruIwata};
+static const struct CreditsEntry sCreditsEntry_KazuyaSuyama[] = {11, FALSE, sCreditsText_KazuyaSuyama};
+static const struct CreditsEntry sCreditsEntry_SatoshiMitsuhara[] = {11, FALSE, sCreditsText_SatoshiMitsuhara};
+static const struct CreditsEntry sCreditsEntry_JapanBrailleLibrary[] = { 9, FALSE, sCreditsText_JapanBrailleLibrary};
+static const struct CreditsEntry sCreditsEntry_TomotakaKomura[] = {11, FALSE, sCreditsText_TomotakaKomura};
+static const struct CreditsEntry sCreditsEntry_MikikoOhhashi[] = {11, FALSE, sCreditsText_MikikoOhhashi};
+static const struct CreditsEntry sCreditsEntry_DaisukeHoshino[] = {11, FALSE, sCreditsText_DaisukeHoshino};
+static const struct CreditsEntry sCreditsEntry_KenjiroIto[] = {11, FALSE, sCreditsText_KenjiroIto};
+static const struct CreditsEntry sCreditsEntry_RuiKawaguchi[] = {11, FALSE, sCreditsText_RuiKawaguchi};
+static const struct CreditsEntry sCreditsEntry_ShunsukeKohori[] = {11, FALSE, sCreditsText_ShunsukeKohori};
+static const struct CreditsEntry sCreditsEntry_SachikoNakamichi[] = {11, FALSE, sCreditsText_SachikoNakamichi};
+static const struct CreditsEntry sCreditsEntry_FujikoNomura[] = {11, FALSE, sCreditsText_FujikoNomura};
+static const struct CreditsEntry sCreditsEntry_KazukiYoshihara[] = {11, FALSE, sCreditsText_KazukiYoshihara};
+static const struct CreditsEntry sCreditsEntry_RetsujiNomoto[] = {11, FALSE, sCreditsText_RetsujiNomoto};
+static const struct CreditsEntry sCreditsEntry_AzusaTajima[] = {11, FALSE, sCreditsText_AzusaTajima};
+static const struct CreditsEntry sCreditsEntry_ShusakuEgami[] = {11, FALSE, sCreditsText_ShusakuEgami};
+static const struct CreditsEntry sCreditsEntry_PackageAndManual[] = { 0, TRUE, sCreditsText_PackageAndManual};
+static const struct CreditsEntry sCreditsEntry_EnglishVersion[] = { 0, TRUE, sCreditsText_EnglishVersion};
+static const struct CreditsEntry sCreditsEntry_Translator[] = { 0, TRUE, sCreditsText_Translator};
+static const struct CreditsEntry sCreditsEntry_TextEditor[] = { 0, TRUE, sCreditsText_TextEditor};
+static const struct CreditsEntry sCreditsEntry_NCLCoordinator[] = { 0, TRUE, sCreditsText_NCLCoordinator};
+static const struct CreditsEntry sCreditsEntry_GraphicDesigner[] = { 0, TRUE, sCreditsText_GraphicDesigner};
+static const struct CreditsEntry sCreditsEntry_NOAProductTesting[] = { 0, TRUE, sCreditsText_NOAProductTesting};
+static const struct CreditsEntry sCreditsEntry_HideyukiNakajima[] = { 0, FALSE, sCreditsText_HideyukiNakajima};
+static const struct CreditsEntry sCreditsEntry_HidenoriSaeki[] = { 0, FALSE, sCreditsText_HidenoriSaeki};
+static const struct CreditsEntry sCreditsEntry_YokoWatanabe[] = { 0, FALSE, sCreditsText_YokoWatanabe};
+static const struct CreditsEntry sCreditsEntry_SakaeKimura[] = { 0, FALSE, sCreditsText_SakaeKimura};
+static const struct CreditsEntry sCreditsEntry_ChiakiShinkai[] = { 0, FALSE, sCreditsText_ChiakiShinkai};
+static const struct CreditsEntry sCreditsEntry_SethMcMahill[] = { 0, FALSE, sCreditsText_SethMcMahill};
+static const struct CreditsEntry sCreditsEntry_NobOgasawara[] = { 0, FALSE, sCreditsText_NobOgasawara};
+static const struct CreditsEntry sCreditsEntry_TeresaLillygren[] = { 0, FALSE, sCreditsText_TeresaLillygren};
+static const struct CreditsEntry sCreditsEntry_KimikoNakamichi[] = { 0, FALSE, sCreditsText_KimikoNakamichi};
+static const struct CreditsEntry sCreditsEntry_SouichiYamamoto[] = { 0, FALSE, sCreditsText_SouichiYamamoto};
+static const struct CreditsEntry sCreditsEntry_YuichiroIto[] = { 0, FALSE, sCreditsText_YuichiroIto};
+static const struct CreditsEntry sCreditsEntry_ThomasHertzog[] = { 0, FALSE, sCreditsText_ThomasHertzog};
+static const struct CreditsEntry sCreditsEntry_MikaKurosawa[] = { 0, FALSE, sCreditsText_MikaKurosawa};
+static const struct CreditsEntry sCreditsEntry_NationalFederationBlind[] = { 0, FALSE, sCreditsText_NationalFederationBlind};
+static const struct CreditsEntry sCreditsEntry_PatriciaAMaurer[] = { 0, FALSE, sCreditsText_PatriciaAMaurer};
+static const struct CreditsEntry sCreditsEntry_EuropeanBlindUnion[] = { 0, FALSE, sCreditsText_EuropeanBlindUnion};
+static const struct CreditsEntry sCreditsEntry_AustralianBrailleAuthority[] = { 0, FALSE, sCreditsText_AustralianBrailleAuthority};
+static const struct CreditsEntry sCreditsEntry_RoyalNewZealandFederationBlind[] = { 0, FALSE, sCreditsText_RoyalNewZealandFederationBlind};
+static const struct CreditsEntry sCreditsEntry_MotoyasuTojima[] = { 0, FALSE, sCreditsText_MotoyasuTojima};
+static const struct CreditsEntry sCreditsEntry_NicolaPrattBarlow[] = { 0, FALSE, sCreditsText_NicolaPrattBarlow};
+static const struct CreditsEntry sCreditsEntry_ShellieDow[] = { 0, FALSE, sCreditsText_ShellieDow};
+static const struct CreditsEntry sCreditsEntry_ErikJohnson[] = { 0, FALSE, sCreditsText_ErikJohnson};
+
+#define _ sCreditsEntry_EmptyString
+static const struct CreditsEntry *const sCreditsEntryPointerTable[PAGE_COUNT][ENTRIES_PER_PAGE] =
+{
+ [PAGE_TITLE] = {
+ _,
+ sCreditsEntry_PkmnEmeraldVersion,
+ sCreditsEntry_Credits,
+ _,
+ _
+ },
+ [PAGE_DIRECTOR] = {
+ _,
+ sCreditsEntry_Director,
+ sCreditsEntry_ShigekiMorimoto,
+ _,
+ _,
+ },
+ [PAGE_ART_DIRECTOR] = {
+ _,
+ sCreditsEntry_ArtDirector,
+ sCreditsEntry_KenSugimori,
+ _,
+ _,
+ },
+ [PAGE_WORLD_DIRECTOR] = {
+ _,
+ sCreditsEntry_WorldDirector,
+ sCreditsEntry_JunichiMasuda,
+ _,
+ _,
+ },
+ [PAGE_LEAD_PROGRAMMER] = {
+ sCreditsEntry_LeadProgrammer,
+ sCreditsEntry_HisashiSogabe,
+ sCreditsEntry_LeadGraphicArtist,
+ sCreditsEntry_MotofumiFujiwara,
+ _,
+ },
+ [PAGE_PROGRAMMERS_1] = {
+ sCreditsEntry_Programmers,
+ sCreditsEntry_HisashiSogabe,
+ sCreditsEntry_TomomichiOhta,
+ sCreditsEntry_NozomuSaito,
+ sCreditsEntry_EmptyString,
+ },
+ [PAGE_PROGRAMMERS_2] = {
+ sCreditsEntry_Programmers,
+ sCreditsEntry_AkitoMori,
+ sCreditsEntry_HiroyukiNakamura,
+ sCreditsEntry_MasaoTaya,
+ _,
+ },
+ [PAGE_PROGRAMMERS_3] = {
+ sCreditsEntry_Programmers,
+ sCreditsEntry_SatoshiNohara,
+ sCreditsEntry_MiyukiIwasawa,
+ sCreditsEntry_YoshinoriMatsuda,
+ sCreditsEntry_KeitaKagaya,
+ },
+ [PAGE_PROGRAMMERS_4] = {
+ sCreditsEntry_Programmers,
+ sCreditsEntry_TetsuyaWatanabe,
+ sCreditsEntry_SosukeTamada,
+ sCreditsEntry_TakenoriOhta,
+ _,
+ },
+ [PAGE_GRAPHIC_DESIGNERS_1] = {
+ _,
+ sCreditsEntry_GraphicDesigners,
+ sCreditsEntry_MotofumiFujiwara,
+ sCreditsEntry_SatoshiOhta,
+ _,
+ },
+ [PAGE_GRAPHIC_DESIGNERS_2] = {
+ sCreditsEntry_GraphicDesigners,
+ sCreditsEntry_KenkichiToyama,
+ sCreditsEntry_AsukaIwashita,
+ sCreditsEntry_TakaoUnno,
+ _,
+ },
+ [PAGE_GRAPHIC_DESIGNERS_3] = {
+ sCreditsEntry_GraphicDesigners,
+ sCreditsEntry_KenSugimori,
+ sCreditsEntry_HironobuYoshida,
+ sCreditsEntry_AimiTomita,
+ sCreditsEntry_KanakoEo,
+ },
+ [PAGE_MUSIC_COMPOSITION] = {
+ sCreditsEntry_MusicComposition,
+ sCreditsEntry_GoIchinose,
+ sCreditsEntry_JunichiMasuda,
+ sCreditsEntry_MorikazuAoki,
+ sCreditsEntry_HitomiSato,
+ },
+ [PAGE_SOUND_EFFECTS] = {
+ _,
+ sCreditsEntry_SoundEffectsAndPkmnVoices,
+ sCreditsEntry_GoIchinose,
+ sCreditsEntry_MorikazuAoki,
+ _,
+ },
+ [PAGE_GAME_DESIGNERS_1] = {
+ sCreditsEntry_GameDesigners,
+ sCreditsEntry_ShigekiMorimoto,
+ sCreditsEntry_TeruyukiShimoyamada,
+ sCreditsEntry_TakeshiKawachimaru,
+ sCreditsEntry_AkihitoTomisawa,
+ },
+ [PAGE_GAME_DESIGNERS_2] = {
+ sCreditsEntry_GameDesigners,
+ sCreditsEntry_SuguruNakatsui,
+ sCreditsEntry_TetsujiOhta,
+ sCreditsEntry_HitomiSato,
+ sCreditsEntry_KenjiMatsushima,
+ },
+ [PAGE_GAME_DESIGNERS_3] = {
+ sCreditsEntry_GameDesigners,
+ sCreditsEntry_JunichiMasuda,
+ sCreditsEntry_KojiNishino,
+ sCreditsEntry_ShigeruOhmori,
+ sCreditsEntry_TadashiTakahashi,
+ },
+ [PAGE_SCENARIO_PLOT] = {
+ sCreditsEntry_ScenarioPlot,
+ sCreditsEntry_AkihitoTomisawa,
+ sCreditsEntry_JunichiMasuda,
+ sCreditsEntry_KojiNishino,
+ _,
+ },
+ [PAGE_SCENARIO] = {
+ sCreditsEntry_Scenario,
+ sCreditsEntry_AkihitoTomisawa,
+ sCreditsEntry_HitomiSato,
+ sCreditsEntry_ToshinobuMatsumiya,
+ _,
+ },
+ [PAGE_SCRIPT_DESIGNERS] = {
+ sCreditsEntry_ScriptDesigners,
+ sCreditsEntry_TomomichiOhta,
+ sCreditsEntry_SatoshiNohara,
+ _,
+ _,
+ },
+ [PAGE_MAP_DESIGNERS] = {
+ sCreditsEntry_MapDesigners,
+ sCreditsEntry_SuguruNakatsui,
+ sCreditsEntry_TeruyukiShimoyamada,
+ sCreditsEntry_ShigeruOhmori,
+ sCreditsEntry_TetsujiOhta,
+ },
+ [PAGE_BATTLE_FRONTIER_DATA] = {
+ _,
+ sCreditsEntry_BattleFrontierData,
+ sCreditsEntry_TetsujiOhta,
+ _,
+ _,
+ },
+ [PAGE_PARAMETRIC_DESIGNERS] = {
+ sCreditsEntry_ParametricDesigners,
+ sCreditsEntry_TeruyukiShimoyamada,
+ sCreditsEntry_ShigekiMorimoto,
+ sCreditsEntry_TetsujiOhta,
+ sCreditsEntry_KojiNishino,
+ },
+ [PAGE_POKEDEX_TEXT] = {
+ _,
+ sCreditsEntry_PokedexText,
+ sCreditsEntry_KenjiMatsushima,
+ _,
+ _,
+ },
+ [PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_1] = {
+ sCreditsEntry_EnvAndToolPgrms,
+ sCreditsEntry_HisashiSogabe,
+ sCreditsEntry_SosukeTamada,
+ sCreditsEntry_HiroyukiNakamura,
+ sCreditsEntry_AkitoMori,
+ },
+ [PAGE_PKMN_DESIGNERS_1] = {
+ sCreditsEntry_PkmnDesigners,
+ sCreditsEntry_KenSugimori,
+ sCreditsEntry_MotofumiFujiwara,
+ sCreditsEntry_ShigekiMorimoto,
+ _,
+ },
+ [PAGE_PKMN_DESIGNERS_2] = {
+ sCreditsEntry_PkmnDesigners,
+ sCreditsEntry_HironobuYoshida,
+ sCreditsEntry_SatoshiOhta,
+ sCreditsEntry_AsukaIwashita,
+ _,
+ },
+ [PAGE_PKMN_DESIGNERS_3] = {
+ sCreditsEntry_PkmnDesigners,
+ sCreditsEntry_TakaoUnno,
+ sCreditsEntry_KanakoEo,
+ sCreditsEntry_AimiTomita,
+ _,
+ },
+ [PAGE_PKMN_DESIGNERS_4] = {
+ sCreditsEntry_PkmnDesigners,
+ sCreditsEntry_AtsukoNishida,
+ sCreditsEntry_MuneoSaito,
+ sCreditsEntry_RenaYoshikawa,
+ sCreditsEntry_JunOkutani,
+ },
+ [PAGE_SUPPORT_PROGRAMMERS] = {
+ _,
+ sCreditsEntry_SupportProgrammers,
+ sCreditsEntry_SatoshiMitsuhara,
+ sCreditsEntry_DaisukeHoshino,
+ _,
+ },
+ [PAGE_NCL_PRODUCT_TESTING] = {
+ _,
+ sCreditsEntry_NCLProductTesting,
+ sCreditsEntry_NCLSuperMarioClub,
+ _,
+ _,
+ },
+ [PAGE_PACKAGE_AND_MANUAL] = {
+ _,
+ sCreditsEntry_PackageAndManual,
+ sCreditsEntry_KenSugimori,
+ _,
+ _,
+ },
+ [PAGE_SPECIAL_THANKS_1] = {
+ _,
+ sCreditsEntry_SpecialThanks,
+ sCreditsEntry_KenjiTominaga,
+ sCreditsEntry_HirokiEnomoto,
+ _,
+ },
+ [PAGE_SPECIAL_THANKS_2] = {
+ sCreditsEntry_SpecialThanks,
+ sCreditsEntry_KazuyaSuyama,
+ sCreditsEntry_KenjiroIto,
+ sCreditsEntry_MichikoTakizawa,
+ sCreditsEntry_MakikoTakada,
+ },
+ [PAGE_SPECIAL_THANKS_3] = {
+ sCreditsEntry_SpecialThanks,
+ sCreditsEntry_MikikoOhhashi,
+ sCreditsEntry_TakanaoKondo,
+ sCreditsEntry_RuiKawaguchi,
+ _,
+ },
+ [PAGE_SPECIAL_THANKS_4] = {
+ sCreditsEntry_SpecialThanks,
+ sCreditsEntry_TakahiroOhnishi,
+ sCreditsEntry_NorihideOkamura,
+ sCreditsEntry_ShunsukeKohori,
+ _,
+ },
+ [PAGE_INFORMATION_SUPERVISORS] = {
+ sCreditsEntry_InfoSupervisors,
+ sCreditsEntry_KazuyukiTerada,
+ sCreditsEntry_YuriSakurai,
+ sCreditsEntry_YumiFunasaka,
+ sCreditsEntry_NaokoYanase,
+ },
+ [PAGE_ARTWORK_1] = {
+ _,
+ sCreditsEntry_Artwork,
+ sCreditsEntry_SachikoNakamichi,
+ sCreditsEntry_FujikoNomura,
+ _,
+ },
+ [PAGE_ARTWORK_2] = {
+ _,
+ sCreditsEntry_Artwork,
+ sCreditsEntry_HideyukiNakajima,
+ sCreditsEntry_HidenoriSaeki,
+ _,
+ },
+ [PAGE_ARTWORK_3] = {
+ sCreditsEntry_Artwork,
+ sCreditsEntry_YokoWatanabe,
+ sCreditsEntry_SakaeKimura,
+ sCreditsEntry_ChiakiShinkai,
+ _,
+ },
+ [PAGE_COORDINATORS] = {
+ sCreditsEntry_Coordinators,
+ sCreditsEntry_KazukiYoshihara,
+ sCreditsEntry_AkiraKinashi,
+ sCreditsEntry_RetsujiNomoto,
+ _,
+ },
+ [PAGE_ENGLISH_VERSION] = {
+ _,
+ sCreditsEntry_EnglishVersion,
+ sCreditsEntry_HiroNakamura,
+ sCreditsEntry_SethMcMahill,
+ _,
+ },
+ [PAGE_TRANSLATOR] = {
+ _,
+ sCreditsEntry_Translator,
+ sCreditsEntry_NobOgasawara,
+ _,
+ _,
+ },
+ [PAGE_TEXT_EDITOR] = {
+ _,
+ sCreditsEntry_TextEditor,
+ sCreditsEntry_TeresaLillygren,
+ _,
+ _,
+ },
+ [PAGE_NCL_COORDINATOR] = {
+ _,
+ sCreditsEntry_NCLCoordinator,
+ sCreditsEntry_KimikoNakamichi,
+ _,
+ _,
+ },
+ [PAGE_PROGRAMMERS_5] = {
+ sCreditsEntry_Programmers,
+ sCreditsEntry_TerukiMurakawa,
+ sCreditsEntry_SouichiYamamoto,
+ sCreditsEntry_YuichiroIto,
+ sCreditsEntry_AkiraKinashi,
+ },
+ [PAGE_GRAPHIC_DESIGNER] = {
+ _,
+ sCreditsEntry_GraphicDesigner,
+ sCreditsEntry_AkiraKinashi,
+ _,
+ _,
+ },
+ [PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_2] = {
+ sCreditsEntry_EnvAndToolPgrms,
+ sCreditsEntry_TerukiMurakawa,
+ sCreditsEntry_SouichiYamamoto,
+ sCreditsEntry_KimikoNakamichi,
+ _,
+ },
+ [PAGE_NOA_TESTING] = {
+ sCreditsEntry_NOAProductTesting,
+ sCreditsEntry_ThomasHertzog,
+ sCreditsEntry_ErikJohnson,
+ sCreditsEntry_MikaKurosawa,
+ _,
+ },
+ [PAGE_BRAILLE_CODE_CHECK_1] = {
+ sCreditsEntry_BrailleCodeCheck,
+ sCreditsEntry_NationalFederationBlind,
+ sCreditsEntry_PatriciaAMaurer,
+ sCreditsEntry_JapanBrailleLibrary,
+ sCreditsEntry_EuropeanBlindUnion,
+ },
+ [PAGE_BRAILLE_CODE_CHECK_2] = {
+ _,
+ sCreditsEntry_BrailleCodeCheck,
+ sCreditsEntry_AustralianBrailleAuthority,
+ sCreditsEntry_RoyalNewZealandFederationBlind,
+ _,
+ },
+ [PAGE_SPECIAL_THANKS_5] = {
+ sCreditsEntry_SpecialThanks,
+ sCreditsEntry_HiroyukiUesugi,
+ sCreditsEntry_MotoyasuTojima,
+ sCreditsEntry_NicolaPrattBarlow,
+ sCreditsEntry_ShellieDow,
+ },
+ [PAGE_TASK_MANAGERS] = {
+ _,
+ sCreditsEntry_TaskManagers,
+ sCreditsEntry_AzusaTajima,
+ sCreditsEntry_ShusakuEgami,
+ _,
+ },
+ [PAGE_PRODUCERS] = {
+ sCreditsEntry_Producers,
+ sCreditsEntry_HiroyukiJinnai,
+ sCreditsEntry_HitoshiYamagami,
+ sCreditsEntry_GakujiNomoto,
+ sCreditsEntry_HiroakiTsuru,
+ },
+ [PAGE_EXECUTIVE_DIRECTOR] = {
+ _,
+ sCreditsEntry_ExecutiveDirector,
+ sCreditsEntry_SatoshiTajiri,
+ _,
+ _,
+ },
+ [PAGE_EXECUTIVE_PRODUCERS_1] = {
+ _,
+ sCreditsEntry_ExecProducers,
+ sCreditsEntry_SatoruIwata,
+ _,
+ _,
+ },
+ [PAGE_EXECUTIVE_PRODUCERS_2] = {
+ _,
+ sCreditsEntry_ExecProducers,
+ sCreditsEntry_TsunekazIshihara,
+ _,
+ _,
+ },
+};
+#undef _
diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c
index 4cb26a9bf..401d077ef 100644
--- a/src/intro_credits_graphics.c
+++ b/src/intro_credits_graphics.c
@@ -442,7 +442,7 @@ static const struct IntroCreditsSpriteMetadata sSpriteMetadata_HouseSilhouette[]
static const struct OamData sOamData_Player =
{
- .y = 160,
+ .y = DISPLAY_HEIGHT,
.shape = SPRITE_SHAPE(64x64),
.size = SPRITE_SIZE(64x64),
.priority = 1
@@ -486,7 +486,7 @@ static const struct SpriteTemplate sSpriteTemplate_May =
static const struct OamData sOamData_Bicycle =
{
- .y = 160,
+ .y = DISPLAY_HEIGHT,
.shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32),
.priority = 1
@@ -530,7 +530,7 @@ static const struct SpriteTemplate sSpriteTemplate_MayBicycle =
static const struct OamData sOamData_Flygon =
{
- .y = 160,
+ .y = DISPLAY_HEIGHT,
.shape = SPRITE_SHAPE(64x64),
.size = SPRITE_SIZE(64x64),
.priority = 1
@@ -538,13 +538,13 @@ static const struct OamData sOamData_Flygon =
static const union AnimCmd sAnim_FlygonLeft[] =
{
- ANIMCMD_FRAME( 0, 16),
+ ANIMCMD_FRAME(0, 16),
ANIMCMD_END
};
static const union AnimCmd sAnim_FlygonRight[] =
{
- ANIMCMD_FRAME( 64, 16),
+ ANIMCMD_FRAME(64, 16),
ANIMCMD_END
};
@@ -753,7 +753,7 @@ void LoadIntroPart2Graphics(u8 scene)
CreateTreeSprites();
break;
}
- gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_MOVING;
+ gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_NORMAL;
gReservedSpritePaletteCount = 8;
}
@@ -884,7 +884,7 @@ void LoadCreditsSceneGraphics(u8 scene)
break;
}
gReservedSpritePaletteCount = 8;
- gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_MOVING;
+ gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_NORMAL;
}
void SetCreditsSceneBgCnt(u8 scene)
@@ -1043,7 +1043,7 @@ static void SpriteCB_MovingScenery(struct Sprite *sprite)
default: // INTROCRED_SCENERY_DESTROY
DestroySprite(sprite);
break;
- case INTROCRED_SCENERY_MOVING:
+ case INTROCRED_SCENERY_NORMAL:
x = ((sprite->pos1.x << 16) | (u16)sprite->data[2]) + (u16)sprite->data[1];
sprite->pos1.x = x >> 16;
sprite->data[2] = x;