[gpsp] Exophase Has Done It Again! Incredible!


Aren't all of those filters likely problematic on account of the 2x bit? I.e. they interpolate extra pixels in a really cool way, yes, but only when they're at 2x the original dimensions (and therefore 4x the area, but hey).

Might well be wrong, though.
 
evol said:
@Exophase

i would like to ask a bunch of questions about 2d filters like Scale2x,2xSaI,2xBilinear,hq2x

1. what is the "fastest" filter for scaling (minimal overhead)
2. what filter produces the "best" scaling (true to original bitmap)
3. would any algorithms maybe be used in your emu ?

in my opinion Scale2x wins for being true to original but is the algorithm fast enough to be usable in the Psp or Gp2x version of your emu ?



As far as I'm aware all of those are too computationally expensive and memory bandwidth intensive to work in my emulator (or maybe even in anyone else's emulator). The filtering being discussed is the kinda that can be done in hardware, but also with overhead in just converting the colors there. Still, that only has to work on 240x160 destination pixels as opposed to 320x213 (aspect ratio correct), an increase of 78% or so pixels, and is just less work. But still a lot of work if conversion has to be done every frame.

QUOTE

Aren't all of those filters likely problematic on account of the 2x bit? I.e. they interpolate extra pixels in a really cool way, yes, but only when they're at 2x the original dimensions (and therefore 4x the area, but hey).

Might well be wrong, though.



I think that the filters do indeed scale up to 2x, so you'd have to then scale back down, either with or without filtering. Even more additional work and a lot more destination pixels (4x like you said)
 
Last edited by a moderator:
Exo, is it possible to put a 3er option in scaling menu? Unscaled is perfect, scaled to fulscreen is not very good, maybe an intermediate option will not show pixels so big ang so we will have less black blacks around screen.

¿Maybe 280x186.6 ? ¿Will this kills performance?
Thank you.
 
Exophase said:
As far as I'm aware all of those are too computationally expensive and memory bandwidth intensive to work in my emulator (or maybe even in anyone else's emulator).
I think this is probably true for any emulator on the '2x. My spectrum emulator under Windows implements Scale2x, 2xSAI, SuperEagle and Hq2x and it seriously slows down rendering even on my 1.7ghz PC - even with the highly optimised MMX asm versions.

As for realism, I would have thought that the best would be bilinear filtering - I have a filter written using integer maths in Delphi pascal, and that absolutely flies - and given that the 2x's "window" is of a fixed size, you could probably get a very fast routine running by cutting out the calculation and using consts for the scaling values.

But again, it would slow down rendering even further and we're currently seriously pushing the limit as it is - as you said, complex alpha such as the second level of Donkey Kong Country 2 drags the framerate right down.

If I might make one suggestion for graphical improvement, it would be the gamma setting of the palette used. It's far too bright atm, and makes most of the games look over saturated. The OC/Display settings menu isn't any help, as it doesn't save your display settings and won't allow you to set 0.7 gamma - 0.6 is too low, and 0.8 is too high :(

Oh, while I'm at it - Ms. Pac Man: Maze Madness freezes at the "ZOO" intro screen still, Goomba's GB emulation has serious issues, and Iridion II freezes at the end of the intro sequence (but gets a lot further in now, with the intro running at full speed).

D.
 
Last edited by a moderator:
For Exophase:

So... its possible filter "bilinear plus" in your emulator gpSP ?
 
Miika said:
It would be great if the scaling was like this:
52059.jpe Click for fullsize

And not like this:
52060.jpe Click for fullsize

But I bet scaling like that would be impossible for GP2X processor as the GBA emulation itself isn't even fullspeed >.<



I honestly prefer the 2nd pic, I'm not a fan of smoothing filters!
 
Last edited by a moderator:
I actually prefer the screen unscaled, most scaling just looks ugly but each to their own. Out of interest (and because I'm a bit sad :p) I measured the unscaled size of the screen on GP2X and it's about 2.5 inches (diagonal) which is smaller the GBA SP (2.9 inches) but larger the GBA micro which only has a 2 inch screen.
 
Rivroner said:
Exo, is it possible to put a 3er option in scaling menu? Unscaled is perfect, scaled to fulscreen is not very good, maybe an intermediate option will not show pixels so big ang so we will have less black blacks around screen.

¿Maybe 280x186.6 ? ¿Will this kills performance?
Thank you.
Just how do you expect to get a decimal pixel? Pixels cannot be fractional, they are integers and in a LCD TFT matrix cannot change size, their size is a physical constant, unlike those of a CRT.
 
Last edited by a moderator:
While I'm usually in favor of a 1:1 image, I have to admit that it's quite small on gpSP (I can't imagine how small the screen must be on the PSP version). It has me interested in seeing what a scaled image would look like at the correct aspect ratio. I'm thinking 300x200 resolution maybe? Too big and the negatives of scaling become even more visible. This might be a nice intermediate scaling option that still retains the correct aspect ratio. So, a decent scaling option for people who don't like scaling :p

Edit: Just to clarify Exophase, I've seen your post talking about 320x213 at 3:2 aspect ratio. I'm just saying if the image is a little smaller, then it will be a little sharper and less blocky.
 
I can live with the unscaled 1:1 GBA-Screen on GP2X. With black Background it looks good enough to play. Maybe there could be an unfiltered scaled option with correct aspect ratio (320x213 like Exo sayed) in the future, IF this can be done without performance lost. :)
 
sam fisher said:
Rivroner said:
Exo, is it possible to put a 3er option in scaling menu? Unscaled is perfect, scaled to fulscreen is not very good, maybe an intermediate option will not show pixels so big ang so we will have less black blacks around screen.

¿Maybe 280x186.6 ? ¿Will this kills performance?
Thank you.
Just how do you expect to get a decimal pixel? Pixels cannot be fractional, they are integers and in a LCD TFT matrix cannot change size, their size is a physical constant, unlike those of a CRT.

Well, 280x187 :D
I write 186.66666666667 because it is the exact number ;)
I suppose that it was not possible.
 
Last edited by a moderator:
Back
Top