It’s my blog!

Artifacts Jared Flynn Artifacts Jared Flynn

1999 in living color.

It used to be that Windows was a DOS program that, like any DOS program, the user could quit. The line began to blur on the release of Windows 95, which inverted the user’s relationship to DOS by introducing “MS-DOS Mode,” a functionally real version of DOS that was actually more of a decoy or a shell. By Windows 98, we began to see the true zombification of DOS into a command prompt for doing Windows things, and our beloved DOS-native applications started to tire under the burden of competing with our fancy new 32-bit lifestyle.

It used to be that Windows was a DOS program that, like any DOS program, the user could quit. The line began to blur on the release of Windows 95, which inverted the user’s relationship to DOS by introducing “MS-DOS Mode,” a functionally real version of DOS that was actually more of a decoy or a shell. By Windows 98, we began to see the true zombification of DOS into a command prompt for doing Windows things, and our beloved DOS-native applications started to tire under the burden of competing with our fancy new 32-bit lifestyle.

So when our family computer was updated to Windows NT 4.0, it just didn’t make sense for me to keep fiddling around in QuickBASIC anymore. Now it was time to jump into the boundless possibilities of object-oriented programming, graphical user interfaces, clickable buttons! So yeah anyway I learned VisualBASIC 3.0.

I think the most useful thing I ever made with VB was a fifteen-minute timer. As I moved up into junior high and high school, my circle of friends quickly expanded beyond our phone service’s local calling area, and so my social existence survived on a lifeline of prepaid calling card credits that my parents re-upped like an allowance. I was allowed to make fifteen minutes’ worth of long distance calls per day on my card, and since the constant judgmental staccato of Mom’s kitchen timer really killed my vibe I decided to make my own little app on the computer.

But “useful” applications were pretty boring. Mostly, I was trying to build full-blown graphic adventures in the spirit of all the Sierra and LucasArts point-and-click games that overflowed my hard drive. Brimming with ideas, I started everything, and finished nothing, because cel animation is wicked hard in MS Paint and also my coding skills were (and continue to be) notoriously tepid.

I remember putting together exactly one screen of a point-and-click adventure game. It had all the bells and whistles—walk cycles for four cardinal directions, items to pick up, an inventory screen … but crucially, I had forgotten to come up with a story. That wasn’t a deal breaker for me; what ended up sinking the effort was my utter failure to code a path-finding function that would let my little avatar guy navigate around obstacles. That project was soon shelved, but I was still determined to make something out of the heavy tomes of game programming books I’d begged my parents for.

The Interactive Cinema is the closest I ever got to telling a branching story with graphics and animation. As with its point-and-click predecessor, I had absolutely no idea where the story was meant to go. The idea of planning the thing out in any way before diving straight into production never entered my mind, echoing nearly beat-for-beat the first few weeks I spent developing this very website. It was all jazz. Even though the thing was never finished, I did manage to save it and carry it with me for the better part of thirty years, and here it is.

The Interactive Cinema spent its first years on a small local hard drive, managed by a tween, with no backup. At some point, it made its way onto a 1.44-megabyte 3.5” floppy disk—again, with no backup—and there it languished for several years. It found a new home after the tween (now a teenager) received an Iomega Zip Drive, which, for readers who don’t remember, had its own proprietary format of 100-megabyte “Zip Disks.” From there, as the Zip Drive fell out of the zeitgeist, it was burned to a DVD-R, placed on a 100-disc spindle with other “backups,” and promptly forgotten for around fifteen years. It wasn’t until just a couple years ago that I, now a real grownup with a grownup offsite backup service for grownups, pulled all of those spindles of burned DVDs up out of my dank-ass basement and dumped their contents onto an eight-terabyte external hard drive that fits in a front pants pocket, because it is now the future.

Of course, now that it is the future, The Interactive Cinema doesn’t run.

Screenshot of Windows 11 error dialog stating "this app can't run on your PC"

I tried everything. Compatibility Mode. Safe Mode. I found a dusty old copy of vbrun300.dll and pasted that into a half-dozen important-looking places within my Windows 11 installation. No dice! Was I defeated? Had obsolescence slammed the door on all the cool junk I made before the world moved on from 32-bit operating systems? Nay! While today’s technology does its dangedest to coddle us and tell us never to tinker, this nerd still remembers the glory days when changing random values in autoexec.bat and jamming CTRL-ALT-DEL with a prayer could mean the difference between getting Warcraft 2 to start and having to play outside instead. I just had to pull out the big guns.

