diff --git a/README.md b/README.md index a2bb228c..e0069ffe 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is a work in progress decompilation of Metroid - Zero Mission. 2673/2721 functions decompiled (98.24%, 48 left) -0x388ac0/0x76b014 bytes of data not in blobs (47.63%, 0x3e2554 left) +0x38d910/0x76b014 bytes of data not in blobs (47.90%, 0x3dd704 left) Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0 diff --git a/charmap.txt b/charmap.txt index 89506b63..1d27b135 100644 --- a/charmap.txt +++ b/charmap.txt @@ -1298,6 +1298,10 @@ NO = 83A0 UP = 0455 0450 SPACE_JP = 0400 BANG_BANG_JP = 0401 +LEFT_PAREN_JP = 0408 +RIGHT_PAREN_JP = 0409 +PLUS_JP = 040B +HYPHEN_JP = 040D NUMBER_0_JP = 0410 NUMBER_1_JP = 0411 NUMBER_2_JP = 0412 diff --git a/database.txt b/database.txt index df563211..09e5f7d2 100644 --- a/database.txt +++ b/database.txt @@ -2701,11 +2701,9 @@ Blob_2320ec_2376a8.bin;21948;0x2320ec;1 Blob_238b68_23a5bc.bin;6740;0x238b68;1 Blob_2d5ba0_2d7ae7.bin;7988;0x2d5ba0;1 Blob_34099c_345868.bin;20172;0x34099c;1 -Blob_442560_446d68.bin;18440;0x442560;1 Blob_479400_4bfee4.bin;289508;0x479400;1 Blob_60c630_74f8b4.bin;1323652;0x60c630;1 Blob_754bd0_75e6a8.bin;39640;0x754bd0;1 Blob_75fae4_75fd64.bin;640;0x75fae4;1 Blob_7602d4_7603f0.bin;284;0x7602d4;1 -Blob_760458_760aa0.bin;1608;0x760458;1 Blob_760d38_7f7734.bin;616956;0x760d38;1 diff --git a/include/constants/game_state.h b/include/constants/game_state.h index af57fc6a..d1f7c16b 100644 --- a/include/constants/game_state.h +++ b/include/constants/game_state.h @@ -1,3 +1,6 @@ +#ifndef GAME_STATE_CONSTANTS_H +#define GAME_STATE_CONSTANTS_H + #define PAUSE_SCREEN_NONE 0 #define PAUSE_SCREEN_UNKNOWN_1 1 #define PAUSE_SCREEN_PAUSE_OR_CUTSCENE 2 @@ -15,15 +18,18 @@ #define DIFF_NORMAL 1 #define DIFF_HARD 2 -#define LANGUAGE_JAPANESE 0 -#define LANGUAGE_HIRAGANA 1 -#define LANGUAGE_ENGLISH 2 -#define LANGUAGE_GERMAN 3 -#define LANGUAGE_FRENCH 4 -#define LANGUAGE_ITALIAN 5 -#define LANGUAGE_SPANISH 6 +enum Language { + LANGUAGE_JAPANESE, + LANGUAGE_HIRAGANA, + LANGUAGE_ENGLISH, + LANGUAGE_GERMAN, + LANGUAGE_FRENCH, + LANGUAGE_ITALIAN, + LANGUAGE_SPANISH, + + LANGUAGE_END +}; -#define MAX_AMOUNT_OF_LANGUAGES 7 #define GM_SOFTRESET 0 @@ -51,3 +57,5 @@ #define SUB_GAME_MODE_LOADING_ROOM 0x3 #define SUB_GAME_MODE_DYING 0x5 #define SUB_GAME_MODE_FREE_MOVEMENT 0x6 + +#endif /* GAME_STATE_CONSTANTS_H */ diff --git a/include/constants/text.h b/include/constants/text.h index 86a0a2b3..e7ac5b8b 100644 --- a/include/constants/text.h +++ b/include/constants/text.h @@ -1,108 +1,129 @@ -#define STORY_TEXT_PLANET_ZEBES 0 -#define STORY_TEXT_THE_TIMING 1 -#define STORY_TEXT_COULD_I_SURVIVE 2 -#define STORY_TEXT_EMERGENCY 3 -#define STORY_TEXT_EXTERMINATE 4 -#define STORY_TEXT_DEFEAT 5 +#ifndef TEXT_CONSTANTS_H +#define TEXT_CONSTANTS_H -#define MESSAGE_DUMMY 0x0 -#define MESSAGE_ENERGY_TANK_ACQUIRED 0x1 -#define MESSAGE_MISSILE_TANK_ACQUIRED 0x2 -#define MESSAGE_FIRST_MISSILE_TANK 0x3 -#define MESSAGE_SUPER_MISSILE_TANK_ACQUIRED 0x4 -#define MESSAGE_FIRST_SUPER_MISSILE_TANK 0x5 -#define MESSAGE_POWER_BOMB_TANK_ACQUIRED 0x6 -#define MESSAGE_FIRST_POWER_BOMB_TANK 0x7 -#define MESSAGE_LONG_BEAM 0x8 -#define MESSAGE_CHARGE_BEAM 0x9 -#define MESSAGE_ICE_BEAM 0xA -#define MESSAGE_WAVE_BEAM 0xB -#define MESSAGE_UKNOWN_ITEM_PLASMA 0xC -#define MESSAGE_BOMB 0xD -#define MESSAGE_VARIA_SUIT 0xE -#define MESSAGE_UNKNOWN_ITEM_GRAVITY 0xF -#define MESSAGE_MORPH_BALL 0x10 -#define MESSAGE_SPEED_BOOSTER 0x11 -#define MESSAGE_HIGH_JUMP 0x12 -#define MESSAGE_SCREW_ATTACK 0x13 -#define MESSAGE_UNKNOWN_ITEM_SPACE_JUMP 0x14 -#define MESSAGE_POWER_GRIP 0x15 -#define MESSAGE_SAVE_PROMPT 0x16 -#define MESSAGE_SAVE_COMPLETE 0x17 -#define MESSAGE_WEAPON_RESUPPLY_COMPLETE 0x18 -#define MESSAGE_ENERGY_TANK_RECHARGE_COMPLETE 0x19 -#define MESSAGE_WEAPONS_AND_ENERGY_RESTORED 0x1A -#define MESSAGE_BRINSTAR_MAP_ACQUIRED 0x1B -#define MESSAGE_KRAID_MAP_ACQUIRED 0x1C -#define MESSAGE_NORFAIR_MAP_ACQUIRED 0x1D -#define MESSAGE_RIDLEY_MAP_ACQUIRED 0x1E -#define MESSAGE_MOTHER_SHIP_MAP_ACQUIRED 0x1F -#define MESSAGE_FULLY_POWERED_SUIT 0x20 -#define MESSAGE_ZEBES_ESCAPE 0x21 -#define MESSAGE_CHOZODIA_ESCAPE 0x22 -#define MESSAGE_ENEMY_LOCATION_ABNORMAL 0x23 -#define MESSAGE_ACTIVATE_EASY_SLEEP 0x24 -#define MESSAGE_PRESS_SELECT_L_AND_R 0x25 -#define MESSAGE_EASY_SLEEP_PROMPT 0x26 -#define MESSAGE_NONE -1 +enum StoryTextId { + STORY_TEXT_PLANET_ZEBES, + STORY_TEXT_THE_TIMING, + STORY_TEXT_COULD_I_SURVIVE, + STORY_TEXT_EMERGENCY, + STORY_TEXT_EXTERMINATE, + STORY_TEXT_DEFEAT, -#define FILE_SCREEN_TEXT_START_GAME 0 -#define FILE_SCREEN_TEXT_COPY_SOURCE_CHOOSE 1 -#define FILE_SCREEN_TEXT_COPY_DESTINATION_CHOOSE 2 -#define FILE_SCREEN_TEXT_COPY_CONFIRM 3 -#define FILE_SCREEN_TEXT_ERASE_CHOOSE 4 -#define FILE_SCREEN_TEXT_ERASE_CONFIRM 5 -#define FILE_SCREEN_TEXT_FILE_A_CORRUPT_REVERT 6 -#define FILE_SCREEN_TEXT_FILE_B_CORRUPT_REVERT 7 -#define FILE_SCREEN_TEXT_FILE_C_CORRUPT_REVERT 8 -#define FILE_SCREEN_TEXT_FILE_A_CORRUPT_ERASE 9 -#define FILE_SCREEN_TEXT_FILE_B_CORRUPT_ERASE 10 -#define FILE_SCREEN_TEXT_FILE_C_CORRUPT_ERASE 11 -#define FILE_SCREEN_TEXT_ERASE_ALL_REFORMAT 12 -#define FILE_SCREEN_TEXT_ERASE_ALL 13 -#define FILE_SCREEN_TEXT_CONTINUE_NEW 14 -#define FILE_SCREEN_TEXT_CONTINUE_NEW_TIME_ATTACK 15 -#define FILE_SCREEN_TEXT_MESSAGE_OPTION 16 -#define FILE_SCREEN_TEXT_DIFFICULTY 17 -#define FILE_SCREEN_TEXT_DIFFICULTY_HARD 18 -#define FILE_SCREEN_TEXT_ERASE_FILE_CONFIRM 19 -#define FILE_SCREEN_TEXT_LINKING_PLEASE_WAIT 20 -#define FILE_SCREEN_TEXT_UNABLE_TO_DETECT_FUSION 21 -#define FILE_SCREEN_TEXT_LINKING_ERROR 22 -#define FILE_SCREEN_TEXT_TURN_OFF_CONFIRM_LINK 23 -#define FILE_SCREEN_TEXT_DO_NOT_TURN_POWER_OFF 24 -#define FILE_SCREEN_TEXT_DATA_UPLOAD_COMPLETE 25 -#define FILE_SCREEN_TEXT_LINK_COMPLETE 26 -#define FILE_SCREEN_TEXT_BEST_TIME 27 -#define FILE_SCREEN_TEXT_BEST_TIME_100 28 -#define FILE_SCREEN_TEXT_ID_PASSWORD 29 -#define FILE_SCREEN_TEXT_CANT_COPY_TIME_ATTACK 30 -#define FILE_SCREEN_TEXT_LINKING_ERROR_TRY_AGAIN 31 -#define FILE_SCREEN_TEXT_LINKING_ERROR_CHECK_CONNECTION 32 -#define FILE_SCREEN_TEXT_GALLERY_UNLOCK 33 -#define FILE_SCREEN_TEXT_TIME_ATTACK_RECORD_UNLOCK 34 -#define FILE_SCREEN_TEXT_SOUND_TEST_UNLOCK 35 -#define FILE_SCREEN_TEXT_NES_METROID_UNLOCK 36 + STORY_TEXT_END +}; -#define DESCRIPTION_TEXT_LONG_BEAM 0 -#define DESCRIPTION_TEXT_CHARGE_BEAM 1 -#define DESCRIPTION_TEXT_ICE_BEAM 2 -#define DESCRIPTION_TEXT_WAVE_BEAM 3 -#define DESCRIPTION_TEXT_PLASMA_BEAM 4 -#define DESCRIPTION_TEXT_MISSILES 5 -#define DESCRIPTION_TEXT_SUPER_MISSILES 6 -#define DESCRIPTION_TEXT_BOMBS 7 -#define DESCRIPTION_TEXT_POWER_BOMBS 8 -#define DESCRIPTION_TEXT_VARIA_SUIT 9 -#define DESCRIPTION_TEXT_GRAVITY_SUIT 10 -#define DESCRIPTION_TEXT_MORPH_BALL 11 -#define DESCRIPTION_TEXT_POWER_GRIP 12 -#define DESCRIPTION_TEXT_SPEEDBOOSTER 13 -#define DESCRIPTION_TEXT_HIGH_JUMP 14 -#define DESCRIPTION_TEXT_SCREW_ATTACK 15 -#define DESCRIPTION_TEXT_SPACE_JUMP 16 -#define DESCRIPTION_TEXT_UNKNOWN_ITEM 17 -#define DESCRIPTION_TEXT_PISTOL 18 +enum MessageId { + MESSAGE_DUMMY, + MESSAGE_ENERGY_TANK_ACQUIRED, + MESSAGE_MISSILE_TANK_ACQUIRED, + MESSAGE_FIRST_MISSILE_TANK, + MESSAGE_SUPER_MISSILE_TANK_ACQUIRED, + MESSAGE_FIRST_SUPER_MISSILE_TANK, + MESSAGE_POWER_BOMB_TANK_ACQUIRED, + MESSAGE_FIRST_POWER_BOMB_TANK, + MESSAGE_LONG_BEAM, + MESSAGE_CHARGE_BEAM, + MESSAGE_ICE_BEAM, + MESSAGE_WAVE_BEAM, + MESSAGE_UKNOWN_ITEM_PLASMA, + MESSAGE_BOMB, + MESSAGE_VARIA_SUIT, + MESSAGE_UNKNOWN_ITEM_GRAVITY, + MESSAGE_MORPH_BALL, + MESSAGE_SPEED_BOOSTER, + MESSAGE_HIGH_JUMP, + MESSAGE_SCREW_ATTACK, + MESSAGE_UNKNOWN_ITEM_SPACE_JUMP, + MESSAGE_POWER_GRIP, + MESSAGE_SAVE_PROMPT, + MESSAGE_SAVE_COMPLETE, + MESSAGE_WEAPON_RESUPPLY_COMPLETE, + MESSAGE_ENERGY_TANK_RECHARGE_COMPLETE, + MESSAGE_WEAPONS_AND_ENERGY_RESTORED, + MESSAGE_BRINSTAR_MAP_ACQUIRED, + MESSAGE_KRAID_MAP_ACQUIRED, + MESSAGE_NORFAIR_MAP_ACQUIRED, + MESSAGE_RIDLEY_MAP_ACQUIRED, + MESSAGE_MOTHER_SHIP_MAP_ACQUIRED, + MESSAGE_FULLY_POWERED_SUIT, + MESSAGE_ZEBES_ESCAPE, + MESSAGE_CHOZODIA_ESCAPE, + MESSAGE_ENEMY_LOCATION_ABNORMAL, + MESSAGE_ACTIVATE_EASY_SLEEP, + MESSAGE_PRESS_SELECT_L_AND_R, + MESSAGE_EASY_SLEEP_PROMPT, + + MESSAGE_END, + + MESSAGE_NONE = -1, +}; + +enum FileScreenTextId { + FILE_SCREEN_TEXT_START_GAME, + FILE_SCREEN_TEXT_COPY_SOURCE_CHOOSE, + FILE_SCREEN_TEXT_COPY_DESTINATION_CHOOSE, + FILE_SCREEN_TEXT_COPY_CONFIRM, + FILE_SCREEN_TEXT_ERASE_CHOOSE, + FILE_SCREEN_TEXT_ERASE_CONFIRM, + FILE_SCREEN_TEXT_FILE_A_CORRUPT_REVERT, + FILE_SCREEN_TEXT_FILE_B_CORRUPT_REVERT, + FILE_SCREEN_TEXT_FILE_C_CORRUPT_REVERT, + FILE_SCREEN_TEXT_FILE_A_CORRUPT_ERASE, + FILE_SCREEN_TEXT_FILE_B_CORRUPT_ERASE, + FILE_SCREEN_TEXT_FILE_C_CORRUPT_ERASE, + FILE_SCREEN_TEXT_ERASE_ALL_REFORMAT, + FILE_SCREEN_TEXT_ERASE_ALL, + FILE_SCREEN_TEXT_CONTINUE_NEW, + FILE_SCREEN_TEXT_CONTINUE_NEW_TIME_ATTACK, + FILE_SCREEN_TEXT_MESSAGE_OPTION, + FILE_SCREEN_TEXT_DIFFICULTY, + FILE_SCREEN_TEXT_DIFFICULTY_HARD, + FILE_SCREEN_TEXT_ERASE_FILE_CONFIRM, + FILE_SCREEN_TEXT_LINKING_PLEASE_WAIT, + FILE_SCREEN_TEXT_UNABLE_TO_DETECT_FUSION, + FILE_SCREEN_TEXT_LINKING_ERROR, + FILE_SCREEN_TEXT_TURN_OFF_CONFIRM_LINK, + FILE_SCREEN_TEXT_DO_NOT_TURN_POWER_OFF, + FILE_SCREEN_TEXT_DATA_UPLOAD_COMPLETE, + FILE_SCREEN_TEXT_LINK_COMPLETE, + FILE_SCREEN_TEXT_BEST_TIME, + FILE_SCREEN_TEXT_BEST_TIME_100, + FILE_SCREEN_TEXT_ID_PASSWORD, + FILE_SCREEN_TEXT_CANT_COPY_TIME_ATTACK, + FILE_SCREEN_TEXT_LINKING_ERROR_TRY_AGAIN, + FILE_SCREEN_TEXT_LINKING_ERROR_CHECK_CONNECTION, + FILE_SCREEN_TEXT_GALLERY_UNLOCK, + FILE_SCREEN_TEXT_TIME_ATTACK_RECORD_UNLOCK, + FILE_SCREEN_TEXT_SOUND_TEST_UNLOCK, + FILE_SCREEN_TEXT_NES_METROID_UNLOCK, + + FILE_SCREEN_TEXT_END +}; + + +enum DescriptionTextId { + DESCRIPTION_TEXT_LONG_BEAM, + DESCRIPTION_TEXT_CHARGE_BEAM, + DESCRIPTION_TEXT_ICE_BEAM, + DESCRIPTION_TEXT_WAVE_BEAM, + DESCRIPTION_TEXT_PLASMA_BEAM, + DESCRIPTION_TEXT_MISSILES, + DESCRIPTION_TEXT_SUPER_MISSILES, + DESCRIPTION_TEXT_BOMBS, + DESCRIPTION_TEXT_POWER_BOMBS, + DESCRIPTION_TEXT_VARIA_SUIT, + DESCRIPTION_TEXT_GRAVITY_SUIT, + DESCRIPTION_TEXT_MORPH_BALL, + DESCRIPTION_TEXT_POWER_GRIP, + DESCRIPTION_TEXT_SPEEDBOOSTER, + DESCRIPTION_TEXT_HIGH_JUMP, + DESCRIPTION_TEXT_SCREW_ATTACK, + DESCRIPTION_TEXT_SPACE_JUMP, + DESCRIPTION_TEXT_UNKNOWN_ITEM, + DESCRIPTION_TEXT_PISTOL, + + DESCRIPTION_TEXT_END +}; // 0 #define CHAR_SMALL_0 0 @@ -426,3 +447,5 @@ #define TEXT_STATE_ENDED 2 #define TEXT_STATE_UNK_3 3 #define TEXT_STATE_NEW_PAGE 4 + +#endif /* TEXT_CONSTANTS_H */ diff --git a/include/data/menus/game_over_data.h b/include/data/menus/game_over_data.h index 1518e707..d19f3a01 100644 --- a/include/data/menus/game_over_data.h +++ b/include/data/menus/game_over_data.h @@ -15,7 +15,7 @@ extern const u32 sGameOverTextTileTable[116]; extern const u32 sGameOver_454520[160]; extern const struct GameOverDynamicPalette sGameOverDynamicPalette_Empty; -extern const u16 sGameOverSamusHeadXPositions[MAX_AMOUNT_OF_LANGUAGES]; +extern const u16 sGameOverSamusHeadXPositions[LANGUAGE_END]; extern const u16 sGameOverSamusHeadYPositions[2]; extern const u8 sGameOverSamusHeadOamIds[3][3]; diff --git a/include/data/menus/internal_game_over_data.h b/include/data/menus/internal_game_over_data.h index a5c14c7b..4535d210 100644 --- a/include/data/menus/internal_game_over_data.h +++ b/include/data/menus/internal_game_over_data.h @@ -4,7 +4,7 @@ #include "types.h" #include "constants/game_state.h" -extern const u32* const sGameOverTextPromptGfxPointers[MAX_AMOUNT_OF_LANGUAGES]; +extern const u32* const sGameOverTextPromptGfxPointers[LANGUAGE_END]; extern const u8 sGameOverTextPaletteMaxTimers[3]; extern const s8 sGameOver_760b0f[9]; diff --git a/include/data/menus/internal_pause_screen_data.h b/include/data/menus/internal_pause_screen_data.h index a65b1a30..8c093435 100644 --- a/include/data/menus/internal_pause_screen_data.h +++ b/include/data/menus/internal_pause_screen_data.h @@ -10,11 +10,11 @@ extern const struct PauseScreenSubroutineData sMapScreenSubroutineInfo_Empty; -extern const u32* const sMapScreenAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES]; -extern const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES]; -extern const u32* const sMapScreenUnknownItemsNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES]; -extern const u32* const sMapScreenEquipmentNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES]; -extern const u32* const sMapScreenMenuNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES]; +extern const u32* const sMapScreenAreaNamesGfxPointers[LANGUAGE_END]; +extern const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[LANGUAGE_END]; +extern const u32* const sMapScreenUnknownItemsNamesGfxPointers[LANGUAGE_END]; +extern const u32* const sMapScreenEquipmentNamesGfxPointers[LANGUAGE_END]; +extern const u32* const sMapScreenMenuNamesGfxPointers[LANGUAGE_END]; extern u16 sPauseScreenCompletionInfoOamData[6][5]; diff --git a/include/data/text_data.h b/include/data/text_data.h index cb3f0fae..e3ebd45d 100644 --- a/include/data/text_data.h +++ b/include/data/text_data.h @@ -128,18 +128,18 @@ extern const u16 sHiraganaText_Location_ResearchRoom[]; extern const u16 sHiraganaText_Location_MapRoom[]; extern const u16 sHiraganaText_Location_ChozoRuins[]; extern const u16 sHiraganaText_Location_Starship[]; -extern const u16 sHirganaText_Location_Unused7[]; -extern const u16 sHirganaText_Location_Unused8[]; -extern const u16 sHirganaText_Location_Unused9[]; -extern const u16 sHirganaText_Location_Unused10[]; -extern const u16 sHirganaText_Location_Unused11[]; -extern const u16 sHirganaText_Location_Unused12[]; -extern const u16 sHirganaText_Location_Unused13[]; -extern const u16 sHirganaText_Location_Unused14[]; -extern const u16 sHirganaText_Location_Unused15[]; -extern const u16 sHirganaText_Location_Unused16[]; -extern const u16 sHirganaText_Location_Unused17[]; -extern const u16 sHirganaText_Location_Unused18[]; +extern const u16 sHiraganaText_Location_Unused7[]; +extern const u16 sHiraganaText_Location_Unused8[]; +extern const u16 sHiraganaText_Location_Unused9[]; +extern const u16 sHiraganaText_Location_Unused10[]; +extern const u16 sHiraganaText_Location_Unused11[]; +extern const u16 sHiraganaText_Location_Unused12[]; +extern const u16 sHiraganaText_Location_Unused13[]; +extern const u16 sHiraganaText_Location_Unused14[]; +extern const u16 sHiraganaText_Location_Unused15[]; +extern const u16 sHiraganaText_Location_Unused16[]; +extern const u16 sHiraganaText_Location_Unused17[]; +extern const u16 sHiraganaText_Location_Unused18[]; extern const u16 sEnglishText_Message_Dummy[]; extern const u16 sEnglishText_Message_EnergyTankAcquired[]; @@ -208,12 +208,200 @@ extern const u16 sEnglishText_Location_Unused16[]; extern const u16 sEnglishText_Location_Unused17[]; extern const u16 sEnglishText_Location_Unused18[]; -// Temp -extern const u16** const sStoryTextPointers[7]; -extern const u16** const sLocationTextpointers[7]; -extern const u16** const sMessageTextpointers[7]; -extern const u16** const sFileScreenTextPointers[7]; -extern const u16** const sDescriptionTextPointers[7]; +extern const u16 sJapaneseText_Description_LongBeam[]; +extern const u16 sJapaneseText_Description_ChargeBeam[]; +extern const u16 sJapaneseText_Description_IceBeam[]; +extern const u16 sJapaneseText_Description_WaveBeam[]; +extern const u16 sJapaneseText_Description_PlasmaBeam[]; +extern const u16 sJapaneseText_Description_Missiles[]; +extern const u16 sJapaneseText_Description_SuperMissiles[]; +extern const u16 sJapaneseText_Description_Bombs[]; +extern const u16 sJapaneseText_Description_PowerBombs[]; +extern const u16 sJapaneseText_Description_VariaSuit[]; +extern const u16 sJapaneseText_Description_GravitySuit[]; +extern const u16 sJapaneseText_Description_MorphBall[]; +extern const u16 sJapaneseText_Description_PowerGrip[]; +extern const u16 sJapaneseText_Description_Speedbooster[]; +extern const u16 sJapaneseText_Description_HighJump[]; +extern const u16 sJapaneseText_Description_ScrewAttack[]; +extern const u16 sJapaneseText_Description_SpaceJump[]; +extern const u16 sJapaneseText_Description_UnknownItem[]; +extern const u16 sJapaneseText_Description_Pistol[]; + +extern const u16 sJapaneseText_Story_PlanetZebes[]; +extern const u16 sJapaneseText_Story_TheTiming[]; +extern const u16 sJapaneseText_Story_CouldISurvive[]; +extern const u16 sJapaneseText_Story_Emergency[]; +extern const u16 sJapaneseText_Story_Exterminate[]; +extern const u16 sJapaneseText_Story_Defeat[]; + +extern const u16 sJapaneseText_FileScreen_StartGame[]; +extern const u16 sJapaneseText_FileScreen_CopySourceChoose[]; +extern const u16 sJapaneseText_FileScreen_CopyDestinationChoose[]; +extern const u16 sJapaneseText_FileScreen_CopyConfirm[]; +extern const u16 sJapaneseText_FileScreen_EraseChoose[]; +extern const u16 sJapaneseText_FileScreen_EraseConfirm[]; +extern const u16 sJapaneseText_FileScreen_FileACorruptRevert[]; +extern const u16 sJapaneseText_FileScreen_FileBCorruptRevert[]; +extern const u16 sJapaneseText_FileScreen_FileCCorruptRevert[]; +extern const u16 sJapaneseText_FileScreen_FileACorruptErase[]; +extern const u16 sJapaneseText_FileScreen_FileBCorruptErase[]; +extern const u16 sJapaneseText_FileScreen_FileCCorruptErase[]; +extern const u16 sJapaneseText_FileScreen_EraseAllReformat[]; +extern const u16 sJapaneseText_FileScreen_EraseAll[]; +extern const u16 sJapaneseText_FileScreen_ContinueNew[]; +extern const u16 sJapaneseText_FileScreen_ContinueNewTimeAttack[]; +extern const u16 sJapaneseText_FileScreen_MessageOption[]; +extern const u16 sJapaneseText_FileScreen_Difficulty[]; +extern const u16 sJapaneseText_FileScreen_DifficultyHard[]; +extern const u16 sJapaneseText_FileScreen_EraseFileConfirm[]; +extern const u16 sJapaneseText_FileScreen_LinkingPleaseWait[]; +extern const u16 sJapaneseText_FileScreen_UnableToDetectFusion[]; +extern const u16 sJapaneseText_FileScreen_LinkingError[]; +extern const u16 sJapaneseText_FileScreen_TurnOffConfirmLink[]; +extern const u16 sJapaneseText_FileScreen_DoNotTurnPowerOff[]; +extern const u16 sJapaneseText_FileScreen_DataUploadComplete[]; +extern const u16 sJapaneseText_FileScreen_LinkComplete[]; +extern const u16 sJapaneseText_FileScreen_BestTime[]; +extern const u16 sJapaneseText_FileScreen_BestTime100[]; +extern const u16 sJapaneseText_FileScreen_IdPassword[]; +extern const u16 sJapaneseText_FileScreen_CantCopyTimeAttack[]; +extern const u16 sJapaneseText_FileScreen_LinkingErrorTryAgain[]; +extern const u16 sJapaneseText_FileScreen_LinkingErrorCheckConnection[]; +extern const u16 sJapaneseText_FileScreen_GalleryUnlock[]; +extern const u16 sJapaneseText_FileScreen_TimeAttackRecordUnlock[]; +extern const u16 sJapaneseText_FileScreen_SoundTestUnlock[]; +extern const u16 sJapaneseText_FileScreen_NesMetroidUnlock[]; + +extern const u16 sHiraganaText_Description_LongBeam[]; +extern const u16 sHiraganaText_Description_ChargeBeam[]; +extern const u16 sHiraganaText_Description_IceBeam[]; +extern const u16 sHiraganaText_Description_WaveBeam[]; +extern const u16 sHiraganaText_Description_PlasmaBeam[]; +extern const u16 sHiraganaText_Description_Missiles[]; +extern const u16 sHiraganaText_Description_SuperMissiles[]; +extern const u16 sHiraganaText_Description_Bombs[]; +extern const u16 sHiraganaText_Description_PowerBombs[]; +extern const u16 sHiraganaText_Description_VariaSuit[]; +extern const u16 sHiraganaText_Description_GravitySuit[]; +extern const u16 sHiraganaText_Description_MorphBall[]; +extern const u16 sHiraganaText_Description_PowerGrip[]; +extern const u16 sHiraganaText_Description_Speedbooster[]; +extern const u16 sHiraganaText_Description_HighJump[]; +extern const u16 sHiraganaText_Description_ScrewAttack[]; +extern const u16 sHiraganaText_Description_SpaceJump[]; +extern const u16 sHiraganaText_Description_UnknownItem[]; +extern const u16 sHiraganaText_Description_Pistol[]; + +extern const u16 sHiraganaText_Story_PlanetZebes[]; +extern const u16 sHiraganaText_Story_TheTiming[]; +extern const u16 sHiraganaText_Story_CouldISurvive[]; +extern const u16 sHiraganaText_Story_Emergency[]; +extern const u16 sHiraganaText_Story_Exterminate[]; +extern const u16 sHiraganaText_Story_Defeat[]; + +extern const u16 sHiraganaText_FileScreen_StartGame[]; +extern const u16 sHiraganaText_FileScreen_CopySourceChoose[]; +extern const u16 sHiraganaText_FileScreen_CopyDestinationChoose[]; +extern const u16 sHiraganaText_FileScreen_CopyConfirm[]; +extern const u16 sHiraganaText_FileScreen_EraseChoose[]; +extern const u16 sHiraganaText_FileScreen_EraseConfirm[]; +extern const u16 sHiraganaText_FileScreen_FileACorruptRevert[]; +extern const u16 sHiraganaText_FileScreen_FileBCorruptRevert[]; +extern const u16 sHiraganaText_FileScreen_FileCCorruptRevert[]; +extern const u16 sHiraganaText_FileScreen_FileACorruptErase[]; +extern const u16 sHiraganaText_FileScreen_FileBCorruptErase[]; +extern const u16 sHiraganaText_FileScreen_FileCCorruptErase[]; +extern const u16 sHiraganaText_FileScreen_EraseAllReformat[]; +extern const u16 sHiraganaText_FileScreen_EraseAll[]; +extern const u16 sHiraganaText_FileScreen_ContinueNew[]; +extern const u16 sHiraganaText_FileScreen_ContinueNewTimeAttack[]; +extern const u16 sHiraganaText_FileScreen_MessageOption[]; +extern const u16 sHiraganaText_FileScreen_Difficulty[]; +extern const u16 sHiraganaText_FileScreen_DifficultyHard[]; +extern const u16 sHiraganaText_FileScreen_EraseFileConfirm[]; +extern const u16 sHiraganaText_FileScreen_LinkingPleaseWait[]; +extern const u16 sHiraganaText_FileScreen_UnableToDetectFusion[]; +extern const u16 sHiraganaText_FileScreen_LinkingError[]; +extern const u16 sHiraganaText_FileScreen_TurnOffConfirmLink[]; +extern const u16 sHiraganaText_FileScreen_DoNotTurnPowerOff[]; +extern const u16 sHiraganaText_FileScreen_DataUploadComplete[]; +extern const u16 sHiraganaText_FileScreen_LinkComplete[]; +extern const u16 sHiraganaText_FileScreen_BestTime[]; +extern const u16 sHiraganaText_FileScreen_BestTime100[]; +extern const u16 sHiraganaText_FileScreen_IdPassword[]; +extern const u16 sHiraganaText_FileScreen_CantCopyTimeAttack[]; +extern const u16 sHiraganaText_FileScreen_LinkingErrorTryAgain[]; +extern const u16 sHiraganaText_FileScreen_LinkingErrorCheckConnection[]; +extern const u16 sHiraganaText_FileScreen_GalleryUnlock[]; +extern const u16 sHiraganaText_FileScreen_TimeAttackRecordUnlock[]; +extern const u16 sHiraganaText_FileScreen_SoundTestUnlock[]; +extern const u16 sHiraganaText_FileScreen_NesMetroidUnlock[]; + +extern const u16 sEnglishText_Description_LongBeam[]; +extern const u16 sEnglishText_Description_ChargeBeam[]; +extern const u16 sEnglishText_Description_IceBeam[]; +extern const u16 sEnglishText_Description_WaveBeam[]; +extern const u16 sEnglishText_Description_PlasmaBeam[]; +extern const u16 sEnglishText_Description_Missiles[]; +extern const u16 sEnglishText_Description_SuperMissiles[]; +extern const u16 sEnglishText_Description_Bombs[]; +extern const u16 sEnglishText_Description_PowerBombs[]; +extern const u16 sEnglishText_Description_VariaSuit[]; +extern const u16 sEnglishText_Description_GravitySuit[]; +extern const u16 sEnglishText_Description_MorphBall[]; +extern const u16 sEnglishText_Description_PowerGrip[]; +extern const u16 sEnglishText_Description_Speedbooster[]; +extern const u16 sEnglishText_Description_HighJump[]; +extern const u16 sEnglishText_Description_ScrewAttack[]; +extern const u16 sEnglishText_Description_SpaceJump[]; +extern const u16 sEnglishText_Description_UnknownItem[]; +extern const u16 sEnglishText_Description_Pistol[]; + +extern const u16 sEnglishText_Story_PlanetZebes[]; +extern const u16 sEnglishText_Story_TheTiming[]; +extern const u16 sEnglishText_Story_CouldISurvive[]; +extern const u16 sEnglishText_Story_Emergency[]; +extern const u16 sEnglishText_Story_Exterminate[]; +extern const u16 sEnglishText_Story_Defeat[]; + +extern const u16 sEnglishText_FileScreen_StartGame[]; +extern const u16 sEnglishText_FileScreen_CopySourceChoose[]; +extern const u16 sEnglishText_FileScreen_CopyDestinationChoose[]; +extern const u16 sEnglishText_FileScreen_CopyConfirm[]; +extern const u16 sEnglishText_FileScreen_EraseChoose[]; +extern const u16 sEnglishText_FileScreen_EraseConfirm[]; +extern const u16 sEnglishText_FileScreen_FileACorruptRevert[]; +extern const u16 sEnglishText_FileScreen_FileBCorruptRevert[]; +extern const u16 sEnglishText_FileScreen_FileCCorruptRevert[]; +extern const u16 sEnglishText_FileScreen_FileACorruptErase[]; +extern const u16 sEnglishText_FileScreen_FileBCorruptErase[]; +extern const u16 sEnglishText_FileScreen_FileCCorruptErase[]; +extern const u16 sEnglishText_FileScreen_EraseAllReformat[]; +extern const u16 sEnglishText_FileScreen_EraseAll[]; +extern const u16 sEnglishText_FileScreen_ContinueNew[]; +extern const u16 sEnglishText_FileScreen_ContinueNewTimeAttack[]; +extern const u16 sEnglishText_FileScreen_MessageOption[]; +extern const u16 sEnglishText_FileScreen_Difficulty[]; +extern const u16 sEnglishText_FileScreen_DifficultyHard[]; +extern const u16 sEnglishText_FileScreen_EraseFileConfirm[]; +extern const u16 sEnglishText_FileScreen_LinkingPleaseWait[]; +extern const u16 sEnglishText_FileScreen_UnableToDetectFusion[]; +extern const u16 sEnglishText_FileScreen_LinkingError[]; +extern const u16 sEnglishText_FileScreen_TurnOffConfirmLink[]; +extern const u16 sEnglishText_FileScreen_DoNotTurnPowerOff[]; +extern const u16 sEnglishText_FileScreen_DataUploadComplete[]; +extern const u16 sEnglishText_FileScreen_LinkComplete[]; +extern const u16 sEnglishText_FileScreen_BestTime[]; +extern const u16 sEnglishText_FileScreen_BestTime100[]; +extern const u16 sEnglishText_FileScreen_IdPassword[]; +extern const u16 sEnglishText_FileScreen_CantCopyTimeAttack[]; +extern const u16 sEnglishText_FileScreen_LinkingErrorTryAgain[]; +extern const u16 sEnglishText_FileScreen_LinkingErrorCheckConnection[]; +extern const u16 sEnglishText_FileScreen_GalleryUnlock[]; +extern const u16 sEnglishText_FileScreen_TimeAttackRecordUnlock[]; +extern const u16 sEnglishText_FileScreen_SoundTestUnlock[]; +extern const u16 sEnglishText_FileScreen_NesMetroidUnlock[]; extern u32 sArray_7602f0[9]; extern u32 sArray_760314[9]; diff --git a/include/data/text_pointers.h b/include/data/text_pointers.h new file mode 100644 index 00000000..15c47d10 --- /dev/null +++ b/include/data/text_pointers.h @@ -0,0 +1,40 @@ +#ifndef TEXT_POINTERS_DATA_H +#define TEXT_POINTERS_DATA_H + +#include "types.h" +#include "location_text.h" + +#include "constants/game_state.h" +#include "constants/text.h" + +extern const u16* const sJapaneseTextPointers_Message[MESSAGE_END]; +extern const u16* const sJapaneseTextPointers_Location[LT_END]; + +extern const u16* const sHiraganaTextPointers_Message[MESSAGE_END]; +extern const u16* const sHiraganaTextPointers_Location[LT_END]; + +extern const u16* const sEnglishTextPointers_Message[MESSAGE_END]; +extern const u16* const sEnglishTextPointers_Location[LT_END]; + +extern const u16* const * const sLocationTextPointers[LANGUAGE_END]; +extern const u16* const * const sMessageTextPointers[LANGUAGE_END]; +extern const u16* const * const sFileScreenTextPointers[LANGUAGE_END]; + +extern const u16* const sJapaneseTextPointers_Description[DESCRIPTION_TEXT_END]; +extern const u16* const sJapaneseTextPointers_Story[STORY_TEXT_END]; +extern const u16* const sJapaneseTextPointers_FileScreen[FILE_SCREEN_TEXT_END]; + +extern const u16* const sHiraganaTextPointers_Description[DESCRIPTION_TEXT_END]; +extern const u16* const sHiraganaTextPointers_Story[STORY_TEXT_END]; +extern const u16* const sHiraganaTextPointers_FileScreen[FILE_SCREEN_TEXT_END]; + +extern const u16* const sEnglishTextPointers_Description[DESCRIPTION_TEXT_END]; +extern const u16* const sEnglishTextPointers_Story[STORY_TEXT_END]; +extern const u16* const sEnglishTextPointers_FileScreen[FILE_SCREEN_TEXT_END]; + + +extern const u16** const sStoryTextPointers[LANGUAGE_END]; +extern const u16** const sDescriptionTextPointers[LANGUAGE_END]; + + +#endif /* TEXT_POINTERS_DATA_H */ diff --git a/include/location_text.h b/include/location_text.h index bf7cf9ee..266349c8 100644 --- a/include/location_text.h +++ b/include/location_text.h @@ -8,21 +8,39 @@ // Defines -#define LT_BRINSTAR 0x0 -#define LT_KRAID 0x1 -#define LT_NORFAIR 0x2 -#define LT_RIDLEY 0x3 -#define LT_TOURIAN 0x4 -#define LT_CRATERIA 0x5 -#define LT_CHOZODIA 0x6 -#define LT_MOTHERSHIP 0x7 -#define LT_PLANET_ZEBES 0x8 -#define LT_SAVE_ROOM 0x9 -#define LT_RESEARCH_ROOM 0xA -#define LT_MAP_ROOM 0xB -#define LT_CHOZO_RUINS 0xC -#define LT_STARSHIP 0xD -#define LT_INVALID 0xFF +enum LocationTextId { + LT_BRINSTAR, + LT_KRAID, + LT_NORFAIR, + LT_RIDLEY, + LT_TOURIAN, + LT_CRATERIA, + LT_CHOZODIA, + LT_MOTHERSHIP, + LT_PLANET_ZEBES, + LT_SAVE_ROOM, + LT_RESEARCH_ROOM, + LT_MAP_ROOM, + LT_CHOZO_RUINS, + LT_STARSHIP, + + LT_UNUSED_7, + LT_UNUSED_8, + LT_UNUSED_9, + LT_UNUSED_10, + LT_UNUSED_11, + LT_UNUSED_12, + LT_UNUSED_13, + LT_UNUSED_14, + LT_UNUSED_15, + LT_UNUSED_16, + LT_UNUSED_17, + LT_UNUSED_18, + + LT_END, + + LT_INVALID = UCHAR_MAX +}; // Functions diff --git a/linker.ld b/linker.ld index 8c84f389..55ae68a6 100644 --- a/linker.ld +++ b/linker.ld @@ -695,7 +695,6 @@ SECTIONS { src/data/save_file_data.o(.rodata); src/data/menus/erase_sram_data.o(.rodata); src/data/text_data.o(.rodata); - /* 415460-446d68 */ src/data/menus/title_screen_data.o(.rodata); src/data/menus/game_over_data.o(.rodata); src/data/menus/file_select_data.o(.rodata); @@ -734,6 +733,7 @@ SECTIONS { src/data/menus/internal_pause_screen_sub_menus_data.o(.rodata); src/data/internal_save_file_data.o(.rodata); src/data/menus/internal_erase_sram_data.o(.rodata) + src/data/text_pointers.o(.rodata); /* 760458-760aa0 */ src/data/menus/internal_title_screen_data.o(.rodata) src/data/menus/internal_game_over_data.o(.rodata) diff --git a/src/data/menus/game_over_data.c b/src/data/menus/game_over_data.c index 91ea54a0..4e702d88 100644 --- a/src/data/menus/game_over_data.c +++ b/src/data/menus/game_over_data.c @@ -21,7 +21,7 @@ const struct GameOverDynamicPalette sGameOverDynamicPalette_Empty = { .unk_13 = 0 }; -const u16 sGameOverSamusHeadXPositions[MAX_AMOUNT_OF_LANGUAGES] = { +const u16 sGameOverSamusHeadXPositions[LANGUAGE_END] = { [LANGUAGE_JAPANESE] = BLOCK_SIZE * 3 + 8, [LANGUAGE_HIRAGANA] = BLOCK_SIZE * 3 + 8, [LANGUAGE_ENGLISH] = BLOCK_SIZE * 3 + 8, diff --git a/src/data/menus/internal_erase_sram_data.c b/src/data/menus/internal_erase_sram_data.c index e879545e..b183ae00 100644 --- a/src/data/menus/internal_erase_sram_data.c +++ b/src/data/menus/internal_erase_sram_data.c @@ -33,5 +33,3 @@ const u32* const sEraseSramTextGfxPointers[7][2] = { sEraseSramMenuConfirmEnglishGfx }, }; - -const u8 sTempArray_760458[0x648] = INCBIN_U8("data/Blob_760458_760aa0.bin"); diff --git a/src/data/menus/internal_game_over_data.c b/src/data/menus/internal_game_over_data.c index fc2694f6..be0b147d 100644 --- a/src/data/menus/internal_game_over_data.c +++ b/src/data/menus/internal_game_over_data.c @@ -2,7 +2,7 @@ #include "data/menus/game_over_data.h" #include "macros.h" -const u32* const sGameOverTextPromptGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = { +const u32* const sGameOverTextPromptGfxPointers[LANGUAGE_END] = { [LANGUAGE_JAPANESE] = sGameOverTextPromptEnglishGfx, [LANGUAGE_HIRAGANA] = sGameOverTextPromptHiragnaGfx, [LANGUAGE_ENGLISH] = sGameOverTextPromptEnglishGfx, diff --git a/src/data/menus/internal_pause_screen_data.c b/src/data/menus/internal_pause_screen_data.c index 3478d011..eedaa232 100644 --- a/src/data/menus/internal_pause_screen_data.c +++ b/src/data/menus/internal_pause_screen_data.c @@ -16,7 +16,7 @@ const struct PauseScreenSubroutineData sMapScreenSubroutineInfo_Empty = { .unk_A = 0 }; -const u32* const sMapScreenAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = { +const u32* const sMapScreenAreaNamesGfxPointers[LANGUAGE_END] = { [LANGUAGE_JAPANESE] = sMapScreenAreaNamesEnglishGfx, [LANGUAGE_HIRAGANA] = sMapScreenAreaNamesHiraganaGfx, [LANGUAGE_ENGLISH] = sMapScreenAreaNamesEnglishGfx, @@ -26,7 +26,7 @@ const u32* const sMapScreenAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = { [LANGUAGE_SPANISH] = sMapScreenAreaNamesEnglishGfx }; -const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = { +const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[LANGUAGE_END] = { [LANGUAGE_JAPANESE] = sMapScreenChozoStatueAreaNamesEnglishGfx, [LANGUAGE_HIRAGANA] = sMapScreenChozoStatueAreaNamesHiraganaGfx, [LANGUAGE_ENGLISH] = sMapScreenChozoStatueAreaNamesEnglishGfx, @@ -36,7 +36,7 @@ const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAG [LANGUAGE_SPANISH] = sMapScreenChozoStatueAreaNamesEnglishGfx }; -const u32* const sMapScreenUnknownItemsNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = { +const u32* const sMapScreenUnknownItemsNamesGfxPointers[LANGUAGE_END] = { [LANGUAGE_JAPANESE] = sMapScreenUnknownItemsNamesJapaneseGfx, [LANGUAGE_HIRAGANA] = sMapScreenUnknownItemsNamesHiraganaGfx, [LANGUAGE_ENGLISH] = sMapScreenUnknownItemsNamesEnglishGfx, @@ -46,7 +46,7 @@ const u32* const sMapScreenUnknownItemsNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] [LANGUAGE_SPANISH] = sMapScreenUnknownItemsNamesEnglishGfx }; -const u32* const sMapScreenEquipmentNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = { +const u32* const sMapScreenEquipmentNamesGfxPointers[LANGUAGE_END] = { [LANGUAGE_JAPANESE] = sEquipmentNamesJapaneseGfx, [LANGUAGE_HIRAGANA] = sEquipmentNamesHiraganaGfx, [LANGUAGE_ENGLISH] = sEquipmentNamesEnglishGfx, @@ -56,7 +56,7 @@ const u32* const sMapScreenEquipmentNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = [LANGUAGE_SPANISH] = sEquipmentNamesEnglishGfx }; -const u32* const sMapScreenMenuNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = { +const u32* const sMapScreenMenuNamesGfxPointers[LANGUAGE_END] = { [LANGUAGE_JAPANESE] = sMenuNamesJapaneseGfx, [LANGUAGE_HIRAGANA] = sMenuNamesHiraganaGfx, [LANGUAGE_ENGLISH] = sMenuNamesEnglishGfx, diff --git a/src/data/text_data.c b/src/data/text_data.c index 47702d8d..65113e07 100644 --- a/src/data/text_data.c +++ b/src/data/text_data.c @@ -126,96 +126,295 @@ const u16 sHiraganaText_Location_ResearchRoom[] = INCTEXT("{WIDTH(78)}リチャ const u16 sHiraganaText_Location_MapRoom[] = INCTEXT("{WIDTH(86)}マップルーム"); const u16 sHiraganaText_Location_ChozoRuins[] = INCTEXT("{WIDTH(78)}ちょうじんいせき"); const u16 sHiraganaText_Location_Starship[] = INCTEXT("{WIDTH(86)}スターシップ"); -const u16 sHirganaText_Location_Unused7[] = INCTEXT("{WIDTH(98)}空き7"); -const u16 sHirganaText_Location_Unused8[] = INCTEXT("{WIDTH(97)}空き{NUMBER_8_JP}"); -const u16 sHirganaText_Location_Unused9[] = INCTEXT("{WIDTH(97)}空き{NUMBER_9_JP}"); -const u16 sHirganaText_Location_Unused10[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_0_JP}"); -const u16 sHirganaText_Location_Unused11[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_1_JP}"); -const u16 sHirganaText_Location_Unused12[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_2_JP}"); -const u16 sHirganaText_Location_Unused13[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_3_JP}"); -const u16 sHirganaText_Location_Unused14[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_4_JP}"); -const u16 sHirganaText_Location_Unused15[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_5_JP}"); -const u16 sHirganaText_Location_Unused16[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_6_JP}"); -const u16 sHirganaText_Location_Unused17[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_7_JP}"); -const u16 sHirganaText_Location_Unused18[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_8_JP}"); +const u16 sHiraganaText_Location_Unused7[] = INCTEXT("{WIDTH(98)}空き7"); +const u16 sHiraganaText_Location_Unused8[] = INCTEXT("{WIDTH(97)}空き{NUMBER_8_JP}"); +const u16 sHiraganaText_Location_Unused9[] = INCTEXT("{WIDTH(97)}空き{NUMBER_9_JP}"); +const u16 sHiraganaText_Location_Unused10[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_0_JP}"); +const u16 sHiraganaText_Location_Unused11[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_1_JP}"); +const u16 sHiraganaText_Location_Unused12[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_2_JP}"); +const u16 sHiraganaText_Location_Unused13[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_3_JP}"); +const u16 sHiraganaText_Location_Unused14[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_4_JP}"); +const u16 sHiraganaText_Location_Unused15[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_5_JP}"); +const u16 sHiraganaText_Location_Unused16[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_6_JP}"); +const u16 sHiraganaText_Location_Unused17[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_7_JP}"); +const u16 sHiraganaText_Location_Unused18[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_8_JP}"); -static const u8 sTempArray_442560[0x4808] = INCBIN_U8("data/Blob_442560_446d68.bin"); +const u16 sEnglishText_Message_Dummy[] = INCTEXT("{WIDTH(24)}DUMMY MESSAGE (OBJ Cell B1)\n{WIDTH(110)}"); +const u16 sEnglishText_Message_EnergyTankAcquired[] = INCTEXT("{WIDTH(51)}{COLOR(5)}Energy Tank acquired.\n{WIDTH(38)}{COLOR(0)}Energy capacity increased."); +const u16 sEnglishText_Message_MissileTankAcquired[] = INCTEXT("{WIDTH(52)}{COLOR(5)}Missile Tank acquired.\n{WIDTH(40)}{COLOR(0)}Missile capacity increased."); +const u16 sEnglishText_Message_FirstMissileTank[] = INCTEXT("{WIDTH(79)}{COLOR(5)}Missile Tank\n{WIDTH(110)}"); +const u16 sEnglishText_Message_SuperMissileTankAcquired[] = INCTEXT("{WIDTH(34)}{COLOR(5)}Super Missile Tank acquired.\n{WIDTH(22)}{COLOR(0)}Super Missile capacity increased."); +const u16 sEnglishText_Message_FirstSuperMissileTank[] = INCTEXT("{WIDTH(61)}{COLOR(5)}Super Missile Tank\n{WIDTH(110)}"); +const u16 sEnglishText_Message_PowerBombTankAqcuired[] = INCTEXT("{WIDTH(65)}{COLOR(5)}Power Bomb Tank\n{WIDTH(26)}{COLOR(0)}Power Bomb capacity increased."); +const u16 sEnglishText_Message_FirstPowerBombTank[] = INCTEXT("{WIDTH(65)}{COLOR(5)}Power Bomb Tank\n{WIDTH(110)}"); +const u16 sEnglishText_Message_LongBeam[] = INCTEXT("{WIDTH(82)}{COLOR(5)}Long Beam\n{WIDTH(110)}"); +const u16 sEnglishText_Message_ChargeBeam[] = INCTEXT("{WIDTH(76)}{COLOR(5)}Charge Beam\n{WIDTH(110)}"); +const u16 sEnglishText_Message_IceBeam[] = INCTEXT("{WIDTH(86)}{COLOR(5)}Ice Beam\n{WIDTH(110)}"); +const u16 sEnglishText_Message_WaveBeam[] = INCTEXT("{WIDTH(82)}{COLOR(5)}Wave Beam\n{WIDTH(110)}"); +const u16 sEnglishText_Message_UnknownItemPlasma[] = INCTEXT("{WIDTH(74)}{COLOR(5)}Unknown Item\n{WIDTH(110)}"); +const u16 sEnglishText_Message_Bomb[] = INCTEXT("{WIDTH(98)}{COLOR(5)}Bomb\n{WIDTH(110)}"); +const u16 sEnglishText_Message_VariaSuit[] = INCTEXT("{WIDTH(84)}{COLOR(5)}Varia Suit\n{WIDTH(110)}"); +const u16 sEnglishText_Message_UnknownItemGravity[] = INCTEXT("{WIDTH(74)}{COLOR(5)}Unknown Item\n{WIDTH(110)}"); +const u16 sEnglishText_Message_MorphBall[] = INCTEXT("{WIDTH(82)}{COLOR(5)}Morph Ball\n{WIDTH(110)}"); +const u16 sEnglishText_Message_SpeedBooster[] = INCTEXT("{WIDTH(71)}{COLOR(5)}Speed Booster\n{WIDTH(110)}"); +const u16 sEnglishText_Message_HighJump[] = INCTEXT("{WIDTH(89)}{COLOR(5)}Hi-Jump\n{WIDTH(110)}"); +const u16 sEnglishText_Message_ScrewAttack[] = INCTEXT("{WIDTH(75)}{COLOR(5)}Screw Attack\n{WIDTH(110)}"); +const u16 sEnglishText_Message_UnknownItemSpaceJump[] = INCTEXT("{WIDTH(74)}{COLOR(5)}Unknown Item\n{WIDTH(110)}"); +const u16 sEnglishText_Message_PowerGrip[] = INCTEXT("{WIDTH(82)}{COLOR(5)}Power Grip\n{WIDTH(110)}"); +const u16 sEnglishText_Message_SavePrompt[] = INCTEXT("{WIDTH(94)}Save?\n{WIDTH(94)}{YES}Yes{NO}No"); +const u16 sEnglishText_Message_SaveComplete[] = INCTEXT("{WIDTH(72)}Save Complete\n{WIDTH(110)}"); +const u16 sEnglishText_Message_WeaponRessuplyComplete[] = INCTEXT("{WIDTH(68)}Weapons system\n{WIDTH(61)}resupply complete."); +const u16 sEnglishText_Message_EnergyTankRechargeComplete[] = INCTEXT("{WIDTH(78)}Energy Tank\n{WIDTH(60)}recharge complete."); +const u16 sEnglishText_Message_WeaponsAndEnergyRestored[] = INCTEXT("{WIDTH(56)}Weapons and energy\n{WIDTH(71)}fully restored."); +const u16 sEnglishText_Message_BrinstarMap[] = INCTEXT("{WIDTH(36)}{COLOR(9)}Brinstar{COLOR(0)} {COLOR(5)}map data{COLOR(0)} acquired.\n{WIDTH(110)}"); +const u16 sEnglishText_Message_KraidMap[] = INCTEXT("{WIDTH(44)}{COLOR(8)}Kraid{COLOR(0)} {COLOR(5)}map data{COLOR(0)} acquired.\n{WIDTH(110)}"); +const u16 sEnglishText_Message_NorfairMap[] = INCTEXT("{WIDTH(39)}{COLOR(6)}Norfair{COLOR(0)} {COLOR(5)}map data{COLOR(0)} acquired.\n{WIDTH(110)}"); +const u16 sEnglishText_Message_RidleyMap[] = INCTEXT("{WIDTH(42)}{COLOR(7)}Ridley{COLOR(0)} {COLOR(5)}map data{COLOR(0)} acquired.\n{WIDTH(110)}"); +const u16 sEnglishText_Message_MotherShipMap[] = INCTEXT("{WIDTH(26)}{COLOR(10)}Mother Ship{COLOR(0)} {COLOR(5)}map data{COLOR(0)} acquired.\n{WIDTH(110)}"); +const u16 sEnglishText_Message_FullyPoweredSuit[] = INCTEXT("{WIDTH(22)}You got your {COLOR(5)}fully powered suit{COLOR(0)}.\n{WIDTH(110)}"); +const u16 sEnglishText_Message_ZebesEscape[] = INCTEXT("{WIDTH(15)}Self-destruct mechanism activated!\n{WIDTH(53)}Evacuate immediately!"); +const u16 sEnglishText_Message_ChozodiaEscape[] = INCTEXT("{WIDTH(15)}Self-destruct mechanism activated!\n{WIDTH(53)}Evacuate immediately!"); +const u16 sEnglishText_Message_EnemyLocationAbnormal[] = INCTEXT("{WIDTH(44)}Enemy location abnormal.\n{WIDTH(30)}Check message frame position."); +const u16 sEnglishText_Message_ActivateEasySleep[] = INCTEXT("{WIDTH(52)}Activate Easy Sleep?\n{WIDTH(57)}To exit Easy Sleep,"); +const u16 sEnglishText_Message_PressSelectLAndR[] = INCTEXT("{WIDTH(37)}press {Select_button}, {L_button_left}, and {R_button_left}\n{WIDTH(72)}simultaneously."); +const u16 sEnglishText_Message_EasySleepPrompt[] = INCTEXT("{WIDTH(101)}Yes\n{WIDTH(104)}No"); + +const u16 sEnglishText_Location_Brinstar[] = INCTEXT("{WIDTH(83)}BRINSTAR"); +const u16 sEnglishText_Location_Kraid[] = INCTEXT("{WIDTH(93)}KRAID"); +const u16 sEnglishText_Location_Norfair[] = INCTEXT("{WIDTH(86)}NORFAIR"); +const u16 sEnglishText_Location_Ridley[] = INCTEXT("{WIDTH(90)}RIDLEY"); +const u16 sEnglishText_Location_Tourian[] = INCTEXT("{WIDTH(86)}TOURIAN"); +const u16 sEnglishText_Location_Crateria[] = INCTEXT("{WIDTH(83)}CRATERIA"); +const u16 sEnglishText_Location_Chozodia[] = INCTEXT("{WIDTH(82)}CHOZODIA"); +const u16 sEnglishText_Location_Mothership[] = INCTEXT("{WIDTH(29)}SPACE PIRATE MOTHER SHIP"); +const u16 sEnglishText_Location_PlanetZebes[] = INCTEXT("{WIDTH(69)}PLANET ZEBES"); +const u16 sEnglishText_Location_SaveRoom[] = INCTEXT("{WIDTH(78)}SAVE ROOM"); +const u16 sEnglishText_Location_ResearchRoom[] = INCTEXT("{WIDTH(64)}RESEARCH ROOM"); +const u16 sEnglishText_Location_MapRoom[] = INCTEXT("{WIDTH(82)}MAP ROOM"); +const u16 sEnglishText_Location_ChozoRuins[] = INCTEXT("{WIDTH(72)}CHOZO RUINS"); +const u16 sEnglishText_Location_Starship[] = INCTEXT("{WIDTH(83)}STARSHIP"); +const u16 sEnglishText_Location_Unused7[] = INCTEXT("{WIDTH(69)}UNUSED OBJ 7"); +const u16 sEnglishText_Location_Unused8[] = INCTEXT("{WIDTH(69)}UNUSED OBJ 8"); +const u16 sEnglishText_Location_Unused9[] = INCTEXT("{WIDTH(69)}UNUSED OBJ 9"); +const u16 sEnglishText_Location_Unused10[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 10"); +const u16 sEnglishText_Location_Unused11[] = INCTEXT("{WIDTH(68)}UNUSED OBJ 11"); +const u16 sEnglishText_Location_Unused12[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 12"); +const u16 sEnglishText_Location_Unused13[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 13"); +const u16 sEnglishText_Location_Unused14[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 14"); +const u16 sEnglishText_Location_Unused15[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 15"); +const u16 sEnglishText_Location_Unused16[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 16"); +const u16 sEnglishText_Location_Unused17[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 17"); +const u16 sEnglishText_Location_Unused18[] = INCTEXT("{WIDTH(66)}UNUSED OBJ 18"); + +static const u16 sAlign_0 = 0; // File alignment + +const u16 sJapaneseText_Description_LongBeam[] = INCTEXT("射程距離の長いビーム\nビームは{SPACE_JP}{L_button_left}{PLUS_JP}{B_button_left}で{SPACE_JP}ななめに撃つことができる"); +const u16 sJapaneseText_Description_ChargeBeam[] = INCTEXT("<{B_button_left}を押しつづけ{SPACE_JP}パワーをため、はなすと発射>\nチャージアタック……パワーをためた状態で回転ジャンプ"); +const u16 sJapaneseText_Description_IceBeam[] = INCTEXT("敵を凍らせることができるビーム\n凍らせた敵には{SPACE_JP}乗ることができる"); +const u16 sJapaneseText_Description_WaveBeam[] = INCTEXT("波動状のビームで、障害物を貫通する"); +const u16 sJapaneseText_Description_PlasmaBeam[] = INCTEXT("複数の敵を貫くビーム"); +const u16 sJapaneseText_Description_Missiles[] = INCTEXT("<{R_button_left}{PLUS_JP}{B_button_left}で発射>\n{COLOR(6)}レッドゲート{COLOR(0)}を開けることができる"); +const u16 sJapaneseText_Description_SuperMissiles[] = INCTEXT("<{Select_button}でミサイルと切りかえ、{R_button_left}{PLUS_JP}{B_button_left}で発射>\n{COLOR(8)}グリーンゲート{COLOR(0)}を開けることができる"); +const u16 sJapaneseText_Description_Bombs[] = INCTEXT("<ボールになったまま{B_button_left}で設置>"); +const u16 sJapaneseText_Description_PowerBombs[] = INCTEXT("<ボールになり{R_button_left}{PLUS_JP}{B_button_left}で設置>\n{COLOR(5)}イエローゲート{COLOR(0)}を開けることができる"); +const u16 sJapaneseText_Description_VariaSuit[] = INCTEXT("敵からのダメージを軽減する\nまた、{COLOR(5)}有毒液{COLOR(0)}や{COLOR(6)}高温エリア{COLOR(0)}の{COLOR(5)}ダメージを受けない{COLOR(0)}"); +const u16 sJapaneseText_Description_GravitySuit[] = INCTEXT("敵からのダメージを軽減し、{COLOR(5)}水中でも自由に動ける{COLOR(0)}\nまた、{COLOR(5)}溶岩のダメージを受けない{COLOR(0)}"); +const u16 sJapaneseText_Description_MorphBall[] = INCTEXT("<{Down_button_left}を{NUMBER_2_JP}回押す>\nボールになり、せまい通路を通ることができる"); +const u16 sJapaneseText_Description_PowerGrip[] = INCTEXT("足場や壁の{COLOR(5)}カドにつかまる{COLOR(0)}ことができる"); +const u16 sJapaneseText_Description_Speedbooster[] = INCTEXT("走り続けると{COLOR(5)}高速ダッシュ{COLOR(0)}し、{COLOR(5)}特定のブロックを破壊{COLOR(0)}する\n高速ダッシュ中、体当たりすると、敵にダメージを与える"); +const u16 sJapaneseText_Description_HighJump[] = INCTEXT("{COLOR(5)}ジャンプ力がアップ{COLOR(0)}する\nまた、ボールのままでもジャンプができる"); +const u16 sJapaneseText_Description_ScrewAttack[] = INCTEXT("回転ジャンプで体当たりすると、敵にダメージを与える"); +const u16 sJapaneseText_Description_SpaceJump[] = INCTEXT("回転ジャンプ中に再びジャンプできる\n<回転ジャンプの下降中にもう一度{A_button_left}>"); +const u16 sJapaneseText_Description_UnknownItem[] = INCTEXT("{COLOR(6)}解析不能{COLOR(0)}\n現在のスーツに不適合"); +const u16 sJapaneseText_Description_Pistol[] = INCTEXT("自動で{COLOR(5)}パワーが充填される{COLOR(5)}短銃\n{COLOR(5)}パワー充填発射{COLOR(0)}で敵を{COLOR(6)}マヒ{COLOR(0)}させる"); + +const u16 sJapaneseText_Story_PlanetZebes[] = INCTEXT("{SPACE_JP}私が幼い日々を過ごした、第二のふるさと\n{SPACE_JP}「惑星ゼーベス」・・・{SPACE_JP}今や臆の巣くつと化した\n{SPACE_JP}この星への、私のファーストアタックとなった、\n{SPACE_JP}通称「ZERO{SPACE_JP}MISSION」\n{SPACE_JP}その戦いの全てを、今ここに語ろう・・・\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{HYPHEN_JP}{SPACE_JP}サムス・アラン{SPACE_JP}{HYPHEN_JP}"); +const u16 sJapaneseText_Story_TheTiming[] = INCTEXT("最悪のタイミングで、ゼーベスに帰還してきた\nスペースパイレーツに追撃され、\n私は、この無防備な身体のままでの脱出を\n余儀なくされた。{SPACE_JP}その私に残されたものは、\n護身用と呼ぶことさえ、はばかられるような、\nこの一丁の銃だけだ。{SPACE_JP}これだけを頼りに、\n私は今、活路を求めてスペースパイレーツの\nマザーシップへの潜入を、試みようとしている。"); +const u16 sJapaneseText_Story_CouldISurvive[] = INCTEXT("はたして、生きて帰れるのだろうか・・・"); +const u16 sJapaneseText_Story_Emergency[] = INCTEXT("{WIDTH(92)}緊急指令"); +const u16 sJapaneseText_Story_Exterminate[] = INCTEXT("{WIDTH(50)}惑星ゼーベスの「メトロイド」を\n{WIDTH(66)}殲滅せよ。そして・・・"); +const u16 sJapaneseText_Story_Defeat[] = INCTEXT("{WIDTH(25)}機械生命体「マザーブレイン」を破壊せよ。"); + +const u16 sJapaneseText_FileScreen_StartGame[] = INCTEXT("ゲームスタート\nゲームスタート{LEFT_PAREN_JP}通信{RIGHT_PAREN_JP}"); +const u16 sJapaneseText_FileScreen_CopySourceChoose[] = INCTEXT("コピーするデータを\nえらんでください"); +const u16 sJapaneseText_FileScreen_CopyDestinationChoose[] = INCTEXT("どこにコピーしますか?\nコピーさきをえらんでください"); +const u16 sJapaneseText_FileScreen_CopyConfirm[] = INCTEXT("コピーさきにデータがありますが\nよろしいですか?\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}はい{SPACE_JP}{SPACE_JP} {SPACE_JP}いいえ"); +const u16 sJapaneseText_FileScreen_EraseChoose[] = INCTEXT("どのデータを{SPACE_JP}けしますか?"); +const u16 sJapaneseText_FileScreen_EraseConfirm[] = INCTEXT("このデータを\nけしてもよろしいですか?\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}はい{SPACE_JP}{SPACE_JP} {SPACE_JP}いいえ"); +const u16 sJapaneseText_FileScreen_FileACorruptRevert[] = INCTEXT("Aのセーブデータがこわれました。\nすこしまえのデータにもどします。"); +const u16 sJapaneseText_FileScreen_FileBCorruptRevert[] = INCTEXT("Bのセーブデータがこわれました。\nすこしまえのデータにもどします。"); +const u16 sJapaneseText_FileScreen_FileCCorruptRevert[] = INCTEXT("Cのセーブデータがこわれました。\nすこしまえのデータにもどします。"); +const u16 sJapaneseText_FileScreen_FileACorruptErase[] = INCTEXT("Aのセーブデータは{SPACE_JP}かんぜんに\nこわれました。しょうきょします。"); +const u16 sJapaneseText_FileScreen_FileBCorruptErase[] = INCTEXT("Bのセーブデータは{SPACE_JP}かんぜんに\nこわれました。しょうきょします。"); +const u16 sJapaneseText_FileScreen_FileCCorruptErase[] = INCTEXT("Cのセーブデータは{SPACE_JP}かんぜんに\nこわれました。しょうきょします。"); +const u16 sJapaneseText_FileScreen_EraseAllReformat[] = INCTEXT("すべての「サムスデータ」をけし\nしょきじょうたいにもどしますか?"); +const u16 sJapaneseText_FileScreen_EraseAll[] = INCTEXT("すべての「サムスデータ」を\nしょうきょしてもよろしいですか?"); +const u16 sJapaneseText_FileScreen_ContinueNew[] = INCTEXT("つづきから\nはじめから"); +const u16 sJapaneseText_FileScreen_ContinueNewTimeAttack[] = INCTEXT("つづきから\nはじめから\nタイムアタックモードではじめから"); +const u16 sJapaneseText_FileScreen_MessageOption[] = INCTEXT("メッセージは?\n{SPACE_JP}オトナむき (漠字あり)\n{SPACE_JP}コドモむき (ひらがな)"); +const u16 sJapaneseText_FileScreen_Difficulty[] = INCTEXT("ゲームレベル\n{SPACE_JP}EASY{SPACE_JP}{SPACE_JP}{SPACE_JP}[やさしい]\n{SPACE_JP}NORMAL{WIDTH(2)}[ふつう]"); +const u16 sJapaneseText_FileScreen_DifficultyHard[] = INCTEXT("ゲームレベル\n{SPACE_JP}EASY{SPACE_JP}{SPACE_JP}{SPACE_JP}[やさしい]\n{SPACE_JP}NORMAL{WIDTH(2)}[ふつう]\n{SPACE_JP}HARD{SPACE_JP}{SPACE_JP}{WIDTH(5)}[むずかしい]"); +const u16 sJapaneseText_FileScreen_EraseFileConfirm[] = INCTEXT("これまでのセーブデータは{SPACE_JP}きえて\nしまいます。よろしいですか?\n( はきえません)\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}はい いいえ"); +const u16 sJapaneseText_FileScreen_LinkingPleaseWait[] = INCTEXT("つうしんちゅうです。\nしばらくおまちください。"); +const u16 sJapaneseText_FileScreen_UnableToDetectFusion[] = INCTEXT("メトロイドフュージョンの\nカートリッジが\nみつかりませんでした。"); +const u16 sJapaneseText_FileScreen_LinkingError[] = INCTEXT("つうしんエラーです。"); +const u16 sJapaneseText_FileScreen_TurnOffConfirmLink[] = INCTEXT("ほんたいの{SPACE_JP}でんげんをきり、\nつうしんケーブルの{SPACE_JP}せつぞくを\nたしかめて、さいしょから\nやりなおしてください。"); +const u16 sJapaneseText_FileScreen_DoNotTurnPowerOff[] = INCTEXT("でんげんを\nきらないでください。"); +const u16 sJapaneseText_FileScreen_DataUploadComplete[] = INCTEXT("よみこみが{SPACE_JP}しゅうりょう\nしました。"); +const u16 sJapaneseText_FileScreen_LinkComplete[] = INCTEXT("つうしんがおわりました。でんげんをきってください。"); +const u16 sJapaneseText_FileScreen_BestTime[] = INCTEXT("{WIDTH(24)}ベストタイム"); +const u16 sJapaneseText_FileScreen_BestTime100[] = INCTEXT("{WIDTH(10)}100%ベストタイム"); +const u16 sJapaneseText_FileScreen_IdPassword[] = INCTEXT("ID\nパスワード"); +const u16 sJapaneseText_FileScreen_CantCopyTimeAttack[] = INCTEXT("タイムアタックちゅうの{SPACE_JP}データは\nコピーできません"); +const u16 sJapaneseText_FileScreen_LinkingErrorTryAgain[] = INCTEXT("つうしんエラーです。やりなおしてください。"); +const u16 sJapaneseText_FileScreen_LinkingErrorCheckConnection[] = INCTEXT("つうしんエラーです。\nせつぞくがただしくありません。\nせつぞくをかくにんして\nやりなおしてください。"); +const u16 sJapaneseText_FileScreen_GalleryUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「ギャラリー」{COLOR(0)}が\nついかされました。"); +const u16 sJapaneseText_FileScreen_TimeAttackRecordUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「タイムアタックレコード」{COLOR(0)}が\nついかされました。"); +const u16 sJapaneseText_FileScreen_SoundTestUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「サウンドテスト」{COLOR(0)}が\nついかされました。"); +const u16 sJapaneseText_FileScreen_NesMetroidUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「オリジナルメトロイド」{COLOR(0)}が\nついかされました。"); + +static const u16 sAlign_1 = 0; // File alignment + +const u16 sHiraganaText_Description_LongBeam[] = INCTEXT("とおくまでとどくビーム\nビームは{SPACE_JP}{L_button_left}{PLUS_JP}{B_button_left}で{SPACE_JP}ななめにうつことができる"); +const u16 sHiraganaText_Description_ChargeBeam[] = INCTEXT("<{B_button_left}をおしつづけ{SPACE_JP}パワーをため、はなすとはっしゃ>\nチャージアタック……パワーをためたままでかいてんジャンプ"); +const u16 sHiraganaText_Description_IceBeam[] = INCTEXT("てきを、こおらせることができるビーム\nこおらせたてきには{SPACE_JP}のることができる"); +const u16 sHiraganaText_Description_WaveBeam[] = INCTEXT("かべなどを{SPACE_JP}とおりぬけるビーム"); +const u16 sHiraganaText_Description_PlasmaBeam[] = INCTEXT("てきを{SPACE_JP}つきぬけるビーム"); +const u16 sHiraganaText_Description_Missiles[] = INCTEXT("<{R_button_left}{PLUS_JP}{B_button_left}ではっしゃ>\n{COLOR(6)}あかいゲート{COLOR(0)}をあけることができる"); +const u16 sHiraganaText_Description_SuperMissiles[] = INCTEXT("<{Select_button}でミサイルときりかえ、{R_button_left}{PLUS_JP}{B_button_left}ではっしゃ>\n{COLOR(8)}みどりいろのゲート{COLOR(0)}をあけることができる"); +const u16 sHiraganaText_Description_Bombs[] = INCTEXT("<ボールになったまま{B_button_left}でおく>"); +const u16 sHiraganaText_Description_PowerBombs[] = INCTEXT("<ボールになり{R_button_left}{PLUS_JP}{B_button_left}でおく>\n{COLOR(5)}きいろのゲート{COLOR(0)}をあけることができる"); +const u16 sHiraganaText_Description_VariaSuit[] = INCTEXT("ダメージをへらし、{COLOR(6)}あついばしょ{COLOR(0)}でも、へいきになる\nまた、{COLOR(5)}どくのみず{COLOR(0)}にはいっても、だいじょうぶになる"); +const u16 sHiraganaText_Description_GravitySuit[] = INCTEXT("ダメージをへらし、みずのなかなどで、じゆうにうごける\nまた、{COLOR(6)}ようがん{COLOR(0)}にはいっても、だいじょうぶになる"); +const u16 sHiraganaText_Description_MorphBall[] = INCTEXT("<{Down_button_left}を{NUMBER_2_JP}かいおす>\nボールになり、せまいつうろを{SPACE_JP}とおることができる"); +const u16 sHiraganaText_Description_PowerGrip[] = INCTEXT("あしばや、かべの{COLOR(5)}かどにつかまる{COLOR(0)}ことができる"); +const u16 sHiraganaText_Description_Speedbooster[] = INCTEXT("どんどんはしれば、こうそくになり、あるブロックをこわせる\nさいこうそくでたいあたりすると{SPACE_JP}てきにダメージをあたえる"); +const u16 sHiraganaText_Description_HighJump[] = INCTEXT("たかく{SPACE_JP}ジャンプできるようになる\nまた、ボールのままでも{SPACE_JP}ジャンプができる"); +const u16 sHiraganaText_Description_ScrewAttack[] = INCTEXT("かいてんジャンプで、たいあたりすると、\nてきにダメージをあたえる"); +const u16 sHiraganaText_Description_SpaceJump[] = INCTEXT("かいてんジャンプちゅうに{SPACE_JP}ふたたびジャンプできる\n<かいてんジャンプで{SPACE_JP}おちているとき{SPACE_JP}もういちど{A_button_left}>"); +const u16 sHiraganaText_Description_UnknownItem[] = INCTEXT("{COLOR(6)}これがなにか、わかりません{COLOR(0)}\nいまのスーツでは、うごきません"); +const u16 sHiraganaText_Description_Pistol[] = INCTEXT("じどうで{COLOR(5)}パワーがたまる{COLOR(5)}ピストル\n{COLOR(5)}パワーをためてから、うつ{COLOR(0)}と{SPACE_JP}{COLOR(0)}てきが{COLOR(6)}しびれて、すこしとまる{COLOR(0)}"); + +const u16 sHiraganaText_Story_PlanetZebes[] = INCTEXT("ちいさいころの{SPACE_JP}わたしが{SPACE_JP}くらした「わくせいゼーベス」\nいまはもう、とてもおそろしい{SPACE_JP}ほしになってしまった、\nそのゼーベスでの、わたしのさいしょの{SPACE_JP}にんむのことを\nみんなは「ゼロミッション」と、よんでいる。\nそのたたかいのことを、いま、ぜんぶはなそう・・・\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP} {SPACE_JP}{HYPHEN_JP}{SPACE_JP}サムス・アラン{SPACE_JP}{HYPHEN_JP}"); +const u16 sHiraganaText_Story_TheTiming[] = INCTEXT("すごく{SPACE_JP}わるいタイミングで、ゼーベスにかえってきた\nうちゅうかいぞくに{SPACE_JP}おいかけられて、\nわたしは、こんなよわいかっこうで、\nだっしゅつしなければならなくなった。{SPACE_JP}わたしの{SPACE_JP}ぶきは、\nあんまり{SPACE_JP}やくにたちそうもない、いっちょうの\nこのピストルだけだ。{SPACE_JP}これだけをもって、わたしはいま{SPACE_JP}\nかえるほうほうを{SPACE_JP}みつけようと、うちゅうかいぞくの\nおおきなうちゅうせんに{SPACE_JP}はいっていこうとしている。"); +const u16 sHiraganaText_Story_CouldISurvive[] = INCTEXT("はたして、いきてかえれるのだろうか・・・"); +const u16 sHiraganaText_Story_Emergency[] = INCTEXT("{WIDTH(80)}きんきゅうしれい"); +const u16 sHiraganaText_Story_Exterminate[] = INCTEXT("{WIDTH(44)}わくせいゼーベスの「メトロイド」を\n{WIDTH(52)}ぜんぶやっつけろ。そして・・・"); +const u16 sHiraganaText_Story_Defeat[] = INCTEXT("きかいじかけのいきもの「マザーブレイン」を、はかいせよ。"); + +const u16 sHiraganaText_FileScreen_StartGame[] = INCTEXT("ゲームスタート\nゲームスタート{LEFT_PAREN_JP}通信{RIGHT_PAREN_JP}"); +const u16 sHiraganaText_FileScreen_CopySourceChoose[] = INCTEXT("コピーするデータを\nえらんでください"); +const u16 sHiraganaText_FileScreen_CopyDestinationChoose[] = INCTEXT("どこにコピーしますか?\nコピーさきをえらんでください"); +const u16 sHiraganaText_FileScreen_CopyConfirm[] = INCTEXT("コピーさきにデータがありますが\nよろしいですか?\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}はい{SPACE_JP}{SPACE_JP} {SPACE_JP}いいえ"); +const u16 sHiraganaText_FileScreen_EraseChoose[] = INCTEXT("どのデータを{SPACE_JP}けしますか?"); +const u16 sHiraganaText_FileScreen_EraseConfirm[] = INCTEXT("このデータを\nけしてもよろしいですか?\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}はい{SPACE_JP}{SPACE_JP} {SPACE_JP}いいえ"); +const u16 sHiraganaText_FileScreen_FileACorruptRevert[] = INCTEXT("Aのセーブデータがこわれました。\nすこしまえのデータにもどします。"); +const u16 sHiraganaText_FileScreen_FileBCorruptRevert[] = INCTEXT("Bのセーブデータがこわれました。\nすこしまえのデータにもどします。"); +const u16 sHiraganaText_FileScreen_FileCCorruptRevert[] = INCTEXT("Cのセーブデータがこわれました。\nすこしまえのデータにもどします。"); +const u16 sHiraganaText_FileScreen_FileACorruptErase[] = INCTEXT("Aのセーブデータは{SPACE_JP}かんぜんに\nこわれました。しょうきょします。"); +const u16 sHiraganaText_FileScreen_FileBCorruptErase[] = INCTEXT("Bのセーブデータは{SPACE_JP}かんぜんに\nこわれました。しょうきょします。"); +const u16 sHiraganaText_FileScreen_FileCCorruptErase[] = INCTEXT("Cのセーブデータは{SPACE_JP}かんぜんに\nこわれました。しょうきょします。"); +const u16 sHiraganaText_FileScreen_EraseAllReformat[] = INCTEXT("すべての「サムスデータ」をけし\nしょきじょうたいにもどしますか?"); +const u16 sHiraganaText_FileScreen_EraseAll[] = INCTEXT("すべての「サムスデータ」を\nしょうきょしてもよろしいですか?"); +const u16 sHiraganaText_FileScreen_ContinueNew[] = INCTEXT("つづきから\nはじめから"); +const u16 sHiraganaText_FileScreen_ContinueNewTimeAttack[] = INCTEXT("つづきから\nはじめから\nタイムアタックモードではじめから"); +const u16 sHiraganaText_FileScreen_MessageOption[] = INCTEXT("メッセージは?\n{SPACE_JP}オトナむき (漠字あり)\n{SPACE_JP}コドモむき (ひらがな)"); +const u16 sHiraganaText_FileScreen_Difficulty[] = INCTEXT("ゲームレベル\n{SPACE_JP}EASY{SPACE_JP}{SPACE_JP}{SPACE_JP}[やさしい]\n{SPACE_JP}NORMAL{WIDTH(2)}[ふつう]"); +const u16 sHiraganaText_FileScreen_DifficultyHard[] = INCTEXT("ゲームレベル\n{SPACE_JP}EASY{SPACE_JP}{SPACE_JP}{SPACE_JP}[やさしい]\n{SPACE_JP}NORMAL{WIDTH(2)}[ふつう]\n{SPACE_JP}HARD{SPACE_JP}{SPACE_JP}{WIDTH(5)}[むずかしい]"); +const u16 sHiraganaText_FileScreen_EraseFileConfirm[] = INCTEXT("これまでのセーブデータは{SPACE_JP}きえて\nしまいます。よろしいですか?\n( はきえません)\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}はい いいえ"); +const u16 sHiraganaText_FileScreen_LinkingPleaseWait[] = INCTEXT("つうしんちゅうです。\nしばらくおまちください。"); +const u16 sHiraganaText_FileScreen_UnableToDetectFusion[] = INCTEXT("メトロイドフュージョンの\nカートリッジが\nみつかりませんでした。"); +const u16 sHiraganaText_FileScreen_LinkingError[] = INCTEXT("つうしんエラーです"); +const u16 sHiraganaText_FileScreen_TurnOffConfirmLink[] = INCTEXT("ほんたいの{SPACE_JP}でんげんをきり、\nつうしんケーブルの{SPACE_JP}せつぞくを\nたしかめて、さいしょから\nやりなおしてください。"); +const u16 sHiraganaText_FileScreen_DoNotTurnPowerOff[] = INCTEXT("でんげんを\nきらないでください。"); +const u16 sHiraganaText_FileScreen_DataUploadComplete[] = INCTEXT("よみこみが{SPACE_JP}しゅうりょう\nしました。"); +const u16 sHiraganaText_FileScreen_LinkComplete[] = INCTEXT("つうしんがおわりました。でんげんをきってください。"); +const u16 sHiraganaText_FileScreen_BestTime[] = INCTEXT("{WIDTH(24)}ベストタイム"); +const u16 sHiraganaText_FileScreen_BestTime100[] = INCTEXT("{WIDTH(10)}100%ベストタイム"); +const u16 sHiraganaText_FileScreen_IdPassword[] = INCTEXT("ID\nパスワード"); +const u16 sHiraganaText_FileScreen_CantCopyTimeAttack[] = INCTEXT("タイムアタックちゅうの{SPACE_JP}データは\nコピーできません"); +const u16 sHiraganaText_FileScreen_LinkingErrorTryAgain[] = INCTEXT("つうしんエラーです。やりなおしてください。"); +const u16 sHiraganaText_FileScreen_LinkingErrorCheckConnection[] = INCTEXT("つうしんエラーです。\nせつぞくがただしくありません。\nせつぞくをかくにんして\nやりなおしてください。"); +const u16 sHiraganaText_FileScreen_GalleryUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「ギャラリー」{COLOR(0)}が\nついかされました。"); +const u16 sHiraganaText_FileScreen_TimeAttackRecordUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「タイムアタックレコード」{COLOR(0)}が\nついかされました。"); +const u16 sHiraganaText_FileScreen_SoundTestUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「サウンドテスト」{COLOR(0)}が\nついかされました。"); +const u16 sHiraganaText_FileScreen_NesMetroidUnlock[] = INCTEXT("{COLOR(6)}OPTIONS{SPACE_JP}[オプション]{SPACE_JP}{COLOR(0)}に\n{COLOR(5)}「オリジナルメトロイド」{COLOR(0)}が\nついかされました。"); + +const u16 sEnglishText_Description_LongBeam[] = INCTEXT("Fire long-distance shots with this beam.\nPress {L_button_left} + {B_button_left} to fire diagonally."); +const u16 sEnglishText_Description_ChargeBeam[] = INCTEXT("Hold {B_button_left} to charge. Release to fire.\nCharge Attack: Jump with a full charge."); +const u16 sEnglishText_Description_IceBeam[] = INCTEXT("This beam can freeze enemies in place.\nYou can safely stand on frozen enemies."); +const u16 sEnglishText_Description_WaveBeam[] = INCTEXT("This beam, which is made up of energy\nwaves, can pass through solid objects."); +const u16 sEnglishText_Description_PlasmaBeam[] = INCTEXT("This powerful beam can blast through\nmultiple enemies."); +const u16 sEnglishText_Description_Missiles[] = INCTEXT("Press {R_button_left} + {B_button_left} to fire.\nOpens {COLOR(6)}red hatches{COLOR(0)}."); +const u16 sEnglishText_Description_SuperMissiles[] = INCTEXT("Arm with {Select_button}. Fire with {R_button_left} + {B_button_left}.\nOpens {COLOR(8)}green hatches{COLOR(0)}."); +const u16 sEnglishText_Description_Bombs[] = INCTEXT("Press {B_button_left} in Morph Ball form to set."); +const u16 sEnglishText_Description_PowerBombs[] = INCTEXT("Set with {R_button_left} + {B_button_left} in Morph Ball form.\nOpens {COLOR(5)}yellow hatches{COLOR(0)}."); +const u16 sEnglishText_Description_VariaSuit[] = INCTEXT("Decreases damage taken from enemies.\nPrevents damage from acid and heat."); +const u16 sEnglishText_Description_GravitySuit[] = INCTEXT("Reduces damage from foes. Enables free\nmovement in water. Stops lava damage."); +const u16 sEnglishText_Description_MorphBall[] = INCTEXT("Double-tap {Down_button_left} to take ball form and\ngain access to narrow passageways."); +const u16 sEnglishText_Description_PowerGrip[] = INCTEXT("Grab and hang from {COLOR(5)}ledges and corners{COLOR(0)}."); +const u16 sEnglishText_Description_Speedbooster[] = INCTEXT("Run until speed boost begins to break\ncertain blocks and damage enemies."); +const u16 sEnglishText_Description_HighJump[] = INCTEXT("Increases maximum jump height.\nAdds Morph Ball jumping capability."); +const u16 sEnglishText_Description_ScrewAttack[] = INCTEXT("Damage enemies while somersaulting."); +const u16 sEnglishText_Description_SpaceJump[] = INCTEXT("Somersault continually in the air.\nUse {A_button_left} mid-somersault to jump again."); +const u16 sEnglishText_Description_UnknownItem[] = INCTEXT("{COLOR(6)}Analysis inconclusive.{COLOR(0)}\nItem incompatible with current suit."); +const u16 sEnglishText_Description_Pistol[] = INCTEXT("An {COLOR(5)}auto-charging{COLOR(5)} pistol.\n{COLOR(6)}Stun{COLOR(0)} enemies with {COLOR(5)}charged shots{COLOR(0)}."); + +static const u16 sAlign_2 = 0; + +const u16 sEnglishText_Story_PlanetZebes[] = INCTEXT("Planet Zebes... I called this place home\nonce, in peaceful times, long before evil\nhaunted the caverns below. Now, I shall\nfinally tell the tale of my first battle\nhere... My so-called Zero Mission.\n -Samus Aran-"); +const u16 sEnglishText_Story_TheTiming[] = INCTEXT("The timing of my escape couldn't have\nbeen worse. I was attacked by Space\nPirates and left nearly defenseless,\nstripped of my Power Suit. All I had for\nprotection was my rather useless\nemergency pistol. Infiltrating the Space\nPirate Mother Ship so armed may have\nbeen foolish, but I had no choice..."); +const u16 sEnglishText_Story_CouldISurvive[] = INCTEXT("Could I survive long enough to escape?"); +const u16 sEnglishText_Story_Emergency[] = INCTEXT("Emergency Order"); +const u16 sEnglishText_Story_Exterminate[] = INCTEXT("Exterminate all Metroid organisms\non Planet Zebes..."); +const u16 sEnglishText_Story_Defeat[] = INCTEXT("And defeat the mechanical life-form,\nMother Brain."); + +const u16 sEnglishText_FileScreen_StartGame[] = INCTEXT("Start Game\nStart Game (Link)"); +const u16 sEnglishText_FileScreen_CopySourceChoose[] = INCTEXT("Choose a data file\nto copy."); +const u16 sEnglishText_FileScreen_CopyDestinationChoose[] = INCTEXT("Choose a file to copy\nthe data to."); +const u16 sEnglishText_FileScreen_CopyConfirm[] = INCTEXT("OK to copy over\nthis data?\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}Yes{SPACE_JP}{SPACE_JP} {SPACE_JP}No"); +const u16 sEnglishText_FileScreen_EraseChoose[] = INCTEXT("Choose a data file to\nerase."); +const u16 sEnglishText_FileScreen_EraseConfirm[] = INCTEXT("OK to erase this\ndata file?\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}Yes{SPACE_JP}{SPACE_JP} {SPACE_JP}No"); +const u16 sEnglishText_FileScreen_FileACorruptRevert[] = INCTEXT("File A is corrupted.\nReverting to past data."); +const u16 sEnglishText_FileScreen_FileBCorruptRevert[] = INCTEXT("File B is corrupted.\nReverting to past data."); +const u16 sEnglishText_FileScreen_FileCCorruptRevert[] = INCTEXT("File C is corrupted.\nReverting to past data."); +const u16 sEnglishText_FileScreen_FileACorruptErase[] = INCTEXT("File A is corrupted.\nErasing File A..."); +const u16 sEnglishText_FileScreen_FileBCorruptErase[] = INCTEXT("File B is corrupted.\nErasing File B..."); +const u16 sEnglishText_FileScreen_FileCCorruptErase[] = INCTEXT("File C is corrupted.\nErasing File C..."); +const u16 sEnglishText_FileScreen_EraseAllReformat[] = INCTEXT("OK to erase all Samus data\nand reformat save files?"); +const u16 sEnglishText_FileScreen_EraseAll[] = INCTEXT("OK to erase all Samus\nsave data?"); +const u16 sEnglishText_FileScreen_ContinueNew[] = INCTEXT("Continue\nNew"); +const u16 sEnglishText_FileScreen_ContinueNewTimeAttack[] = INCTEXT("Continue\nNew\nNew Time Attack"); +const u16 sEnglishText_FileScreen_MessageOption[] = INCTEXT("Message Options\n Kanji\n Hiragana"); +const u16 sEnglishText_FileScreen_Difficulty[] = INCTEXT("Difficulty Setting\n EASY\n NORMAL"); +const u16 sEnglishText_FileScreen_DifficultyHard[] = INCTEXT("Difficulty Level\n EASY\n NORMAL\n HARD"); +const u16 sEnglishText_FileScreen_EraseFileConfirm[] = INCTEXT("OK to erase all saved\ndata?\n( will not be erased.)\n{SPACE_JP}{SPACE_JP}{SPACE_JP}{SPACE_JP}Yes No"); +const u16 sEnglishText_FileScreen_LinkingPleaseWait[] = INCTEXT("Linking...\nPlease wait a moment."); +const u16 sEnglishText_FileScreen_UnableToDetectFusion[] = INCTEXT("Unable to detect a\nMetroid Fusion\nGame Pak."); +const u16 sEnglishText_FileScreen_LinkingError[] = INCTEXT("Linking error."); +const u16 sEnglishText_FileScreen_TurnOffConfirmLink[] = INCTEXT("Turn the system OFF\nand confirm that the\nGame Link cable is\nproperly connected."); +const u16 sEnglishText_FileScreen_DoNotTurnPowerOff[] = INCTEXT("Do not turn the\nPOWER OFF."); +const u16 sEnglishText_FileScreen_DataUploadComplete[] = INCTEXT("Data upload\ncomplete."); +const u16 sEnglishText_FileScreen_LinkComplete[] = INCTEXT("Link complete. You may turn POWER OFF."); +const u16 sEnglishText_FileScreen_BestTime[] = INCTEXT("{WIDTH(23)}Best Time"); +const u16 sEnglishText_FileScreen_BestTime100[] = INCTEXT("{WIDTH(1)}Best Time (100%)"); +const u16 sEnglishText_FileScreen_IdPassword[] = INCTEXT("ID\nPassword"); +const u16 sEnglishText_FileScreen_CantCopyTimeAttack[] = INCTEXT("You can't copy\nTime Attack data."); +const u16 sEnglishText_FileScreen_LinkingErrorTryAgain[] = INCTEXT("Linking error. Try again."); +const u16 sEnglishText_FileScreen_LinkingErrorCheckConnection[] = INCTEXT("A linking error has\noccurred. Please\ncheck the connection\nand try again."); +const u16 sEnglishText_FileScreen_GalleryUnlock[] = INCTEXT("{COLOR(5)}Gallery{COLOR(0)} has been\nadded to the\n{COLOR(6)}OPTIONS{COLOR(0)} screen."); +const u16 sEnglishText_FileScreen_TimeAttackRecordUnlock[] = INCTEXT("{COLOR(5)}Time Attack Records{COLOR(0)}\nhas been added to\nthe {COLOR(6)}OPTIONS{COLOR(0)} screen."); +const u16 sEnglishText_FileScreen_SoundTestUnlock[] = INCTEXT("{COLOR(5)}Sound Test{COLOR(0)} has\nbeen added to the\n{COLOR(6)}OPTIONS{COLOR(0)} screen."); +const u16 sEnglishText_FileScreen_NesMetroidUnlock[] = INCTEXT("{COLOR(5)}Original Metroid{COLOR(0)} has\nbeen added to the\n{COLOR(6)}OPTIONS{COLOR(0)} screen."); /* -const u16 sEnglishText_Message_Dummy[] = INCTEXT(""); -const u16 sEnglishText_Message_EnergyTankAcquired[] = INCTEXT(""); -const u16 sEnglishText_Message_MissileTankAcquired[] = INCTEXT(""); -const u16 sEnglishText_Message_FirstMissileTank[] = INCTEXT(""); -const u16 sEnglishText_Message_SuperMissileTankAcquired[] = INCTEXT(""); -const u16 sEnglishText_Message_FirstSuperMissileTank[] = INCTEXT(""); -const u16 sEnglishText_Message_PowerBombTankAqcuired[] = INCTEXT(""); -const u16 sEnglishText_Message_FirstPowerBombTank[] = INCTEXT(""); -const u16 sEnglishText_Message_LongBeam[] = INCTEXT(""); -const u16 sEnglishText_Message_ChargeBeam[] = INCTEXT(""); -const u16 sEnglishText_Message_IceBeam[] = INCTEXT(""); -const u16 sEnglishText_Message_WaveBeam[] = INCTEXT(""); -const u16 sEnglishText_Message_UnknownItemPlasma[] = INCTEXT(""); -const u16 sEnglishText_Message_Bomb[] = INCTEXT(""); -const u16 sEnglishText_Message_VariaSuit[] = INCTEXT(""); -const u16 sEnglishText_Message_UnknownItemGravity[] = INCTEXT(""); -const u16 sEnglishText_Message_MorphBall[] = INCTEXT(""); -const u16 sEnglishText_Message_SpeedBooster[] = INCTEXT(""); -const u16 sEnglishText_Message_HighJump[] = INCTEXT(""); -const u16 sEnglishText_Message_ScrewAttack[] = INCTEXT(""); -const u16 sEnglishText_Message_UnknownItemSpaceJump[] = INCTEXT(""); -const u16 sEnglishText_Message_PowerGrip[] = INCTEXT(""); -const u16 sEnglishText_Message_SavePrompt[] = INCTEXT(""); -const u16 sEnglishText_Message_SaveComplete[] = INCTEXT(""); -const u16 sEnglishText_Message_WeaponRessuplyComplete[] = INCTEXT(""); -const u16 sEnglishText_Message_EnergyTankRechargeComplete[] = INCTEXT(""); -const u16 sEnglishText_Message_WeaponsAndEnergyRestored[] = INCTEXT(""); -const u16 sEnglishText_Message_BrinstarMap[] = INCTEXT(""); -const u16 sEnglishText_Message_KraidMap[] = INCTEXT(""); -const u16 sEnglishText_Message_NorfairMap[] = INCTEXT(""); -const u16 sEnglishText_Message_RidleyMap[] = INCTEXT(""); -const u16 sEnglishText_Message_MotherShipMap[] = INCTEXT(""); -const u16 sEnglishText_Message_FullyPoweredSuit[] = INCTEXT(""); -const u16 sEnglishText_Message_ZebesEscape[] = INCTEXT(""); -const u16 sEnglishText_Message_ChozodiaEscape[] = INCTEXT(""); -const u16 sEnglishText_Message_EnemyLocationAbnormal[] = INCTEXT(""); -const u16 sEnglishText_Message_ActivateEasySleep[] = INCTEXT(""); -const u16 sEnglishText_Message_PressSelectLAndR[] = INCTEXT(""); -const u16 sEnglishText_Message_EasySleepPrompt[] = INCTEXT(""); - -const u16 sEnglishText_Location_Brinstar[] = INCTEXT(""); -const u16 sEnglishText_Location_Kraid[] = INCTEXT(""); -const u16 sEnglishText_Location_Norfair[] = INCTEXT(""); -const u16 sEnglishText_Location_Ridley[] = INCTEXT(""); -const u16 sEnglishText_Location_Tourian[] = INCTEXT(""); -const u16 sEnglishText_Location_Crateria[] = INCTEXT(""); -const u16 sEnglishText_Location_Chozodia[] = INCTEXT(""); -const u16 sEnglishText_Location_Mothership[] = INCTEXT(""); -const u16 sEnglishText_Location_PlanetZebes[] = INCTEXT(""); -const u16 sEnglishText_Location_SaveRoom[] = INCTEXT(""); -const u16 sEnglishText_Location_ResearchRoom[] = INCTEXT(""); -const u16 sEnglishText_Location_MapRoom[] = INCTEXT(""); -const u16 sEnglishText_Location_ChozoRuins[] = INCTEXT(""); -const u16 sEnglishText_Location_Starship[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused7[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused8[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused9[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused10[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused11[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused12[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused13[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused14[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused15[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused16[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused17[] = INCTEXT(""); -const u16 sEnglishText_Location_Unused18[] = INCTEXT(""); - const u8 sCharacterWidths[1184] = { 0 }; const struct Message sMessage_Empty = { .textIndex = 0, - .WIDTH = 0, + .width = 0, .timer = 0, .color = 0, .line = 0, @@ -230,7 +429,7 @@ const struct Message sMessage_Empty = { const struct Message sMessageStoryText_Empty = { .textIndex = 0, - .WIDTH = 0, + .width = 0, .timer = 0, .color = 0, .line = 0, @@ -245,7 +444,7 @@ const struct Message sMessageStoryText_Empty = { const struct Message sMessageFileScreen_Empty = { .textIndex = 0, - .WIDTH = 0, + .width = 0, .timer = 0, .color = 0, .line = 0, @@ -260,7 +459,7 @@ const struct Message sMessageFileScreen_Empty = { const struct Message sMessageDescription_Empty = { .textIndex = 0, - .WIDTH = 0, + .width = 0, .timer = 0, .color = 0, .line = 0, diff --git a/src/data/text_pointers.c b/src/data/text_pointers.c new file mode 100644 index 00000000..65ee96d2 --- /dev/null +++ b/src/data/text_pointers.c @@ -0,0 +1,463 @@ +#include "data/text_pointers.h" +#include "data/text_data.h" + +const u16* const sJapaneseTextPointers_Message[MESSAGE_END] = { + [MESSAGE_DUMMY] = sJapaneseText_Message_Dummy, + [MESSAGE_ENERGY_TANK_ACQUIRED] = sJapaneseText_Message_EnergyTankAcquired, + [MESSAGE_MISSILE_TANK_ACQUIRED] = sJapaneseText_Message_MissileTankAcquired, + [MESSAGE_FIRST_MISSILE_TANK] = sJapaneseText_Message_FirstMissileTank, + [MESSAGE_SUPER_MISSILE_TANK_ACQUIRED] = sJapaneseText_Message_SuperMissileTankAcquired, + [MESSAGE_FIRST_SUPER_MISSILE_TANK] = sJapaneseText_Message_FirstSuperMissileTank, + [MESSAGE_POWER_BOMB_TANK_ACQUIRED] = sJapaneseText_Message_PowerBombTankAqcuired, + [MESSAGE_FIRST_POWER_BOMB_TANK] = sJapaneseText_Message_FirstPowerBombTank, + [MESSAGE_LONG_BEAM] = sJapaneseText_Message_LongBeam, + [MESSAGE_CHARGE_BEAM] = sJapaneseText_Message_ChargeBeam, + [MESSAGE_ICE_BEAM] = sJapaneseText_Message_IceBeam, + [MESSAGE_WAVE_BEAM] = sJapaneseText_Message_WaveBeam, + [MESSAGE_UKNOWN_ITEM_PLASMA] = sJapaneseText_Message_UnknownItemPlasma, + [MESSAGE_BOMB] = sJapaneseText_Message_Bomb, + [MESSAGE_VARIA_SUIT] = sJapaneseText_Message_VariaSuit, + [MESSAGE_UNKNOWN_ITEM_GRAVITY] = sJapaneseText_Message_UnknownItemGravity, + [MESSAGE_MORPH_BALL] = sJapaneseText_Message_MorphBall, + [MESSAGE_SPEED_BOOSTER] = sJapaneseText_Message_SpeedBooster, + [MESSAGE_HIGH_JUMP] = sJapaneseText_Message_HighJump, + [MESSAGE_SCREW_ATTACK] = sJapaneseText_Message_ScrewAttack, + [MESSAGE_UNKNOWN_ITEM_SPACE_JUMP] = sJapaneseText_Message_UnknownItemSpaceJump, + [MESSAGE_POWER_GRIP] = sJapaneseText_Message_PowerGrip, + [MESSAGE_SAVE_PROMPT] = sJapaneseText_Message_SavePrompt, + [MESSAGE_SAVE_COMPLETE] = sJapaneseText_Message_SaveComplete, + [MESSAGE_WEAPON_RESUPPLY_COMPLETE] = sJapaneseText_Message_WeaponRessuplyComplete, + [MESSAGE_ENERGY_TANK_RECHARGE_COMPLETE] = sJapaneseText_Message_EnergyTankRechargeComplete, + [MESSAGE_WEAPONS_AND_ENERGY_RESTORED] = sJapaneseText_Message_WeaponsAndEnergyRestored, + [MESSAGE_BRINSTAR_MAP_ACQUIRED] = sJapaneseText_Message_BrinstarMap, + [MESSAGE_KRAID_MAP_ACQUIRED] = sJapaneseText_Message_KraidMap, + [MESSAGE_NORFAIR_MAP_ACQUIRED] = sJapaneseText_Message_NorfairMap, + [MESSAGE_RIDLEY_MAP_ACQUIRED] = sJapaneseText_Message_RidleyMap, + [MESSAGE_MOTHER_SHIP_MAP_ACQUIRED] = sJapaneseText_Message_MotherShipMap, + [MESSAGE_FULLY_POWERED_SUIT] = sJapaneseText_Message_FullyPoweredSuit, + [MESSAGE_ZEBES_ESCAPE] = sJapaneseText_Message_ZebesEscape, + [MESSAGE_CHOZODIA_ESCAPE] = sJapaneseText_Message_ChozodiaEscape, + [MESSAGE_ENEMY_LOCATION_ABNORMAL] = sJapaneseText_Message_EnemyLocationAbnormal, + [MESSAGE_ACTIVATE_EASY_SLEEP] = sJapaneseText_Message_ActivateEasySleep, + [MESSAGE_PRESS_SELECT_L_AND_R] = sJapaneseText_Message_PressSelectLAndR, + [MESSAGE_EASY_SLEEP_PROMPT] = sJapaneseText_Message_EasySleepPrompt +}; + +const u16* const sJapaneseTextPointers_Location[LT_END] = { + [LT_BRINSTAR] = sJapaneseText_Location_Brinstar, + [LT_KRAID] = sJapaneseText_Location_Kraid, + [LT_NORFAIR] = sJapaneseText_Location_Norfair, + [LT_RIDLEY] = sJapaneseText_Location_Ridley, + [LT_TOURIAN] = sJapaneseText_Location_Tourian, + [LT_CRATERIA] = sJapaneseText_Location_Crateria, + [LT_CHOZODIA] = sJapaneseText_Location_Chozodia, + [LT_MOTHERSHIP] = sJapaneseText_Location_Mothership, + [LT_PLANET_ZEBES] = sJapaneseText_Location_PlanetZebes, + [LT_SAVE_ROOM] = sJapaneseText_Location_SaveRoom, + [LT_RESEARCH_ROOM] = sJapaneseText_Location_ResearchRoom, + [LT_MAP_ROOM] = sJapaneseText_Location_MapRoom, + [LT_CHOZO_RUINS] = sJapaneseText_Location_ChozoRuins, + [LT_STARSHIP] = sJapaneseText_Location_Starship, + [LT_UNUSED_7] = sJapaneseText_Location_Unused7, + [LT_UNUSED_8] = sJapaneseText_Location_Unused8, + [LT_UNUSED_9] = sJapaneseText_Location_Unused9, + [LT_UNUSED_10] = sJapaneseText_Location_Unused10, + [LT_UNUSED_11] = sJapaneseText_Location_Unused11, + [LT_UNUSED_12] = sJapaneseText_Location_Unused12, + [LT_UNUSED_13] = sJapaneseText_Location_Unused13, + [LT_UNUSED_14] = sJapaneseText_Location_Unused14, + [LT_UNUSED_15] = sJapaneseText_Location_Unused15, + [LT_UNUSED_16] = sJapaneseText_Location_Unused16, + [LT_UNUSED_17] = sJapaneseText_Location_Unused17, + [LT_UNUSED_18] = sJapaneseText_Location_Unused18 +}; + +const u16* const sHiraganaTextPointers_Message[MESSAGE_END] = { + [MESSAGE_DUMMY] = sHiraganaText_Message_Dummy, + [MESSAGE_ENERGY_TANK_ACQUIRED] = sHiraganaText_Message_EnergyTankAcquired, + [MESSAGE_MISSILE_TANK_ACQUIRED] = sHiraganaText_Message_MissileTankAcquired, + [MESSAGE_FIRST_MISSILE_TANK] = sHiraganaText_Message_FirstMissileTank, + [MESSAGE_SUPER_MISSILE_TANK_ACQUIRED] = sHiraganaText_Message_SuperMissileTankAcquired, + [MESSAGE_FIRST_SUPER_MISSILE_TANK] = sHiraganaText_Message_FirstSuperMissileTank, + [MESSAGE_POWER_BOMB_TANK_ACQUIRED] = sHiraganaText_Message_PowerBombTankAqcuired, + [MESSAGE_FIRST_POWER_BOMB_TANK] = sHiraganaText_Message_FirstPowerBombTank, + [MESSAGE_LONG_BEAM] = sHiraganaText_Message_LongBeam, + [MESSAGE_CHARGE_BEAM] = sHiraganaText_Message_ChargeBeam, + [MESSAGE_ICE_BEAM] = sHiraganaText_Message_IceBeam, + [MESSAGE_WAVE_BEAM] = sHiraganaText_Message_WaveBeam, + [MESSAGE_UKNOWN_ITEM_PLASMA] = sHiraganaText_Message_UnknownItemPlasma, + [MESSAGE_BOMB] = sHiraganaText_Message_Bomb, + [MESSAGE_VARIA_SUIT] = sHiraganaText_Message_VariaSuit, + [MESSAGE_UNKNOWN_ITEM_GRAVITY] = sHiraganaText_Message_UnknownItemGravity, + [MESSAGE_MORPH_BALL] = sHiraganaText_Message_MorphBall, + [MESSAGE_SPEED_BOOSTER] = sHiraganaText_Message_SpeedBooster, + [MESSAGE_HIGH_JUMP] = sHiraganaText_Message_HighJump, + [MESSAGE_SCREW_ATTACK] = sHiraganaText_Message_ScrewAttack, + [MESSAGE_UNKNOWN_ITEM_SPACE_JUMP] = sHiraganaText_Message_UnknownItemSpaceJump, + [MESSAGE_POWER_GRIP] = sHiraganaText_Message_PowerGrip, + [MESSAGE_SAVE_PROMPT] = sHiraganaText_Message_SavePrompt, + [MESSAGE_SAVE_COMPLETE] = sHiraganaText_Message_SaveComplete, + [MESSAGE_WEAPON_RESUPPLY_COMPLETE] = sHiraganaText_Message_WeaponRessuplyComplete, + [MESSAGE_ENERGY_TANK_RECHARGE_COMPLETE] = sHiraganaText_Message_EnergyTankRechargeComplete, + [MESSAGE_WEAPONS_AND_ENERGY_RESTORED] = sHiraganaText_Message_WeaponsAndEnergyRestored, + [MESSAGE_BRINSTAR_MAP_ACQUIRED] = sHiraganaText_Message_BrinstarMap, + [MESSAGE_KRAID_MAP_ACQUIRED] = sHiraganaText_Message_KraidMap, + [MESSAGE_NORFAIR_MAP_ACQUIRED] = sHiraganaText_Message_NorfairMap, + [MESSAGE_RIDLEY_MAP_ACQUIRED] = sHiraganaText_Message_RidleyMap, + [MESSAGE_MOTHER_SHIP_MAP_ACQUIRED] = sHiraganaText_Message_MotherShipMap, + [MESSAGE_FULLY_POWERED_SUIT] = sHiraganaText_Message_FullyPoweredSuit, + [MESSAGE_ZEBES_ESCAPE] = sHiraganaText_Message_ZebesEscape, + [MESSAGE_CHOZODIA_ESCAPE] = sHiraganaText_Message_ChozodiaEscape, + [MESSAGE_ENEMY_LOCATION_ABNORMAL] = sHiraganaText_Message_EnemyLocationAbnormal, + [MESSAGE_ACTIVATE_EASY_SLEEP] = sHiraganaText_Message_ActivateEasySleep, + [MESSAGE_PRESS_SELECT_L_AND_R] = sHiraganaText_Message_PressSelectLAndR, + [MESSAGE_EASY_SLEEP_PROMPT] = sHiraganaText_Message_EasySleepPrompt +}; + +const u16* const sHiraganaTextPointers_Location[LT_END] = { + [LT_BRINSTAR] = sHiraganaText_Location_Brinstar, + [LT_KRAID] = sHiraganaText_Location_Kraid, + [LT_NORFAIR] = sHiraganaText_Location_Norfair, + [LT_RIDLEY] = sHiraganaText_Location_Ridley, + [LT_TOURIAN] = sHiraganaText_Location_Tourian, + [LT_CRATERIA] = sHiraganaText_Location_Crateria, + [LT_CHOZODIA] = sHiraganaText_Location_Chozodia, + [LT_MOTHERSHIP] = sHiraganaText_Location_Mothership, + [LT_PLANET_ZEBES] = sHiraganaText_Location_PlanetZebes, + [LT_SAVE_ROOM] = sHiraganaText_Location_SaveRoom, + [LT_RESEARCH_ROOM] = sHiraganaText_Location_ResearchRoom, + [LT_MAP_ROOM] = sHiraganaText_Location_MapRoom, + [LT_CHOZO_RUINS] = sHiraganaText_Location_ChozoRuins, + [LT_STARSHIP] = sHiraganaText_Location_Starship, + [LT_UNUSED_7] = sHiraganaText_Location_Unused7, + [LT_UNUSED_8] = sHiraganaText_Location_Unused8, + [LT_UNUSED_9] = sHiraganaText_Location_Unused9, + [LT_UNUSED_10] = sHiraganaText_Location_Unused10, + [LT_UNUSED_11] = sHiraganaText_Location_Unused11, + [LT_UNUSED_12] = sHiraganaText_Location_Unused12, + [LT_UNUSED_13] = sHiraganaText_Location_Unused13, + [LT_UNUSED_14] = sHiraganaText_Location_Unused14, + [LT_UNUSED_15] = sHiraganaText_Location_Unused15, + [LT_UNUSED_16] = sHiraganaText_Location_Unused16, + [LT_UNUSED_17] = sHiraganaText_Location_Unused17, + [LT_UNUSED_18] = sHiraganaText_Location_Unused18 +}; + + +const u16* const sEnglishTextPointers_Message[MESSAGE_END] = { + [MESSAGE_DUMMY] = sEnglishText_Message_Dummy, + [MESSAGE_ENERGY_TANK_ACQUIRED] = sEnglishText_Message_EnergyTankAcquired, + [MESSAGE_MISSILE_TANK_ACQUIRED] = sEnglishText_Message_MissileTankAcquired, + [MESSAGE_FIRST_MISSILE_TANK] = sEnglishText_Message_FirstMissileTank, + [MESSAGE_SUPER_MISSILE_TANK_ACQUIRED] = sEnglishText_Message_SuperMissileTankAcquired, + [MESSAGE_FIRST_SUPER_MISSILE_TANK] = sEnglishText_Message_FirstSuperMissileTank, + [MESSAGE_POWER_BOMB_TANK_ACQUIRED] = sEnglishText_Message_PowerBombTankAqcuired, + [MESSAGE_FIRST_POWER_BOMB_TANK] = sEnglishText_Message_FirstPowerBombTank, + [MESSAGE_LONG_BEAM] = sEnglishText_Message_LongBeam, + [MESSAGE_CHARGE_BEAM] = sEnglishText_Message_ChargeBeam, + [MESSAGE_ICE_BEAM] = sEnglishText_Message_IceBeam, + [MESSAGE_WAVE_BEAM] = sEnglishText_Message_WaveBeam, + [MESSAGE_UKNOWN_ITEM_PLASMA] = sEnglishText_Message_UnknownItemPlasma, + [MESSAGE_BOMB] = sEnglishText_Message_Bomb, + [MESSAGE_VARIA_SUIT] = sEnglishText_Message_VariaSuit, + [MESSAGE_UNKNOWN_ITEM_GRAVITY] = sEnglishText_Message_UnknownItemGravity, + [MESSAGE_MORPH_BALL] = sEnglishText_Message_MorphBall, + [MESSAGE_SPEED_BOOSTER] = sEnglishText_Message_SpeedBooster, + [MESSAGE_HIGH_JUMP] = sEnglishText_Message_HighJump, + [MESSAGE_SCREW_ATTACK] = sEnglishText_Message_ScrewAttack, + [MESSAGE_UNKNOWN_ITEM_SPACE_JUMP] = sEnglishText_Message_UnknownItemSpaceJump, + [MESSAGE_POWER_GRIP] = sEnglishText_Message_PowerGrip, + [MESSAGE_SAVE_PROMPT] = sEnglishText_Message_SavePrompt, + [MESSAGE_SAVE_COMPLETE] = sEnglishText_Message_SaveComplete, + [MESSAGE_WEAPON_RESUPPLY_COMPLETE] = sEnglishText_Message_WeaponRessuplyComplete, + [MESSAGE_ENERGY_TANK_RECHARGE_COMPLETE] = sEnglishText_Message_EnergyTankRechargeComplete, + [MESSAGE_WEAPONS_AND_ENERGY_RESTORED] = sEnglishText_Message_WeaponsAndEnergyRestored, + [MESSAGE_BRINSTAR_MAP_ACQUIRED] = sEnglishText_Message_BrinstarMap, + [MESSAGE_KRAID_MAP_ACQUIRED] = sEnglishText_Message_KraidMap, + [MESSAGE_NORFAIR_MAP_ACQUIRED] = sEnglishText_Message_NorfairMap, + [MESSAGE_RIDLEY_MAP_ACQUIRED] = sEnglishText_Message_RidleyMap, + [MESSAGE_MOTHER_SHIP_MAP_ACQUIRED] = sEnglishText_Message_MotherShipMap, + [MESSAGE_FULLY_POWERED_SUIT] = sEnglishText_Message_FullyPoweredSuit, + [MESSAGE_ZEBES_ESCAPE] = sEnglishText_Message_ZebesEscape, + [MESSAGE_CHOZODIA_ESCAPE] = sEnglishText_Message_ChozodiaEscape, + [MESSAGE_ENEMY_LOCATION_ABNORMAL] = sEnglishText_Message_EnemyLocationAbnormal, + [MESSAGE_ACTIVATE_EASY_SLEEP] = sEnglishText_Message_ActivateEasySleep, + [MESSAGE_PRESS_SELECT_L_AND_R] = sEnglishText_Message_PressSelectLAndR, + [MESSAGE_EASY_SLEEP_PROMPT] = sEnglishText_Message_EasySleepPrompt +}; + +const u16* const sEnglishTextPointers_Location[LT_END] = { + [LT_BRINSTAR] = sEnglishText_Location_Brinstar, + [LT_KRAID] = sEnglishText_Location_Kraid, + [LT_NORFAIR] = sEnglishText_Location_Norfair, + [LT_RIDLEY] = sEnglishText_Location_Ridley, + [LT_TOURIAN] = sEnglishText_Location_Tourian, + [LT_CRATERIA] = sEnglishText_Location_Crateria, + [LT_CHOZODIA] = sEnglishText_Location_Chozodia, + [LT_MOTHERSHIP] = sEnglishText_Location_Mothership, + [LT_PLANET_ZEBES] = sEnglishText_Location_PlanetZebes, + [LT_SAVE_ROOM] = sEnglishText_Location_SaveRoom, + [LT_RESEARCH_ROOM] = sEnglishText_Location_ResearchRoom, + [LT_MAP_ROOM] = sEnglishText_Location_MapRoom, + [LT_CHOZO_RUINS] = sEnglishText_Location_ChozoRuins, + [LT_STARSHIP] = sEnglishText_Location_Starship, + [LT_UNUSED_7] = sEnglishText_Location_Unused7, + [LT_UNUSED_8] = sEnglishText_Location_Unused8, + [LT_UNUSED_9] = sEnglishText_Location_Unused9, + [LT_UNUSED_10] = sEnglishText_Location_Unused10, + [LT_UNUSED_11] = sEnglishText_Location_Unused11, + [LT_UNUSED_12] = sEnglishText_Location_Unused12, + [LT_UNUSED_13] = sEnglishText_Location_Unused13, + [LT_UNUSED_14] = sEnglishText_Location_Unused14, + [LT_UNUSED_15] = sEnglishText_Location_Unused15, + [LT_UNUSED_16] = sEnglishText_Location_Unused16, + [LT_UNUSED_17] = sEnglishText_Location_Unused17, + [LT_UNUSED_18] = sEnglishText_Location_Unused18 +}; + + +const u16* const * const sLocationTextPointers[LANGUAGE_END] = { + [LANGUAGE_JAPANESE] = sJapaneseTextPointers_Location, + [LANGUAGE_HIRAGANA] = sHiraganaTextPointers_Location, + [LANGUAGE_ENGLISH] = sEnglishTextPointers_Location, + [LANGUAGE_GERMAN] = sEnglishTextPointers_Location, + [LANGUAGE_FRENCH] = sEnglishTextPointers_Location, + [LANGUAGE_ITALIAN] = sEnglishTextPointers_Location, + [LANGUAGE_SPANISH] = sEnglishTextPointers_Location +}; + +const u16* const * const sMessageTextPointers[LANGUAGE_END] = { + [LANGUAGE_JAPANESE] = sJapaneseTextPointers_Message, + [LANGUAGE_HIRAGANA] = sHiraganaTextPointers_Message, + [LANGUAGE_ENGLISH] = sEnglishTextPointers_Message, + [LANGUAGE_GERMAN] = sEnglishTextPointers_Message, + [LANGUAGE_FRENCH] = sEnglishTextPointers_Message, + [LANGUAGE_ITALIAN] = sEnglishTextPointers_Message, + [LANGUAGE_SPANISH] = sEnglishTextPointers_Message +}; + +const u16* const * const sFileScreenTextPointers[LANGUAGE_END] = { + [LANGUAGE_JAPANESE] = sJapaneseTextPointers_FileScreen, + [LANGUAGE_HIRAGANA] = sHiraganaTextPointers_FileScreen, + [LANGUAGE_ENGLISH] = sEnglishTextPointers_FileScreen, + [LANGUAGE_GERMAN] = sEnglishTextPointers_FileScreen, + [LANGUAGE_FRENCH] = sEnglishTextPointers_FileScreen, + [LANGUAGE_ITALIAN] = sEnglishTextPointers_FileScreen, + [LANGUAGE_SPANISH] = sEnglishTextPointers_FileScreen +}; + + +const u16* const sJapaneseTextPointers_Description[DESCRIPTION_TEXT_END] = { + [DESCRIPTION_TEXT_LONG_BEAM] = sJapaneseText_Description_LongBeam, + [DESCRIPTION_TEXT_CHARGE_BEAM] = sJapaneseText_Description_ChargeBeam, + [DESCRIPTION_TEXT_ICE_BEAM] = sJapaneseText_Description_IceBeam, + [DESCRIPTION_TEXT_WAVE_BEAM] = sJapaneseText_Description_WaveBeam, + [DESCRIPTION_TEXT_PLASMA_BEAM] = sJapaneseText_Description_PlasmaBeam, + [DESCRIPTION_TEXT_MISSILES] = sJapaneseText_Description_Missiles, + [DESCRIPTION_TEXT_SUPER_MISSILES] = sJapaneseText_Description_SuperMissiles, + [DESCRIPTION_TEXT_BOMBS] = sJapaneseText_Description_Bombs, + [DESCRIPTION_TEXT_POWER_BOMBS] = sJapaneseText_Description_PowerBombs, + [DESCRIPTION_TEXT_VARIA_SUIT] = sJapaneseText_Description_VariaSuit, + [DESCRIPTION_TEXT_GRAVITY_SUIT] = sJapaneseText_Description_GravitySuit, + [DESCRIPTION_TEXT_MORPH_BALL] = sJapaneseText_Description_MorphBall, + [DESCRIPTION_TEXT_POWER_GRIP] = sJapaneseText_Description_PowerGrip, + [DESCRIPTION_TEXT_SPEEDBOOSTER] = sJapaneseText_Description_Speedbooster, + [DESCRIPTION_TEXT_HIGH_JUMP] = sJapaneseText_Description_HighJump, + [DESCRIPTION_TEXT_SCREW_ATTACK] = sJapaneseText_Description_ScrewAttack, + [DESCRIPTION_TEXT_SPACE_JUMP] = sJapaneseText_Description_SpaceJump, + [DESCRIPTION_TEXT_UNKNOWN_ITEM] = sJapaneseText_Description_UnknownItem, + [DESCRIPTION_TEXT_PISTOL] = sJapaneseText_Description_Pistol, +}; + +const u16* const sJapaneseTextPointers_Story[STORY_TEXT_END] = { + [STORY_TEXT_PLANET_ZEBES] = sJapaneseText_Story_PlanetZebes, + [STORY_TEXT_THE_TIMING] = sJapaneseText_Story_TheTiming, + [STORY_TEXT_COULD_I_SURVIVE] = sJapaneseText_Story_CouldISurvive, + [STORY_TEXT_EMERGENCY] = sJapaneseText_Story_Emergency, + [STORY_TEXT_EXTERMINATE] = sJapaneseText_Story_Exterminate, + [STORY_TEXT_DEFEAT] = sJapaneseText_Story_Defeat, +}; + +const u16* const sJapaneseTextPointers_FileScreen[FILE_SCREEN_TEXT_END] = { + [FILE_SCREEN_TEXT_START_GAME] = sJapaneseText_FileScreen_StartGame, + [FILE_SCREEN_TEXT_COPY_SOURCE_CHOOSE] = sJapaneseText_FileScreen_CopySourceChoose, + [FILE_SCREEN_TEXT_COPY_DESTINATION_CHOOSE] = sJapaneseText_FileScreen_CopyDestinationChoose, + [FILE_SCREEN_TEXT_COPY_CONFIRM] = sJapaneseText_FileScreen_CopyConfirm, + [FILE_SCREEN_TEXT_ERASE_CHOOSE] = sJapaneseText_FileScreen_EraseChoose, + [FILE_SCREEN_TEXT_ERASE_CONFIRM] = sJapaneseText_FileScreen_EraseConfirm, + [FILE_SCREEN_TEXT_FILE_A_CORRUPT_REVERT] = sJapaneseText_FileScreen_FileACorruptRevert, + [FILE_SCREEN_TEXT_FILE_B_CORRUPT_REVERT] = sJapaneseText_FileScreen_FileBCorruptRevert, + [FILE_SCREEN_TEXT_FILE_C_CORRUPT_REVERT] = sJapaneseText_FileScreen_FileCCorruptRevert, + [FILE_SCREEN_TEXT_FILE_A_CORRUPT_ERASE] = sJapaneseText_FileScreen_FileACorruptErase, + [FILE_SCREEN_TEXT_FILE_B_CORRUPT_ERASE] = sJapaneseText_FileScreen_FileBCorruptErase, + [FILE_SCREEN_TEXT_FILE_C_CORRUPT_ERASE] = sJapaneseText_FileScreen_FileCCorruptErase, + [FILE_SCREEN_TEXT_ERASE_ALL_REFORMAT] = sJapaneseText_FileScreen_EraseAllReformat, + [FILE_SCREEN_TEXT_ERASE_ALL] = sJapaneseText_FileScreen_EraseAll, + [FILE_SCREEN_TEXT_CONTINUE_NEW] = sJapaneseText_FileScreen_ContinueNew, + [FILE_SCREEN_TEXT_CONTINUE_NEW_TIME_ATTACK] = sJapaneseText_FileScreen_ContinueNewTimeAttack, + [FILE_SCREEN_TEXT_MESSAGE_OPTION] = sJapaneseText_FileScreen_MessageOption, + [FILE_SCREEN_TEXT_DIFFICULTY] = sJapaneseText_FileScreen_Difficulty, + [FILE_SCREEN_TEXT_DIFFICULTY_HARD] = sJapaneseText_FileScreen_DifficultyHard, + [FILE_SCREEN_TEXT_ERASE_FILE_CONFIRM] = sJapaneseText_FileScreen_EraseFileConfirm, + [FILE_SCREEN_TEXT_LINKING_PLEASE_WAIT] = sJapaneseText_FileScreen_LinkingPleaseWait, + [FILE_SCREEN_TEXT_UNABLE_TO_DETECT_FUSION] = sJapaneseText_FileScreen_UnableToDetectFusion, + [FILE_SCREEN_TEXT_LINKING_ERROR] = sJapaneseText_FileScreen_LinkingError, + [FILE_SCREEN_TEXT_TURN_OFF_CONFIRM_LINK] = sJapaneseText_FileScreen_TurnOffConfirmLink, + [FILE_SCREEN_TEXT_DO_NOT_TURN_POWER_OFF] = sJapaneseText_FileScreen_DoNotTurnPowerOff, + [FILE_SCREEN_TEXT_DATA_UPLOAD_COMPLETE] = sJapaneseText_FileScreen_DataUploadComplete, + [FILE_SCREEN_TEXT_LINK_COMPLETE] = sJapaneseText_FileScreen_LinkComplete, + [FILE_SCREEN_TEXT_BEST_TIME] = sJapaneseText_FileScreen_BestTime, + [FILE_SCREEN_TEXT_BEST_TIME_100] = sJapaneseText_FileScreen_BestTime100, + [FILE_SCREEN_TEXT_ID_PASSWORD] = sJapaneseText_FileScreen_IdPassword, + [FILE_SCREEN_TEXT_CANT_COPY_TIME_ATTACK] = sJapaneseText_FileScreen_CantCopyTimeAttack, + [FILE_SCREEN_TEXT_LINKING_ERROR_TRY_AGAIN] = sJapaneseText_FileScreen_LinkingErrorTryAgain, + [FILE_SCREEN_TEXT_LINKING_ERROR_CHECK_CONNECTION] = sJapaneseText_FileScreen_LinkingErrorCheckConnection, + [FILE_SCREEN_TEXT_GALLERY_UNLOCK] = sJapaneseText_FileScreen_GalleryUnlock, + [FILE_SCREEN_TEXT_TIME_ATTACK_RECORD_UNLOCK] = sJapaneseText_FileScreen_TimeAttackRecordUnlock, + [FILE_SCREEN_TEXT_SOUND_TEST_UNLOCK] = sJapaneseText_FileScreen_SoundTestUnlock, + [FILE_SCREEN_TEXT_NES_METROID_UNLOCK] = sJapaneseText_FileScreen_NesMetroidUnlock, +}; + + +const u16* const sHiraganaTextPointers_Description[DESCRIPTION_TEXT_END] = { + [DESCRIPTION_TEXT_LONG_BEAM] = sHiraganaText_Description_LongBeam, + [DESCRIPTION_TEXT_CHARGE_BEAM] = sHiraganaText_Description_ChargeBeam, + [DESCRIPTION_TEXT_ICE_BEAM] = sHiraganaText_Description_IceBeam, + [DESCRIPTION_TEXT_WAVE_BEAM] = sHiraganaText_Description_WaveBeam, + [DESCRIPTION_TEXT_PLASMA_BEAM] = sHiraganaText_Description_PlasmaBeam, + [DESCRIPTION_TEXT_MISSILES] = sHiraganaText_Description_Missiles, + [DESCRIPTION_TEXT_SUPER_MISSILES] = sHiraganaText_Description_SuperMissiles, + [DESCRIPTION_TEXT_BOMBS] = sHiraganaText_Description_Bombs, + [DESCRIPTION_TEXT_POWER_BOMBS] = sHiraganaText_Description_PowerBombs, + [DESCRIPTION_TEXT_VARIA_SUIT] = sHiraganaText_Description_VariaSuit, + [DESCRIPTION_TEXT_GRAVITY_SUIT] = sHiraganaText_Description_GravitySuit, + [DESCRIPTION_TEXT_MORPH_BALL] = sHiraganaText_Description_MorphBall, + [DESCRIPTION_TEXT_POWER_GRIP] = sHiraganaText_Description_PowerGrip, + [DESCRIPTION_TEXT_SPEEDBOOSTER] = sHiraganaText_Description_Speedbooster, + [DESCRIPTION_TEXT_HIGH_JUMP] = sHiraganaText_Description_HighJump, + [DESCRIPTION_TEXT_SCREW_ATTACK] = sHiraganaText_Description_ScrewAttack, + [DESCRIPTION_TEXT_SPACE_JUMP] = sHiraganaText_Description_SpaceJump, + [DESCRIPTION_TEXT_UNKNOWN_ITEM] = sHiraganaText_Description_UnknownItem, + [DESCRIPTION_TEXT_PISTOL] = sHiraganaText_Description_Pistol, +}; + +const u16* const sHiraganaTextPointers_Story[STORY_TEXT_END] = { + [STORY_TEXT_PLANET_ZEBES] = sHiraganaText_Story_PlanetZebes, + [STORY_TEXT_THE_TIMING] = sHiraganaText_Story_TheTiming, + [STORY_TEXT_COULD_I_SURVIVE] = sHiraganaText_Story_CouldISurvive, + [STORY_TEXT_EMERGENCY] = sHiraganaText_Story_Emergency, + [STORY_TEXT_EXTERMINATE] = sHiraganaText_Story_Exterminate, + [STORY_TEXT_DEFEAT] = sHiraganaText_Story_Defeat, +}; + +const u16* const sHiraganaTextPointers_FileScreen[FILE_SCREEN_TEXT_END] = { + [FILE_SCREEN_TEXT_START_GAME] = sHiraganaText_FileScreen_StartGame, + [FILE_SCREEN_TEXT_COPY_SOURCE_CHOOSE] = sHiraganaText_FileScreen_CopySourceChoose, + [FILE_SCREEN_TEXT_COPY_DESTINATION_CHOOSE] = sHiraganaText_FileScreen_CopyDestinationChoose, + [FILE_SCREEN_TEXT_COPY_CONFIRM] = sHiraganaText_FileScreen_CopyConfirm, + [FILE_SCREEN_TEXT_ERASE_CHOOSE] = sHiraganaText_FileScreen_EraseChoose, + [FILE_SCREEN_TEXT_ERASE_CONFIRM] = sHiraganaText_FileScreen_EraseConfirm, + [FILE_SCREEN_TEXT_FILE_A_CORRUPT_REVERT] = sHiraganaText_FileScreen_FileACorruptRevert, + [FILE_SCREEN_TEXT_FILE_B_CORRUPT_REVERT] = sHiraganaText_FileScreen_FileBCorruptRevert, + [FILE_SCREEN_TEXT_FILE_C_CORRUPT_REVERT] = sHiraganaText_FileScreen_FileCCorruptRevert, + [FILE_SCREEN_TEXT_FILE_A_CORRUPT_ERASE] = sHiraganaText_FileScreen_FileACorruptErase, + [FILE_SCREEN_TEXT_FILE_B_CORRUPT_ERASE] = sHiraganaText_FileScreen_FileBCorruptErase, + [FILE_SCREEN_TEXT_FILE_C_CORRUPT_ERASE] = sHiraganaText_FileScreen_FileCCorruptErase, + [FILE_SCREEN_TEXT_ERASE_ALL_REFORMAT] = sHiraganaText_FileScreen_EraseAllReformat, + [FILE_SCREEN_TEXT_ERASE_ALL] = sHiraganaText_FileScreen_EraseAll, + [FILE_SCREEN_TEXT_CONTINUE_NEW] = sHiraganaText_FileScreen_ContinueNew, + [FILE_SCREEN_TEXT_CONTINUE_NEW_TIME_ATTACK] = sHiraganaText_FileScreen_ContinueNewTimeAttack, + [FILE_SCREEN_TEXT_MESSAGE_OPTION] = sHiraganaText_FileScreen_MessageOption, + [FILE_SCREEN_TEXT_DIFFICULTY] = sHiraganaText_FileScreen_Difficulty, + [FILE_SCREEN_TEXT_DIFFICULTY_HARD] = sHiraganaText_FileScreen_DifficultyHard, + [FILE_SCREEN_TEXT_ERASE_FILE_CONFIRM] = sHiraganaText_FileScreen_EraseFileConfirm, + [FILE_SCREEN_TEXT_LINKING_PLEASE_WAIT] = sHiraganaText_FileScreen_LinkingPleaseWait, + [FILE_SCREEN_TEXT_UNABLE_TO_DETECT_FUSION] = sHiraganaText_FileScreen_UnableToDetectFusion, + [FILE_SCREEN_TEXT_LINKING_ERROR] = sHiraganaText_FileScreen_LinkingError, + [FILE_SCREEN_TEXT_TURN_OFF_CONFIRM_LINK] = sHiraganaText_FileScreen_TurnOffConfirmLink, + [FILE_SCREEN_TEXT_DO_NOT_TURN_POWER_OFF] = sHiraganaText_FileScreen_DoNotTurnPowerOff, + [FILE_SCREEN_TEXT_DATA_UPLOAD_COMPLETE] = sHiraganaText_FileScreen_DataUploadComplete, + [FILE_SCREEN_TEXT_LINK_COMPLETE] = sHiraganaText_FileScreen_LinkComplete, + [FILE_SCREEN_TEXT_BEST_TIME] = sHiraganaText_FileScreen_BestTime, + [FILE_SCREEN_TEXT_BEST_TIME_100] = sHiraganaText_FileScreen_BestTime100, + [FILE_SCREEN_TEXT_ID_PASSWORD] = sHiraganaText_FileScreen_IdPassword, + [FILE_SCREEN_TEXT_CANT_COPY_TIME_ATTACK] = sHiraganaText_FileScreen_CantCopyTimeAttack, + [FILE_SCREEN_TEXT_LINKING_ERROR_TRY_AGAIN] = sHiraganaText_FileScreen_LinkingErrorTryAgain, + [FILE_SCREEN_TEXT_LINKING_ERROR_CHECK_CONNECTION] = sHiraganaText_FileScreen_LinkingErrorCheckConnection, + [FILE_SCREEN_TEXT_GALLERY_UNLOCK] = sHiraganaText_FileScreen_GalleryUnlock, + [FILE_SCREEN_TEXT_TIME_ATTACK_RECORD_UNLOCK] = sHiraganaText_FileScreen_TimeAttackRecordUnlock, + [FILE_SCREEN_TEXT_SOUND_TEST_UNLOCK] = sHiraganaText_FileScreen_SoundTestUnlock, + [FILE_SCREEN_TEXT_NES_METROID_UNLOCK] = sHiraganaText_FileScreen_NesMetroidUnlock, +}; + + +const u16* const sEnglishTextPointers_Description[DESCRIPTION_TEXT_END] = { + [DESCRIPTION_TEXT_LONG_BEAM] = sEnglishText_Description_LongBeam, + [DESCRIPTION_TEXT_CHARGE_BEAM] = sEnglishText_Description_ChargeBeam, + [DESCRIPTION_TEXT_ICE_BEAM] = sEnglishText_Description_IceBeam, + [DESCRIPTION_TEXT_WAVE_BEAM] = sEnglishText_Description_WaveBeam, + [DESCRIPTION_TEXT_PLASMA_BEAM] = sEnglishText_Description_PlasmaBeam, + [DESCRIPTION_TEXT_MISSILES] = sEnglishText_Description_Missiles, + [DESCRIPTION_TEXT_SUPER_MISSILES] = sEnglishText_Description_SuperMissiles, + [DESCRIPTION_TEXT_BOMBS] = sEnglishText_Description_Bombs, + [DESCRIPTION_TEXT_POWER_BOMBS] = sEnglishText_Description_PowerBombs, + [DESCRIPTION_TEXT_VARIA_SUIT] = sEnglishText_Description_VariaSuit, + [DESCRIPTION_TEXT_GRAVITY_SUIT] = sEnglishText_Description_GravitySuit, + [DESCRIPTION_TEXT_MORPH_BALL] = sEnglishText_Description_MorphBall, + [DESCRIPTION_TEXT_POWER_GRIP] = sEnglishText_Description_PowerGrip, + [DESCRIPTION_TEXT_SPEEDBOOSTER] = sEnglishText_Description_Speedbooster, + [DESCRIPTION_TEXT_HIGH_JUMP] = sEnglishText_Description_HighJump, + [DESCRIPTION_TEXT_SCREW_ATTACK] = sEnglishText_Description_ScrewAttack, + [DESCRIPTION_TEXT_SPACE_JUMP] = sEnglishText_Description_SpaceJump, + [DESCRIPTION_TEXT_UNKNOWN_ITEM] = sEnglishText_Description_UnknownItem, + [DESCRIPTION_TEXT_PISTOL] = sEnglishText_Description_Pistol, +}; + +const u16* const sEnglishTextPointers_Story[STORY_TEXT_END] = { + [STORY_TEXT_PLANET_ZEBES] = sEnglishText_Story_PlanetZebes, + [STORY_TEXT_THE_TIMING] = sEnglishText_Story_TheTiming, + [STORY_TEXT_COULD_I_SURVIVE] = sEnglishText_Story_CouldISurvive, + [STORY_TEXT_EMERGENCY] = sEnglishText_Story_Emergency, + [STORY_TEXT_EXTERMINATE] = sEnglishText_Story_Exterminate, + [STORY_TEXT_DEFEAT] = sEnglishText_Story_Defeat, +}; + +const u16* const sEnglishTextPointers_FileScreen[FILE_SCREEN_TEXT_END] = { + [FILE_SCREEN_TEXT_START_GAME] = sEnglishText_FileScreen_StartGame, + [FILE_SCREEN_TEXT_COPY_SOURCE_CHOOSE] = sEnglishText_FileScreen_CopySourceChoose, + [FILE_SCREEN_TEXT_COPY_DESTINATION_CHOOSE] = sEnglishText_FileScreen_CopyDestinationChoose, + [FILE_SCREEN_TEXT_COPY_CONFIRM] = sEnglishText_FileScreen_CopyConfirm, + [FILE_SCREEN_TEXT_ERASE_CHOOSE] = sEnglishText_FileScreen_EraseChoose, + [FILE_SCREEN_TEXT_ERASE_CONFIRM] = sEnglishText_FileScreen_EraseConfirm, + [FILE_SCREEN_TEXT_FILE_A_CORRUPT_REVERT] = sEnglishText_FileScreen_FileACorruptRevert, + [FILE_SCREEN_TEXT_FILE_B_CORRUPT_REVERT] = sEnglishText_FileScreen_FileBCorruptRevert, + [FILE_SCREEN_TEXT_FILE_C_CORRUPT_REVERT] = sEnglishText_FileScreen_FileCCorruptRevert, + [FILE_SCREEN_TEXT_FILE_A_CORRUPT_ERASE] = sEnglishText_FileScreen_FileACorruptErase, + [FILE_SCREEN_TEXT_FILE_B_CORRUPT_ERASE] = sEnglishText_FileScreen_FileBCorruptErase, + [FILE_SCREEN_TEXT_FILE_C_CORRUPT_ERASE] = sEnglishText_FileScreen_FileCCorruptErase, + [FILE_SCREEN_TEXT_ERASE_ALL_REFORMAT] = sEnglishText_FileScreen_EraseAllReformat, + [FILE_SCREEN_TEXT_ERASE_ALL] = sEnglishText_FileScreen_EraseAll, + [FILE_SCREEN_TEXT_CONTINUE_NEW] = sEnglishText_FileScreen_ContinueNew, + [FILE_SCREEN_TEXT_CONTINUE_NEW_TIME_ATTACK] = sEnglishText_FileScreen_ContinueNewTimeAttack, + [FILE_SCREEN_TEXT_MESSAGE_OPTION] = sEnglishText_FileScreen_MessageOption, + [FILE_SCREEN_TEXT_DIFFICULTY] = sEnglishText_FileScreen_Difficulty, + [FILE_SCREEN_TEXT_DIFFICULTY_HARD] = sEnglishText_FileScreen_DifficultyHard, + [FILE_SCREEN_TEXT_ERASE_FILE_CONFIRM] = sEnglishText_FileScreen_EraseFileConfirm, + [FILE_SCREEN_TEXT_LINKING_PLEASE_WAIT] = sEnglishText_FileScreen_LinkingPleaseWait, + [FILE_SCREEN_TEXT_UNABLE_TO_DETECT_FUSION] = sEnglishText_FileScreen_UnableToDetectFusion, + [FILE_SCREEN_TEXT_LINKING_ERROR] = sEnglishText_FileScreen_LinkingError, + [FILE_SCREEN_TEXT_TURN_OFF_CONFIRM_LINK] = sEnglishText_FileScreen_TurnOffConfirmLink, + [FILE_SCREEN_TEXT_DO_NOT_TURN_POWER_OFF] = sEnglishText_FileScreen_DoNotTurnPowerOff, + [FILE_SCREEN_TEXT_DATA_UPLOAD_COMPLETE] = sEnglishText_FileScreen_DataUploadComplete, + [FILE_SCREEN_TEXT_LINK_COMPLETE] = sEnglishText_FileScreen_LinkComplete, + [FILE_SCREEN_TEXT_BEST_TIME] = sEnglishText_FileScreen_BestTime, + [FILE_SCREEN_TEXT_BEST_TIME_100] = sEnglishText_FileScreen_BestTime100, + [FILE_SCREEN_TEXT_ID_PASSWORD] = sEnglishText_FileScreen_IdPassword, + [FILE_SCREEN_TEXT_CANT_COPY_TIME_ATTACK] = sEnglishText_FileScreen_CantCopyTimeAttack, + [FILE_SCREEN_TEXT_LINKING_ERROR_TRY_AGAIN] = sEnglishText_FileScreen_LinkingErrorTryAgain, + [FILE_SCREEN_TEXT_LINKING_ERROR_CHECK_CONNECTION] = sEnglishText_FileScreen_LinkingErrorCheckConnection, + [FILE_SCREEN_TEXT_GALLERY_UNLOCK] = sEnglishText_FileScreen_GalleryUnlock, + [FILE_SCREEN_TEXT_TIME_ATTACK_RECORD_UNLOCK] = sEnglishText_FileScreen_TimeAttackRecordUnlock, + [FILE_SCREEN_TEXT_SOUND_TEST_UNLOCK] = sEnglishText_FileScreen_SoundTestUnlock, + [FILE_SCREEN_TEXT_NES_METROID_UNLOCK] = sEnglishText_FileScreen_NesMetroidUnlock, +}; diff --git a/src/menus/file_select.c b/src/menus/file_select.c index 6a95ec45..fb96ba13 100644 --- a/src/menus/file_select.c +++ b/src/menus/file_select.c @@ -7,6 +7,7 @@ #include "data/shortcut_pointers.h" #include "data/text_data.h" +#include "data/text_pointers.h" #include "data/io_transfer_data.h" #include "data/menus/file_select_data.h" #include "data/menus/internal_file_select_data.h" diff --git a/src/text.c b/src/text.c index 03f2c6ae..cd9b0f4c 100644 --- a/src/text.c +++ b/src/text.c @@ -3,6 +3,7 @@ #include "macros.h" #include "data/text_data.h" +#include "data/text_pointers.h" #include "data/shortcut_pointers.h" #include "data/menus/pause_screen_data.h" @@ -633,7 +634,7 @@ void TextDrawlocation(u8 locationText, u8 gfxSlot) BitFill(3, 0xFFFF, EWRAM_BASE, 0x800, 0x10); - pText = sLocationTextpointers[gLanguage][locationText]; + pText = sLocationTextPointers[gLanguage][locationText]; TextDrawLocationTextCharacters(1, &pText); DMA_SET(3, EWRAM_BASE, VRAM_BASE + 0x14000 + gfxSlot * 0x800, (DMA_ENABLE | DMA_32BIT) << 16 | 0xE0); @@ -691,7 +692,7 @@ u8 unk_6f0a8(u8 textID, u8 gfxSlot, u8 param_3) for (; i != 0; i--) { - switch (TextProcessCurrentMessage(&gCurrentMessage, sMessageTextpointers[gLanguage][gCurrentMessage.messageID], + switch (TextProcessCurrentMessage(&gCurrentMessage, sMessageTextPointers[gLanguage][gCurrentMessage.messageID], VRAM_BASE + 0x14000 + gCurrentMessage.gfxSlot * 0x800 + gCurrentMessage.line * 0x800)) { case TEXT_STATE_ENDED: @@ -784,7 +785,7 @@ u8 TextProcessItemBanner(void) while (i != 0) { switch (TextProcessCurrentMessage(&gCurrentMessage, - sMessageTextpointers[gLanguage][gCurrentMessage.messageID], + sMessageTextPointers[gLanguage][gCurrentMessage.messageID], VRAM_BASE + 0x14000 + gCurrentMessage.gfxSlot * 0x800 + gCurrentMessage.line * 0x800)) { case TEXT_STATE_ENDED: @@ -1319,7 +1320,7 @@ void TextDrawYesNoEasySleep(void) PAUSE_SCREEN_DATA.easySleepTextState = 0; // Get text pointer - pText = sMessageTextpointers[gLanguage][MESSAGE_EASY_SLEEP_PROMPT]; + pText = sMessageTextPointers[gLanguage][MESSAGE_EASY_SLEEP_PROMPT]; // Reset current message BitFill(3, 0, &gCurrentMessage, sizeof(gCurrentMessage), 32); @@ -1376,7 +1377,7 @@ void TextDrawEasySleep(void) // Process message for (i = 3; i != -1; i--) { - if (!TextProcessCurrentMessage(&gCurrentMessage, sMessageTextpointers[gLanguage][MESSAGE_ACTIVATE_EASY_SLEEP], + if (!TextProcessCurrentMessage(&gCurrentMessage, sMessageTextPointers[gLanguage][MESSAGE_ACTIVATE_EASY_SLEEP], (u32*)&PAUSE_SCREEN_EWRAM.easySleepTextFormatted_1[gCurrentMessage.line * 1024])) continue; @@ -1399,7 +1400,7 @@ void TextDrawEasySleep(void) // Process message for (i = 3; i != -1; i--) { - if (!TextProcessCurrentMessage(&gCurrentMessage, sMessageTextpointers[gLanguage][MESSAGE_PRESS_SELECT_L_AND_R], + if (!TextProcessCurrentMessage(&gCurrentMessage, sMessageTextPointers[gLanguage][MESSAGE_PRESS_SELECT_L_AND_R], (u32*)&PAUSE_SCREEN_EWRAM.unk_5000[gCurrentMessage.line * 1024])) continue;