Fix vtable relocation check on Ryujinx#76
Merged
WuBoytH merged 1 commit intoHDR-Development:masterfrom Mar 27, 2026
Merged
Conversation
Contributor
|
The pain of switch emulators. Have you checked to see if this works on console as well? |
Contributor
Author
|
Hahaha very agreed, I'm actually gonna push up another fix for the Tetromino mod too since that's hitting a different crash... And no I haven't! Don't have a switch capable of it anymore. Would have to rely on yourself, or someone else! I can provide an artifact if that would work? |
Contributor
|
Honestly, it should be fine. I didn't know what |
Contributor
Author
|
Forgot to reply, yeah it shouldn't cause any issues, thank you! Hoping this means no more nro character issues on emu given those are taking off recently. :) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On Ryujinx,
svcQueryMemoryreports heap addresses as being inside the module's address range, which causesget_memory_state()to return the wrong result for vtables that have already been relocated to the heap. Any subsequent guard call on an already-relocated vtable would then try to relocate it again. This broke custom moveset NROs on Ryujinx.Adds a static registry of relocated vtable addresses. Guard functions check this before calling
get_memory_state(), so already-relocated vtables always pass the check correctly.Fixes: #73