|C64 Troll Screen/Curtain Wipe.
This screen is HIRES, but then gradually opens with a
mid-screen modeswitch to text. You can only switch modes
with a 4-cycle (4 char) granularity and it is a bit glitchy
at the edges. |
The Apple II struggles to do white-on-blue text here. It looks a lot more clear if you draw white-on-black, but then you lose the traditional C64 look.
|40x96 Apple II image: This image is split across LORES PAGE1 and PAGE2 and flips every 2 scanlines to give twice the usual LORES resolution. I originally planned a scroll-in effect but ran out of time.|
|This screen is flipping between 3 pages: LORES PAGE1 and PAGE2 as well as HIRES PAGE1. In theory HIRES color is a subset of LORES so by drawing blocky it should match up, but in practice it's not an exact match. You could get better animation with 4 pages, but we need the 8k of HIRES PAGE2 to hold code.|
These screens are LORES on the left, HIRES on the right, and then
the wipe effect on the bottom (the names start out in
LOTR Tengwar at first). The name replacement copies
from LORES PAGE2 to PAGE1 just ahead of the beam.
You'll notice that the emulator and the hardware don't agree with drawing the vertical bar, I tested on real hardware too late and didn't have time to fix it.
This is a text/LORES split, but the text is split 50/50 between
PAGE1 and PAGE2 allowing to create lower-case letters out of
top/bottom of unrelated uppercase characters. This is tricky
as the text font on Apple II+ is offset one scanline from that
on the Apple IIe,
so we patch the screen split code at runtime to get the chars
to look right. The LORES is 40x96 again.
You'll notice a glitch on the right edge of the tractor-feed paper; again the emulator doesn't match real life and I ran out of time to fix it.
|This is just text mode on top, LORES graphics on bottom. Cycle-invariant animations are a pain as they usually involve lots of conditionals. We use a state machine and a jump table to make this a bit easier.|
|The scene that started it all. This is text on top, HIRES in middle, LORES on bottom. That's Mount Katahdin (highest point in Maine) in the background.|
This scene is tricky, as there's a 4 frame pattern and the
scanline splits changes each frame in complicated ways to give
the twinkling stars and water effects. Also some complicated
sprite/PAGE1/PAGE2 stuff is going on to give the pseudo-transparency
of the waterfall.
And only just now noticed that this one is 1-cycle (one lores block) off too. I'm seeing the pattern now, the actual IIe vapor lock is one cycle off from what AppleWin thinks it should be. That should be a fairly straightforward fix (famous last words).
Takeoff is a HIRES/LORES split. Note that the tail of
the spaceship is a smooth diagonal rather than stair-step.
Also, blame Scott Manley for the Mach Diamonds.
|No cycle-counting on this one. For more details about how this works see the Mode7 Demo, or the writeup in PoC||GTFO 0x18.|
|This has text at the top, HIRES in the middle, and then a mid-screen change from HIRES to LORES and back to allow the colorful rasterbars and spaceship. This is tricky to do in time, and a bit glitchy too unless there is black coloring at the borders. I wanted 40x96 for the rasterbars but that is not easy to do without HIRES PAGE2 (because otherwise you have to do two softswitch flips on the transition which takes 8 cycles, too long)|
|Again, a text at top / LORES at bottom animation.|
|This mode is HIRES at top, with a cycle-invariant HPLOT routine used to draw the stars and fireworks. The bottom is interleaved every-line LORES PAGE1/PAGE2 to allow the blended gradient. The bottom right corner is TEXT, and it is interleaved too which gives the neat stripe effect when the text messages are scrolled in. It is limited to 256 bytes of message data, otherwise the text drawing code crosses a page boundary and I was too lazy to make that invariant.|