Squidgesnes 0.393 Test


Squidge

Certified Guru
Joined
Nov 16, 2003
Messages
8,493
Location
UK
Website
Visit site
I've been playing around with the code in SS and added a new option "Raster effects". These can now be enabled as and when required (ie, all previous versions), on a tile basis, or disabled. When disabled, they can give a big speed boost for games which use a lot of them. In the games I've played, disabling the effects didn't reduce the playability of the games, and in most cases, didn't even notice they were gone.

Eg. in DKC's ship level (level 1), disabling the effects gives a ~6 fps increase, but there doesn't seem to be anything different in the graphics.

Test it out and see what it does to some other games and report back :)

If it turns out to be useful, I'll upload it to the archive (or someone else can for me :D )

Download:
http://www.squidgey.plus.com/ssnes/
 
Cool .

Is it not possible though to keep rasters and just make the rendering of them faster and more optimised? Or is that too involved with SNES?
 
DaveC posted on Feb 11 2007 at 07:54 PM said:
Is it not possible though to keep rasters and just make the rendering of them faster and more optimised?

Let me explain what rasters are on the snes... Instead of letting the screen be drawn in one go, the rom (game) changes the graphics hardware registers at certain points on the screen. This can cause various effects. Unfortunately, in order to be able to emulate these effects, the drawing of the screen has to be broken up, and some registers, when written to, will cause previous screen contents to be changed.

When the entire screen can be drawn in go without being interrupted, it can be optimized better, and thus run faster.

So to answer your question, the only way of rendering the "rasters" faster is to increase the overall speed of the graphics code, something that is not exactly easy.
 
Last edited by a moderator:
I get an extra few FPS on International Superstar Soccer with the raster effects on the lowest setting, good work!
 
I don't get it, were rasters in previous builds enabled by default and thus this new build allows so potentially important optimization, or is it a new feature that's hardly needed and that can eat up quite some time slices?
 
A_SN posted on Feb 12 2007 at 04:58 AM said:
I don't get it, were rasters in previous builds enabled by default and thus this new build allows so potentially important optimization, or is it a new feature that's hardly needed and that can eat up quite some time slices?

All previous builds did have rasters on by default.

What rasters did was to switch the pallette during horizontal re-trace to allow more colors to be displayed. This is mostly used for things like skies that have gradients or those rainbow colored gradients in other games. Megadrive used rasters to switch the pallette for "water" effects like in Sonic etc. Alot of systems use them and it is a trick to get more colors on-screen than is normally allowed. This effect does eat some time in emus, especially if they are not using very optimised renderers.

It is not really "needed" but you may loose some color effects and lower the amount of on-screen colors if they are not enabled. A few things may not look as good without them.
 
Last edited by a moderator:
Blah posted on Feb 12 2007 at 05:24 AM said:
Sorry to be pedantic but, by rasters you mean "raster effects", raster just means pixel art.

If you REALLY want to be pedantic Raster actually refers to a CRT and how it scans to create an image. Pixel art is actually technically "bitmapped graphics".

For what we are talking about here it refers to how game systems used to "cheat" to get more colors on screen and it refers to how it used the raster timing of a CRT. When a CRT would create a scanline the beam had to re-trace back to the begining of the next scan line to begin to paint the next line under the previous one. In the time it took for the beam to re-trace (thus not displaying anything) many systems used this brief "inactive" time to do an interrupt and switch the pallette to a new one to get a new set of colors. Thus the technique is called "raster interrupts" alot of times. The term is shortened to "rasters" or "raster effects" alot of times.

The Megadrive could display 64 colors. If they wanted to do effects like water in games it would then normally limit colors to 32 above and 32 below the water. That wouldn't look so good. So they do a raster interupt pallette change at the water line (during the horizontal retrace period) giving you 64 above and 64 below the water. Now you in effect are displaying 128 colors on screen even though the hardware was only designed to do 64.

Alot of times you will see sky gradients and rainbow backgrounds and they use this for those. It is a good trick because they are only using up 1 color register and are getting hundreds of colors out of it.
 
Last edited by a moderator:
DaveC posted on Feb 12 2007 at 06:48 AM said:
Blah posted on Feb 12 2007 at 05:24 AM said:
Sorry to be pedantic but, by rasters you mean "raster effects", raster just means pixel art.

If you REALLY want to be pedantic Raster actually refers to a CRT and how it scans to create an image. Pixel art is actually technically "bitmapped graphics".

