@mitu
Turns out I'm a complete dope.
I figured out what I've been doing.
I thought I had been setting the rendering resolution of the game.
What I had actually been setting was the Pi video output resolution over HDMI to the monitor.
So in the end I now have my games running properly. They are being rendered at 640x480 in the emulator as they should, and I'm outputting dreamcast games at 720p to get a bit more performance. Every other system I left at the default output of 1080p.