mirror of https://github.com/zeldaret/mm.git
File Select (1 Non-Matching) (#1158)
* Everything below Main OK, and some small ones at the top * 3 more short ones * FileChoose_Main * SelectModeUpdate/Draw * SelectMode update functions done * 2 more small ones * ConfigModeDraw * SetWindowVtx * FileChoose_FadeInMenuElements * Rest of the Config Mode Update Functions * Minor cleanup * FileChoose_UpdateMainMenu * Make xml for title_static * Minor correction * One nasty draw, thanks Synray Co-Authored-By: Synray <31429825+Synray@users.noreply.github.com> * import data * some cleanup * import OoT docs * missed some docs * some progress * FileSelect_SetWindowContentVtx WIP * improve FileSelect_SetWindowContentVtx * match z_file_nameset_NES * cleanup and docs * title static * a few more functions * even more functions * small cleanup * Data Cleanup * 2 more matches * z_file_choose_80807940 OK * cleanup * fix merge master * FileSelect_DrawFileInfo wip * small cleanup * minor * fix merge * match FileSelect_DrawFileInfo * cleanup * fix merge * fix merge * sram cleanup * document select mode * many docs * more docs * more cleanup * small nitpick * consistency * more cleanup * more cleanup * small * small typos * octal bad * pr review * noop * elliptic review * more review * non-matching * oops * more suggestions * keyboard formatting * fix master * sound * padding --------- Co-authored-by: Elliptic Ellipsis <elliptic.ellipsis@gmail.com> Co-authored-by: Synray <31429825+Synray@users.noreply.github.com>
This commit is contained in:
parent
cd53dd317f
commit
8cabbb1a2b
|
@ -0,0 +1,126 @@
|
|||
<Root>
|
||||
<File Name="title_static" Segment="1">
|
||||
<Texture Name="gFileSelNoFileToCopyENGTex" OutName="no_file_to_copy_eng" Format="ia8" Width="128" Height="16" Offset="0x0"/>
|
||||
<Texture Name="gFileSelNoFileToEraseENGTex" OutName="no_file_to_erase_eng" Format="ia8" Width="128" Height="16" Offset="0x800"/>
|
||||
<Texture Name="gFileSelNoEmptyFileENGTex" OutName="no_empty_file_eng" Format="ia8" Width="128" Height="16" Offset="0x1000"/>
|
||||
<Texture Name="gFileSelFileEmptyENGTex" OutName="file_empty_eng" Format="ia8" Width="128" Height="16" Offset="0x1800"/>
|
||||
<Texture Name="gFileSelFileInUseENGTex" OutName="file_in_use_eng" Format="ia8" Width="128" Height="16" Offset="0x2000"/>
|
||||
|
||||
<Texture Name="gFileSelConnectorTex" OutName="connector" Format="ia8" Width="24" Height="16" Offset="0x2800"/>
|
||||
|
||||
<Texture Name="gFileSelCopyWhichFileENGTex" OutName="copy_which_file_eng" Format="ia8" Width="128" Height="16" Offset="0x2980"/>
|
||||
<Texture Name="gFileSelCopyToWhichFileENGTex" OutName="copy_to_which_file_eng" Format="ia8" Width="128" Height="16" Offset="0x3180"/>
|
||||
<Texture Name="gFileSelAreYouSureCopyENGTex" OutName="are_you_sure_copy_eng" Format="ia8" Width="128" Height="16" Offset="0x3980"/>
|
||||
<Texture Name="gFileSelFileCopiedENGTex" OutName="file_copied_eng" Format="ia8" Width="128" Height="16" Offset="0x4180"/>
|
||||
|
||||
<Texture Name="gFileSelPleaseSelectAFileENGTex" OutName="please_select_a_file_eng" Format="ia8" Width="128" Height="16" Offset="0x4980"/>
|
||||
<Texture Name="gFileSelOpenThisFileENGTex" OutName="open_this_file_eng" Format="ia8" Width="128" Height="16" Offset="0x5180"/>
|
||||
|
||||
<Texture Name="gFileSelEraseWhichFileENGTex" OutName="erase_which_file_eng" Format="ia8" Width="128" Height="16" Offset="0x5980"/>
|
||||
<Texture Name="gFileSelAreYouSureEraseENGTex" OutName="are_you_sure_erase_eng" Format="ia8" Width="128" Height="16" Offset="0x6180"/>
|
||||
<Texture Name="gFileSelFileErasedENGTex" OutName="file_erased_eng" Format="ia8" Width="128" Height="16" Offset="0x6980"/>
|
||||
|
||||
<Texture Name="gFileSelOptionsENGTex" OutName="options_eng" Format="ia8" Width="128" Height="16" Offset="0x7180"/>
|
||||
<Texture Name="gFileSelNameENGTex" OutName="name_eng" Format="ia8" Width="56" Height="16" Offset="0x7980"/>
|
||||
<Texture Name="gFileSelSurroundENGTex" OutName="surround_eng" Format="ia8" Width="48" Height="16" Offset="0x7D00"/>
|
||||
<Texture Name="gFileSelHeadsetENGTex" OutName="headset_eng" Format="ia8" Width="48" Height="16" Offset="0x8000"/>
|
||||
<Texture Name="gFileSelMonoENGTex" OutName="mono_eng" Format="ia8" Width="48" Height="16" Offset="0x8300"/>
|
||||
<Texture Name="gFileSelSoundENGTex" OutName="sound_eng" Format="ia8" Width="64" Height="16" Offset="0x8600"/>
|
||||
<Texture Name="gFileSelStereoENGTex" OutName="stereo_eng" Format="ia8" Width="48" Height="16" Offset="0x8A00"/>
|
||||
<Texture Name="gFileSelTargetingENGTex" OutName="targeting_eng" Format="ia8" Width="64" Height="16" Offset="0x8D00"/>
|
||||
<Texture Name="gFileSelSwitchENGTex" OutName="switch_eng" Format="ia8" Width="48" Height="16" Offset="0x9100"/>
|
||||
<Texture Name="gFileSelHoldENGTex" OutName="hold_eng" Format="ia8" Width="48" Height="16" Offset="0x9400"/>
|
||||
<Texture Name="gFileSelCheckBrightnessENGTex" OutName="check_brightness_eng" Format="ia8" Width="96" Height="16" Offset="0x9700"/>
|
||||
<Texture Name="gFileSelDolbySurroundLogoENGTex" OutName="dolby_surround_logo_eng" Format="i8" Width="48" Height="17" Offset="0x9D00"/>
|
||||
|
||||
<Texture Name="gFileSelDecideCancelENGTex" OutName="decide_cancel_eng" Format="ia8" Width="144" Height="16" Offset="0xA030"/>
|
||||
<Texture Name="gFileSelDecideSaveENGTex" OutName="decide_save_eng" Format="ia8" Width="152" Height="16" Offset="0xA930"/>
|
||||
<Texture Name="gFileSelPleaseWaitENGTex" OutName="please_wait_eng" Format="ia8" Width="144" Height="16" Offset="0xB2B0"/>
|
||||
|
||||
<Texture Name="gFileSelWindow00Tex" OutName="window_00" Format="ia16" Width="64" Height="32" Offset="0xBBB0"/>
|
||||
<Texture Name="gFileSelWindow01Tex" OutName="window_01" Format="ia16" Width="64" Height="32" Offset="0xCBB0"/>
|
||||
<Texture Name="gFileSelWindow02Tex" OutName="window_02" Format="ia16" Width="64" Height="32" Offset="0xDBB0"/>
|
||||
<Texture Name="gFileSelWindow03Tex" OutName="window_03" Format="ia16" Width="48" Height="32" Offset="0xEBB0"/>
|
||||
<Texture Name="gFileSelWindow10Tex" OutName="window_10" Format="ia16" Width="64" Height="32" Offset="0xF7B0"/>
|
||||
<Texture Name="gFileSelWindow11Tex" OutName="window_11" Format="ia16" Width="64" Height="32" Offset="0x107B0"/>
|
||||
<Texture Name="gFileSelWindow12Tex" OutName="window_12" Format="ia16" Width="64" Height="32" Offset="0x117B0"/>
|
||||
<Texture Name="gFileSelWindow13Tex" OutName="window_13" Format="ia16" Width="48" Height="32" Offset="0x127B0"/>
|
||||
<Texture Name="gFileSelWindow20Tex" OutName="window_20" Format="ia16" Width="64" Height="32" Offset="0x133B0"/>
|
||||
<Texture Name="gFileSelWindow21Tex" OutName="window_21" Format="ia16" Width="64" Height="32" Offset="0x143B0"/>
|
||||
<Texture Name="gFileSelWindow22Tex" OutName="window_22" Format="ia16" Width="64" Height="32" Offset="0x153B0"/>
|
||||
<Texture Name="gFileSelWindow23Tex" OutName="window_23" Format="ia16" Width="48" Height="32" Offset="0x163B0"/>
|
||||
<Texture Name="gFileSelWindow30Tex" OutName="window_30" Format="ia16" Width="64" Height="32" Offset="0x16FB0"/>
|
||||
<Texture Name="gFileSelWindow31Tex" OutName="window_31" Format="ia16" Width="64" Height="32" Offset="0x17FB0"/>
|
||||
<Texture Name="gFileSelWindow32Tex" OutName="window_32" Format="ia16" Width="64" Height="32" Offset="0x18FB0"/>
|
||||
<Texture Name="gFileSelWindow33Tex" OutName="window_33" Format="ia16" Width="48" Height="32" Offset="0x19FB0"/>
|
||||
<Texture Name="gFileSelWindow40Tex" OutName="window_40" Format="ia16" Width="64" Height="32" Offset="0x1ABB0"/>
|
||||
<Texture Name="gFileSelWindow41Tex" OutName="window_41" Format="ia16" Width="64" Height="32" Offset="0x1BBB0"/>
|
||||
<Texture Name="gFileSelWindow42Tex" OutName="window_42" Format="ia16" Width="64" Height="32" Offset="0x1CBB0"/>
|
||||
<Texture Name="gFileSelWindow43Tex" OutName="window_43" Format="ia16" Width="48" Height="32" Offset="0x1DBB0"/>
|
||||
|
||||
<Texture Name="gFileSelCopyButtonENGTex" OutName="copy_button_eng" Format="ia16" Width="64" Height="16" Offset="0x1E7B0"/>
|
||||
|
||||
<Texture Name="gFileSelFile1ButtonENGTex" OutName="file_1_button_eng" Format="ia16" Width="64" Height="16" Offset="0x1EFB0"/>
|
||||
<Texture Name="gFileSelFile2ButtonENGTex" OutName="file_2_button_eng" Format="ia16" Width="64" Height="16" Offset="0x1F7B0"/>
|
||||
<Texture Name="gFileSelFile3ButtonENGTex" OutName="file_3_button_eng" Format="ia16" Width="64" Height="16" Offset="0x1FFB0"/>
|
||||
|
||||
<Texture Name="gFileSelYesButtonENGTex" OutName="yes_button_eng" Format="ia16" Width="64" Height="16" Offset="0x207B0"/>
|
||||
<Texture Name="gFileSelEraseButtonENGTex" OutName="erase_button_eng" Format="ia16" Width="64" Height="16" Offset="0x20FB0"/>
|
||||
<Texture Name="gFileSelENDButtonENGTex" OutName="end_button_eng" Format="ia16" Width="44" Height="16" Offset="0x217B0"/>
|
||||
<Texture Name="gFileSelBackspaceButtonTex" OutName="backspace_button" Format="ia16" Width="28" Height="16" Offset="0x21D30"/>
|
||||
|
||||
<Texture Name="gFileSelFileNameBoxTex" OutName="file_name_box" Format="ia16" Width="108" Height="16" Offset="0x220B0"/>
|
||||
|
||||
<Texture Name="gFileSelFileInfoBox0Tex" OutName="file_info_box_0" Format="ia16" Width="36" Height="56" Offset="0x22E30"/>
|
||||
<Texture Name="gFileSelFileInfoBox1Tex" OutName="file_info_box_1" Format="ia16" Width="36" Height="56" Offset="0x23DF0"/>
|
||||
<Texture Name="gFileSelFileInfoBox2Tex" OutName="file_info_box_2" Format="ia16" Width="36" Height="56" Offset="0x24DB0"/>
|
||||
<Texture Name="gFileSelFileInfoBox3Tex" OutName="file_info_box_3" Format="ia16" Width="36" Height="56" Offset="0x25D70"/>
|
||||
<Texture Name="gFileSelFileInfoBox4Tex" OutName="file_info_box_4" Format="ia16" Width="24" Height="56" Offset="0x26D30"/>
|
||||
|
||||
<Texture Name="gFileSelOptionsButtonENGTex" OutName="options_button_eng" Format="ia16" Width="64" Height="16" Offset="0x277B0"/>
|
||||
|
||||
<Texture Name="gFileSelQuitButtonENGTex" OutName="quit_button_eng" Format="ia16" Width="64" Height="16" Offset="0x27FB0"/>
|
||||
|
||||
<!-- Extension for owl save information -->
|
||||
<Texture Name="gFileSelFileExtraInfoBox0Tex" OutName="file_extra_info_box_0" Format="ia16" Width="28" Height="56" Offset="0x287B0"/>
|
||||
<Texture Name="gFileSelFileExtraInfoBox1Tex" OutName="file_extra_info_box_1" Format="ia16" Width="28" Height="56" Offset="0x293F0"/>
|
||||
|
||||
<!-- Used for closed owl save file -->
|
||||
<Texture Name="gFileSelBlankButtonTex" OutName="file_blank_button" Format="ia16" Width="52" Height="16" Offset="0x2A030"/>
|
||||
|
||||
<Texture Name="gFileSelOptionsDividerTex" OutName="options_divider" Format="ia4" Width="256" Height="2" Offset="0x2A6B0"/>
|
||||
<Texture Name="gFileSelBrightnessCheckTex" OutName="brightness_check" Format="ia4" Width="96" Height="16" Offset="0x2A7B0"/>
|
||||
|
||||
<Texture Name="gFileSelBigButtonHighlightTex" OutName="big_button_highlight" Format="i8" Width="72" Height="24" Offset="0x2AAB0"/>
|
||||
<Texture Name="gFileSelCharHighlightTex" OutName="char_highlight" Format="i8" Width="24" Height="24" Offset="0x2B170"/>
|
||||
<Texture Name="gFileSelMediumButtonHighlightTex" OutName="medium_button_highlight" Format="i8" Width="56" Height="24" Offset="0x2B3B0"/>
|
||||
<Texture Name="gFileSelSmallButtonHighlightTex" OutName="small_button_highlight" Format="i8" Width="40" Height="24" Offset="0x2B8F0"/>
|
||||
|
||||
<!-- Boss remains textures -->
|
||||
<Texture Name="gFileSelOdolwasRemainsTex" OutName="odolwas_remains" Format="rgba32" Width="32" Height="32" Offset="0x2BCB0"/>
|
||||
<Texture Name="gFileSelGohtsRemainsTex" OutName="gohts_remains" Format="rgba32" Width="32" Height="32" Offset="0x2CCB0"/>
|
||||
<Texture Name="gFileSelGyorgsRemainsTex" OutName="gyorgs_remains" Format="rgba32" Width="32" Height="32" Offset="0x2DCB0"/>
|
||||
<Texture Name="gFileSelTwinmoldsRemainsTex" OutName="twinmolds_remains" Format="rgba32" Width="32" Height="32" Offset="0x2ECB0"/>
|
||||
|
||||
<Texture Name="gFileSelOwlSaveIconTex" OutName="owl_save_icon" Format="rgba32" Width="24" Height="12" Offset="0x2FCB0"/>
|
||||
|
||||
<Texture Name="gFileSelFirstDayENGTex" OutName="first_day_eng" Format="i4" Width="48" Height="24" Offset="0x30130"/>
|
||||
<Texture Name="gFileSelSecondDayENGTex" OutName="second_day_eng" Format="i4" Width="48" Height="24" Offset="0x30370"/>
|
||||
<Texture Name="gFileSelFinalDayENGTex" OutName="final_day_eng" Format="i4" Width="48" Height="24" Offset="0x305B0"/>
|
||||
|
||||
<Texture Name="gFileSelSaveXJPNTex" OutName="save_x_jpn" Format="i4" Width="32" Height="16" Offset="0x307F0"/>
|
||||
|
||||
<Texture Name="gFileSelMASKSENGTex" OutName="masks_eng" Format="i4" Width="64" Height="16" Offset="0x308F0"/>
|
||||
|
||||
<Texture Name="gFileSel0QuarterHeartENGTex" OutName="0_quarter_heart" Format="ia8" Width="24" Height="16" Offset="0x30AF0"/>
|
||||
<Texture Name="gFileSel1QuarterHeartENGTex" OutName="1_quarter_heart" Format="ia8" Width="24" Height="16" Offset="0x30C70"/>
|
||||
<Texture Name="gFileSel2QuarterHeartENGTex" OutName="2_quarter_heart" Format="ia8" Width="24" Height="16" Offset="0x30DF0"/>
|
||||
<Texture Name="gFileSel3QuarterHeartENGTex" OutName="3_quarter_heart" Format="ia8" Width="24" Height="16" Offset="0x30F70"/>
|
||||
|
||||
<Texture Name="gFileSelRupeeTex" OutName="rupee" Format="ia8" Width="16" Height="16" Offset="0x310F0"/>
|
||||
|
||||
<DList Name="gFileSelWindow1DL" Offset="0x311F0"/>
|
||||
<DList Name="gFileSelWindow2DL" Offset="0x31408"/>
|
||||
<DList Name="gFileSelWindow3DL" Offset="0x31618"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -0,0 +1,19 @@
|
|||
<Root>
|
||||
<File Name="ovl_file_choose" BaseAddress="0x80804010" RangeStart="0xFDE0" RangeEnd="0x101E0">
|
||||
<Array Name="D_80813DF0" Count="20" Offset="0xFDE0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80813F30" Count="32" Offset="0xFF20" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerTopVtx" Count="4" Offset="0x10120" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerMiddleVtx" Count="4" Offset="0x10160" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerBottomVtx" Count="4" Offset="0x101A0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
</Root>
|
|
@ -2218,7 +2218,8 @@ s32 SysFlashrom_IsBusy(void);
|
|||
s32 SysFlashrom_AwaitResult(void);
|
||||
void SysFlashrom_WriteDataSync(void* addr, u32 pageNum, u32 pageCount);
|
||||
|
||||
s32 func_80185F90(u32 param_1);
|
||||
s32 func_80185F90(u32 arg0);
|
||||
|
||||
u32 osFlashGetAddr(u32 pageNum);
|
||||
OSPiHandle* osFlashReInit(u8 latency, u8 pulse, u8 pageSize, u8 relDuration, u32 start);
|
||||
void osFlashChange(u32 flashNum);
|
||||
|
|
|
@ -273,45 +273,45 @@ typedef struct {
|
|||
/* 0x00 */ u16 unk_0;
|
||||
/* 0x02 */ u16 sceneTimeSpeed;
|
||||
/* 0x04 */ Vec3f sunPos;
|
||||
/* 0x10 */ u8 unk_10;
|
||||
/* 0x11 */ u8 unk_11;
|
||||
/* 0x10 */ u8 skybox1Index;
|
||||
/* 0x11 */ u8 skybox2Index;
|
||||
/* 0x12 */ u8 unk_12;
|
||||
/* 0x13 */ u8 unk_13;
|
||||
/* 0x13 */ u8 skyboxBlend;
|
||||
/* 0x14 */ u8 unk_14;
|
||||
/* 0x15 */ u8 skyboxDisabled;
|
||||
/* 0x16 */ u8 sunMoonDisabled;
|
||||
/* 0x17 */ u8 unk_17;
|
||||
/* 0x18 */ u8 unk_18;
|
||||
/* 0x19 */ u8 unk_19;
|
||||
/* 0x1A */ u16 unk_1A;
|
||||
/* 0x17 */ u8 skyboxConfig;
|
||||
/* 0x18 */ u8 changeSkyboxNextConfig;
|
||||
/* 0x19 */ u8 changeSkyboxState;
|
||||
/* 0x1A */ u16 changeSkyboxTimer;
|
||||
/* 0x1C */ u16 unk_1C;
|
||||
/* 0x1E */ u8 unk_1E;
|
||||
/* 0x1F */ u8 unk_1F;
|
||||
/* 0x20 */ u8 unk_20;
|
||||
/* 0x21 */ u8 unk_21;
|
||||
/* 0x22 */ u16 unk_22;
|
||||
/* 0x24 */ u16 unk_24;
|
||||
/* 0x1E */ u8 lightMode;
|
||||
/* 0x1F */ u8 lightConfig;
|
||||
/* 0x20 */ u8 changeLightNextConfig;
|
||||
/* 0x21 */ u8 changeLightEnabled;
|
||||
/* 0x22 */ u16 changeLightTimer;
|
||||
/* 0x24 */ u16 changeDuration;
|
||||
/* 0x26 */ u8 unk_26;
|
||||
/* 0x28 */ LightInfo dirLight1; // sun 1
|
||||
/* 0x36 */ LightInfo unk_36; // sun 2
|
||||
/* 0x44 */ s8 unk_44;
|
||||
/* 0x48 */ DmaRequest unk_48;
|
||||
/* 0x68 */ OSMesgQueue unk_68;
|
||||
/* 0x80 */ OSMesg unk_80;
|
||||
/* 0x84 */ f32 unk_84;
|
||||
/* 0x88 */ f32 unk_88;
|
||||
/* 0x44 */ s8 skyboxDmaState;
|
||||
/* 0x48 */ DmaRequest dmaRequest;
|
||||
/* 0x68 */ OSMesgQueue loadQueue;
|
||||
/* 0x80 */ OSMesg loadMsg;
|
||||
/* 0x84 */ f32 glareAlpha;
|
||||
/* 0x88 */ f32 lensFlareAlphaScale;
|
||||
/* 0x8C */ EnvLightSettings lightSettings;
|
||||
/* 0xA8 */ f32 unk_A8;
|
||||
/* 0xAC */ Vec3s windDir;
|
||||
/* 0xB4 */ f32 windSpeed;
|
||||
/* 0xB8 */ u8 numLightSettings;
|
||||
/* 0xBC */ LightSettings* lightSettingsList;
|
||||
/* 0xC0 */ u8 unk_C0;
|
||||
/* 0xC1 */ u8 unk_C1;
|
||||
/* 0xC2 */ u8 unk_C2;
|
||||
/* 0xC0 */ u8 lightBlendEnabled;
|
||||
/* 0xC1 */ u8 lightSetting;
|
||||
/* 0xC2 */ u8 prevLightSetting;
|
||||
/* 0xC3 */ u8 lightSettingOverride;
|
||||
/* 0xC4 */ LightSettings unk_C4;
|
||||
/* 0xDA */ u16 unk_DA;
|
||||
/* 0xDA */ u16 lightBlendRateOverride;
|
||||
/* 0xDC */ f32 lightBlend;
|
||||
/* 0xE0 */ u8 unk_E0;
|
||||
/* 0xE1 */ u8 unk_E1;
|
||||
|
|
|
@ -10,6 +10,13 @@ struct GameState;
|
|||
struct PlayState;
|
||||
struct FileSelectState;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SAVE_AUDIO_STEREO,
|
||||
/* 1 */ SAVE_AUDIO_MONO,
|
||||
/* 2 */ SAVE_AUDIO_HEADSET,
|
||||
/* 3 */ SAVE_AUDIO_SURROUND
|
||||
} AudioOption;
|
||||
|
||||
// TODO: properly name DOWN, RETURN and TOP
|
||||
typedef enum RespawnMode {
|
||||
/* 0 */ RESPAWN_MODE_DOWN, // "RESTART_MODE_DOWN"
|
||||
|
@ -157,13 +164,13 @@ typedef enum {
|
|||
#define PICTO_PHOTO_COMPRESSED_SIZE (PICTO_PHOTO_SIZE * 5 / 8)
|
||||
|
||||
typedef struct SramContext {
|
||||
/* 0x00 */ u8* readBuff;
|
||||
/* 0x04 */ u8 *saveBuf;
|
||||
/* 0x00 */ u8* noFlashSaveBuf; // Never allocated memory
|
||||
/* 0x04 */ u8* saveBuf;
|
||||
/* 0x08 */ char unk_08[4];
|
||||
/* 0x0C */ s16 status;
|
||||
/* 0x10 */ u32 curPage;
|
||||
/* 0x14 */ u32 numPages;
|
||||
/* 0x18 */ OSTime unk_18;
|
||||
/* 0x18 */ OSTime startWriteOsTime;
|
||||
/* 0x20 */ s16 unk_20;
|
||||
/* 0x22 */ s16 unk_22;
|
||||
/* 0x24 */ s16 unk_24;
|
||||
|
@ -226,14 +233,14 @@ typedef struct CycleSceneFlags {
|
|||
typedef struct SaveOptions {
|
||||
/* 0x0 */ u16 optionId; // "option_id"
|
||||
/* 0x2 */ u8 language; // "j_n"
|
||||
/* 0x3 */ s8 audioSetting; // "s_sound"
|
||||
/* 0x3 */ u8 audioSetting; // "s_sound"
|
||||
/* 0x4 */ u8 languageSetting; // "language"
|
||||
/* 0x5 */ u8 zTargetSetting; // "z_attention", 0: Switch; 1: Hold
|
||||
} SaveOptions; // size = 0x6
|
||||
|
||||
typedef struct SavePlayerData {
|
||||
/* 0x00 */ char newf[6]; // "newf" Will always be "ZELDA3 for a valid save
|
||||
/* 0x06 */ u16 deaths; // "savect"
|
||||
/* 0x06 */ u16 threeDayResetCount; // "savect"
|
||||
/* 0x08 */ char playerName[8]; // "player_name"
|
||||
/* 0x10 */ s16 healthCapacity; // "max_life"
|
||||
/* 0x12 */ s16 health; // "now_life"
|
||||
|
@ -337,11 +344,11 @@ typedef struct SaveContext {
|
|||
/* 0x3DB4 */ f32 entranceSpeed; // "player_wipe_speedF"
|
||||
/* 0x3DB8 */ u16 entranceSound; // "player_wipe_door_SE"
|
||||
/* 0x3DBA */ u8 unk_3DBA; // "player_wipe_item"
|
||||
/* 0x3DBB */ u8 unk_3DBB; // "next_walk"
|
||||
/* 0x3DBB */ u8 retainWeatherMode; // "next_walk"
|
||||
/* 0x3DBC */ s16 dogParams; // OoT leftover. "dog_flag"
|
||||
/* 0x3DBE */ u8 envHazardTextTriggerFlags; // "guide_status"
|
||||
/* 0x3DBF */ u8 showTitleCard; // "name_display"
|
||||
/* 0x3DC0 */ s16 unk_3DC0; // "shield_magic_timer"
|
||||
/* 0x3DC0 */ s16 nayrusLoveTimer; // remnant of OoT, "shield_magic_timer"
|
||||
/* 0x3DC2 */ u8 unk_3DC2; // "pad1"
|
||||
/* 0x3DC8 */ OSTime postmanTimerStopOsTime; // The osTime when the timer stops for the postman minigame. "get_time"
|
||||
/* 0x3DD0 */ u8 timerStates[TIMER_ID_MAX]; // See the `TimerState` enum. "event_fg"
|
||||
|
@ -374,13 +381,13 @@ typedef struct SaveContext {
|
|||
/* 0x3F3A */ u16 minigameScore; // "yabusame_total"
|
||||
/* 0x3F3C */ u16 minigameHiddenScore; // "yabusame_out_ct"
|
||||
/* 0x3F3E */ u8 unk_3F3E; // "no_save"
|
||||
/* 0x3F3F */ u8 unk_3F3F; // "flash_flag"
|
||||
/* 0x3F3F */ u8 flashSaveAvailable; // "flash_flag"
|
||||
/* 0x3F40 */ SaveOptions options;
|
||||
/* 0x3F46 */ u16 unk_3F46; // "NottoriBgm"
|
||||
/* 0x3F46 */ u16 forcedSeqId; // "NottoriBgm"
|
||||
/* 0x3F48 */ u8 cutsceneTransitionControl; // "fade_go"
|
||||
/* 0x3F4A */ u16 nextCutsceneIndex; // "next_daytime"
|
||||
/* 0x3F4C */ u8 cutsceneTrigger; // "doukidemo"
|
||||
/* 0x3F4D */ u8 unk_3F4D; // "Kenjya_no"
|
||||
/* 0x3F4D */ u8 chamberCutsceneNum; // remnant of OoT "Kenjya_no"
|
||||
/* 0x3F4E */ u16 nextDayTime; // "next_zelda_time"
|
||||
/* 0x3F50 */ u8 transFadeDuration; // "fade_speed"
|
||||
/* 0x3F51 */ u8 transWipeSpeed; // "wipe_speed" transition related
|
||||
|
@ -1575,28 +1582,28 @@ void Sram_InitDebugSave(void);
|
|||
void Sram_ResetSaveFromMoonCrash(SramContext* sramCtx);
|
||||
void Sram_OpenSave(struct FileSelectState* fileSelect, SramContext* sramCtx);
|
||||
void func_8014546C(SramContext* sramCtx);
|
||||
void func_801457CC(struct FileSelectState* fileSelect, SramContext* sramCtx);
|
||||
void func_80146580(struct FileSelectState* fileSelect2, SramContext* sramCtx, s32 fileNum);
|
||||
void func_80146628(struct FileSelectState* fileSelect2, SramContext* sramCtx);
|
||||
void func_801457CC(struct GameState* gameState, SramContext* sramCtx);
|
||||
void Sram_EraseSave(struct FileSelectState* fileSelect2, SramContext* sramCtx, s32 fileNum);
|
||||
void Sram_CopySave(struct FileSelectState* fileSelect2, SramContext* sramCtx);
|
||||
void Sram_InitSave(struct FileSelectState* fileSelect2, SramContext* sramCtx);
|
||||
void func_80146DF8(SramContext* sramCtx);
|
||||
void Sram_WriteSaveOptionsToBuffer(SramContext* sramCtx);
|
||||
void Sram_InitSram(struct GameState* gameState, SramContext* sramCtx);
|
||||
void Sram_Alloc(struct GameState* gameState, SramContext* sramCtx);
|
||||
void Sram_SaveSpecialEnterClockTown(struct PlayState* play);
|
||||
void Sram_SaveSpecialNewDay(struct PlayState* play);
|
||||
void func_80147008(SramContext* sramCtx, u32 curPage, u32 numPages);
|
||||
void func_80147020(SramContext* sramCtx);
|
||||
void func_80147068(SramContext* sramCtx);
|
||||
void func_80147138(SramContext* sramCtx, s32 curPage, s32 numPages);
|
||||
void func_80147150(SramContext* sramCtx);
|
||||
void func_80147198(SramContext* sramCtx);
|
||||
void Sram_SetFlashPagesDefault(SramContext* sramCtx, u32 curPage, u32 numPages);
|
||||
void Sram_StartWriteToFlashDefault(SramContext* sramCtx);
|
||||
void Sram_UpdateWriteToFlashDefault(SramContext* sramCtx);
|
||||
void Sram_SetFlashPagesOwlSave(SramContext* sramCtx, s32 curPage, s32 numPages);
|
||||
void Sram_StartWriteToFlashOwlSave(SramContext* sramCtx);
|
||||
void Sram_UpdateWriteToFlashOwlSave(SramContext* sramCtx);
|
||||
|
||||
extern s32 D_801C6798[];
|
||||
extern u32 gSramSlotOffsets[];
|
||||
extern u8 gAmmoItems[];
|
||||
extern s32 D_801C67C8[];
|
||||
extern s32 D_801C67F0[];
|
||||
extern s32 D_801C6818[];
|
||||
extern s32 D_801C6840[];
|
||||
extern s32 D_801C6850[];
|
||||
extern s32 gFlashSaveStartPages[];
|
||||
extern s32 gFlashSaveNumPages[];
|
||||
extern s32 gFlashSpecialSaveNumPages[];
|
||||
extern s32 gFlashOwlSaveStartPages[];
|
||||
extern s32 gFlashOwlSaveNumPages[];
|
||||
|
||||
#endif
|
||||
|
|
|
@ -130,8 +130,8 @@ typedef struct {
|
|||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x4 */ u8 skyboxId;
|
||||
/* 0x5 */ u8 unk5;
|
||||
/* 0x6 */ u8 unk6;
|
||||
/* 0x5 */ u8 skyboxConfig;
|
||||
/* 0x6 */ u8 envLightMode;
|
||||
} SCmdSkyboxSettings; // size = 0x7
|
||||
|
||||
typedef struct {
|
||||
|
@ -719,6 +719,8 @@ typedef enum {
|
|||
*/
|
||||
#define ENTRANCE(scene, spawn) ((((ENTR_SCENE_##scene) & 0x7F) << 9) | (((spawn) & 0x1F) << 4))
|
||||
|
||||
#define ENTR_LOAD_OPENING -1
|
||||
|
||||
/*
|
||||
* Entrances used in cutscene destination. Includes scene layer that's immediately applied to `nextCutsceneIndex` and removed.
|
||||
* See `CutsceneScriptEntry.nextEntrance`
|
||||
|
|
14
spec
14
spec
|
@ -664,12 +664,15 @@ endseg
|
|||
beginseg
|
||||
name "ovl_file_choose"
|
||||
compress
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.o"
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.o"
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/z_file_nameset_NES.o"
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/z_file_choose_80807940.o"
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.o"
|
||||
include "build/data/ovl_file_choose/ovl_file_choose.data.o"
|
||||
include "build/data/ovl_file_choose/ovl_file_choose.bss.o"
|
||||
include "build/data/ovl_file_choose/ovl_file_choose.reloc.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_file_choose/ovl_file_choose.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
@ -8824,7 +8827,8 @@ beginseg
|
|||
name "title_static"
|
||||
compress
|
||||
romalign 0x1000
|
||||
include "build/baserom/title_static.o"
|
||||
include "build/assets/misc/title_static/title_static.o"
|
||||
number 1
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include "buffers.h"
|
||||
#include "system_malloc.h"
|
||||
#include "overlays/gamestates/ovl_daytelop/z_daytelop.h"
|
||||
#include "overlays/gamestates/ovl_file_choose/z_file_choose.h"
|
||||
#include "overlays/gamestates/ovl_file_choose/z_file_select.h"
|
||||
#include "overlays/gamestates/ovl_opening/z_opening.h"
|
||||
#include "overlays/gamestates/ovl_select/z_select.h"
|
||||
#include "overlays/gamestates/ovl_title/z_title.h"
|
||||
|
|
|
@ -8,10 +8,10 @@ void SaveContext_Init(void) {
|
|||
gSaveContext.save.playerForm = 0;
|
||||
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
|
||||
gSaveContext.ambienceId = AMBIENCE_ID_DISABLED;
|
||||
gSaveContext.unk_3F46 = NA_BGM_GENERAL_SFX;
|
||||
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFEF;
|
||||
gSaveContext.cutsceneTrigger = 0;
|
||||
gSaveContext.unk_3F4D = 0;
|
||||
gSaveContext.chamberCutsceneNum = 0;
|
||||
gSaveContext.nextDayTime = 0xFFFF;
|
||||
gSaveContext.skyboxTime = 0;
|
||||
gSaveContext.dogIsLost = true;
|
||||
|
@ -19,6 +19,6 @@ void SaveContext_Init(void) {
|
|||
gSaveContext.prevHudVisibility = HUD_VISIBILITY_ALL;
|
||||
|
||||
gSaveContext.options.language = 1;
|
||||
gSaveContext.options.audioSetting = 0;
|
||||
gSaveContext.options.audioSetting = SAVE_AUDIO_STEREO;
|
||||
gSaveContext.options.zTargetSetting = 0;
|
||||
}
|
||||
|
|
|
@ -171,15 +171,15 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
|
|||
|
||||
case CS_MISC_CLOUDY_SKY:
|
||||
if (isFirstFrame) {
|
||||
play->envCtx.unk_19 = 1;
|
||||
play->envCtx.unk_17 = 1;
|
||||
play->envCtx.unk_18 = 0;
|
||||
play->envCtx.unk_1A = 0x3C;
|
||||
play->envCtx.unk_21 = 1;
|
||||
play->envCtx.unk_1F = 0;
|
||||
play->envCtx.unk_20 = 1;
|
||||
play->envCtx.unk_24 = 0x3C;
|
||||
play->envCtx.unk_22 = play->envCtx.unk_24;
|
||||
play->envCtx.changeSkyboxState = 1;
|
||||
play->envCtx.skyboxConfig = 1;
|
||||
play->envCtx.changeSkyboxNextConfig = 0;
|
||||
play->envCtx.changeSkyboxTimer = 60;
|
||||
play->envCtx.changeLightEnabled = true;
|
||||
play->envCtx.lightConfig = 0;
|
||||
play->envCtx.changeLightNextConfig = 1;
|
||||
play->envCtx.changeDuration = 60;
|
||||
play->envCtx.changeLightTimer = play->envCtx.changeDuration;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -327,8 +327,7 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
|
|||
|
||||
case CS_MISC_MOON_CRASH_SKYBOX:
|
||||
if (isFirstFrame) {
|
||||
// skyboxConfig
|
||||
play->envCtx.unk_17 = 0xD;
|
||||
play->envCtx.skyboxConfig = 0xD;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "overlays/gamestates/ovl_daytelop/z_daytelop.h"
|
||||
#include "overlays/gamestates/ovl_file_choose/z_file_choose.h"
|
||||
#include "overlays/gamestates/ovl_file_choose/z_file_select.h"
|
||||
#include "overlays/gamestates/ovl_opening/z_opening.h"
|
||||
#include "overlays/gamestates/ovl_select/z_select.h"
|
||||
#include "overlays/gamestates/ovl_title/z_title.h"
|
||||
|
|
|
@ -49,7 +49,7 @@ void GameOver_Update(PlayState* play) {
|
|||
}
|
||||
}
|
||||
|
||||
gSaveContext.unk_3DC0 = 2000;
|
||||
gSaveContext.nayrusLoveTimer = 2000;
|
||||
gSaveContext.save.saveInfo.playerData.tatlTimer = 0;
|
||||
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
|
||||
gSaveContext.ambienceId = AMBIENCE_ID_DISABLED;
|
||||
|
|
|
@ -16,14 +16,14 @@ s16 sBeatingHeartsDDEnv[3];
|
|||
s16 sHeartsDDPrim[2][3];
|
||||
s16 sHeartsDDEnv[2][3];
|
||||
|
||||
TexturePtr sHeartTextures[] = {
|
||||
static TexturePtr sHeartTextures[] = {
|
||||
gHeartFullTex, gHeartQuarterTex, gHeartQuarterTex, gHeartQuarterTex,
|
||||
gHeartQuarterTex, gHeartQuarterTex, gHeartHalfTex, gHeartHalfTex,
|
||||
gHeartHalfTex, gHeartHalfTex, gHeartHalfTex, gHeartThreeQuarterTex,
|
||||
gHeartThreeQuarterTex, gHeartThreeQuarterTex, gHeartThreeQuarterTex, gHeartThreeQuarterTex,
|
||||
};
|
||||
|
||||
TexturePtr sHeartDDTextures[] = {
|
||||
static TexturePtr sHeartDDTextures[] = {
|
||||
gDefenseHeartFullTex, gDefenseHeartQuarterTex, gDefenseHeartQuarterTex,
|
||||
gDefenseHeartQuarterTex, gDefenseHeartQuarterTex, gDefenseHeartQuarterTex,
|
||||
gDefenseHeartHalfTex, gDefenseHeartHalfTex, gDefenseHeartHalfTex,
|
||||
|
|
|
@ -147,7 +147,7 @@ s16 D_801BF97C = 255;
|
|||
f32 D_801BF980 = 1.0f;
|
||||
s32 D_801BF984 = 0;
|
||||
|
||||
Gfx sScreenFillSetupDL[] = {
|
||||
static Gfx sScreenFillSetupDL[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
|
||||
G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z64view.h"
|
||||
#include "overlays/gamestates/ovl_daytelop/z_daytelop.h"
|
||||
#include "overlays/gamestates/ovl_opening/z_opening.h"
|
||||
#include "overlays/gamestates/ovl_file_choose/z_file_choose.h"
|
||||
#include "overlays/gamestates/ovl_file_choose/z_file_select.h"
|
||||
#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
|
||||
|
||||
s32 gDbgCamEnabled = false;
|
||||
|
@ -1036,9 +1036,9 @@ void Play_UpdateMain(PlayState* this) {
|
|||
|
||||
if (this->sramCtx.status != 0) {
|
||||
if (gSaveContext.save.isOwlSave) {
|
||||
func_80147198(&this->sramCtx);
|
||||
Sram_UpdateWriteToFlashOwlSave(&this->sramCtx);
|
||||
} else {
|
||||
func_80147068(&this->sramCtx);
|
||||
Sram_UpdateWriteToFlashDefault(&this->sramCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1272,8 +1272,8 @@ void Play_DrawMain(PlayState* this) {
|
|||
if ((this->skyboxId != SKYBOX_NONE) && !this->envCtx.skyboxDisabled) {
|
||||
if ((this->skyboxId == SKYBOX_NORMAL_SKY) || (this->skyboxId == SKYBOX_3)) {
|
||||
Environment_UpdateSkybox(this->skyboxId, &this->envCtx, &this->skyboxCtx);
|
||||
Skybox_Draw(&this->skyboxCtx, gfxCtx, this->skyboxId, this->envCtx.unk_13, this->view.eye.x,
|
||||
this->view.eye.y, this->view.eye.z);
|
||||
Skybox_Draw(&this->skyboxCtx, gfxCtx, this->skyboxId, this->envCtx.skyboxBlend,
|
||||
this->view.eye.x, this->view.eye.y, this->view.eye.z);
|
||||
} else if (!this->skyboxCtx.skyboxShouldDraw) {
|
||||
Skybox_Draw(&this->skyboxCtx, gfxCtx, this->skyboxId, 0, this->view.eye.x, this->view.eye.y,
|
||||
this->view.eye.z);
|
||||
|
@ -2217,7 +2217,7 @@ void Play_Init(GameState* thisx) {
|
|||
|
||||
if (((gSaveContext.gameMode != GAMEMODE_NORMAL) && (gSaveContext.gameMode != GAMEMODE_TITLE_SCREEN)) ||
|
||||
(gSaveContext.save.cutsceneIndex >= 0xFFF0)) {
|
||||
gSaveContext.unk_3DC0 = 0;
|
||||
gSaveContext.nayrusLoveTimer = 0;
|
||||
Magic_Reset(this);
|
||||
gSaveContext.sceneLayer = (gSaveContext.save.cutsceneIndex & 0xF) + 1;
|
||||
|
||||
|
|
|
@ -365,8 +365,8 @@ void Scene_LoadAreaTextures(PlayState* play, s32 fileIndex) {
|
|||
// SceneTableEntry Header Command 0x11: Skybox Settings
|
||||
void Scene_CommandSkyboxSettings(PlayState* play, SceneCmd* cmd) {
|
||||
play->skyboxId = cmd->skyboxSettings.skyboxId & 3;
|
||||
play->envCtx.unk_17 = play->envCtx.unk_18 = cmd->skyboxSettings.unk5;
|
||||
play->envCtx.unk_1E = cmd->skyboxSettings.unk6;
|
||||
play->envCtx.skyboxConfig = play->envCtx.changeSkyboxNextConfig = cmd->skyboxSettings.skyboxConfig;
|
||||
play->envCtx.lightMode = cmd->skyboxSettings.envLightMode;
|
||||
Scene_LoadAreaTextures(play, cmd->skyboxSettings.data1);
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -239,7 +239,7 @@ void func_80143324(PlayState* play, SkyboxContext* skyboxCtx, s16 skyboxId) {
|
|||
case SKYBOX_NORMAL_SKY:
|
||||
osCreateMesgQueue(&skyboxCtx->loadQueue, &skyboxCtx->loadMsg, 1);
|
||||
|
||||
if (play->envCtx.unk_10 == 0) {
|
||||
if (play->envCtx.skybox1Index == 0) {
|
||||
// Send a DMA request for the clear sky texture
|
||||
size = SEGMENT_ROM_SIZE(d2_fine_static);
|
||||
|
||||
|
@ -256,7 +256,7 @@ void func_80143324(PlayState* play, SkyboxContext* skyboxCtx, s16 skyboxId) {
|
|||
osRecvMesg(&skyboxCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
osCreateMesgQueue(&skyboxCtx->loadQueue, &skyboxCtx->loadMsg, 1);
|
||||
|
||||
if (play->envCtx.unk_11 == 0) {
|
||||
if (play->envCtx.skybox2Index == 0) {
|
||||
// Send a DMA request for the clear sky texture
|
||||
size = SEGMENT_ROM_SIZE(d2_fine_static);
|
||||
|
||||
|
|
|
@ -74,8 +74,8 @@ void DmChar01_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
|
||||
if (gSaveContext.sceneLayer == 0) {
|
||||
play->envCtx.unk_1F = 5;
|
||||
play->envCtx.unk_20 = 5;
|
||||
play->envCtx.lightConfig = 5;
|
||||
play->envCtx.changeLightNextConfig = 5;
|
||||
}
|
||||
this->unk_348 = 255.0f;
|
||||
|
||||
|
|
|
@ -1129,8 +1129,8 @@ void DmStk_Init(Actor* thisx, PlayState* play) {
|
|||
Actor_SetScale(&this->actor, 0.01f);
|
||||
|
||||
if ((play->sceneId == SCENE_00KEIKOKU) && (gSaveContext.sceneLayer == 3) && (play->csCtx.scriptIndex > 0)) {
|
||||
play->envCtx.unk_17 = 15;
|
||||
play->envCtx.unk_18 = 15;
|
||||
play->envCtx.skyboxConfig = 15;
|
||||
play->envCtx.changeSkyboxNextConfig = 15;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1826,8 +1826,8 @@ void DmStk_Update(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
|
||||
if ((play->sceneId == SCENE_00KEIKOKU) && (gSaveContext.sceneLayer == 3) && (play->csCtx.scriptIndex > 0)) {
|
||||
play->envCtx.unk_17 = 15;
|
||||
play->envCtx.unk_18 = 15;
|
||||
play->envCtx.skyboxConfig = 15;
|
||||
play->envCtx.changeSkyboxNextConfig = 15;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ void EnHoll_VisibleIdle(EnHoll* this, PlayState* play) {
|
|||
}
|
||||
} else if (this->type == EN_HOLL_TYPE_SCENE_CHANGER) {
|
||||
play->nextEntrance = play->setupExitList[EN_HOLL_GET_EXIT_LIST_INDEX(&this->actor)];
|
||||
gSaveContext.unk_3DBB = 1;
|
||||
gSaveContext.retainWeatherMode = true;
|
||||
Scene_SetExitFade(play);
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->unk_1878C(play);
|
||||
|
|
|
@ -78,8 +78,8 @@ void func_8089F014(EnViewer* this, PlayState* play, f32 arg2) {
|
|||
}
|
||||
play->envCtx.lightSettingOverride = 0;
|
||||
play->envCtx.unk_E0 = 2;
|
||||
play->envCtx.unk_C1 = this->actor.world.rot.x;
|
||||
play->envCtx.unk_C2 = this->actor.world.rot.z;
|
||||
play->envCtx.lightSetting = this->actor.world.rot.x;
|
||||
play->envCtx.prevLightSetting = this->actor.world.rot.z;
|
||||
play->envCtx.lightBlend = arg2;
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ void func_8089F0A0(EnViewer* this, PlayState* play) {
|
|||
func_800FAAB4(
|
||||
play, SurfaceType_GetLightSettingIndex(&play->colCtx, player->actor.floorPoly, player->actor.floorBgId));
|
||||
play->envCtx.lightBlend = 1.0f;
|
||||
play->envCtx.unk_C2 = play->envCtx.unk_C1;
|
||||
play->envCtx.prevLightSetting = play->envCtx.lightSetting;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -99,8 +99,8 @@ void EnWeatherTag_Init(Actor* thisx, PlayState* play) {
|
|||
case WEATHERTAG_TYPE_UNK5:
|
||||
func_800BC154(play, &play->actorCtx, &this->actor, 7);
|
||||
play->skyboxId = SKYBOX_3;
|
||||
play->envCtx.unk_1F = 5;
|
||||
play->envCtx.unk_20 = 5;
|
||||
play->envCtx.lightConfig = 5;
|
||||
play->envCtx.changeLightNextConfig = 5;
|
||||
D_801F4E74 = 1.0f;
|
||||
EnWeatherTag_SetupAction(this, func_80966BF4);
|
||||
break;
|
||||
|
@ -124,25 +124,26 @@ void EnWeatherTag_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
// matches but unused params is suspicious
|
||||
// called WeatherTag_CheckEnableWeatherEffect in OOT, that's where "weatherMode" came from
|
||||
u8 func_80966608(EnWeatherTag* this, PlayState* play, UNK_TYPE a3, UNK_TYPE a4, u8 new1F, u8 new20, u16 new24,
|
||||
u8 weatherMode) {
|
||||
u8 func_80966608(EnWeatherTag* this, PlayState* play, UNK_TYPE a3, UNK_TYPE a4, u8 lightConfig,
|
||||
u8 changeLightNextConfig, u16 changeDuration, u8 weatherMode) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
u8 returnVal = 0;
|
||||
|
||||
if (WEATHER_TAG_RANGE100(&this->actor) > Actor_WorldDistXZToActor(&player->actor, &this->actor)) {
|
||||
if (play->envCtx.unk_1F == play->envCtx.unk_20) {
|
||||
if (play->envCtx.lightConfig == play->envCtx.changeLightNextConfig) {
|
||||
D_801BDBB8 = 1;
|
||||
if (!(play->envCtx.unk_1E == 0) || ((play->envCtx.unk_1F != 1) && (play->envCtx.unk_21 == 0))) {
|
||||
if (!(play->envCtx.lightMode == 0) ||
|
||||
((play->envCtx.lightConfig != 1) && !play->envCtx.changeLightEnabled)) {
|
||||
|
||||
D_801BDBB8 = 0;
|
||||
if (gWeatherMode != weatherMode) {
|
||||
gWeatherMode = weatherMode;
|
||||
play->envCtx.unk_21 = 1;
|
||||
play->envCtx.unk_1F = new1F;
|
||||
play->envCtx.unk_20 = new20;
|
||||
D_801BDBB4 = new20;
|
||||
play->envCtx.unk_24 = new24;
|
||||
play->envCtx.unk_22 = play->envCtx.unk_24;
|
||||
play->envCtx.changeLightEnabled = true;
|
||||
play->envCtx.lightConfig = lightConfig;
|
||||
play->envCtx.changeLightNextConfig = changeLightNextConfig;
|
||||
D_801BDBB4 = changeLightNextConfig;
|
||||
play->envCtx.changeDuration = changeDuration;
|
||||
play->envCtx.changeLightTimer = play->envCtx.changeDuration;
|
||||
}
|
||||
returnVal = 1;
|
||||
}
|
||||
|
@ -153,23 +154,25 @@ u8 func_80966608(EnWeatherTag* this, PlayState* play, UNK_TYPE a3, UNK_TYPE a4,
|
|||
|
||||
// again with the unused parameters
|
||||
// called WeatherTag_CheckRestoreWeather in OOT
|
||||
u8 func_80966758(EnWeatherTag* this, PlayState* play, UNK_TYPE a3, UNK_TYPE a4, u8 new1F, u8 new20, u16 new24) {
|
||||
u8 func_80966758(EnWeatherTag* this, PlayState* play, UNK_TYPE a3, UNK_TYPE a4, u8 lightConfig,
|
||||
u8 changeLightNextConfig, u16 changeDuration) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
u8 returnVal = 0;
|
||||
|
||||
if (WEATHER_TAG_RANGE100(&this->actor) < Actor_WorldDistXZToActor(&player->actor, &this->actor)) {
|
||||
if (play->envCtx.unk_1F == play->envCtx.unk_20) {
|
||||
if (play->envCtx.lightConfig == play->envCtx.changeLightNextConfig) {
|
||||
D_801BDBB8 = 1;
|
||||
if (!(play->envCtx.unk_1E == 0) || ((play->envCtx.unk_1F != 1) && (play->envCtx.unk_21 == 0))) {
|
||||
if (!(play->envCtx.lightMode == 0) ||
|
||||
((play->envCtx.lightConfig != 1) && !play->envCtx.changeLightEnabled)) {
|
||||
|
||||
D_801BDBB8 = 0;
|
||||
gWeatherMode = 0;
|
||||
play->envCtx.unk_21 = 1;
|
||||
play->envCtx.unk_1F = new1F;
|
||||
play->envCtx.unk_20 = new20;
|
||||
D_801BDBB4 = new20;
|
||||
play->envCtx.unk_24 = new24;
|
||||
play->envCtx.unk_22 = play->envCtx.unk_24;
|
||||
play->envCtx.changeLightEnabled = true;
|
||||
play->envCtx.lightConfig = lightConfig;
|
||||
play->envCtx.changeLightNextConfig = changeLightNextConfig;
|
||||
D_801BDBB4 = changeLightNextConfig;
|
||||
play->envCtx.changeDuration = changeDuration;
|
||||
play->envCtx.changeLightTimer = play->envCtx.changeDuration;
|
||||
returnVal = 1;
|
||||
}
|
||||
}
|
||||
|
@ -240,7 +243,7 @@ void EnWeatherTag_Die(EnWeatherTag* this, PlayState* play) {
|
|||
// poisoned swamp: placed behind the water fall from ikana
|
||||
// this tag stops spawning after STT cleared?
|
||||
void func_80966B08(EnWeatherTag* this, PlayState* play) {
|
||||
if (func_80966608(this, play, 0, 0, play->envCtx.unk_1F, 5, 100, 2) || (gWeatherMode == 2)) {
|
||||
if (func_80966608(this, play, 0, 0, play->envCtx.lightConfig, 5, 100, 2) || (gWeatherMode == 2)) {
|
||||
play->skyboxId = SKYBOX_3;
|
||||
EnWeatherTag_SetupAction(this, func_80966D20);
|
||||
} else if (D_801F4E74 <= 0.01f) {
|
||||
|
@ -253,7 +256,7 @@ void func_80966B08(EnWeatherTag* this, PlayState* play) {
|
|||
// WEATHERTAG_TYPE_UNK5: only one in ikana canyon, corner of cliff right outside of stone tower entrance
|
||||
// because it uses cutsecnes.. is this the clear ikana cutcsene?
|
||||
void func_80966BF4(EnWeatherTag* this, PlayState* play) {
|
||||
u8 newUnk20;
|
||||
u8 changeLightNextConfig;
|
||||
CsCmdActorCue* cue;
|
||||
|
||||
if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_567)) {
|
||||
|
@ -263,25 +266,25 @@ void func_80966BF4(EnWeatherTag* this, PlayState* play) {
|
|||
case 0:
|
||||
case 1:
|
||||
default:
|
||||
|
||||
newUnk20 = 0;
|
||||
changeLightNextConfig = 0;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
newUnk20 = 3;
|
||||
changeLightNextConfig = 3;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
newUnk20 = 4;
|
||||
changeLightNextConfig = 4;
|
||||
break;
|
||||
}
|
||||
|
||||
Math_SmoothStepToF(&D_801F4E74, 0.0f, 0.2f, 0.02f, 0.001f);
|
||||
|
||||
if (play->envCtx.unk_20 != newUnk20) {
|
||||
play->envCtx.unk_21 = 1;
|
||||
play->envCtx.unk_20 = newUnk20;
|
||||
play->envCtx.unk_24 = 100;
|
||||
play->envCtx.unk_22 = play->envCtx.unk_24;
|
||||
if (play->envCtx.changeLightNextConfig != changeLightNextConfig) {
|
||||
play->envCtx.changeLightEnabled = true;
|
||||
play->envCtx.changeLightNextConfig = changeLightNextConfig;
|
||||
play->envCtx.changeDuration = 100;
|
||||
play->envCtx.changeLightTimer = play->envCtx.changeDuration;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* Description: "Master" instance of grass for unit spawned by Obj_Grass_Unit
|
||||
*/
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z_obj_grass.h"
|
||||
#include "overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
|
|
|
@ -5734,7 +5734,7 @@ void func_808354A4(PlayState* play, s32 arg1, s32 arg2) {
|
|||
gSaveContext.respawnFlag = -2;
|
||||
}
|
||||
|
||||
gSaveContext.unk_3DBB = 1;
|
||||
gSaveContext.retainWeatherMode = 1;
|
||||
Scene_SetExitFade(play);
|
||||
}
|
||||
|
||||
|
@ -16454,7 +16454,7 @@ void func_8085269C(Player* this, PlayState* play) {
|
|||
(play->msgCtx.ocarinaMode == 0x18) || (play->msgCtx.ocarinaMode == 0x19)) {
|
||||
if (play->msgCtx.ocarinaMode == 0x16) {
|
||||
if (!func_8082DA90(play)) {
|
||||
if (gSaveContext.save.saveInfo.playerData.deaths == 1) {
|
||||
if (gSaveContext.save.saveInfo.playerData.threeDayResetCount == 1) {
|
||||
play->nextEntrance = ENTRANCE(CUTSCENE, 1);
|
||||
} else {
|
||||
play->nextEntrance = ENTRANCE(CUTSCENE, 0);
|
||||
|
|
|
@ -1,115 +0,0 @@
|
|||
#ifndef Z64_FILE_CHOOSE_H
|
||||
#define Z64_FILE_CHOOSE_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void FileSelect_Init(GameState* thisx);
|
||||
void FileSelect_Destroy(GameState* thisx);
|
||||
|
||||
typedef struct FileSelectState {
|
||||
/* 0x00000 */ GameState state;
|
||||
/* 0x000A4 */ Vtx* unk_A4;
|
||||
/* 0x000A8 */ u8* staticSegment;
|
||||
/* 0x000AC */ u8* parameterSegment;
|
||||
/* 0x000B0 */ u8* titleSegment;
|
||||
/* 0x000B8 */ View view;
|
||||
/* 0x00220 */ SramContext sramCtx;
|
||||
/* 0x00248 */ SkyboxContext skyboxCtx;
|
||||
/* 0x00470 */ MessageContext msgCtx;
|
||||
/* 0x12550 */ Font font;
|
||||
/* 0x242E0 */ EnvironmentContext envCtx;
|
||||
/* 0x243E0 */ Vtx* unk_243E0;
|
||||
/* 0x243E4 */ Vtx* unk_243E4;
|
||||
/* 0x243E8 */ u8 newf2[2][6];
|
||||
/* 0x243F4 */ u8 newf[2][6];
|
||||
/* 0x24400 */ UNK_TYPE1 unk_24400[0xC];
|
||||
/* 0x2440C */ u16 unk_2440C[2];
|
||||
/* 0x24410 */ u16 unk_24410[2];
|
||||
/* 0x24414 */ u8 unk_24414[2][8]; // playername
|
||||
/* 0x24424 */ u8 unk_24424[2][8]; // playername
|
||||
/* 0x24434 */ s16 healthCapacity[2];
|
||||
/* 0x24438 */ u16 unk_24438[2];
|
||||
/* 0x2443C */ s16 health[2];
|
||||
/* 0x24440 */ u16 unk_24440[2];
|
||||
/* 0x24444 */ u32 unk_24444[2];
|
||||
/* 0x2444C */ u32 unk_2444C[2];
|
||||
/* 0x24454 */ s8 unk_24454[2];
|
||||
/* 0x24456 */ u8 unk_24456[2];
|
||||
/* 0x24458 */ u16 unk_24458[2];
|
||||
/* 0x2445C */ u16 unk_2445C[2];
|
||||
/* 0x24460 */ s16 unk_24460[2];
|
||||
/* 0x24464 */ s16 unk_24464[2];
|
||||
/* 0x24468 */ u8 unk_24468[2];
|
||||
/* 0x2446A */ u8 unk_2446A[2];
|
||||
/* 0x2446C */ s16 rupees[2];
|
||||
/* 0x24470 */ s16 unk_24470[2];
|
||||
/* 0x24474 */ s8 unk_24474[2];
|
||||
/* 0x24476 */ s8 unk_24476[2];
|
||||
/* 0x24478 */ s8 maskCount[2];
|
||||
/* 0x2447A */ s8 unk_2447A[2];
|
||||
/* 0x2447C */ s8 heartPieceCount[2];
|
||||
/* 0x2447E */ s8 unk_2447E[2];
|
||||
/* 0x24480 */ s16 unk_24480;
|
||||
/* 0x24482 */ s16 unk_24482;
|
||||
/* 0x24484 */ s16 unk_24484;
|
||||
/* 0x24486 */ s16 unk_24486;
|
||||
/* 0x24488 */ s16 unk_24488;
|
||||
/* 0x2448A */ s16 unk_2448A;
|
||||
/* 0x2448C */ s16 unk_2448C;
|
||||
/* 0x2448E */ s16 unk_2448E;
|
||||
/* 0x24490 */ s16 unk_24490;
|
||||
/* 0x24492 */ s16 unk_24492[3];
|
||||
/* 0x24498 */ s16 unk_24498;
|
||||
/* 0x2449A */ s16 unk_2449A[6];
|
||||
/* 0x244A6 */ s16 fileNum;
|
||||
/* 0x244A8 */ s16 unk_244A8;
|
||||
/* 0x244AA */ s16 unk_244AA;
|
||||
/* 0x244AC */ s16 unk_244AC;
|
||||
/* 0x244AE */ s16 unk_244AE;
|
||||
/* 0x244B0 */ s16 unk_244B0[3];
|
||||
/* 0x244B6 */ s16 unk_244B6[2];
|
||||
/* 0x244BA */ s16 unk_244BA;
|
||||
/* 0x244BC */ s16 unk_244BC[3];
|
||||
/* 0x244C2 */ s16 unk_244C2[3];
|
||||
/* 0x244C8 */ s16 unk_244C8[3];
|
||||
/* 0x244CE */ s16 unk_244CE[3];
|
||||
/* 0x244D4 */ s16 unk_244D4[3];
|
||||
/* 0x244DA */ s16 unk_244DA[4];
|
||||
/* 0x244E2 */ s16 unk_244E2;
|
||||
/* 0x244E4 */ s16 unk_244E4;
|
||||
/* 0x244E6 */ s16 unk_244E6;
|
||||
/* 0x244E8 */ s16 unk_244E8;
|
||||
/* 0x244EA */ s16 unk_244EA[4];
|
||||
/* 0x244F2 */ s16 unk_244F2;
|
||||
/* 0x244F4 */ s16 unk_244F4;
|
||||
/* 0x244F6 */ s16 unk_244F6[2];
|
||||
/* 0x244FA */ s16 unk_244FA;
|
||||
/* 0x244FC */ s16 unk_244FC;
|
||||
/* 0x244FE */ s16 unk_244FE;
|
||||
/* 0x24500 */ s16 unk_24500;
|
||||
/* 0x24502 */ s16 unk_24502;
|
||||
/* 0x24504 */ s16 unk_24504;
|
||||
/* 0x24506 */ s16 unk_24506;
|
||||
/* 0x24508 */ s16 unk_24508;
|
||||
/* 0x2450A */ s16 unk_2450A;
|
||||
/* 0x2450C */ f32 unk_2450C;
|
||||
/* 0x24510 */ s16 unk_24510;
|
||||
/* 0x24512 */ s16 unk_24512;
|
||||
/* 0x24514 */ s16 unk_24514;
|
||||
/* 0x24516 */ s16 unk_24516;
|
||||
/* 0x24518 */ s16 unk_24518;
|
||||
/* 0x2451A */ s16 unk_2451A;
|
||||
/* 0x2451C */ s16 unk_2451C;
|
||||
/* 0x2451E */ s16 unk_2451E[5];
|
||||
/* 0x24528 */ s16 unk_24528;
|
||||
/* 0x2452A */ s16 unk_2452A;
|
||||
/* 0x2452C */ s16 unk_2452C[4];
|
||||
/* 0x24534 */ s16 unk_24534[4];
|
||||
/* 0x2453C */ s16 unk_2453C[4];
|
||||
/* 0x24544 */ s16 unk_24544[4];
|
||||
/* 0x2454C */ s16 unk_2454C;
|
||||
/* 0x2454E */ s16 unk_2454E;
|
||||
/* 0x24550 */ s16 unk_24550;
|
||||
} FileSelectState; // size = 0x24558
|
||||
|
||||
#endif
|
|
@ -1,46 +0,0 @@
|
|||
/*
|
||||
* File: z_file_choose_80807940.c
|
||||
* Overlay: ovl_file_choose
|
||||
* Description:
|
||||
*/
|
||||
|
||||
#include "z_file_choose.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
extern UNK_TYPE D_01002800;
|
||||
extern UNK_TYPE D_01007980;
|
||||
extern UNK_TYPE D_0102A6B0;
|
||||
extern UNK_TYPE D_0102B170;
|
||||
extern UNK_TYPE D_010310F0;
|
||||
extern UNK_TYPE D_010311F0;
|
||||
|
||||
// there are uses of D_0E000000.fillRect (appearing as D_0E0002E0) in this file
|
||||
extern GfxMasterList D_0E000000;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80807940.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80807A78.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80807C58.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80808214.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80808D30.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80808F1C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80809DF0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_80809EA0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_8080A3CC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_8080A418.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_8080A4A0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_8080A6BC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_8080A708.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_file_choose/func_8080BBFC.s")
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,17 @@
|
|||
#include "z_file_select.h"
|
||||
|
||||
// Vtx Data
|
||||
#include "overlays/ovl_file_choose/ovl_file_choose.c"
|
||||
|
||||
u8 D_808141F0[] = {
|
||||
// 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M'
|
||||
/* Row 0 */ 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
|
||||
// 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'
|
||||
/* Row 1 */ 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23,
|
||||
// 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm'
|
||||
/* Row 2 */ 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30,
|
||||
// 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z'
|
||||
/* Row 3 */ 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D,
|
||||
// '1' '2' '3' '4' '5' '6' '7' '8' '9' '0' '.' '-' ' '
|
||||
/* Row 4 */ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x40, 0x3F, 0x3E
|
||||
};
|
|
@ -0,0 +1,327 @@
|
|||
#ifndef FILE_SELECT_H
|
||||
#define FILE_SELECT_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
// `sramCtx->noFlashSaveBuf` is never allocated space, so should never be used
|
||||
// Slot offsets are also based on OoT SaveContext sizes, and contains incorrect sizes from MM
|
||||
// Macros appear to be remnant from OoT
|
||||
#define NO_FLASH_GET_NEWF(sramCtx, slotNum, index) \
|
||||
(sramCtx->noFlashSaveBuf[gSramSlotOffsets[slotNum] + offsetof(SaveContext, save.saveInfo.playerData.newf[index])])
|
||||
#define NO_FLASH_SLOT_OCCUPIED(sramCtx, slotNum) \
|
||||
((NO_FLASH_GET_NEWF(sramCtx, slotNum, 0) == 'Z') || (NO_FLASH_GET_NEWF(sramCtx, slotNum, 1) == 'E') || \
|
||||
(NO_FLASH_GET_NEWF(sramCtx, slotNum, 2) == 'L') || (NO_FLASH_GET_NEWF(sramCtx, slotNum, 3) == 'D') || \
|
||||
(NO_FLASH_GET_NEWF(sramCtx, slotNum, 4) == 'A') || (NO_FLASH_GET_NEWF(sramCtx, slotNum, 5) == '3'))
|
||||
|
||||
#define GET_NEWF(fileSelect, slotNum, index) (fileSelect->newf[slotNum][index])
|
||||
#define SLOT_OCCUPIED(fileSelect, slotNum) \
|
||||
((GET_NEWF(fileSelect, slotNum, 0) == 'Z') && (GET_NEWF(fileSelect, slotNum, 1) == 'E') && \
|
||||
(GET_NEWF(fileSelect, slotNum, 2) == 'L') && (GET_NEWF(fileSelect, slotNum, 3) == 'D') && \
|
||||
(GET_NEWF(fileSelect, slotNum, 4) == 'A') && (GET_NEWF(fileSelect, slotNum, 5) == '3'))
|
||||
|
||||
// Init mode: Initial setup as the file select is starting up, fades and slides in various menu elements
|
||||
// Config mode: Handles the bulk of the file select, various configuration tasks like picking a file, copy/erase, and the options menu
|
||||
// Select mode: Displays the selected file with various details about it, and allows the player to confirm and open it
|
||||
typedef enum {
|
||||
/* 0 */ FS_MENU_MODE_INIT,
|
||||
/* 1 */ FS_MENU_MODE_CONFIG,
|
||||
/* 2 */ FS_MENU_MODE_SELECT
|
||||
} MenuMode;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ CM_FADE_IN_START,
|
||||
/* 0x01 */ CM_FADE_IN_END,
|
||||
/* 0x02 */ CM_MAIN_MENU,
|
||||
/* 0x03 */ CM_SETUP_COPY_SOURCE,
|
||||
/* 0x04 */ CM_SELECT_COPY_SOURCE,
|
||||
/* 0x05 */ CM_SETUP_COPY_DEST_1,
|
||||
/* 0x06 */ CM_SETUP_COPY_DEST_2,
|
||||
/* 0x07 */ CM_SELECT_COPY_DEST,
|
||||
/* 0x08 */ CM_EXIT_TO_COPY_SOURCE_1,
|
||||
/* 0x09 */ CM_EXIT_TO_COPY_SOURCE_2,
|
||||
/* 0x0A */ CM_SETUP_COPY_CONFIRM_1,
|
||||
/* 0x0B */ CM_SETUP_COPY_CONFIRM_2,
|
||||
/* 0x0C */ CM_COPY_CONFIRM,
|
||||
/* 0x0D */ CM_COPY_WAIT_FOR_FLASH_SAVE,
|
||||
/* 0x0E */ CM_RETURN_TO_COPY_DEST,
|
||||
/* 0x0F */ CM_COPY_ANIM_1,
|
||||
/* 0x10 */ CM_COPY_ANIM_2,
|
||||
/* 0x11 */ CM_COPY_ANIM_3,
|
||||
/* 0x12 */ CM_COPY_ANIM_4,
|
||||
/* 0x13 */ CM_COPY_ANIM_5,
|
||||
/* 0x14 */ CM_COPY_RETURN_MAIN,
|
||||
/* 0x15 */ CM_SETUP_ERASE_SELECT,
|
||||
/* 0x16 */ CM_ERASE_SELECT,
|
||||
/* 0x17 */ CM_SETUP_ERASE_CONFIRM_1,
|
||||
/* 0x18 */ CM_SETUP_ERASE_CONFIRM_2,
|
||||
/* 0x19 */ CM_ERASE_CONFIRM,
|
||||
/* 0x1A */ CM_EXIT_TO_ERASE_SELECT_1,
|
||||
/* 0x1B */ CM_EXIT_TO_ERASE_SELECT_2,
|
||||
/* 0x1C */ CM_ERASE_ANIM_1,
|
||||
/* 0x1D */ CM_ERASE_WAIT_FOR_FLASH_SAVE,
|
||||
/* 0x1E */ CM_ERASE_ANIM_2,
|
||||
/* 0x1F */ CM_ERASE_ANIM_3,
|
||||
/* 0x20 */ CM_EXIT_ERASE_TO_MAIN,
|
||||
/* 0x21 */ CM_UNUSED_31,
|
||||
/* 0x22 */ CM_ROTATE_TO_NAME_ENTRY,
|
||||
/* 0x23 */ CM_START_NAME_ENTRY,
|
||||
/* 0x24 */ CM_NAME_ENTRY,
|
||||
/* 0x25 */ CM_NAME_ENTRY_WAIT_FOR_FLASH_SAVE,
|
||||
/* 0x26 */ CM_NAME_ENTRY_TO_MAIN,
|
||||
/* 0x27 */ CM_MAIN_TO_OPTIONS,
|
||||
/* 0x28 */ CM_START_OPTIONS,
|
||||
/* 0x29 */ CM_OPTIONS_MENU,
|
||||
/* 0x2A */ CM_OPTIONS_WAIT_FOR_FLASH_SAVE,
|
||||
/* 0x2B */ CM_OPTIONS_TO_MAIN,
|
||||
/* 0x2C */ CM_UNUSED_DELAY
|
||||
} ConfigMode;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SM_FADE_MAIN_TO_SELECT,
|
||||
/* 1 */ SM_MOVE_FILE_TO_TOP,
|
||||
/* 2 */ SM_FADE_IN_FILE_INFO,
|
||||
/* 3 */ SM_CONFIRM_FILE,
|
||||
/* 4 */ SM_FADE_OUT_FILE_INFO,
|
||||
/* 5 */ SM_MOVE_FILE_TO_SLOT,
|
||||
/* 6 */ SM_FADE_OUT,
|
||||
/* 7 */ SM_LOAD_GAME
|
||||
} SelectMode;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_TITLE_SELECT_FILE, // "Please select a file."
|
||||
/* 1 */ FS_TITLE_OPEN_FILE, // "Open this file?"
|
||||
/* 2 */ FS_TITLE_COPY_FROM, // "Copy which file?"
|
||||
/* 3 */ FS_TITLE_COPY_TO, // "Copy to which file?"
|
||||
/* 4 */ FS_TITLE_COPY_CONFIRM, // "Are you sure?"
|
||||
/* 5 */ FS_TITLE_COPY_COMPLETE, // "File copied."
|
||||
/* 6 */ FS_TITLE_ERASE_FILE, // "Erase which file?"
|
||||
/* 7 */ FS_TITLE_ERASE_CONFIRM, // "Are you sure?"
|
||||
/* 8 */ FS_TITLE_ERASE_COMPLETE // "File erased."
|
||||
} TitleLabel;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_TITLE_CUR,
|
||||
/* 1 */ FS_TITLE_NEXT
|
||||
} TitleIndex;
|
||||
|
||||
typedef enum {
|
||||
/* -1 */ FS_WARNING_NONE = -1,
|
||||
/* 0 */ FS_WARNING_NO_FILE_COPY, // "No file to copy."
|
||||
/* 1 */ FS_WARNING_NO_FILE_ERASE, // "No file to erase."
|
||||
/* 2 */ FS_WARNING_NO_EMPTY_FILES, // "There is no empty file."
|
||||
/* 3 */ FS_WARNING_FILE_EMPTY, // "This is an empty file."
|
||||
/* 4 */ FS_WARNING_FILE_IN_USE // "This file is in use."
|
||||
} WarningLabel;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_BTN_MAIN_FILE_1,
|
||||
/* 1 */ FS_BTN_MAIN_FILE_2,
|
||||
/* 2 */ FS_BTN_MAIN_FILE_3,
|
||||
/* 3 */ FS_BTN_MAIN_COPY,
|
||||
/* 4 */ FS_BTN_MAIN_ERASE,
|
||||
/* 5 */ FS_BTN_MAIN_OPTIONS
|
||||
} MainMenuButtonIndex;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_BTN_COPY_FILE_1,
|
||||
/* 1 */ FS_BTN_COPY_FILE_2,
|
||||
/* 2 */ FS_BTN_COPY_FILE_3,
|
||||
/* 3 */ FS_BTN_COPY_QUIT
|
||||
} CopyMenuButtonIndex;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_BTN_ERASE_FILE_1,
|
||||
/* 1 */ FS_BTN_ERASE_FILE_2,
|
||||
/* 2 */ FS_BTN_ERASE_FILE_3,
|
||||
/* 3 */ FS_BTN_ERASE_QUIT
|
||||
} EraseMenuButtonIndex;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_BTN_SELECT_FILE_1,
|
||||
/* 1 */ FS_BTN_SELECT_FILE_2,
|
||||
/* 2 */ FS_BTN_SELECT_FILE_3,
|
||||
/* 3 */ FS_BTN_SELECT_YES,
|
||||
/* 4 */ FS_BTN_SELECT_QUIT
|
||||
} SelectMenuButtonIndex;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_BTN_CONFIRM_YES,
|
||||
/* 1 */ FS_BTN_CONFIRM_QUIT
|
||||
} ConfirmButtonIndex;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_BTN_ACTION_COPY,
|
||||
/* 1 */ FS_BTN_ACTION_ERASE
|
||||
} ActionButtonIndex;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_SETTING_AUDIO,
|
||||
/* 1 */ FS_SETTING_ZTARGET
|
||||
} SettingIndex;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_CHAR_PAGE_HIRA,
|
||||
/* 1 */ FS_CHAR_PAGE_KATA,
|
||||
/* 2 */ FS_CHAR_PAGE_ENG
|
||||
} CharPage;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FS_KBD_BTN_HIRA,
|
||||
/* 1 */ FS_KBD_BTN_KATA,
|
||||
/* 2 */ FS_KBD_BTN_ENG,
|
||||
/* 3 */ FS_KBD_BTN_BACKSPACE,
|
||||
/* 4 */ FS_KBD_BTN_END,
|
||||
/* 99 */ FS_KBD_BTN_NONE = 99
|
||||
} KeyboardButton;
|
||||
|
||||
typedef struct FileSelectState {
|
||||
/* 0x00000 */ GameState state;
|
||||
/* 0x000A4 */ Vtx* windowVtx;
|
||||
/* 0x000A8 */ u8* staticSegment;
|
||||
/* 0x000AC */ u8* parameterSegment;
|
||||
/* 0x000B0 */ u8* titleSegment;
|
||||
/* 0x000B8 */ View view;
|
||||
/* 0x00220 */ SramContext sramCtx;
|
||||
/* 0x00248 */ SkyboxContext skyboxCtx;
|
||||
/* 0x00470 */ MessageContext msgCtx;
|
||||
/* 0x12550 */ Font font;
|
||||
/* 0x242E0 */ EnvironmentContext envCtx;
|
||||
/* 0x243E0 */ UNK_TYPE1 pad243E0[0x4];
|
||||
/* 0x243E4 */ Vtx* windowContentVtx;
|
||||
/* 0x243E8 */ Vtx* keyboardVtx;
|
||||
/* 0x243EC */ Vtx* nameEntryVtx;
|
||||
/* 0x243F0 */ Vtx* keyboard2Vtx;
|
||||
/* 0x243F4 */ u8 newf[4][6];
|
||||
/* 0x2440C */ u16 threeDayResetCount[4];
|
||||
/* 0x24414 */ char fileNames[4][8];
|
||||
/* 0x24434 */ s16 healthCapacity[4];
|
||||
/* 0x2443C */ s16 health[4];
|
||||
/* 0x24444 */ u32 questItems[4];
|
||||
/* 0x24454 */ s8 defenseHearts[4];
|
||||
/* 0x24458 */ u16 time[4];
|
||||
/* 0x24460 */ s16 day[4];
|
||||
/* 0x24468 */ u8 isOwlSave[4];
|
||||
/* 0x2446C */ s16 rupees[4];
|
||||
/* 0x24474 */ u8 walletUpgrades[4];
|
||||
/* 0x24478 */ u8 maskCount[4];
|
||||
/* 0x2447C */ u8 heartPieceCount[4];
|
||||
/* 0x24480 */ s16 buttonIndex; // enum will depend on `ConfigMode`
|
||||
/* 0x24482 */ s16 confirmButtonIndex; // see `ConfirmButtonIndex` enum
|
||||
/* 0x24484 */ s16 menuMode; // see `MenuMode` enum
|
||||
/* 0x24486 */ s16 configMode; // see `ConfigMode` enum
|
||||
/* 0x24488 */ s16 prevConfigMode; // see `ConfigMode` enum
|
||||
/* 0x2448A */ s16 nextConfigMode; // see `ConfigMode` enum
|
||||
/* 0x2448C */ s16 selectMode; // see `SelectMode` enum
|
||||
/* 0x2448E */ s16 selectedFileIndex;
|
||||
/* 0x24490 */ UNK_TYPE1 pad24490[0x2];
|
||||
/* 0x24492 */ s16 fileNamesY[3];
|
||||
/* 0x24498 */ s16 actionTimer;
|
||||
/* 0x2449A */ s16 buttonYOffsets[6];
|
||||
/* 0x244A6 */ s16 copyDestFileIndex;
|
||||
/* 0x244A8 */ s16 warningLabel;
|
||||
/* 0x244AA */ s16 warningButtonIndex;
|
||||
/* 0x244AC */ s16 titleLabel; // see `TitleLabel` enum
|
||||
/* 0x244AE */ s16 nextTitleLabel; // see `TitleLabel` enum
|
||||
/* 0x244B0 */ s16 windowColor[3];
|
||||
/* 0x244B6 */ s16 titleAlpha[2]; // see `TitleIndex` enum
|
||||
/* 0x244BA */ s16 windowAlpha;
|
||||
/* 0x244BC */ s16 fileButtonAlpha[3];
|
||||
/* 0x244C2 */ s16 nameBoxAlpha[3];
|
||||
/* 0x244C8 */ s16 nameAlpha[3];
|
||||
/* 0x244CE */ s16 connectorAlpha[3];
|
||||
/* 0x244D4 */ s16 fileInfoAlpha[3];
|
||||
/* 0x244DA */ s16 actionButtonAlpha[2];
|
||||
/* 0x244DA */ s16 confirmButtonAlpha[2];
|
||||
/* 0x244E2 */ s16 optionButtonAlpha;
|
||||
/* 0x244E4 */ s16 nameEntryBoxAlpha;
|
||||
/* 0x244E6 */ s16 controlsAlpha;
|
||||
/* 0x244E8 */ s16 emptyFileTextAlpha;
|
||||
/* 0x244EA */ s16 highlightColor[4];
|
||||
/* 0x244F2 */ s16 highlightPulseDir;
|
||||
/* 0x244F4 */ s16 unk_244F4;
|
||||
/* 0x244F6 */ s16 confirmButtonTexIndices[2];
|
||||
/* 0x244FA */ s16 inputTimerX;
|
||||
/* 0x244FC */ s16 inputTimerY;
|
||||
/* 0x244FE */ s16 stickXDir;
|
||||
/* 0x24500 */ s16 stickYDir;
|
||||
/* 0x24502 */ s16 stickAdjX;
|
||||
/* 0x24504 */ s16 stickAdjY;
|
||||
/* 0x24506 */ s16 nameEntryBoxPosX;
|
||||
/* 0x24508 */ s16 windowPosX;
|
||||
/* 0x2450A */ s16 screenFillAlpha;
|
||||
/* 0x2450C */ f32 windowRot;
|
||||
/* 0x24510 */ s16 kbdButton;
|
||||
/* 0x24512 */ s16 charPage;
|
||||
/* 0x24514 */ s16 charBgAlpha;
|
||||
/* 0x24516 */ s16 charIndex;
|
||||
/* 0x24518 */ s16 kbdX;
|
||||
/* 0x2451A */ s16 kbdY;
|
||||
/* 0x2451C */ s16 newFileNameCharCount;
|
||||
/* 0x2451E */ s16 unk_2451E[5];
|
||||
/* 0x24528 */ s16 highlightTimer;
|
||||
/* 0x2452A */ s16 unk_2452A;
|
||||
/* 0x2452C */ s16 unk_2452C[4];
|
||||
/* 0x24534 */ s16 unk_24534[4];
|
||||
/* 0x2453C */ s16 unk_2453C[4];
|
||||
/* 0x24544 */ s16 unk_24544[4];
|
||||
/* 0x2454C */ s16 unk_2454C;
|
||||
/* 0x2454E */ s16 unk_2454E;
|
||||
/* 0x24550 */ s16 unk_24550;
|
||||
} FileSelectState; // size = 0x24558
|
||||
|
||||
void FileSelect_Init(GameState* thisx);
|
||||
void FileSelect_Destroy(GameState* thisx);
|
||||
|
||||
void FileSelect_PulsateCursor(GameState* thisx);
|
||||
void FileSelect_DrawNameEntry(GameState* thisx);
|
||||
void FileSelect_DrawOptions(GameState* thisx);
|
||||
void FileSelect_DrawTexQuadI4(GraphicsContext* gfxCtx, TexturePtr texture, s16 point);
|
||||
|
||||
// Copying Files
|
||||
void FileSelect_SetupCopySource(GameState* thisx);
|
||||
void FileSelect_SelectCopySource(GameState* thisx);
|
||||
void FileSelect_SetupCopyDest1(GameState* thisx);
|
||||
void FileSelect_SetupCopyDest2(GameState* thisx);
|
||||
void FileSelect_SelectCopyDest(GameState* thisx);
|
||||
void FileSelect_ExitToCopySource1(GameState* thisx);
|
||||
void FileSelect_ExitToCopySource2(GameState* thisx);
|
||||
void FileSelect_SetupCopyConfirm1(GameState* thisx);
|
||||
void FileSelect_SetupCopyConfirm2(GameState* thisx);
|
||||
void FileSelect_CopyConfirm(GameState* thisx);
|
||||
void FileSelect_CopyWaitForFlashSave(GameState* thisx);
|
||||
void FileSelect_ReturnToCopyDest(GameState* thisx);
|
||||
void FileSelect_CopyAnim1(GameState* thisx);
|
||||
void FileSelect_CopyAnim2(GameState* thisx);
|
||||
void FileSelect_CopyAnim3(GameState* thisx);
|
||||
void FileSelect_CopyAnim4(GameState* thisx);
|
||||
void FileSelect_CopyAnim5(GameState* thisx);
|
||||
void FileSelect_ExitCopyToMain(GameState* thisx);
|
||||
|
||||
// Erasing Files
|
||||
void FileSelect_SetupEraseSelect(GameState* thisx);
|
||||
void FileSelect_EraseSelect(GameState* thisx);
|
||||
void FileSelect_SetupEraseConfirm1(GameState* thisx);
|
||||
void FileSelect_SetupEraseConfirm2(GameState* thisx);
|
||||
void FileSelect_EraseConfirm(GameState* thisx);
|
||||
void FileSelect_ExitToEraseSelect1(GameState* thisx);
|
||||
void FileSelect_ExitToEraseSelect2(GameState* thisx);
|
||||
void FileSelect_EraseAnim1(GameState* thisx);
|
||||
void FileSelect_EraseWaitForFlashSave(GameState* thisx);
|
||||
void FileSelect_EraseAnim2(GameState* thisx);
|
||||
void FileSelect_EraseAnim3(GameState* thisx);
|
||||
void FileSelect_ExitEraseToMain(GameState* thisx);
|
||||
|
||||
// Entering Name
|
||||
void FileSelect_StartNameEntry(GameState* thisx);
|
||||
void FileSelect_UpdateKeyboardCursor(GameState* thisx);
|
||||
void FileSelect_NameEntryWaitForFlashSave(GameState* thisx);
|
||||
|
||||
// Selecting Options
|
||||
void FileSelect_StartOptions(GameState* thisx);
|
||||
void FileSelect_UpdateOptionsMenu(GameState* thisx);
|
||||
void FileSelect_OptionsWaitForFlashSave(GameState* thisx);
|
||||
|
||||
extern u8 D_808141F0[];
|
||||
extern s16 D_80814280[];
|
||||
|
||||
#endif
|
|
@ -171,7 +171,7 @@ void ConsoleLogo_Init(GameState* thisx) {
|
|||
gSaveContext.fileNum = 0xFF;
|
||||
}
|
||||
|
||||
gSaveContext.unk_3F3F = true;
|
||||
gSaveContext.flashSaveAvailable = true;
|
||||
Sram_Alloc(thisx, &this->sramCtx);
|
||||
this->ult = 0;
|
||||
this->timer = 20;
|
||||
|
|
|
@ -285,7 +285,7 @@ void KaleidoScope_DrawInventoryEditorText(Gfx** gfxp) {
|
|||
GfxPrint_SetPos(&printer, 23, 22);
|
||||
GfxPrint_Printf(&printer, "%s", "セイ");
|
||||
|
||||
// Life (double defence)
|
||||
// Life (double defense)
|
||||
GfxPrint_SetPos(&printer, 4, 25);
|
||||
GfxPrint_Printf(&printer, "%s", "イ");
|
||||
GfxPrint_SetPos(&printer, 4, 26);
|
||||
|
@ -601,7 +601,7 @@ void KaleidoScope_DrawInventoryEditor(PlayState* play) {
|
|||
counterDigits[1] += 21;
|
||||
}
|
||||
|
||||
// Double Defence
|
||||
// Double Defense
|
||||
KaleidoScope_DrawDigit(play, gSaveContext.save.saveInfo.playerData.doubleDefense, 44, 202);
|
||||
|
||||
// Magic
|
||||
|
@ -1048,16 +1048,13 @@ void KaleidoScope_UpdateInventoryEditor(PlayState* play) {
|
|||
// Dungeon Items
|
||||
slot = sCurSection - INV_EDITOR_SECTION_DUNGEON_ITEMS;
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_CLEFT)) {
|
||||
// Map
|
||||
gSaveContext.save.saveInfo.inventory.dungeonItems[slot] ^= 4;
|
||||
gSaveContext.save.saveInfo.inventory.dungeonItems[slot] ^= (1 << DUNGEON_MAP);
|
||||
}
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_CDOWN)) {
|
||||
// Compass
|
||||
gSaveContext.save.saveInfo.inventory.dungeonItems[slot] ^= 2;
|
||||
gSaveContext.save.saveInfo.inventory.dungeonItems[slot] ^= (1 << DUNGEON_COMPASS);
|
||||
}
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_CRIGHT)) {
|
||||
// Boss Key
|
||||
gSaveContext.save.saveInfo.inventory.dungeonItems[slot] ^= 1;
|
||||
gSaveContext.save.saveInfo.inventory.dungeonItems[slot] ^= (1 << DUNGEON_BOSS_KEY);
|
||||
}
|
||||
|
||||
} else if (sCurSection < INV_EDITOR_SECTION_DOUBLE_DEFENSE) {
|
||||
|
@ -1077,7 +1074,7 @@ void KaleidoScope_UpdateInventoryEditor(PlayState* play) {
|
|||
}
|
||||
|
||||
} else {
|
||||
// Double Defence
|
||||
// Double Defense
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_CUP) || CHECK_BTN_ALL(input->press.button, BTN_CLEFT) ||
|
||||
CHECK_BTN_ALL(input->press.button, BTN_CDOWN) || CHECK_BTN_ALL(input->press.button, BTN_CRIGHT)) {
|
||||
gSaveContext.save.saveInfo.playerData.doubleDefense ^= 1;
|
||||
|
|
|
@ -3060,12 +3060,12 @@ void KaleidoScope_Update(PlayState* play) {
|
|||
Play_SaveCycleSceneFlags(&play->state);
|
||||
gSaveContext.save.saveInfo.playerData.savedSceneId = play->sceneId;
|
||||
func_8014546C(sramCtx);
|
||||
if (gSaveContext.unk_3F3F == 0) {
|
||||
if (!gSaveContext.flashSaveAvailable) {
|
||||
pauseCtx->savePromptState = PAUSE_SAVEPROMPT_STATE_5;
|
||||
} else {
|
||||
func_80147008(sramCtx, D_801C67C8[gSaveContext.fileNum],
|
||||
D_801C67F0[gSaveContext.fileNum]);
|
||||
func_80147020(sramCtx);
|
||||
Sram_SetFlashPagesDefault(sramCtx, gFlashSaveStartPages[gSaveContext.fileNum],
|
||||
gFlashSaveNumPages[gSaveContext.fileNum]);
|
||||
Sram_StartWriteToFlashDefault(sramCtx);
|
||||
pauseCtx->savePromptState = PAUSE_SAVEPROMPT_STATE_4;
|
||||
}
|
||||
sDelayTimer = 90;
|
||||
|
@ -3327,11 +3327,12 @@ void KaleidoScope_Update(PlayState* play) {
|
|||
gSaveContext.save.saveInfo.playerData.savedSceneId = play->sceneId;
|
||||
gSaveContext.save.saveInfo.playerData.health = 0x30;
|
||||
func_8014546C(sramCtx);
|
||||
if (gSaveContext.unk_3F3F == 0) {
|
||||
if (!gSaveContext.flashSaveAvailable) {
|
||||
pauseCtx->state = PAUSE_STATE_GAMEOVER_8;
|
||||
} else {
|
||||
func_80147008(sramCtx, D_801C67C8[gSaveContext.fileNum], D_801C67F0[gSaveContext.fileNum]);
|
||||
func_80147020(sramCtx);
|
||||
Sram_SetFlashPagesDefault(sramCtx, gFlashSaveStartPages[gSaveContext.fileNum],
|
||||
gFlashSaveNumPages[gSaveContext.fileNum]);
|
||||
Sram_StartWriteToFlashDefault(sramCtx);
|
||||
pauseCtx->state = PAUSE_STATE_GAMEOVER_7;
|
||||
}
|
||||
sDelayTimer = 90;
|
||||
|
|
|
@ -2802,21 +2802,21 @@
|
|||
0x8014546C:("func_8014546C",),
|
||||
0x80145698:("func_80145698",),
|
||||
0x801457CC:("func_801457CC",),
|
||||
0x80146580:("func_80146580",),
|
||||
0x80146628:("func_80146628",),
|
||||
0x80146580:("Sram_EraseSave",),
|
||||
0x80146628:("Sram_CopySave",),
|
||||
0x80146AA0:("Sram_InitSave",),
|
||||
0x80146DF8:("func_80146DF8",),
|
||||
0x80146DF8:("Sram_WriteSaveOptionsToBuffer",),
|
||||
0x80146E40:("Sram_InitSram",),
|
||||
0x80146E70:("Sram_Alloc",),
|
||||
0x80146EBC:("func_80146EBC",),
|
||||
0x80146EBC:("Sram_SyncWriteToFlash",),
|
||||
0x80146EE8:("Sram_SaveSpecialEnterClockTown",),
|
||||
0x80146F5C:("Sram_SaveSpecialNewDay",),
|
||||
0x80147008:("func_80147008",),
|
||||
0x80147020:("func_80147020",),
|
||||
0x80147068:("func_80147068",),
|
||||
0x80147138:("func_80147138",),
|
||||
0x80147150:("func_80147150",),
|
||||
0x80147198:("func_80147198",),
|
||||
0x80147008:("Sram_SetFlashPagesDefault",),
|
||||
0x80147020:("Sram_StartWriteToFlashDefault",),
|
||||
0x80147068:("Sram_UpdateWriteToFlashDefault",),
|
||||
0x80147138:("Sram_SetFlashPagesOwlSave",),
|
||||
0x80147150:("Sram_StartWriteToFlashOwlSave",),
|
||||
0x80147198:("Sram_UpdateWriteToFlashOwlSave",),
|
||||
0x80147314:("func_80147314",),
|
||||
0x80147414:("func_80147414",),
|
||||
0x8014750C:("Sram_nop8014750C",),
|
||||
|
@ -4107,87 +4107,87 @@
|
|||
0x80803EC0:("TitleSetup_Main",),
|
||||
0x80803F0C:("TitleSetup_Destroy",),
|
||||
0x80803F30:("TitleSetup_Init",),
|
||||
0x80804010:("func_80804010",),
|
||||
0x808041A0:("func_808041A0",),
|
||||
0x80804654:("func_80804654",),
|
||||
0x808047D8:("func_808047D8",),
|
||||
0x8080489C:("func_8080489C",),
|
||||
0x80804DAC:("func_80804DAC",),
|
||||
0x80804E74:("func_80804E74",),
|
||||
0x80804F98:("func_80804F98",),
|
||||
0x8080525C:("func_8080525C",),
|
||||
0x808052B0:("func_808052B0",),
|
||||
0x808054A4:("func_808054A4",),
|
||||
0x808055D0:("func_808055D0",),
|
||||
0x808058A4:("func_808058A4",),
|
||||
0x80805918:("func_80805918",),
|
||||
0x80805A58:("func_80805A58",),
|
||||
0x80805B30:("func_80805B30",),
|
||||
0x80805C1C:("func_80805C1C",),
|
||||
0x80806014:("func_80806014",),
|
||||
0x80806148:("func_80806148",),
|
||||
0x80806310:("func_80806310",),
|
||||
0x808067E0:("func_808067E0",),
|
||||
0x80806BC8:("func_80806BC8",),
|
||||
0x80806CA0:("func_80806CA0",),
|
||||
0x80806E84:("func_80806E84",),
|
||||
0x80806F30:("func_80806F30",),
|
||||
0x808071E4:("func_808071E4",),
|
||||
0x80807390:("func_80807390",),
|
||||
0x8080742C:("func_8080742C",),
|
||||
0x808074B4:("func_808074B4",),
|
||||
0x808077AC:("func_808077AC",),
|
||||
0x80807940:("func_80807940",),
|
||||
0x80807A78:("func_80807A78",),
|
||||
0x80807C58:("func_80807C58",),
|
||||
0x80808214:("func_80808214",),
|
||||
0x80808D30:("func_80808D30",),
|
||||
0x80808F1C:("func_80808F1C",),
|
||||
0x80809DF0:("func_80809DF0",),
|
||||
0x80809EA0:("func_80809EA0",),
|
||||
0x8080A3CC:("func_8080A3CC",),
|
||||
0x8080A418:("func_8080A418",),
|
||||
0x8080A4A0:("func_8080A4A0",),
|
||||
0x8080A6BC:("func_8080A6BC",),
|
||||
0x8080A708:("func_8080A708",),
|
||||
0x8080BBFC:("func_8080BBFC",),
|
||||
0x8080BC20:("func_8080BC20",),
|
||||
0x8080BC44:("FileSelect_nop8080bc44",),
|
||||
0x8080BC4C:("FileSelect_nop8080BC4C",),
|
||||
0x8080BC58:("func_8080BC58",),
|
||||
0x8080BDAC:("func_8080BDAC",),
|
||||
0x8080BDDC:("FileSelect_RenderView",),
|
||||
0x8080BE60:("func_8080BE60",),
|
||||
0x8080C040:("func_8080C040",),
|
||||
0x8080C228:("func_8080C228",),
|
||||
0x8080C29C:("func_8080C29C",),
|
||||
0x8080C324:("func_8080C324",),
|
||||
0x8080C3A8:("func_8080C3A8",),
|
||||
0x8080D164:("func_8080D164",),
|
||||
0x8080D170:("func_8080D170",),
|
||||
0x8080D1BC:("func_8080D1BC",),
|
||||
0x8080D220:("func_8080D220",),
|
||||
0x8080D284:("func_8080D284",),
|
||||
0x8080D2EC:("func_8080D2EC",),
|
||||
0x8080D3D0:("func_8080D3D0",),
|
||||
0x8080D40C:("func_8080D40C",),
|
||||
0x8080D6D4:("func_8080D6D4",),
|
||||
0x8080F25C:("func_8080F25C",),
|
||||
0x808108DC:("func_808108DC",),
|
||||
0x80811CB8:("func_80811CB8",),
|
||||
0x80812460:("func_80812460",),
|
||||
0x80812668:("func_80812668",),
|
||||
0x80812760:("func_80812760",),
|
||||
0x80812840:("func_80812840",),
|
||||
0x80812980:("func_80812980",),
|
||||
0x80812A6C:("func_80812A6C",),
|
||||
0x80812D44:("func_80812D44",),
|
||||
0x80812D94:("func_80812D94",),
|
||||
0x80812E94:("func_80812E94",),
|
||||
0x80812ED0:("func_80812ED0",),
|
||||
0x80804010:("FileSelect_SetupCopySource",),
|
||||
0x808041A0:("FileSelect_SelectCopySource",),
|
||||
0x80804654:("FileSelect_SetupCopyDest1",),
|
||||
0x808047D8:("FileSelect_SetupCopyDest2",),
|
||||
0x8080489C:("FileSelect_SelectCopyDest",),
|
||||
0x80804DAC:("FileSelect_ExitToCopySource1",),
|
||||
0x80804E74:("FileSelect_ExitToCopySource2",),
|
||||
0x80804F98:("FileSelect_SetupCopyConfirm1",),
|
||||
0x8080525C:("FileSelect_SetupCopyConfirm2",),
|
||||
0x808052B0:("FileSelect_CopyConfirm",),
|
||||
0x808054A4:("FileSelect_CopyWaitForFlashSave",),
|
||||
0x808055D0:("FileSelect_ReturnToCopyDest",),
|
||||
0x808058A4:("FileSelect_CopyAnim1",),
|
||||
0x80805918:("FileSelect_CopyAnim2",),
|
||||
0x80805A58:("FileSelect_CopyAnim3",),
|
||||
0x80805B30:("FileSelect_CopyAnim4",),
|
||||
0x80805C1C:("FileSelect_CopyAnim5",),
|
||||
0x80806014:("FileSelect_ExitCopyToMain",),
|
||||
0x80806148:("FileSelect_SetupEraseSelect",),
|
||||
0x80806310:("FileSelect_EraseSelect",),
|
||||
0x808067E0:("FileSelect_SetupEraseConfirm1",),
|
||||
0x80806BC8:("FileSelect_SetupEraseConfirm2",),
|
||||
0x80806CA0:("FileSelect_EraseConfirm",),
|
||||
0x80806E84:("FileSelect_ExitToEraseSelect1",),
|
||||
0x80806F30:("FileSelect_ExitToEraseSelect2",),
|
||||
0x808071E4:("FileSelect_EraseAnim1",),
|
||||
0x80807390:("FileSelect_EraseWaitForFlashSave",),
|
||||
0x8080742C:("FileSelect_EraseAnim2",),
|
||||
0x808074B4:("FileSelect_EraseAnim3",),
|
||||
0x808077AC:("FileSelect_ExitEraseToMain",),
|
||||
0x80807940:("FileSelect_DrawTexQuadI4",),
|
||||
0x80807A78:("FileSelect_DrawMultiTexQuadI4",),
|
||||
0x80807C58:("FileSelect_SetKeyboardVtx",),
|
||||
0x80808214:("FileSelect_SetNameEntryVtx",),
|
||||
0x80808D30:("FileSelect_DrawKeyboard",),
|
||||
0x80808F1C:("FileSelect_DrawNameEntry",),
|
||||
0x80809DF0:("FileSelect_StartNameEntry",),
|
||||
0x80809EA0:("FileSelect_UpdateKeyboardCursor",),
|
||||
0x8080A3CC:("FileSelect_NameEntryWaitForFlashSave",),
|
||||
0x8080A418:("FileSelect_StartOptions",),
|
||||
0x8080A4A0:("FileSelect_UpdateOptionsMenu",),
|
||||
0x8080A6BC:("FileSelect_OptionsWaitForFlashSave",),
|
||||
0x8080A708:("FileSelect_DrawOptionsImpl",),
|
||||
0x8080BBFC:("FileSelect_DrawOptions",),
|
||||
0x8080BC20:("FileSelect_IncrementConfigMode",),
|
||||
0x8080BC44:("FileSelect_Noop1",),
|
||||
0x8080BC4C:("FileSelect_Noop2",),
|
||||
0x8080BC58:("FileSelect_InitModeUpdate",),
|
||||
0x8080BDAC:("FileSelect_InitModeDraw",),
|
||||
0x8080BDDC:("FileSelect_SetView",),
|
||||
0x8080BE60:("FileSelect_DrawTexQuadIA8",),
|
||||
0x8080C040:("FileSelect_FadeInMenuElements",),
|
||||
0x8080C228:("FileSelect_SplitNumber",),
|
||||
0x8080C29C:("FileSelect_StartFadeIn",),
|
||||
0x8080C324:("FileSelect_FinishFadeIn",),
|
||||
0x8080C3A8:("FileSelect_UpdateMainMenu",),
|
||||
0x8080D164:("FileSelect_UnusedCM31",),
|
||||
0x8080D170:("FileSelect_UnusedCMDelay",),
|
||||
0x8080D1BC:("FileSelect_RotateToNameEntry",),
|
||||
0x8080D220:("FileSelect_RotateToOptions",),
|
||||
0x8080D284:("FileSelect_RotateToMain",),
|
||||
0x8080D2EC:("FileSelect_PulsateCursor",),
|
||||
0x8080D3D0:("FileSelect_ConfigModeUpdate",),
|
||||
0x8080D40C:("FileSelect_SetWindowVtx",),
|
||||
0x8080D6D4:("FileSelect_SetWindowContentVtx",),
|
||||
0x8080F25C:("FileSelect_DrawFileInfo",),
|
||||
0x808108DC:("FileSelect_DrawWindowContents",),
|
||||
0x80811CB8:("FileSelect_ConfigModeDraw",),
|
||||
0x80812460:("FileSelect_FadeMainToSelect",),
|
||||
0x80812668:("FileSelect_MoveSelectedFileToTop",),
|
||||
0x80812760:("FileSelect_FadeInFileInfo",),
|
||||
0x80812840:("FileSelect_ConfirmFile",),
|
||||
0x80812980:("FileSelect_FadeOutFileInfo",),
|
||||
0x80812A6C:("FileSelect_MoveSelectedFileToSlot",),
|
||||
0x80812D44:("FileSelect_FadeOut",),
|
||||
0x80812D94:("FileSelect_LoadGame",),
|
||||
0x80812E94:("FileSelect_SelectModeUpdate",),
|
||||
0x80812ED0:("FileSelect_SelectModeDraw",),
|
||||
0x8081313C:("FileSelect_UpdateAndDrawSkybox",),
|
||||
0x80813268:("FileSelect_Main",),
|
||||
0x80813908:("func_80813908",),
|
||||
0x80813908:("FileSelect_InitContext",),
|
||||
0x80813C74:("FileSelect_Destroy",),
|
||||
0x80813C98:("FileSelect_Init",),
|
||||
0x80814EB0:("DayTelop_Update",),
|
||||
|
|
|
@ -1927,14 +1927,14 @@
|
|||
0x801C5F44:("D_801C5F44","UNK_TYPE4","",0x4),
|
||||
0x801C5FC0:("sPersistentCycleFlags","u32","[452]",0x710),
|
||||
0x801C66D0:("D_801C66D0","UNK_TYPE2","",0x2),
|
||||
0x801C6798:("D_801C6798","UNK_TYPE4","",0x4),
|
||||
0x801C6798:("gSramSlotOffsets","UNK_TYPE4","",0x4),
|
||||
0x801C67B0:("gAmmoItems","UNK_TYPE1","",0x1),
|
||||
0x801C67C8:("D_801C67C8","s32","[10]",0x28),
|
||||
0x801C67F0:("D_801C67F0","s32","[10]",0x28),
|
||||
0x801C6818:("D_801C6818","s32","[10]",0x28),
|
||||
0x801C6840:("D_801C6840","UNK_TYPE1","",0x1),
|
||||
0x801C6850:("D_801C6850","UNK_TYPE1","",0x1),
|
||||
0x801C6870:("D_801C6870","UNK_TYPE1","",0x1),
|
||||
0x801C67C8:("gFlashSaveStartPages","s32","[10]",0x28),
|
||||
0x801C67F0:("gFlashSaveNumPages","s32","[10]",0x28),
|
||||
0x801C6818:("gFlashSpecialSaveNumPages","s32","[10]",0x28),
|
||||
0x801C6840:("gFlashOwlSaveStartPages","UNK_TYPE1","",0x1),
|
||||
0x801C6850:("gFlashOwlSaveNumPages","UNK_TYPE1","",0x1),
|
||||
0x801C6870:("gFlashSaveSizes","UNK_TYPE1","",0x1),
|
||||
0x801C6890:("D_801C6890","UNK_TYPE1","",0x1),
|
||||
0x801C6898:("sSaveDefaultPlayerData","SavePlayerData","",0x28),
|
||||
0x801C68C0:("sSaveDefaultItemEquips","ItemEquips","",0x22),
|
||||
|
@ -4544,13 +4544,13 @@
|
|||
0x80803FC8:("openingCutscenes","u32","[2]",0x8),
|
||||
0x80813DF0:("D_80813DF0","UNK_TYPE1","",0x1),
|
||||
0x80813F30:("D_80813F30","UNK_TYPE1","",0x1),
|
||||
0x80814130:("D_80814130","UNK_TYPE1","",0x1),
|
||||
0x80814170:("D_80814170","UNK_TYPE1","",0x1),
|
||||
0x808141B0:("D_808141B0","UNK_TYPE1","",0x1),
|
||||
0x80814130:("gOptionsDividerTopVtx","UNK_TYPE1","",0x1),
|
||||
0x80814170:("gOptionsDividerMiddleVtx","UNK_TYPE1","",0x1),
|
||||
0x808141B0:("gOptionsDividerBottomVtx","UNK_TYPE1","",0x1),
|
||||
0x808141F0:("D_808141F0","UNK_TYPE1","",0x1),
|
||||
0x80814240:("D_80814240","UNK_TYPE2","",0x2),
|
||||
0x80814240:("sChooseFileYOffsets","UNK_TYPE2","",0x2),
|
||||
0x8081424C:("D_8081424C","UNK_TYPE2","",0x2),
|
||||
0x80814260:("D_80814260","UNK_TYPE2","",0x2),
|
||||
0x80814260:("sEraseDelayTimer","UNK_TYPE2","",0x2),
|
||||
0x80814264:("D_80814264","UNK_TYPE2","",0x2),
|
||||
0x8081426C:("D_8081426C","UNK_TYPE1","",0x1),
|
||||
0x80814280:("D_80814280","UNK_TYPE1","",0x1),
|
||||
|
@ -4559,31 +4559,31 @@
|
|||
0x80814404:("D_80814404","UNK_TYPE2","",0x2),
|
||||
0x80814410:("D_80814410","UNK_TYPE2","",0x2),
|
||||
0x8081441C:("D_8081441C","UNK_TYPE2","",0x2),
|
||||
0x80814428:("D_80814428","UNK_TYPE4","",0x4),
|
||||
0x80814430:("D_80814430","UNK_TYPE2","",0x2),
|
||||
0x80814428:("sBackspaceEndTextures","UNK_TYPE4","",0x4),
|
||||
0x80814430:("sBackspaceEndWidths","UNK_TYPE2","",0x2),
|
||||
0x80814434:("D_80814434","UNK_TYPE2","",0x2),
|
||||
0x8081444C:("D_8081444C","UNK_TYPE1","",0x1),
|
||||
0x80814464:("D_80814464","UNK_TYPE4","",0x4),
|
||||
0x8081448C:("D_8081448C","UNK_TYPE4","",0x4),
|
||||
0x808144BC:("D_808144BC","UNK_TYPE2","",0x2),
|
||||
0x808144C0:("D_808144C0","UNK_TYPE2","",0x2),
|
||||
0x808144C4:("D_808144C4","UNK_TYPE2","",0x2),
|
||||
0x808144C8:("D_808144C8","UNK_TYPE2","",0x2),
|
||||
0x808144CC:("D_808144CC","UNK_TYPE2","",0x2),
|
||||
0x808144D0:("D_808144D0","UNK_TYPE2","",0x2),
|
||||
0x808144D4:("D_808144D4","UNK_TYPE2","",0x2),
|
||||
0x808144D8:("D_808144D8","UNK_TYPE2","",0x2),
|
||||
0x808144DC:("D_808144DC","UNK_TYPE1","",0x1),
|
||||
0x808144E8:("D_808144E8","UNK_TYPE1","",0x1),
|
||||
0x80814510:("D_80814510","Gfx","[5]",0x28),
|
||||
0x80814538:("D_80814538","UNK_TYPE2","",0x2),
|
||||
0x80814548:("D_80814548","UNK_TYPE2","",0x2),
|
||||
0x80814550:("fileChooseSkyboxRotation","s16","",0x2),
|
||||
0x80814554:("D_80814554","UNK_TYPE1","",0x1),
|
||||
0x8081455C:("D_8081455C","UNK_TYPE1","",0x1),
|
||||
0x80814464:("gOptionsMenuHeaders","UNK_TYPE4","",0x4),
|
||||
0x8081448C:("gOptionsMenuSettings","UNK_TYPE4","",0x4),
|
||||
0x808144BC:("sCursorPrimRed","UNK_TYPE2","",0x2),
|
||||
0x808144C0:("sCursorPrimGreen","UNK_TYPE2","",0x2),
|
||||
0x808144C4:("sCursorPrimBlue","UNK_TYPE2","",0x2),
|
||||
0x808144C8:("sCursorEnvRed","UNK_TYPE2","",0x2),
|
||||
0x808144CC:("sCursorEnvGreen","UNK_TYPE2","",0x2),
|
||||
0x808144D0:("sCursorEnvBlue","UNK_TYPE2","",0x2),
|
||||
0x808144D4:("sCursorPulseDir","UNK_TYPE2","",0x2),
|
||||
0x808144D8:("sCursorFlashTimer","UNK_TYPE2","",0x2),
|
||||
0x808144DC:("sCursorPrimColors","UNK_TYPE1","",0x1),
|
||||
0x808144E8:("sCursorEnvColors","UNK_TYPE1","",0x1),
|
||||
0x80814510:("sScreenFillSetupDL","Gfx","[5]",0x28),
|
||||
0x80814538:("sFileInfoBoxPartWidths","UNK_TYPE2","",0x2),
|
||||
0x80814548:("sWindowContentColors","UNK_TYPE2","",0x2),
|
||||
0x80814550:("sFileSelectSkyboxRotation","s16","",0x2),
|
||||
0x80814554:("sWalletFirstDigit","UNK_TYPE1","",0x1),
|
||||
0x8081455C:("sEmptyName","UNK_TYPE1","",0x1),
|
||||
0x80814564:("D_80814564","UNK_TYPE2","",0x2),
|
||||
0x80814568:("D_80814568","UNK_TYPE","[45]",0xb4),
|
||||
0x8081461C:("D_8081461C","s16","[2]",0x4),
|
||||
0x80814568:("sConfigModeUpdateFuncs","UNK_TYPE","[45]",0xb4),
|
||||
0x8081461C:("sCursorAlphaTargets","s16","[2]",0x4),
|
||||
0x80814620:("D_80814620","UNK_TYPE2","",0x2),
|
||||
0x80814628:("D_80814628","UNK_TYPE2","",0x2),
|
||||
0x80814630:("D_80814630","UNK_TYPE2","",0x2),
|
||||
|
@ -4592,24 +4592,24 @@
|
|||
0x8081464C:("D_8081464C","UNK_TYPE1","",0x1),
|
||||
0x80814650:("D_80814650","UNK_TYPE1","",0x1),
|
||||
0x80814654:("D_80814654","UNK_TYPE1","",0x1),
|
||||
0x8081465C:("D_8081465C","UNK_TYPE4","",0x4),
|
||||
0x8081466C:("D_8081466C","UNK_TYPE1","",0x1),
|
||||
0x8081467C:("D_8081467C","UNK_TYPE1","",0x1),
|
||||
0x8081468C:("D_8081468C","UNK_TYPE4","",0x4),
|
||||
0x808146B4:("D_808146B4","UNK_TYPE1","",0x1),
|
||||
0x808146C4:("D_808146C4","UNK_TYPE1","",0x1),
|
||||
0x808146D8:("D_808146D8","UNK_TYPE1","",0x1),
|
||||
0x808146EC:("D_808146EC","UNK_TYPE2","",0x2),
|
||||
0x808146F8:("D_808146F8","UNK_TYPE2","",0x2),
|
||||
0x80814704:("D_80814704","UNK_TYPE4","",0x4),
|
||||
0x80814720:("D_80814720","UNK_TYPE1","",0x1),
|
||||
0x80814744:("D_80814744","UNK_TYPE1","",0x1),
|
||||
0x80814758:("D_80814758","UNK_TYPE4","",0x4),
|
||||
0x80814764:("D_80814764","UNK_TYPE4","",0x4),
|
||||
0x80814774:("D_80814774","UNK_TYPE1","",0x1),
|
||||
0x8081477C:("D_8081477C","UNK_TYPE","[8]",0x20),
|
||||
0x8081479C:("D_8081479C","UNK_TYPE","[3]",0xc),
|
||||
0x808147A8:("D_808147A8","UNK_TYPE","[3]",0xc),
|
||||
0x8081465C:("sFileSelRemainsTextures","UNK_TYPE4","",0x4),
|
||||
0x8081466C:("sFileSelDayENGTextures","UNK_TYPE1","",0x1),
|
||||
0x8081467C:("sFileSelHeartPieceTextures","UNK_TYPE1","",0x1),
|
||||
0x8081468C:("sHeartTextures","UNK_TYPE4","",0x4),
|
||||
0x808146B4:("sHealthToQuarterHeartCount","UNK_TYPE1","",0x1),
|
||||
0x808146C4:("sFileSelRupeePrimColors","UNK_TYPE1","",0x1),
|
||||
0x808146D8:("sFileSelRupeeEnvColors","UNK_TYPE1","",0x1),
|
||||
0x808146EC:("sHeartPrimColors","UNK_TYPE2","",0x2),
|
||||
0x808146F8:("sHeartEnvColors","UNK_TYPE2","",0x2),
|
||||
0x80814704:("sFileInfoBoxTextures","UNK_TYPE4","",0x4),
|
||||
0x80814720:("sTitleLabels","UNK_TYPE1","",0x1),
|
||||
0x80814744:("sWarningLabels","UNK_TYPE1","",0x1),
|
||||
0x80814758:("sFileButtonTextures","UNK_TYPE4","",0x4),
|
||||
0x80814764:("sActionButtonTextures","UNK_TYPE4","",0x4),
|
||||
0x80814774:("sFileYOffsets","UNK_TYPE1","",0x1),
|
||||
0x8081477C:("sSelectModeUpdateFuncs","UNK_TYPE","[8]",0x20),
|
||||
0x8081479C:("gFileSelectDrawFuncs","UNK_TYPE","[3]",0xc),
|
||||
0x808147A8:("gFileSelectUpdateFuncs","UNK_TYPE","[3]",0xc),
|
||||
0x808147B4:("D_808147B4","UNK_TYPE4","",0x4),
|
||||
0x808147C0:("D_808147C0","UNK_TYPE2","",0x2),
|
||||
0x808147C8:("D_808147C8","UNK_TYPE2","",0x2),
|
||||
|
@ -4622,7 +4622,7 @@
|
|||
0x808147EC:("D_808147EC","f32","",0x4),
|
||||
0x808147F0:("D_808147F0","f32","",0x4),
|
||||
0x80814E80:("D_80814E80","UNK_TYPE1","",0x1),
|
||||
0x80814E90:("D_80814E90","UNK_TYPE1","",0x1),
|
||||
0x80814E90:("sSelectedSetting","UNK_TYPE1","",0x1),
|
||||
0x80815FF0:("D_80815FF0","u8","",0x1),
|
||||
0x80815FF4:("sDayLeftTextures","TexturePtr","[4]",0x10),
|
||||
0x80816004:("sDayRightTextures","TexturePtr","[4]",0x10),
|
||||
|
|
|
@ -2316,21 +2316,21 @@ asm/non_matchings/code/z_sram_NES/Sram_OpenSave.s,Sram_OpenSave,0x80144E78,0x17D
|
|||
asm/non_matchings/code/z_sram_NES/func_8014546C.s,func_8014546C,0x8014546C,0x8B
|
||||
asm/non_matchings/code/z_sram_NES/func_80145698.s,func_80145698,0x80145698,0x4D
|
||||
asm/non_matchings/code/z_sram_NES/func_801457CC.s,func_801457CC,0x801457CC,0x36D
|
||||
asm/non_matchings/code/z_sram_NES/func_80146580.s,func_80146580,0x80146580,0x2A
|
||||
asm/non_matchings/code/z_sram_NES/func_80146628.s,func_80146628,0x80146628,0x11E
|
||||
asm/non_matchings/code/z_sram_NES/Sram_EraseSave.s,Sram_EraseSave,0x80146580,0x2A
|
||||
asm/non_matchings/code/z_sram_NES/Sram_CopySave.s,Sram_CopySave,0x80146628,0x11E
|
||||
asm/non_matchings/code/z_sram_NES/Sram_InitSave.s,Sram_InitSave,0x80146AA0,0xD6
|
||||
asm/non_matchings/code/z_sram_NES/func_80146DF8.s,func_80146DF8,0x80146DF8,0x12
|
||||
asm/non_matchings/code/z_sram_NES/Sram_WriteSaveOptionsToBuffer.s,Sram_WriteSaveOptionsToBuffer,0x80146DF8,0x12
|
||||
asm/non_matchings/code/z_sram_NES/Sram_InitSram.s,Sram_InitSram,0x80146E40,0xC
|
||||
asm/non_matchings/code/z_sram_NES/Sram_Alloc.s,Sram_Alloc,0x80146E70,0x13
|
||||
asm/non_matchings/code/z_sram_NES/func_80146EBC.s,func_80146EBC,0x80146EBC,0xB
|
||||
asm/non_matchings/code/z_sram_NES/Sram_SyncWriteToFlash.s,Sram_SyncWriteToFlash,0x80146EBC,0xB
|
||||
asm/non_matchings/code/z_sram_NES/Sram_SaveSpecialEnterClockTown.s,Sram_SaveSpecialEnterClockTown,0x80146EE8,0x1D
|
||||
asm/non_matchings/code/z_sram_NES/Sram_SaveSpecialNewDay.s,Sram_SaveSpecialNewDay,0x80146F5C,0x2B
|
||||
asm/non_matchings/code/z_sram_NES/func_80147008.s,func_80147008,0x80147008,0x6
|
||||
asm/non_matchings/code/z_sram_NES/func_80147020.s,func_80147020,0x80147020,0x12
|
||||
asm/non_matchings/code/z_sram_NES/func_80147068.s,func_80147068,0x80147068,0x34
|
||||
asm/non_matchings/code/z_sram_NES/func_80147138.s,func_80147138,0x80147138,0x6
|
||||
asm/non_matchings/code/z_sram_NES/func_80147150.s,func_80147150,0x80147150,0x12
|
||||
asm/non_matchings/code/z_sram_NES/func_80147198.s,func_80147198,0x80147198,0x5F
|
||||
asm/non_matchings/code/z_sram_NES/Sram_SetFlashPagesDefault.s,Sram_SetFlashPagesDefault,0x80147008,0x6
|
||||
asm/non_matchings/code/z_sram_NES/Sram_StartWriteToFlashDefault.s,Sram_StartWriteToFlashDefault,0x80147020,0x12
|
||||
asm/non_matchings/code/z_sram_NES/Sram_UpdateWriteToFlashDefault.s,Sram_UpdateWriteToFlashDefault,0x80147068,0x34
|
||||
asm/non_matchings/code/z_sram_NES/Sram_SetFlashPagesOwlSave.s,Sram_SetFlashPagesOwlSave,0x80147138,0x6
|
||||
asm/non_matchings/code/z_sram_NES/Sram_StartWriteToFlashOwlSave.s,Sram_StartWriteToFlashOwlSave,0x80147150,0x12
|
||||
asm/non_matchings/code/z_sram_NES/Sram_UpdateWriteToFlashOwlSave.s,Sram_UpdateWriteToFlashOwlSave,0x80147198,0x5F
|
||||
asm/non_matchings/code/z_sram_NES/func_80147314.s,func_80147314,0x80147314,0x40
|
||||
asm/non_matchings/code/z_sram_NES/func_80147414.s,func_80147414,0x80147414,0x3E
|
||||
asm/non_matchings/code/z_sram_NES/Sram_nop8014750C.s,Sram_nop8014750C,0x8014750C,0x5
|
||||
|
|
|
Loading…
Reference in New Issue