Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[F-Req] Improved mod detection and configuration tweaker #6649

Open
5 tasks
Felix14-v2 opened this issue Feb 19, 2025 · 4 comments
Open
5 tasks

[F-Req] Improved mod detection and configuration tweaker #6649

Felix14-v2 opened this issue Feb 19, 2025 · 4 comments
Labels
enhancement New feature or request

Comments

@Felix14-v2
Copy link

Felix14-v2 commented Feb 19, 2025

Introduction

There are a lot of cases when users select wrong renderer by accident or don't change the default renderer at all when this must be done for mod compatibility. This causes a lot of unnecessary support requests, including support in other communities.

This request has already been discussed in Discord, so I'm creating this mostly as a tracking issue.

Description

PojavLauncher already has basic mod detection, but it should be more advanced. It is currently only used to apply the workaround of the crash with Adreno graphics conditionally (since Sodium fixes the crash), although there are a lot of other useful applications of such a system. Here's the list of suggested conditions and instant fixes:

• 1.16.5 and older:
  ├ if Zink is selected and renderer-related conditions below are falseGL4ES
  └ if GL4ES or LTW is selected
       ├ LTWGL4ES
       ├ if Create (Flywheel) is detected → Zink
       ├ if Sodium is detected → override use_compact_vertex_format and use_fog_occlusion to false
       ├ if [mod] → [action]
       └ if Vanilla → GL4ES
• 1.17 and newer:
  ├ if LTW or Zink is selected and renderer-related conditions below are falseGL4ES
  └ if GL4ES or LTW is selected
       ├ if Create (Flywheel) is detected → LTW
       ├ if Sodium is detected → add -Dsodium.checks.issue2561=false to JVM flags to avoid crash due to the custom LWJGL implementation
        | ├ if version 0.6.x or older → LTW
        | └ if version 0.7.x or newer → Zink
       └ else if Adreno graphics is detected and renderDistance > 7 → renderDistance:7
       ├ if Sodium Extra is detected → disable problematic mixins: mixin.adaptive_sync=false and mixin.sodium.vsync=false
       ├ if [mod] → [action]
       └ if Vanilla → GL4ES

Features

• All checks should be performed alongside the resource verification process to handle changes in mod list.
• There should be a separate setting in the experimental section to allow disabling these checks.
• Display a warning with "don't show me again" checkbox with each launch if Sodium is detected:

ATTENTION: Sodium is detected!
We are doing our best to ensure its functioning, but if you encounter any problems, please, report them to PojavLauncher team!

⚠️Sodium is not built to work on mobile devices, so please don't bother its developers (CaffeineMC) with unnecessary support or performance requests.

• If PowerVR graphics with broken driver (1.11) is detected, display a warning about the invisible hotbar issue with "don't show me again" checkbox with each launch:

ATTENTION: Broken PowerVR driver version is detected!
Your GPU driver is known to have bugs with rendering; if your GUI elements become invisible, please, follow this guide to fix that.

• Display a message if any changes can be applied:

Incompatible settings were found!
The game launch was stopped to prevent crashes. PojavLauncher can perform these changes to fix that:
• GL4ES → LTW (Sodium detected)
• GL4ES → LTW (Create detected)
• ...
Press [OK] to apply fixes and launch the game.

• Add a "report to developers" button next to the "share log" button in the crash menu when the crash occurred in a modpack instance. This will open a wiki page with the report guidelines and additional links to GitHub issue tracker, Discord server or email. Modpacks, I believe, are mostly tested on PC environment and shouldn't crash due to user error, so we can expect that crashes are caused by some kind of issue in PojavLauncher.

Implemented:

  • Improved mod detection system
  • Expandable system of checks and fixes
  • New warning messages
  • Updated crash menu
  • New wiki pages

Additional

The warning messages are given as an example only and should be tweaked to better meet a developer expectations. For example, one may want to attach a link to a mod setup guide, share their mods wiki or community server, or alternatively, inform a user about the inability to support the mobile platform due to its limitations.

@Felix14-v2 Felix14-v2 added the enhancement New feature or request label Feb 19, 2025
@Felix14-v2
Copy link
Author

We should also consider a system of checks and fixes that are dynamically updated separately from the launcher. Ideally, this will allow the launcher to quickly provide the latest fixes to the entire user base, since the launcher updates are not very frequent.

@karamel-kr
Copy link

karamel-kr commented Feb 20, 2025

But sodium is unplayable after this new update in 1.21.4 GitHub actions

latestlog.txt
In the 53bv297 codes mentioned pojav launcher

Image

@Felix14-v2
Copy link
Author

Felix14-v2 commented Feb 21, 2025

But sodium is unplayable after this new update in 1.21.4 GitHub actions

Don't use the actions builds unless you know exactly what you are doing. Sodium 0.7.0+ requires Zink to work.

@karamel-kr
Copy link

karamel-kr commented Feb 21, 2025

But sodium is unplayable after this new update in 1.21.4 GitHub actions

Don't use the actions builds unless you know exactly what you are doing.

I test each of build (dev) to see the improvements and what developers do actually and watch the news

Sodium 0.7.0+ requires Zink to work.

Nope doesn't work. It might be sodium developers tired to say we don't support pojav launcher but people don't care even with that red letter in top and they make for pojav unplayable for stop these useless requests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants