PojavLauncher icon indicating copy to clipboard operation
PojavLauncher copied to clipboard

[F-Req] Improved mod detection and configuration tweaker

Open Felix14-v2 opened this issue 9 months ago • 6 comments
trafficstars

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 and force-disable fullscreen in options.txt         | ├ 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 avatar Feb 19 '25 22:02 Felix14-v2