|
Download docs/research/QVM_TIMERS_DISPATCH.md from nmarshall/urt-rs: direct link, hf CLI and curl.
- Browser
- Download file 8.83 kB
-
https://huggingface.co/nmarshall/urt-rs/resolve/main/docs/research/QVM_TIMERS_DISPATCH.md
- Command line
-
hf download hf://nmarshall/urt-rs/docs/research/QVM_TIMERS_DISPATCH.md
-
curl -L -o QVM_TIMERS_DISPATCH.md https://huggingface.co/nmarshall/urt-rs/resolve/main/docs/research/QVM_TIMERS_DISPATCH.md
8.83 kB
| # Game-QVM timer aging, main routing and selected consumer bridges | |
| RE-457β459 / F-202β204. [qvm-timers-dispatch.json](qvm-timers-dispatch.json) retains complete helper53048 and the main body54244β54474 of child53418,600 timer probes,250 main-path probes and36 clock/posture/timer/animation bridges. Reproduce with `python3 scripts/analyze_qvm_timers_dispatch.py`; check with `python3 scripts/test_qvm_timers_dispatch.py`. | |
| This continues [child clock and early dispatch](QVM_STEP_STATE.md), [posture](QVM_POSTURE.md) and [animation helpers](QVM_ANIMATION_CONTACTS.md). Bounded synthetic instruction evaluation does not execute the original executable, complete QVM, native collision, physics or rendering. Timer helper53048 is evaluated; other main-body callees record requests with omitted effects. Supplied level/walk/PS words stand in for those effects, and explicit state220 changes model possible omitted mutations without proving any helper actually produces them. These are conditional caller-policy and selected-value compositions, not complete simulation. | |
| ## TIMER-001 β Three countdown fields and expiry flags (RE-457) | |
| Helper53048 reads integer timestep global35023932 and reaches PS through the movement frame at global35024032. Its policy differs across the three timer fields: | |
| | Field | Guard | Update | | |
| | --- | --- | --- | | |
| | PS+16 movement timer | Nonzero | If timestep >= timer, clear PS+12 mask192 and set timer0; otherwise subtract timestep | | |
| | PS+72 leg animation timer | Positive | Subtract timestep, then floor a negative result to0 | | |
| | PS+80 torso animation timer | Positive | Same subtraction/floor policy | | |
| Mask192 is bits64 and128. An **already-zero** movement timer does not clear those flags. A negative movement timer is nonzero and expires for the sampled nonnegative timesteps; negative leg/torso timers instead remain untouched because those guards require positive values. Other flag bits remain unchanged, and no helper requests occur in this body. | |
| The600 fixtures combine flags0/192/0x123456ff, movement timers-1/0/1/16/17, leg timers-1/0/16/17/200, torso timers-1/0/16/17 and timestep0/16. Independent integer/branch oracles verify every result, unchanged origin canary and empty call sequence. These inputs include synthetic guard states, not claims that all combinations occur during play. Overflow, negative timestep and live semantic/producer domains remain open. | |
| ## ROUTE-001 β Main movement ordering, query and six-way priority (RE-458) | |
| The source main path records this initial sequence: | |
| 1.47217 content sampling, then copy frame level+212 into global35024028. | |
| 2.47422 posture, then46773 ground classification. | |
| 3.For PS type+4 equal3 only,45201. | |
| 4.53048 timer aging, then54981(0). | |
| The analyzer applies the evaluated timer child's flag/countdown mutations at its actual call boundary. Earlier content/posture/ground/type3 effects are omitted; their input/output-relevant fields are explicitly supplied. Main probes use timestep16, leg timer200 and torso timer17 at that boundary. Thus these caller fixtures do not compose the real initial environment queries or posture mutations. | |
| After54981, when PS+12 mask12 is clear, the caller saves a Boolean of PS+220 bit1024 and requests56639(). A supplied nonzero return plus a set **saved** bit sets PS+12 bit2. If that saved bit was clear but the **current** PS+220 bit1024 is now set, the caller requests39238(23). This transition request does not require a nonzero query return. Supplied state edits after54981 and after56639 exercise the distinction between saved and current words; they are assumptions about omitted effects, not recovered helper implementations. If mask12 is nonzero, the query and this transition check are skipped. | |
| Movement selection then uses this priority: | |
| | First matching condition | Requested helper | | |
| | --- | --- | | |
| | PS+12 bit128 | 41768 | | |
| | PS+12 mask12 | 55465 | | |
| | Frame level+212 >1 | 41848 | | |
| | Current PS+220 bit1024 | 57312 | | |
| | Global35023936 nonzero | 43626 | | |
| | Otherwise | 42838 | | |
| Exactly one mode helper is requested. For example, supplied flags132 (128|4) choose41768 with timer17 and timestep16. Timer16 expires, clears128 while retaining4, and the caller chooses55465. With supplied flags128 alone and otherwise grounded/low-level inputs, timer16 expiry can instead select43626. Initial timer0 retains128 and still selects41768. This recovers branch control and ordering without establishing which combinations the runtime permits. | |
| After every selected mode, the common suffix records46773,47217,49652(1),49918,50746,49117,47884,48716 and encoded target-43(PS+32 velocity pointer), in that order. These callees/native effects remain omitted. The stored global35024028 is the earlier supplied first level; it is written before posture and the later environment queries. Neither real level changes nor full before/after state are composed. | |
| The250 main fixtures cover five flag patterns, timers0/16/17, levels0/2, state220 bit0/1024, walk0/1, supplied query returns0/1, type3 requests and explicit state edits. Independent tests check every flag/current-state result, query gate, saved level, exact ordered target/argument list, all six mode targets and equality-expiry priority. | |
| ## TIMER-002 β Clock, posture and animation guard bridges (RE-459) | |
| Thirty-six bridges combine six requested times999/1000/1001/1016/1200/1201 against old time1000 with six selected posture variants. The recovered child clock prefix produces elapsed1β200, which becomes the actual integer timestep input to53048. The posture helper's recorded39525 requests have their recovered animation children evaluated first, and the posture caller's timer200 assignment is applied, as in the earlier animation batch. Its resulting leg timer/animation and flags feed timer aging; movement timer16 and torso timer17 are supplied independently. | |
| This selected order follows the main path's posture-before-timer calls. A new posture timer200 becomes199/184/0 for elapsed1/16/200 respectively, conditional on the omitted intervening ground/type3 effects. Blocked stand-up, existing timer suppression and early type3 variants are included. The source clock result writes the requested timestamp separately from its clamped elapsed; the previous independent clock oracle checks that distinction. | |
| Evaluated timer values then feed the previously recovered **direct** leg/torso setter guards with supplied requests36/45. Their results are checked by the independent animation oracle. This demonstrates how timer expiry controls those setters; it does not establish that the later caller47884 requests these particular setters/animations during the same real step. Intervening content/ground/action/physics effects, native sqrt and complete state preservation remain supplied or omitted. Clock, posture and animation analyzers use their own synthetic addresses; only reported words are transferred between those fixtures. | |
| ## Validation and next tasks | |
| Eight tests independently verify600 timer outcomes/negative-zero-equality asymmetries,250 exact main call sequences and routes, expiry priority, saved/current state distinctions and event request,36 clock/posture/timer/animation bridges, source hash/instruction boundaries and explicit scope. Direct step-state/animation-contact dependencies regenerate unchanged; the new report reproduces twice byte-identically. Full-suite/storage/link/whitespace outcomes are recorded in the research ledger. | |
| RE-456 and earlier broad tasks remain open. RE-460 tracks actual54981/56639 and mode/suffix/native-43 effects, movement/animation timer and flag producers/legal ranges, intervening ground/type3 mutations, actual47884 animation request policy, complete environment/posture/timer/mode/state composition and gameplay/macOS/Linux/Rust/Bevy/Solari validation. Contact/resource/animation playback and packet/entity/player/snapshot/rendering milestones remain open. | |
| Follow-up: [query56639 recovery](QVM_TRAVERSAL_QUERY.md) replaces independently supplied query outputs in16 selected main bridges with evaluated return/state words. This explains acquired-bit/return0 event23 and cleared-bit/return1 caller flag2 under supplied collision/clearance assumptions. Other query/shared-state/native effects remain open (RE-461β464). | |
| Follow-up: [mode41768 tail recovery](QVM_CLEARANCE_MODE.md) evaluates the flag32 prefix and conditional gravity/negative-Z mask192/timer policy, with18 main selection/aged-timer bridges. Collision child60091 and complete mode/shared state remain omitted under RE-468. | |
| Follow-up: [actual main-to-contact composition](QVM_MAIN_CONTACT.md) completes bounded RE-497β499, evaluating clock/timer and selected41768 children in shared state. This earlier report retains its omitted-mode effects; full main/environment/native/runtime scope remains open. | |