Which Function For Scaling/zooming?


DaveC said:
Is there no way to avoid the blurryness of this then? No way to shut off the interpolation even if you are just doing a pixel double?

Yes, you can force off by using an identity filter that use zero coefficients for all but the most recent element that it uses one for.

I was off before on coefficients I mentioned - this is a five-tap eight-phase polyphase filter so it's effectively a 40-tap (39th order) FIR.

DaveC said:
If that is the case then there should be an option not to use this or maybe a differeent method altogether should be used. What would be the advantage of using this if all you get in the end is something that reduces contrast and makes everything fuzzy. If someone wanted to use other filters (phosphor 2x etc) with this wouldn't that not work? Filtering a filter wouldn't look so hot.

Are there better options out there if you want the sharp graphics?

You should really see what kind of results this produces with properly computed coefficients before so easily writing it off. Mathematically speaking properly filtering the image is the correct way to most accurately preserve the signal. Your problem is that you've mainly only seen linear interpolation, which is a poor approximation of the bandpass characteristics you want, and you have this angry kneejerk reaction to it that you bring up constantly. The horizontal resizing you're not at all opposed to is a simple single-phase filter.

If you want to do your own custom upscaling in software then you request a full 800x480 framebuffer. This is just common sense.

DaveC said:
Also Mupen64 has a config file where you set the frame that the graphics are scaled to. If you set at 640 x 480 you get 2x (for bitmap, 3D is full res). It is kind of nice as user can set the scaling to whatever they like.

If 3D is "full res" then it's not scaling, it's just rasterization at that target.
 
Last edited by a moderator:
Exophase said:
You should really see what kind of results this produces with properly computed coefficients before so easily writing it off. Mathematically speaking properly filtering the image is the correct way to most accurately preserve the signal. Your problem is that you've mainly only seen linear interpolation, which is a poor approximation of the bandpass characteristics you want, and you have this angry kneejerk reaction to it that you bring up constantly. The horizontal resizing you're not at all opposed to is a simple single-phase filter.

If you want to do your own custom upscaling in software then you request a full 800x480 framebuffer. This is just common sense.

DaveC said:
Also Mupen64 has a config file where you set the frame that the graphics are scaled to. If you set at 640 x 480 you get 2x (for bitmap, 3D is full res). It is kind of nice as user can set the scaling to whatever they like.

If 3D is "full res" then it's not scaling, it's just rasterization at that target.
Are there examples of these results? You are right everything I have seen so far like on the PSP looks too blurry that is what I think of. If there is a better one I haven't seen it yet. Still if you are fractionally scaling you have to get a softer image with filtering.

The horizontal resizing was not terrible. In the end though I just went back to the 1:1 settings though as scrolling did ripple when it got to the spots with the uneven sized pixels. The thing was too it only did this in one direction. I assume this other method you refer to will look better than that and not ripple.

In the case of some emulators such as Picodrive, SNES etc it still doesn't seem worth the extra softness to me just to get an extra 1/8" of vertical screen size. It is pretty close to full height anyway, better to be sharp. If it is something odd like Gameboy then yeah you need to stretch it both ways.

For N64 yeah the 3D part is as you say, just renders to the target res, I was referring to the 2D bitmap parts (game text, score text,overlays). When the frame is set to full 800 x 480 and stretches to that the bitmap parts are distorted with the chunky uneven scaled pixels. When you set the size to 640 x 480 the bitmap parts are just 2X. You can see it easily in the princess's text note at the beginning of Mario64 pretty well.
 
Last edited by a moderator:
DaveC said:
Are there examples of these results? You are right everything I have seen so far like on the PSP looks too blurry that is what I think of. If there is a better one I haven't seen it yet. Still if you are fractionally scaling you have to get a softer image with filtering.

Sure there's are examples, Picodrive and psx4all on Pandora are using the scaler with 5-tap polyphase filtering.

DaveC said:
For N64 yeah the 3D part is as you say, just renders to the target res, I was referring to the 2D bitmap parts (game text, score text,overlays). When the frame is set to full 800 x 480 and stretches to that the bitmap parts are distorted with the chunky uneven scaled pixels. When you set the size to 640 x 480 the bitmap parts are just 2X. You can see it easily in the princess's text note at the beginning of Mario64 pretty well.

