This page is about a proof of concept to see if the 1991 game Lemmings
could run on an Apple II computer from 1977.
This is not a full version of the game, it's just the first ten
levels with various changes in gameplay due to
Apple II limitations.
Details
I was watching a 30-year anniversary video on Lemmings and then a dangerous
thing happened, I realized the colors weren't that far off of the Apple II
hires palette. So I took a break from my Peasant's
Quest project and used all my newfound hi-res graphics skills to
see what I could implement.
Videos
Capture of version 1.00 on an actual Apple IIe platinum:
Screenshots
Note: these were captured with the AppleWin emulator.
Level intro screen. On an Apple IIe you get this nice impossible
graphics/text split (assuming your emulator supports the VBLANK register):
Various levels. Fully playable (though limited to a single screen):
Beating a level:
Hard to see, but the destroy-them-all button works and I even implemented
some particle effects for the explosion. It's hard to see in the videos
as the combination composite->HDMI->USB conversion is really bad at
fine details like single-pixel wide particles.
Playing on real hardware with
an actual CRT, using an actual floppy. That's not artificial
aging on the floppy label, rather my laser printer is low on toner.
System Requirements
Any sort of Apple II with 48k RAM should work (II/II+/IIe)
For sound/music you'll need 64k of RAM
For music (and accurate clock)
you'll need a Mockingboard sound card
For the split-screen intro messages you'll need a IIe
Should also run on IIc or IIgs but not tested as often
How can I play it?
You can download the image below and then try running it on a real machine.
You can download the image and run it on an emulator.
There are many out there, I use Applewin under WINE on Linux
(be sure to enable Mockingboard under sound support).
A.
Ten fit nicely on one floppy. The levels in the original
game do repeat (same background,
different number of jobs available, also music repeats
eventually)
and I could probably hack something up with that, but in
the end if you want to try different ways to beat a level
feel free to use '!' to cheat and use what jobs you want.
Q. Was it hard to write this?
A.
Yes, though it went faster than previous projects because I'm
amassing a huge amount of useful Apple II code.
Q. Is this the first 8-bit version
A. No, it's not even the first 6502 version.
There were Commodore 64 versions and Nintendo NES
versions. There was even a ZX Spectrum version.
I'd like to think this compares favorably to some
of those.
A. Well yes, but that's a much more powerful machine with
larger RAM, graphics, sound, and disk space, and needless
to say won't play on my Apple II+.
Although LemminGS itself
was an
unofficial port by Brutal Deluxe.
Q. Should I be impressed by this? Lemmings is an old game.
A.
If you weren't around back in the 80s, it's hard to describe
how quickly computer hardware improved. Lemmings originally
was written in 1991
for OCS Amiga and ran on other 16-bit machines.
The hardware in the Apple II (mostly unchanged from the
original release in 1977) is a much slower, 8-bit,
memory-constrained machine with absolutely no graphics
acceleration. Atari 8-bit and Commodore 64 have things like
hardware sprites and scrolling and timers and vblank
interrupts. The Apple II is just a 6502 hacked up
with some 7400 series logic gates and a glorified
TV-typewriter for graphics output.
Q. Wouldn't this look better in double-hires?
A.
Yes, an Apple IIe with 128k of RAM can do a double-hires
mode with 16 colors that would probably be a bit closer
to the original.
However if you thought getting
good graphics going on HGR was bad, it's possibly exponentially
worse with DHGR.
Also, I like running my games on older machines like the II+.
It's an extra challenge, and also I can avoid comparisons
from the Commodore 64 people.
Q. Can I at least play with a mouse?
A. Currently there is no mouse support. Mouse is a challenege,
especially as usually mice live in Slot #4 and would
conflict with the mockingboard. For now you're stuck
with the keyboard (or try the experimental joystick
support).
Q. But the keyboard support is so bad...
A. Yes, that's due to Apple II/II+ keyboard hardware being awful.
I could probably do something better on IIe/IIc, or even
on II+ by using Mockingboard timers. I'll have to
think about it.
Q. Did you write the music?
A. No, this is using music
by Justin Scharvona from the Atari ST port.
Someone had captured the music
as YM5 files, which I have a player for (the Atari ST
sound chip is more or less the same as the AY-3-8910
chip found on a Mockingboard).
Q. Why are the job numbers oddly offset?
A. Apple II graphics happen in multiples of 7 pixels (actually
it's even more annoying, it's multiples of 3.5 with
color clash). I used the DOS/Amiga graphics as a base
and they do things in multiples of 8, so things don't line
up. It would take a lot of code to make a number-printing
routine that can span 8-pixel blocks. Alternately (and
probably a better solution) would just be to squish
the job graphics to be 7-pixels wide but that would
be extra work.
Q. Is the original author aware of this?
A. Yes, so you can probably stop tagging him when I post things.
Previous demakes I've done were of US or French games,
places with Apple II nostalgia. I don't think many people
in Scotland had Apple IIs so this is probably less
interesting to them.
Development Notes
13 April 2022 -- Version 1.01
Updated so Apple IIc support works (at least under MAME). This includes
Mockingboard music and the extremely touchy VBLANK split/screen effect.
I also tested IIgs support, it seems relatively OK but it also runs fast unless
you drop it into compat mode.
13 April 2022 -- Version 1.00
Added animations, and fixed explosions, plus you can play through all 10
levels. I'm going to declare this version 1.0.
4 April 2022 -- Version 0.08
Fix a few regrettable crashing / glitching bugs. Shouldn't be able
to crash things anymore by the pointer or lemmings going off the edge
of the screen.
3 April 2022 -- Version 0.07
The various jobs should all be more or less functioning, though
builders aren't quite like the actual game.
The game actually tracks how many of each job you have left and enforces
the limits. It prints these too, though they are not aligned well
with the graphics due to Apple II 7-pixel alignment issues.
A test/cheat mode was added (exclamation point) that gives you
more jobs.
31 March 2022 -- Version 0.06
All the jobs are implemented, though the builders need a lot of work,
and climbers can vault over blockers. Also have 10 levels now.
28 March 2022 -- Version 0.05
Added level6. Blockers and miners are now more or less implemented.
25 March 2022 -- Version 0.04
More improvements. Can now make floaters, so you can beat level 2.
23 March 2022 -- Version 0.03
Added proper printing of end levels and percentages. Can have up
to 10 lemmings on screen at a time (game can do even more, though
eventually it gets really flickery). They'll splat now if
they fall too far.
20 March 2022 -- Version 0.02
Have backgrounds/music for 5 levels now. Still only one lemming,
with digger the only ability. Wasted some time having fun letting
the digger try to escape off the screen into main RAM, which ineevitably
led to him becoming a being of pure energy before saying something about
"ROD" before crashing the system.
15 March 2022 -- Version 0.01
Finally got it released, in the end getting things to fit in 24k
was more of a challenge than expected. Of course there's more room than
than in RAM/Disk but coding up that extra support code would take a while.
? March 2022
Got the music to play. I could only find YM music, not pt3, so it needs
considerable RAM to play. Put it in the language card limiting it to 12k
which is about 15s of music at 50Hz, so have to swap out/decompress the
raw samples on the fly behind the scene. It takes more than 20s to decompress
a 512 frame chunk so the gameplay will pause briefly when this happens,
but at least the sound doesn't glitch.
4 March 2022
Started work on this. Probably have better things I should be working on.