This is a collection of short games from the Homestarrunner universe
collected on an Apple II floppy disk.
Credits
Code: Vince `deater` Weaver
Fast disk code: qkumba
Audio code: Oliver Schmidt
ZX02 decompression code: DMSC
Screenshots / Explanations
Duck Pond (incomplete)
A Duck Pond simulator first shown in SBEMAIL
Early buggy version had a fun bug, see video.
Lo-res.
Rooftop (incomplete)
Obscure
Strongbadzone
A port of the Videlectrix game
StrongBadZone. It's a vector-style game from strong bad e-mail
"Video Games".
Like the flash version, this version is sprite based. There were a lot
of challenges getting this working on the Apple II. It's nearly impossible
to play audio and do anything else at the same time. Moving giant sprites
around (in software, no hardware sprites on the Apple II) is really slow.
Having the two alternate backgrounds and re-drawing them is slow too.
We use page flipping to smooth things out and that takes up 16k of RAM.
Should play on most Apple II models. You'll need 64k of RAM to get
the audio, otherwise 48k is enough.
Video capture on actual Apple IIe Platinum (note, the audio sync
is a bit off, I need to mess with OBS to figure out why it's happening):
This one is another deceptively simple looking game but there's a decent
amount going on. It's not quite like the original as you can't really
do anything else while sound is playing on the Apple II. The animations
look horrible too due to color-clash, you really can't mix the two
color palettes in high-res mode (this is why most Apple II games took place
at night, or else only used 4 colors). I couldn't figure out exactly how
the fish catching algorithm worked so I just picked something arbitrary
that's hopefully close enough.
Should play on most Apple II models. You'll need 64k of RAM to get
the audio, otherwise 48k is enough.
Video capture on actual Apple IIe platinum:
Cliff Climb
Minigame from Peasant's Quest
Extra Real Dating Sim XR
From the Strong Bad e-mail #81 "Date"
Breakdancing Rat
From SBEMAIL 159.
You can see more on this one at its own page
Maybe spoilers, so only click hereif
you're OK with that.
Mini-faq
Q. Are these games hard to reverse-engineer?
A.
It turns out these games look more complex than they are.
(From what I gather they were turned out on very short notice
back in the day).
I thought for Duck Pond I'd have to implement
a complex duck-AI, but the actual game they just have a set path.
Same for Strongbadzone, I thought I might have to implement
actual 3d-scaling code but the 3d movement is actually all just 2d.
Q. Are you doing any special tricks on the title screen?
A.
I was trying to write a fast full-screen vertical HGR scroll. It's so
difficult to do this and I wasn't really willing to unroll things
192*40 times. In the end I cheated and we are just scrolling the
logo which is faster. It's a bit glitchy because using page
flipping would make it a lot more complex.
Q. Are you doing any special tricks in StrongBadZone?
A.
The title is doing some fun things to get the color-change logo.
You get the nice little jiggle effect too due to the way
the Apple II does color.
The large sprites are a huge pain to do quickly. I made some
sprite routines that are optimized to only work with orange/blue
sprites. It even allows for some transparency using the two
different shades of black. I also cheat and you can't put sprites
at arbitrary X locations, but rather at multiples of 3.5 as that's
so much easier and faster. It does have code to allow bigger
than 256 byte sprites as well as properly shifting the colors
when starting on odd locations. All of this slows things down.
The last somewhat difficult stretch was making it all fit in RAM.
We are using page-flipping so that uses 16k for 2 pages of HI-RES.
The language card is used for the sound samples. The area between
$1000-$2000 is used for disk routines. I stashed the hi-res lookup
tables in the text pages. We have two backgrounds, each is 8k
(at $8000 and $A000). So essentially there's only 8k left for
program/data, but the executable is 16k. What to do? Well in
the end things like the title screen and compressed data are loaded
to PAGE2 and then we carefully move things around so that the final
running code can live in the 8k that's left.
Developer Log
30 September 2024 (v1.4)
Put together a version of "Extra Real Dating Sim XR". Blame
the youtube algorithm for reminding me of that. It's not the full game,
just what would fit in 24k of disk space as that's all I had free.
Sampled sound takes up a relatively large amount of space on 8-bit machines!
19 September 2024 (v1.3)
I have been working on the Cliff Climb minigame from Peasant's Quest
and thought it would be a good addition to this collection. Also
cleaned up the disk usage a bit, maybe we can fit one more project on here.
13 June 2024 (v1.2)
I had some dental surgery done, and while recovering Youtube decided to
recommend "Lures and Jigs" (sbemail 44) to me.
Since my mind still wasn't going at 100%
it seemed like a good idea to throw together a version of the
"Fishing Challenge" game. As always it took me twice as long as I'd hope
to get it more or less working.
16 June 2023 (v1.1)
People asked for the "Back Off" easter egg. Took longer than it should
have but got it going, though it exits the game (there's not really
space to fit it with the main game, so it's loaded separately from
disk). I considered having it be the winning condition, but that
would be different from the flash version, so for now press "O" to
activate it.
11 June 2023 (v1.0)
Finally have Strongbadzone fully playable. Framerate isn't as great
as I'd hoped, maybe I can work on that more later. Was quite the
challenge with large sprites, speaker sound, and finding room for
everything including two hi-res pages.
5 June 2023
For some reason instead of finishing the duck pond code instead got
bogged down implementing strongbadzone which I originally was only
going to have a screenshot for but instead now it's going to end up
being mostly playable. It looks suprispingly nice despite the lack
of actual vector screen, the low-resolution, and the pain of trying
to do everyting in orange hi-res mode. (on apple II hi-res it's only
140x192 to begin with, but having a single non-white color you have
to be careful about which column you draw the lines).
31 May 2023
Put together the title screen. Getting hi-res scrolling going was
a pain, cheated in the end to get a faster frame-rate without
having to completely unroll things. Using this as an excuse
to practice writing hi-res code.
3 May 2023
Got side-tracked and ended up doing the breakdancing rat thing
instead.
13 March 2023
Not sure where this whole idea came from. Originally came across
the Duckpond game and thought it would fit well in Apple II lo-res.
Posted an out-take video and it was surprisingly popular.
Other videogame DemakesMy other Apple II ProjectsBack to my homepage