quinton-ashley/Super_Mario_Sunshine_UHD_Texture_Pack

.7z cannot be loaded as a resource pack

Techjar opened this issue ยท 7 comments

The pack needs to be distributed as a .zip, with store (no compression) or the compression flag enabled in the manifest.

Sorry I'm not going to / can't do that. The Dolphin resource pack manager needs to be improved to handle 7z.

Noted. I'll update when progress has been made on that.

Sorry I'm not going to do that. The Dolphin resource pack manager needs to be improved to handle 7z.

Compression makes loading everything slower. I think the ideal solution is, as was suggested, an uncompressed ZIP file, since that means Dolphin doesn't have to decompress every texture when loading them. If you really want compression, 7z isn't that great for this purpose either, since while it has better compression than ZIP, it also has slower compression.

The resource pack feature should be able to download an efficiently compressed 7z file and then unpack it into a folder. The priority should be decreasing download size and thereby the time it takes to download the pack. This texture pack is huge and needs to be compressed efficiently. Downloading an uncompressed zip and then loading the files from that same uncompressed zip is very stupid idea and not what I envisioned at all when I came up with the idea for resource packs. You can't have your cake and eat it too.

Note: If you can't get the created GMS.zip to load in Dolphin, remember to pack all files within the GMS folder, not the GMS folder itself!


I'd say 7z is not very likely to be supported by Dolphin for a few reasons:

  • In contrast to formats such as .tar.gz, the format was designed with a very "Windows-like" mindset. It generally doesn't enjoy much support outside of its own niche. Even Zstandard (.tar.zst) has been gaining adoption more rapidly lately.
  • 7z libraries are usually quite large and are also LGPL-licensed. LGPL is thankfully not a problem for integrating it in Dolphin, but developers generally don't like relying on copyleft-licensed libraries nowadays.

I'm surprised that Dolphin doesn't support compressed ZIP archives though. Was that an intentional decision to avoid stuttering during gameplay? I can't see that being a problem if all textures are preloaded when the game is started.

However, an uncompressed ZIP archive of GMS.7z 2.1.1 (created with 7z x GMS.7z && cd GMS && zip -r0 GMS.zip *) weighs 3 GB. This means it can't be uploaded to GitHub Releases, since files can only be up to 2 GB each.

Edit: Loading this ZIP archive as a resource pack appears to get Dolphin to recognize it as a valid resource pack, but no textures are replaced in game. Using the manual approach of placing textures in Load/GMS/ works though.

Yes exactly! I wouldn't want people to have to download a 3GB file anyway, it's absurd.

Was that an intentional decision to avoid stuttering during gameplay?
Yes, almost certainly. Zip compression is quite slow if you are trying to decompress on the fly. You'd almost certainly have massive stuttering and freezing when using a zip archive for this purpose. Unless you first decompress the whole thing and throw it into ram. It's better to not have it in a zip archive. It's more flexible that way anyway. Plus less to go wrong.