Sprite Attribute 4 Register: Difference between revisions

From SpecNext Wiki
Jump to: navigation, search
core 2.00.23 changes
m Xalior moved page Sprite port-mirror Attribute 4 Register to Sprite Attribute 4 Register: match formal nextreg.txt name
 
(2 intermediate revisions by 2 users not shown)
Line 6: Line 6:
}}
}}
Byte 5 is bitmapped:
Byte 5 is bitmapped:
:For '''anchor''' sprites:
{|class="wikitable"
{|class="wikitable"
! Bit !! Description
! 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)
| 7-6 || "H N6" - "H" is 4/8 bit graphics selector, "N6" is sub-pattern selector for 4 bit modes.<br />
%00 = 8-bit colour patterns (256 bytes), this sprite is "'''anchor'''"<br />
%01 = this sprite is "'''relative'''" (4/8-bit colour is selected by "anchor" sprite) → see tables below<br />
%10 = 4-bit colour pattern (128 bytes) using bytes 0..127 of pattern slot, this sprite is "'''anchor'''"<br />
%11 = 4-bit colour pattern (128 bytes) using bytes 128..255 of pattern slot, this sprite is "'''anchor'''"
|-
|-
| 6 || (if bit 7 = 1): Chooses top/bottom part of pattern slot when 4-bit colour pattern
| 5 || Type for following '''relative''' sprites: 0 = "composite", 1 = "big sprite"
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
| 4-3 || x-axis scale factor: %00 = 1x (16 pixels), %01 = 2x, %10 = 4x, %11 = 8x (128 pixels)
(else) For normal (anchor) sprites this is reserved, use always 0
|-
| 2-1 || y-axis scale factor: %00 = 1x (16 pixels), %01 = 2x, %10 = 4x, %11 = 8x (128 pixels)
|-
| 0 || MSB of Y coordinate
|}
:For '''composite relative''' sprites:
{|class="wikitable"
! Bit !! Description
|-
| 7-6 ||%01 = relative sprite
|-
| 5 || "N6" bit, in 4-bit colour mode 0 = using bytes 0..127 of pattern slot, 1 = using bytes 128..255 of pattern slot. In 8-bit mode use 0.
|-
|-
| 4-3 || x-axis scale factor: %00 = 1x (16 pixels), %01 = 2x, %10 = 4x, %11 = 8x (128 pixels)
| 4-3 || x-axis scale factor: %00 = 1x (16 pixels), %01 = 2x, %10 = 4x, %11 = 8x (128 pixels)
Line 23: Line 36:
| 2-1 || y-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
| 0 || Enable relative pattern offset (1 = Pattern index is added to anchor pattern index, 0 = independent pattern index)
|}
:For '''big-sprite relative''' sprites:
{|class="wikitable"
! Bit !! Description
|-
| 7-6 ||%01 = relative sprite
|-
| 5 || "N6" bit, in 4-bit colour mode 0 = using bytes 0..127 of pattern slot, 1 = using bytes 128..255 of pattern slot. In 8-bit mode use 0.
|-
| 4-1 || use 0 (scaling is defined by '''anchor''' sprite)
|-
| 0 || Enable relative pattern offset (1 = Pattern index is added to anchor pattern index, 0 = independent pattern index)
|}
|}


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.

Latest revision as of 10:52, 14 October 2025

Number TBRegisterNumber::$39
Readable TBRegisterReadable::No
Writable TBRegisterWritable::Yes
Short Description [[ShortDesc::Nextreg port-mirror to write directly into "byte 5" of {{#ask:

PortNumber::$xx57 }} ($xx57{{#ask: PortNumber::$xx57 |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}).]]

Byte 5 is bitmapped:

For anchor sprites:
Bit Description
7-6 "H N6" - "H" is 4/8 bit graphics selector, "N6" is sub-pattern selector for 4 bit modes.

%00 = 8-bit colour patterns (256 bytes), this sprite is "anchor"
%01 = this sprite is "relative" (4/8-bit colour is selected by "anchor" sprite) → see tables below
%10 = 4-bit colour pattern (128 bytes) using bytes 0..127 of pattern slot, this sprite is "anchor"
%11 = 4-bit colour pattern (128 bytes) using bytes 128..255 of pattern slot, this sprite is "anchor"

5 Type for following relative sprites: 0 = "composite", 1 = "big sprite"
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
For composite relative sprites:
Bit Description
7-6 %01 = relative sprite
5 "N6" bit, in 4-bit colour mode 0 = using bytes 0..127 of pattern slot, 1 = using bytes 128..255 of pattern slot. In 8-bit mode use 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 Enable relative pattern offset (1 = Pattern index is added to anchor pattern index, 0 = independent pattern index)
For big-sprite relative sprites:
Bit Description
7-6 %01 = relative sprite
5 "N6" bit, in 4-bit colour mode 0 = using bytes 0..127 of pattern slot, 1 = using bytes 128..255 of pattern slot. In 8-bit mode use 0.
4-1 use 0 (scaling is defined by anchor sprite)
0 Enable relative pattern offset (1 = Pattern index is added to anchor pattern index, 0 = independent pattern index)

See {{#ask: PortNumber::$xx57 }} ($xx57{{#ask: PortNumber::$xx57 |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}) for extra notes about anchor/relative sprites, coordinates and clipping.