I saw this animation by Grongy over on zxart and since it matched the 40x48
Apple II lores graphics mode wanted to try it out. I thought it fit well
with some music MA2E made. I only found out later that this was from
"Scroll Block" a demo by Otomata Labs from Deadline(Berlin) 2024.
Video
Recording captured on an actual Apple II platinum:
Implementation
It looks just like a movie, but it's 194 frames of 1k lo-res art, so
194k of storage which of course won't fit on a 64k Apple II. So I
ZX02 compressed it. In order to get it small enough had to compress in
8k chunks which was small enough to fit in roughly 48k of data, but then
needed 8k buffer to hold the uncompressed area.
Also ZX02 is a bit slow
(too slow for real-time) so I needed to start decompressing while the previous
chunk is still being displayed. This was a bit complicated and I am using
the Mockingboard IRQ timers for that.
In the end managed to just barely get it to fit in memory.
I'd like to know how the original authors did it because theirs fits in a 32k
tape file and that also includes a title screen, 6-channel music, and a lot
of scroll text.
System Requirements
Apple II
You need 64k of RAM and a Mockingboard.
It uses timer interrupts so won't work without
the Mockingbaord
Apple IIgs probably isn't working as I haven't hooked up
the stub to fix interrupts from the language card
Finished the code! The big issue was at 194 frames it didn't divide into
8 evenly and the last chunk of data being 2 frames wasn't enough to load
the next frames and made some glitches. So instead I just made the last 3
bundles 6.
7 May 2025
Saw this animation over at zxart and noticed it matched the 40x48 Apple II
resolution and wasted some time writing an image converter to see if I could
implement it. Shouldn't have as there was a lot of other work I should have
been doing.