There's no "3D part" and "2D part", it's all just texture mapping, which uses bilinear filtering (or nearest neighbor), btw.
 
Last edited by a moderator:
This looks good for scaling SNES to a 4:3 ratio. Simple 2X integer scaled the image, then bilinear stretch it to 640 x 480. Don't need this for other consoles that have matching 4:3 ratio resolutions.

15qart5.jpg
 
Exophase said:
Sure there's are examples, Picodrive and psx4all on Pandora are using the scaler with 5-tap polyphase filtering.
Actually PD doesn't have that yet.
 
Last edited by a moderator:
notaz said:
Actually PD doesn't have that yet.

Ha, never mind then!

Guess wait for the Temper release soonish to see another example (please don't start nagging me about this though ;p)
 
Last edited by a moderator:
Exophase said:
Sure there's are examples, Picodrive and psx4all on Pandora are using the scaler with 5-tap polyphase filtering.

There's no "3D part" and "2D part", it's all just texture mapping, which uses bilinear filtering (or nearest neighbor), btw.
Well you probably haven't seen PSX4all, do you have a Pandora yet? PSX4All looks blurry. It is actually pretty awful looking for bitmapped parts like text HUDs etc. it kills contrast and detail just like bilinear does. While it may be doing it differently the result is the same - blur and lowered contrast.


You are wrong on the N64 I am afraid. I have tried different games. Some are as you say but many others use regular bitmap overlays. I know it because I changed the settings and saw the difference. If you look at Mario 64 the score etc are just 320 x 240 as the pixels are still chunky while the 3D part is rendering higher at native resolution of the pandora screen. I would screen capture it to show you but I don't know how to do it.

notaz said:
Exophase said:
Sure there's are examples, Picodrive and psx4all on Pandora are using the scaler with 5-tap polyphase filtering.
Actually PD doesn't have that yet.
Hopefully you will include an option to shut it off and just use straight 2X mode if filtering is implemented or Picodrive will be ruined. Really 448 is close enough to 480. It doesn't seem worth the blurr, loss of contrast, and irregular pixels for a tiny bit of height.
 
Last edited by a moderator:
You are wrong on the N64 I am afraid. I have tried different games. Some are as you say but many others use regular bitmap overlays. I know it because I changed the settings and saw the difference. If you look at Mario 64 the score etc are just 320 x 240 as the pixels are still chunky while the 3D part is rendering higher at native resolution of the pandora screen. I would screen capture it to show you but I don't know how to do it.
I'm sure Exophase knows this. Since the N64 can be HLE'd successfully i can render the polygons at whatever resolution i want. All textures are then stretched over these polygons, AKA textured mapped. The textures will be bilinearly or nearest neighbor filtered depending on what the games selected for that texture (the N64 had bilinear filtering aswell), i can also have some form of anisotropic filtering .... if the SGX driver ever supports it.

One more question, Can the GLES2 driver be pointed at this framebuffer?
 
DaveC said:
Well you probably haven't seen PSX4all, do you have a Pandora yet? PSX4All looks blurry. It is actually pretty awful looking for bitmapped parts like text HUDs etc. it kills contrast and detail just like bilinear does. While it may be doing it differently the result is the same - blur and lowered contrast.

I do have a Pandora, and I haven't used psx4all - from what I understand it's not using integer scaling. I've only done 2x2 scaling with Temper so far, and as far as I can tell it's not just duplicating pixels but is slightly softening them, which IMO looks very good - I think you'll find that at the very least it looks much more like a CRT this way than pixel duplication would (which is increasing the power density of the signal). Right now I have no intention of doing my own scaling so if you don't like it you have to wait for the taps to be exposed to the video system; if a bunch of people complain I might change my mind but before going apeshit wait and see for yourself how it looks to you.

DaveC said:
You are wrong on the N64 I am afraid. I have tried different games. Some are as you say but many others use regular bitmap overlays. I know it because I changed the settings and saw the difference. If you look at Mario 64 the score etc are just 320 x 240 as the pixels are still chunky while the 3D part is rendering higher at native resolution of the pandora screen. I would screen capture it to show you but I don't know how to do it.

That just means that those textures are lower resolution dude. Which makes sense since they were meant to be displayed at 1 to 1 pixel ratio. There's no "regular bitmap overlays" in N64 (unless the game makers are insane and are drawing them using the CPU), everything is a textured primitive.
 
Last edited by a moderator:
Adventus said:
You are wrong on the N64 I am afraid. I have tried different games. Some are as you say but many others use regular bitmap overlays. I know it because I changed the settings and saw the difference. If you look at Mario 64 the score etc are just 320 x 240 as the pixels are still chunky while the 3D part is rendering higher at native resolution of the pandora screen. I would screen capture it to show you but I don't know how to do it.
I'm sure Exophase knows this. Since the N64 can be HLE'd successfully i can render the polygons at whatever resolution i want. All textures are then stretched over these polygons, AKA textured mapped. The textures will be bilinearly or nearest neighbor filtered depending on what the games selected for that texture (the N64 had bilinear filtering aswell), i can also have some form of anisotropic filtering .... if the SGX driver ever supports it.

One more question, Can the GLES2 driver be pointed at this framebuffer?
I know this but again I am not talking about the textures. In Mario 64 for example the lives counter etc bitmaps on the screen are all still low res regardless of the polygons. If I stretch to 800 x 480 the bitmaps get more blocky while the polygons are still 1:1. In the beginning look at the note from the princess. You can se how the stretching effects the text. If I set to 800 x 480 it is more distorted. When I set to 640 x 480 it looks right as it is just 2X.
 
Last edited by a moderator:
I know this but again I am not talking about the textures. In Mario 64 for example the lives counter etc bitmaps on the screen are all still low res regardless of the polygons. If I stretch to 800 x 480 the bitmaps get more blocky while the polygons are still 1:1. In the beginning look at the note from the princess. You can se how the stretching effects the text. If I set to 800 x 480 it is more distorted. When I set to 640 x 480 it looks right as it is just 2X.
Haha man we're just running in circles :) . Exophase is correct, All rendering to the screen in mupen64plus is via opengl.... its all texture mapped polygons.
 
Exophase said:
I do have a Pandora, and I haven't used psx4all - from what I understand it's not using integer scaling. I've only done 2x2 scaling with Temper so far, and as far as I can tell it's not just duplicating pixels but is slightly softening them, which IMO looks very good - I think you'll find that at the very least it looks much more like a CRT this way than pixel duplication would (which is increasing the power density of the signal). Right now I have no intention of doing my own scaling so if you don't like it you have to wait for the taps to be exposed to the video system; if a bunch of people complain I might change my mind but before going apeshit wait and see for yourself how it looks to you.

That just means that those textures are lower resolution dude. Which makes sense since they were meant to be displayed at 1 to 1 pixel ratio. There's no "regular bitmap overlays" in N64 (unless the game makers are insane and are drawing them using the CPU), everything is a textured primitive.
Well maybe just try PSX to see. It looks fuzzy.

Well if in Temper you like soft blurry graphics that is up to you, it is your emu you will do what you want with it. (looking more like the CRT as far as sharpness is not necessarily a good thing) It is too bad you did all of that good work on it only to have it look a blurry mess in the end though. It looks like the Pandora will be one of the worst systems for emulation since the PSP if everyone goes to overfiltered blurr-mode. That is too bad. Oh well at least I have Temper on the Wiz, that will be sharp forever :)

