From 4cdffcaef2f5ef2431c05707ff38d25a690ce740 Mon Sep 17 00:00:00 2001 From: Crementif <26669564+Crementif@users.noreply.github.com> Date: Wed, 19 Jan 2022 03:35:06 +0100 Subject: [PATCH] [BotW] Centered Ultrawide HUD option, Grass Culling Fix Also massively shrinks down the size of the GUIScreens patch since I removed the unnecessary gunk. --- .../7cd338ce4c6ea935_0000000000000079_ps.txt | 4 +- .../Graphics/patch_AspectRatio.asm | 263 +++--- .../Graphics/patch_GUIAspectRatio.asm | 174 +++- .../Graphics/patch_GUIScreens.asm | 763 +----------------- src/BreathOfTheWild/Graphics/rules.txt | 60 +- 5 files changed, 331 insertions(+), 933 deletions(-) diff --git a/src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_ps.txt b/src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_ps.txt index 18d5a917..4b6381cd 100644 --- a/src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_ps.txt +++ b/src/BreathOfTheWild/Graphics/7cd338ce4c6ea935_0000000000000079_ps.txt @@ -58,7 +58,7 @@ vec3 cubeMapSTM; int cubeMapFaceId; R0f = passParameterSem0; -#if $ultrawideHUD == 1 +#if $ultrawideHUDMode != 0 float uv_x = 0.5 + (R0f.x - 0.5) / aspectRatio; R0f.xyzw = (texture(textureUnitPS0, vec2(uv_x, R0f.y)).xyzw); #else @@ -95,7 +95,7 @@ PS1f = exp2(R127f.x); R0f.z = PS1f; // export -#if $ultrawideHUD == 1 +#if $ultrawideHUDMode != 0 bool isBorder = uv_x < 0 || uv_x > 1.0; passPixelColor0 = isBorder ? vec4(0.0) : R0f.xyzw; #else diff --git a/src/BreathOfTheWild/Graphics/patch_AspectRatio.asm b/src/BreathOfTheWild/Graphics/patch_AspectRatio.asm index ab969837..5b65035c 100644 --- a/src/BreathOfTheWild/Graphics/patch_AspectRatio.asm +++ b/src/BreathOfTheWild/Graphics/patch_AspectRatio.asm @@ -6,134 +6,31 @@ moduleMatches = 0xD91A406D,0x0F748D9C,0x9A61FF4C,0x8E3324A9,0xD71D859D,0x6FD41A6 aspectRatio: .float $width/$height +grassCulling: ; The grass is calculated in a weird way, but this fix seems to work. So for safety, only enable it for ultrawide resolutions. +.float (($ultrawideHUDMode != 0)*(($gameWidth/$gameHeight) / ($width/$height))) + (($ultrawideHUDMode == 0)*1.0) -[BotW_AspectRatio_V33] -moduleMatches = 0xD91A406D + +[BotW_AspectRatio_V208] +moduleMatches = 0x6267BFD0 ; rodata constants -0x10197FC0 = .float $width/$height -0x102CCFC0 = .float $width/$height -0x10331374 = .float $width/$height +0x101BF8E8 = .float ($width/$height) +0x1030A57C = .float ($width/$height) +0x1036DD4C = .float ($width/$height) ; 3D Rendering In Inventory (calculated every load) -0x02CFC260 = lis r9, aspectRatio@ha -0x02CFC274 = lfs f4, aspectRatio@l(r9) +0x02E2C564 = lis r9, aspectRatio@ha +0x02E2C578 = lfs f4, aspectRatio@l(r9) ; 3D Rendering (calculated every frame) -0x036AD410 = lis r28, aspectRatio@ha -0x036AD414 = lfs f12, aspectRatio@l(r28) +0x0386D01C = lis r28, aspectRatio@ha +0x0386D020 = lfs f12, aspectRatio@l(r28) -[BotW_AspectRatio_V48] -moduleMatches = 0x0F748D9C +; Grass Culling (calculated every frame) +0x035b0a30 = lis r5, grassCulling@ha +0x035b0a38 = lfs f11, grassCulling@l(r5) -; rodata constants -0x10197FC0 = .float $width/$height -0x102CCFC8 = .float $width/$height -0x103313A4 = .float $width/$height -; 3D Rendering In Inventory (calculated every load) -0x02CFC2CC = lis r9, aspectRatio@ha -0x02CFC2E0 = lfs f4, aspectRatio@l(r9) - -; 3D Rendering (calculated every frame) -0x036AD81C = lis r28, aspectRatio@ha -0x036AD820 = lfs f12, aspectRatio@l(r28) - -[BotW_AspectRatio_V64] -moduleMatches = 0x9A61FF4C - -; rodata constants -0x10198250 = .float $width/$height -0x102CD450 = .float $width/$height -0x1033182C = .float $width/$height - -; 3D Rendering In Inventory (calculated every load) -0x02CFD900 = lis r9, aspectRatio@ha -0x02CFD914 = lfs f4, aspectRatio@l(r9) - -; 3D Rendering (calculated every frame) -0x036AEF04 = lis r28, aspectRatio@ha -0x036AEF08 = lfs f12, aspectRatio@l(r28) - -[BotW_AspectRatio_V80] -moduleMatches = 0x8E3324A9 - -; rodata constants -0x1019A5A8 = .float $width/$height -0x102D4E30 = .float $width/$height -0x103391B4 = .float $width/$height - -; 3D Rendering In Inventory (calculated every load) -0x02D056C8 = lis r9, aspectRatio@ha -0x02D056DC = lfs f4, aspectRatio@l(r9) - -; 3D Rendering (calculated every frame) -0x036D0324 = lis r28, aspectRatio@ha -0x036D0328 = lfs f12, aspectRatio@l(r28) - -[BotW_AspectRatio_V97] -moduleMatches = 0xD71D859D - -; rodata constants -0x1019F980 = .float $width/$height -0x102DF8A0 = .float $width/$height -0x1034122C = .float $width/$height - -; 3D Rendering In Inventory (calculated every load) -0x02D2E65C = lis r9, aspectRatio@ha -0x02D2E670 = lfs f4, aspectRatio@l(r9) - -; 3D Rendering (calculated every frame) -0x03725CE8 = lis r28, aspectRatio@ha -0x03725CEC = lfs f12, aspectRatio@l(r28) - -[BotW_AspectRatio_V112] -moduleMatches = 0x6FD41A61 - -; rodata constants -0x1019F9A8 = .float $width/$height -0x102DFB38 = .float $width/$height -0x103414D4 = .float $width/$height - -; 3D Rendering In Inventory (calculated every load) -0x02D2F404 = lis r9, aspectRatio@ha -0x02D2F418 = lfs f4, aspectRatio@l(r9) - -; 3D Rendering (calculated every frame) -0x03726E18 = lis r28, aspectRatio@ha -0x03726E1C = lfs f12, aspectRatio@l(r28) - -[BotW_AspectRatio_V144] -moduleMatches = 0x9A2CA0C7 - -; rodata constants -0x101A8A70 = .float $width/$height -0x102ECFD0 = .float $width/$height -0x1034F6CC = .float $width/$height - -; 3D Rendering In Inventory (calculated every load) -0x02D53CF4 = lis r9, aspectRatio@ha -0x02D53D08 = lfs f4, aspectRatio@l(r9) - -; 3D Rendering (calculated every frame) -0x0375B128 = lis r28, aspectRatio@ha -0x0375B12C = lfs f12, aspectRatio@l(r28) - -[BotW_AspectRatio_V160] -moduleMatches = 0x9A2CA0C7 - -; rodata constants -0x101A8A70 = .float $width/$height -0x102ECF88 = .float $width/$height -0x1034F684 = .float $width/$height - -; 3D Rendering In Inventory (calculated every load) -0x02D53CF4 = lis r9, aspectRatio@ha -0x02D53D08 = lfs f4, aspectRatio@l(r9) - -; 3D Rendering (calculated every frame) -0x0375AFF4 = lis r28, aspectRatio@ha -0x0375AFF8 = lfs f12, aspectRatio@l(r28) [BotW_AspectRatio_V176V192] moduleMatches = 0xFD091F9F,0xD472D8A5 @@ -151,18 +48,130 @@ moduleMatches = 0xFD091F9F,0xD472D8A5 0x0386C314 = lis r28, aspectRatio@ha 0x0386C318 = lfs f12, aspectRatio@l(r28) -[BotW_AspectRatio_V208] -moduleMatches = 0x6267BFD0 +[BotW_AspectRatio_V160] +moduleMatches = 0x9A2CA0C7 ; rodata constants -0x101BF8E8 = .float $width/$height -0x1030A57C = .float $width/$height -0x1036DD4C = .float $width/$height +0x101A8A70 = .float $width/$height +0x102ECF88 = .float $width/$height +0x1034F684 = .float $width/$height ; 3D Rendering In Inventory (calculated every load) -0x02E2C564 = lis r9, aspectRatio@ha -0x02E2C578 = lfs f4, aspectRatio@l(r9) +0x02D53CF4 = lis r9, aspectRatio@ha +0x02D53D08 = lfs f4, aspectRatio@l(r9) ; 3D Rendering (calculated every frame) -0x0386D01C = lis r28, aspectRatio@ha -0x0386D020 = lfs f12, aspectRatio@l(r28) \ No newline at end of file +0x0375AFF4 = lis r28, aspectRatio@ha +0x0375AFF8 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V144] +moduleMatches = 0x9A2CA0C7 + +; rodata constants +0x101A8A70 = .float $width/$height +0x102ECFD0 = .float $width/$height +0x1034F6CC = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D53CF4 = lis r9, aspectRatio@ha +0x02D53D08 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x0375B128 = lis r28, aspectRatio@ha +0x0375B12C = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V112] +moduleMatches = 0x6FD41A61 + +; rodata constants +0x1019F9A8 = .float $width/$height +0x102DFB38 = .float $width/$height +0x103414D4 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D2F404 = lis r9, aspectRatio@ha +0x02D2F418 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x03726E18 = lis r28, aspectRatio@ha +0x03726E1C = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V97] +moduleMatches = 0xD71D859D + +; rodata constants +0x1019F980 = .float $width/$height +0x102DF8A0 = .float $width/$height +0x1034122C = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D2E65C = lis r9, aspectRatio@ha +0x02D2E670 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x03725CE8 = lis r28, aspectRatio@ha +0x03725CEC = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V80] +moduleMatches = 0x8E3324A9 + +; rodata constants +0x1019A5A8 = .float $width/$height +0x102D4E30 = .float $width/$height +0x103391B4 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D056C8 = lis r9, aspectRatio@ha +0x02D056DC = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036D0324 = lis r28, aspectRatio@ha +0x036D0328 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V64] +moduleMatches = 0x9A61FF4C + +; rodata constants +0x10198250 = .float $width/$height +0x102CD450 = .float $width/$height +0x1033182C = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02CFD900 = lis r9, aspectRatio@ha +0x02CFD914 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036AEF04 = lis r28, aspectRatio@ha +0x036AEF08 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V48] +moduleMatches = 0x0F748D9C + +; rodata constants +0x10197FC0 = .float $width/$height +0x102CCFC8 = .float $width/$height +0x103313A4 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02CFC2CC = lis r9, aspectRatio@ha +0x02CFC2E0 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036AD81C = lis r28, aspectRatio@ha +0x036AD820 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V33] +moduleMatches = 0xD91A406D + +; rodata constants +0x10197FC0 = .float $width/$height +0x102CCFC0 = .float $width/$height +0x10331374 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02CFC260 = lis r9, aspectRatio@ha +0x02CFC274 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036AD410 = lis r28, aspectRatio@ha +0x036AD414 = lfs f12, aspectRatio@l(r28) \ No newline at end of file diff --git a/src/BreathOfTheWild/Graphics/patch_GUIAspectRatio.asm b/src/BreathOfTheWild/Graphics/patch_GUIAspectRatio.asm index ef407e4c..df94a2d4 100644 --- a/src/BreathOfTheWild/Graphics/patch_GUIAspectRatio.asm +++ b/src/BreathOfTheWild/Graphics/patch_GUIAspectRatio.asm @@ -52,7 +52,7 @@ copySubPanelStringLen: _scalePaneGUI: mflr r0 -li r10, $ultrawideHUD +li r10, $ultrawideHUDMode cmpwi r10, 0 beq exitScale @@ -488,6 +488,11 @@ addi r10, r10, scr_ChallengeWin_00@l bla _compareString beq scaleInOutScreenToRightSide +lis r10, scr_EnergyMeterDLC_00@ha +addi r10, r10, scr_EnergyMeterDLC_00@l +bla _compareString +beq scaleEnergyMeterDLCPanes + ; lis r10, scr_Message_00@ha ; addi r10, r10, scr_Message_00@l ; bla _compareString @@ -577,27 +582,27 @@ addi r5, r31, 0x80 lis r10, str_N_State_00@ha addi r10, r10, str_N_State_00@l bla _compareString -beq scalePaneToLeftSide +beq scalePaneToLeftSideIf lis r10, str_Pa_SinJu_00@ha addi r10, r10, str_Pa_SinJu_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_Pa_SinJu_01@ha addi r10, r10, str_Pa_SinJu_01@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_Pa_SinJu_02@ha addi r10, r10, str_Pa_SinJu_02@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_Pa_SinJu_03@ha addi r10, r10, str_Pa_SinJu_03@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_Pa_SinJu_03@ha addi r10, r10, str_Pa_SinJu_03@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale const_SensorsOffset: @@ -609,7 +614,7 @@ lfs f12, const_SensorsOffset@l(r10) lis r10, str_N_InOut_00@ha addi r10, r10, str_N_InOut_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf b exitScale scaleSoundMeterPanes: addi r5, r31, 0x80 @@ -618,7 +623,7 @@ lfs f12, const_SensorsOffset@l(r10) lis r10, str_N_InOut_00@ha addi r10, r10, str_N_InOut_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf b exitScale scaleTempMeterPanes: addi r5, r31, 0x80 @@ -627,7 +632,7 @@ lfs f12, const_SensorsOffset@l(r10) lis r10, str_N_InOut_00@ha addi r10, r10, str_N_InOut_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf b exitScale const_TimeOffset: .float 342*0.85 @@ -638,14 +643,14 @@ lfs f12, const_TimeOffset@l(r10) lis r10, str_N_All_00@ha addi r10, r10, str_N_All_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf b exitScale scaleMainScreenWeatherPanes: addi r5, r31, 0x80 lis r10, str_N_InOut_00@ha addi r10, r10, str_N_InOut_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale scaleMainScreenInformationTextPanes: addi r5, r31, 0x80 @@ -682,7 +687,7 @@ addi r5, r31, 0x80 lis r10, str_Pa_LocationNameS_00@ha addi r10, r10, str_Pa_LocationNameS_00@l bla _compareString -beq scalePaneToLeftSide +beq scalePaneToLeftSideIf b exitScale scaleMainScreenBossGaugePanes: addi r5, r31, 0x80 @@ -733,7 +738,7 @@ addi r5, r31, 0x80 lis r10, str_Pa_LocationNameS_00@ha addi r10, r10, str_Pa_LocationNameS_00@l bla _compareString -beq scalePaneToLeftSide +beq scalePaneToLeftSideIf lis r10, str_Pa_Message_00@ha addi r10, r10, str_Pa_Message_00@l bla _compareString @@ -749,7 +754,7 @@ addi r5, r31, 0x80 lis r10, str_N_In_00@ha addi r10, r10, str_N_In_00@l bla _compareString -beq scalePaneToLeftSide +beq scalePaneToLeftSideIf b exitScale scaleSpiritOrbPanes: @@ -757,11 +762,11 @@ addi r5, r31, 0x80 lis r10, str_W_Base_00@ha addi r10, r10, str_W_Base_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_T_Time_00@ha addi r10, r10, str_T_Time_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale scaleSimpleItemGetPanes: @@ -783,35 +788,35 @@ addi r5, r31, 0x80 lis r10, str_W_Base_00@ha addi r10, r10, str_W_Base_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_T_Num_00@ha addi r10, r10, str_T_Num_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_T_Time_00@ha addi r10, r10, str_T_Time_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_T_Rupee_00@ha addi r10, r10, str_T_Rupee_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_T_KeyNum_00@ha addi r10, r10, str_T_KeyNum_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_P_Icon_00@ha addi r10, r10, str_P_Icon_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_N_Icon_00@ha addi r10, r10, str_N_Icon_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_P_KologNuts_00@ha addi r10, r10, str_P_KologNuts_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale const_ItemGetPlusMinusOffset: @@ -823,7 +828,7 @@ lfs f12, const_ItemGetPlusMinusOffset@l(r10) lis r10, str_N_InOut_00@ha addi r10, r10, str_N_InOut_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf b exitScale scaleItemGetNoPanes: @@ -831,7 +836,7 @@ addi r5, r31, 0x80 lis r10, str_N_Capture_00@ha addi r10, r10, str_N_Capture_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b continueSimpleItemGetPanes scaleWolfLinkHeartPanes: @@ -854,11 +859,11 @@ addi r5, r31, 0x80 lis r10, str_P_Sh_00@ha addi r10, r10, str_P_Sh_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_P_Illust_00@ha addi r10, r10, str_P_Illust_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale const_WolfHeartOffset: @@ -868,13 +873,13 @@ addi r5, r31, 0x80 lis r10, str_T_Name_00@ha addi r10, r10, str_T_Name_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, const_WolfHeartOffset@ha lfs f12, const_WolfHeartOffset@l(r10) lis r10, str_N_InOut_00@ha addi r10, r10, str_N_InOut_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf b exitScale scaleMainScreenMasterSwordPanes: @@ -979,7 +984,7 @@ addi r5, r31, 0x80 lis r10, str_N_MainAll_00@ha ; scales the DPAD guide on the right addi r10, r10, str_N_MainAll_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_N_Cut_00@ha ; scales the item/rune selection bar addi r10, r10, str_N_Cut_00@l bla _compareString @@ -1258,7 +1263,7 @@ lfs f12, const_590@l(r10) lis r10, str_Pa_PickUpWin_00@ha addi r10, r10, str_Pa_PickUpWin_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale scaleRuneGuidePanes: @@ -1409,19 +1414,19 @@ addi r5, r31, 0x80 lis r10, str_W_Base_00@ha addi r10, r10, str_W_Base_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_T_Text_00@ha addi r10, r10, str_T_Text_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_T_Text_00_JPja@ha addi r10, r10, str_T_Text_00_JPja@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_N_GuideOn_00@ha addi r10, r10, str_N_GuideOn_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale scaleCursorPanes: @@ -1553,7 +1558,7 @@ beq scaleOnlyPos lis r10, str_Pa_RotateGuide_00@ha addi r10, r10, str_Pa_RotateGuide_00@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_N_State_00@ha addi r10, r10, str_N_State_00@l bla _compareString @@ -1715,11 +1720,11 @@ lfs f12, const_SkipButtonOffset@l(r10) lis r10, str_N_InOut_00@ha addi r10, r10, str_N_InOut_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf lis r10, str_N_Glow_00@ha addi r10, r10, str_N_Glow_00@l bla _compareString -beq scalePaneAndKeepCustomPos +beq scalePaneAndKeepCustomPosIf b exitScale scaleLoadSaveIconPanes: @@ -2115,11 +2120,11 @@ addi r5, r31, 0x80 lis r10, str_N_Region_01@ha addi r10, r10, str_N_Region_01@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf lis r10, str_N_Region_01_JPja@ha addi r10, r10, str_N_Region_01_JPja@l bla _compareString -beq scalePaneAndKeepPos +beq scalePaneAndKeepPosIf b exitScale scaleMessageTipsPanes: @@ -2150,6 +2155,19 @@ bla _compareString beq scalePaneNormal b exitScale +const_EnergyMeterOffset: +.float 392 + +scaleEnergyMeterDLCPanes: +addi r5, r31, 0x80 +lis r10, const_EnergyMeterOffset@ha +lfs f12, const_EnergyMeterOffset@l(r10) +lis r10, str_N_InOut_00@ha +addi r10, r10, str_N_InOut_00@l +bla _compareString +beq scalePaneNormal +b exitScale + ; ------------------------------------------------------------------------------------------ ; Generic methods used to scale a specific pane type @@ -2286,6 +2304,12 @@ fadds f0, f0, f9 stfs f0, 0x1C(r31) b exitScale +scalePaneToLeftSideIf: +li r10, $ultrawideHUDMode +cmpwi r10, 1 +beq scalePaneToLeftSide +bne scalePaneNormal + movePaneToLeftSide: lis r10, const_PaddingLeftSide@ha lfs f9, const_PaddingLeftSide@l(r10) @@ -2445,6 +2469,11 @@ fsubs f0, f11, f0 stfs f0, 0x1C(r31) b exitScale +scalePaneAndKeepPosIf: +li r10, $ultrawideHUDMode +cmpwi r10, 1 +beq scalePaneAndKeepPos +bne scalePaneAndPos moveKeepPos: lis r10, const_0@ha @@ -2473,6 +2502,12 @@ stfs f0, 0x1C(r31) b exitScale ; Pass custom pos as f12 +scalePaneAndKeepCustomPosIf: +li r10, $ultrawideHUDMode +cmpwi r10, 1 +beq scalePaneAndKeepCustomPos +bne scalePaneAndCenterCustomPos + scalePaneAndKeepCustomPos: lis r10, const_AspectRatio@ha lfs f0, const_AspectRatio@l(r10) @@ -2509,6 +2544,45 @@ fsubs f0, f0, f12 stfs f0, 0x1C(r31) b exitScale +; todo: currently broken for left-sided elements +scalePaneAndCenterCustomPos: +lis r10, const_AspectRatio@ha +lfs f0, const_AspectRatio@l(r10) +lfs f9, 0x34(r31) +fmuls f0, f0, f9 +stfs f0, 0x34(r31) + +; [XPositionOfPane] + ((1280/2 - [XPositionOfPane]) * (1-[AspectRatio]))) +lis r10, const_0@ha +lfs f11, const_0@l(r10) +lfs f9, 0x1C(r31) +fcmpu f9, f11 +lis r10, const_640@ha +lfs f0, const_640@l(r10) +lfs f9, 0x1C(r31) +bge .+0x08 +fsubs f9, f11, f9 +fsubs f0, f0, f9 +lis r10, const_1@ha +lfs f13, const_1@l(r10) +lis r10, const_AspectRatio@ha +lfs f9, const_AspectRatio@l(r10) +fsubs f13, f13, f9 +fmuls f0, f0, f13 +lfs f9, 0x1C(r31) +bge .+0x08 +fsubs f9, f11, f9 +fadds f0, f9, f0 +bge .+0x08 +fsubs f0, f11, f0 +stfs f0, 0x1C(r31) + +lis r10, const_640@ha +lfs f11, const_640@l(r10) +fsubs f0, f0, f11 +stfs f0, 0x1C(r31) +b exitScale + movePaneToCustomSize: lis r10, const_AspectRatio@ha lfs f0, const_AspectRatio@l(r10) @@ -2611,8 +2685,15 @@ lfs f0, const_AspectRatio@l(r10) lfs f9, 0x34(r31) fmuls f0, f0, f9 stfs f0, 0x34(r31) +; if the ultrawide mode is 1 (edge HUD), add padding so that the map gets initialized at the right edge +li r10, $ultrawideHUDMode +cmpwi r4, 1 +lis r10, const_0@ha +lfs f9, const_0@l(r10) +bne noMapPadding lis r10, const_PaddingRightSide@ha lfs f9, const_PaddingRightSide@l(r10) +noMapPadding: lfs f0, 0x1C(r31) fadds f0, f0, f9 stfs f0, 0x1C(r31) @@ -2623,10 +2704,14 @@ stw r5, mapXPositionAddr@l(r10) b exitScale setMapPosition: -li r4, $ultrawideHUD +li r4, $ultrawideHUDMode cmpwi r4, 0 beq setNothing +li r4, $ultrawideHUDMode ; if ultramode is centered, keep the map centered +cmpwi r4, 2 +beq setToMap + cmpwi r31, 0 beq setToMinimap @@ -2680,7 +2765,8 @@ mr r6, r12 mr r8, r10 mflr r0 -li r10, $ultrawideHUD +; if ultrawide mode is set to 0, return early +li r10, $ultrawideHUDMode cmpwi r10, 0 beq exitPaneBasedProjection diff --git a/src/BreathOfTheWild/Graphics/patch_GUIScreens.asm b/src/BreathOfTheWild/Graphics/patch_GUIScreens.asm index 17ca1208..2b4c6632 100644 --- a/src/BreathOfTheWild/Graphics/patch_GUIScreens.asm +++ b/src/BreathOfTheWild/Graphics/patch_GUIScreens.asm @@ -20,32 +20,13 @@ str_N_Pos_00: .string "N_Pos_00" str_N_BtnPos_00: .string "N_BtnPos_00" -str_N_DRCRootScale_00: -.string "N_DRCRootScale_00" str_N_Capture_00: .string "N_Capture_00" str_N_Capture_01: .string "N_Capture_01" str_Pa_GuideA_00: .string "Pa_GuideA_00" -str_N_Type_01: -.string "N_Type_01" -str_N_Type_02: -.string "N_Type_02" -str_N_Type_05: -.string "N_Type_05" - -; Panes from GamePadBG_00 -str_N_NormalMode_00: -.string "N_NormalMode_00" -str_N_GamePadMode_00: -.string "N_GamePadMode_00" - ; Panes from Title_00 -str_N_CaptureLogo_00: -.string "N_CaptureLogo_00" -str_N_Logo_00: -.string "N_Logo_00" str_N_CopyRight_00: .string "N_CopyRight_00" str_N_BtnIn_00: @@ -80,16 +61,10 @@ str_N_Region_01_JPja: .string "N_Region_01_JPja" ; Panes from SystemWindow_01 -str_N_FileSelect_00: -.string "N_FileSelect_00" str_N_FileSelect_01: .string "N_FileSelect_01" str_N_SlideArea_00: .string "N_SlideArea_00" -str_T_Text_01: -.string "T_Text_01" -str_T_Text_02: -.string "T_Text_02" str_N_HardModePos_00: .string "N_HardModePos_00" @@ -99,8 +74,6 @@ str_N_ParamInOut_00: ; Panes from Fade str_N_LogoInOut_00: .string "N_LogoInOut_00" -str_P_Black_00: -.string "P_Black_00" str_P_Capture_00: .string "P_Capture_00" @@ -110,8 +83,6 @@ str_N_LogoInOut_01: .string "N_LogoInOut_01" str_N_LogoInOut_02: .string "N_LogoInOut_02" -str_N_LogoInOut_03: -.string "N_LogoInOut_03" str_T_TipsTitle_00: .string "T_TipsTitle_00" @@ -136,6 +107,12 @@ str_T_Tips_00_TW: ; Panes from LoadSaveIcon_00 str_Pa_SaveIcon_00: .string "Pa_SaveIcon_00" +; Panes from EnergyMeterDLC_00 +scr_EnergyMeterDLC_00: +.string "EnergyMeterDLC_00" +str_L_EnergyMeterDLC_00: +.string "L_EnergyMeterDLC_00" + ; Panes from WolfLinkHeartGauge_00 str_P_Illust_00: .string "P_Illust_00" @@ -156,14 +133,6 @@ str_Pa_CameraPointer_00: str_P_Icon_00: .string "P_Icon_00" -str_N_Valid_01: -.string "N_Valid_01" -str_N_Invalid_00: -.string "N_Invalid_00" -str_N_Aim_00: -.string "N_Aim_00" -str_N_Cancel_00: -.string "N_Cancel_00" str_N_SunLight_00: .string "N_SunLight_00" @@ -193,8 +162,6 @@ str_Pa_Time_00: .string "Pa_Time_00" str_N_Icon_00: .string "N_Icon_00" -str_N_Base_00: -.string "N_Base_00" str_Pa_BtnZR_00: .string "Pa_BtnZR_00" @@ -205,29 +172,8 @@ str_P_Base_00: .string "P_Base_00" str_P_Base_01: .string "P_Base_01" -str_P_Base_02: -.string "P_Base_02" str_P_Base_03: .string "P_Base_03" -str_P_Base_04: -.string "P_Base_04" - -str_P_Line_00: -.string "P_Line_00" -str_P_Line_01: -.string "P_Line_01" -str_P_Line_02: -.string "P_Line_02" -str_P_Line_03: -.string "P_Line_03" - - -str_Nt_WeatherNow_00: -.string "Nt_WeatherNow_00" -str_Nt_WeatherNow_01: -.string "Nt_WeatherNow_01" -str_Nt_WeatherNow_02: -.string "Nt_WeatherNow_02" str_Pa_LocationNameS_00: .string "Pa_LocationNameS_00" @@ -237,49 +183,11 @@ str_Pa_LocationName_00: .string "Pa_LocationName_00" str_Pa_BossGauge_00: .string "Pa_BossGauge_00" - -str_P_NoiseGauge_00: -.string "P_NoiseGauge_00" -str_N_TextIn_00: -.string "N_TextIn_00" -str_N_Alpha_00: -.string "N_Alpha_00" -str_N_Alpha_01: -.string "N_Alpha_01" -str_N_RegionLanguageType_00: -.string "N_RegionLanguageType_00" -str_P_Glow_00: -.string "P_Glow_00" -str_T_Time_02: -.string "T_Time_02" str_T_Time_00: .string "T_Time_00" -str_Pa_Cold_00: -.string "Pa_Meter_01" -str_N_CursorOff_00: -.string "N_CursorOff_00" -str_N_Sp_00: -.string "N_Sp_00" -str_N_Fire_00: -.string "N_Fire_00" -str_N_Ice_00: -.string "N_Ice_00" str_Pa_QuestName_00: .string "Pa_QuestName_00" -str_T_QuestName_00: -.string "T_QuestName_00" -str_T_QuestName_00_JPja: -.string "T_QuestName_00_JPja" - -str_P_CameraPointerL_00: -.string "P_CameraPointerL_00" -str_P_CameraPointerR_00: -.string "P_CameraPointerR_00" -str_P_AbstractR_00: -.string "P_AbstractR_00" -str_P_AbstractL_00: -.string "P_AbstractL_00" str_N_Dungeon_00: .string "N_Dungeon_00" @@ -325,54 +233,22 @@ str_Pa_Page_4x5_00: ; Panes from ShopBtnList05_00 (Shops like banana guys) ; Panes from MainShortCut_00 -str_Pa_Rstick_00: -.string "Pa_Rstick_00" -str_N_FocusL_00: -.string "N_All_00" -str_N_ShortCutNow_00: -.string "N_ShortCutNow_00" str_N_Cut_00: .string "N_Cut_00" -str_N_ShortCutPos_00: -.string "N_ShortCutPos_00" -str_N_ShortCutAll_00: -.string "N_ShortCutAll_00" str_N_MainAll_00: .string "N_MainAll_00" -str_N_MainU_00: -.string "N_MainU_00" str_N_Cut_01: .string "N_Cut_01" -str_N_DmcCapture_00: -.string "N_DmcCapture_00" -str_N_ChangeLR_00: -.string "N_ChangeLR_00" str_N_PartsSize_00: .string "N_PartsSize_00" str_B_Hit_00: .string "B_Hit_00" -str_Pa_ShortCutNow_00: -.string "Pa_ShortCutNow_00" str_P_CaptureMask_00: .string "P_CaptureMask_00" str_P_CaptureMask_01: .string "P_CaptureMask_01" -str_N_CaptureBG_00: -.string "N_CaptureBG_00" -str_N_CaptureBG_01: -.string "N_CaptureBG_01" - - -# str_N_MainAll_00: -# .string "N_MainAll_00" -str_Pa_IconCross_00: -.string "Pa_IconCross_00" ; Panes from AppMap_00 (map screen and mini-map) -str_N_MiniMapLine_00: -.string "N_MiniMapLine_00" -str_P_MapCapture_00: -.string "P_MapCapture_00" str_Black8_01: .string "Black8_01" @@ -385,8 +261,6 @@ str_White8_00: .string "White8_00" str_White8_01: .string "White8_01" -str_White8_02: -.string "White8_02" str_P_BG_03: .string "P_BG_03" str_P_Abstract_00: @@ -411,10 +285,6 @@ str_N_BtnPos: .string "N_BtnPos" str_N_SubIn_00: .string "N_SubIn_00" -str_T_DecoU_00: -.string "T_DecoU_00" -str_T_DecoD_00: -.string "T_DecoD_00" str_P_Sh_00: .string "P_Sh_00" str_P_Sh_01: @@ -424,14 +294,6 @@ str_T_SensorTitle_00: str_Pa_Map_00: .string "Pa_Map_00" -str_N_Field_00: -.string "N_Field_00" -str_N_Rotate_00: -.string "N_Rotate_00" -str_N_North_00: -.string "N_North_00" -str_N_IconArea_00: -.string "N_IconArea_00" str_B_MapCapture_00: .string "B_MapCapture_00" str_N_MiniMap_00: @@ -439,26 +301,6 @@ str_N_MiniMap_00: str_Pa_MapOpen_00: .string "Pa_MapOpen_00" ; Panes from AppMapDungeon_00 (dungeon map) -str_N_PosBase_00: -.string "N_PosBase_00" -# str_N_Capture_01: -# .string "N_Capture_01" -str_P_3DSh_00: -.string "P_3DSh_00" -# str_N_SunLight_00: -# .string "N_SunLight_00" -str_P_3D_00: -.string "P_3D_00" -str_N_GuidePos_01: -.string "N_GuidePos_01" -str_N_GuidePos_00: -.string "N_GuidePos_00" -str_Pa_Cursor_00: -.string "Pa_Cursor_00" -str_Pa_SensorIcon_00: -.string "Pa_SensorIcon_00" -str_N_CursorIn_00: -.string "N_CursorIn_00" ; Panes from OptionWindow_00 (settings menu) str_N_Option_00: @@ -498,8 +340,6 @@ str_T_Rupee_00: str_N_BtnNum_00: .string "N_BtnNum_00" ; Panes from MessageSp_00 (dialog boxes and prompts) -str_N_CaptureHigh_00: -.string "N_CaptureHigh_00" str_N_Seeker_00: .string "N_Seeker_00" str_MessageSp_00_NoTop: @@ -511,24 +351,15 @@ str_T_Text_00_JPja: .string "T_Text_00_JPja" str_N_GuideOn_00: .string "N_GuideOn_00" -; Panes from PaPauseSave_00 (save screen from inventory screen) -str_Pa_AllTips_00: -.string "Pa_AllTips_00" -str_N_BtnAll_00: -.string "N_BtnAll_00" ; Panes from AppCamera_00 and PaSeekPadScanningLine_00 (rune camera and camera edges) str_N_ModeCamera_00: .string "N_ModeCamera_00" -str_Pa_SystemWindow_00: -.string "Pa_SystemWindow_00" str_N_FirstOut_00: .string "N_FirstOut_00" str_N_Limit_00: .string "N_Limit_00" ; Panes from GameOver_00 (self-explanatory screen) -str_N_CaptureBlur_00: -.string "N_CaptureBlur_00" str_Pa_Btn_00: .string "Pa_Btn_00" str_Pa_Btn_02: @@ -584,18 +415,7 @@ str_P_BigText_01: .string "P_BigText_01" str_P_BigText_02: .string "P_BigText_02" -; Panes from Message_00 (message screen) -str_N_NameBase_00: -.string "N_NameBase_00" -str_N_SystemBase_00: -.string "N_SystemBase_00" -str_N_NameS_00: -.string "N_NameS_00" -str_N_TextOut_00: -.string "N_TextOut_00" ; Panes from MessageGet_00 (new item message screen) -str_N_Sp3_00: -.string "N_Sp3_00" str_Nt_DecoLT_00: .string "Nt_DecoLT_00" str_Nt_DecoLT_01: @@ -653,60 +473,31 @@ str_N_Seek_03: ; Panes from PauseMenu_00 str_N_Slide_00: .string "N_Slide_00" -str_N_Slide_01: -.string "N_Slide_01" str_N_Slide_02: .string "N_Slide_02" str_N_InCap_01: .string "N_InCap_01" -str_Pa_ArrowL_00: -.string "Pa_ArrowL_00" - str_N_InOutGear_01: .string "N_InOutGear_01" str_N_InOutQuest_02: .string "N_InOutQuest_02" -str_N_State_02: -.string "N_State_02" str_N_State_03: .string "N_State_03" str_N_TitleBar_00: .string "N_TitleBar_00" str_N_TitleBarDown_00: .string "N_TitleBarDown_00" -str_N_CaptureSlideInfoR_00: -.string "N_CaptureSlideInfoR_00" -str_N_CaptureSlideInfoR_01: -.string "N_CaptureSlideInfoR_01" - -str_N_CaptureSlideR_00: -.string "N_CaptureSlideR_00" -str_N_CaptureSlideR_01: -.string "N_CaptureSlideR_01" -str_P_CaptureSlideR_00: -.string "P_CaptureSlideR_00" -str_P_CaptureSlideR_01: -.string "P_CaptureSlideR_01" str_Pa_Quest_00: .string "Pa_Quest_00" -str_Pa_Category_00: -.string "Pa_Category_00" str_Pa_Page_00: .string "Pa_Page_00" - str_Pa_RotateGuide_00: .string "Pa_RotateGuide_00" -str_Pa_Btn_01: -.string "Pa_Btn_01" -str_Pa_Btn_03: -.string "Pa_Btn_03" -str_Pa_Btn_04: -.string "Pa_Btn_04" str_N_Born_00: .string "N_Born_00" str_B_Page20_00: @@ -714,8 +505,6 @@ str_B_Page20_00: str_N_Cat_01: .string "N_Cat_01" -str_N_Cat_00: -.string "N_Cat_00" ; Panes from AppHome_00 (border around App panes and opening animation) str_N_IconSeek_00: @@ -745,20 +534,16 @@ str_Pa_Tips_00: .string "Pa_Tips_00" str_Pa_TipsAmiibo_00: .string "Pa_TipsAmiibo_00" - - scr_Title_00: .string "Title_00" scr_Fade: .string "Fade" scr_MessageDialog: .string "MessageDialog" - - +scr_PaPlusMinus_00: +.string "PaPlusMinus_00" scr_BootUp_00: .string "BootUp_00" -scr_AkashiNum_00: -.string "AkashiNum_00" ; Spirit Orb screen I think scr_AmiiboWindow_00: .string "AmiiboWindow_00" scr_AppAlbum_00: @@ -779,10 +564,6 @@ scr_AppSystemWindow_00: .string "AppSystemWindow_00" scr_AppTool_00: .string "AppTool_00" -scr_BtnDialog_00: -.string "BtnDialog_00" -scr_BtnScrollBar_07: -.string "BtnScrollBar_07" scr_ChallengeWin_00: .string "ChallengeWin_00" scr_ChangeController_00: @@ -791,32 +572,18 @@ scr_ChangeControllerDRC_00: .string "ChangeControllerDRC_00" scr_ControllerWindow_00: .string "ControllerWindow_00" -scr_Cursor_00: -.string "Cursor_00" scr_DemoNameEnemy_00: .string "DemoNameEnemy_00" scr_DemoName_00: .string "DemoName_00" -scr_DemoStart: -.string "DemoStart" -scr_DLCSinJuAkashiNum_00: -.string "DLCSinJuAkashiNum_00" scr_DLCWindow_00: .string "DLCWindow_00" scr_DoCommand_00: .string "DoCommand_00" scr_End_00: .string "End_00" -scr_EnergyMeterDLC_00: -.string "EnergyMeterDLC_00" -scr_ErrorViewer_00: -.string "ErrorViewer_00" -scr_FadeDemo_00: -.string "FadeDemo_00" scr_FadeStatus_00: .string "FadeStatus_00" -scr_Fade_00: -.string "Fade_00" scr_GameOver_00: .string "GameOver_00" scr_GamePadBG_00: @@ -827,16 +594,10 @@ scr_HardModeTextDLC_00: .string "HardModeTextDLC_00" scr_HardMode_00: .string "HardMode_00" -scr_HomeMenuCapture_00: -.string "HomeMenuCapture_00" -scr_HomeNixSign_00: -.string "HomeNixSign_00" scr_KeyBoradTextArea_00: .string "KeyBoradTextArea_00" scr_LastComplete_00: .string "LastComplete_00" -scr_LoadingWeapon_00: -.string "LoadingWeapon_00" scr_LoadSaveIcon_00: .string "LoadSaveIcon_00" scr_MainDungeon_00: @@ -847,8 +608,6 @@ scr_MainHorse_00: .string "MainHorse_00" scr_MainScreen3D_00: .string "MainScreen3D_00" -scr_MainScreenHeartIchigekiDLC_00: -.string "MainScreenHeartIchigekiDLC_00" scr_MainScreenMS_00: ; Used to show hearts decreasing when you draw the master sword .string "MainScreenMS_00" scr_MainScreen_00: @@ -857,8 +616,6 @@ scr_MainShortCut_00: .string "MainShortCut_00" scr_Message3D_00: .string "Message3D_00" -scr_MessageDemo_00: -.string "MessageDemo_00" scr_DemoMessage: .string "DemoMessage" scr_DemoMessage_00: @@ -871,502 +628,16 @@ scr_MessageGet_00: .string "MessageGet_00" scr_MessageSp_00: .string "MessageSp_00" -scr_MessageTipsPauseMenu_00: -.string "MessageTipsPauseMenu_00" scr_MessageTipsRunTime_00: .string "MessageTipsRunTime_00" scr_MessageTips_00: .string "MessageTips_00" -scr_Message_00: -.string "Message_00" -scr_MiniGame_00: -.string "MiniGame_00" scr_OPtext_00: .string "OPtext_00" scr_OptionWindow_00: .string "OptionWindow_00" -scr_PaABtnApp_00: -.string "PaABtnApp_00" -scr_PaABtn_00: -.string "PaABtn_00" -scr_PaAkashiEfBDLC_00: -.string "PaAkashiEfBDLC_00" -scr_PaAkashiEfGDLC_00: -.string "PaAkashiEfGDLC_00" -scr_PaAkashiEfRDLC_00: -.string "PaAkashiEfRDLC_00" -scr_PaAkashiEfYDLC_00: -.string "PaAkashiEfYDLC_00" -scr_PaAkashiEf_00: -.string "PaAkashiEf_00" -scr_PaAllControllerTips_00: -.string "PaAllControllerTips_00" -scr_PaAppAlbumPage_00: -.string "PaAppAlbumPage_00" -scr_PaAppAlbumPhotoBtn_00: -.string "PaAppAlbumPhotoBtn_00" -scr_PaAppAlbumPhotoCapture_00: -.string "PaAppAlbumPhotoCapture_00" -scr_PaAppAlbumPhoto_00: -.string "PaAppAlbumPhoto_00" -scr_PaAppAllRadarGauge_00: -.string "PaAppAllRadarGauge_00" -scr_PaAppArrow_00: -.string "PaAppArrow_00" -scr_PaAppBrokenText_00: -.string "PaAppBrokenText_00" -scr_PaAppCameraFocus_00: -.string "PaAppCameraFocus_00" -scr_PaAppCategoryBtnS_00: -.string "PaAppCategoryBtnS_00" -scr_PaAppDungeonBtnElectric_00: -.string "PaAppDungeonBtnElectric_00" -scr_PaAppDungeonBtnNextMoveFinalDLC_00: -.string "PaAppDungeonBtnNextMoveFinalDLC_00" -scr_PaAppDungeonBtnNextMoveFire_00: -.string "PaAppDungeonBtnNextMoveFire_00" -scr_PaAppDungeonBtnNextMove_00: -.string "PaAppDungeonBtnNextMove_00" -scr_PaAppDungeonBtn_00: -.string "PaAppDungeonBtn_00" -scr_PaAppDungeonMapCursor_00: -.string "PaAppDungeonMapCursor_00" -scr_PaAppGauge_00: -.string "PaAppGauge_00" -scr_PaAppGear_00: -.string "PaAppGear_00" -scr_PaAppMapComp_00: -.string "PaAppMapComp_00" -scr_PaAppMapCursor_00: -.string "PaAppMapCursor_00" -scr_PaAppMapName_00: -.string "PaAppMapName_00" -scr_PaAppMapNorthMark_00: -.string "PaAppMapNorthMark_00" -scr_PaAppMapPinBtn_00: -.string "PaAppMapPinBtn_00" -scr_PaAppMapSensorSetting_00: -.string "PaAppMapSensorSetting_00" -scr_PaAppMapSensor_00: -.string "PaAppMapSensor_00" -scr_PaAppMapStampBox_00: -.string "PaAppMapStampBox_00" -scr_PaAppMapStampListBtn_00: -.string "PaAppMapStampListBtn_00" -scr_PaAppMapTemp2_00: -.string "PaAppMapTemp2_00" -scr_PaAppMapTemp_00: -.string "PaAppMapTemp_00" -scr_PaAppMapTime2_00: -.string "PaAppMapTime2_00" -scr_PaAppMapTime_00: -.string "PaAppMapTime_00" -scr_PaAppPageNavi_00: -.string "PaAppPageNavi_00" -scr_PaAppPauseInfoParam_00: -.string "PaAppPauseInfoParam_00" -scr_PaAppPauseInfoParam_01: -.string "PaAppPauseInfoParam_01" -scr_PaAppPauseInfoParam_04: -.string "PaAppPauseInfoParam_04" -scr_PaAppPictureBookBalloon_00: -.string "PaAppPictureBookBalloon_00" -scr_PaAppPictureBookInfo_00: -.string "PaAppPictureBookInfo_00" -scr_PaAppPictureBookItem_00: -.string "PaAppPictureBookItem_00" -scr_PaAppPictureBookPage_00: -.string "PaAppPictureBookPage_00" -scr_PaAppPictureBookPhotoBtn_00: -.string "PaAppPictureBookPhotoBtn_00" -scr_PaAppPictureBookPhotoSensor_00: -.string "PaAppPictureBookPhotoSensor_00" -scr_PaAppSystemWindow_00: -.string "PaAppSystemWindow_00" -scr_PaArrowPointer_00: -.string "PaArrowPointer_00" -scr_PaArrow_00: -.string "PaArrow_00" -scr_PaBoxedCursor_00: -.string "PaBoxedCursor_00" -scr_PaCameraPointerPin_00: -.string "PaCameraPointerPin_00" -scr_PaCameraPointer_00: -.string "PaCameraPointer_00" -scr_PaCategoryBtnS_00: -.string "PaCategoryBtnS_00" -scr_PaCategoryChallenge5_00: -.string "PaCategoryChallenge5_00" -scr_PaChallengeListBtn_00: -.string "PaChallengeListBtn_00" -scr_PaChallengeMark_00: -.string "PaChallengeMark_00" -scr_PaChallengeWin_00: -.string "PaChallengeWin_00" -scr_PaCmnZLBtnApp_00: -.string "PaCmnZLBtnApp_00" -scr_PaCmnZLBtn_00: -.string "PaCmnZLBtn_00" -scr_PaCmnZRBtnApp_00: -.string "PaCmnZRBtnApp_00" -scr_PaCmnZRBtn_00: -.string "PaCmnZRBtn_00" -scr_PaColorBtn_00: -.string "PaColorBtn_00" -scr_PaCommonBtnThinAction_00: -.string "PaCommonBtnThinAction_00" -scr_PaCommonBtnThinApp_00: -.string "PaCommonBtnThinApp_00" -scr_PaCommonBtnThinIconAct_00: -.string "PaCommonBtnThinIconAct_00" -scr_PaCommonBtnThinIconAct_01: -.string "PaCommonBtnThinIconAct_01" -scr_PaCommonBtnThinIcon_00: -.string "PaCommonBtnThinIcon_00" -scr_PaCommonBtnThinS_00: -.string "PaCommonBtnThinS_00" -scr_PaCommonBtnThin_00: -.string "PaCommonBtnThin_00" -scr_PaCommonBtnTitle_00: -.string "PaCommonBtnTitle_00" -scr_PaDataFileBtn_00: -.string "PaDataFileBtn_00" -scr_PaDLCTipsBefore_00: -.string "PaDLCTipsBefore_00" -scr_PaDLCTipsPage_00: -.string "PaDLCTipsPage_00" -scr_PaDLCTips_00: -.string "PaDLCTips_00" -scr_PaDoCommandA_00: -.string "PaDoCommandA_00" -scr_PaDoCommandB_00: -.string "PaDoCommandB_00" -scr_PaDoCommandKeyB_00: -.string "PaDoCommandKeyB_00" -scr_PaDoCommandKeyC_00: -.string "PaDoCommandKeyC_00" -scr_PaDoCommandKeyNNA_00: -.string "PaDoCommandKeyNNA_00" -scr_PaDoCommandKeyNNB_00: -.string "PaDoCommandKeyNNB_00" -scr_PaDoCommandKeyNNC_00: -.string "PaDoCommandKeyNNC_00" -scr_PaDoCommandKey_00: -.string "PaDoCommandKey_00" -scr_PaDoCommandL_00: -.string "PaDoCommandL_00" -scr_PaDoCommandX_00: -.string "PaDoCommandX_00" -scr_PaDoCommandY_00: -.string "PaDoCommandY_00" -scr_PaEiketuEfBDLC_00: -.string "PaEiketuEfBDLC_00" -scr_PaEiketuEfB_00: -.string "PaEiketuEfB_00" -scr_PaEiketuEfGDLC_00: -.string "PaEiketuEfGDLC_00" -scr_PaEiketuEfG_00: -.string "PaEiketuEfG_00" -scr_PaEiketuEfRDLC_00: -.string "PaEiketuEfRDLC_00" -scr_PaEiketuEfR_00: -.string "PaEiketuEfR_00" -scr_PaEiketuEfYDLC_00: -.string "PaEiketuEfYDLC_00" -scr_PaEiketuEfY_00: -.string "PaEiketuEfY_00" -scr_PaEnemyGaugeL_00: -.string "PaEnemyGaugeL_00" -scr_PaEnemyGauge_00: -.string "PaEnemyGauge_00" -scr_PaEnergyMeterDLC_00: -.string "PaEnergyMeterDLC_00" -scr_PaFadeBar_00: -.string "PaFadeBar_00" -scr_PaFadeIconAncient_00: -.string "PaFadeIconAncient_00" -scr_PaFadeIconDLC_00: -.string "PaFadeIconDLC_00" -scr_PaFadeIconNum_00: -.string "PaFadeIconNum_00" -scr_PaGanbariGaugeEx_00: -.string "PaGanbariGaugeEx_00" -scr_PaGanbariGauge_01: -.string "PaGanbariGauge_01" -scr_PaGuideKeyApp_00: -.string "PaGuideKeyApp_00" -scr_PaGuideKeyNormal_00: -.string "PaGuideKeyNormal_00" -scr_PaGuideKeySimple_00: -.string "PaGuideKeySimple_00" -scr_PaGuideKeySmoke_00: -.string "PaGuideKeySmoke_00" -scr_PaHeartTraceGaugeSlimMS_00: -.string "PaHeartTraceGaugeSlimMS_00" -scr_PaHeartTraceGaugeSlimWL_00: -.string "PaHeartTraceGaugeSlimWL_00" -scr_PaHeartTraceGaugeSlim_00: -.string "PaHeartTraceGaugeSlim_00" -scr_PaHorseSpeedUpIcon_00: -.string "PaHorseSpeedUpIcon_00" -scr_PaIconBtnApp_00: -.string "PaIconBtnApp_00" -scr_PaIconBtnSpIcon_00: -.string "PaIconBtnSpIcon_00" -scr_PaIconBtn_00: -.string "PaIconBtn_00" -scr_PaIconChallenge_00: -.string "PaIconChallenge_00" -scr_PaIconElect_00: -.string "PaIconElect_00" -scr_PaIconParamLB_00: -.string "PaIconParamLB_00" -scr_PaIconSmoke_00: -.string "PaIconSmoke_00" -scr_PaInformation_00: -.string "PaInformation_00" -scr_PaItemPointer_00: -.string "PaItemPointer_00" -scr_PaLoadingIconNoWait_00: -.string "PaLoadingIconNoWait_00" -scr_PaLocationNameHokoraS_00: -.string "PaLocationNameHokoraS_00" -scr_PaLocationNameS_00: -.string "PaLocationNameS_00" -scr_PaLocationName_00: -.string "PaLocationName_00" -scr_PaMapCursorDLC_00: -.string "PaMapCursorDLC_00" -scr_PaMapDLCGaugeL_00: -.string "PaMapDLCGaugeL_00" -scr_PaMapDLCPlayIcon_00: -.string "PaMapDLCPlayIcon_00" -scr_PaMapIconBikeBtnDLC_00: -.string "PaMapIconBikeBtnDLC_00" -scr_PaMapIconBtnDecide_00: -.string "PaMapIconBtnDecide_00" -scr_PaMapIconBtn_00: -.string "PaMapIconBtn_00" -scr_PaMapIconCastle_00: -.string "PaMapIconCastle_00" -scr_PaMapIconChallenge_00: -.string "PaMapIconChallenge_00" -scr_PaMapIconDead_00: -.string "PaMapIconDead_00" -scr_PaMapIconDungeonDLC_00: -.string "PaMapIconDungeonDLC_00" -scr_PaMapIconDungeon_00: -.string "PaMapIconDungeon_00" -scr_PaMapIconEtc_00: -.string "PaMapIconEtc_00" -scr_PaMapIconGuardian_00: -.string "PaMapIconGuardian_00" -scr_PaMapIconHatago_00: -.string "PaMapIconHatago_00" -scr_PaMapIconHorseBtn_00: -.string "PaMapIconHorseBtn_00" -scr_PaMapIconKolog_00: -.string "PaMapIconKolog_00" -scr_PaMapIconLabo_00: -.string "PaMapIconLabo_00" -scr_PaMapIconPlayerDLC_00: -.string "PaMapIconPlayerDLC_00" -scr_PaMapIconPlayer_00: -.string "PaMapIconPlayer_00" -scr_PaMapIconRemainsElectric_00: -.string "PaMapIconRemainsElectric_00" -scr_PaMapIconRemainsFire_00: -.string "PaMapIconRemainsFire_00" -scr_PaMapIconRemainsWater_00: -.string "PaMapIconRemainsWater_00" -scr_PaMapIconRemainsWind_00: -.string "PaMapIconRemainsWind_00" -scr_PaMapIconShopBougu_00: -.string "PaMapIconShopBougu_00" -scr_PaMapIconShopColor_00: -.string "PaMapIconShopColor_00" -scr_PaMapIconShopJewel_00: -.string "PaMapIconShopJewel_00" -scr_PaMapIconShopYadoya_00: -.string "PaMapIconShopYadoya_00" -scr_PaMapIconShopYorozu_00: -.string "PaMapIconShopYorozu_00" -scr_PaMapIconStartPoint_00: -.string "PaMapIconStartPoint_00" -scr_PaMapIconTower_00: -.string "PaMapIconTower_00" -scr_PaMapIconVillage_00: -.string "PaMapIconVillage_00" -scr_PaMapIconWarpDLC_00: -.string "PaMapIconWarpDLC_00" -scr_PaMapIconWolfLink_00: -.string "PaMapIconWolfLink_00" -scr_PaMapIconYunbo_00: -.string "PaMapIconYunbo_00" -scr_PaMapIcon_00: -.string "PaMapIcon_00" -scr_PaMapLocationName_00: -.string "PaMapLocationName_00" -scr_PaMapPlayer_00: -.string "PaMapPlayer_00" -scr_PaMapStampMaxNum_00: -.string "PaMapStampMaxNum_00" -scr_PaMap_00: -.string "PaMap_00" -scr_PaMessageBtn_00: -.string "PaMessageBtn_00" -scr_PaMessageDungeonTitle_00: -.string "PaMessageDungeonTitle_00" -scr_PaMessageDungeon_00: -.string "PaMessageDungeon_00" -scr_PaMessageTipsAmiibo_00: -.string "PaMessageTipsAmiibo_00" -scr_PaMessageTipsDrcImage_00: -.string "PaMessageTipsDrcImage_00" -scr_PaMessageTipsDrcImgAmiibo_00: -.string "PaMessageTipsDrcImgAmiibo_00" -scr_PaMessageTips_00: -.string "PaMessageTips_00" -scr_PaMessage_00: -.string "PaMessage_00" -scr_PaMiniGameCheckPoint_00: -.string "PaMiniGameCheckPoint_00" -scr_PaMiniGameDistance_00: -.string "PaMiniGameDistance_00" -scr_PaMiniGameFinish_00: -.string "PaMiniGameFinish_00" -scr_PaMiniGameGolf_00: -.string "PaMiniGameGolf_00" -scr_PaMiniGameMato_00: -.string "PaMiniGameMato_00" -scr_PaMiniGameRecord_00: -.string "PaMiniGameRecord_00" -scr_PaMiniGameTimer_00: -.string "PaMiniGameTimer_00" -scr_PaNoticeItem_00: -.string "PaNoticeItem_00" -scr_PaNoticeMark_00: -.string "PaNoticeMark_00" -scr_PaNoticeZ_00: -.string "PaNoticeZ_00" -scr_PaNumberArrowMsg_00: -.string "PaNumberArrowMsg_00" -scr_PaNumberArrow_00: -.string "PaNumberArrow_00" -scr_PaOptionBtnLevel_00: -.string "PaOptionBtnLevel_00" -scr_PaOptionBtnL_00: -.string "PaOptionBtnL_00" -scr_PaOptionBtn_00: -.string "PaOptionBtn_00" -scr_PaOptionSlideBtn_00: -.string "PaOptionSlideBtn_00" -scr_PaPage20_00: -.string "PaPage20_00" -scr_PaPage5_00: -.string "PaPage5_00" -scr_PaPageChallenge5_00: -.string "PaPageChallenge5_00" -scr_PaPageControllerList_00: -.string "PaPageControllerList_00" -scr_PaPageNavi_00: -.string "PaPageNavi_00" -scr_PaPauseGear_00: -.string "PaPauseGear_00" -scr_PaPauseIconCapture_00: -.string "PaPauseIconCapture_00" -scr_PaPauseInfoHaveNum_00: -.string "PaPauseInfoHaveNum_00" -scr_PaPauseInfoParamCook_00: -.string "PaPauseInfoParamCook_00" -scr_PaPauseInfoParam_00: -.string "PaPauseInfoParam_00" -scr_PaPauseInfoParam_01: -.string "PaPauseInfoParam_01" -scr_PaPauseInfoParam_04: -.string "PaPauseInfoParam_04" -scr_PaPauseInfoParam_05: -.string "PaPauseInfoParam_05" -scr_PaPauseInfoSetBonus_00: -.string "PaPauseInfoSetBonus_00" -scr_PaPauseQuest_00: -.string "PaPauseQuest_00" -scr_PaPauseRecipeText_00: -.string "PaPauseRecipeText_00" -scr_PaPauseSave_00: -.string "PaPauseSave_00" -scr_PaPauseSpIconNew_00: -.string "PaPauseSpIconNew_00" -scr_PaPauseStar_00: -.string "PaPauseStar_00" -scr_PaPauseTipsPageCopy_00: -.string "PaPauseTipsPageCopy_00" -scr_PaPauseTipsPage_00: -.string "PaPauseTipsPage_00" -scr_PaPickUpWin_00: -.string "PaPickUpWin_00" -scr_PaPictureLoad_00: -.string "PaPictureLoad_00" -scr_PaPlayerStatusUpAll_00: -.string "PaPlayerStatusUpAll_00" -scr_PaPlayerStatusUp_00: -.string "PaPlayerStatusUp_00" -scr_PaPlusMinus_00: -.string "PaPlusMinus_00" -scr_PaQuestName_00: -.string "PaQuestName_00" -scr_PaRstickGuide_00: -.string "PaRstickGuide_00" -scr_PaSaveIcon_00: -.string "PaSaveIcon_00" -scr_PaSeekPadDecoText_00: -.string "PaSeekPadDecoText_00" -scr_PaSeekPadScanningLine_00: -.string "PaSeekPadScanningLine_00" -scr_PaShopItemHave_00: -.string "PaShopItemHave_00" -scr_PaShopItemIcon_00: -.string "PaShopItemIcon_00" -scr_PaShopItemName_00: -.string "PaShopItemName_00" -scr_PaShopListBtn_00: -.string "PaShopListBtn_00" -scr_PaShopMaterial_00: -.string "PaShopMaterial_00" -scr_PaShopPage20_00: -.string "PaShopPage20_00" -scr_PaShopSubInfo_00: -.string "PaShopSubInfo_00" -scr_PaShortCutIconCrossNN_00: -.string "PaShortCutIconCrossNN_00" -scr_PaShortCutIconCross_00: -.string "PaShortCutIconCross_00" -scr_PaShortCutIcon_00: -.string "PaShortCutIcon_00" -scr_PaSinJu_00: -.string "PaSinJu_00" -scr_PaSoundGauge_00: -.string "PaSoundGauge_00" -scr_PaSystemWindow_02: -.string "PaSystemWindow_02" -scr_PaTempMeterGaugeLoop_00: -.string "PaTempMeterGaugeLoop_00" -scr_PaTempMeterGauge_00: -.string "PaTempMeterGauge_00" -scr_PaTempMeterGauge_01: -.string "PaTempMeterGauge_01" -scr_PaTempMeter_00: -.string "PaTempMeter_00" -scr_PaThrowingPointer_00: -.string "PaThrowingPointer_00" -scr_PaTime_00: -.string "PaTime_00" -scr_PaTitleBtn_00: -.string "PaTitleBtn_00" scr_PauseMenuBG_00: .string "PauseMenuBG_00" -scr_PauseMenuEiketsu_00: -.string "PauseMenuEiketsu_00" scr_PauseMenuInfo_00: .string "PauseMenuInfo_00" scr_PauseMenuMantan_00: @@ -1375,24 +646,8 @@ scr_PauseMenuRecipe_00: .string "PauseMenuRecipe_00" scr_PauseMenu_00: .string "PauseMenu_00" -scr_PaWarpEfDLC_00: -.string "PaWarpEfDLC_00" -scr_PaWeather_00: -.string "PaWeather_00" -scr_Pa_AppMapOpenEf_00: -.string "Pa_AppMapOpenEf_00" -scr_PickUpWin_00: -.string "PickUpWin_00" -scr_ReadyGo_00: -.string "ReadyGo_00" scr_Rupee_00: .string "Rupee_00" -scr_SaveTransferWindow_00: -.string "SaveTransferWindow_00" -scr_SeekPadMenuBG_00: -.string "SeekPadMenuBG_00" -scr_ShopBG_00: -.string "ShopBG_00" scr_ShopBtnList15_00: .string "ShopBtnList15_00" scr_ShopBtnList20_00: @@ -1409,8 +664,6 @@ scr_StaffRollDLC_00: .string "StaffRollDLC_00" scr_StaffRoll_00: .string "StaffRoll_00" -scr_SystemWindowNoBtn_00: -.string "SystemWindowNoBtn_00" scr_SystemWindow_00: .string "SystemWindow_00" scr_SystemWindow_01: diff --git a/src/BreathOfTheWild/Graphics/rules.txt b/src/BreathOfTheWild/Graphics/rules.txt index 790d762e..ecf84599 100644 --- a/src/BreathOfTheWild/Graphics/rules.txt +++ b/src/BreathOfTheWild/Graphics/rules.txt @@ -12,7 +12,8 @@ $gameWidth = 1280 $gameHeight = 720 $aspectRatioWidth = 16 $aspectRatioHeight = 9 -$ultrawideHUD:int = 0 +$showUltrawideOptions:int = 0 +$ultrawideHUDMode:int = 0 $fxaa:int = 1 $shadowRes = 1 $subPix:int = 1.0 @@ -30,52 +31,62 @@ $shadowFarEnd = 1.0 [Preset] name = 16:9 (Default) category = Aspect Ratio +$aspectRatioWidth = 16 +$aspectRatioHeight = 9 +$showUltrawideOptions:int = 0 +$ultrawideHUDMode:int = 0 [Preset] name = 16:10 category = Aspect Ratio $aspectRatioWidth = 16 $aspectRatioHeight = 10 +$showUltrawideOptions:int = 0 +$ultrawideHUDMode:int = 0 [Preset] name = 21:9 category = Aspect Ratio $aspectRatioWidth = 21 $aspectRatioHeight = 9 -$ultrawideHUD:int = 1 +$showUltrawideOptions:int = 1 [Preset] name = 32:9 category = Aspect Ratio $aspectRatioWidth = 32 $aspectRatioHeight = 9 -$ultrawideHUD:int = 1 +$showUltrawideOptions:int = 1 [Preset] name = 32:10 category = Aspect Ratio $aspectRatioWidth = 32 $aspectRatioHeight = 10 -$ultrawideHUD:int = 1 +$showUltrawideOptions:int = 1 [Preset] name = 48:9 category = Aspect Ratio $aspectRatioWidth = 48 $aspectRatioHeight = 9 -$ultrawideHUD:int = 1 +$showUltrawideOptions:int = 1 [Preset] name = 4:3 category = Aspect Ratio $aspectRatioWidth = 4 $aspectRatioHeight = 3 +$showUltrawideOptions:int = 0 +$ultrawideHUDMode:int = 0 [Preset] name = 5:4 category = Aspect Ratio $aspectRatioWidth = 5 $aspectRatioHeight = 4 +$showUltrawideOptions:int = 0 +$ultrawideHUDMode:int = 0 # 16:9 Resolutions @@ -340,6 +351,20 @@ condition = ((($aspectRatioWidth - 48) == 0) + (($aspectRatioHeight - 9) == 0)) $width = 5760 $height = 1080 +[Preset] +name = 7680x1440 +category = Resolution +condition = ((($aspectRatioWidth - 48) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 7680 +$height = 1440 + +[Preset] +name = 11520x2160 +category = Resolution +condition = ((($aspectRatioWidth - 48) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 11520 +$height = 2160 + # 4:3 Resolutions [Preset] @@ -407,6 +432,27 @@ condition = ((($aspectRatioWidth - 5) == 0) + (($aspectRatioHeight - 4) == 0)) = $width = 14400 $height = 2700 +# Ultrawide Mode Options + +[Preset] +name = Edge HUD (Default) +category = Ultrawide HUD Mode +condition = $showUltrawideOptions == 1 +$ultrawideHUDMode:int = 1 +default = 1 + +[Preset] +name = Centered HUD +category = Ultrawide HUD Mode +condition = $showUltrawideOptions == 1 +$ultrawideHUDMode:int = 2 + +[Preset] +name = No HUD Fixes (stretched HUD) +condition = $showUltrawideOptions == 1 +category = Ultrawide HUD Mode +$ultrawideHUDMode:int = 0 + # Anti-Aliasing [Preset] @@ -451,6 +497,7 @@ name = Extreme (400%, Unstable) category = Shadows $shadowRes = 4 +# Shadow Draw Distance [Preset] category = Shadow Draw Distance @@ -492,6 +539,9 @@ $shadowNearbyEnd = 1.4 $shadowFarStart = 1.4 $shadowFarEnd = 1.55 + +# Texture Changes + # All 720p textures: # - 0x001=World Lighting Red8 # - 0x005=Link and Objects Depth