MSX horizontal scolling VS NES horizontal scrolling

Страница 2/3
1 | | 3

By Metalion

Paragon (1561)

Аватар пользователя Metalion

25-03-2009, 07:15

SLotman, you only need one VRAM page to do the scrolling ...
The page that scrolls loops on itself, from line 0 to line 255.
You only need to feed the scroll in the invisible lines area, either from VRAM or from RAM.

The only downside I see from MSX2 vertical scrolling is that all sprites blink once they reach that special line (can't remember the number right now, but it is between 212 and 255).

By SLotman

Paragon (1240)

Аватар пользователя SLotman

25-03-2009, 08:19

Uh? You could just place the sprites on the off page, and build the new screen on the invisible lines? Usually, those are lines 212-255. No need to relocate sprites and stuff.
Still, if you scroll the page, sprites are scrolled too, so you have to offset them to "stay" at the same screen coords they should be at the first place.

It's a waste of resources, specially compared to how scroll is handled on NES and on SMS - SMS has even a simple screen split "flag" on the VDP, which "fixes" the top xx lines (don't remember exactly how many) on screen, while the rest can be scrolled at will!

The only downside I see from MSX2 vertical scrolling is that all sprites blink once they reach that special line (can't remember the number right now, but it is between 212 and 255).

That's why sprites must be relocated to other VRAM area when you reach that line - to avoid that "blink", and then re-located back after... this consumes precious VDP/Z80 time, and shouldn't be there - thanks God MSX2+ horizontal scroll doesn't suffer from those problems Smile

By Hrothgar

Champion (479)

Аватар пользователя Hrothgar

25-03-2009, 12:15

I don't understand some arguments here.

1) The sprite 'blink' is not there because sprites are relocated to a different VRAM page, and cannot be avoided by relocating them to another VRAM page, but is due to legacy MSX1 support giving special meaning to one specific Y-coordinate. In effect when doing vertical scrolling you cannot set sprites to one particular Y-value. "Thank god MSX2+ scroll doesn't suffer" > I would be surprised if this particular issue was handled differently on MSX2+.
2) The 'precious VDP/Z80 time by offsetting sprites when doing vertical scroll' > In most games I know sprites are moving objects anyhow (otherwise just use background pictures) so have to be repositioned on every frame in the first place. I don't see how applying one integer addition to the calculation makes so dramatic a difference for the CPU, whereas VDP time stays the same by updating two coordinates. 'Static' sprites could be used to have an overlaid scorebar on top of moving background, but that's not really common on MSX as opposed to some other platforms.

Just a thought: how feasible would it be to have (slow) smooth horizontal scrolling on MSX2 using only one VRAM page? It might work by copying one horizontal strip at a time and managing X-offset with a line interrupt. You'd need sprite border masking if you want to avoid wobbly edges but the idea could work.

By MäSäXi

Paragon (1884)

Аватар пользователя MäSäXi

25-03-2009, 20:39

The only downside I see from MSX2 vertical scrolling is that all sprites blink once they reach that special line (can't remember the number right now, but it is between 212 and 255).

1) The sprite 'blink' is not there because sprites are relocated to a different VRAM page, and cannot be avoided by relocating them to another VRAM page, but is due to legacy MSX1 support giving special meaning to one specific Y-coordinate.

You are talking about MSX-1 sprite Y-coordinates 208 and 209. Smile

208 --> All sprites whose sprite plane number is bigger than sprite NN has, will disappear.

209 --> Sprite NN disappears.

Just a thought: how feasible would it be to have (slow) smooth horizontal scrolling on MSX2 using only one VRAM page? It might work by copying one horizontal strip at a time and managing X-offset with a line interrupt. You'd need sprite border masking if you want to avoid wobbly edges but the idea could work.

Is there any MSX2 games which have wobbly edges? I would like to see how bad (or "bad"?) it looks.

By wolf_

Ambassador_ (9983)

Аватар пользователя wolf_

25-03-2009, 20:44

I only know Space Manbow..

..and the Royal Art promo at Genic Picturedisk 7.

By hap

Paragon (2041)

Аватар пользователя hap

25-03-2009, 21:58

wolf_ also knows Pirate Ship Higemaru:
http://www.youtube.com/watch?v=ezSVzGYp4vs

By msd

Paragon (1474)

Аватар пользователя msd

25-03-2009, 22:35

By msd

Paragon (1474)

Аватар пользователя msd

25-03-2009, 22:36

By tonigalvez

Champion (310)

Аватар пользователя tonigalvez

25-03-2009, 23:55

http://www.youtube.com/watch?v=lNrNr1xbljY

Msx 2 can do a very nice scrolls.

By Hrothgar

Champion (479)

Аватар пользователя Hrothgar

26-03-2009, 10:38


Is there any MSX2 games which have wobbly edges? I would like to see how bad (or "bad"?) it looks.

Space Manbow doesn't have border masking on MSX2 thus has moving edges. Also the recently released Pleasure Hearts. But these games still adjust the whole screen height 1px / 16px at a time. My proposal would also add the edge-filling on the current visible frame so you would see blocks getting added one at a time instead of a whole 16px wide strip at a time if you don't use sprites to mask.

When looking Youtube videos the lack of border masking looks ugly and distracting as you have a small video screen you're watching. But on a fullscreen MSX game I find it less distracting myself as the action takes place in the center of the screen and you're really not continuously watching those edges.

I have to add, when we're discussing the border-ugliness of moving edges, that also the NES shows artefacts at the edges of the screen when scrolling. This didn't stop the system from becoming wildly popular, nor did the pervasive sprite flickering you also saw on that system. MSX development has always been much more conservative in trying to avoid these side effects, in effect sacrificing game speed and action for a bit of perceived polish.

Страница 2/3
1 | | 3