07th-mod / 07th-mod/python-patcher

Sharedasset detection using checksum can fail when switching between proton and native on second install [no fix needed?]

Open
#200 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
214
Forks
12
PR merge metrics
No merged PRs in 30d

Description

For some chapters (eg. ch8), installer chooses sharedassets depending on the checksum of the original sharedassets0.assets.

Because our installer overwrites the sharedassets0.assets file, we also check the checksum of the sharedassets0.assets.backup file to see the "original" sharedassets file. This .backup file is created by our installer when you install the mod.

However, if you:

- First install using say Proton, it will create a sharedassets0.assets.backup file from the Proton install.
- Switch back to Native. This will overwrite the sharedassets0.assets with the Native version
- Perform an install of the mod the first time, the install will work OK (it will overwrite the sharedassets0.assets with the mod version)
- Because a .backup file already exists, this install won't overwrite the sharedassets0.assets.backup file
- Now, when you perform the second install or update, the sharedassets0.assets will be the mod version, which the installer does not recognise. Also, the sharedassets0.assets.backup file is from the Proton install, which the mod also does not recognize. This will cause an install error.

Contributor guide

No contributing guide indexed for this repository

Research direction

Look at the installer's shared asset detection logic, likely in a file handling checksums or asset management. The issue describes a scenario where the backup file (sharedassets0.assets.backup) from a Proton install causes a mismatch on a subsequent Native install. Start by finding where checksums are computed for sharedassets0.assets and its backup. Understand the install flow to see how the backup is created and when it's overwritten. Testing involves simulating installs switching between Proton and Native modes.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
cli, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.