Extract Blob_7602d4_7603f0

This commit is contained in:
YohannDR 2023-10-31 16:02:44 +01:00
parent 10fed53413
commit d58e4c569a
17 changed files with 236 additions and 84 deletions

View File

@ -4,7 +4,7 @@ This is a work in progress decompilation of Metroid - Zero Mission.
2673/2721 functions decompiled (98.24%, 48 left)
0x38f844/0x76b014 bytes of data not in blobs (47.99%, 0x3db7d0 left)
0x38f960/0x76b014 bytes of data not in blobs (48.0%, 0x3db6b4 left)
Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0

View File

@ -2704,5 +2704,4 @@ 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_760d38_7f7734.bin;616956;0x760d38;1

View File

@ -0,0 +1,15 @@
#ifndef INTERNAL_TEXT_DATA
#define INTERNAL_TEXT_DATA
#include "types.h"
#include "constants/game_state.h"
extern const u16* const * const sDescriptionTextPointers[LANGUAGE_END];
extern u32 sArray_7602f0[9];
extern u32 sArray_760314[9];
extern u32 sArray_760338[8];
extern u32 sArray_760398[8];
extern u32 sArray_7603b8[8];
#endif /* INTERNAL_TEXT_DATA */

View File

@ -30,6 +30,5 @@ extern u32* sPauseScreen_7602a8;
extern u8 sMapDownloadLineTrailOamOffsets[4];
extern const u32 sPauseScreen_7602b0[9];
extern const u8 sPauseScreen_7603ea[6];
#endif /* INTERNAL_PAUSE_SCREEN_DATA_H */

View File

@ -0,0 +1,9 @@
#ifndef INTERNAL_STATUS_SCREEN_DATA_H
#define INTERNAL_STATUS_SCREEN_DATA_H
#include "types.h"
extern const u8 sStatusScreenRowsData[6][3];
extern const u8 sPauseScreen_7603ea[6];
#endif /* INTERNAL_STATUS_SCREEN_DATA_H */

View File

@ -16,10 +16,4 @@ extern const u8 sStatusScreen_40df64[8];
extern const u8 sStatusScreen_40df6c[6];
extern const u8 sStatusScreen_40df72[6];
// ...
extern const u8 sStatusScreenRowsData[6][3];
// ...
#endif /* STATUS_SCREEN_MENU_DATA_H */

View File

@ -403,10 +403,4 @@ 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];
extern u32 sArray_760338[24];
extern u32 sArray_760398[8];
extern u32 sArray_7603b8[8];
#endif /* TEXT_DATA_H */

View File

@ -34,7 +34,6 @@ 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 */

View File

@ -86,7 +86,7 @@ struct FileSelectData {
u8 currentFile;
u8 eraseFile;
struct FileSelectMenuCursors fileSelectData;
struct FileSelectMenuCursors fileSelectCursors;
u8 unk_34;
u8 unk_35;
u8 unk_36;

View File

@ -28,7 +28,7 @@ typedef volatile signed int vs32;
#define INT_MIN (-2147483648)
#define INT_MAX (2147483647)
#define UINT_MAX ((u32)4294967295)
#define UINT_MAX ((u32)0xFFFFFFFF)
#define SUB_PIXEL_RATIO 4
#define SUB_PIXEL_NUMBER 16

View File

@ -729,7 +729,8 @@ SECTIONS {
src/data/cutscenes/internal_enter_tourian_data.o(.rodata);
src/data/cutscenes/internal_samus_in_blue_ship_data.o(.rodata);
src/data/menus/internal_pause_screen_data.o(.rodata);
/* 7602d4-7603f0 */
src/data/internal_text_data.o(.rodata);
src/data/menus/internal_status_screen_data.o(.rodata);
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)

View File

@ -0,0 +1,97 @@
#include "data/internal_text_data.h"
#include "data/text_pointers.h"
#include "macros.h"
const u16* const * const sDescriptionTextPointers[LANGUAGE_END] = {
[LANGUAGE_JAPANESE] = sJapaneseTextPointers_Description,
[LANGUAGE_HIRAGANA] = sHiraganaTextPointers_Description,
[LANGUAGE_ENGLISH] = sEnglishTextPointers_Description,
[LANGUAGE_GERMAN] = sEnglishTextPointers_Description,
[LANGUAGE_FRENCH] = sEnglishTextPointers_Description,
[LANGUAGE_ITALIAN] = sEnglishTextPointers_Description,
[LANGUAGE_SPANISH] = sEnglishTextPointers_Description
};
FORCE_RODATA
u32 sArray_7602f0[9] = {
[0] = UINT_MAX ^ (UINT_MAX << 0 * sizeof(u32)),
[1] = UINT_MAX ^ (UINT_MAX << 1 * sizeof(u32)),
[2] = UINT_MAX ^ (UINT_MAX << 2 * sizeof(u32)),
[3] = UINT_MAX ^ (UINT_MAX << 3 * sizeof(u32)),
[4] = UINT_MAX ^ (UINT_MAX << 4 * sizeof(u32)),
[5] = UINT_MAX ^ (UINT_MAX << 5 * sizeof(u32)),
[6] = UINT_MAX ^ (UINT_MAX << 6 * sizeof(u32)),
[7] = UINT_MAX ^ (UINT_MAX << 7 * sizeof(u32)),
[8] = UINT_MAX
};
FORCE_RODATA
u32 sArray_760314[9] = {
[0] = UINT_MAX ^ (UINT_MAX >> 0 * sizeof(u32)),
[1] = UINT_MAX ^ (UINT_MAX >> 1 * sizeof(u32)),
[2] = UINT_MAX ^ (UINT_MAX >> 2 * sizeof(u32)),
[3] = UINT_MAX ^ (UINT_MAX >> 3 * sizeof(u32)),
[4] = UINT_MAX ^ (UINT_MAX >> 4 * sizeof(u32)),
[5] = UINT_MAX ^ (UINT_MAX >> 5 * sizeof(u32)),
[6] = UINT_MAX ^ (UINT_MAX >> 6 * sizeof(u32)),
[7] = UINT_MAX ^ (UINT_MAX >> 7 * sizeof(u32)),
[8] = UINT_MAX
};
FORCE_RODATA
u32 sArray_760338[8] = {
[0] = 15 << 0 * sizeof(u32),
[1] = 15 << 1 * sizeof(u32),
[2] = 15 << 2 * sizeof(u32),
[3] = 15 << 3 * sizeof(u32),
[4] = 15 << 4 * sizeof(u32),
[5] = 15 << 5 * sizeof(u32),
[6] = 15 << 6 * sizeof(u32),
[7] = 15 << 7 * sizeof(u32)
};
const u32 sArray_760358[8] = {
[0] = 2 << 0 * sizeof(u32),
[1] = 2 << 1 * sizeof(u32),
[2] = 2 << 2 * sizeof(u32),
[3] = 2 << 3 * sizeof(u32),
[4] = 2 << 4 * sizeof(u32),
[5] = 2 << 5 * sizeof(u32),
[6] = 2 << 6 * sizeof(u32),
[7] = 2 << 7 * sizeof(u32)
};
const u32 sArray_760378[8] = {
[0] = 1 << 0 * sizeof(u32),
[1] = 1 << 1 * sizeof(u32),
[2] = 1 << 2 * sizeof(u32),
[3] = 1 << 3 * sizeof(u32),
[4] = 1 << 4 * sizeof(u32),
[5] = 1 << 5 * sizeof(u32),
[6] = 1 << 6 * sizeof(u32),
[7] = 1 << 7 * sizeof(u32)
};
FORCE_RODATA
u32 sArray_760398[8] = {
[0] = 4 << 0 * sizeof(u32),
[1] = 4 << 1 * sizeof(u32),
[2] = 4 << 2 * sizeof(u32),
[3] = 4 << 3 * sizeof(u32),
[4] = 4 << 4 * sizeof(u32),
[5] = 4 << 5 * sizeof(u32),
[6] = 4 << 6 * sizeof(u32),
[7] = 4 << 7 * sizeof(u32)
};
FORCE_RODATA
u32 sArray_7603b8[8] = {
[0] = 15 << 0 * sizeof(u32),
[1] = 15 << 1 * sizeof(u32),
[2] = 15 << 2 * sizeof(u32),
[3] = 15 << 3 * sizeof(u32),
[4] = 15 << 4 * sizeof(u32),
[5] = 15 << 5 * sizeof(u32),
[6] = 15 << 6 * sizeof(u32),
[7] = 15 << 7 * sizeof(u32)
};

View File

@ -158,5 +158,3 @@ const u32 sPauseScreen_7602b0[9] = {
0xFFFFFFFF ^ 0xFFFFFFF,
0xFFFFFFFF ^ 0xFFFFFFFF,
};
const u8 sTempArray_7602d4[0x11c] = INCBIN_U8("data/Blob_7602d4_7603f0.bin");

View File

@ -0,0 +1,45 @@
#include "data/menus/internal_status_screen_data.h"
#include "constants/menus/status_screen.h"
const u8 sStatusScreenRowsData[6][3] = {
[0] = {
[0] = ABILITY_GROUP_CURRENT_ENERGY,
[1] = 1,
[2] = 9
},
[1] = {
[0] = ABILITY_GROUP_BOMBS,
[1] = 4,
[2] = 12
},
[2] = {
[0] = ABILITY_GROUP_BEAMS,
[1] = 7,
[2] = 8
},
[3] = {
[0] = ABILITY_GROUP_SUITS,
[1] = 4,
[2] = 10
},
[4] = {
[0] = ABILITY_GROUP_MISC,
[1] = 8,
[2] = 10
},
[5] = {
[0] = ABILITY_GROUP_MISSILES,
[1] = 6,
[2] = 9
},
};
const u8 sPauseScreen_7603ea[6] = {
[0] = 0,
[1] = 1,
[2] = 3,
[3] = 0,
[4] = 0,
[5] = 0
};

View File

@ -833,7 +833,7 @@ u32 FileSelectCopyFileSubroutine(void)
FileSelectUpdateCopyCursor(CURSOR_COPY_POSE_DEFAULT, FILE_SELECT_DATA.copySourceFile);
FileSelectUpdateTilemap(TILEMAP_REQUEST_COPY_SPAWN_INIT);
FILE_SELECT_DATA.fileSelectData.confirmCopy = sFileSelectionData_Empty.confirmCopy;
FILE_SELECT_DATA.fileSelectCursors.confirmCopy = sFileSelectionData_Empty.confirmCopy;
FILE_SELECT_DATA.unk_3A = 0;
FILE_SELECT_DATA.subroutineStage++;
@ -938,7 +938,7 @@ u32 FileSelectCopyFileSubroutine(void)
}
else if (action == 2)
{
FILE_SELECT_DATA.fileSelectData.confirmCopy = sFileSelectionData_Empty.confirmCopy;
FILE_SELECT_DATA.fileSelectCursors.confirmCopy = sFileSelectionData_Empty.confirmCopy;
FileSelectUpdateCopyArrow(ARROW_COPY_POSE_COPYING, FILE_SELECT_DATA.currentFile);
if ((FILE_SELECT_DATA.enabledMenus >> FILE_SELECT_DATA.currentFile) & 1)
@ -959,7 +959,7 @@ u32 FileSelectCopyFileSubroutine(void)
case 5:
if (FileSelectUpdateTilemap(TILEMAP_REQUEST_COPY_OVERRIDE_SPAWN))
{
unk_7e3fc(4, FILE_SELECT_DATA.fileSelectData.confirmCopy);
unk_7e3fc(4, FILE_SELECT_DATA.fileSelectCursors.confirmCopy);
FILE_SELECT_DATA.subroutineStage++;
}
break;
@ -971,7 +971,7 @@ u32 FileSelectCopyFileSubroutine(void)
{
if (gChangedInput & KEY_A)
{
if (FILE_SELECT_DATA.fileSelectData.confirmCopy != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy != 0)
FILE_SELECT_DATA.subroutineStage = 7;
else
{
@ -986,19 +986,19 @@ u32 FileSelectCopyFileSubroutine(void)
}
else if (gChangedInput & KEY_LEFT)
{
if (FILE_SELECT_DATA.fileSelectData.confirmCopy != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy != 0)
{
action = 0;
FILE_SELECT_DATA.fileSelectData.confirmCopy = 0;
FILE_SELECT_DATA.fileSelectCursors.confirmCopy = 0;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
else if (gChangedInput & KEY_RIGHT)
{
if (FILE_SELECT_DATA.fileSelectData.confirmCopy == 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy == 0)
{
action = 1;
FILE_SELECT_DATA.fileSelectData.confirmCopy = 1;
FILE_SELECT_DATA.fileSelectCursors.confirmCopy = 1;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
@ -1044,7 +1044,7 @@ u32 FileSelectCopyFileSubroutine(void)
if (SramCopyFile(FILE_SELECT_DATA.copySourceFile, FILE_SELECT_DATA.currentFile))
{
FILE_SELECT_DATA.unk_3A = 1;
if (FILE_SELECT_DATA.fileSelectData.confirmCopy != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy != 0)
FILE_SELECT_DATA.subroutineStage = 14;
else
FILE_SELECT_DATA.subroutineStage = 12;
@ -1175,8 +1175,8 @@ u32 FileSelectEraseFileSubroutine(void)
case 3:
if (FileSelectUpdateTilemap(TILEMAP_REQUEST_ERASE_YES_NO_SPAWN))
{
FILE_SELECT_DATA.fileSelectData.confirmErase = sFileSelectionData_Empty.confirmErase;
unk_7e3fc(3, FILE_SELECT_DATA.fileSelectData.confirmErase);
FILE_SELECT_DATA.fileSelectCursors.confirmErase = sFileSelectionData_Empty.confirmErase;
unk_7e3fc(3, FILE_SELECT_DATA.fileSelectCursors.confirmErase);
FILE_SELECT_DATA.subroutineStage++;
}
break;
@ -1188,7 +1188,7 @@ u32 FileSelectEraseFileSubroutine(void)
{
if (gChangedInput & KEY_A)
{
if (FILE_SELECT_DATA.fileSelectData.confirmErase != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmErase != 0)
FILE_SELECT_DATA.subroutineStage = 5;
else
{
@ -1203,19 +1203,19 @@ u32 FileSelectEraseFileSubroutine(void)
}
else if (gChangedInput & KEY_LEFT)
{
if (FILE_SELECT_DATA.fileSelectData.confirmErase != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmErase != 0)
{
action = 0;
FILE_SELECT_DATA.fileSelectData.confirmErase = 0;
FILE_SELECT_DATA.fileSelectCursors.confirmErase = 0;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
else if (gChangedInput & KEY_RIGHT)
{
if (FILE_SELECT_DATA.fileSelectData.confirmErase == 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmErase == 0)
{
action = 1;
FILE_SELECT_DATA.fileSelectData.confirmErase = 1;
FILE_SELECT_DATA.fileSelectCursors.confirmErase = 1;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
@ -3614,7 +3614,7 @@ void FileSelectInit(void)
write16(REG_BG2CNT, FILE_SELECT_DATA.bg2cnt = FILE_SELECT_DATA.unk_16);
write16(REG_BG3CNT, FILE_SELECT_DATA.bg3cnt = FILE_SELECT_DATA.unk_14);
FILE_SELECT_DATA.fileSelectData = sFileSelectionData_Empty;
FILE_SELECT_DATA.fileSelectCursors = sFileSelectionData_Empty;
FILE_SELECT_DATA.unk_34 = 0;
FILE_SELECT_DATA.unk_35 = UCHAR_MAX;
@ -4223,8 +4223,8 @@ u8 FileSelectUpdateSubMenu(void)
if (temp < 5)
{
gSaveFilesInfo[gMostRecentSaveFile].exists = FALSE;
gSaveFilesInfo[gMostRecentSaveFile].difficulty = FILE_SELECT_DATA.fileSelectData.difficulty;
gSaveFilesInfo[gMostRecentSaveFile].timeAttack = FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2;
gSaveFilesInfo[gMostRecentSaveFile].difficulty = FILE_SELECT_DATA.fileSelectCursors.difficulty;
gSaveFilesInfo[gMostRecentSaveFile].timeAttack = FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2;
}
}
}
@ -4371,7 +4371,7 @@ u8 FileSelectProcessFileSelection(void)
FILE_SELECT_DATA.unk_3A = 0;
FILE_SELECT_DATA.fileSelectData = sFileSelectionData_Empty;
FILE_SELECT_DATA.fileSelectCursors = sFileSelectionData_Empty;
if (FILE_SELECT_DATA.fileSelectCursorPosition != FILE_SELECT_CURSOR_POSITION_FILE_A)
FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].notDrawn = TRUE;
@ -4450,7 +4450,7 @@ u8 FileSelectProcessFileSelection(void)
break;
case 5:
unk_7e3fc(0, FILE_SELECT_DATA.fileSelectData.startGame);
unk_7e3fc(0, FILE_SELECT_DATA.fileSelectCursors.startGame);
FILE_SELECT_DATA.subroutineStage = 6;
break;
@ -4491,7 +4491,7 @@ u8 FileSelectProcessFileSelection(void)
if (FileSelectCheckInputtingTimeAttackCode())
{
action = 0x80;
FILE_SELECT_DATA.fileSelectData.completedFileOptions = 2;
FILE_SELECT_DATA.fileSelectCursors.completedFileOptions = 2;
FILE_SELECT_DATA.inputtedTimeAttack = TRUE;
FILE_SELECT_DATA.subroutineStage = 8;
}
@ -4527,7 +4527,7 @@ u8 FileSelectProcessFileSelection(void)
case 10:
if (FileSelectUpdateTilemap(0x1E))
{
unk_7e3fc(5, FILE_SELECT_DATA.fileSelectData.completedFileOptions);
unk_7e3fc(5, FILE_SELECT_DATA.fileSelectCursors.completedFileOptions);
FILE_SELECT_DATA.subroutineStage++;
}
break;
@ -4553,9 +4553,9 @@ u8 FileSelectProcessFileSelection(void)
}
else if (gChangedInput & KEY_UP)
{
if (FILE_SELECT_DATA.fileSelectData.completedFileOptions != 0)
if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions != 0)
{
action = --FILE_SELECT_DATA.fileSelectData.completedFileOptions;
action = --FILE_SELECT_DATA.fileSelectCursors.completedFileOptions;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
@ -4564,16 +4564,16 @@ u8 FileSelectProcessFileSelection(void)
{
if (FILE_SELECT_DATA.unk_39 == 0x10)
{
if (FILE_SELECT_DATA.fileSelectData.completedFileOptions < 2)
if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions < 2)
{
action = ++FILE_SELECT_DATA.fileSelectData.completedFileOptions;
action = ++FILE_SELECT_DATA.fileSelectCursors.completedFileOptions;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
else if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 0)
else if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 0)
{
action = ++FILE_SELECT_DATA.fileSelectData.completedFileOptions;
action = ++FILE_SELECT_DATA.fileSelectCursors.completedFileOptions;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
@ -4587,8 +4587,8 @@ u8 FileSelectProcessFileSelection(void)
case 12:
if (FileSelectUpdateTilemap(0x20))
{
if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2)
FILE_SELECT_DATA.fileSelectData.completedFileOptions = 0;
if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2)
FILE_SELECT_DATA.fileSelectCursors.completedFileOptions = 0;
FILE_SELECT_DATA.subroutineStage = 5;
}
break;
@ -4596,7 +4596,7 @@ u8 FileSelectProcessFileSelection(void)
case 13:
FILE_SELECT_DATA.subroutineTimer = 0;
if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 0)
if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 0)
{
FILE_SELECT_DATA.unk_3A = 1;
FILE_SELECT_DATA.subroutineStage = 34;
@ -4619,8 +4619,8 @@ u8 FileSelectProcessFileSelection(void)
case 16:
if (FileSelectUpdateTilemap(0x22))
{
FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted = sFileSelectionData_Empty.confirmOverwritingCompleted;
unk_7e3fc(6, FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted);
FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted = sFileSelectionData_Empty.confirmOverwritingCompleted;
unk_7e3fc(6, FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted);
FILE_SELECT_DATA.subroutineStage++;
}
break;
@ -4635,7 +4635,7 @@ u8 FileSelectProcessFileSelection(void)
FILE_SELECT_DATA.subroutineTimer = 0;
action = 0x80;
if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted != 0)
SoundPlay(0x209);
else
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_ACCEPT_CONFIRM_MENU);
@ -4651,19 +4651,19 @@ u8 FileSelectProcessFileSelection(void)
}
else if (gChangedInput & KEY_LEFT)
{
if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted != 0)
{
action = 0;
FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted = 0;
FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted = 0;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
else if (gChangedInput & KEY_RIGHT)
{
if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted == 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted == 0)
{
action = 1;
FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted = 1;
FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted = 1;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
@ -4677,13 +4677,13 @@ u8 FileSelectProcessFileSelection(void)
if (FILE_SELECT_DATA.subroutineTimer <= 10)
break;
if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted != 0)
if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted != 0)
{
FILE_SELECT_DATA.subroutineStage = 19;
break;
}
if (FILE_SELECT_DATA.fileSelectData.completedFileOptions != 2)
if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions != 2)
{
unk_7e3fc(6, 0x81);
FileSelectUpdateTilemap(0x23);
@ -4691,13 +4691,13 @@ u8 FileSelectProcessFileSelection(void)
break;
}
FILE_SELECT_DATA.unk_3A = FILE_SELECT_DATA.fileSelectData.completedFileOptions;
FILE_SELECT_DATA.unk_3A = FILE_SELECT_DATA.fileSelectCursors.completedFileOptions;
FILE_SELECT_DATA.subroutineStage = 34;
break;
case 19:
FileSelectUpdateTilemap(0x25);
unk_7e3fc(5, FILE_SELECT_DATA.fileSelectData.completedFileOptions);
unk_7e3fc(5, FILE_SELECT_DATA.fileSelectCursors.completedFileOptions);
FILE_SELECT_DATA.subroutineStage = 11;
break;
@ -4709,9 +4709,9 @@ u8 FileSelectProcessFileSelection(void)
case 21:
FILE_SELECT_DATA.subroutineStage = 28;
if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2)
if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2)
{
FILE_SELECT_DATA.fileSelectData.difficulty = 1;
FILE_SELECT_DATA.fileSelectCursors.difficulty = 1;
}
else
{
@ -4732,7 +4732,7 @@ u8 FileSelectProcessFileSelection(void)
case 23:
if (FileSelectUpdateTilemap(0x3))
{
unk_7e3fc(1, FILE_SELECT_DATA.fileSelectData.japaneseText);
unk_7e3fc(1, FILE_SELECT_DATA.fileSelectCursors.japaneseText);
FILE_SELECT_DATA.subroutineStage++;
}
break;
@ -4758,19 +4758,19 @@ u8 FileSelectProcessFileSelection(void)
}
else if (gChangedInput & KEY_UP)
{
if (FILE_SELECT_DATA.fileSelectData.japaneseText != 0)
if (FILE_SELECT_DATA.fileSelectCursors.japaneseText != 0)
{
action = 0;
FILE_SELECT_DATA.fileSelectData.japaneseText = 0;
FILE_SELECT_DATA.fileSelectCursors.japaneseText = 0;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
else if (gChangedInput & KEY_DOWN)
{
if (FILE_SELECT_DATA.fileSelectData.japaneseText == 0)
if (FILE_SELECT_DATA.fileSelectCursors.japaneseText == 0)
{
action = 1;
FILE_SELECT_DATA.fileSelectData.japaneseText = 1;
FILE_SELECT_DATA.fileSelectCursors.japaneseText = 1;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
@ -4797,7 +4797,7 @@ u8 FileSelectProcessFileSelection(void)
if (FILE_SELECT_DATA.subroutineTimer <= 10)
break;
if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2)
if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2)
{
FILE_SELECT_DATA.unk_3A = 3;
FILE_SELECT_DATA.subroutineStage = 34;
@ -4813,7 +4813,7 @@ u8 FileSelectProcessFileSelection(void)
if (FileSelectUpdateTilemap(0x5))
{
FILE_SELECT_DATA.subroutineStage = 28;
FILE_SELECT_DATA.fileSelectData.difficulty = FILE_SELECT_DATA.fileSelectData.japaneseText ^ 1;
FILE_SELECT_DATA.fileSelectCursors.difficulty = FILE_SELECT_DATA.fileSelectCursors.japaneseText ^ 1;
}
break;
@ -4825,7 +4825,7 @@ u8 FileSelectProcessFileSelection(void)
case 29:
if (FileSelectUpdateTilemap(TILEMAP_REQUEST_DIFFICULTY_SPAWN))
{
unk_7e3fc(2, FILE_SELECT_DATA.fileSelectData.difficulty);
unk_7e3fc(2, FILE_SELECT_DATA.fileSelectCursors.difficulty);
FILE_SELECT_DATA.subroutineStage++;
}
break;
@ -4851,9 +4851,9 @@ u8 FileSelectProcessFileSelection(void)
}
else if (gChangedInput & KEY_UP)
{
if (FILE_SELECT_DATA.fileSelectData.difficulty != 0)
if (FILE_SELECT_DATA.fileSelectCursors.difficulty != 0)
{
action = --FILE_SELECT_DATA.fileSelectData.difficulty;
action = --FILE_SELECT_DATA.fileSelectCursors.difficulty;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
@ -4861,15 +4861,15 @@ u8 FileSelectProcessFileSelection(void)
{
if (FILE_SELECT_DATA.unk_38 == 0x13)
{
if (FILE_SELECT_DATA.fileSelectData.difficulty <= 1)
if (FILE_SELECT_DATA.fileSelectCursors.difficulty <= 1)
{
action = ++FILE_SELECT_DATA.fileSelectData.difficulty;
action = ++FILE_SELECT_DATA.fileSelectCursors.difficulty;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
else if (FILE_SELECT_DATA.fileSelectData.difficulty == 0)
else if (FILE_SELECT_DATA.fileSelectCursors.difficulty == 0)
{
action = ++FILE_SELECT_DATA.fileSelectData.difficulty;
action = ++FILE_SELECT_DATA.fileSelectCursors.difficulty;
FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR);
}
}
@ -4937,22 +4937,22 @@ u8 FileSelectProcessFileSelection(void)
break;
case 1:
unk_7e3fc(5, FILE_SELECT_DATA.fileSelectData.completedFileOptions);
unk_7e3fc(5, FILE_SELECT_DATA.fileSelectCursors.completedFileOptions);
FILE_SELECT_DATA.subroutineStage = 11;
break;
case 2:
unk_7e3fc(6, FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted);
unk_7e3fc(6, FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted);
FILE_SELECT_DATA.subroutineStage = 17;
break;
case 3:
unk_7e3fc(1, FILE_SELECT_DATA.fileSelectData.japaneseText);
unk_7e3fc(1, FILE_SELECT_DATA.fileSelectCursors.japaneseText);
FILE_SELECT_DATA.subroutineStage = 24;
break;
case 4:
unk_7e3fc(2, FILE_SELECT_DATA.fileSelectData.difficulty);
unk_7e3fc(2, FILE_SELECT_DATA.fileSelectCursors.difficulty);
FILE_SELECT_DATA.subroutineStage = 30;
break;
}

View File

@ -6,6 +6,7 @@
#include "data/menus/status_screen_data.h"
#include "data/menus/pause_screen_data.h"
#include "data/menus/internal_pause_screen_data.h"
#include "data/menus/internal_status_screen_data.h"
#include "constants/connection.h"
#include "constants/demo.h"

View File

@ -4,6 +4,7 @@
#include "data/text_data.h"
#include "data/text_pointers.h"
#include "data/internal_text_data.h"
#include "data/shortcut_pointers.h"
#include "data/menus/pause_screen_data.h"