silly little rotation effect

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
silly little rotation effect
by on (#64801)
http://www.youtube.com/watch?v=SMrnxUF93HA

I was just playing around with graphics hardware.

by on (#64803)
Slow it down and it'd be a nice effect for a level on a ship.

by on (#64804)
There's a SFC game which does exactly that -- it's called Septentrion (SOS in the US).

by on (#64805)
What level?

by on (#64806)
The entire game.

EDIT: Here's an example (go to 04:45 or so).

by on (#64807)
Teen's actually doing it a little differently from Septentrion. That game runs in Mode 7 all the time, and it's OK, because it doesn't need two background layers.

Teen's game needs parallax backgrounds which is impossible in Mode 7, so he uses one of the regular 2(?)-BG modes that allow for row & column raster effects. It's not rotation as much as X- and Y- shearing.

So a better comparison would be Gynoug/Wings of Wor on the MD.

Anyway, a cool-looking effect!

by on (#64809)
ccovell wrote:
Teen's actually doing it a little differently from Septentrion. That game runs in Mode 7 all the time, and it's OK, because it doesn't need two background layers.

Teen's game needs parallax backgrounds which is impossible in Mode 7, so he uses one of the regular 2(?)-BG modes that allow for row & column raster effects. It's not rotation as much as X- and Y- shearing.

So a better comparison would be Gynoug/Wings of Wor on the MD.

Anyway, a cool-looking effect!


Great, now post your explanation on the website, http://www.atariage.com/forums/topic/16 ... i-do-this/

by on (#64814)
ccovell wrote:
Teen's game needs parallax backgrounds which is impossible in Mode 7

Unless you fake them out of sprites, as seen in Cameltry/On the Ball. That can work unless you need more than half coverage in the background.

Quote:
so he uses one of the regular 2(?)-BG modes that allow for row & column raster effects.

So it's the mode used for Tetris Attack and "Touch Fuzzy Get Dizzy" of Yoshi's Island, just with X shearing to match the Y offsets. I can sort of see the artifact here: fractional shear values update once every 8 values, just like on TFGD. Perhaps I'm just spoiled by the GBA, which has parallax mode 7 and four times the sprite overdraw but lacks offset per tile.

Quote:
So a better comparison would be Gynoug/Wings of Wor on the MD.

I believe you're referring to this. Yes, it looks like the MD has offset per 16 pixels, but I'm not sure whether that and horizontal offset per tile/line can be used at once. But how the heck did Sonic 1 do its bonus stage?

by on (#64818)
tepples wrote:
But how the heck did Sonic 1 do its bonus stage?

Sprites. Notice how the stages are designed without long straight sequences of blocks, to reduce the number of sprites sharing the same scanlines.

by on (#64823)
tepples wrote:
Slow it down and it'd be a nice effect for a level on a ship.


Like Puggsy demonstrates. although the vertical 16 pixel columns are pretty noticable it still looks pretty good in motion. 8 pixel columns on the SNES would look much nicer.

by on (#64827)
Is that how they made the Floating Island in Sonic & Knuckles too?

by on (#64834)
psycopathicteen wrote:
Great, now post your explanation on the website, http://www.atariage.com/forums/topic/16 ... i-do-this/


Naah, I'll let other people try and figure it out.

By Wings of Wor, I was referring to the first level, yeah, but especially the 5th level: http://www.youtube.com/watch?v=R5OHr9H4yrU#t=0m50s

Gunstar Heroes does it for the helicopter too. Etc. (And, er, Vectorman just totally ripped off GH, didn't it?)

by on (#64837)
I think it's really neat that you can accomplish simple affine transformations just by using Offsets Per Tile mode, combined with X scrolling. I never would have thought that this would work so well.

Looks like angles can range between -7.125 and 7.125 degrees before seeing artifacts from being too steep.

by on (#64844)
Quote:


I think it's really neat that you can accomplish simple affine transformations just by using Offsets Per Tile mode, combined with X scrolling. I never would have thought that this would work so well.

It works so well because cos(x) is close to 1 if x is close to 0, and because sin(x) is close to x if x is close to 0. (1st degree taylor devlopment).

I always had the feeling the "offset per tile" mode on the SNES went seriously under-used. Chrono Trigger's title screen, Contra III's first boss, and the elevators in Super Double Dragon's stage 1, it's all I can remember.

by on (#64847)
I've always felt the same way too. Since it was commonly used on the Genesis but not on the Snes, and tile per offset mode was unknown to the gaming public, people started beleiving the 68000 was so fast that it could rotate large backgrounds pixel by pixel in real time.


It just goes to show you, Genesis got all the badass programmers, Snes got all the dorky programmers.

by on (#64850)
psycopathicteen wrote:
Since it was commonly used on the Genesis but not on the Snes, and tile per offset mode was unknown to the gaming public, people started beleiving the 68000 was so fast that it could rotate large backgrounds pixel by pixel in real time.

Yet Mode 7 in games like F-Zero didn't have the same effect on public perception of the 65C816.

Quote:
It just goes to show you, Genesis got all the badass programmers

Or at least the ones familiar with Atari ST or the Amiga (which just turned 25).

by on (#64851)
tepples wrote:
Yet Mode 7 in games like F-Zero didn't have the same effect on public perception of the 65C816.


Thanks to Nintendo being open to the public about the Snes's Mode-7 feature, and how the 65816 already had a horribly bad reputation once the Super Nintendo came out.

tepples wrote:
Or at least the ones familiar with Atari ST or the Amiga (which just turned 25).


Probably

by on (#64852)
Quote:
Yet Mode 7 in games like F-Zero didn't have the same effect on public perception of the 65C816.

Maybe because Mode 7 was used in marketing, so that it was understood that it was a feature of the video processor. I recall having seen the term "mode 7" in one or more of those brochures they sent out to Nintendo Club members here in Sweden in the early '90s (and those were usually very low on technical details).

by on (#64855)
Konami is one of those companies who used TPO mode on the Genesis hundreds of times, but largely ignored the TPO mode on the Snes.

EDIT: I just did some math.

a 64x64 square "rotated" turns into a parallelagram that is 63.506 x 64.498 and has corners of 89.888 and 90.112 degrees. Pretty close!

by on (#64862)
Perhaps it's because offsetting had its own buffer on the Genesis VDP (because it's per 2 columns of the whole screen) but required full nametable rewrites on the Super NES PPU (because it's actually per tile).

by on (#64873)
tepples wrote:
Perhaps it's because offsetting had its own buffer on the Genesis VDP (because it's per 2 columns of the whole screen) but required full nametable rewrites on the Super NES PPU (because it's actually per tile).


When you write it into the second row of tiles of bg3 with #$20 written between scroll offsets, it scrolls the collumns whole. I don't know why I need to write #$20, it just works with that value but not with #$00. I guess I can do some playing to see what happens when I use other numbers.

by on (#64889)
Bregalad wrote:
"offset per tile"

There was at least one fortress level in Yoshi's Island that used it for platforms waving in a sinusoidal pattern. At least I think it was using offset per tile, since they froze in place when I switched that off in Snes9x.

by on (#64890)
kode54 wrote:
Bregalad wrote:
"offset per tile"

There was at least one fortress level in Yoshi's Island that used it for platforms waving in a sinusoidal pattern. At least I think it was using offset per tile, since they froze in place when I switched that off in Snes9x.


I always wondered if those were sprites or offset-per-tile mode. If it froze in place when deactivating tile-per-offset, then they were tile-per-offset.

by on (#64892)
Did anyone yet mention that Tetris Attack makes extensive use of Offsets Per Tile?

by on (#64895)
I mentioned TA.
Re:
by on (#193842)
tepples wrote:
Perhaps it's because offsetting had its own buffer on the Genesis VDP (because it's per 2 columns of the whole screen) but required full nametable rewrites on the Super NES PPU (because it's actually per tile).


Definitely this. Because the Genesis offers it in a much simpler way, offset per tile mode looks over complicated when you read the SNES doc and using it for simple column scrolling is not as obvious as on the MD.