Jon Thysell

Father. Engineer. Retro games. Ukuleles. Nerd.

Tag: software

Adventures in Macintosh restoration Part IX: Captain, She Needs More RAM!

In Part VIII, I added USB to my Power Macintosh 8600/200 and got the final system setup installed and running. Now it’s time to address my final planned upgrade for this machine, adding some more RAM.

Video RAM was easy

The first thing I upgraded was the machine’s video RAM. The default configuration is only 2MB, giving a max display resolution of 1280×1024 with 256 colors, but it can be upgraded to a max of 4MB, bumping the max resolution to 1280×1024 with 16bit color. Now as a crossover machine, it isn’t a strictly “necessary” upgrade. It has no impact on any of the software I’m using, and without the high-resolution features of a modern OS (like sub-pixel anti-aliasing, or system-wide font scaling) I’ve honestly found more than 1024×768 to be hard on the eyes.

Really, the main reason I did it was because of the price – I found the two 1MB RAM sticks on eBay for pretty cheap, and it was strictly additive. That is, I didn’t replace the existing video RAM, I just filled in the rest of the open slots.

So if it wasn’t necessary, why spend the money? Well, this machine served a role in its day which I haven’t really spoken to yet – presentations and video production. You see, this model actually has built-in jacks for video capture and playback, via standard composite (the RCA yellow, white, and red) as well as s-video connections. With the right software, you can can capture SD video, edit in effects or what have you, and export back out to other A/V equipment.

The standard 2MB of video RAM even lets you use the A/V output to connect to a TV instead of using a regular monitor. With the 4MB upgrade, you can mirror your regular monitor display to the A/V output. This makes the machine perfect for live presentations as most video projectors of the era still used standard A/V inputs.

Frankly, the thought of using this old machine to capture video intrigued me as a fun project for another day. So I decided that I might as well upgrade it while I could.

Regular RAM was harder

Next came the regular RAM. The existing 80 MB is fine for a machine of this era, most of the time, especially if you’re offline and not doing any heavy media manipulation. Connecting to the internet is another story – especially browsing the web. Then, the more RAM the better.

Way back in Part III I hinted that the price and availability of RAM for this machine was going to be a problem, and I’ll admit, one that caught me by surprise. During my research I’d of course looked at the RAM specs for this machine – it had 8 slots and came with 32MB from the factory. In 1997 the largest stick you could buy for this machine was 64MB – giving an official limit of 512MB. Soon 128MB sticks were available, bumping that max up to 1GB – a monster amount of RAM.

So when I started costing out this machine, the first thing I did was look for those old 128MB sticks. I couldn’t find any, but the 64MB sticks seemed readily available for cheap, so I settled on living with 512MB. I saved off the listings for later, wanting to verify the machine even worked before I put more money into it.

It wasn’t until after I’d gotten the machine to boot that I returned to that saved listing, and noticed that something wasn’t right. During the cleaning I’d actually held the original RAM in my hands, and the pins looked very different from the photos in the listing. I held off on buying more to do more research.

Turns out I was right – the RAM was different. The Power Mac 8600/200 uses 168-pin 5V FPM/EDO DIMMs and the RAM I was looking at was 168-pin 3.3V EDO DIMMs. Despite having the same number of pins, the layout of those pins were thankfully designed such that you couldn’t accidentally mix them up and break something.

So I’d made a mistake, but at least I hadn’t wasted the money, and so I started appending “5V” to my searches.

It wasn’t long before I realized that all anyone had were 3.3V DIMMs. It turned out that the particular 5V variety used by this machine were not used by very many models, and as such were exceedingly rare to find these days. People restoring these machines today are usually stuck with whatever RAM was still in the box.

In fact, one thing I’d noticed when first cleaning out the machine was the rather odd placement of the existing sticks – rather than start in slot A1 (the pairs of slots are labeled A-D) they started on B2. It doesn’t affect anything, but usually people start with A1 right?

