Add UB-free implementations of RBA and BA#4650
Closed
Rozelette wants to merge 1 commit intoHarbourMasters:developfrom
Closed
Add UB-free implementations of RBA and BA#4650Rozelette wants to merge 1 commit intoHarbourMasters:developfrom
Rozelette wants to merge 1 commit intoHarbourMasters:developfrom
Conversation
Merged
Contributor
|
Closing because of #5025 |
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.
This adds native, UB-free implementations of RBA and BA. In addition, this makes RBA work off of C right, like vanilla. I have removed the
RestoreRBAValuessetting because it doesn't really make sense anymore. We should have vanilla behavior by default, and if there is a demand for our old RBA behavior, that should be implemented as a new, opt-in setting.There is a slight deviation from vanilla behavior.
ITEM_SONG_NOCTURNEandITEM_SONG_PRELUDEread and write to padding bytes in the save struct. Theoretically, you could use BA to write a value to them, then read it with RBA. This would be a more complicated thing to implement since it'll add new fields in the save struct. I couldn't find any actual use of this behavior in speedruns or rando tricks, so I've elected to not fully implement it.This fixes #4214
Build Artifacts