Download docs/research/QVM_FIRING_BATCH.md from nmarshall/urt-rs: direct link, hf CLI and curl.
- Browser
- Download file 6.64 kB
-
https://huggingface.co/nmarshall/urt-rs/resolve/main/docs/research/QVM_FIRING_BATCH.md
- Command line
-
hf download hf://nmarshall/urt-rs/docs/research/QVM_FIRING_BATCH.md
-
curl -L -o QVM_FIRING_BATCH.md https://huggingface.co/nmarshall/urt-rs/resolve/main/docs/research/QVM_FIRING_BATCH.md
Firing research batch: RE-582–591
Ten separate task commits extend the weapon-state batch. The entire finite50746 body now executes with recovered QVM children; repeated source suffix calls connect its published request to the actual outer event queue. This is not native shot simulation or full-game completion.
| Task | Scope | Findings |
|---|---|---|
| RE-582 | 51802..52084 charge/hold/release and ordinary input gate | Input gate |
| RE-583 | 52085..52153 availability failure/state1/ID27 exception | Availability |
| RE-584 | 52154..52252 selected magazine debit | Ammo |
| RE-585 | 52253..52411 firing pose priority | Pose priority |
| RE-586 | Complete52253..52729 class/tag/gait pose dispatch | Pose |
| RE-587 | 52730..52872 request publication and burst delay/counter | Counter |
| RE-588 | 52873..52988 resource snapshot/division/clamp/reset | Resource |
| RE-589 | 52989..53045 post-debit final delay | Delay |
| RE-590 | Entire50746 body and actual54444..54463 main suffix | Complete body |
| RE-591 | Actual outer reset, timer-coupled repeated main suffix calls and publication | Sequences |
Concrete behavior recovered
- Charge-mode availability uses packed mode, while parent branch/debit/accounting uses preserved local mode. IDs11/12 have command-weapon exceptions; literal asymmetry is retained.
- Ordinary nonzero burst counters bypass absent attack input. An unavailable non-ID27 weapon queues29, clears its counter and adds500 to the timer.
- Magazine debit preserves the other packed bytes and is suppressed by local-mode flag4. Empty magazine does not underflow.
- Pose priority precedes the class table; running-leg membership and tag22/25 select different timed requests. These remain numeric animation choices until asset mapping is verified.
- Firing publishes FRAME260=1, FRAME264=0 and PS148=3. Counter3 produces two burst delays before the normal terminal delay.
- Without flag16, resource188 is copied to PS216, incremented by signed truncated30000/capacity, upper-clamped30000 and given a mode cooldown. There is no lower clamp in that slice. Flag16 zeros all three and skips division. Capacity0 without the bypass is rejected rather than supplied a fake result.
- Final delay reads the post-debit magazine: an ordinary last round skips the timer addition; ID27 still adds it.
- Actual outer publication queues31 with FRAME264 as parameter, caching the selected low-byte ID and post-debit magazine. It runs after optional93 and21 events. The firing request can remain set across several substeps, yielding one publication at the outer boundary.
Integration evidence
RE-590 evaluates the whole50746 body directly and compares its complete finite results against independent staged state/delay oracles. All direct call families are inventoried; no unresolved call is silently supplied a successful result. Twelve scenarios cover firing/last/empty, flag4, charge start/release, burst, lowering, reload, death, local-mode preservation and selection. Two actual six-child main suffix fixtures validate handoffs.
RE-591 uses actual reset54528..54557, timer53048, main consumer suffix54444..54463 and publication54855..54978. Four finite sequences cover:
- Three burst substeps in one outer frame: magazines4/3/2, counters2/1/0, delays25/25/100 and one outer event31.
- Last round followed by empty input: timer0 then500, queued31 then29, without stale request publication on the next outer frame.
- Selection lowering/raising: slot/state/timer transitions(0,2,300)→(0,2,100)→(1,1,250)→(1,1,50)→(1,0,0), with event30 parameters0 then1.
- Released reload with explicitly supplied shortened timer: magazine2/reserve2 becomes32/reserve1 without a firing publication.
A separate supplied publication fixture verifies93→21→31 order, parameters and unsigned ring-sequence wrap. Timers are independently checked at each handoff. The burst timing and shortened reload records are explicit fixture overrides, not claims about immutable shipped configuration.
The839-test baseline gains40 independent tests. All reports remain below the2MiB normal-Git cap and regenerate deterministically. Code/docs remain normal Git, asset filters remain in force, and no original assets enter these commits.
Boundaries and next ten tasks
No original executable/native library, collision/physics or renderer runs. Animation durations and interaction trace replies are supplied. Repeated calls use supplied dt/buttons; scheduler clock/input cleanup, earlier main view/movement/environment setup and final native vector snap54471 are omitted. QVM function completeness does not imply exhaustive legal-state, reference, network or platform parity.
- Locate and recover server/client event31 consumers, including how cached weapon/magazine and event parameters determine an actual firing action.
- Recover reached projectile/hitscan, spread/recoil and ammunition side effects beyond the movement producer; inventory every unresolved child.
- Recover trace/damage/material/contact contracts for those consumers and capture collision-consistent reference records.
- Trace weapon/mode configuration initialization and writers; validate capacity, counter, timer, flag and resource domains against live state.
- Map numeric weapons, torso/leg animations and event sounds to asset variants with provenance and conversion requirements.
- Recover native vector snap54471, including actual rounding and ABI behavior from the supplied platform binaries.
- Compose the complete53418 movement step with clock, inputs, view basis, environment, timers, movement and all six suffix consumers.
- Compose outer54475 scheduling with the recovered step and event publication; check timestamp boundaries, substep aggregation and queue pressure.
- Capture original/reference execution and compare legal multi-step behavior, then continue broader native/DLL/network/rendering/content coverage.
- Start the Rust/Bevy/Solari executable slice with recorded fixture parity and measured macOS/Linux platform/rendering paths; this research does not count as a playable game.
The subsequent RE-593–602 server firing batch follows event31 into server preparation and selected bounded setup handlers. It retains explicit allocation/link/query and pending shot-processing boundaries rather than claiming native shot outcomes.