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

Unlinker fails to load zmb_code_post_gfx.english.sabs #283

Open
Laupetin opened this issue Oct 12, 2024 · 2 comments
Open

Unlinker fails to load zmb_code_post_gfx.english.sabs #283

Laupetin opened this issue Oct 12, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@Laupetin
Copy link
Owner

When trying to dump en_common_zm.ff you will encounter the following error message:

Trying to load sound bank 'zmb_code_post_gfx.english.sabs' for zone 'en_common_zm'
Failed to load sound bank 'zmb_code_post_gfx.english.sabs'

This game however does not have any zmb_code_post_gfx.english.sabs file.
OAT tries to load it since it is listed as a dependency in zmb_common.english.sabs.

However code_post_gfx_zm does include a soundbank asset zmb_common.english.
It does not reference any soundbank files however.
So it might be possible to check whether a soundbank asset is known which an appropriate name and whether it suggests
there should be a soundbank file.
If not, maybe an error can be omitted.

@Laupetin Laupetin added the bug Something isn't working label Oct 12, 2024
@JezuzLizard
Copy link
Contributor

The way the SndBank asset works doesn't require direct references to any of the actual sound containers.
It is allowed for a SndBank asset to have no aliases, or to have no associated containers, but not neither.
This means a SndBank can have aliases that reference sounds that are in an unrelated container that will get loaded by a different fastfile.
Or the opposite, a SndBank that has no aliases, but references containers that can be read from for the game to resolve the sounds.

Its the same with the IPaks, the game doesn't actually care which IPak contains the image, only that the image can be read.

The only way to solve this issue(for both IPak, and SndBank dumping) you would have to search all of the containers that would hypothetically be loaded at the time of loading a particular fastfile(possibly using the ZONE_FLAGS which is based on the name of the fastfile).

@JezuzLizard
Copy link
Contributor

To add on the previous, Treyarch would intentionally make common IPaks for images that are shared between fastfiles once they are ready for release since they know exactly what the final product's images are going to be.
This allows for size optimizations that would otherwise not be possible if each fastfile had its own dedicated IPak.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants