Double Double: Apple IIe Mid-Screen Mode Switching Demo
Background
I've done some previous work/demos with mid-screen mode switching, but
often using vaporlock and only of the regular Apple II graphics modes.
An emulator author asked me if I had ever explored doing this with "double"
modes on Apple IIe and newer, such as 80-column, double-lores, and
double-hires.
Once you have the double modes, the extra things you can do are less
exciting because in theory using double-hires you can just simply draw
any combination of pixels from the other modes. There is one primary
benefit you could get from mode-switching: the other modes
use a lot less RAM than double-hires
and that can make updating the display faster.
The image used is based on some ZX Spectrum art by helpcomputer0 on twitter.
Video
Footage recorded on actual Apple IIe Platinum:
Comparison
Actual Apple IIe platinum (output captured using capture card)
AppleWin 1.13.30.0
Mame 0.251 (apple2ee)
Compatibility Notes
I've only tested this on Apple IIe, although there is vblank code included
for IIc and IIgs so try it out and see how it goes.
It will try to play mockingboard music if you have one.
The first few screens it tries doing mid-scanline mode switches. It tries
a few offsets, note this isn't deterministic so don't worry if your
emulator starts at a different place. This is because the way I am
getting VBLANK on the IIe isn't cycle accurate, the offset can be from 0 to 3
and I'm not sure if there's a good way to get an exact VBLANK value.
When using vaporlock you can fine tune this, still haven't looked into
doing that here.
Finally got this out the door. Was a huge hassle, ended up writing a bunch
of tools including a png to double-lores converter (and figuring out
you have to rotate the AUX page colors). Trying to get the music to fit.
Lots of other small things. Hope it was worth the trouble.
My other Apple II ProjectsBack to my homepage