Difference between revisions of "Sprite port-mirror Attribute 4 (with INC) Register"

From SpecNext official Wiki
Jump to: navigation, search
(core 2.00.23 changes)
 
(Core 2.00.26 changes)
Line 28: Line 28:
 
See {{PortNo|$xx57}} for extra notes about anchor/relative sprites, coordinates and clipping.
 
See {{PortNo|$xx57}} for extra notes about anchor/relative sprites, coordinates and clipping.
  
After write into sprite-attribute "byte 5" ({{PortNo|$xx57}}), the {{NextRegNo|$34}} is incremented (with all consequences stemming from such action). If the sprite 63 was modified, the result of the increment is officially "undefined behaviour", and code should explicitly set valid 0..63 sprite index before next sprite-attribute manipulation.
+
After write into sprite-attribute "byte 5" ({{PortNo|$xx57}}), the {{NextRegNo|$34}} is incremented (with all consequences stemming from such action). If the sprite 127 was modified, the result of the increment is officially "undefined behaviour", and code should explicitly set valid 0..127 sprite index before next sprite-attribute manipulation.

Revision as of 10:13, 27 January 2019

Number $79
Readable No
Writable Yes
Short Description Same as Sprite port-mirror Attribute 4 Register ($39) (write fifth byte of sprite-attributes), plus increments Sprite port-mirror Index Register ($34)

Byte 5 is bitmapped:

Bit Description
7 If 1, the pattern will be treated as 4-bit colour one (128 bytes), 0 is for 8-bit colour patterns (256 bytes)
6 (if bit 7 = 1): Chooses top/bottom part of pattern slot when 4-bit colour pattern

0 will target bytes 0..127 of pattern "Name" (byte 4), 1 will target bytes 128..255 of pattern "Name".

(if bit 7 = 0): make this sprite "relative" one: 1 = relative, 0 = normal (anchor) type

5 (if bit 7-6 = %01) for "relative" sprite, this bit chooses top/bottom part of pattern slot for 4-bit colour mode (4 or 8 bit mode is set by anchor sprite, relative sprite can't switch the colour mode). See Bit 6 description above, if anchor sprite is in 4-bit mode. If anchor sprite is in 8-bit mode, use always 0

(else) For normal (anchor) sprites this is reserved, use always 0

4-3 x-axis scale factor: %00 = 1x (16 pixels), %01 = 2x, %10 = 4x, %11 = 8x (128 pixels)
2-1 y-axis scale factor: %00 = 1x (16 pixels), %01 = 2x, %10 = 4x, %11 = 8x (128 pixels)
0 MSB of Y coordinate

See Sprite Attribute Upload ($xx57 / 87) for extra notes about anchor/relative sprites, coordinates and clipping.

After write into sprite-attribute "byte 5" (Sprite Attribute Upload ($xx57 / 87)), the Sprite port-mirror Index Register ($34) is incremented (with all consequences stemming from such action). If the sprite 127 was modified, the result of the increment is officially "undefined behaviour", and code should explicitly set valid 0..127 sprite index before next sprite-attribute manipulation.