Megadude said: Unless he totally reprogramed the games then I can't see how they would run in 720p native. Somone with more computer knowledge feel free to explain. |
I can try... longish post follows.
That's the magic of vector-based graphics being in concept resolution-indipendent, whereas raster graphics are not.
In a totally abstract way: your game uses some graphic libraries to access the features of its hardware. Thus the commands are things like "draw a triangle of vertices (1 ,1, 2.3) (1.6, 2, 4.5 ) and (1.5, 2.5, 2.5)".
Note that the resolution is not mentioned, and that those coordinates for each vertex are not "screen coordinates" but coordinates in an abstract 3d space containing all the graphic objects.
It is then up to the graphic library of the console to translate this command given by the game into actual pixels, using the GPU. In particular this is where the resolution comes into play because the GPU must render that abstract triangle into one made of the right number of pixels, and that depends on the set resolution, resulting in more or less evident "jaggies" on the triangle sides.
Up to this point, an emulator works great: it simply catches all the library calls issued by the game and uses the PC GPU to render them at a higher resolution than what the console library did with its hardware.
What does not work as well are some other components of graphics: for example some image postprocessing done using pixel shaders expects a given resolution (say, to make all the image weave as if the camera is underwater), so an emulator must find a way to deal with that part of the graphical rendering.
BTW, this resolution-indipendence has nothing to do with upscaling.
Upscaling means rendering at a lower resolution each frame, then scaling it up to the higher resolution. Since the upscaled image has more pixels, some of them aren't "original", ie they were not created by the game engine. These extra pixels are filled with colors based on the colors of the "original" pixels nearby, and there are mathematical algorithms that do a pretty good job of this, so that the final effect is "smoother".
But this is a purely 2d manipulation, frame by frame. It knows nothing of the original details of the 3d models, so it can bring to artifacts that whould not be there if the image was rendered in higher resolution right from the beginning.
In other words: if you magnify the Mona Lisa up to the size of a skyscraper, you're not getting details that Leonardo didn't put there. You're just smoothing the same amount of information onto a bigger surface.