Difference between revisions of "Sprite and Layers System Register"
(core 3.0 changes/refresh) |
(core 3.1.3 changes/refresh) |
||
Line 38: | Line 38: | ||
| %101 || U L S | | %101 || U L S | ||
|- | |- | ||
− | | %110 || S (U+L) Colours from ULA and Layer 2 are added (per R/G/B channel) and clamped to 7. | + | | %110 || | since core3.1.1: (U|T)S(T|U)(B+L) Blending layer and Layer 2 combined, colours clamped to [0,7] |
+ | <del>S (U+L) Colours from ULA and Layer 2 are added (per R/G/B channel) and clamped to 7.</del> | ||
|- | |- | ||
− | | %111 || S (U+L-5) Similar as previous, but per R/G/B channel (U+L-5) is calculated and result is clamped by 0..7 range. | + | | %111 || | since core3.1.1: (U|T)S(T|U)(B+L-5) Blending layer and Layer 2 combined, colours clamped to [0,7] |
+ | <del>S (U+L-5) Similar as previous, but per R/G/B channel (U+L-5) is calculated and result is clamped by 0..7 range.</del> | ||
|} | |} | ||
− | In layer mixing modes (%110 and %111) the "priority bit 7" of Layer 2 colour is propagated through the calculation, i.e. such pixel will raise above sprites even in mixing modes. If either U or L layer contains ''transparent'' colour pixel, the other layer pixel is drawn unchanged (skipping mixing calculation). | + | In layer mixing modes (%110 and %111) the "priority bit 7" of Layer 2 colour is propagated through the calculation, i.e. such pixel will raise above sprites even in mixing modes. If either U|T or L layer contains ''transparent'' colour pixel, the other layer pixel is drawn unchanged (skipping mixing calculation). |
+ | |||
+ | Since core3.1.1 the blending modes allow for layer non-contributing-to-blending (use {{NextRegNo|$68}} to configure blending sub-mode) to show independently in front of sprites. | ||
When both "over border" (bit 1) and "clipping over border" (bit 5) is enabled, the Sprite clipping window {{NextRegNo|$19}} '''X-axis''' coordinates are "doubled", and coordinates origin is moved from pixel [0,0] position to sprite [0,0] position ([-32,-32] pixel position). For example: setting clip coordinates as {x1:5, x2:155, y1:7, y2:248} will make sprites visible in area [10,7]..[311,248] (inclusively) in sprite coordinates, i.e. the first visible pixel is at X1*2 coordinate, and last visible pixel is at X2*2+1 coordinate. | When both "over border" (bit 1) and "clipping over border" (bit 5) is enabled, the Sprite clipping window {{NextRegNo|$19}} '''X-axis''' coordinates are "doubled", and coordinates origin is moved from pixel [0,0] position to sprite [0,0] position ([-32,-32] pixel position). For example: setting clip coordinates as {x1:5, x2:155, y1:7, y2:248} will make sprites visible in area [10,7]..[311,248] (inclusively) in sprite coordinates, i.e. the first visible pixel is at X1*2 coordinate, and last visible pixel is at X2*2+1 coordinate. |
Revision as of 07:49, 13 April 2020
Number | $15 |
---|---|
Readable | Yes |
Writable | Yes |
Short Description | Enables/disables Sprites and Lores Layer, and chooses priority of sprites and Layer 2. |
Bitmapped as follows:
Bit | Function |
---|---|
7 | Enable Lores Layer |
6 | If 1, the sprite rendering priority is flipped, i.e. sprite 0 is on top of other sprites (0 after reset) |
5 | If 1, the clipping works even in "over border" mode (doubling X-axis coordinates of clip window) (0 after reset) |
4-2 | Layers priority and mixing |
1 | Enable sprites over border (0 after reset) |
0 | Enable sprite visibility (0 after reset) |
Bits 4-2 | Priority and mixing of layers |
---|---|
%000 | S L U (Sprites are at top, Layer 2 under, Enhanced_ULA at bottom) |
%001 | L S U |
%010 | S U L |
%011 | L U S |
%100 | U S L |
%101 | U L S |
%110 | since core3.1.1: (U|T)S(T|U)(B+L) Blending layer and Layer 2 combined, colours clamped to [0,7]
|
%111 | since core3.1.1: (U|T)S(T|U)(B+L-5) Blending layer and Layer 2 combined, colours clamped to [0,7]
|
In layer mixing modes (%110 and %111) the "priority bit 7" of Layer 2 colour is propagated through the calculation, i.e. such pixel will raise above sprites even in mixing modes. If either U|T or L layer contains transparent colour pixel, the other layer pixel is drawn unchanged (skipping mixing calculation).
Since core3.1.1 the blending modes allow for layer non-contributing-to-blending (use ULA Control Register ($68) to configure blending sub-mode) to show independently in front of sprites.
When both "over border" (bit 1) and "clipping over border" (bit 5) is enabled, the Sprite clipping window Clip Window Sprites Register ($19) X-axis coordinates are "doubled", and coordinates origin is moved from pixel [0,0] position to sprite [0,0] position ([-32,-32] pixel position). For example: setting clip coordinates as {x1:5, x2:155, y1:7, y2:248} will make sprites visible in area [10,7]..[311,248] (inclusively) in sprite coordinates, i.e. the first visible pixel is at X1*2 coordinate, and last visible pixel is at X2*2+1 coordinate.