Then it hit me. When I got it, the machine was missing both its hard drive and the valuable internal ZIP drive – two things someone upgrading to a new machine might take with them. I didn’t even bat an eye at the missing hard drive – I’ve gotten through plenty of upgrades where, even if I wasn’t planning on using an old drive, I didn’t have time to wipe it properly, so it was easier to just pull it before sending the machine to a recycler. I didn’t care about the missing ZIP drive, and seeing how expensive it was to replace (well more than I paid for the rest of the system) I just shrugged and moved on.

The previous owner probably had the largest sticks in the first few slots and pulled them for their next machine. Or maybe a reseller knew how rare they were, and popped them out to sell separately. Either way, it looked like I was stuck with the 80MB I already had.

Success off eBay

My dreams of 1 GB, or even 512MB dashed, I moved on. Then one day I saw someone post on Reddit that they’d found a great deal on a bunch of 8MB EDO DIMMs, which they’d bought up to fill all the open slots in their Power Macs. Some store was trying to clear out vintage inventory.

To my surprise, they even listed 64MB sticks for $10 a piece! I jumped in feet first and ordered a full set of 8. After talking with some more people online, someone pointed out that they were listed as ECC memory, which I hadn’t noticed in my haste. I couldn’t find a definitive answer if my machine could handle ECC memory, so I was a little worried that after all that waiting I may have still wasted my money.

The store contacted me the next day to apologize – they actually only had 3 sticks in stock, so I could either get refunded for 5 or cancel my order altogether. I opted to take the 3, which made me feel better about the risk if they didn’t work.

 

They arrived and fit perfectly. I crossed my fingers, but unfortunately, one of the sticks didn’t work. I tried moving it around into different slots, but it just appears to be bad. But even with that loss, I still got 128MB of RAM for $20, when the best information I could find said those 64MB sticks still floating around in the past decade usually sold for around $50 a stick.

 

So at the end of the day, I’ve got 208MB of RAM in this machine. More than plenty for my needs, and I still have free slots if I stumble on any deals in the future. Not bad!

But I have to say, that’s it for this machine for now. I never got the original manual and CD, though I did finally get a refund two months after the initial order. The machine isn’t 100% restored – I haven’t finished buffing the case or bleaching it back to its original color – but it’s more than ready to be a crossover machine when the time comes.

Which surprisingly enough is much sooner than I expected.

Is there a compact mac on the horizon? You’ll have to stay tuned!

/jon

Want to read from the beginning? Start at Part I.

Adventures in Macintosh restoration Part VIII: Fresh Setup

In Part VII, I experimented with a variety of Mac OS system software combinations on my Power Macintosh 8600/200. Now it’s time to finish up the experiments and get this machine up and running.

One more way to transfer files

The most important job a of a bridge machine is to be able to transfer files to older machines, and as I’ve explained in the previous parts, this machine is pretty flush with methods for doing so. However, before I got all that working, one of the first recommendations I got from other vintage mac fans was to try and add USB support with a Sonnet Tango PCI card.

I found one cheap on eBay, brand new and still in the box:

It was a quick and pretty effortless install into one of the machine’s open PCI slots. While it requires Mac OS 9 to operate, and then only at USB 1.1 speeds, it has quickly become one of my favorite methods for transferring files.

Mac OS 9 can understand FAT32 filesystems, so rather than deal with floppies, burning CDs, or the relatively slow network, I’ve found that the fastest and often most convenient option is to just use a little USB drive. The biggest issue was having to reach to the back of the machine to access the ports, but thankfully the card has an “internal” port, so I was able to route a USB extension cable out front slot for the missing ZIP drive.

SCSI2SD second thoughts

It’s now, when I’m all ready to set up this machine with its “final” setup, that I start to question my use of the SCSI2SD. It’s a very useful and powerful device, but it’s also kind of expensive. Beyond being a “drop-in” replacement for a SCSI hard drive, it’s useful to be able to remove the SD card to make backups, add/remove files, etc. But this machine already has so many ways of transferring files, and having to pop open the case to remove an SD card is pretty inconvenient by comparison.

