Reese's Sodium Options

Reese's Sodium Options

23M Downloads

Sodium Extra's `Reduce Resolution on macOS` breaks menu again

FlashyReese opened this issue · 8 comments

commented

For reference, the last version of RSO that works correctly with the "Reduce Resolution macOS" option off (in other words, default Minecraft behaviour) is 1.4.4.

When I have more time, I'll see if I can try to bisect the specific commit that broke it between RSO 1.4.4 and 1.4.5.

commented

I'm going to assume it's this commit a4ea55d, although the original report is from an older version

commented

I've applied a patch 7ac8932. Can you test this for me if you get the chance? Unfortunately, I don't own a mac.

commented

I just compiled and tested commit 7ac8932 — it does indeed fix the issue for macOS again!


Also, on a side note — do you ever intend on making one last 1.18.1 build of RSO 1.4.0 that just has the original fix cherry-picked into the codebase?

I've been using such a modified version myself for… a few months now, for the extremely rare occasion when I need to use a 1.18.1 client for some reason (as usually I just use VIAaaS or ViaFabric on a 1.19 client when I need to connect to a 1.18.1 server).

You can find the relevant cherry-picked changes to RSO 1.4.0 on my fork's 1.18.1 branch.

The only reason why I bring this up is that having a binary release available may be helpful to any macOS users who also want to run 1.18.1 with the very last version of RSO that works with it.

Up to you though, I understand if you don't want to bother with it. ;P

※ To clarify, I'm not suggesting a backport of all the new changes made since RSO 1.4.0 to 1.18.1 since that actually is a lot of work for minimal gain — all I'm talking about is just the DPI scaling fix for macOS.

commented

Also, on a side note — do you ever intend on making one last 1.18.1 build of RSO 1.4.0 that just has the original fix cherry-picked into the codebase?

Any release for 1.18.2 should be fully compatible with 1.18.1. I usually mark them for the version it was compiled against, I should probably mark them as compatible with 1.18.1.

May I ask what hardware you have? Is it Intel or M1/M2?

commented

I have machines with both x86_64 (Intel) and arm64 (M1 Pro) architectures.

… That being said, RSO really shouldn't behave any differently on either architecture, as the JVM abstracts pretty much most of that away.


Any release for 1.18.2 should be fully compatible with 1.18.1. I usually mark them for the version it was compiled against, I should probably mark them as compatible with 1.18.1.

While this may theoretically be true for the Minecraft version, the real issue lies with the dependencies.

Specifically, RSO >= 1.4.1 depends on Sodium Extra >= 0.4.1, which depends on Sodium >= 0.4.1, which is… well, exclusive to 1.18.2.

As a result, marking RSO >= 1.4.1 as compatible with 1.18.1 is actually erroneous, simply due to the dependencies required.

If you want to go through the extra work of doing so, I suppose it would be possible to make newer versions of Sodium Extra compatible with Sodium 0.4.0-alpha6+build.14 (the latest compatible version that exists for 1.18.1), which would then resolve the dependency issue.

※ EDIT: Actually, I just tried overriding the dependencies for Sodium Extra 0.4.1 just to see if it'd work with Sodium 0.4.0. It… surprisingly does. That being said, trying the same thing with Sodium Extra 0.4.6 results in loads of mixin failures. I'm not sure if you want to put in the effort to fix 1.18.1 support in future SE versions, but I figured I'd mention it.

※ EDIT 2: Also, I've joined your Discord server, just in case real-time communication is helpful. Feel free to mention me there if you'd like!


Incompatible mod set!
net.fabricmc.loader.impl.FormattedException: Mod resolution encountered an incompatible mod set!
A potential solution has been determined:
	 - Replace mod 'Reese's Sodium Options' (reeses-sodium-options) 1.4.5~akemi+mc1.18.2-rev.972dd5c-dirty with any version that is compatible with:
		 - sodium-extra 0.4.0
Unmet dependency listing:
	 - Mod 'Reese's Sodium Options' (reeses-sodium-options) 1.4.5~akemi+mc1.18.2-rev.972dd5c-dirty is incompatible with any version before 0.4.1 of mod 'Sodium Extra' (sodium-extra), but a matching version is present: 0.4.0!
Incompatible mod set!
net.fabricmc.loader.impl.FormattedException: Mod resolution encountered an incompatible mod set!
A potential solution has been determined:
	 - Replace mod 'Sodium Extra' (sodium-extra) 0.4.1 with version 0.4.1 or later that is compatible with:
		 - sodium 0.4.0-alpha6+build.14
Unmet dependency listing:
	 - Mod 'Sodium Extra' (sodium-extra) 0.4.1 requires version 0.4.1 or later of mod 'Sodium' (sodium), but only the wrong version is present: 0.4.0-alpha6+build.14!
commented

I have unmarked RSO 1.4.1 as compatible.

The underlying issue is Sodium Extra >=0.4.3's explicit version lock for Sodium 0.4.1 or later. Sodium Extra for 1.18.2 isn't backward compatible due to a bundled dependency, aka Fabric API's lifecycle events.

I will consider unbundling the dependency and just mark Fabric API as a dependency or backport the latest version to 1.18.1.

commented

@Algalish I didn't realize you were using an older version of RSO on 1.18.1. That bug had been fixed in the newer release at the time. You can use Reese's Sodium Options 1.4.6 for 1.18.2 on 1.18.1 and Sodium Extra 0.4.8 for 1.18.1.