    .ifndef WITH_CRIT_OPTION
    .equ WITH_CRIT_OPTION,1
    .endif
| Full forehand windup (raw charge >=31), including forehand one-timers.
| Backhands / quick wrist releases do not roll RNG, boost, flash or change SFX.
| FFF0B0 is a transient byte, refreshed by every real shot before power scaling.
    .ifndef WITH_CRIT_FLASH
    .equ WITH_CRIT_FLASH,1
    .endif
    .text
    .globl _start
_start:
    bra.w classify
    bra.w release
    bra.w pcm
    bra.w music
classify:
    clr.b 0xFFF0B0
    .if WITH_CRIT_OPTION
    tst.w 0xFFF0EC
    bne.s classified
    .endif
    cmpi.w #0x7FC,0x58(%a3)
    bne.s classified
    cmpi.w #31,0xFFBEDE
    bcs.s classified
    st 0xFFF0B0
classified:
    clr.w %d0
    move.b 0x6C(%a3),%d0            | replay C378 before native stat/energy scaling
    rts
release:
    tst.b 0xFFF0B0
    bne.s eligible
    .if WITH_CRIT_FLASH
    clr.w 0xFFF060                  | ordinary releases terminate an older red puck
    .endif
    move.w 0xFFBEDE,%d2
    muls.w #68,%d2
    jmp 0xC4B0
eligible:
    jmp 0x2FF400
pcm:
    lea 0x2AD400,%a1                | original15 descriptors + dedicated critical sample
    move.l 4(%a1,%d0.w),%d1
    move.l (%a1,%d0.w),%d0
    rts
music:
    cmpi.w #123,%d0                | extra SFX ID must not take the music-stop path
    beq.s done
    cmpi.w #48,%d0
    blt.s done
    jmp 0x1A304
done:
    rts
