Super_Mario_Sunshine_UHD_Texture_Pack icon indicating copy to clipboard operation
Super_Mario_Sunshine_UHD_Texture_Pack copied to clipboard

.7z cannot be loaded as a resource pack

Open Techjar opened this issue 4 years ago • 7 comments

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

Techjar avatar Sep 19 '20 23:09 Techjar

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

quinton-ashley avatar Sep 20 '20 06:09 quinton-ashley

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

Techjar avatar Sep 20 '20 21:09 Techjar

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.

poudink avatar Oct 05 '20 15:10 poudink

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.

quinton-ashley avatar Oct 05 '20 18:10 quinton-ashley

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.

Calinou avatar Mar 06 '22 21:03 Calinou

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

quinton-ashley avatar Mar 07 '22 02:03 quinton-ashley

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.

EmilieSong avatar Jul 01 '22 07:07 EmilieSong