Emulator Issues #13671
closedDocumentation: RVZ specification does not make mention of required alignment when group is uncompressed
0%
Description
I'm not to what project to assign this to, as technically it's in the emulator repository, but it's related to documentation in the docs
folder and thus isn't a bug in the emulator binary itself.
I found while implementing an RVZ parser (for fun) that there is an undocumented alignment requirement when parsing uncompressed group data in a partition. Specifically, it looks like after extracting any/all exception lists from an uncompressed group, the actual group data must be 4 byte aligned. This means, in my case, after extracting an empty exception list (2 bytes on disk, 0x0000), I need to skip an extra 2 bytes of padding so that I'm now pointing to the actual group data.
This behavior seems to be due to this line in the emulator: https://github.com/dolphin-emu/dolphin/blob/97ea64164b68a18aeb9af2d03e4b1da73536db0a/Source/Core/DiscIO/WIABlob.cpp#L1623
The fix is to add this requirement to the docs/WiaAndRvz.md
specification. I don't think this impacts WIA, as RVZ is the one that allows for a group to be optionally uncompressed.