Consider stride more when determining fb size.
Recreate framebuffers when they get bigger.

To avoid cases where they remain too small, and to make sure size always
matches up sanely.
Blit framebuf contents when resizing.

This avoids a blink when sizing up.
Cleanup some old comments/code.
Don't allow a zero framebuf stride in estimation.
Take the tallest estimate, scissor may be short.

Even if it's wider but short, it should not reduce the height of the
buffer.
Stop stretching things to the FBO size.

Instead, draw in the top corner.  This way, even if framebuffers get
smaller things stay consistent.
Correct widths in stencil upload too.
Force 481x273 to 480x272, it's seen in a few games.
When clamping height to 512, try region/scissor.
Relax display buffer / GetVfbAt() requirements.

Castlevania actually uses a display buffer of 420, it seems.  Since we no
longer allow multiple FBOs at the same address, this should be safe.
Add an experimental sync to keep real time sync.

May help input, audio, and network related lag problems.
Make the lag sync adapt to minor variance.
Don't skip alpha in 565/clut framebuffers textures.
Change CheckAlpha() to apply to any pixel data.

For example, cluts.  But not yet, just changing it here.
Detect if framebuffer clut uses alpha.

It's not a perfect check but it may allow skipping alphatests sometimes.
Merge pull request #6221 from unknownbrackets/framebuffer-clut

When rendering a framebuffer using clut, check alpha
Add UI for realtime sync option.
Fix lagsync with alternate speed set.
Avoid calling select() with an error pointlessly.

It's just a spin loop unfortunately anyway.