As I’ve mentioned before, my true goal is to a restore an older compact mac. This current machine is just a tool toward that end, so it seems a little wasteful to dedicate a SCSI2SD for it, if the long-term fate of this machine is to be stored away and only used when needed. Plus, any future compact mac will have probably need a hard drive replacement of its own, where the benefits of a SCSI2SD may be better appreciated.

Revisiting SCSI

So rather than plan on forking out the money for another SCSI2SD in the future, I decided to take out the one I have and re-look into my options for installing a real SCSI hard drive into this machine. In Part VI I mentioned the lack of new SCSI hard drives, and the problem with old ones is finding one that still works.

However, while SCSI ultimately failed in the consumer market, many of the newer SCSI drives that do exist are still backwards compatible with the older SCSI protocol, given an appropriate cable adapter.

So I consulted r/VintageApple for advice, and after trolling around online I ended up scoring an 18 GB SCSI hard drive for $5, with free shipping even! As for the cable adapter, a reddit user who had already done the exercise of buying every possible adapter pointed me to the only one that actually works as advertised.

Since the drive was originally intended for server racks, it’s slower, larger, and louder than comparable consumer drives, but the price simply couldn’t be beat.

It worked perfectly with a patched copy of Drive Setup, and I partitioned the drive three ways – a 11GB HFS+ primary partition for Mac OS 9.2, a 2GB HFS partition for Mac OS 7.6, and a 4GB HFS partition for miscellaneous data.

Installing Mac OS 7.6

Once the hard drive was partitioned, I went ahead and installed Mac OS 7.6 first. I didn’t screenshot the whole process, but for the benefit of any future person who’s never had to install 7.6 on a Power Mac in 2020, here’s a rough outline of what I did:

  1. Boot from the 7.6.1 install CD (hold “c” if necessary)
  2. Run “Install Mac OS”
    1. Skip straight to Step 4, “Install the software”
    2. Customize the install according to the suggestions here:
      1. MacOS 7.6.1 Update
      2. QuickDraw 3D
      3. MacLinkPlus
      4. English Text-To-Speech
    3. Under Options, check “Create new System Folder”
    4. Install to the 2GB partition I set up for 7.6
    5. Start!
    6. For everything else, just select “Easy Install”
  3. Reboot when finished

Then, after the machine booted back up from the hard drive, it’s time to update some settings in the Control Panel:

  1. Configure Energy Saver to “Shut down instead of sleeping” and set the timer to “Never”
  2. Open Control Panel > TCP/IP
    1. Confirm you want to enable TCP/IP after the panel closes
    2. Connect via Ethernet
    3. Configure to use the DHCP server
    4. Exit, saving configuration
  3. Open Control Panel > Control Strip
    1. Hide Control Strip
  4. Open the Extensions Manager, and disable the following “Control Panels”:
    1. Control Strip
  5. Again in the Extensions Manager, and disable the following “Extensions”:
    1. Color SW 1500
    2. Color SW 2500
    3. Color SW Pro
    4. Desktop Printer Extension
    5. Desktop Printer Spooler
    6. Desktop PrintMonitor
    7. ImageWriter
    8. Iomega Driver
    9. LaserWriter 300/LS
    10. LaserWriter 8
    11. Printer Share
    12. PrintingLib
    13. PrintMonitor
    14. StyleWriter 1200

Finally, I installed the 2020Patch Extension so I can set the date past 2020. And here we are, only 8.5MB used at boot:

Now, these particular settings might not be right for everyone, as they reflect my setup: I have a TCP/IP network, but no printers, and I have never been a fan of the Control Strip. Now on to the primary OS for this machine, OS 9.2.2.

Installing Mac OS 9.2.2

The road to Mac OS 9.2.2 is a little more involved, but again, here’s an outline of what I did:

  1. Boot from the 9.1 install CD (hold “c” if necessary)
  2. Run “Mac OS Install”
    1. Under Options, check “Perform Clean Installation”
    2. Install to the 11GB partition I set up for 9.2
    3. Start!
    4. Continue and Agree until you see another “Start” button
    5. Customize with just the following:
      1. Mac OS 9.1
      2. Internet Access (Custom)
        1. Internet Utilities
        2. Microsoft > Internet Explorer
      3. Text-to-Speech
      4. ColorSync
    6. Start!
  3. Reboot when finished

