pyxbe icon indicating copy to clipboard operation
pyxbe copied to clipboard

Section sorting order may differ between raw and virtual addresses

Open itsybitsypixel opened this issue 8 months ago • 0 comments

XBEs where the section order is not the same when sorting by raw vs. virtual addresses will produce Expected $SECTION_RAW_ADDR for $SECTION_NAME, got $RAW_OFF warnings when packing and the resulting XBE will have its sections be arranged differently in file data compared to the original.

While this shouldn't have any effect on the loading or playability of the output XBE, it won't be "faithful" to the original and may have other side effects e.g. large patch files (IPS, BPS, etc.) between original and output if pyxbe is used when creating patches.

In my case (http://redump.org/disc/13503/), changing key of sorted to use each sections' raw_addr instead of virtual_addr when constructing section data fixes this but that could affect user code that e.g. assigns only the virtual address when inserting new section(s) and leaves assigning a raw address for pyxbe to handle.

itsybitsypixel avatar Jun 12 '24 09:06 itsybitsypixel