Emulation New scaling method for emulation?

Oskar.Dandy

Active Member
OP
Newcomer
Joined
Feb 4, 2015
Messages
31
Trophies
0
XP
227
Country
Australia
The DS's screen resolution of 256x192 is lower than many of the systems emulated on the DS. The Super Nintendo for instance has a 16.67% taller resolution than the DS of 256x224, which traditionally leads us to two methods of displaying a SNES image on a DS: Scaling (left), and Cropping (right).
Scaling to DS.png

Neither solution is ideal as the scaling results in garbled pixels and cropping results in important information being obfuscated. So, what can we do instead? Let's consider the raw SNES image:
RAW SNES.png
Let's crop this.png

For most SNES games, there's definitely information we can afford to obfuscate, so here I've chosen to crop away the top 4 pixels and the bottom 9 pixels. This results in a vertical resolution 211px, which we could then scale down to 192px...

211px to 192px.png

This doesn't look half bad as it's only a 9% downscale, but we can do better by selectively scaling. In most games, your eyes will focus on two things: (1) The centre half of the screen, and (2) the HUD on the top. This means there is a 27px tall area and a 106px tall area which we can preserve, and then your eyes will easily ignore any scaling in the rest of the screen.

Preserve these.png

So, I propose scaling the bottom 52px down to 45px, and then gradually scaling the 26px tall region inbetween the HUD and the centre into 14px. I stress the importance of not shrinking the entire 26px by a whopping 46% as this would squish the region too much; rather, of this 26px, shrink the bottom 13px into 8px and the top 13px into 6px.

Scaling breakdown.png

Super Metroid Scaling very nice.png

I think the results look very nice! This method preserves all of the important information whilst minimalising the effects of scaling.

Here is a comparison of all the different scaling methods, so I'd like to hear which you think looks best:

Scaling methods.png


I'm not a coder. I'm just proposing a solution.
 
Last edited by Oskar.Dandy,
  • Like
Reactions: RetrogamingAddict

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Flashbacks of my old TV that attempted something similar to generate widescreen -- arms reaching across the screen or from the side of it were quite freaky.

I would probably suggest a version of what one of the megadrive emulators used to do on the DS and allow you to move the screen or do it automatically in response to controls (if you were moving left you probably wanted to see that side anyway).
All those methods showcased are fine if you are editing a video (or indeed not fine but better than letterboxing) but for real time on a console that is both using tile size and already running close to the limit to even attempt most emulation efforts in the 16 bit world (there is a reason most special chip games don't work) it is a rather more tricky prospect.
 

Oskar.Dandy

Active Member
OP
Newcomer
Joined
Feb 4, 2015
Messages
31
Trophies
0
XP
227
Country
Australia
but for real time on a console that is both using tile size and already running close to the limit to even attempt most emulation efforts in the 16 bit world (there is a reason most special chip games don't work) it is a rather more tricky prospect.
These emulators already do scaling, so excluding certain scanlines from the scaling should be computationally cheaper since you're not manipulating the entire framebuffer
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: The only CoD game I played that I truly enjoyed was Black Ops 1, and only the single player...