Repository navigation
Reduce raster overhead and fix paused Boss Rush replacements - #142
Merged
Merged
Conversation
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.
Avoid repeated full VRAM copies during raster capture by sharing exact immutable snapshots, and reuse the last stage-map cell lookup within each draw. Guest execution, PPU side effects and presentation rules stay intact. Scoped write tracking falls back to exact comparison for uncertain intervals, callbacks and trace builds. Portable full-copy and cache-disabled reference options remain available; the engine pin adds only the shared snapshot helper atop main's existing engine ancestry.
Also fix the owner's reproduced Boss Rush report: native boss death and Start on the same frame can enter the weapon-menu coroutine before its flags publish, temporarily clearing the live camera. The replacement controller used that camera to spawn Spark Mandrill outside the arena. Gate replacement progression/creation on the saved arena camera contract and use the saved origin during transient invalid camera state. Preserve normal combat and Mammoth scrolling; do not silently modify the owner's already escaped saved actor.
Reapplied to current main 99450ef after the owner approved the earlier MMX/SMW/SM bundle, preserving newer Zero and camera fixes. Validation: GCC Release including recomp-net/rbengine and ICE; 31 registered CTests with zero failures (29 pass, two optional donor-asset skips), including four Magic Carpet checks and 180 real death/pause replacement cases; nine exact full-copy/optimized Magic Carpet BMP pairs; independent and unified two-process gameplay peers with actual rollback/replay and imported weapons; audio-enabled desktop rollback, delay sync and forced state/slot repair without offline autosave pollution. Automated audio output uses SDL dummy. No rbengine/netplay protocol changes.
Earlier bounded MMX raster-route measurements saved 13–32% CPU time; the later stage-map trial saved about 4.9% relative to the snapshot candidate on its three-scene workload. Do not add those differently weighted percentages. Current-main reruns establish correctness, not new performance estimates; original Xbox runtime remains unqualified. Full evidence and accepted/rejected experiments are in docs/PERFORMANCE_BURNDOWN.md.
Tracking: beads-9nma, beads-akjp, beads-8wg.1.145. Shared helper: RetroPortingToolKit/snesrecomp#209 (merged).