kisrael Posted May 17, 2021 Share Posted May 17, 2021 For playfields, do I remember that the term is like "An N-Scanline Kernel" where N is how many scanlines before the playfield changes? Or does that apply for how often you update the player? Or both? (I imagine it's pretty common to update players one scanline and playfield the next...) Also, it's "symmetric" vs "asymmetric", but called symmetric even if it's... "repeated" is it? (vs mirrored) Just trying to make sure I use the clearest terms for https://alienbill.com/2600/atari-background-builder/ Quote Link to comment Share on other sites More sharing options...
kisrael Posted May 17, 2021 Author Share Posted May 17, 2021 (like should an option box say 1 scanline kernel 2 scanline kernel or more like 1 scanline per PF pixel 2 scanlines per PF pixel oe what would be easiest to understand) Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted May 18, 2021 Share Posted May 18, 2021 For me, an "N-scanline kernel" describes the number of scanlines the kernel requires to do a "complete update" of everything it updates. Sprites could be updated every single scanline, for example, but if the PF is only updated every 4 scanlines, then I'd call that a 4 scanline kernel. Inside of that 4-scanline kernel, sprites are updated every line, in other words. In the case where you update PF one scanline, and sprites the next, I would call that a 2 scanline kernel. The PF is only updated every 2 scanlines, in other words. Similarly if you did not modify PF at all, and only updated sprites every 2 scanlines, then that would be a 2 scanline kernel, too. So the real meaning, now I've written it out, is no matter sprites or PF, the number of scanlines in which a kernel does everything it needs to do for its regular (during screen draw) update... then that's the "N" in "N-scanline kernel". Symmetric playfields only have one write to PF0/PF1/PF2 and rely on the mirroring/reflection to form the other half (usually right-hand-side) of the screen. Asymmetric playfields implies there is a chasing-the-beam going on, and left-side PF0/PF1/PF2 are different to the right-side. As to options (a) Update sprites every (N) lines. --> 0/1/2/3/4... (b) Update PF every (N) lines --> 0/1/2/3/4 (c) asymmetric PF --> yes/no (d) mirrored PF --> yes/no If I chose (a) 1 and (b) 2, and (c) YES then i'd get a 2-scanline kernel which updates sprites every line, and ALSO updates PF every line (because of (c) YES) but the PF shape pointer is only updated every 2 lines (b) = 2 If you choose (c) YES you always get an extra PF0/PF1/PF2 write on every line you also get different timing on those writes based on (d) because that does change things If you choose (c) NO, then PF writes only happen on the 1st line of the N-kernel If you choose (a) 0 then sprites are not drawn otherwise sprites are drawn, on the 1st available N-kernel line where there's enough cycles (nearly always 1st) PF updates/writes should always be put in the kernel as priority over sprite writes You might also consider updating colour on PF and/or sprites on each kernel block/line 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.