07th-mod / python-patcher

Mod Installer for the Higurashi and Umineko Games
151 stars 12 forks source link

Also allow selecting sharedassets0.assets depending on the stock game's `sharedassets0.assets` checksum #128

Closed drojf closed 1 year ago

drojf commented 3 years ago

With regards to this issue: https://github.com/07th-mod/matsuribayashi/issues/32#issuecomment-725988634

I think we have previously assumed that sharedassets0.assets with the same unity version and the same operating system are "the same", but it appears that the steam and mangagamer versions of the file are different, despite both having the same unity version and operating system.

For matsuribayashi/linux at least, we could embed the checksums of the original sharedassets file in the installData.json and check that against what the user has, and only then apply the sharedassets0.assets file.

If their checksum is not found, we could tell the user they need to re-download their game from the store and/or tell the developers that a new version is out.

drojf commented 3 years ago

hmm, I just realized that after the first patch, the sharedassets0.assets would be replaced with the modded one. But we can check the sharedassets0.assets.bak file that the installer should create.

In the case of a manual install, this further complicates things, as they may not have a sharedassets0.assets.bak file...

drojf commented 3 years ago

Fixed by 8c4e6d4a2565299cf61f139ba95bce4a9a3a4ac3, 4f1175bfbaf5c52bba4ce372385e98e39cabc3f3, and f8322486fbcace833872df867629eb1b9146e6a8 which is already live in the installer for some time now

We haven't had any reports of this problem in a while, so I assume the fix worked.

drojf commented 3 years ago

After discussing about language specific UI files, I realized that the language specific assets don't work with this:

drojf commented 1 year ago

I think this issue popped up again in https://github.com/orian34/matsuribayashi/issues/9

The french archive actually has the UI file already there, but I think the installer selected the wrong one (it does not know whether the game is GOG or Mangagamer/Steam). image

A workaround instead of adding the checksum to every existing translation archive (I think this was my original idea in this branch: https://github.com/07th-mod/python-patcher/tree/translation_crc_support), would be to record that some checksum for certain chapter = GOG, then choose the GOG option (and similararly for Mangagamer/Steam)

drojf commented 1 year ago

After some investigation, this feature may no longer be required, since i'm pretty sure no chapters currently require sharedassets selected depending on the checksum of the vanilla asset (eg the OS and unity version, and perhaps the store (either steam or GOG/MG) is required.

This file (the one we already currently use) works with:

In the future, instead of having checksummed sharedassets, we should upgrade the game itself (by copying files from our 'reference' version of the game). This would also prevent any issues dealing with game variants.

I'm closing this issue for now since I don't think it is needed, reopen if there is some case where we need this feature.