| |
Differential Scrolling [2016] |
Credits :
SIDs used in this release :
Download :
Look for downloads on external sites:
Pokefinder.org
Summary Submitted by Sokrates on 28 August 2016
This tech-demo demonstrates full (-screen, -color ram, and -Hz)
char scrolling based on compressed differential images. Instead
of shifting the memory for scrolling the screen a differential
image is uncompressed and the differences are drawn over the
current screen.
The intention was to:
* minimize the time consumption. Calculation time is only needed
when drawing a new differenial image (equates to adding a new
column in standard scrolling). All other scrolling steps need
only a fast manipulation of $D016, so no in between filling of
a double buffer is applied as needed for other techniques. The
scrolling time consumption is visualized in the demo by a
grey border.
* maximize the memory available in the 16K VIC bank. Since no
double buffer is needed any more this memory can be used for
other purposes. This is visualized by showing a short movie
using 238 sprites. They all are located in the same VIC bank
as the shown screen, the animation is done by only counting
up the sprite pointer. Since a similar effect can be achieved
by using two VIC banks, this is only a minor point.
The drawbacks are:
* the number of differences between images is limited to what
can be uncompressed and drawn within one c64 frame without
causing visible artefacts.
* the compressed images consume quite some memory.
Due to some time wasting by (unnecessary but neat :-) char
manipulations this demo runs only artefact-free on PAL machines.
Run-length encoding is used for image compression in this demo.
To sum up, differential scrolling might be useful for special
use-cases where time consumption is critial, scrolling content
complexity is low, and overall memory consumption is not too
restricted.
Thanks to Frantic for providing me a slightly modified version
of this nice little tune:
codebase64.org/doku.php?id=base:256_bytes_tune_player
The starfield was inspired by this example:
codebase64.org/doku.php?id=base:rol_starfield_using_d018 |
|
|
|
| Search CSDb |
| Navigate | |
|
| Detailed Info | |
|
| Fun Stuff | |
· Goofs · Hidden Parts · Trivia
|
|
| Forum | |
|
| Support CSDb | |
|
| |
|