@whelsy, I appreciate your work but this Atari800
port is vastly superior to your Atari++ port.
Rpi hardware can, via dispmanx or GLES, upscale any resolution to fullscreen 1920x1080 (for example). Any raster graphics-based game/emulator can be upscaled this way: the final image is hardware-scaled to full native resolution. No need to have vector graphics (like those 3D-consoles you mention), it's a different issue you're talking about. This emulator (as any amulator or game on the Pi SHOULD DO) upscales the final output using the GPU to fullscreen thus freeing up this task from the CPU.
As for propper double-buffered and vsync-ed display, your port totally obviates these, resulting on tearing all the way. No smooth scroll is possible without those.
In the other hand, Atari800
by Andrey (the best game/emu ported I've seen on the Pi, who has understood what good emulation implies at last) shows smooth scroll in games, as it's intended in the original system.
Anyway, it's not your fault: default SDL 1.2.x is really broken on the Rpi. Double buffer is broken, vsync is impossible, sclaing has to be done in software and blitting is done in the slowest, worst way
(just measure how much time is spent in the damn blitting functions, compared to emulation itself).
I corrected the first three issues by implementing a dispmanx backend to SDL itself, look here:
I have double buffer and vsync working, and also full native resolution scaling using a hardware overlay via dispmanx interface.
...but blitting on ARM is still SLOW AS A DOG and is killing performance in every emulator and game I've tried. On X86, it uses waaaaaaay faster MMX implementation. With an OpenGL or GLES implementation, it can be simulated by using blending, I believe. (Have you gone that far, Andrey?)
But I disgress. This is how an emulator should be ported and released, period. I'm fed up with jerky and tearing graphics trying to pretend they look like the original machines, because they don't.