Raster doesn't necessarily refer to a CRT, since a TFT is a raster screen as well. Raster = 2 dimensional grid/array of pixels.
 
Last edited by a moderator:
A_SN posted on Feb 12 2007 at 06:06 AM said:
DaveC posted on Feb 12 2007 at 06:48 AM said:
Blah posted on Feb 12 2007 at 05:24 AM said:
Sorry to be pedantic but, by rasters you mean "raster effects", raster just means pixel art.

If you REALLY want to be pedantic Raster actually refers to a CRT and how it scans to create an image. Pixel art is actually technically "bitmapped graphics".

Raster doesn't necessarily refer to a CRT, since a TFT is a raster screen as well. Raster = 2 dimensional grid/array of pixels.

Well yeah now days it includes LCDs etc. The term raster originally came from the old CRT days.
 
Last edited by a moderator:
wow, another squidgesnes release :)
now i know what i will do in the subway this morning ;)

thank you Squidge !
 
Thanks a lot Squidge!

Ok, DKC (U) 1.1 - that first level is running much better (better than Pocketsnes now) - no sound = 58-60fps, 16khz sound = 40+
(settings = showfps, craigix's ram timings, framskip auto, frame raster, audio performance hack, 250mhz)
smoothest I've been able to play this level so far. Only the startup nintendo logo is messed up a bit and the first level's sky is black apart from trees in the background. Also green graphics glitches at the number of players select screen. havent tested any further.

Super Mario Kart (U) - Smoothest experience yet again but with some heavy glitches (no show stoppers though) no sound = 34-60fps, 16khz sound = 38-43fps. Sky is messed up "green" on first map with random glitches in the top right-hand corner, also cant see the timer or what power up uv got. also cant see the menu's either. bottom half of screen is nearly black apart from a border of green in the middle (which looks like it should actually be there as you'll see characters go past). sometimes glitches appear in this bottom half too.

(settings same as above but with tile raster, frame raster shows black screen. raster on full = 22fps)

more testing to do obviously but its a nice speed boost overall. Hope you continue to work on it Squidge! :p
 
DaveC posted on Feb 12 2007 at 07:48 AM said:
[...]
So they do a raster interupt pallette change at the water line (during the horizontal retrace period) giving you 64 above and 64 below the water. Now you in effect are displaying 128 colors on screen even though the hardware was only designed to do 64.
Well genesis can't change the whole palette during one line's time, because during active display VDP can't be accessed much (or else it just stops the CPU for a while until it can accept more commands). So what Sonic and some other games do is just change 2-3 colors per line in some clever way, starting from the background colors, then sprites, etc. The whole palette changing takes ~20 lines in Sonic IIRC (and it is not changing all of it).
 
Last edited by a moderator:
Squidge posted on Feb 11 2007 at 08:23 PM said:
So to answer your question, the only way of rendering the "rasters" faster is to increase the overall speed of the graphics code, something that is not exactly easy.

Do you think this will ever happen on the GP2X (maybe by you, maybe by someone else, maybe by a group of coders working together)? Maybe the renderer in Psnes could be optimised a little? After playing that for a bit I realize that it is really nice to have the transparencies, rasters, etc in games. They just look alot better. Even if Psnes would not be as fast as SS due to the effects it is still worth it in my opinion. Stripping out all effects that made a SNES a SNES such as transparencies and rasters may be a quick easy way to get speed but sometimes it is not worth what is lost.
 
Last edited by a moderator:
I agree, that is why they are optional - for the people who prefer speed over effects, and for those who prefer the look of the original snes over speed.

To be honest, this new option was created through curiosity - I wanted to know how it would effect the emu, both in speed and quality of emulation.

You should remember however that the rendered in SS is the exact same renderer as used in DPS (they were both taken from Snes9X), the only difference is that the SS renderer is optimized for speed, and therefore causes some (sometimes unwanted) graphical effects.

There are plenty more optimizations to do yet, it is just simply finding the time to do them.
 
F-zero (U) - background glitches. No sound 40-42fps using tile setting. Sound 36-40 fps

Judging from that, the renderer needs to be about 1/3 faster before no sound is full speed at 250mhz in this mode 7 game...a lot of work for anyone!
 
Well, when I get some more motivation I'll add my next plan (don't worry DaveC, it doesn't involve disabling anything ;) ) and it'll give a few more fps. It certainly won't give a 33% increase however, so mode 7 stuff will remain slow :(
 
Back
Top