mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-12 15:30:55 +00:00
sa: update README
This commit is contained in:
parent
eacd93e0f5
commit
f4ac1c1f05
@ -1,21 +1,39 @@
|
||||
Still Alive for the Apple II
|
||||
in roughly 20k
|
||||
|
||||
By Deater (Vince Weaver)
|
||||
|
||||
|
||||
BACKGROUND
|
||||
~~~~~~~~~~
|
||||
A few years back I implemented Valve's Portal in Applesoft BASIC.
|
||||
|
||||
At the end it played Still Alive, but in horrible single-channel
|
||||
speaker beeps. I always wanted to have this sound better.
|
||||
|
||||
So here is the end result. Still Alive in 6-Channel Mockingboard
|
||||
Sound in 80 column with cursor effects. Also in 40 column if
|
||||
your display can't handle 80 cols. And if you don't have a
|
||||
Mockingboard, then a simpler version using P. Lutus'
|
||||
Electric Duet 2-channel audio for the stock speaker.
|
||||
|
||||
|
||||
|
||||
Fun fact:
|
||||
The letter 'Z' does not appear at all in the lyrics to the song.
|
||||
(Noticed when I had to edge comparison for uppercase off by one)
|
||||
|
||||
|
||||
Challenges:
|
||||
+ 6-channel audio
|
||||
+ 6-channel audio. Really its 4-channel (from a MOD file)
|
||||
but it actually does load and play audio on all 6 channels.
|
||||
+ Fitting it all in 48k (want to avoid disk routines if can)
|
||||
+ Printing the ASCII art simple code (takes longer than 50Hz)
|
||||
+ Printing the ASCII art (naive implementation takes longer than 50Hz)
|
||||
The ASCII art is roughly 7k. Thought of decompressing
|
||||
on the fly, but the LZ4 code is not re-entrant and
|
||||
the music is already decompressing on the fly.
|
||||
+ Re-using the Lyrics for both the Mockingboard and Electric Duet
|
||||
versions.
|
||||
|
||||
ASCII Art Size
|
||||
The ASCII art is roughly 7k.
|
||||
You can LZ4 compress it and decompress on the fly, saving 3k or
|
||||
so even when factoring in the decompression code.
|
||||
The problem is decompression is slower (pauses the music) and
|
||||
can't be run at the same time as the music decompression is
|
||||
happening unless we duplicate a lot of code.
|
||||
May revisit if we need the room.
|
||||
|
||||
|
||||
Goal: Binary fits in 16k (16384 bytes)
|
||||
@ -39,7 +57,7 @@ merge ED and MB code 24993
|
||||
properly select between versions: 25001
|
||||
merge the ED and MB lyrics: 22828
|
||||
|
||||
Memory Map
|
||||
Memory Map:
|
||||
|
||||
|
||||
|
||||
@ -60,7 +78,7 @@ Code: c00 - 8c00 32k
|
||||
Sound buffers: 5e00-9600 = 14k
|
||||
|
||||
Plan:
|
||||
16k compressed Load at 16k? 4000
|
||||
20k decompressed Decompress from 0c00 - 6000 or so
|
||||
|
||||
Load compressed 18k image at $5000 - $9600
|
||||
Decompress ENDING sequence at $1800 - $4000
|
||||
When done, decompress STILL_ALIVE (22k) at $C00 - $5000
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user