After the machine reboots, complete the Setup Assistant. Then, as before, it’s time to update some settings in the Control Panel:

  1. Configure Energy Saver to “Shut down instead of sleeping” and set the timer to “Never”
  2. Open Control Panel > TCP/IP
    1. Confirm you want to enable TCP/IP after the panel closes
    2. Connect via Ethernet
    3. Configure to use the DHCP server
    4. Exit, saving configuration
  3. Open Control Panel > Control Strip
    1. Hide Control Strip

Now we’ve got a pretty clean 9.1 install, but we want 9.2.2. To do that we’re going to need to get three things onto the machine:

  1. OS 9 Helper
  2. Mac OS 9.2.1 Update
  3. Mac OS 9.2.2 Update

Once you have that, you’ll need to do the following:

  1. Open the “Mac OS 9.2.1 Update” and mount the disk image
  2. Run “OS 9 Helper 1.0.1”
    1. Select “Install Mac OS 9.2.1”
    2. Begin Installation
    3. Continue and Agree until you see another Start Button
    4. Customize with the following:
      1. Mac OS 9.2.1
      2. ColorSync
  3. Start!
  4. Reboot when finished

After the reboot, complete the Setup Assistant again, then:

  1. Open the “Mac OS 9.2.2 Update” and mount the disk image
  2. Run “OS 9 Helper 1.0.1”
    1. Select “Install Mac OS 9.2.2”
    2. Begin Installation
    3. Continue and Agree until you see another Start Button
  3. Start!
  4. Reboot when finished

After the reboot, complete the Setup Assistant one final time. Now we can clean up the Control Panel – I used the list here to get started:

  1. Open the Extensions Manager, and disable the following “Control Panels”:
    1. Control Strip
    2. Location Manager
    3. Multiple Users
    4. Software Update
    5. USB Printer Sharing
  2. Again in the Extensions Manager, and disable the following “Extensions”:
    1. Color SW 1500
    2. Color SW 2500
    3. Color SW Pro
    4. Control Strip Extension
    5. CSW 6000 Series
    6. Desktop Printer Extension
    7. Desktop Printer Spooler
    8. Desktop PrintMonitor
    9. FBC Indexing Scheduler
    10. ImageWriter
    11. Iomega Driver
    12. LaserWriter 300/LS
    13. LaserWriter 8
    14. Location Manager Extension
    15. Multi-User Startup
    16. Printer Share
    17. PrintingLib
    18. PrintMonitor
    19. USB Printer Sharing Extension

And here we are, only 16.6MB used at boot:

That’s it for today, I think I’ve got one more post left in me for this machine, so stay tuned for Part IX!

/jon

Want to read from the beginning? Start at Part I.

Adventures in Macintosh restoration Part VII: System Experiments

In Part VI, I was able to install Mac OS 8.1 on my Power Macintosh 8600/200 using a SCSI2SD as the machine’s hard drive, and I was even able to get online. Now it’s time to play around with that setup.

The original plan

The plan for this machine has always been as a bridge machine between modern computers and older vintage Macs. It’s meant to give me some practice cleaning and restoring old parts, while also being as flexible and compatible as possible. It’s a utility machine.

In order to be the most compatible with the most software and the most hardware, I figured I’d need to install as many versions of Mac OS as possible. This machine officially supports System 7.5.5 through Mac OS 9.1, but rather than install the dozen of minor versions in-between, I thought one install per major version should be enough.

System 7

Let’s start with System 7. As far as I can remember, my childhood machines ran 7.0.1 or 7.1, older than what this new machine can handle. I remember the 7.5 series existing, and it’s possible that in the later years I ran it on the Centris 650 when I first got internet access.

System 7.5.5 is the earliest software this machine can run, and it’s the last version to support running 24-bit addressing (something the oldest programs need). The other contender for System 7 would be 7.6.1, which is considered mostly the same, except it’s got some PowerPC performance improvements that would apply to this machine.

