emu-russia / pureikyubu

Nintendo GameCube Emulator (WIP)
Creative Commons Zero v1.0 Universal
164 stars 6 forks source link

Missing .RVZ disc image support #249

Open SSUPII opened 1 year ago

SSUPII commented 1 year ago

Dolphin can use a compressed format for Gamecube and Wii games with extension .RVZ, that actually saves a lot of space

Adding .RVZ would allow users that compressed their own original .ISO images to try the emulator while keeping the images compressed.

ogamespec commented 1 year ago

If they provided a handy self-contained library for quick embedding into other emulators, I'd quickly add that. As far as I remember (when I visited them last time) - there is only specification (format description), and further "you can do it yourself" :D

Actually, Dolwin used to have its own implementation based on zlib (GMP), but I remember that it was not very convenient. Disk compression takes a decent amount of time, and except for playing on an emulator there are no other uses (you can't run it on real hardware). Plus, remember the meme about formats:

image

It is much easier to compress files using standard OS tools such as NTFS compression.

We'll see about that. I'm not closing it yet, but support for additional formats is definitely not on the agenda right now :)

SSUPII commented 1 year ago

Absolutely.

This is an issue made more as a reminder for the far future, bottom of the priority list for when after we get a good base.

I don't think we really need creating images of this format, that would be out of scope. But read would definitely be nice down the line.

SuperSamus commented 1 year ago

If I'm not wrong:

If they provided a handy self-contained library for quick embedding into other emulators, I'd quickly add that. As far as I remember there is only specification, and further "you can do it yourself"

While not a library, all the code is here: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DiscIO/WIACompression.cpp

It is much easier to compress files using standard OS tools such as NTFS compression.

The padding in the ISO files for GameCube/Wii games is pseudo-random. Filesystem compression does basically nothing when dealing with random data. .rvz is optimized to deal with the pseudo-random data used specifically in these ISO files.