I posted this on the Mega Man Discord, but I wanted to confirm it here with you folks. This is where I'll be submitting my run, after all!
So, let's talk definitions. What exactly constitutes a zip? Clearly this does:
But what about this?
You can't see it, but here, Mega Man pops up from 94.08 to 94.00--3% of a pixel. Seems like pretty standard behavior for the collision code, if you ask me. But before you answer, look at this:
A lot of jumps in this run end up looking like this. You clip inside the block by less than half a pixel, then get pushed out on the next frame. Should this be considered a zip? Redoing large portions of my run to be slower just so I can avoid this particular edge case seems absurd. Especially when you consider realtime runs; how can a judge tell if I popped up 3% of a pixel on a particular jump, or if I landed "normally?"
My proposed definition is this: if the floor/wall ejects you
less than one whole pixel, the collision code is behaving as normal, and you are not zipping. This definition allows me to get good subpixel precision in my jumps, while banning the intended exploit: jamming your body into the ceiling and blasting off at inane speeds. It also provides reasonable criteria for RTA judges to look for in any ambiguous runs.
Regardless of whatever consensus is reached here, I've decided to jump for an extra frame in the particular scene that I showed, to circumvent the issue. I'm waiting for that Item 2 to spin up, so it doesn't really matter. I just wanted to clear this up before moving on.