Vitorio Miliano Profile picture
Enabling lay use of emerging technology. Preserving outdated digital and physical artifacts. Research, participatory design, facilitation, prototyping.

Jul 15, 2019, 16 tweets

Today's nice thing is learning @intercom and @thoughtwax linked to some work I did: the emulation of the Canon Cat at the @internetarchive. Serious nerdery in thread πŸ‘‡

First, if you're not familiar with the Canon Cat, @mwichary says nice things about it with great photos in this thread:

Second, resuscitating this obscure, 1980s marvel onto the web is arguably the entire reason you can now run hundreds of vintage computing platforms and thousands of works at the @internetarchive, and could as early as mid-2013, instead of, well, later than that.

In October 2011, @textfiles had the then-audacious idea to port MESS and MAME to JavaScript, so that trying out vintage software and computing platforms could be as easy as playing a video: ascii.textfiles.com/archives/3375

A year later, it was working! But, only one system at a time, laboriously handcrafted to compile. ascii.textfiles.com/archives/3745

A year after that, when I first started trying to compile the Canon Cat emulation for the web, the project was still doing them individually. It took me 40 hours to get the new system going 😬

But! I was then able to document a repeatable process for doing them by hand, which meant someone could bring up a new system in hours instead of days or weeks. ascii.textfiles.com/archives/4044

It's still a lot of technical work, though. You basically need to look across all of MESS for everything a new system requires and feed it that list manually. And then @TedMielczarek says, that's basically what a linker does. 1️⃣ What's a linker? 2️⃣ Can I, uh, make one?

60 hour later, the answer was, yes, I could make a linker, in shell script and makefiles (because that's what the project was on at the time, because @textfiles is an unfrozen caveman). JSMESS went from one-at-a-time to all of them, all at once. ascii.textfiles.com/archives/4069

A month later, @internetarchive threw a party and all these systems were officially launched, including the Canon Cat. ascii.textfiles.com/archives/4117

As @ftrain said, "I will never get enough praise; of course I failed; and what I did was not particularly important. The best thing to hope for is that in time and with much more effort the work will become transparent to its users, that it will be taken for granted."

AND IT WAS! Two years later, MESS and MAME natively supported the ability to compile an individual system directly to JavaScript, obsoleting all my work. That's what the emulated systems all use today. ΒΆ

Later, @rossrubin for @FastCompany, including images sourced from (originally from the Canon Cat Google Group), which I run: canoncat.net

Post-postscript: Ten years after JSMESS was unveiled at the Internet Archive, twelve years after Jason Scott wanted old programs to be as easy to play on the web as videos, online emulation and WebAssembly were also mature enough to be taken for granted.

Two big companies released video games for vintage platforms on the web, both powered by WebAssembly-compiled emulators. McDonald's released a new Game Boy Color game, Grimace's Birthday, powered by the binjgb emulator: grimacesbirthday.com

And, Capcom released several vintage NES and SNES games for their 40th anniversary as part of Capcom Town, powered by the ares emulator: captown.capcom.com/en/retro_games

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling