Expose and verify TAS replay fast-forward speeds - #30
Merged
Conversation
Alexbeav
marked this pull request as ready for review
September 9, 2026 08:45
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.
Expose visible TAS playback speed as
python tools/tasreplays/tekken3.py run --speed 4|8|32|max. Previously the replay runner discarded inherited speed settings and could not hold the fast-forward key, and the runtime silently fell back to 4x for caps above 16.PSX_FAST_FORWARD=1selects the existing host fast-forward pacing/presentation path from startup. Extend its bounded range to 64x and record the selected cap in the replay manifest. Guest clocks, controller inputs, device timing and generated game/BIOS code are unchanged. Headless playback is already uncapped, so the CLI rejects a simultaneous speed override. Documentation distinguishes a requested ceiling from achieved throughput.Validation:
These runs prove determinism across the selected speed controls, not actual 4x–32x throughput. Full RAM verification was enabled. The process averaged roughly one busy CPU core during the uncapped sample; measured throughput remained about 0.45x. Guest time through return 8,399 was 140.142873 seconds in every run. Actual accelerated throughput still requires performance work.
The fixed tested native SHA-256 is
6df41fe25e0daa12fba7db0d167dca7d3f747574a284632ab517c8fd36a43301. The final follow-up changes only setup metadata, a pre-launch capability guard, its regression test and documentation: an older executable's setup receipt must be regenerated before selecting a speed, preventing silently ignored controls after a Git update. The runtime and runner used by the four completed replays are unchanged.This PR targets the fork's
tasreplaysbranch. The existing post-victory CDDA and cross-title qualification limits still apply.