Darrell's my name, SpiceWare's my alias. I've been doing software under SpiceWare name since the early 80s.
here's an example of my logo from 88.
It's all tradeoffs when programming the Atari as there's a limited amount of time to do everything you have to do. In Medieval Mayhem I'm controlling 5 objects, the playfield, changing the playfield color and reading the paddles. There's no way I could do that on every scanline so I'm using a 2-line-kernel where most things are updated every other scanline(the playfield has to be updated every scanline).
One of the tricks I'm using is my sprites are limited in the Y range they can be drawn at, so I've chosen to pad the graphics with 0s:
TopShieldFacingDown
.byte zz________
.byte zz__XXXX__
.byte zz_XXXXXX_
.byte zzXXXXXXXX
.byte zzXXXXXXXX
.byte zzXX____XX
.byte zzX______X
.byte zz________
.byte 0,0,0,0,0,0,0,0; 2 brick rows
.byte 0,0,0,0,0,0,0,0; 2 brick rows
.byte 0,0,0,0,0,0,0,0; 2 brick rows
TopShieldFacingSideways
.byte zz________
.byte zzXXXXX___
.byte zz_XXXXX__
.byte zz__XXXXX_
.byte zz__XXXXX_
.byte zz__XXXXX_
.byte zz_XXXXX__
.byte zzXXXXX___
.byte 0,0,0,0,0,0,0,0; 2 brick rows
.byte 0,0,0,0,0,0,0,0; 2 brick rows
.byte 0,0,0,0,0,0,0,0; 2 brick rows
TopShieldFacingDiagonal
.byte zz___XXX__
.byte zz__XXXXX_
.byte zz_XXXXXXX
.byte zzXXXXXXXX
.byte zz___XXXXX
.byte zz____XXX_
.byte zz____XX__
.byte zz____X___
TopShieldDead
.byte 0,0,0,0,0,0,0,0; 2 brick rows
.byte 0,0,0,0,0,0,0,0; 2 brick rows
.byte 0,0,0,0,0,0,0,0; 2 brick rows
.byte 0,0,0,0,0,0,0,0; for "dead" shape
and just draw the shields on every line w/out using any skipdraw logic
lda (P1Shield),y
sta GRP0
lda (P3Shield),y
sta GRP1