#31395 - identitycrisisuk - Fri Dec 10, 2004 7:56 pm
I'd like to start a thread on graphics effects that you think are smart, especially ones that pushed a system to do things that shouldn't really have been possible. Maybe some of genius programmers on here could offer some opinions on how they were done and it could possibly lead to learning some tricks to make cool effects on the GBA (I thought about putting this in the graphics folder but it's not specifically for the GBA).
I'm gonna start with Ranger X for the Megadrive/Genesis. It's a fairly inventive and tough shooter from a few years before the end of the MD's lifespan. It has some dodgy wireframe 3D stuff in cutscenes before each level but I was more impressed by the stuff while you were playing it. Firstly, in the following pic there's a ray of light coming in which appears to be alpha blended with the background.
http://img.photobucket.com/albums/v412/identitycrisisuk/RangerX_000.jpg
However as far as I know the MD couldn't do alpha blending and any transparency was usually done by flashing sprites on and off or having lots of holes in the sprite so that some of the background shows through. This is definately neither of these though so I wonder whether they wrote their own alpha blending or something, I don't really know much about the MD and how customisable it is. It could maybe be something greatly simplified as it is only a single block of colour being blended.
The next 3 shots illustrate a nice section with a very 3D looking background:
http://img.photobucket.com/albums/v412/identitycrisisuk/RangerX_001.jpg
http://img.photobucket.com/albums/v412/identitycrisisuk/RangerX_002.jpg
http://img.photobucket.com/albums/v412/identitycrisisuk/RangerX_003.jpg
This I might have more idea of how to do, on the GBA at least. I would guess that the original background looks like it does in the first pic, with a head on view down the tunnel. Then the background scrolling would be changed each hblank to give the impression that it's 3D. I'd guess there are two of these backgrounds as the angle of them is different in the two tunnels that will be on screen at any point. This is all assuming that the MD has similar capabilities to the GBA though, so it's still very impressive IMHO.
Anyone else got any favourite graphical effects from yesteryear?
_________________
Code: |
CanIKickIt(YES_YOU_CAN); |
#31402 - Lupin - Fri Dec 10, 2004 8:25 pm
I wonder how apex managed to render a full 3D scene in payback fluently without flickering in full color (that means they render while vblank)... the GFX in that game was most impressive to me, i didn't like the annoying sound though =(
The light might be a sprite that they turn on/off at each hblank (that would be possible on the GBA). The background might be precalculated (would require a lot of ROM space though)
_________________
Team Pokeme
My blog and PM ASM tutorials
#31410 - DekuTree64 - Fri Dec 10, 2004 9:16 pm
Ooh, that 3D background is awesome! Yes, I'd say they were just scrolling on HBlank. Street Fighter 2 for SNES did that too, on the ground.
Castlevania 4 also had some nice BG effects, like the rotating tunnel. I believe that would be done by changing the vertical scroll amount, and the horizontal scale, and then the alpha blending to give it more depth.
Not sure about the alpha blending on that screenshot though, perhaps a brighter version of the player sprite placed on top of him, and then erase all the parts outside the light? Might still be too slow for Genisis though, especially if enemies can get in the light too.
Some of my favorites are from Tales of Phantasia for SNES. Particularly the alpha-blended window-triangle technique.
Take yourself a solid BG and set it to be visible only inside the window. Then draw a triangle, storing the left/right edge pairs in an array, and HDMA that to REG_WIN0H. WIN0V should just be set to the top/bottom-most points of the triangle. Very fast, and you can alpha blend it since it's a BG, and put a pattern on it and scroll it so it looks more magical.
Heck, you could even put a real-time plasma on the triangle with GBA, that'd be the coolest.
_________________
___________
The best optimization is to do nothing at all.
Therefore a fully optimized program doesn't exist.
-Deku
#31438 - identitycrisisuk - Sat Dec 11, 2004 12:00 am
Ah yeah, I remember the floor on Street Fighter 2, it is quite a nice effect. I don't think the Megadrive SF2 had it so that makes it especially cool that Ranger X has it over a larger area probably. I have Castlevania 4 *whispers*on emulator but I haven't really got that far with it, how far in are the groovy effects?
My guess for the alpha blending in Ranger X would be a palette with slightly brighter colours. However I still don't think that can be quite right as you couldn't apply the palette to half a background tile could you? It's a paralax backdrop, if it wasn't the palette idea would probably work.
I might have to do some searching for pics of the other games mentioned, I can't quite visualise the effect being described. Post links to pics if you can, I like threads with pics of old games :)
_________________
Code: |
CanIKickIt(YES_YOU_CAN); |
#31444 - tepples - Sat Dec 11, 2004 12:20 am
identitycrisisuk wrote: |
Ah yeah, I remember the floor on Street Fighter 2, it is quite a nice effect. I don't think the Megadrive SF2 had it so that makes it especially cool that Ranger X has it over a larger area probably. |
Sonic 2 has that same style of floor. There was also a big difference from SF2 Champion Edition for Genesis to the better-looking Super SF2 for Genesis.
Quote: |
However I still don't think that can be quite right as you couldn't apply the palette to half a background tile could you? |
You can if the Genesis has windows. Does it?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#31446 - DiscoStew - Sat Dec 11, 2004 12:24 am
By the look on the 3D tunnel pics, if you look at the 2nd pic, the small little detail on the right side at the end of the left tunnel looks almost identical to the detail shown on the right tunnel with no stretching, plus the walls look like they are a solid color for the upper and lower portions. This brings me to a hypothesis that the ceiling and floor is done by HBlank, the walls are perhaps using the backplain color (if there is one) with a single change in color on one scanline, and the little details at the end of the tunnels are just normal sprites or a transparent part of the bright layer section of the background.
My hypothesis is from the GBA knowledge that I have, so I may not be correct as I don't know what the MD is capable of.
My first argument is based on what I see, as I haven't seen it in motion.
If this were to be on the GBA, all you'd need is 2 backgrounds and the backplain(not including stats), one affine wraparound background for the tunnel, and the other for the other layer.
_________________
DS - It's all about DiscoStew
#31450 - identitycrisisuk - Sat Dec 11, 2004 12:37 am
tepples wrote: |
Sonic 2 has that same style of floor. There was also a big difference from SF2 Champion Edition for Genesis to the better-looking Super SF2 for Genesis. |
Where in Sonic 2, do you mean the bonus stages? I haven't played a Sonic game in an age (discounting my sisters Sonic Advance, which made me think... meh).
tepples wrote: |
You can if the Genesis has windows. Does it? |
Err, Google says... I dunno. Quite a good list of stuff at http://en.wikipedia.org/wiki/Sega_Genesis but not down to the specifics of what you could do. I like reading up on these things occasionally though, I find the Saturn quite an interesting console too.
EDIT:
DiscoStew wrote: |
By the look on the 3D tunnel pics, if you look at the 2nd pic, the small little detail on the right side at the end of the left tunnel looks almost identical to the detail shown on the right tunnel with no stretching, plus the walls look like they are a solid color for the upper and lower portions. This brings me to a hypothesis that the ceiling and floor is done by HBlank, the walls are perhaps using the backplain color (if there is one) with a single change in color on one scanline, and the little details at the end of the tunnels are just normal sprites or a transparent part of the bright layer section of the background.
My hypothesis is from the GBA knowledge that I have, so I may not be correct as I don't know what the MD is capable of.
My first argument is based on what I see, as I haven't seen it in motion.
If this were to be on the GBA, all you'd need is 2 backgrounds and the backplain(not including stats), one affine wraparound background for the tunnel, and the other for the other layer. |
Well noticed, those little things don't change really and the rest is solid colour. However I'm now a bit confused as the technical docs say the Megadrive only had 2 scrolling backgrounds and one layer of sprites. So far we need one for the general level and two for the two tunnels if their angle looks a bit different on each, doesn't add up so I think they must be doing something else clever :s
EDIT (Again): lots of techie stuff on the mega drive from a development point of view, kinda interesting: http://fly.hiwaay.net/~jfrohwei/sega/genesis.html
_________________
Code: |
CanIKickIt(YES_YOU_CAN); |
#31458 - tepples - Sat Dec 11, 2004 12:52 am
identitycrisisuk wrote: |
tepples wrote: | Sonic 2 has that same style of floor. There was also a big difference from SF2 Champion Edition for Genesis to the better-looking Super SF2 for Genesis. |
Where in Sonic 2, do you mean the bonus stages? I haven't played a Sonic game in an age (discounting my sisters Sonic Advance, which made me think... meh). |
Emerald Hill Zone, the water in the back. It's an hblank scroll effect. Road Rash has a more sophisticated hblank effect.
Quote: |
Well noticed, those little things don't change really and the rest is solid colour. However I'm now a bit confused as the technical docs say the Megadrive only had 2 scrolling backgrounds and one layer of sprites. |
I seem to remember sprite priority on the Genesis.
Quote: |
So far we need one for the general level and two for the two tunnels if their angle looks a bit different on each |
Or one with two different pre-tilted tunnels, snapping back if you move so many pixels forward.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#31461 - DekuTree64 - Sat Dec 11, 2004 1:09 am
No, both tunnels are on the same layer. DiscoStew hit it dead on, the top/bottom of the tunnels are exactly like the street fighter floor, and the bright textured background behind them is on the same layer as well, just not modifying the scroll on HBlank for that portion. There really are no walls, it's just the backplane being visible, and the little sprites to give it a more solid look.
What's tricky though, is that as you can see on image 2/3, the distance between the 2 bright parts is a lot less than the distance between the left bright part and the left side of the tunnel. If you look closely, the bright part is the exact same width as the flat wall inbetween, giving just enough space that when the left tunnel goes offscreen, its bright part will be 100% behind the wall, and not quite peeking into the right tunnel yet, so it can be cleared out and replaced with a new tunnel just off the right side of the screen.
Or better yet, just scroll the whole BG over to where the larger empty area is on the left, and can safely scroll into view.
Very nice effect.
EDIT: Dang, Tepples just explained those 2 whole paragraphs in one sentence...
_________________
___________
The best optimization is to do nothing at all.
Therefore a fully optimized program doesn't exist.
-Deku
#31464 - identitycrisisuk - Sat Dec 11, 2004 1:33 am
Yeah, I think I get it now, kinda.
I've just been playing some Sonic 2, almost every level has some kind of Hblank effect in the background. You never really think about Sonic being particularly outstanding but I'm noticing a few nice things now I know more about how things are done. Level 2 gives the impression of more than 2 scrolling backgrounds with steel scaffolding in places, maybe done through sprites? I'm also thinking it must be able to do windowing as the transparent block colour thing gets used on the water/sewage in Sonic too. At the surface there's a flickering sprite along the top but you can see a clear line where the colour changes and it doesn't flicker underwater.
EDIT: Actually, that's more likely just a change of palette at a specific scanline, since the water surface goes across the whole of the screen.
_________________
Code: |
CanIKickIt(YES_YOU_CAN); |
#31469 - DekuTree64 - Sat Dec 11, 2004 2:14 am
Yes, there was a thread a good while back about that very effect.
The purpose of the flickering sprite is to hide the fact that it takes more than one HBlank to copy the whole new palette in, so you get some flickeryness with some colors being 'underwater' and others above. Cover that flicker with another flicker and nobody will know the difference.
_________________
___________
The best optimization is to do nothing at all.
Therefore a fully optimized program doesn't exist.
-Deku
#31477 - tepples - Sat Dec 11, 2004 4:57 am
identitycrisisuk wrote: |
I've just been playing some Sonic 2, almost every level has some kind of Hblank effect in the background. You never really think about Sonic being particularly outstanding but I'm noticing a few nice things now I know more about how things are done. Level 2 gives the impression of more than 2 scrolling backgrounds with steel scaffolding in places, maybe done through sprites? |
That's hblank effects as well, this time a vertical scroll in addition to a horizontal scroll. Sonic Advance 1 does it exactly the same way.
Quote: |
EDIT: Actually, that's more likely just a change of palette at a specific scanline, since the water surface goes across the whole of the screen. |
At least it's a palette change on Sonic Advance 1.
Playing the old 2-layer (Sega Genesis) and 3-layer (Super NES) classics helps you learn how to make the most of 4 layers (GBA mode 0) or 3 layers (GBA mode 1).
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#31494 - identitycrisisuk - Sat Dec 11, 2004 11:40 am
tepples wrote: |
Playing the old 2-layer (Sega Genesis) and 3-layer (Super NES) classics helps you learn how to make the most of 4 layers (GBA mode 0) or 3 layers (GBA mode 1). |
Definately, I've said before that I wish there were emulators with as much debug ability as Visualboy Advance for older consoles. At least I can have a look at Sonic Advance though if it still does things the same way. I'd heard that Sonic Advance had basically been programmed the same way it was back on the megadrive. I'll probably look at using palette effects if I have any underwater sections and I'd like to try those paralax HBlank effects if I start using them properly, they're really quite nice.
_________________
Code: |
CanIKickIt(YES_YOU_CAN); |
#31640 - FluBBa - Mon Dec 13, 2004 11:49 am
I've been playing with some PC-Engine games and it only got 1 background layer, still they pull of some fantastic parallax effects, like Magic Chase.
The first level has you flying above a bridge which has vertical and horizontal parallax, everything except the pillars to the bridge is just background with hblank scrolling, the pillars are normal sprites.
Now recently I've played Cotton (for the PCE Super CD-Rom), and it got loads of huge parallax effects, it uses hblank scrolling and dynamic updating of the tiles, you make group of 2x2 or 4x4 tiles and then you "scroll" the actuall tiledata at a slower pace then the background.
And that tunnel effect from Ranger-X could probably be done on the GBA with vertical parallax as well by using sprites for the sides which you just scale sideways and sher (sp?) verticaly.
_________________
I probably suck, my not is a programmer.