nmarshall commited on
Commit
ed15e8f
·
1 Parent(s): a75bd1f

qvm: lethal and method24 interception

Browse files
docs/ASSET_PIPELINE_TODO.md CHANGED
@@ -847,3 +847,6 @@ Research progress: RE-726 [report](research/QVM_HEALTH_CREDIT.md); original asse
847
 
848
 
849
  Research progress: RE-727 [report](research/QVM_HEALTH_SPECIAL_TARGET.md); original assets unchanged.
 
 
 
 
847
 
848
 
849
  Research progress: RE-727 [report](research/QVM_HEALTH_SPECIAL_TARGET.md); original assets unchanged.
850
+
851
+
852
+ Research progress: RE-728 [report](research/QVM_HEALTH_INTERCEPTS.md); original assets unchanged.
docs/FINDINGS.md CHANGED
@@ -1193,3 +1193,6 @@ RE-714–723 batch complete: [complete contact and health prefixes](research/QVM
1193
 
1194
 
1195
  **RE-727 — Special target health classes and actual RNG:** The magic checksum routes method34 directly to health−999; class0–4 can choose1/2/3 damage through actual36717, while classes5–10 filter methods22/25 and selected classes halve method25 damage. [Evidence](research/QVM_HEALTH_SPECIAL_TARGET.md).
 
 
 
 
1193
 
1194
 
1195
  **RE-727 — Special target health classes and actual RNG:** The magic checksum routes method34 directly to health−999; class0–4 can choose1/2/3 damage through actual36717, while classes5–10 filter methods22/25 and selected classes halve method25 damage. [Evidence](research/QVM_HEALTH_SPECIAL_TARGET.md).
1196
+
1197
+
1198
+ **RE-728 — Lethal mode interception and method24 override:** Mode10 can divert distinct live-client lethal damage to206128, while method24/global34066516 zeros direction z and requests impulse without ordinary health subtraction. [Evidence](research/QVM_HEALTH_INTERCEPTS.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1182,3 +1182,6 @@ Research progress: RE-726 [report](research/QVM_HEALTH_CREDIT.md); full native/p
1182
 
1183
 
1184
  Research progress: RE-727 [report](research/QVM_HEALTH_SPECIAL_TARGET.md); full native/platform/game scope remains open.
 
 
 
 
1182
 
1183
 
1184
  Research progress: RE-727 [report](research/QVM_HEALTH_SPECIAL_TARGET.md); full native/platform/game scope remains open.
1185
+
1186
+
1187
+ Research progress: RE-728 [report](research/QVM_HEALTH_INTERCEPTS.md); full native/platform/game scope remains open.
docs/RESEARCH_LEDGER.md CHANGED
@@ -1278,3 +1278,8 @@ Health bookkeeping adjusts attacker client252, clamps incoming integer damage to
1278
  ## 2026-10-21 — RE-727 Special target health classes and actual RNG
1279
 
1280
  The magic checksum routes method34 directly to health−999; class0–4 can choose1/2/3 damage through actual36717, while classes5–10 filter methods22/25 and selected classes halve method25 damage. Focused `cargo xtask test-group health` passes (20 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 1189392 bytes. Full-suite validation is deferred to the tenth batch commit. No original assets, Rust runtime or shared VM evaluator changed.
 
 
 
 
 
 
1278
  ## 2026-10-21 — RE-727 Special target health classes and actual RNG
1279
 
1280
  The magic checksum routes method34 directly to health−999; class0–4 can choose1/2/3 damage through actual36717, while classes5–10 filter methods22/25 and selected classes halve method25 damage. Focused `cargo xtask test-group health` passes (20 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 1189392 bytes. Full-suite validation is deferred to the tenth batch commit. No original assets, Rust runtime or shared VM evaluator changed.
1281
+
1282
+
1283
+ ## 2026-10-21 — RE-728 Lethal mode interception and method24 override
1284
+
1285
+ Mode10 can divert distinct live-client lethal damage to206128, while method24/global34066516 zeros direction z and requests impulse without ordinary health subtraction. Focused `cargo xtask test-group health` passes (24 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 351229 bytes. Full-suite validation is deferred to the tenth batch commit. No original assets, Rust runtime or shared VM evaluator changed.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1225,3 +1225,6 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1225
 
1226
 
1227
  - [x] RE-727 Special target health classes and actual RNG ([report](research/QVM_HEALTH_SPECIAL_TARGET.md)).
 
 
 
 
1225
 
1226
 
1227
  - [x] RE-727 Special target health classes and actual RNG ([report](research/QVM_HEALTH_SPECIAL_TARGET.md)).
1228
+
1229
+
1230
+ - [x] RE-728 Lethal mode interception and method24 override ([report](research/QVM_HEALTH_INTERCEPTS.md)).
docs/research/QVM_HEALTH_INTERCEPTS.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Lethal mode interception and method24 override
2
+
3
+ RE-728. Reproduce with `python3 scripts/analyze_qvm_health_intercepts.py`; validate with `cargo xtask test-group health`. See the [machine report](qvm-health-intercepts.json).
4
+
5
+ Actual212479–212621 intercepts mode10 lethal damage only for distinct client attacker/target, clear target client220 bit16384 and a method outside6/7/1/3/2/4/9/31/35/33/32. The206128 target/attacker/method request is captured. Otherwise method24 with global34066516 nonzero zeros supplied direction z, captures213009(target,direction,knockback), and exits. Other cases continue at212622. The100 supplied mode/client/self/health/method/flag/override fixtures verify both request signatures, branch order and unchanged health/client state. Intercept lifecycle and impulse effects are not executed here.
6
+
7
+ No original executable/full VM/native world collision or rendering runs. Supplied callback/native responses and fixture domains remain explicit; complete macOS/Linux Rust/Bevy/Solari gameplay remains open.
docs/research/README.md CHANGED
@@ -783,3 +783,6 @@ The extension collector adds five focused tests for native tail calls, command-r
783
 
784
 
785
  [RE-727: Special target health classes and actual RNG](QVM_HEALTH_SPECIAL_TARGET.md).
 
 
 
 
783
 
784
 
785
  [RE-727: Special target health classes and actual RNG](QVM_HEALTH_SPECIAL_TARGET.md).
786
+
787
+
788
+ [RE-728: Lethal mode interception and method24 override](QVM_HEALTH_INTERCEPTS.md).
docs/research/qvm-health-intercepts.json ADDED
The diff for this file is too large to render. See raw diff
 
scripts/analyze_qvm_health_intercepts.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Mode10 lethal interception and method24 override before ordinary subtraction."""
3
+ import itertools
4
+ from pathlib import Path
5
+ from qvm_research_support import source
6
+ from qvm_health_effects_support import seed,run
7
+ from analyze_qvm import write_json
8
+
9
+ def main():
10
+ q,raw,h,ins=source();rows=[]
11
+ cases=[dict(mode=mode,method=method,health=health,damage=damage,flags220=flags) for mode,method,health,damage,flags in itertools.product([3,10],[1,6,12,24,33],[99,100],[99,100],[0,16384])]
12
+ cases += [dict(mode=10,method=12,client=client,attacker_client=attacker,self=self_hit) for client,attacker,self_hit in itertools.product([False,True],[False,True],[False,True])]
13
+ cases += [dict(method=24,override=override,knockback=kb,direction=direction) for override,kb,direction in itertools.product([0,1],[-50,0,100],[(3,4,7),(0,0,0)])]
14
+ for a in cases:
15
+ _,p=run(ins,seed(raw,h,**a),212479,212622);p['input']=a;rows.append(p)
16
+ write_json(Path('docs/research/qvm-health-intercepts.json'),{'source':q['source'],'sha256':q['sha256'],'probes':rows,'limits':'Actual212479..212621;206128 and213009 requests captured. No intercepted lifecycle or velocity effects execute. Nonnull direction supplied for override writes.'})
17
+ if __name__=='__main__':main()
scripts/test_qvm_health_intercepts.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json,unittest
2
+ from pathlib import Path
3
+ from qvm_health_effects_support import TARGET,ATTACKER,DIRECTION
4
+ from test_qvm_ground import word
5
+ class HealthInterceptTests(unittest.TestCase):
6
+ @classmethod
7
+ def setUpClass(cls):cls.ps=json.loads(Path('docs/research/qvm-health-intercepts.json').read_text())['probes']
8
+ def test_independent_interception_and_override_truth_table(self):
9
+ for p in self.ps:
10
+ a=p['input'];intercept=a.get('mode',3)==10 and a.get('client',True) and a.get('attacker_client',True) and not a.get('self',False) and a.get('health',100)-a.get('damage',100)<=0 and not a.get('flags220',0)&16384 and a.get('method',12) not in (6,7,1,3,2,4,9,31,35,33,32);override=not intercept and a.get('method',12)==24 and a.get('override',0)!=0
11
+ self.assertEqual(len(p['effects']['intercepts']),int(intercept));self.assertEqual(len(p['effects']['impulses']),int(override));self.assertEqual(p['execution']['stop'],213007 if intercept or override else 212622)
12
+ def test_exact_request_abis(self):
13
+ for p in self.ps:
14
+ for c in p['effects']['intercepts']:self.assertEqual(c['arguments'],{'8':TARGET,'12':ATTACKER,'16':p['input'].get('method',12)})
15
+ for c in p['effects']['impulses']:self.assertEqual(c['arguments'],{'8':TARGET,'12':DIRECTION,'16':word(p['input'].get('knockback',100))})
16
+ def test_override_zeros_only_direction_z(self):
17
+ for p in self.ps:
18
+ values=list(p['initial']['direction'])
19
+ if p['effects']['impulses']:values[2]=0
20
+ self.assertEqual(p['final']['direction'],values)
21
+ def test_health_and_client_fields_unchanged(self):
22
+ self.assertEqual(len(self.ps),100)
23
+ for p in self.ps:self.assertEqual(p['initial']['entity'],p['final']['entity']);self.assertEqual(p['initial']['client'],p['final']['client'])
24
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -1149,3 +1149,5 @@ report scripts/analyze_qvm_health_credit.py docs/research/qvm-health-credit.json
1149
  edge docs/research/qvm-health-credit.json scripts/test_qvm_health_credit.py
1150
  report scripts/analyze_qvm_health_special_target.py docs/research/qvm-health-special-target.json
1151
  edge docs/research/qvm-health-special-target.json scripts/test_qvm_health_special_target.py
 
 
 
1149
  edge docs/research/qvm-health-credit.json scripts/test_qvm_health_credit.py
1150
  report scripts/analyze_qvm_health_special_target.py docs/research/qvm-health-special-target.json
1151
  edge docs/research/qvm-health-special-target.json scripts/test_qvm_health_special_target.py
1152
+ report scripts/analyze_qvm_health_intercepts.py docs/research/qvm-health-intercepts.json
1153
+ edge docs/research/qvm-health-intercepts.json scripts/test_qvm_health_intercepts.py