base:dysp_d017
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
base:dysp_d017 [2016-04-22 13:55] – [Stretching the first and last sprite line] compyx | base:dysp_d017 [2016-04-22 14:14] – compyx | ||
---|---|---|---|
Line 27: | Line 27: | ||
Using the $d017 sprite stretching technique, we can make our sprites arbitrarily high, repeating each line of a sprite for as long as we like. This keeps our border opening routine simple. | Using the $d017 sprite stretching technique, we can make our sprites arbitrarily high, repeating each line of a sprite for as long as we like. This keeps our border opening routine simple. | ||
- | ==== Stretching the first and last sprite line ==== | + | Here's the routine, basically an adjusted FLD with side border |
- | + | The interesting part is the d017_table access, this allows use to stretch (or not) each line of each sprite: | |
- | The trick to variable Y-positioning is to stretch the first line of a sprite until we reach the Y-position where we want the sprite to display, then displaying 19 lines of the sprite, and then stretching the last line of the sprite until the loop ends. | + | |
- | This of course means we can only use 19 pixels high sprites, lines 0 and 20 are cleared so we don't see the stretched sprite data. | + | |
- | + | ||
- | + | ||
- | here's the routine, basically an adjusted FLD with side border | + | |
<code 6502tasm> | <code 6502tasm> | ||
; The $d017 stretcher | ; The $d017 stretcher | ||
Line 69: | Line 63: | ||
</ | </ | ||
- | The interesting part is the d017_table access, this allows use to stretch (or not) each line of each sprite. This means we can | + | ==== Stretching the first and last sprite line ==== |
+ | |||
+ | The trick to variable Y-positioning | ||
+ | |||
+ | Suppose we would want to display three sprites, | ||
+ | |||
+ | < | ||
+ | Sprites | ||
+ | --------------- | ||
+ | A00 | ||
+ | A01 | ||
+ | A02 | ||
+ | A03 | ||
+ | A04 | ||
+ | ... | ||
+ | A20 | ||
+ | A20 | ||
+ | A20 | ||
+ | </ | ||
+ | |||
+ | === Limitations ==== | ||
+ | |||
+ | This of course | ||
base/dysp_d017.txt · Last modified: 2016-04-26 13:52 by compyx