Thanks to Winane and/or Cadicle for telling me to use !holda to detect a release. Although I didn't use any of the code they presented to me. I hope this is the last time I encounter this thread.
Place this somewhere near the top of statedef -1 - before any controllers that depend on negative edge.
[State -1, Negative Edge]; - Reset // Release // Hold
type = null
trigger1 = var(9)&4032
trigger1 = (var(9):= 0)
trigger2 = var(9)
trigger2 = (var(9):= var(9) +64*(var(9)&1 && command != "ha") +128*(var(9)&2 && command != "hb") +256*(var(9)&4 && command != "hc") +512*(var(9)&8 && command != "hx") +1024*(var(9)&16 && command != "hy") +2048*(var(9)&32 && command != "hz")) - var(9)
trigger3 = var(9):= var(9)-(var(9)&63) + 1*(command = "ha") + 2*(command = "hb") + 4*(command = "hc") + 8*(command = "hx") + 16*(command = "hy") + 32*(command = "hz")
;above should allow holding to be always updated
;trigger3 = !(var(9)&4032)
;trigger3 = var(9):= 1*(command = "ha") + 2*(command = "hb") + 4*(command = "hc") + 8*(command = "hx") + 16*(command = "hy") + 32*(command = "hz")
trigger1's detect if keys were released in the last tick, but unused and therefore reset.
trigger2's detect if the keys were held the last tick and then checks if any were released during the current time frame.
trigger3's detect which keys are being held, but only if no keys were released in this time frame. *coughs. Crap just found a one tick fault. Just ignore that you ever saw that. Maybe removing trigger3,1... ???
three simultaneous kicks released: var(9)&448=448
three simultaneous punches released: var(9)&3584=3584
combo of two simul kicks: (var(9)&192=192) || (var(9)&384=384) || (var(9)&320=320)
combo of two simul punches:(var(9)&1536=1536) || (var(9)&3072=3072) || (var(9)&2560=2560)
weak punch and kick: var(9)&576=576
medium punch and kick: var(9)&1152=1152
fierce punch and kick: var(9)&2304=2304
But wait... you don't have any motions, yet. Include a three way release command, like so:
[Command]
name = "KongouKokuretsuzan"
command = ~D, D, D, a + b + c
time = 18
[Command]
name = "KongouKokuretsuzanR"
command = ~D, D, D,~a
time = 18
[Command]
name = "KongouKokuretsuzanR"
command = ~D, D, D,~b
time = 18
[Command]
name = "KongouKokuretsuzanR"
command = ~D, D, D,~c
time = 18
Put it together and:
[State -1, Kongou Kokuretsuzan]
type = Changestate
value = 3700
triggerall = command = "KongouKokuretsuzan" || (command = "KongouKokuretsuzanR" && var(9)&448=448)
triggerall = statetype = S
trigger1 = var(8) && !(var(8)&16)