I suppose on the N64 you would know.
 
Last edited by a moderator:
Sigh, whatever. I asked you to do one simple thing, and that is to wait for it before you condemn it, and you can't even do that much. Oh well.

EDIT: Let me just say I'm tired of your attitude on this - not really because your presentation is on the immature side, which it is, but because you're being completely unfair. In your mind everything is either PSP or it isn't PSP. I've seen a lot of fractional scaling on PSP (gpSP is really nothing without it) and the scaling here is a) hitting a higher resolution target and B) using a much better filter and is much more subtle than you think.

By the way, I don't know how you can say that looking more like a CRT is "not necessarily a good thing" and still have a high opinion of phosphor-2x which is designed specifically to look like a CRT as much as possible.
 
Well I hope people sort out some scaling options in the amiga emulator because at the moment you cant fit a lot of PAL games at all. I would rather have a slight bit of blur than miss part of the screen.
 
Some pictures to illustrate the problems of the Pandora's screen for Amiga games (for people who don't know much about Amiga games).


1) Games using the full PAL resolution of 320x256 pixels, like e.g. SWIV, Superfrog, etc. are cutoff when pixels are just doubled:

2qaiys7.png


By either stretching the 320x256-pixel original to use the 480 pixels height or shrinking the 640x512-pixel doubled screen to 480 pixels height (and stretching/shrinking by the same amount horizontally to keep aspect ratio) it'd look like this:

