Repository navigation
refactor: migrate to the fast3d fallible memory API - #36
Merged
Merged
Conversation
dcvz
marked this pull request as ready for review
September 7, 2026 16:56
Contributor
Author
|
Pinned to fast3d Worth knowing, since helix never resets: RDP registers and TMEM now persist across display lists rather than resetting each one, which is what the hardware does. sm64 re-initialises at the top of every frame so its behaviour is unchanged, but a port that sets its colour image once and submits several lists will now inherit it correctly instead of drawing to the wrong place. |
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.
fast3d makes guest memory reads fallible and stops implementing its reader trait for
HostRam, because a safe method taking an arbitrary address over raw guest pointers cannot honour that signature. The obligation moves to the call that consumes the display list, which is where helix already blocks the guest, so the adapter disappears and the unsafe block sits next to the thing that makes it true. Presentation needs no hardware and usespresent_last.Draft until retrofoundry/fast3d-rs#56 lands; the
revbump is the remaining change. Verified against that branch through a local patch:cargo check,cargo fmtand the 90 unit tests pass. Strict clippy still reports nine lints, all pre-existing in files this does not touch.