From a017579bc33882f9e7588daddc3be213b97675b6 Mon Sep 17 00:00:00 2001 From: itsRevela Date: Wed, 1 Apr 2026 03:43:28 -0500 Subject: [PATCH] fix: graphics menu navigation, layout, render distance cap, skin anim speed Rewire the SWF focus chain via Iggy so VSync, Fullscreen, and Render Distance are reachable with keyboard/gamepad navigation. Cap render distance slider at 16 chunks. Shift graphics menu layout up 60px for better centering. Fix skin preview walk/attack animations running too fast with VSync off by scaling per-frame increments by delta time relative to 60fps. --- .../Common/Media/MediaWindows64.arc | Bin 21362007 -> 21362005 bytes .../Common/Media/SettingsGraphicsMenu1080.swf | Bin 15064 -> 15065 bytes .../UI/UIScene_SettingsGraphicsMenu.cpp | 20 +++++- README.md | 6 ++ tools/ShiftMenuY.java | 61 ++++++++++++++++++ 5 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 tools/ShiftMenuY.java diff --git a/Minecraft.Client/Common/Media/MediaWindows64.arc b/Minecraft.Client/Common/Media/MediaWindows64.arc index 3b0d2298d96d8243aa7e20f686c8e7b01074f7d8..158061037a884197c6642a6b8faddaf8981a54a2 100644 GIT binary patch delta 17463 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 diff --git a/Minecraft.Client/Common/Media/SettingsGraphicsMenu1080.swf b/Minecraft.Client/Common/Media/SettingsGraphicsMenu1080.swf index cdf75cff3dee1ad67714c268746da05edbf1f625..ec7bc5d58a6b330a927674f0485c9bf8cd710f80 100644 GIT binary patch literal 15065 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 diff --git a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp index d120fbea..83fee401 100644 --- a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp @@ -74,7 +74,7 @@ UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initD WCHAR TempString[256]; swprintf(TempString, 256, L"Render Distance: %d",app.GetGameSettings(m_iPad,eGameSetting_RenderDistance)); - m_sliderRenderDistance.init(TempString,eControl_RenderDistance,0,5,DistanceToLevel(app.GetGameSettings(m_iPad,eGameSetting_RenderDistance))); + m_sliderRenderDistance.init(TempString,eControl_RenderDistance,0,3,DistanceToLevel(app.GetGameSettings(m_iPad,eGameSetting_RenderDistance))); swprintf( TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ),app.GetGameSettings(m_iPad,eGameSetting_Gamma)); m_sliderGamma.init(TempString,eControl_Gamma,0,100,app.GetGameSettings(m_iPad,eGameSetting_Gamma)); @@ -93,6 +93,24 @@ UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initD // VSync and Exclusive Fullscreen are only available on PC removeControl(&m_checkboxVSync, true); removeControl(&m_checkboxExclusiveFullscreen, true); +#else + // The SWF's original focus chain skips VSync, Fullscreen, and RenderDistance + // (CustomSkinAnim -> Gamma). Rewire the navigation so all controls are reachable: + // CustomSkinAnim -> VSync -> Fullscreen -> RenderDistance -> Gamma + { + IggyName navDown = registerFastName(L"m_objNavDown"); + IggyName navUp = registerFastName(L"m_objNavUp"); + + IggyValueSetStringUTF8RS(m_checkboxCustomSkinAnim.getIggyValuePath(), navDown, nullptr, "VSync", -1); + + IggyValueSetStringUTF8RS(m_checkboxVSync.getIggyValuePath(), navUp, nullptr, "CustomSkinAnim", -1); + IggyValueSetStringUTF8RS(m_checkboxVSync.getIggyValuePath(), navDown, nullptr, "ExclusiveFullscreen", -1); + + IggyValueSetStringUTF8RS(m_checkboxExclusiveFullscreen.getIggyValuePath(), navUp, nullptr, "VSync", -1); + IggyValueSetStringUTF8RS(m_checkboxExclusiveFullscreen.getIggyValuePath(), navDown, nullptr, "RenderDistance", -1); + + IggyValueSetStringUTF8RS(m_sliderRenderDistance.getIggyValuePath(), navUp, nullptr, "ExclusiveFullscreen", -1); + } #endif const bool bInGame=(Minecraft::GetInstance()->level!=nullptr); diff --git a/README.md b/README.md index 9c753d5a..5e952532 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,12 @@ This project is based on source code of Minecraft Legacy Console Edition v1.6.05 ## Latest: +### Graphics Settings Menu Fixes + +- Fixed keyboard/gamepad navigation skipping VSync, Fullscreen, and Render Distance options. The SWF focus chain only linked the original console controls; added C++ post-init rewiring of `m_objNavDown`/`m_objNavUp` via Iggy so all controls are reachable +- Shifted the graphics menu layout up by 60 pixels for better vertical centering +- Fixed skin preview walking and attack animations running too fast with VSync off. The per-frame animation increments now scale by delta time relative to a 60fps baseline + ### Async Autosave (Dedicated Server) - Autosave no longer freezes the server. Previously, every autosave compressed the entire world save file with zlib synchronously on the main thread, blocking all game ticks for 2-6 seconds depending on world size diff --git a/tools/ShiftMenuY.java b/tools/ShiftMenuY.java new file mode 100644 index 00000000..d32e3f00 --- /dev/null +++ b/tools/ShiftMenuY.java @@ -0,0 +1,61 @@ +import com.jpexs.decompiler.flash.SWF; +import com.jpexs.decompiler.flash.tags.Tag; +import com.jpexs.decompiler.flash.tags.base.PlaceObjectTypeTag; +import com.jpexs.decompiler.flash.types.MATRIX; +import java.io.*; + +/** + * Shifts a named PlaceObject element's Y position in a SWF. + * Usage: ShiftMenuY + * + * Positive offset = move down, negative = move up. + * SWF uses twips (1 pixel = 20 twips). + */ +public class ShiftMenuY { + public static void main(String[] args) throws Exception { + if (args.length < 3) { + System.out.println("Usage: ShiftMenuY [element_name]"); + System.out.println(" Shifts all elements (or a named element) by the given pixel offset."); + System.out.println(" Negative values move up, positive move down."); + return; + } + + String inputPath = args[0]; + String outputPath = args[1]; + int offsetPixels = Integer.parseInt(args[2]); + String targetName = args.length > 3 ? args[3] : null; + int offsetTwips = offsetPixels * 20; + + SWF swf = new SWF(new FileInputStream(inputPath), false); + + int modified = 0; + for (Tag tag : swf.getTags()) { + if (tag instanceof PlaceObjectTypeTag) { + PlaceObjectTypeTag po = (PlaceObjectTypeTag) tag; + String name = po.getInstanceName(); + if (targetName != null && !targetName.equals(name)) continue; + MATRIX matrix = po.getMatrix(); + if (matrix != null) { + int oldY = matrix.translateY; + matrix.translateY += offsetTwips; + System.out.printf(" %s: Y %d -> %d twips (%+d px)%n", + name != null ? name : "(unnamed)", + oldY, matrix.translateY, offsetPixels); + po.setModified(true); + modified++; + } + } + } + + if (modified == 0) { + System.out.println("No elements modified."); + return; + } + System.out.printf("Modified %d element(s) by %+d pixels%n", modified, offsetPixels); + + try (FileOutputStream fos = new FileOutputStream(outputPath)) { + swf.saveTo(fos); + } + System.out.println("Saved: " + outputPath); + } +}