24lpsie.png



2) Games using only 320x200 pixels, like e.g. Lotus, Hunter, Stunt Car Racer, Wings, etc., which are quasi in "widescreen" 16:10-format (they always had black bars on top and bottom of normal 4:3-screens):

2zimr11.png


A lot of unused space here. So let's just scale the 320x200 pixels up to 384x240 pixels (if the screen resolution is set to 400x240) or let's stretch the 640x400 pixels to 768x480 pixels (if the screen resolution is set to 800x480):

35it101.png


In this case the bars on the side are so thin one could even opt to stretch to use the full screen width which would almost make no difference for aspect-ratio.


There are also quite a few games like Turrican 3 and Arcade Pool which use a resolution of 320x240 pixels - of course those automatically fit perfectly in height just by having their pixels doubled (quadrupled to be exact).


Btw., some other games also use quite unique resolutions. Turrican uses 215 pixels height, Turrican II uses 216, Pinball Dreams uses 261 (overscan) and Project X uses 285(!).
So an autozoom-feature would be the optimal solution. PSPUAE has this implemented - the result always looks great on the PSP's 480x272-pixel lcd (sadly too many games perform poorly on the PSP).
 
john4p said:
Some pictures to illustrate the problems of the Pandora's screen for Amiga games (for people who don't know much about Amiga games).

In this case the bars on the side are so thin one could even opt to stretch to use the full screen width which would almost make no difference for aspect-ratio.

There are also quite a few games like Turrican 3 and Arcade Pool which use a resolution of 320x240 pixels - of course those automatically fit perfectly in height just by having their pixels doubled (quadrupled to be exact).

Btw., some other games also use quite unique resolutions. Turrican uses 215 pixels height, Turrican II uses 216, Pinball Dreams uses 261 (overscan) and Project X uses 285(!).
So an autozoom-feature would be the optimal solution. PSPUAE has this implemented - the result always looks great on the PSP's 480x272-pixel lcd (sadly too many games perform poorly on the PSP).
The straight 2X looks best and sharpest in your images. Ok so it doesn't use every last pixel on the screen, so what? at least it is sharp. The fractional filtered ones look terrible and blurry. Look at the text. The pixels are distorted due to the stretching. In the Swiv example the horizontal lines will ripple as they come in and out of phase. Look at how some are blurred out and some are not.

Not all games were PAL, many (most?) weren't. It will still be better if options not to fractional scale would be included. Since Amiga was a computer too and some may want to use application type things with text that would look awful when using that fractional scale. The 384x240 one looks the absolute worst of all of those, YUK! I don't see how anyone thinks that looks good. The text is distorted and blurry, the pixels are uneven. Yeah you may as well make that fullscreen as it couldn't look any worse at that point.

Autozoom would only be the best option if you don't care how the image looks.
 
Last edited by a moderator:
Well, I used MS Paint to "scale" the images.

Just to show screen dimensions. With proper hardware-scaling the results will look much better.
 
Iorgy77 said:
I want to see the whole game, not bits cut off so it can look sharp.
That is why it should have options, not all parts of the world were on the PAL standard.

And for NTSC games it will look sharp AND display the whole game without the fractional stretch..
 
Last edited by a moderator:
Back
Top