From 7fd45f62653b50d4a9fbff37c4ce805dcc23c801 Mon Sep 17 00:00:00 2001 From: recardo-7 <132130749+recardo-7@users.noreply.github.com> Date: Sat, 20 Apr 2024 21:58:22 +0200 Subject: [PATCH 1/4] move useWidescreen from saveContext.save to saveContext --- include/config/config_game.h | 2 +- include/config/config_safeguards.h | 2 +- include/z64save.h | 2 +- src/code/graph.c | 2 +- src/code/z_common_data.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/config/config_game.h b/include/config/config_game.h index 905667ffdb..c95624371b 100644 --- a/include/config/config_game.h +++ b/include/config/config_game.h @@ -80,7 +80,7 @@ * Use the button combo Z + R + D-Pad Up to toggle * Note: pre-rendered scenes with the fixed camera mode won't re-scale properly */ -#define ENABLE_WIDESCREEN false +#define ENABLE_WIDESCREEN true // Force widescreen mode regardless of SaveContext #define FORCE_WIDESCREEN false diff --git a/include/config/config_safeguards.h b/include/config/config_safeguards.h index 3e03aa9039..71cc4f6ca7 100644 --- a/include/config/config_safeguards.h +++ b/include/config/config_safeguards.h @@ -127,7 +127,7 @@ #if FORCE_WIDESCREEN #define USE_WIDESCREEN true #else - #define USE_WIDESCREEN (ENABLE_WIDESCREEN && gSaveContext.save.useWidescreen == true) + #define USE_WIDESCREEN (ENABLE_WIDESCREEN && gSaveContext.useWidescreen == true) #endif diff --git a/include/z64save.h b/include/z64save.h index 769b77ee6d..9f5b4addcb 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -234,7 +234,6 @@ typedef struct { /* 0x14 */ s32 totalDays; /* 0x18 */ s32 bgsDayCount; // increments with totalDays, can be cleared with `Environment_ClearBgsDayCount` /* 0x1C */ SaveInfo info; // "information" - u8 useWidescreen; } Save; typedef struct { @@ -300,6 +299,7 @@ typedef struct { /* 0x1420 */ s16 worldMapArea; /* 0x1422 */ s16 sunsSongState; // controls the effects of suns song /* 0x1424 */ s16 healthAccumulator; + u8 useWidescreen; } SaveContext; // size = 0x1428 typedef enum { diff --git a/src/code/graph.c b/src/code/graph.c index 61e0b89c5b..b5e523a1d5 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -448,7 +448,7 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) { if (ENABLE_WIDESCREEN && CHECK_BTN_ALL(gameState->input[0].press.button, BTN_DUP) && CHECK_BTN_ALL(gameState->input[0].cur.button, BTN_Z | BTN_R)) { - gSaveContext.save.useWidescreen ^= 1; + gSaveContext.useWidescreen ^= 1; } } diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 5dae1573ed..5201af45ed 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -19,5 +19,5 @@ void SaveContext_Init(void) { gSaveContext.dogIsLost = true; gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT; gSaveContext.prevHudVisibilityMode = HUD_VISIBILITY_ALL; - gSaveContext.save.useWidescreen = false; + gSaveContext.useWidescreen = false; } From 7072a0c2c9a1fc7d59bf2a5444f9cde07d967e00 Mon Sep 17 00:00:00 2001 From: recardo-7 <132130749+recardo-7@users.noreply.github.com> Date: Sat, 20 Apr 2024 22:39:29 +0200 Subject: [PATCH 2/4] add widescreen option (replaces brightness, w/o textures) --- .../gamestates/ovl_file_choose/file_select.h | 3 +- .../ovl_file_choose/z_file_nameset_PAL.c | 103 +++++++++++++++--- 2 files changed, 87 insertions(+), 19 deletions(-) diff --git a/src/overlays/gamestates/ovl_file_choose/file_select.h b/src/overlays/gamestates/ovl_file_choose/file_select.h index b4d0db5b24..4ac0063457 100644 --- a/src/overlays/gamestates/ovl_file_choose/file_select.h +++ b/src/overlays/gamestates/ovl_file_choose/file_select.h @@ -144,7 +144,8 @@ typedef enum { typedef enum { /* 0 */ FS_SETTING_AUDIO, - /* 1 */ FS_SETTING_TARGET + /* 1 */ FS_SETTING_TARGET, + /* 2 */ FS_SETTING_WIDESCREEN } SettingIndex; typedef enum { diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c index ccc64727df..9aa713eea0 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c @@ -701,8 +701,10 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) { if (gSaveContext.audioSetting > 0xF0) { gSaveContext.audioSetting = FS_AUDIO_SURROUND; } - } else { + } else if (sSelectedSetting == FS_SETTING_TARGET) { gSaveContext.zTargetSetting ^= 1; + } else { + gSaveContext.useWidescreen ^= 1; } } else if (this->stickAdjX > 30) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -714,19 +716,44 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) { if (gSaveContext.audioSetting > FS_AUDIO_SURROUND) { gSaveContext.audioSetting = FS_AUDIO_STEREO; } - } else { + } else if (sSelectedSetting == FS_SETTING_TARGET) { gSaveContext.zTargetSetting ^= 1; + } else { + gSaveContext.useWidescreen ^= 1; } } - if ((this->stickAdjY < -30) || (this->stickAdjY > 30)) { + // check which option is selected + if ((this->stickAdjY < -30)) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + if (sSelectedSetting == FS_SETTING_AUDIO) { + sSelectedSetting = FS_SETTING_TARGET; + } else if (sSelectedSetting == FS_SETTING_TARGET) { + sSelectedSetting = FS_SETTING_WIDESCREEN; + } else { + sSelectedSetting = FS_SETTING_AUDIO; + } + } else if ((this->stickAdjY > 30)) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - sSelectedSetting ^= 1; + if (sSelectedSetting == FS_SETTING_AUDIO) { + sSelectedSetting = FS_SETTING_WIDESCREEN; + } else if (sSelectedSetting == FS_SETTING_TARGET) { + sSelectedSetting = FS_SETTING_AUDIO; + } else { + sSelectedSetting = FS_SETTING_TARGET; + } } else if (CHECK_BTN_ALL(input->press.button, BTN_A)) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - sSelectedSetting ^= 1; + if (sSelectedSetting == FS_SETTING_AUDIO) { + sSelectedSetting = FS_SETTING_TARGET; + } else if (sSelectedSetting == FS_SETTING_TARGET) { + sSelectedSetting = FS_SETTING_WIDESCREEN; + } else { + sSelectedSetting = FS_SETTING_AUDIO; + } } } @@ -752,10 +779,16 @@ static OptionsMenuTextureInfo sOptionsMenuHeaders[] = { { 64, 144, 64 }, 16, }, - { + /*TEMPORARILY DISABLED, BECAUSE WIDESCREEN REPLACES BRIGHTNESS ATM{ { gFileSelCheckBrightnessENGTex, gFileSelCheckBrightnessGERTex, gFileSelCheckBrightnessFRATex }, { 128, 128, 128 }, 16, + },*/ + // TODO: Add actual texture + { + { gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDFRATex }, + { 64, 64, 64 }, + 16, }, }; @@ -790,6 +823,17 @@ static OptionsMenuTextureInfo sOptionsMenuSettings[] = { { 48, 80, 48 }, 16, }, + // TODO: Use actual textures + { + { gFileSelSwitchENGTex, gFileSelSwitchGERTex, gFileSelSwitchFRATex }, + { 48, 80, 48 }, + 16, + }, + { + { gFileSelHoldENGTex, gFileSelHoldGERTex, gFileSelHoldFRATex }, + { 48, 80, 48 }, + 16, + }, }; void FileSelect_DrawOptionsImpl(GameState* thisx) { @@ -905,6 +949,7 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0); } + // draw audio options for (i = 0, vtx = 0; i < 4; i++, vtx += 4) { gDPPipeSync(POLY_OPA_DISP++); if (i == gSaveContext.audioSetting) { @@ -921,23 +966,22 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); } - //! @bug Mistakenly using sOptionsMenuHeaders instead of sOptionsMenuSettings for the height. - //! This works out anyway because all heights are 16. gDPLoadTextureBlock(POLY_OPA_DISP++, sOptionsMenuSettings[i].texture[gSaveContext.language], G_IM_FMT_IA, G_IM_SIZ_8b, sOptionsMenuSettings[i].width[gSaveContext.language], - sOptionsMenuHeaders[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + sOptionsMenuSettings[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); } + // draw target options for (; i < 6; i++, vtx += 4) { gDPPipeSync(POLY_OPA_DISP++); - if (i == (gSaveContext.zTargetSetting + 4)) { - if (sSelectedSetting != FS_SETTING_AUDIO) { + if (i == (gSaveContext.zTargetSetting + 4)) { // not quite sure what this is doing?? has to do with which option is highlighted + if (sSelectedSetting == FS_SETTING_TARGET) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cursorPrimRed, cursorPrimGreen, cursorPrimBlue, this->titleAlpha[0]); - gDPSetEnvColor(POLY_OPA_DISP++, cursorEnvRed, cursorEnvGreen, cursorEnvBlue, 0xFF); + gDPSetEnvColor(POLY_OPA_DISP++, cursorEnvRed, cursorEnvGreen, cursorEnvBlue, 255); } else { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, this->titleAlpha[0]); gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); @@ -947,12 +991,34 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); } - //! @bug Mistakenly using sOptionsMenuHeaders instead of sOptionsMenuSettings for the height. - //! This is also an OOB read that happens to access the height of the first two elements in - //! sOptionsMenuSettings, and since all heights are 16, it works out anyway. gDPLoadTextureBlock(POLY_OPA_DISP++, sOptionsMenuSettings[i].texture[gSaveContext.language], G_IM_FMT_IA, G_IM_SIZ_8b, sOptionsMenuSettings[i].width[gSaveContext.language], - sOptionsMenuHeaders[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + sOptionsMenuSettings[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); + } + + // draw widescreen options + for (; i < 8; i++, vtx += 4) { + gDPPipeSync(POLY_OPA_DISP++); + + if (i == (gSaveContext.useWidescreen + 6)) { + if (sSelectedSetting == FS_SETTING_WIDESCREEN) { + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cursorPrimRed, cursorPrimGreen, cursorPrimBlue, + this->titleAlpha[0]); + gDPSetEnvColor(POLY_OPA_DISP++, cursorEnvRed, cursorEnvGreen, cursorEnvBlue, 255); + } else { + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, this->titleAlpha[0]); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); + } + } else { + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 120, 120, 120, this->titleAlpha[0]); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); + } + + gDPLoadTextureBlock(POLY_OPA_DISP++, sOptionsMenuSettings[i].texture[gSaveContext.language], G_IM_FMT_IA, + G_IM_SIZ_8b, sOptionsMenuSettings[i].width[gSaveContext.language], + sOptionsMenuSettings[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); } @@ -960,7 +1026,8 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { gDPPipeSync(POLY_OPA_DISP++); // check brightness bars - gDPLoadTextureBlock_4b(POLY_OPA_DISP++, gFileSelBrightnessCheckTex, G_IM_FMT_IA, 96, 16, 0, + // TEMPORARY: REPLACES BRIGHTNESS SETTINGS + /*gDPLoadTextureBlock_4b(POLY_OPA_DISP++, gFileSelBrightnessCheckTex, G_IM_FMT_IA, 96, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 55, 55, 55, this->titleAlpha[0]); @@ -974,7 +1041,7 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); - vtx += 4; + vtx += 4;*/ // blue divider lines gDPPipeSync(POLY_OPA_DISP++); From 302c244efea28ba04495d2bef57c1e7b3bdc72b3 Mon Sep 17 00:00:00 2001 From: recardo-7 <132130749+recardo-7@users.noreply.github.com> Date: Sun, 21 Apr 2024 00:17:09 +0200 Subject: [PATCH 3/4] add images --- .../textures/title_static/16by9_eng.ia8.png | Bin 0 -> 5096 bytes assets/textures/title_static/4by3_eng.ia8.png | Bin 0 -> 4876 bytes assets/textures/title_static/title_static.c | 673 ++++++++++++++++++ assets/textures/title_static/title_static.h | 155 ++++ .../title_static/widescreen_eng.ia8.png | Bin 0 -> 5776 bytes .../ovl_file_choose/z_file_nameset_PAL.c | 6 +- 6 files changed, 831 insertions(+), 3 deletions(-) create mode 100755 assets/textures/title_static/16by9_eng.ia8.png create mode 100755 assets/textures/title_static/4by3_eng.ia8.png create mode 100644 assets/textures/title_static/title_static.c create mode 100644 assets/textures/title_static/title_static.h create mode 100755 assets/textures/title_static/widescreen_eng.ia8.png diff --git a/assets/textures/title_static/16by9_eng.ia8.png b/assets/textures/title_static/16by9_eng.ia8.png new file mode 100755 index 0000000000000000000000000000000000000000..9359291fbcfc4935e5b0363e8285335cab08a660 GIT binary patch literal 5096 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 literal 0 HcmV?d00001 diff --git a/assets/textures/title_static/title_static.c b/assets/textures/title_static/title_static.c new file mode 100644 index 0000000000..c7255fea5a --- /dev/null +++ b/assets/textures/title_static/title_static.c @@ -0,0 +1,673 @@ +#include "ultra64.h" +#include "z64.h" +#include "macros.h" +#include "title_static.h" + +u64 gFileSelConnectorTex[] = { +#include "assets/textures/title_static/connector.ia8.inc.c" +}; + +u64 gFileSelForestMedallionTex[] = { +#include "assets/textures/title_static/forest_medallion.ia8.inc.c" +}; + +u64 gFileSelFireMedallionTex[] = { +#include "assets/textures/title_static/fire_medallion.ia8.inc.c" +}; + +u64 gFileSelWaterMedallionTex[] = { +#include "assets/textures/title_static/water_medallion.ia8.inc.c" +}; + +u64 gFileSelSpiritMedallionTex[] = { +#include "assets/textures/title_static/spirit_medallion.ia8.inc.c" +}; + +u64 gFileSelShadowMedallionTex[] = { +#include "assets/textures/title_static/shadow_medallion.ia8.inc.c" +}; + +u64 gFileSelLightMedallionTex[] = { +#include "assets/textures/title_static/light_medallion.ia8.inc.c" +}; + +u64 gFileSelWindow1Tex[] = { +#include "assets/textures/title_static/window_1.ia16.inc.c" +}; + +u64 gFileSelWindow2Tex[] = { +#include "assets/textures/title_static/window_2.ia16.inc.c" +}; + +u64 gFileSelWindow3Tex[] = { +#include "assets/textures/title_static/window_3.ia16.inc.c" +}; + +u64 gFileSelWindow4Tex[] = { +#include "assets/textures/title_static/window_4.ia16.inc.c" +}; + +u64 gFileSelWindow5Tex[] = { +#include "assets/textures/title_static/window_5.ia16.inc.c" +}; + +u64 gFileSelWindow6Tex[] = { +#include "assets/textures/title_static/window_6.ia16.inc.c" +}; + +u64 gFileSelWindow7Tex[] = { +#include "assets/textures/title_static/window_7.ia16.inc.c" +}; + +u64 gFileSelWindow8Tex[] = { +#include "assets/textures/title_static/window_8.ia16.inc.c" +}; + +u64 gFileSelWindow9Tex[] = { +#include "assets/textures/title_static/window_9.ia16.inc.c" +}; + +u64 gFileSelWindow10Tex[] = { +#include "assets/textures/title_static/window_10.ia16.inc.c" +}; + +u64 gFileSelWindow11Tex[] = { +#include "assets/textures/title_static/window_11.ia16.inc.c" +}; + +u64 gFileSelWindow12Tex[] = { +#include "assets/textures/title_static/window_12.ia16.inc.c" +}; + +u64 gFileSelWindow13Tex[] = { +#include "assets/textures/title_static/window_13.ia16.inc.c" +}; + +u64 gFileSelWindow14Tex[] = { +#include "assets/textures/title_static/window_14.ia16.inc.c" +}; + +u64 gFileSelWindow15Tex[] = { +#include "assets/textures/title_static/window_15.ia16.inc.c" +}; + +u64 gFileSelWindow16Tex[] = { +#include "assets/textures/title_static/window_16.ia16.inc.c" +}; + +u64 gFileSelWindow17Tex[] = { +#include "assets/textures/title_static/window_17.ia16.inc.c" +}; + +u64 gFileSelWindow18Tex[] = { +#include "assets/textures/title_static/window_18.ia16.inc.c" +}; + +u64 gFileSelWindow19Tex[] = { +#include "assets/textures/title_static/window_19.ia16.inc.c" +}; + +u64 gFileSelWindow20Tex[] = { +#include "assets/textures/title_static/window_20.ia16.inc.c" +}; + +u64 gFileSelKanjiButtonTex[] = { +#include "assets/textures/title_static/kanji_button.ia16.inc.c" +}; + +u64 gFileSelHiraganaButtonTex[] = { +#include "assets/textures/title_static/hiragana_button.ia16.inc.c" +}; + +u64 gFileSelKatakanaButtonTex[] = { +#include "assets/textures/title_static/katakana_button.ia16.inc.c" +}; + +u64 gFileSelENDButtonENGTex[] = { +#include "assets/textures/title_static/end_button_eng.ia16.inc.c" +}; + +u64 gFileSelENDButtonGERTex[] = { +#include "assets/textures/title_static/end_button_ger.ia16.inc.c" +}; + +u64 gFileSelENDButtonFRATex[] = { +#include "assets/textures/title_static/end_button_fra.ia16.inc.c" +}; + +u64 gFileSelBackspaceButtonTex[] = { +#include "assets/textures/title_static/backspace_button.ia16.inc.c" +}; + +u64 gFileSelNameBoxTex[] = { +#include "assets/textures/title_static/name_box.ia16.inc.c" +}; + +u64 gFileSelFileInfoBox1Tex[] = { +#include "assets/textures/title_static/file_info_box_1.ia16.inc.c" +}; + +u64 gFileSelFileInfoBox2Tex[] = { +#include "assets/textures/title_static/file_info_box_2.ia16.inc.c" +}; + +u64 gFileSelFileInfoBox3Tex[] = { +#include "assets/textures/title_static/file_info_box_3.ia16.inc.c" +}; + +u64 gFileSelFileInfoBox4Tex[] = { +#include "assets/textures/title_static/file_info_box_4.ia16.inc.c" +}; + +u64 gFileSelFileInfoBox5Tex[] = { +#include "assets/textures/title_static/file_info_box_5.ia16.inc.c" +}; + +u64 gFileSelDISKButtonTex[] = { +#include "assets/textures/title_static/disk_button.ia16.inc.c" +}; + +u64 gFileSelOptionsDividerTex[] = { +#include "assets/textures/title_static/options_divider.ia4.inc.c" +}; + +u64 gFileSelBrightnessCheckTex[] = { +#include "assets/textures/title_static/brightness_check.ia4.inc.c" +}; + +u64 gFileSelBigButtonHighlightTex[] = { +#include "assets/textures/title_static/big_button_highlight.i8.inc.c" +}; + +u64 gFileSelCharHighlightTex[] = { +#include "assets/textures/title_static/char_highlight.i8.inc.c" +}; + +u64 gFileSelMediumButtonHighlightTex[] = { +#include "assets/textures/title_static/medium_button_highlight.i8.inc.c" +}; + +u64 gFileSelSmallButtonHighlightTex[] = { +#include "assets/textures/title_static/small_button_highlight.i8.inc.c" +}; + +u64 gFileSelKokiriEmeraldTex[] = { +#include "assets/textures/title_static/kokiri_emerald.rgba32.inc.c" +}; + +u64 gFileSelGoronRubyTex[] = { +#include "assets/textures/title_static/goron_ruby.rgba32.inc.c" +}; + +u64 gFileSelZoraSapphireTex[] = { +#include "assets/textures/title_static/zora_sapphire.rgba32.inc.c" +}; + +u64 gFileSelNoFileToCopyENGTex[] = { +#include "assets/textures/title_static/no_file_to_copy_eng.ia8.inc.c" +}; + +u64 gFileSelNoFileToEraseENGTex[] = { +#include "assets/textures/title_static/no_file_to_erase_eng.ia8.inc.c" +}; + +u64 gFileSelNoEmptyFileENGTex[] = { +#include "assets/textures/title_static/no_empty_file_eng.ia8.inc.c" +}; + +u64 gFileSelFileEmptyENGTex[] = { +#include "assets/textures/title_static/file_empty_eng.ia8.inc.c" +}; + +u64 gFileSelFileInUseENGTex[] = { +#include "assets/textures/title_static/file_in_use_eng.ia8.inc.c" +}; + +u64 gFileSelNoFileToCopyGERTex[] = { +#include "assets/textures/title_static/no_file_to_copy_ger.ia8.inc.c" +}; + +u64 gFileSelNoFileToEraseGERTex[] = { +#include "assets/textures/title_static/no_file_to_erase_ger.ia8.inc.c" +}; + +u64 gFileSelNoEmptyFileGERTex[] = { +#include "assets/textures/title_static/no_empty_file_ger.ia8.inc.c" +}; + +u64 gFileSelFileEmptyGERTex[] = { +#include "assets/textures/title_static/file_empty_ger.ia8.inc.c" +}; + +u64 gFileSelFileInUseGERTex[] = { +#include "assets/textures/title_static/file_in_use_ger.ia8.inc.c" +}; + +u64 gFileSelNoFileToCopyFRATex[] = { +#include "assets/textures/title_static/no_file_to_copy_fra.ia8.inc.c" +}; + +u64 gFileSelNoFileToEraseFRATex[] = { +#include "assets/textures/title_static/no_file_to_erase_fra.ia8.inc.c" +}; + +u64 gFileSelNoEmptyFileFRATex[] = { +#include "assets/textures/title_static/no_empty_file_fra.ia8.inc.c" +}; + +u64 gFileSelFileEmptyFRATex[] = { +#include "assets/textures/title_static/file_empty_fra.ia8.inc.c" +}; + +u64 gFileSelFileInUseFRATex[] = { +#include "assets/textures/title_static/file_in_use_fra.ia8.inc.c" +}; + +u64 gFileSelCopyWhichFileENGTex[] = { +#include "assets/textures/title_static/copy_which_file_eng.ia8.inc.c" +}; + +u64 gFileSelCopyToWhichFileENGTex[] = { +#include "assets/textures/title_static/copy_to_which_file_eng.ia8.inc.c" +}; + +u64 gFileSelAreYouSureENGTex[] = { +#include "assets/textures/title_static/are_you_sure_eng.ia8.inc.c" +}; + +u64 gFileSelFileCopiedENGTex[] = { +#include "assets/textures/title_static/file_copied_eng.ia8.inc.c" +}; + +u64 gFileSelWhichFile1GERTex[] = { +#include "assets/textures/title_static/which_file_1_ger.ia8.inc.c" +}; + +u64 gFileSelCopyToWhichFileGERTex[] = { +#include "assets/textures/title_static/copy_to_which_file_ger.ia8.inc.c" +}; + +u64 gFileSelAreYouSureGERTex[] = { +#include "assets/textures/title_static/are_you_sure_ger.ia8.inc.c" +}; + +u64 gFileSelFileCopiedGERTex[] = { +#include "assets/textures/title_static/file_copied_ger.ia8.inc.c" +}; + +u64 gFileSelCopyWhichFileFRATex[] = { +#include "assets/textures/title_static/copy_which_file_fra.ia8.inc.c" +}; + +u64 gFileSelCopyToWhichFileFRATex[] = { +#include "assets/textures/title_static/copy_to_which_file_fra.ia8.inc.c" +}; + +u64 gFileSelAreYouSureFRATex[] = { +#include "assets/textures/title_static/are_you_sure_fra.ia8.inc.c" +}; + +u64 gFileSelFileCopiedFRATex[] = { +#include "assets/textures/title_static/file_copied_fra.ia8.inc.c" +}; + +u64 gFileSelPleaseSelectAFileENGTex[] = { +#include "assets/textures/title_static/please_select_a_file_eng.ia8.inc.c" +}; + +u64 gFileSelOpenThisFileENGTex[] = { +#include "assets/textures/title_static/open_this_file_eng.ia8.inc.c" +}; + +u64 gFileSelPleaseSelectAFileGERTex[] = { +#include "assets/textures/title_static/please_select_a_file_ger.ia8.inc.c" +}; + +u64 gFileSelOpenThisFileGERTex[] = { +#include "assets/textures/title_static/open_this_file_ger.ia8.inc.c" +}; + +u64 gFileSelPleaseSelectAFileFRATex[] = { +#include "assets/textures/title_static/please_select_a_file_fra.ia8.inc.c" +}; + +u64 gFileSelOpenThisFileFRATex[] = { +#include "assets/textures/title_static/open_this_file_fra.ia8.inc.c" +}; + +u64 gFileSelEraseWhichFileENGTex[] = { +#include "assets/textures/title_static/erase_which_file_eng.ia8.inc.c" +}; + +u64 gFileSelAreYouSure2ENGTex[] = { +#include "assets/textures/title_static/are_you_sure_eng_2.ia8.inc.c" +}; + +u64 gFileSelFileErasedENGTex[] = { +#include "assets/textures/title_static/file_erased_eng.ia8.inc.c" +}; + +u64 gFileSelWhichFile2GERTex[] = { +#include "assets/textures/title_static/which_file_2_ger.ia8.inc.c" +}; + +u64 gFileSelAreYouSure2GERTex[] = { +#include "assets/textures/title_static/are_you_sure_ger_2.ia8.inc.c" +}; + +u64 gFileSelFileErasedGERTex[] = { +#include "assets/textures/title_static/file_erased_ger.ia8.inc.c" +}; + +u64 gFileSelEraseWhichFileFRATex[] = { +#include "assets/textures/title_static/erase_which_file_fra.ia8.inc.c" +}; + +u64 gFileSelAreYouSure2FRATex[] = { +#include "assets/textures/title_static/are_you_sure_fra_2.ia8.inc.c" +}; + +u64 gFileSelFileErasedFRATex[] = { +#include "assets/textures/title_static/file_erased_fra.ia8.inc.c" +}; + +u64 gFileSelOptionsENGTex[] = { +#include "assets/textures/title_static/options_eng.ia8.inc.c" +}; + +u64 gFileSelOptionsGERTex[] = { +#include "assets/textures/title_static/options_ger.ia8.inc.c" +}; + +u64 gFileSelNameENGTex[] = { +#include "assets/textures/title_static/name_eng.ia8.inc.c" +}; + +u64 gFileSelNameGERTex[] = { +#include "assets/textures/title_static/name_ger.ia8.inc.c" +}; + +u64 gFileSelNameFRATex[] = { +#include "assets/textures/title_static/name_fra.ia8.inc.c" +}; + +u64 gFileSelControlsENGTex[] = { +#include "assets/textures/title_static/controls_eng.ia8.inc.c" +}; + +u64 gFileSelControlsGERTex[] = { +#include "assets/textures/title_static/controls_ger.ia8.inc.c" +}; + +u64 gFileSelControlsFRATex[] = { +#include "assets/textures/title_static/controls_fra.ia8.inc.c" +}; + +u64 gFileSelCopyButtonENGTex[] = { +#include "assets/textures/title_static/copy_button_eng.ia16.inc.c" +}; + +u64 gFileSelCopyButtonGERTex[] = { +#include "assets/textures/title_static/copy_button_ger.ia16.inc.c" +}; + +u64 gFileSelCopyButtonFRATex[] = { +#include "assets/textures/title_static/copy_button_fra.ia16.inc.c" +}; + +u64 gFileSelFile1ButtonENGTex[] = { +#include "assets/textures/title_static/file_1_button_eng.ia16.inc.c" +}; + +u64 gFileSelFile2ButtonENGTex[] = { +#include "assets/textures/title_static/file_2_button_eng.ia16.inc.c" +}; + +u64 gFileSelFile3ButtonENGTex[] = { +#include "assets/textures/title_static/file_3_button_eng.ia16.inc.c" +}; + +u64 gFileSelFile1ButtonGERTex[] = { +#include "assets/textures/title_static/file_1_button_ger.ia16.inc.c" +}; + +u64 gFileSelFile2ButtonGERTex[] = { +#include "assets/textures/title_static/file_2_button_ger.ia16.inc.c" +}; + +u64 gFileSelFile3ButtonGERTex[] = { +#include "assets/textures/title_static/file_3_button_ger.ia16.inc.c" +}; + +u64 gFileSelFile1ButtonFRATex[] = { +#include "assets/textures/title_static/file_1_button_fra.ia16.inc.c" +}; + +u64 gFileSelFile2ButtonFRATex[] = { +#include "assets/textures/title_static/file_2_button_fra.ia16.inc.c" +}; + +u64 gFileSelFile3ButtonFRATex[] = { +#include "assets/textures/title_static/file_3_button_fra.ia16.inc.c" +}; + +u64 gFileSelYesButtonENGTex[] = { +#include "assets/textures/title_static/yes_button_eng.ia16.inc.c" +}; + +u64 gFileSelYesButtonGERTex[] = { +#include "assets/textures/title_static/yes_button_ger.ia16.inc.c" +}; + +u64 gFileSelYesButtonFRATex[] = { +#include "assets/textures/title_static/yes_button_fra.ia16.inc.c" +}; + +u64 gFileSelEraseButtonENGTex[] = { +#include "assets/textures/title_static/erase_button_eng.ia16.inc.c" +}; + +u64 gFileSelEraseButtonGERTex[] = { +#include "assets/textures/title_static/erase_button_ger.ia16.inc.c" +}; + +u64 gFileSelEraseButtonFRATex[] = { +#include "assets/textures/title_static/erase_button_fra.ia16.inc.c" +}; + +u64 gFileSelQuitButtonENGTex[] = { +#include "assets/textures/title_static/quit_button_eng.ia16.inc.c" +}; + +u64 gFileSelQuitButtonGERTex[] = { +#include "assets/textures/title_static/quit_button_ger.ia16.inc.c" +}; + +u64 gFileSelQuitButtonFRATex[] = { +#include "assets/textures/title_static/quit_button_fra.ia16.inc.c" +}; + +u64 gFileSelSurroundENGTex[] = { +#include "assets/textures/title_static/surround_eng.ia8.inc.c" +}; + +u64 gFileSelHeadsetENGTex[] = { +#include "assets/textures/title_static/headset_eng.ia8.inc.c" +}; + +u64 gFileSelHeadsetGERTex[] = { +#include "assets/textures/title_static/headset_ger.ia8.inc.c" +}; + +u64 gFileSelHeadsetFRATex[] = { +#include "assets/textures/title_static/headset_fra.ia8.inc.c" +}; + +u64 gFileSelMonoENGTex[] = { +#include "assets/textures/title_static/mono_eng.ia8.inc.c" +}; + +u64 gFileSelSOUNDENGTex[] = { +#include "assets/textures/title_static/SOUND_eng.ia8.inc.c" +}; + +u64 gFileSelSOUNDFRATex[] = { +#include "assets/textures/title_static/SOUND_fra.ia8.inc.c" +}; + +u64 gFileSelStereoENGTex[] = { +#include "assets/textures/title_static/stereo_eng.ia8.inc.c" +}; + +u64 gFileSelStereoFRATex[] = { +#include "assets/textures/title_static/stereo_fra.ia8.inc.c" +}; + +u64 gFileSelLTargetingENGTex[] = { +#include "assets/textures/title_static/l_targeting_eng.ia8.inc.c" +}; + +u64 gFileSelLTargetingGERTex[] = { +#include "assets/textures/title_static/l_targeting_ger.ia8.inc.c" +}; + +u64 gFileSelLTargetingFRATex[] = { +#include "assets/textures/title_static/l_targeting_fra.ia8.inc.c" +}; + +u64 gFileSelSwitchENGTex[] = { +#include "assets/textures/title_static/switch_eng.ia8.inc.c" +}; + +u64 gFileSelSwitchGERTex[] = { +#include "assets/textures/title_static/switch_ger.ia8.inc.c" +}; + +u64 gFileSelSwitchFRATex[] = { +#include "assets/textures/title_static/switch_fra.ia8.inc.c" +}; + +u64 gFileSelHoldENGTex[] = { +#include "assets/textures/title_static/hold_eng.ia8.inc.c" +}; + +u64 gFileSelHoldGERTex[] = { +#include "assets/textures/title_static/hold_ger.ia8.inc.c" +}; + +u64 gFileSelHoldFRATex[] = { +#include "assets/textures/title_static/hold_fra.ia8.inc.c" +}; + +u64 gFileSelCheckBrightnessENGTex[] = { +#include "assets/textures/title_static/check_brightness_eng.ia8.inc.c" +}; + +u64 gFileSelCheckBrightnessGERTex[] = { +#include "assets/textures/title_static/check_brightness_ger.ia8.inc.c" +}; + +u64 gFileSelCheckBrightnessFRATex[] = { +#include "assets/textures/title_static/check_brightness_fra.ia8.inc.c" +}; + +u64 gFileSelWidescreenENGTex[] = { +#include "assets/textures/title_static/widescreen_eng.ia8.inc.c" +}; + +u64 gFileSel4BY3ENGTex[] = { +#include "assets/textures/title_static/4by3_eng.ia8.inc.c" +}; + +u64 gFileSel16BY9ENGTex[] = { +#include "assets/textures/title_static/16by9_eng.ia8.inc.c" +}; + +u64 gFileSelOptionsButtonENGTex[] = { +#include "assets/textures/title_static/options_button_eng.ia16.inc.c" +}; + +u64 gFileSelOptionsButtonGERTex[] = { +#include "assets/textures/title_static/options_button_ger.ia16.inc.c" +}; + +u64 gFileSelSaveXTex[] = { +#include "assets/textures/title_static/save_x.i4.inc.c" +}; + +Gfx gFileSelWindow1DL[] = { + gsDPPipeSync(), + gsDPLoadTextureBlock(gFileSelWindow1Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(0, 2, 3, 1, 0), + gsDPLoadTextureBlock(gFileSelWindow5Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(4, 6, 7, 5, 0), + gsDPLoadTextureBlock(gFileSelWindow9Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(8, 10, 11, 9, 0), + gsDPLoadTextureBlock(gFileSelWindow13Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(12, 14, 15, 13, 0), + gsDPLoadTextureBlock(gFileSelWindow17Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(16, 18, 19, 17, 0), + gsDPLoadTextureBlock(gFileSelWindow2Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(20, 22, 23, 21, 0), + gsDPLoadTextureBlock(gFileSelWindow6Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(24, 26, 27, 25, 0), + gsDPLoadTextureBlock(gFileSelWindow10Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(28, 30, 31, 29, 0), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +Gfx gFileSelWindow2DL[] = { + gsDPLoadTextureBlock(gFileSelWindow14Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(0, 2, 3, 1, 0), + gsDPLoadTextureBlock(gFileSelWindow18Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(4, 6, 7, 5, 0), + gsDPLoadTextureBlock(gFileSelWindow3Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(8, 10, 11, 9, 0), + gsDPLoadTextureBlock(gFileSelWindow7Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(12, 14, 15, 13, 0), + gsDPLoadTextureBlock(gFileSelWindow11Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(16, 18, 19, 17, 0), + gsDPLoadTextureBlock(gFileSelWindow15Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(20, 22, 23, 21, 0), + gsDPLoadTextureBlock(gFileSelWindow19Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(24, 26, 27, 25, 0), + gsDPLoadTextureBlock(gFileSelWindow4Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 48, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(28, 30, 31, 29, 0), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +Gfx gFileSelWindow3DL[] = { + gsDPLoadTextureBlock(gFileSelWindow8Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 48, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(0, 2, 3, 1, 0), + gsDPLoadTextureBlock(gFileSelWindow12Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 48, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(4, 6, 7, 5, 0), + gsDPLoadTextureBlock(gFileSelWindow16Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 48, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(8, 10, 11, 9, 0), + gsDPLoadTextureBlock(gFileSelWindow20Tex, G_IM_FMT_IA, G_IM_SIZ_16b, 48, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(12, 14, 15, 13, 0), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + diff --git a/assets/textures/title_static/title_static.h b/assets/textures/title_static/title_static.h new file mode 100644 index 0000000000..129b076255 --- /dev/null +++ b/assets/textures/title_static/title_static.h @@ -0,0 +1,155 @@ +#ifndef TITLE_STATIC_H +#define TITLE_STATIC_H 1 + +extern u64 gFileSelConnectorTex[]; +extern u64 gFileSelForestMedallionTex[]; +extern u64 gFileSelFireMedallionTex[]; +extern u64 gFileSelWaterMedallionTex[]; +extern u64 gFileSelSpiritMedallionTex[]; +extern u64 gFileSelShadowMedallionTex[]; +extern u64 gFileSelLightMedallionTex[]; +extern u64 gFileSelWindow1Tex[]; +extern u64 gFileSelWindow2Tex[]; +extern u64 gFileSelWindow3Tex[]; +extern u64 gFileSelWindow4Tex[]; +extern u64 gFileSelWindow5Tex[]; +extern u64 gFileSelWindow6Tex[]; +extern u64 gFileSelWindow7Tex[]; +extern u64 gFileSelWindow8Tex[]; +extern u64 gFileSelWindow9Tex[]; +extern u64 gFileSelWindow10Tex[]; +extern u64 gFileSelWindow11Tex[]; +extern u64 gFileSelWindow12Tex[]; +extern u64 gFileSelWindow13Tex[]; +extern u64 gFileSelWindow14Tex[]; +extern u64 gFileSelWindow15Tex[]; +extern u64 gFileSelWindow16Tex[]; +extern u64 gFileSelWindow17Tex[]; +extern u64 gFileSelWindow18Tex[]; +extern u64 gFileSelWindow19Tex[]; +extern u64 gFileSelWindow20Tex[]; +extern u64 gFileSelKanjiButtonTex[]; +extern u64 gFileSelHiraganaButtonTex[]; +extern u64 gFileSelKatakanaButtonTex[]; +extern u64 gFileSelENDButtonENGTex[]; +extern u64 gFileSelENDButtonGERTex[]; +extern u64 gFileSelENDButtonFRATex[]; +extern u64 gFileSelBackspaceButtonTex[]; +extern u64 gFileSelNameBoxTex[]; +extern u64 gFileSelFileInfoBox1Tex[]; +extern u64 gFileSelFileInfoBox2Tex[]; +extern u64 gFileSelFileInfoBox3Tex[]; +extern u64 gFileSelFileInfoBox4Tex[]; +extern u64 gFileSelFileInfoBox5Tex[]; +extern u64 gFileSelDISKButtonTex[]; +extern u64 gFileSelOptionsDividerTex[]; +extern u64 gFileSelBrightnessCheckTex[]; +extern u64 gFileSelBigButtonHighlightTex[]; +extern u64 gFileSelCharHighlightTex[]; +extern u64 gFileSelMediumButtonHighlightTex[]; +extern u64 gFileSelSmallButtonHighlightTex[]; +extern u64 gFileSelKokiriEmeraldTex[]; +extern u64 gFileSelGoronRubyTex[]; +extern u64 gFileSelZoraSapphireTex[]; +extern u64 gFileSelNoFileToCopyENGTex[]; +extern u64 gFileSelNoFileToEraseENGTex[]; +extern u64 gFileSelNoEmptyFileENGTex[]; +extern u64 gFileSelFileEmptyENGTex[]; +extern u64 gFileSelFileInUseENGTex[]; +extern u64 gFileSelNoFileToCopyGERTex[]; +extern u64 gFileSelNoFileToEraseGERTex[]; +extern u64 gFileSelNoEmptyFileGERTex[]; +extern u64 gFileSelFileEmptyGERTex[]; +extern u64 gFileSelFileInUseGERTex[]; +extern u64 gFileSelNoFileToCopyFRATex[]; +extern u64 gFileSelNoFileToEraseFRATex[]; +extern u64 gFileSelNoEmptyFileFRATex[]; +extern u64 gFileSelFileEmptyFRATex[]; +extern u64 gFileSelFileInUseFRATex[]; +extern u64 gFileSelCopyWhichFileENGTex[]; +extern u64 gFileSelCopyToWhichFileENGTex[]; +extern u64 gFileSelAreYouSureENGTex[]; +extern u64 gFileSelFileCopiedENGTex[]; +extern u64 gFileSelWhichFile1GERTex[]; +extern u64 gFileSelCopyToWhichFileGERTex[]; +extern u64 gFileSelAreYouSureGERTex[]; +extern u64 gFileSelFileCopiedGERTex[]; +extern u64 gFileSelCopyWhichFileFRATex[]; +extern u64 gFileSelCopyToWhichFileFRATex[]; +extern u64 gFileSelAreYouSureFRATex[]; +extern u64 gFileSelFileCopiedFRATex[]; +extern u64 gFileSelPleaseSelectAFileENGTex[]; +extern u64 gFileSelOpenThisFileENGTex[]; +extern u64 gFileSelPleaseSelectAFileGERTex[]; +extern u64 gFileSelOpenThisFileGERTex[]; +extern u64 gFileSelPleaseSelectAFileFRATex[]; +extern u64 gFileSelOpenThisFileFRATex[]; +extern u64 gFileSelEraseWhichFileENGTex[]; +extern u64 gFileSelAreYouSure2ENGTex[]; +extern u64 gFileSelFileErasedENGTex[]; +extern u64 gFileSelWhichFile2GERTex[]; +extern u64 gFileSelAreYouSure2GERTex[]; +extern u64 gFileSelFileErasedGERTex[]; +extern u64 gFileSelEraseWhichFileFRATex[]; +extern u64 gFileSelAreYouSure2FRATex[]; +extern u64 gFileSelFileErasedFRATex[]; +extern u64 gFileSelOptionsENGTex[]; +extern u64 gFileSelOptionsGERTex[]; +extern u64 gFileSelNameENGTex[]; +extern u64 gFileSelNameGERTex[]; +extern u64 gFileSelNameFRATex[]; +extern u64 gFileSelControlsENGTex[]; +extern u64 gFileSelControlsGERTex[]; +extern u64 gFileSelControlsFRATex[]; +extern u64 gFileSelCopyButtonENGTex[]; +extern u64 gFileSelCopyButtonGERTex[]; +extern u64 gFileSelCopyButtonFRATex[]; +extern u64 gFileSelFile1ButtonENGTex[]; +extern u64 gFileSelFile2ButtonENGTex[]; +extern u64 gFileSelFile3ButtonENGTex[]; +extern u64 gFileSelFile1ButtonGERTex[]; +extern u64 gFileSelFile2ButtonGERTex[]; +extern u64 gFileSelFile3ButtonGERTex[]; +extern u64 gFileSelFile1ButtonFRATex[]; +extern u64 gFileSelFile2ButtonFRATex[]; +extern u64 gFileSelFile3ButtonFRATex[]; +extern u64 gFileSelYesButtonENGTex[]; +extern u64 gFileSelYesButtonGERTex[]; +extern u64 gFileSelYesButtonFRATex[]; +extern u64 gFileSelEraseButtonENGTex[]; +extern u64 gFileSelEraseButtonGERTex[]; +extern u64 gFileSelEraseButtonFRATex[]; +extern u64 gFileSelQuitButtonENGTex[]; +extern u64 gFileSelQuitButtonGERTex[]; +extern u64 gFileSelQuitButtonFRATex[]; +extern u64 gFileSelSurroundENGTex[]; +extern u64 gFileSelHeadsetENGTex[]; +extern u64 gFileSelHeadsetGERTex[]; +extern u64 gFileSelHeadsetFRATex[]; +extern u64 gFileSelMonoENGTex[]; +extern u64 gFileSelSOUNDENGTex[]; +extern u64 gFileSelSOUNDFRATex[]; +extern u64 gFileSelStereoENGTex[]; +extern u64 gFileSelStereoFRATex[]; +extern u64 gFileSelLTargetingENGTex[]; +extern u64 gFileSelLTargetingGERTex[]; +extern u64 gFileSelLTargetingFRATex[]; +extern u64 gFileSelSwitchENGTex[]; +extern u64 gFileSelSwitchGERTex[]; +extern u64 gFileSelSwitchFRATex[]; +extern u64 gFileSelHoldENGTex[]; +extern u64 gFileSelHoldGERTex[]; +extern u64 gFileSelHoldFRATex[]; +extern u64 gFileSelCheckBrightnessENGTex[]; +extern u64 gFileSelCheckBrightnessGERTex[]; +extern u64 gFileSelCheckBrightnessFRATex[]; +extern u64 gFileSelWidescreenENGTex[]; +extern u64 gFileSel4BY3ENGTex[]; +extern u64 gFileSel16BY9ENGTex[]; +extern u64 gFileSelOptionsButtonENGTex[]; +extern u64 gFileSelOptionsButtonGERTex[]; +extern u64 gFileSelSaveXTex[]; +extern Gfx gFileSelWindow1DL[]; +extern Gfx gFileSelWindow2DL[]; +extern Gfx gFileSelWindow3DL[]; +#endif diff --git a/assets/textures/title_static/widescreen_eng.ia8.png b/assets/textures/title_static/widescreen_eng.ia8.png new file mode 100755 index 0000000000000000000000000000000000000000..42f3e76eb0e0955beab9a29f513ee93e7aac7a93 GIT binary patch literal 5776 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 Date: Sun, 21 Apr 2024 22:56:58 +0200 Subject: [PATCH 4/4] fix things --- .../title_static/widescreen_eng.ia8.png | Bin 5776 -> 5412 bytes .../gamestates/ovl_file_choose/file_select.h | 3 ++- .../ovl_file_choose/z_file_nameset_PAL.c | 9 ++++----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/assets/textures/title_static/widescreen_eng.ia8.png b/assets/textures/title_static/widescreen_eng.ia8.png index 42f3e76eb0e0955beab9a29f513ee93e7aac7a93..0a6ba6edaf9535cda5260e6cf7ea4f09dca2367c 100755 GIT binary patch delta 2197 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 Input* input = &this->state.input[0]; + // save the settings if (CHECK_BTN_ALL(input->press.button, BTN_B)) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -784,7 +785,6 @@ static OptionsMenuTextureInfo sOptionsMenuHeaders[] = { { 128, 128, 128 }, 16, },*/ - // TODO: Add actual texture { { gFileSelWidescreenENGTex, gFileSelWidescreenENGTex, gFileSelWidescreenENGTex }, { 64, 64, 64 }, @@ -823,15 +823,14 @@ static OptionsMenuTextureInfo sOptionsMenuSettings[] = { { 48, 80, 48 }, 16, }, - // TODO: Use actual textures { { gFileSel4BY3ENGTex, gFileSel4BY3ENGTex, gFileSel4BY3ENGTex }, - { 48, 80, 48 }, + { 48, 48, 48 }, 16, }, { { gFileSel16BY9ENGTex, gFileSel16BY9ENGTex, gFileSel16BY9ENGTex }, - { 48, 80, 48 }, + { 48, 48, 48 }, 16, }, }; @@ -977,7 +976,7 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { for (; i < 6; i++, vtx += 4) { gDPPipeSync(POLY_OPA_DISP++); - if (i == (gSaveContext.zTargetSetting + 4)) { // not quite sure what this is doing?? has to do with which option is highlighted + if (i == (gSaveContext.zTargetSetting + 4)) { if (sSelectedSetting == FS_SETTING_TARGET) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cursorPrimRed, cursorPrimGreen, cursorPrimBlue, this->titleAlpha[0]);