The values are:
Xxxxxxxxx = X position of the sprite. Basically, consider this signed but see below.
yyyyyyyy = Y position of the sprite.^
cccccccc = First tile of the sprite.^^
N = Name table of the sprite. See below for the calculation of the VRAM address.
ppp = Palette of the sprite. The first palette index is 128+ppp*16.
oo = Sprite priority. See below for details.
h/v = Horizontal/Vertical flip flags.^^^
s = Sprite size flag. See below for details.
^Values 0-239 are on-screen. -63 through -1 are "off the top", so the bottom part of the sprite comes in at the top of the screen. Note that this implies a really big sprite can go off the bottom and come back in the top.
My questions are
1/ Since Y position of the sprite is only a 8 bit value, and the on screen display lines are either 224 or 239 lines. ( by setting of bit 2 in $2133 register )
Why the wiki said -63 is "off the top" ?
As -63 in 8 bit value is equal to 192 which is in the display range.
So my question is , Is it only value between ( 225/240 to 255 ) are values "off the top" ? so sprites of that value will show their lower parts on the top of the screen ?
2/ If I have a sprite of 64 pixel tall and I place it on display line 220, there are a few different scenerios
if my display mode is 224 lines
I should have only 4 lines of sprite display on the lower part of the screen
Do I have ( 220+64 - 256) = 28 lines on top of the screen ? ( this assumes the hardware is simple and uses just adder )
or Do I have ( 220+64 - 224) = 60 lines on top ? ( this assumes the hardware is intelligent and adjust for the blanking and line 0 rendering )
or Do I have ( 220+64 -224-1) = 59 lines ? ( this assumes the hardware did not adjust for line 0 rendering )
or Do I don't have any lines on top ? ( this assumes there are different logic to handle sprites in on screen region / negative region )
Thank you for any input