KEMBAR78
COMMON: Upgrade InstallShield archive code by fracturehill · Pull Request #4868 · scummvm/scummvm · GitHub
Skip to content

Conversation

@fracturehill
Copy link
Contributor

This PR adds support for InstallShield cabinets with files split across
volumes. It should, in theory, also add support for format v5
cabinets with multiple volumes, but I don't have any on hand
to test with.

Code is based on unshield.

Added support for files split across volumes, and for multi-volume
v5 archives to the InstallShield cabfile code.
Fixed the InstallShield archive code to correctly load the file list in
multi-cabinet v5 archives.
@sluicebox
Copy link
Member

SCI has one game where we use InstallShield, the Polish version of Leisure Suit Larry 7. With this change, it now errors and isn't able to read the file 55200.AUD from DATA1.CAB.

WARNING: Failed to read split file 55200.AUD!
WARNING: ResourceManager::processPatch(): failed to open 55200.AUD!

I confirmed that 55200.AUD is correctly read by the prior code. I don't know anything about the InstallShield code or format; this is just the one file I could test.

Files marked as invalid are now ignored in all IS versions. Trying to
extract an obfuscated file now results in a warning instead of just failing.
@fracturehill
Copy link
Contributor Author

@sluicebox Fixed the issue, can confirm the game boots correctly now. Thanks for testing :)

@sluicebox
Copy link
Member

Re-tested and it works now, thanks!

@sev-
Copy link
Member

sev- commented Apr 9, 2023

Thank you, good stuff!

@sev- sev- merged commit d99d325 into scummvm:master Apr 9, 2023
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

Successfully merging this pull request may close these issues.

3 participants