Project

General

Profile

Actions

Emulator Issues #13671

closed

Documentation: RVZ specification does not make mention of required alignment when group is uncompressed

Added by gemarcano 4 days ago. Updated 3 days ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
2409-301

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.

Actions

Also available in: Atom PDF