Skip to content

Conversation

@LagoLunatic
Copy link
Collaborator

A couple of improvements for automatically pairing up functions with weird symbol names. MWCC can output symbols in a different order from their actual address order, so they're now internally sorted to handle the case of a single TU having multiple functions with different discriminators so they don't get swapped during pairing.

Before:
image
After:
image

And discriminators in the middle of anonymous class names like __dt__Q29dCamera_c23@class$3665d_camera_cppFv are now also ignored, in addition to the ones at the end of the symbol which were already ignored.

Fixes #266

The list of symbols is not necessarily sorted by address, so if there are multiple `__arraydtor$1234` functions it's possible that they're in reverse order on the right, which would cause them to be paired up incorrectly.

To fix this we sort by section index and symbol address after filtering down the list of symbols to ones that have matching names.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] [Twilight Princess] __arraydtor comparison is broken in d_a_obj_bemos

1 participant