I wanted to add that it is possible to use certain shaders that add a little horizontal blur (just horizontal) to get rid of non-integer horizontal scaling issues like rainbow banding or scroll wriggling, they dont affect speed at all. For all consoles I use:
blurs/blur5fast-horizontal.glsl
And only for megadrive:
blurs/blur7fast-horizontal.glsl
because banding and dithering in megadrive are still there with blur5. Still, with the raspi composite they look great, more crisp than original megadrive (i have one to compare)

Both set with:
Filter: non linear
Scale: 3x

But the guy I mentioned uses other, maybe its even better i didnt try yet, he says It calculates better non integer width (256 for nes snes pcengine, 304 most neo geo, 384 cps, etc. arent integers into 720 Raspberry native horizontal res)