Nk's New Snes Emulator


Squidge posted on Jul 16 2006 at 01:17 PM said:
The problem with transparencies isn't calculating the colors, it's drawing the backgrounds.

Eg. a standard screen could have 4 backgrounds, this is the equivalent of drawing a screen four times, one screen over the top of the previous to generate the final result.

With transparencies, this can double to 8 backgrounds. You draw the first four in one buffer, and the second four in another. Once you have the two finished results, you subtract one screen from the other to get the transparency effect.

It's this additional drawing that causes transparencies to be slow.

There have been attempts to try and not bother drawing the additional backgrounds, but without actually drawing them, it becomes difficult to find out which parts of the screen are supposed to be transparent. If the snes simply said "render this as x% transparent", it would be childs play, but it doesn't; it uses color subtraction and addition (as described above), which is a lot more complicated.

I skimmed through the MagicEyes documentation, and it looks like it can do multiple surfaces together, including alpha-blending. Is this any use at all, or is it too general?

I was hoping it might actually do almost all of it, until I think you mentioned that people could change the pallette during drawing (ouch), because it also handles palettes. Oh well.
 
Last edited by a moderator:
Noticed a couple things with this emu.

- slight graphic tearing in fire pro (this was in the snes9x ver on pc too.)
- no fullscreen
- good speed with out sound

Oh yeah and Super Turrican runs at 12fps on Squidgesnes and 25fps on this emu! Weird!
 
bacteria posted on Jul 17 2006 at 01:58 PM said:
When the game goes fullscreen, and we get another 10-20FPS extra, this should be fullspeed, which will be fantastic. Good work!

It is almost fullscreen now. What is it with you people and your shitty looking scaling that you want so much. Why do you need to make stuff look like rubbish?
 
Last edited by a moderator:
DaveC posted on Jul 17 2006 at 03:09 PM said:
It is almost fullscreen now. What is it with you people and your shitty looking scaling that you want so much. Why do you need to make stuff look like rubbish?
Ooh... I know this one... it's... subjectivity.

Personally, I thought I'd hate to see a stretched SNES display, but having played with such a system quite substantially now on another platform, I have actually got used to it. Making it configurable is obviously the way to go, although the expression "you can't please all the people all the time" springs to mind, with you being its guarantor of validity ;)
 
