Repository navigation
feat(sim): model Set Slow Motion as no-effect across the P9 range - #148
Merged
Merged
Conversation
P9 measured factors 10, 200, 0 and -50 over three client runs (2.25.0.1). Total Time Elapsed stays 16 ms per tick and Wait rounds up to whole ticks, as at 100%. With P8 this covers -50 to 200, so the gate becomes that range instead of a list of points; a factor outside it stays not_modeled. Records the P9 capture and adds a P9 fixture test. Updates architecture, findings and trace-format docs. Fixes #143
This was referenced Nov 3, 2026
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.
Summary
match). At factors 10, 200, 0 and -50,Total Time Elapsedadvances 16 ms per tick andWaitof 16, 100 and 1000 ms takes 16, 112 and 1008 ms, as at 100%. The owner's capture files are committed unchanged.athena-sim:MEASURED_SLOW_MOTIONbecomes the range -50 to 200 instead of a list of three points.Set Slow Motionhas no effect on the script timeline inside it, clamped inputs included. A factor outside the range ends the runnot_modeled.p9_slow_motion_extremesfixture test. Updatearchitecture.md,findings.mdandtrace-format.mdto state the measured range.Design reasoning
AC3 of #143 asks for "no effect ... for the measured range (including clamped inputs)". Seven factors matched (-50, 0, 10, 50, 90, 100, 200), and the extremes include values the wiki documents as invalid (200, 0, -50). So the range between the extremes is treated as measured. The gate stays as one range check because no capture covers factors beyond -50 and 200, and the issue grants the claim only for the measured range. Removing the gate would claim behavior for, say, 1000, which nothing measured. The range keeps the code smaller than a seven-element list and still matches the evidence exactly. The wall-clock ratio and the cause are still not measured and the docs say so.
Verification
cargo fmt --check: clean.cargo clippy --all-targets -- -D warnings: clean.git diff --check: clean.cargo test(workspace): all pass, includingp9_slow_motion_extremes(both spellings simulate identically and agree with the capture) andprobe_hashes.not_modeledtests use 201, -51 and 1000.50.0..=90.0.match_clockandfixturesthen failed (11 failures each, includingp9_slow_motion_extremesand the measured-factor wait tests). Restored the range afterwards; all tests pass again.Fixes #143