|
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
6.64 kB
| # Firing research batch: RE-582–591 | |
| Ten separate task commits extend the [weapon-state batch](QVM_WEAPON_BATCH.md). 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](QVM_FIRE_GATE.md) | | |
| | RE-583 |52085..52153 availability failure/state1/ID27 exception | [Availability](QVM_FIRE_AVAILABILITY.md) | | |
| | RE-584 |52154..52252 selected magazine debit | [Ammo](QVM_FIRE_AMMO.md) | | |
| | RE-585 |52253..52411 firing pose priority | [Pose priority](QVM_FIRE_POSE_PRIORITY.md) | | |
| | RE-586 | Complete52253..52729 class/tag/gait pose dispatch | [Pose](QVM_FIRE_POSE.md) | | |
| | RE-587 |52730..52872 request publication and burst delay/counter | [Counter](QVM_FIRE_COUNTER.md) | | |
| | RE-588 |52873..52988 resource snapshot/division/clamp/reset | [Resource](QVM_FIRE_RESOURCE.md) | | |
| | RE-589 |52989..53045 post-debit final delay | [Delay](QVM_FIRE_DELAY.md) | | |
| | RE-590 | Entire50746 body and actual54444..54463 main suffix | [Complete body](QVM_WEAPON_COMPLETE_BODY.md) | | |
| | RE-591 | Actual outer reset, timer-coupled repeated main suffix calls and publication | [Sequences](QVM_FIRE_SEQUENCES.md) | | |
| ## 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: | |
| 1. Three burst substeps in one outer frame: magazines4/3/2, counters2/1/0, delays25/25/100 and one outer event31. | |
| 2. Last round followed by empty input: timer0 then500, queued31 then29, without stale request publication on the next outer frame. | |
| 3. 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. | |
| 4. 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. | |
| 1. Locate and recover server/client event31 consumers, including how cached weapon/magazine and event parameters determine an actual firing action. | |
| 2. Recover reached projectile/hitscan, spread/recoil and ammunition side effects beyond the movement producer; inventory every unresolved child. | |
| 3. Recover trace/damage/material/contact contracts for those consumers and capture collision-consistent reference records. | |
| 4. Trace weapon/mode configuration initialization and writers; validate capacity, counter, timer, flag and resource domains against live state. | |
| 5. Map numeric weapons, torso/leg animations and event sounds to asset variants with provenance and conversion requirements. | |
| 6. Recover native vector snap54471, including actual rounding and ABI behavior from the supplied platform binaries. | |
| 7. Compose the complete53418 movement step with clock, inputs, view basis, environment, timers, movement and all six suffix consumers. | |
| 8. Compose outer54475 scheduling with the recovered step and event publication; check timestamp boundaries, substep aggregation and queue pressure. | |
| 9. Capture original/reference execution and compare legal multi-step behavior, then continue broader native/DLL/network/rendering/content coverage. | |
| 10. 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](QVM_SERVER_FIRE_BATCH.md) 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. | |