In the end I actually chose 7.6.1 for this machine. It turns out the 24-bit support only applies to the 68k Macs, and this machine will never be able to run programs that need it. So 7.6.1 has the exact same compatibility as 7.5.5 but is just faster.

Beyond System 7

After System 7, we’re out of my personal experience. I may have used Mac OS 8 once or twice in high school, but I’ve never used Mac OS 9. I have no nostalgia for these systems, so the only requirement is to expand my access to software and hardware.

My initial plan was to pick just the latest in each line that I could run, Mac OS 8.6 and Mac OS 9.1. While I’m currently running 8.1, and having a little fun here and there playing some old games, as far as I can tell there’s no reason to run this version with newer ones available.

However, talking with people online, and it seems there are three camps when it comes to OS 8.

Camp one thinks System 7 was the pinnacle of Mac systems in terms of design and speed, and everything after that was bloat. They point out that the change from 7 to 8 was just to cut out the clone manufacturers, since they only had licenses to System 7. So 8 is really just a bunch of crap on top of 7.

Camp two thinks OS 8 is the pinnacle of Mac design, that 8 refined and filled in all of the gaps of 7. They say System 7 is too spartan for newer machines, and point out that 8 added better networking support and just as importantly, support for larger hard drives.

Camp three thinks OS 8 can be skipped entirely, thanks to Mac OS 9. Very little software lists OS 8 as a minimum, and even so, it’ll still run on OS 9. Same with hardware. Most things just work on 7 and above, or require 9, so unless you really like the style of 8, there’s no reason to use it if you can run 9.

I already planned on installing 9 as it gives me access to a variety of useful hardware upgrades on this machine such as USB and Firewire. So I decided to table the decision on OS 8 for now.

Let the experiments begin!

The first thing I did was backup the SD card with Mac OS 8.1. It doesn’t have anything particular that I care about, other than being a booting system. I re-setup the SCSI2SD with three virtual drives, then booted the 8.1 CD to use Drive Setup to format them.

I had already downloaded and burned CD images for a variety of versions: 7.5.5 and 7.6.1 specifically for this model, universal installs for 8.0, 8.5.1, and 8.6, and finally universal installs for 9.1 and 9.2.2.

I won’t go into all of the gory details here, but suffice it to say that I spent weeks installing and re-installing different OSes to the different virtual drives. I followed various suggestions online and took my own notes during the installation process of each. I ran benchmarks, browsed the web, and downloaded some apps and games to try out.

One win was getting an FTP server to run on the Mac, which meant I could more easily transfer files to it from a modern PC. That freed me up to download new software quickly on my PC, then upload the files to the Mac at my leisure. This gave me both an archive of downloads on the PC and saved me from having to browse the web on the Mac and deal with increased chance of download failures.

The other big win was installing Mac OS 9.2.2. Officially most machines can only run 9.1, because that was basically the last version of OS 9 meant to be run as an independent OS. By that point in time, Apple had switched over to OSX, but early versions still provided a “Classic Environment” compatibility layer that let those OSX users still run their old OS 9 apps.

Classic Environment still required a full copy of OS 9, and it got a few more stability and performance updates in the form of 9.2, 9.2.1, and 9.2.2. So installers exist for those versions, but of course they have protection measures in place to make sure you don’t just install them on older hardware.

However, thanks again to enterprising hackers, there’s a tool called os9helper that lets you trick the installer into working. And it worked!

The final plan

At the end of it all, I’d pretty much settled on a plan of only installing 7.6.1 and 9.2.2. I didn’t find any reason to keep 8 around, the installs sat dormant while I spent most of my time in 9.2.2. In fact, even keeping 7.6.1 around seemed to be “just-in-case”.

Anyway, this has been a pretty text-heavy post. I didn’t bother to take any pictures during all this software experimentation. Next time I’ll have more photos, as I dive into some hardware upgrades. So stay tuned for that in Part VIII!

/jon

Want to read from the beginning? Start at Part I.

Adventures in Macintosh restoration Part I

I have a lot of fond childhood memories with classic macs and after watching a variety of restoration videos on YouTube, playing around with some emulators, and needing a new project, I’ve decided that it might be fun to try and restore a classic mac on my own.

