etienne bOdin
|
scrolling
Posted: Sun Mar 11, 2001 5:46 pm
|
There isn't a lot of doc about sms scrolling. I only know that there are 2 regs 0x08 et 0x09 where a value between 0..255 (X) and 0..223 (Y) must be put. I think if I put 10 to X scrool reg, the screen would be shift by 10 pixels to any direction. But if 255 all the screen if shifted ?
The screen in normal mode is 32*24 (tiles) and Video buffer seems to be 32*28, so how a horizontal scroll could be ? (and a scroll of 4 tile only on Y is possible ?)
I must be wrong anywhere (everywhere ?) and thanks to bring me good infos
Etienne
|
- Site Admin
- Joined: 25 Oct 1999
- Posts: 2029
- Location: Monterey, California
|
Posted: Sun Mar 11, 2001 6:16 pm
|
Quote > There isn't a lot of doc about sms scrolling. I only know that there are 2 regs 0x08 et 0x09 where a value between 0..255 (X) and 0..223 (Y) must be put. I think if I put 10 to X scrool reg, the screen would be shift by 10 pixels to any direction. But if 255 all the screen if shifted ?
> The screen in normal mode is 32*24 (tiles) and Video buffer seems to be 32*28, so how a horizontal scroll could be ? (and a scroll of 4 tile only on Y is possible ?)
> I must be wrong anywhere (everywhere ?) and thanks to bring me good infos
> Etienne
The pixels that are shifted out are shift in on the opposite side of the screen.
In otherwords, the scrolling is wraparound. If you write '32' to the H scroll register, the screen is offset to the right by 32 pixels, with the rightmost columns of the original display reappearing on the left.
|
PolestaR
|
Posted: Mon Mar 12, 2001 1:14 am
|
Quote > There isn't a lot of doc about sms scrolling. I only know that there are 2 regs 0x08 et 0x09 where a value between 0..255 (X) and 0..223 (Y) must be put. I think if I put 10 to X scrool reg, the screen would be shift by 10 pixels to any direction. But if 255 all the screen if shifted ?
> The screen in normal mode is 32*24 (tiles) and Video buffer seems to be 32*28, so how a horizontal scroll could be ? (and a scroll of 4 tile only on Y is possible ?)
> I must be wrong anywhere (everywhere ?) and thanks to bring me good infos
> Etienne
Yeah, you have room to scroll in the Y-Direction (4 rows) but no room for H-Scrolling. Thats where VDP register 0 bit 4(offhand0 allows you to MASK/BLANK the leftmost column allowing a one column buffer for H-scroll. To achieve a good horizontal scroll you must continuously fill that one column buffer with proper screen info. Heliophobe or Zoop will probably be able to describe more about acheiving a nice smooth hscroll, since I havn't tried it myself. Yscrolling is easier then Hscroll but you still dont have that much room to play with. On the NES you could have 2 name tables(4 if mirrored) which would allow you to map 2 screens to scroll in, but the Nes Console looks ugly so we wont even consider it again! ;)
-Jason Starr-
|