streaming planes new thread

Messages
20
when streaming planes you have to stream new tile data in column's like this, to make a whole level otherwise the tile map will loop
streaming planes
so i tried to do this but i got stuck on how to load a column, so i asked some people and someone told me you load it in a vertical row but another document said vertical scrolling allows you to load a two tile wide column to be loaded, but then how would you scroll that horizonataly \(0‿0 )/
i have no idea, so if someone could help that would be great (*´︶`*)

here is the link to the document
vdp link
go down to the section were i explains vertical and horizontal scrolling
 
Messages
20
.DrawLeft1:
move.l (a2)+,(a1) ; Draw column tile
dbf d0,.DrawLeft1 ; Loop until section is drawn

would this be drawing a tile directly underneath the one above?
 
Last edited:
Upvote 0

Nothing Left But Faith

There's nothing left but faith
Member
Messages
77
Auto-increment is set to 0x80 beforehand, so after each word written, it increments the VRAM address by 0x80. 0x80 is how many bytes there are in a row when the plane is 64 tiles wide, so it's skipping to the next row. I've explained this before in this thread.
 
Upvote 0
Messages
20
Let's say that the width of the plane is 64 tiles. The size of a tile ID in bytes is 2 bytes, so the stride of the plane would be 128 bytes. Setting the auto-increment value to that would make it so that when you write a tile ID, it will increment the VRAM address by that amount automatically, and you'll end up on the tile immediately below that. The reason why I say that the width of the plane must be < 128 tiles, because then the stride would be 256 bytes, and that won't fit in the auto-increment register, since that's outside the byte range (0-255).

i think it was this
 
Upvote 0

Nothing Left But Faith

There's nothing left but faith
Member
Messages
77
I've already explained it in this thread multiple times.

WzzACGm.png


Tiles in a plane in VRAM are arranged left to right, top to bottom. The tile after the last tile in a row is the first tile in the next row. Incrementing the VRAM address after writing a tile ID by the number of bytes per row (number of tiles per row * 2) will take you to the next row.

This is the last time I'm explaining this.
 
Last edited:
Upvote 0
Top