My history with Macintosh

Growing up in the 90’s, my family was an Apple family, and my first computer was a Macintosh IIfx with its Motorola 68030 processor and 20MB of RAM. When my father eventually made the switch to Windows for work, I inherited his Centris 650, which was my main computer for many years.

On that machine I learned to program in C with Metrowerks CodeWarrior and created my first web sites writing HTML in BBEdit. Before that, I bought a book on HyperTalk, and spent hours making black and white cartoons and little games in HyperCard to share with my friends.

While I never owned one of the classic B&W “compact” macs, I used them often enough at school. Even though I had a better System 7 machine at home, I still loved playing with those old System 6 machines, limitations and all.

Eventually I built my first Intel PC, jumping to Windows 98 instead of following Apple into PowerPC and Mac OS 8. That was in 1999, and I’ve never really looked back, in fact the only Apple product I’ve bought since then was a single iPod around maybe 2008.

Fascination with 68k

It wasn’t until I started getting back into retro games and consoles that realized that the Sega Genesis, my favorite childhood gaming console, ran on a Motorola 68000 processor – the same architecture as my old macs. It blew my mind that both systems, which couldn’t have been more different in my childhood mind, were more or less running the same CPU under the hood.

Wanting to try my hand at writing a Genesis game, I even started looking into programming in 68k assembly a few years ago, though I eventually abandoned the effort when I started costing out how long it would take me to actually make something, versus spending that time on my other hobbies. But the idea to do something with a 68k-based machine has gnawed at me ever since.

Emulators and disk format problems

Last year I started playing around with Mini vMac, an excellent classic mac emulator. Turns out there’s a lot of the old mac software still floating around online. Then I started thinking around buying and setting up some vintage hardware myself. I began researching and learned a lot about the various options for doing so, especially how to overcome the hurdle of actually getting files onto old hardware.

Getting bootstrapped isn’t easy. Basically, the primary option for getting data onto/off classic macs are floppy disks, and unfortunately, old mac floppies are just different. Even if you can get installers or disk images of all the old software online, you can’t just write them to a floppy from a PC. The disks are physically formatted differently, and you need an actual working classic mac with an original floppy drive to write them.

Once you have a classic mac up and running you can read PC-formatted disks with the right software, but the trick is getting the classic mac set up and working in the first place. A real chicken and egg problem.

The easiest thing to do is simply pay someone with a working classic mac to make a set of setup floppies for you, but even after that, you need to make sure the mac you’re using can read 1.4MB floppies (not just the older 400k/800k floppies) otherwise you still won’t be able to transfer data to/from a modern PC.

The crossover solution

The other (better?) option is to get a newer, but still old, classic mac as a “crossover” machine. Usually something from the PowerPC-era with a CD-ROM drive, Ethernet, even USB, with that special Apple floppy drive, as a staging ground for reading/writing old floppies. Then you transfer files from your modern PC to the crossover machine, then write floppies.

Now, and I’ll get into these later, there are also modern products that emulate floppy and hard drives that use SD cards, which you can read from / write to from any machine. But not only are they pricey, there are nuances to using them that don’t make it as simple as drag-and-drop.

Then there’s the question in any restoration: how original are you going to keep it? Every person, and every build is different, and the journey is just as important as the destination with a project like this. I mean, the emulators really are excellent – if I just want a quick rush of nostalgia, I can run all of this stuff in a window on my desktop.

Anyway, at the time I decided I didn’t want to invest either the time or the money to start such a project, and filed what I’d learned for later.

Now is later, looking for a new project

That’s where I left things last year: some emulator configs, setup disk images, and bookmarks saved off on my computer, in my perpetual project backlog.

Now it’s 2020, and while cleaning out a closet I found an old laptop I’d forgotten about. Not a powerful machine, but small and tough, and I thought “this would make a good emulator machine”. Now I’ve made my share of “emulator machines” and mini arcade-cabs, but I’d been watching a lot of videos on old 8-bit computers, and I thought, since the laptop is small and obviously has a keyboard, it might be fun to set it up as an old 8-bit computer emulator, specifically the Apple II and Commodore 64.