Armed with a very tall brewski and possessed of a couple late nights, I discovered a supercool emulation platform called VirtualBox, and an archived ISO for Windows 98 Second Edition. Before too long, I had an honest-to-goodness virtual machine booting into real Windows 98. The Windows Start sound made the hair on the nape of my neck stand up. From there, I just had to make a folder on my “real” computer, fool the Windows 98 VM into thinking it was a CD-ROM drive, and then use that flimsy hack to move cinema.exe over into its new 32-bit home.

It was only there, manipulating the past in a glass box through insulated gloves like an infectious disease researcher, that I managed to get cinema.exe running again. It was glorious! Unlike CARTOONZ!, my DOS-based first foray into digital animation, I was honestly shocked by what I managed to accomplish with straight-ahead animation drawn in MS Paint. I mean, just look at that weird green alien blob thing!

The Interactive Cinema was, without a doubt, the first crucial success in my journey as an animator. Sixteen colors, 650 kilobytes, and the validation I needed to keep on truckin’.

Read More
Artifacts Jared Flynn Artifacts Jared Flynn

I learned to code in 1996.

First it was a branching choose-your-own-adventure situation built with Automenu, but when that wasn’t enough, my father gave me a two inch thick book on programming in QuickBASIC and I got to work.

First it was a branching choose-your-own-adventure situation built with Automenu, but when that wasn’t enough, my father gave me a two inch thick book on programming in QuickBASIC and I got to work. At the time, my best friend had already started coding in QB thanks to his own dad’s urging. I can’t remember what kind of programs he was writing at the time—games, I assume, probably text adventures— but, not to be outdone, I resolved to start making digital animation, even though coding graphics was way over my head. Undeterred, I created four installments of CARTOONZ.BAS, a series of little vignettes made of what could be generously referred to as ASCII art. The animation ran at one frame per second because 1 was the lowest value QuickBASIC v4.5’s SLEEP keyword would accept, and now we all need to suffer through that together.

I credit the ASCII-based dungeon crawler NetHack, which I witnessed with pure wonder at another friend’s house long ago, for showing me how complex ideas could be expressed through quick, accessible symbols. A pipe ( | ) could be a hero; aliens could be pound signs (this predated the concept of a “hashtag,” natch); shapes could be made from hyphens, underscores, and slashes. The possibilities were nearly endless, and of course I never even scratched the surface of the truly amazing ways an artist with enough patience could leverage extended character sets.

Unfortunately the uncompiled code no longer exists, but these little programs were so hacked-together that I can still remember how they were built. Behold, the code for a single frame of BUNGEE:

CLS
PRINT
PRINT ^^^^^^^^^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^
PRINT         ^   SPLAT!!!!!
PRINT         ^   __
PRINT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PRINT
SLEEP 1

It’s funny, when I first rediscovered these old compiled BAS files, I was first struck with a memory of some kind of super cool animation that I’d managed to pull off. Surely, even at just one frame per second, there was something, some tiny nugget, that foreshadowed the skills and instincts I’d go on to cobble into my rewarding career? Not so much. It turns out, what I was remembering was merely the satisfaction of completing an overwhelming effort. It was hard work forcing my will upon poor, unsuspecting QuickBASIC. And with my vision fogged by the sheer toil of it all, I had no idea how simplistic the results actually were.

I think that’s actually my favorite part about CARTOONZ!. They suck. They are an order of magnitude more lame than every subsequent effort I’d go on to make, both as an animator and as a coder. Beyond sucking, though, they were, unapologetically, what creativity accomplishes under constraints. It was a labor I committed to, with no acknowledgement before or after of the cavernous gap that existed between the art I was consuming and the art I was making. Of course now, both due to decades of experience and just being a jaded old guy, I live almost constantly on the bummer-side of the Gap, working feverishly to force even a rickety old rope bridge to span to the other side. But in re-watching CARTOONZ!, I sincerely hope that every young creative mind gets to have that period of unexamined abandon. At the time, I made CARTOONZ! because I wanted to do what my friend was doing, and I wanted to make animation. Now, I’m glad that I made CARTOONZ! because it can remind me that the Making part is allowed to be valuable even if the thing that is made truly sucks.

Read More