Last edited by a moderator:
I looked at the source, and it seems to me that the mmu hack is not correctly applied (and the stdout printf confirm it). So, an other 10fps increase may be possible. Unfortunatly, the source seems incomplete :(
 
pepone posted on Jul 17 2006 at 03:47 PM said:
I looked at the source, and it seems to me that the mmu hack is not correctly applied (and the stdout printf confirm it). So, an other 10fps increase may be possible. Unfortunatly, the source seems incomplete :(
If I was guessing, I'd say that the provided source was a patch to the old one.

The old source can be got here:

http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,46,907
 
Last edited by a moderator:
critical posted on Jul 17 2006 at 04:59 PM said:
pepone posted on Jul 17 2006 at 03:47 PM said:
I looked at the source, and it seems to me that the mmu hack is not correctly applied (and the stdout printf confirm it). So, an other 10fps increase may be possible. Unfortunatly, the source seems incomplete :(
If I was guessing, I'd say that the provided source was a patch to the old one.

The old source can be got here:

http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,46,907
Yes I saw that just after my post :D. I'll look at it if I find some times :)
 
Last edited by a moderator:
andys posted on Jul 17 2006 at 09:54 AM said:
Squidge posted on Jul 16 2006 at 01:17 PM said:
The problem with transparencies isn't calculating the colors, it's drawing the backgrounds.

I skimmed through the MagicEyes documentation, and it looks like it can do multiple surfaces together, including alpha-blending. Is this any use at all, or is it too general?

The problem with that is that:
  • The SNES can change the background format, palette, number of colors, etc, on every scanline via H-DMA, so every background would have to be redrawn anyway
  • The extra surfaces on the mmsp2 are, as far as I'm aware, not available in RGB modes
 
Last edited by a moderator:
Squidge posted on Jul 17 2006 at 04:30 PM said:
andys posted on Jul 17 2006 at 09:54 AM said:
Squidge posted on Jul 16 2006 at 01:17 PM said:
The problem with transparencies isn't calculating the colors, it's drawing the backgrounds.

I skimmed through the MagicEyes documentation, and it looks like it can do multiple surfaces together, including alpha-blending. Is this any use at all, or is it too general?

The problem with that is that:
  • The SNES can change the background format, palette, number of colors, etc, on every scanline via H-DMA, so every background would have to be redrawn anyway
  • The extra surfaces on the mmsp2 are, as far as I'm aware, not available in RGB modes

Hrm, they don't make it easy do they!

From the documentation, I thought that it handled it in 8bit paletted and 15bit mode. But I only skimmed it briefly. Do you need more than 15 bit mode for the SNES?
 
Last edited by a moderator:
You can struggle along with an 8-bit mode, so 15-bit is more than enough.

However, the additional displays are YUV, not RGB, like I said above. Means an additional conversion step which wipes out any performance increase the multiple buffers give you.
 
DaveC posted on Jul 17 2006 at 01:09 PM said:
bacteria posted on Jul 17 2006 at 01:58 PM said:
When the game goes fullscreen, and we get another 10-20FPS extra, this should be fullspeed, which will be fantastic. Good work!

It is almost fullscreen now. What is it with you people and your shitty looking scaling that you want so much. Why do you need to make stuff look like rubbish?
Same reason everyone in the UK fills their screen on their widescreen television, rather than having blank areas on it (4:3). :eek: Nice to have the option in a menu to enable/disable please. :)
 
Last edited by a moderator:
Squidge posted on Jul 17 2006 at 06:12 PM said:
You can struggle along with an 8-bit mode, so 15-bit is more than enough.

However, the additional displays are YUV, not RGB, like I said above. Means an additional conversion step which wipes out any performance increase the multiple buffers give you.

On 13.4.2.4 (phew) of the MP2520F manual thing on the wiki, it seems to indicate that it supports 5 layers (or blocks of RGB data that can be overlayed, so not just a YUV plane).

It looks like you can then layer this over a YUV plane if you so choose as well.

It's not exactly obvious however if this is the case, I don't know also how you program this at all (yet).

Am I totally misreading it?

(Page 343 of the mega PDF)
 
Last edited by a moderator:
This is great, now I can play through all those japanese picross games without the graphical glitches present in squidgesnes, that could take me years :) Thanks...
 
DaveC posted on Jul 15 2006 at 06:52 PM said:
Vollgasasi posted on Jul 15 2006 at 01:05 PM said:
it's great to have another good snes emulator... didn't davec say it's impossible to have transparencies... shhhheeessshhh


I never said it was impossible to have transparencies.
That's a lie.

Hahaha, there are literally four pages of results in a search for posts with DaveC complaining about the lack of transparencies. Mind you there are two pages of me complaining about DaveC.
 
Last edited by a moderator:
He said "there will never be transparencies", not "probably never".

That may not be saying they're impossible in theory, it is saying they can't happen which is effectively the same thing.
 
LHC posted on Jul 20 2006 at 05:04 PM said:
it is saying they can't happen which is effectively the same thing.
no it isnt. Saying there will never be something and saying that something is impossible are two completely different things.
 
Last edited by a moderator:
What makes me laugh the hardest is that he said PocketPC and Palm emulation of the SNES was faster. It's horrifically slow even on a 600 MHz XScale processor, and that's a 300 MHz ARM9 in terms of equivalent performance. I know; I've tried it. Although, PocketPC/Palm emulation scenes are a disaster all-around...

DaveC still thinks SquidgeSNES needs to be 'Overclocked to the max' to run Super Mario World, and it'll still be choppy-- see the discussion of that youtube SNES emulation comparison video. When in actuality, it runs at ~60 FPS with nearly no overclocking.
 
Back
Top