23 comments
  • retrac4d

    That's some wacky smooth animation for the Apple II. It's quite a feat to have multiple apparent sprites move so smoothly like that.

    Apple II high resolution graphics are 280x192 pixels stored in 8 kilobytes at 2000 - 3fff or 4000 - 5fff. (With a fun interleaving where bits in memory are not in the same order as the bits on the display. Woz saved a few chips that way.)

    That is to say, there are no hardware sprites.

    The fastest way to clear the display is an unrolled loop in the form of LDA #0, STA $2000, STA $2001, STA $2002 etc. That works out to about 30,000 cycles which takes 30 milliseconds. A more plausible operation - displaying a whole-screen bitmap by copying it from another location in RAM to the framebuffer using a loop with indexes - weighs in at several hundred thousand cycles, or an appreciable fraction of a second.

    • thought_alarm4d

      This game achieves its smoothness by synchronizing to the video refresh. That's not a particularly challenging thing to do, but it wasn't a viable option for commercial games back in the day due to uncertainty of how to do it properly across the different Apple II models.

      Apple added VBL polling with the IIe in 1983, and then broke it a year later with the IIc. And an unfortunate typo in the IIc technical reference manual meant that developers couldn't figure out how to do it properly.

      The only official, cross-platform way to do it was through the mouse firmware, but most users didn't have the mouse hardware installed.

      This game uses the mouse firmware, if available (II+ w/ mouse card, IIc, IIgs), to generate VBL interrupts. On the IIe without a mouse card, it polls for VBL.

      By the way, if you're running this game on the Virtual ][ emulator for MacOS, be sure to disable the mouse card. Its emulated mouse card only generates VBL interrupts at 30 Hz, so the game runs at half speed.

    • dekhn4d

      My initial imposter syndrome came from not being able to understand enough machine language and the Apple II graphics format to be able to duplicate Ultima IV (with simultaneous sound and animation).

      But this exists now: https://github.com/fadden/fdraw

      • JKCalhoun4d

        Wild if Apple had had something like a library or framework with this kind of stuff in the Apple II days.

        • jdswain4d

          Not at all the same, but they did have QuickDraw II for the IIgs. This library had the benefit of using the simpler IIgs graphics modes, avoiding all the Apple II weirdness. With a little bit of searching the source can be found online.

    • AndrewStephens4d

      I had an Apple][+ and can confirm that the HiRes mode was devilishly difficult to work with, to the extent that even many commercial games had visible artifacts and flickering.

      These smoothly moving graphics over a background image would have blown everyone out of the water in 1982.

      • scarface_744d

        Now imagine working with the double hires mode with vertical interleaving that has already been discussed and horizontal interleaving between the main memory and bank switched memory to the higher 64K of extended RAM.

      • deater4d

        having VBLANK available works wonders, see this double-hires code I just put together that only looks nice due to the magic of VBLANK on Apple IIe/IIgs (Apple IIc is much harder to get VBLANK from if you're playing music with interrupts) https://www.youtube.com/watch?v=1QwUGFDcQcI

  • JKCalhoun4d

    Very cool. I'll have to get an emulator up and running to try it.

    Another wild one (back port?) was a small run a guy did for the Nintendo. Here's one on eBay for example: https://www.ebay.com/itm/186125162930

    • wk_end4d

      (In case anyone doesn't look at/recognize the username, pretty sure this guy here is the developer responsible for the original Mac Glider!)

  • jdswain4d

    For anyone wanting to build sprite type code on the Apple II, you really should read this article in Byte magazine:

    Preshift-Table Graphics on your Apple by Bill Budge, with Gregg Williams and Rob Moore. A23 Move blocks of pixels across the screen with only 3K bytes of overhead

    It's kind of hard to find, it's in the December 1984 Byte magazine, but an additional magazine at the end of the PDF, Bytes Guide to Apple.

    At the time this was huge, Bill Budge was probably the most well known game programmer, so getting a look inside how he wrote code was a big thing.

    Of course, as mentioned elsewhere, graphics is hard on the Apple II because of the complex memory layout due to Woz wanting to save a few chips. This can be contrasted with the Atari and Commodore computers that had custom chips that made graphics a lot easier.

    https://archive.org/details/byte-magazine-1984-12/page/n397/...

  • nukem2224d

    I was a big fan of glider pro, having been born long after apple ][s: http://macintoshgarden.org/games/glider-pro

    I would download it, but I wanted to be productive today.

  • gxd4d

    Great work! I learned about this game just last week when reading "The Secret History of Mac Gaming". This looks like an excellent adaptation.

    • jhbadger4d

      It is. If this had been available in the heyday of the II, I think it would have been quite viable as a commercial product.

  • tinmith4d

    I loved the original Glider game on the old Mac. Back in 1997 when I was in undergrad I made my own port using ASCII art to run on the VT100 terminals we had at the time. When I started learning Android, I ended up writing a VT100 emulator with the NDK to bring it back to life on modern devices: https://github.com/waynepiekarski/android-glider

  • spicybright4d

    I played sooo much glider in highschool study hall, although it was the windows version, glider 4.0

    I liked the gameplay so much I learned 6502 asm and coded my own version for the atari 2600. Nowhere near parity with the real version obviously, but I was able to make 3 screens with 1 to 2 moving obstacles, and a clock collectable that did nothing.

    • JKCalhoun4d

      Yeah, Gregg Bieser did the Windows port of Glider 4.0 for Casady & Green (back in 1991 or thereabouts).

  • FabHK4d

    Amazing how they managed to make a whimsical, yet reasonably legible font with these few pixels.

  • OhMeadhbh4d

    Nice! I just got my Apple //c set up again and am looking for new software.

  • pkdpic4d

    Brings back good memories. But never thought to ask what a "defensive rubber" is...

  • gorthmog2d

    [dead]