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

Change USSEP's LOOT Message to check BSA CRC instead of EXE #2400

Closed
ixanza opened this issue May 9, 2022 · 4 comments
Closed

Change USSEP's LOOT Message to check BSA CRC instead of EXE #2400

ixanza opened this issue May 9, 2022 · 4 comments

Comments

@ixanza
Copy link

ixanza commented May 9, 2022

image

This isn't an accurate error message due to the existance of the Best of Both Worlds Downgrade Patcher which downgrades the EXE to 1.5.97 while keeping all the ESMs and BSA's updated. The Skyrim Reverse Engineers have pretty much concluded that there is no new functionality in the 1.6 EXEs that prevent anything from the newer esms and bsa's from working fine, hence the check here should just be on the BSAs and ESMs instead of the EXE as the ESMs are the one that contain the changes USSEP needs to function properly and not the EXE.

The message now is generating unecessary doubt in many people on various skyrim discords wondering if they messed something up when its not the case.

@pStyl3
Copy link
Member

pStyl3 commented May 9, 2022

Let's first have a look at the situation as of right now. This is the current implementation of the above message.

prelude.yaml

  - &versionXofYorGreaterRequired
    type: error
    content:
      - lang: en
        text: 'Requires version **%1%** or greater of **%2%**.'
      # Other languages omitted for brevity

masterlist.yaml

  - name: 'Unofficial Skyrim Special Edition Patch.esp'
    msg:
      - <<: *versionXofYorGreaterRequired
        subs:
          - '1.6.323.0'
          - 'Skyrim Special Edition'
        condition: 'readable("../SkyrimSE.exe") and product_version("../SkyrimSE.exe", "1.6.323.0", <) and version("Unofficial Skyrim Special Edition Patch.esp", "4.2.6a", >=)'

The readable() check was recently introduced & added here, so that in case the user is modding the Microsoft Store / Game Pass version of the game, the condition is short-circuited and evaluates to false. The reasoning behind that can be found here.

The part of the condition, that potentially would need to be changed according to this request, is therefore
'product_version("../SkyrimSE.exe", "1.6.323.0", <)

If the downgraded SkyrimSE.exe is no longer of product version 1.6.323.0 but instead 1.5.97.0, the error message get's displayed. That is why users of the Downgrade Patcher see this error message.


Unofficial Skyrim Special Edition Downgrade Patcher
Unofficial Skyrim Downloader
Skyrim Downgrade Patcher Usage

The Skyrim Reverse Engineers have pretty much concluded that there is no new functionality in the 1.6 EXEs that prevent anything from the newer esms and bsa's from working fine, hence the check here should just be on the BSAs and ESMs instead of the EXE as the ESMs are the one that contain the changes USSEP needs to function properly and not the EXE.

I'm assuming that by Skyrim Reverse Engineers you refer to @halgari and possibly someone else as well? Could you clarify who you mean by that?

In the video I've linked above, halgari says, starting at 5:20:

But otherwise, you can do here, is select "Best of Both Worlds" and what this will do, is use all the new BSAs and the ESMs with the old executable. Now, I only suggest you use this, if you have a setup that overrides the UI. There are some problems.

(...)

Two things, first of all, I was saying here, only use Best of Both Worlds, if you know what you're doing. And the reason is, that there are some parts of the interface, in the new version, of Steam, that are different from the old. So the best option there, is if you gonna use Best of Both Worlds, make sure that you're doing enough UI updates, that it removes those changes. You gonna definitely want SkyUI, and I would also recommend, something like Cleaner Start Menu. It has something to do with the start menu, is a little wonky, when you're mixing the old EXE and the new assets, the new interface assets. So just override that with a different mod and you'll be fine.

Also, to quote the above linked mod pages:

Q: I used the "Best of Both Worlds" Patcher and now I can't move with the keyboard, or in the menus!
A: There's a strange conflict with this patcher and lightly modded setups, I recommend some sort of main menu replacer like Clean Menu to override these files and fix the issue.

While I personally cannot comment on the severity of the mentioned "wonkyness" of this issue, I don't think that there is no new functionality in the 1.6 EXEs that prevent anything from the newer esms and bsa's from working fine (after downgrading) is describing the situation correctly. The things halgari talks about in the video seem to be reasonable, but there seems to be work needed after downgrading the game to get everything 100% working once again.

Given the above, and also the fact, that the downgrader currently only seems to be supporting the english version of the game, I'm not yet convinced, that switching to CRC checks on the BSAs would be the best way to handle this situation.

One possible way this issue could be addressed is our open issue Set hide options for single plugin in filter, that way after intentionally downgrading the game could the user hide the error message for USSEP.

Also pinging @Ortham just in case.

@halgari
Copy link

halgari commented May 9, 2022

Thanks for the ping, and yes, there are bits of the 1.6 interface that break when used with the 1.5 EXE. However most modders override these offending files with Clean Start Menu or other such UI enhancers, so they never notice the broken file.

More importantly though, I'd argue that all these warnings should remain in place because SKSE plugins certainly are not compatible across 1.5 and 1.6 and will cause CDT.

So IMO it comes down to what side do you want to err on having false positives, or false negatives.

@ixanza
Copy link
Author

ixanza commented May 9, 2022

These are fair points. Thanks for opening my understanding

@pStyl3
Copy link
Member

pStyl3 commented May 11, 2022

Thanks for the reply, in this case I'll close the issue.

From my perspective do the conditions work quite well in their current form, and it's only (in this context) if the user intentionally changes the version of the game's .exe that they become true and show the message. Once the above linked & requested feature to be able to hide individual messages in LOOT get's implemented, the user should then (once again) intentionally be able to ignore this message.

@pStyl3 pStyl3 closed this as completed May 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants