Page 2 of 2
Re: overlapping parallax
Posted: Tue Dec 05, 2017 2:18 am
by creaothceann
Theoretically it doesn't have to calculate anything at runtime, just store the boundaries in ROM for each degree of rotation.
psycopathicteen wrote:I see DMA overload at 9:20. I don't see that happen in too many games.
It'd probably be in the TV's overscan area anyway.
Re: overlapping parallax
Posted: Tue Dec 05, 2017 9:05 am
by Drew Sebastino
creaothceann wrote:Theoretically it doesn't have to calculate anything at runtime, just store the boundaries in ROM for each degree of rotation.
I doubt that's what it's doing though. It does this in three different areas, and they all last a good while.
creaothceann wrote:It'd probably be in the TV's overscan area anyway.
It's not, well, on my TV anyway. However, my TV is a flatscreen CRT from the 2000's, so I don't know how representative it would be of TVs from the time.
Re: overlapping parallax
Posted: Wed Dec 06, 2017 11:20 am
by psycopathicteen
I thought about how to do the background blocking.
Use 2 tables that are 224 bytes long, with each byte corresponding to a scanline:
-layer number
-next chunk
Jump through the tables for a chunk that overlap with the beginning of the new layer, and another that overlap the end of the new layer. The chunk that overlaps the end, copy the "layer number" and "next chunk" bytes to the end of the new layer's chunk. Then change the "next chunk" byte on the chunk that overlaps the beginning (this is done afterwards in case the same chunk overlaps both of the new layer's ends). Now add the new layer's "layer number" and "next chunk" bytes to the tables.