Jump to content
IGNORED

dumb kernel terminology questions


kisrael

Recommended Posts

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/

Link to comment
Share on other sites

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

 

 

 

 

  • Like 2
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...