It was easy to set up, and I spent a few evenings exploring the old Apple II library. I never owned an Apple II, but like many 90’s kids I used them in elementary school, and it was fun to play through The Oregon Trail and Odell Lake again. But it was almost too easy to set up, and it only reminded me of the macs I used to have and all the research I did planning to restore one.

So I dug out my old notes and start trolling eBay. While it might be more “nostalgic” to try to rebuild my original IIfx or Centris, both are fairly large and would require an external monitor. I do have a home office now that I didn’t have last year, but there’s not a ton of space, and I don’t really want to add a big period-correct CRT onto my desk.

A laptop might work, but that’s a whole another layer of problems sourcing replacement hardware. And really, deep down, I want one of those classic compact macs. So I start working on a plan.

My goal is to take a 40-year old computer and give it a full overhaul – not just getting it up and running, but cleaning it inside and out, replacing components on the motherboard, fixing dead drives with new grease and gears, bleaching the case plastics back to the original color.

I don’t just want a working compact mac, I want to learn new skills, to get down and dirty in the hardware. Something that’s gonna take time and sweat to finish. Something that I can proudly display on my desk. Then, after all that, do what I always do with my hobbies, write some software for it. Finally scratch that itch to write something for a 68k machine.

Of course, I want to document my progress along the way. I’ve already gotten started, but this post is getting long in the tooth, so I’ll save that for Part II.

Stay tuned!

/jon

Making some retro games with LÖVE


I was in the mood to make some games this past week, when I discovered the wonderfully powerful yet lightweight LÖVE game framework.

After watching some videos on YouTube highlighting games others have made*, I set to work on one of my own. Within a couple of hours I had Pong running on my phone!

I decided I’d keep exploring the APIs by building a suite of simple retro games, the source of which I’ve uploaded to a new GitHub repo named RetroLove.

So far I have decent clones of Pong and Breakout. I’m thinking maybe Asteroids next. It’s so much fun, and the framework couldn’t be easier to use.

Check it out,

/jon

*: The story on how I found LÖVE is actually a little bit longer and shows the circuitous way by which I find myself doing these kinds of projects. I was working on another project, my first Universal Windows Platform app (that is, an app that runs on all Windows 10 devices). The project itself is something I’ve had on the back-burner for years, and I was primarily using it as an excuse to practice using XAML, which is the UI framework for UWP apps. (My day-job is on the XAML team at Microsoft, so using it myself only helps me to better understand our customers.)

Anyway, my app needed an embedded scripting language, and I wanted to use Lua, but I needed something that would work within a UWP app, which, because it needs to work on lots of different kinds of devices, meant I couldn’t use the native Lua libraries easily.

This led me to the very cool MoonSharp project, which is a Lua interpreter implemented entirely in C#. After I got that up and running, the app also needed a kind of visual editor, so I needed to do some 2D graphics work. It was then that I discovered the Win2D project, which makes it easier to do GPU-powered 2D graphics within XAML.

Then an idea hit me: what if I had a 2D game engine designed similar to retro consoles? Where the engine would be responsible for maintaining backgrounds, sprites, and drawing to the screen, and the game developer would provide the game in the form of a package of Lua code and game assets? I could make a UWP app that used MoonSharp to interpret the Lua and used Win2D to draw to the screen.

It had been some 15 years since the last time I’d made a game engine. In college I made a decent Mario-style platformer in Java; it had realistic physics, collision detection, music, sprite animations, scrolling, power-ups and enemies. I only ended up making one tech-demo of a level, but in the process I learned a ton about game engine design. (Though looking at that old code now… yikes.)

I spent a weekend trying to implement my idea for a sprite-based 2D game engine for Windows 10. It took me the two days to realize the true scope of such a project, and unfortunately I couldn’t get MoonSharp and Win2D to cooperate. Knowing that my idea probably wasn’t a unique one, I started searching online for other Lua-powered 2D game engines.

That’s how I found the free and open-source LÖVE. After seeing the size of its community, and how mature it was, I quickly abandoned my own broken code and started work on Pong.