The recovered system: fire channels = LBE4ControlsManager buttonGroups (0x40/0x45/0x46/0x47); default groups = the per-mech type-6 controls-map resource in BTL4.RES, installed by the T0 CreateStreamedMappings the port already called -- it needed only the TriggerState attribute (id 0x13 PINNED to the binary value; fireImpulse@0x31C is the binary's TriggerState) and an input feed. Keyboard/harness now push press/release edges into the button groups; the gBT*Trigger bypasses, per-type keyboard split and 1,0 pulse hack are retired -- weapons sharing a button fire TOGETHER (madcat Trigger = 4 weapons). Myomers @4b9550/@4b95b8 misattribution corrected (they are MechWeapon ConfigureMappables/ChooseButton). Verified 2-node: kill through the authentic chain (12 hits vs ~36 pre-groups). Config-mode session (regrouping UI) = the remaining stage, KB-scoped. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
10 lines
541 B
Python
10 lines
541 B
Python
from PIL import Image
|
|
import numpy as np
|
|
a=np.array(Image.open('scratchpad/cop_fwd_s.png').convert('RGB').resize((360,270)))
|
|
b=np.array(Image.open('scratchpad/cop_flip_s.png').convert('RGB').resize((360,270)))
|
|
gap=np.full((270,6,3),255,np.uint8)
|
|
Image.fromarray(np.concatenate([a,gap,b],axis=1)).save('scratchpad/cop_ab.png')
|
|
def stat(x): return "mean=%s greenfrac=%.2f"%(x.reshape(-1,3).mean(0).round(0), ((x[:,:,1]>100)&(x[:,:,0]<80)).mean())
|
|
print("forward:",stat(a)); print("flip: ",stat(b))
|
|
print("saved cop_ab.png [forward | flip]")
|