Hmmm, well I wasn't using a ScreenBound in the first part of the super (State 3400). I coded the move so that the moment the first part connects, the player and opponent would both be sent to states (3401 and 3425 respectively) which then lock the camera for both on the same tick. I just tried locking it in the first part too and it doesn't fix the issue.
Just tried using binding with pos after screenpos like you suggested, it didn't seem to work. Maybe I messed up, not sure.
I'll just post the code that I have so far anyway actually:
Spoiler, click to toggle visibilty
;=========================================================================
; Part 1
;=========================================================================
[StateDef 3400]
type = A
movetype = A
physics = N
ctrl = 0
facep2 = 0
juggle = 0
velset = 0, 0
sprpriority = 1
[State 3400, Change Animation]
type = ChangeAnim
trigger1 = !time
value = 3400
[State 3400, Increment Position]
type = PosAdd
triggerall = stateno = 1100 || stateno = 1200
trigger1 = !time
y = -25
;========================< Super Indication >========================
[State 3400, Super Spark]
type = Helper
trigger1= !time
name = "Super Spark"
ID = 6510
stateno = 6510
pos = 32, -50
postype = p1
ownpal = 1
supermovetime = 9999
pausemovetime = 9999
ignorehitpause = 1
persistent = 0
[State 3400, Super Pause]
type = SuperPause
trigger1 = !time
anim = -1
time = 45
movetime = 45
sound = S6500, 0
darken = 0
p2defmul = 1
unhittable = 1
;========================< >========================
[State 3400, Set Velocity]
type = VelSet
trigger1 = animelem = 3
x = 13
y = 9
[State 3400, Voice]
type = PlaySnd
trigger1 = animelem = 1
value = 3400, 0
volumescale = 100
channel = 0
[State 3400, Sound]
type = PlaySnd
trigger1 = animelem = 2
value = 1, 2
volumescale = 100
channel = 1
[State 3400, Hit 1]
type = HitDef
triggerall = 1
trigger1 = !time
attr = S, HA
hitflag = MAF
id = 3400
getpower = 0
givepower = 0
sparkno = -1 + 0 * (var(20) := 8000)
guard.sparkno = -1 + 0 * (var(21) := 8500)
sparkxy = 0 * (var(23) := 55), 0 * (var(24) := -20)
hitsound = S200, 320
guardsound = S120, 0
p1stateno = 3410
fall.recover = 0
fall = 1
[State 3400, Change State]
type = ChangeState
trigger1 = pos y + vel y > 0
value = 3405
;=========================================================================
; Land
;=========================================================================
[StateDef 3405]
type = S
movetype = I
physics = N
ctrl = 0
facep2 = 0
juggle = 0
velset = 0, 0
sprpriority = 1
[State 3405, Change Animation]
type = ChangeAnim
trigger1 = !time
value = 3405
[State 3405, Sound]
type = PlaySnd
trigger1 = !time
value = 52, 0
volumescale = 100
channel = 4
[State 3405, Landing Dust]
type = Helper
trigger1= !time
name = "Landing Dust"
ID = 6000
stateno = 6000
pos = 0, 0
postype = p1
ownpal = 1
supermovetime = 9999
pausemovetime = 9999
ignorehitpause = 1
persistent = 0
[State 3405, Set Velocity]
type = VelSet
trigger1 = !time
y = 0
[State 3405, Set Position]
type = PosSet
trigger1 = !time
y = 0
[State 3405, Set Velocity]
type = VelSet
trigger1 = animelem = 1
x = 6
[State 3405, Multiply Velocity]
type = VelMul
triggerall = vel x != 0
trigger1 = 1
x = .85
[State 3405, No Auto Turning]
type = AssertSpecial
trigger1 = 1
flag = noautoturn
[State 3405, End State]
type = ChangeState
trigger1 = !animtime
value = 0
ctrl = 1
;=========================================================================
; Part 2
;=========================================================================
[StateDef 3410]
type = A
movetype = A
physics = N
ctrl = 0
facep2 = 0
juggle = 0
velset = vel x, vel y
sprpriority = 2
[State 3410, Screen Bound]
type = ScreenBound
trigger1 = 1
value = 0
movecamera = 0, 0
[State 3410, Set Position]
type = PosSet
trigger1 = !time
x = 145 - ceil(screenpos x)
y = -80
[State 3410, Target State]
type = TargetState
trigger1 = !time && numtarget
value = 3425
[State 3410, Target Bind]
type = TargetBind
trigger1 = time = 1
pos = ifelse((facing = 1), 145 - ceil(screenpos x), -40 - ceil(screenpos x)), 180 - ceil(screenpos y)
[State 3410, Target Bind]
type = TargetBind
trigger1 = time = 2
pos = 0, -20
[State 3410, Change State]
type = ChangeState
trigger1 = pos y + vel y > 50
value = 3411
;=========================================================================
; Part 3
;=========================================================================
[StateDef 3411]
type = A
movetype = A
physics = N
ctrl = 0
facep2 = 0
juggle = 0
velset = 0, 0
sprpriority = 2
[State 3411, Change Animation]
type = ChangeAnim
trigger1 = !time
value = 3411
[State 3411, Screen Bound]
type = ScreenBound
trigger1 = 1
value = 0
movecamera = 0, 0
[State 3411, Set Position]
type = PosSet
trigger1 = animelemtime(2) = 0
x = -10 - ceil(screenpos x)
y = 0 - ceil(screenpos y)
[State 3400, Set Velocity]
type = VelSet
trigger1 = animelemtime(2) = 0
x = 15
y = 10
;=========================================================================
; Target (3425) - 1
;=========================================================================
[StateDef 3425]
type = A
movetype = H
physics = N
ctrl = 0
velset = 0, 0
sprpriority = 1
[State 3425, Change Animation]
type = ChangeAnim2
trigger1 = !time
value = 3425
[State 3425, Screen Bound]
type = ScreenBound
trigger1 = 1
value = 1
movecamera = 0, 0