Re: Skywings 3D?
I believe the Super Famicom had a sound chip developed by Sony which is why there was some great music all round. Interesting how Sony was dipping toes into consoles before going big with the Playstation.
For every cock-up or failed venture made by Nintendo, the company has made some bitingly shrewd moves along the way. Hold the orthodox-looking SNES cartridge for the game Starfox in your hand and you may not realise the significance of the custom circuitry and chips contained therein. The title was Nintendo’s first big push …
This is really tangential, but watched a bit of the youtube vid and noticed a scrolling 'floor' (that's easy) and what looked like a fixed bitmap backdrop. This backdrop appeared to rotate somewhat when yer spacecraft rolled. Did some googling but only got opengl & similar hits, basically how to do it with a library, which isn't what I want, so, roughly speaking, at a low level, how is smooth rotation a bitmap done? If you can throw in scaling as well all the better.
Any links appreciated, ta.
Presumably the background was done using the SNES's Mode 7 rotatable map on a layer behind all the polygon work. So the gameplay polygons would be rendered in the frame bufer in the cartridge, then dumped into just one of the SNES's screen layers. A Mode 7 layer is placed behind it, for the horizon and backdrop, and a fixed map layer is placed in front of it for scores, shield status, lives etc.
If you want to do it on modern hardware, it would be done with two textured triangles making up one big rectangular background image, which you could then rotate and resize. The SNES's Mode 7 let you do one big flat texture, based on a tile-map, and rotate it and tilt it with perspective. Some games used it as a floor or roadway, others to make the scenery tilt and turn, others to do a big screen-sized monster.
Very technically, most modern 3D games use a giant textured ball that surrounds the player, and the sky and horizon texture is painted on the inside of that. So whichever direction you look in, you're seeing the inside of the skybox behind all the other game objects.
If you want to see 3D that doesn't, take a look at SEGA's original Daytona when you take a corner - everything on the screen tilts sideways except for the cloud texture used as the background.
Thanks for the info, I hope to look into this stuff at some point so that was useful. But question I was really after was, how is rotation/scaling of a bitmap done *in software*? Doing it in hardware or libs kind of sidesteps the 'how'. I'm rather curious because it seems to be a very heavy duty process but apparently can be done very fast.
Thanks.
At its crudest, you fill your triangle as a series of horizontal lines. And for each line, you map the end points of that line and the width of a screen pixel onto your textured bitmap. Then you copy one pixel at a time, moving the requisite distance in whatever direction across your texture bitmap each time, until you've painted a whole line of texture on the screen. Then you repeat for your next line.
It's best left to graphics hardware as if you want to do perspective properly you're dealing with quadratic equations and the like.