ASCII by Jason Scott

Jason Scott's Weblog

The Digital Nostalgia Heat Differential —

This post is, once again, my favorite kind of idea: a terrible one.

If you’re walking into the emulation-in-a-browser-thing cold, then this big massive essay from me is not going to be of interest. And if you’ve read my stuff before, it’s going to be a bunch of stuff you probably already knew, presented to you again, and concluding the same way.

But, this is the year I’m taking the in-browser stuff on the road, and I also intend to step up my game with the presentations, and so it’s going to be a few rounds of stating my philosophy and motivations as the Software Curator at the Internet Archive on this site, because it’s just going to be a year of that.

So let’s work it over again.


Here’s me in 2002, finding a pile of old game consoles in a room of technology and craziness at the Hackers on Planet Earth convention in NYC. And I spent some time doing what I like to do – arrange stuff for ease of use. So there’s a fully-realized demonstration station, with easy-to-find access of the cartridges, and a little do-it-yourself for controllers.

Naturally, this setup was doomed – it was only alive for 48 hours, and I’m glad someone grabbed a snap. Along with my short-lived luxurious flowing locks period. But the exercise, with its flaws, and its neatness, was worth my time. People played games they’d only heard of, I saw parents use it as a teaching tool (or change to wool-gather) for kids, and there were surprisingly few douchemobiles.

Even by then, Emulation was a Thing, a Thing that had caused no end of controversy, and had been a boom, a bust, a craziness. I contributed what I could where I could, although my technical chops are seriously not that good. Mostly I saved things, or wrote a few things here and there, and mostly I just enjoyed the magic of what emulation provided, and dreamed.

Both these situations have a place – emulation, growing and controversial, could do things that the game setup of a vintage system could not, and vice versa. They both had long-term issues to face, but don’t we all. And for that time, and even into now, both can continue on quite happily, and both approaches exist.

This will not always be the case.


In the beginning, was the software.

As The Narrative goes, Software was not thought of as a separate, meaningful product until IBM, realizing they were really getting themselves set up for an anti-trust lawsuit, started to unbundle software/programming from hardware to head off the interest of a government intervention. A gambit, by the way, which failed miserably; but in doing so, IBM had unwittingly birthed this new industry, one that has grown into the juggernaut of what it is now and which so many of the raised voices of the Internet World seem to dabble in directly or indirectly.

The Narrative is problematic out of the gate, because the whole point of Software as a concept is that it’s the manipulation of materials towards a goal, and if you’re willing to accept that definition of mine, then music, painting, poetry, writing… all software. Just focusing on the piano roll industry of the 19th-20th century will do to demolish the timeline of 1960s IBM creating “software”. We even have the old “disk images” of the piano rolls around, both as paper, MIDI files, and digital recreations that make 100-year-old player pianos do their thing.

But rest assured, the idea of there being at least some sort of definable, distinct and of course recompensable art in the endeavor of the manipulation of electronic signals has roots going back a very long time. There are the usual tales of exploitation, misappropriated credit and tribute, and the triumphs of will and talent. But it’s a real thing. In the beginning is the software, and the software persists.


My particular interests stem from the late 1970s to the early 1990s, but that’s just a personal bias. After all, it reaches from my childhood, a time of great turmoil and misery punctuated by the ecstasy of the promises of computers, leading up to my early 20s, when the Internet truly takes hold in a meaningful way. Maybe the Hunter S. Thompson quote applies here, but in the geekiest way possible. Regardless, the love continues, and I have never stopped adoring the memories of the time.

There’s two ways you can really go in the old computer biz, once you decide you like it. You become a collector, or you become an implementor. You can be both, but I find you don’t do one of them particularly well. So let’s keep it separate.

Collectors gather up all the materials, be they physical or digital, related to their area of interest. Motivation is variant, as is justification. Some people just like having a lot of stuff they like, within arm’s reach or a basement’s trip, and arranging or rearranging materials to suit presentation or a perceived permanent storage. Personalities range, as does how much time spent with them is enjoyable. Like anywhere else, infighting and competition occurs, along with breathtaking efforts to maintain their specific pile to the highest degree.

Implementors have a second layer of creation applied on top of collections, be they collections they maintain or by referencing the collections of others. In the very specific world of vintage computing, there’s been an explosion of newly created devices for reading, recreating, modifying and manipulating older hardware. Think “SD Card Reader for a Machine That Could Not Possibly Have Needed an SD Card Reader until now”, but there’s much more to it than that.

For the sake of this classification, I’m willing to lump academics into the Implementors camp, even though they’re primarily “implementing” classes, books and writings.

So into this area of study, which I keep calling “vintage computing” but should probably just be called “computer history”, comes the entrenched collectors, the implementors old and new, and the audience related to experiencing all of this, in whatever way they choose to.



Into all of that situation, then, comes the “implementation” I’ve been on for a few years – throwing bootable computer simulations into the browser. Nothing, going back to the beginning, was intended for this to happen. Executing code within the browser’s guts itself, especially exceedingly complicated code like an emulation system, is way out of bounds of original design parameters. But here we are.

At some point, every project, even one trying to do as much of the “right thing” as this one has, will hit the bedrock of dogma and architecture. I may be happy that the toolchain components (MESS, Emscripten, Most Browsers, Javascript’s Standard) are all variant amount of “open” instead of non-variant amounts of “proprietary/closed”, but eventually even that’s not good enough, or is irrelevant to the goals of someone coming in from the outside.

So file the following back at shouts in the darkness on choices.

Java was supposed to be the solution, but I don’t like any way that Java has worked out. It’s a mess on ownership, standards, and implementation. Also, it’s friction-filled – you not only have to install a plugin into the browser (not allowed in many environments), you have to make sure it’s updated (it’s a security nightmare and some browsers expire the Java plugin, forcing a re-install). I just didn’t like a “all you have to do is install [scary thing] and you get access to the old software” as an overall design. I also think “install this plugin” is on the way out as something browsers will do – it’s just plague-ridden as a situation. More on Java/Flash as a solution below.

Javascript has its own limits, but it works in all the browsers, and (assuming you didn’t run into a gotcha), when I take machines and run a fullscreen hit of an game, it’s quite breathtaking to realize this is Javascript blowing through a browser and no other trickery enacted. I still get a joy out of that.

Making it run in browsers as opposed to the desktop is also huge to me. Browsers boot everywhere, in everything. The more things that run in browsers, the more people it runs into. Desktops (and straight executable code) all have advantages, but they lose the factors that are important to the project.


So, let’s step back.

Already, baked into the choices, are the fundamental philosophies of the project and what I’ve been going for. It’s been a learning experience over the last decade or so to see the sparks between my belief system and an audience when not everything is in sync. Oversights become intentional sins. Advantages along one parameter seem like needless obtuseness over another. “Hate” is used as a descriptor. So are “broken”, “forgot”, and “stupid”.

Let’s cover the factors involved in the project thus far, then.

  • The belief that the originals can’t last. Hardware fades out and dies, disks demagnetize, cartridges break, tapes are lost, and documentation hits the trashbin or the trash fire. In the long run, saying “I’ve got a machine in my basement” isn’t going to cut it.
  • Belief that the software of the past should be accessible to as many people as possible, as quickly and as flexible as can be, and in a way that can grow and change to continue to be accessible for the future.
  • The idea that “friction” is a major problem in older software, that outside of the masochistic delight a small crowd takes in how much effort it is to set up, the action of clicking a single URL and getting, say, a 1983 Apple II program running in it, is a new level of frictionless experience.
  • As little manipulation of the original software as possible, or, barring that, having it easily seen what manipulation was done, so it can be undone going forward.
  • Function, after a fashion, as a sort of talisman-proof for a variety of additional arguments, by proving the data/software can be used in a contemporary sitting, and that it has continuing value. I.e. “Oh, we might want to look into providing a software archive if this can happen to it.” or the all-important “I guess I better contact this Jason guy about these old floppies I was going to throw out because I thought they were doomed.

I’ve been happy with these factors – they’ve solved the project well.

There are also factors I don’t like, but are also a part of this:

  • 100% volunteer. I technically get paid to do this, but it’s a sliver of my total duties at the Archive, believe me.
  • QA testing is “as best as possible” and “let’s see what happens when people meet it for the first time”. Again, no budget.
  • Multi-layer failure vectors that overlap in terms of performance. I.e. infrastructure issue, Old Browser, Broken Browser, Slow Machine, Slow Network, Odd Expectations, Plugins That Block Javascript, Web Compatibility is a Flaming Viking Ship Burning In Your Swimming Pool And No Fire Extinguisher in Sight

Call me biased, bitter or merely observant, but I feel like the trade-off for no-budget has been that we’ve been able to move rather actively in doing proof-of-concept things in the main project. I have a very dim view of how institutions do this work, and especially how they tend to smother bizarre or off-ranch approaches like this so nobody gets “hurt” or nobody feels any lines were crossed. It has been a very strong indication that I’m working for just the right place that they’ve let me get things as far as they have, with some of the rocket ship being made of corrugated cardboard and a distinct smell of burning almonds just before we hit orbit.

There are other platforms to bring (Macintosh, Commodore), but before I think we bring those under the fold, I want to go back and really nail out the QA and documentation of what we’ve done so far, including making distributable versions of JSMESS and EM-DOSBOX so that isn’t the only place running this show. I want those kind of minds that want to iteratively improve the underlying programming, and I’ve discovered they’re rare indeed. Maybe 2015 is the year this whole emulation-in-browser thing gets the Big Cleanup, while I stomp the ground to talk about while it’s so important. That seems like a good blend.

Next: The World.


The MS-DOS section went big last week. Real big. We’re back up into the millions of new visitors to the Archive, which, when combined with the last year and understanding the overlaps, at least means the place is growing, in terms of the audience and awareness, which are important things in the standing and future of this Internet Archive thing.

Along with the weblog entries, the youtube videos, the radio and TV mentions, and the discussion board flare-ups, I’d estimate I’ve read roughly 4,000 comments related to the MS-DOS collection and this whole project.

So. now that I’m back from the eyewash station,… I have a whole bought of thoughts, reactions and obvious points in need of clarification.

As is usual, for everything ever in the history of internet communication, there’s a few phylum of responses that just always latch onto anything that gets thousands of eyes. They are:

  • This is all bullshit, I did this years ago in a better fashion and do it 10x better daily while wearing five hats
  • It did not work perfectly, it was like watching my dog die
  • Look at me, look at me, look at meeeeeeeeeeee

The first one’s got my interest as a topic of discussion. The other two don’t.

Regarding “This was all done better” posts, which usually make an appearance at the beginning or the end of a flood, I find that’s because there’s some distortion between the project intentions (stated above) and the perceived intentions.

For example, EM-DOSBOX is a port of DOSBOX into Javascript. Therefore it has some features that DOSBOX does not (the ability to run in a browser, detachment from a specifically-installed machine for your DOSBOX needs) and has dropped features that DOSBOX has (integration with serial ports, ability to mount local filesystems into the DOSBOX environment, etc.)

This means that I can say “Go here to try out MyMan, a Pac-Man clone made for DOS in 2000.”

The good news is you go there and it instantly happens.

The bad news is that if anything goes wrong, people instantly complain. Harshly.

They especially complain because it “works great” on the desktop version of the emulator. What they’re skipping is that as good or bad as it is now, improvement can happen, but you’re just never likely to get to a point where you say to someone “Try out MyMan – click here for a .exe file that will install DOSBOX on your machine, load MyMan, and allow you to start playing it.” EM-DOSBOX wins on Friction.

But if that friction is truly meaningless to you, you are one unhappy puppy and there’s a delicious, grape-flavored comment box just below the statement for you to fill with anger.

And anger! I thought the Internet was a machine for making copies. Turns out it’s a machine for facilitating anger.


A large amount of people have very poorly-maintained machines and browsers. That’s just always going to happen. Also, some people are running machines that are very, very old. So any experience that depends on their browser performance is probably going to be odd and possibly infuriating. (A note to myself is that we will probably make some “evaluate your system” process where you click on a URL and you get told about potential ways to make your system run better, or improvements that might need to be done.)

Some games run too fast due to a speed differential, however – that should be a shocker; the javascript implementation of the DOS emulation being too fast – and we have a solution coming very shortly.

The way that JSMESS ran in October of 2013 when we first announced it and the way it was running by the time of the Internet Arcade was night and day – we did so many improvements, revisions, updates and continuing efforts to jack up speed and responsiveness. That came from user response and improvements along the toolchain. I don’t see that trend changing going forward.

EM-DOSBOX improved markedly from last week to this week, and improvements continue. So, ultimately, playing the long game (and the Archive is nothing but Playing The Long Game). “It Just Works” is a definite goal.

Through the 4,000 comments, a lot of it is people arguing with each other, not putting forward any ideas, and obviously a microscopic amount of offers to help or assist. But there were some excellent pieces of feedback; the most marked being that people wished they could “save games” and come back to the site to continue them. I’m going to be honest – that never even occurred to me, that people would be intensely playing some of the longer games in the collection, and have to save them away for later. Looking back, of course, it’s obvious, just like a lot of the situations with “obvious” features. It turns out to be an involved solution, but one that’s being looked at.


There’s a little part of the mindset in the modern world that’s been interesting in all this, as well – kind of a perception that every single website, no matter who or what is behind it, is a Product.

Products have guarantees. Products are out to kill and murder competing or similar Products. And Products owe you something, because you walked in the door.

Maybe it’s related to the announcement and interest of the games aspect of all this. There’s certainly a rather bloody-knuckled approach to the millions who showed up, found some things working, some things rough, and then decided it was a Failure. I don’t think there’s a cure for that mindset.

Instead, as mentioned, I took what I could from it – improvements in the UI, changes in the options, and definitely improving the way the games can be tuned to work in the browser as expected. And that save game function!

I don’t know, at this start of the year, where we’ll be at the end of it. But it’ll be interesting to watch the journey. We’ve got years of work behind this now, and a year of effort ahead.

Let’s see where this takes us.


Categorised as: computer history | Internet Archive

Comments are disabled on this post


  1. Vincent says:

    Not sure if this is the right place, but I hope my suggestion is helpful nonetheless. I was attempting to play Zool 2 in my browser and while it loaded brilliantly (apart from a couple of sound issues which I‘ve seen is just what it is) I couldn‘t get it to respond to me. It said it couldn‘t detect a gamepad, please press your gamepad buttons. However, I wasn‘t sure what a gamepad was. I assumed it worked on a keyboard level, but it didn‘t. I appreciate I may seem like an idiot but I would like to see what constitutes as a gamepad, and some advice below how I could overcome this. Great effort by the way, it‘s just immense and I know what you mean about people wanting a replica of what they had when they were young just via a different interface. The fact you have it through a browser is just downright amazing!

    • daggar says:

      This might be applicable here: See the gamepad section of
      I say “might” because that post is using different emulation software than the Internet Arcade. Depending on what part of the software stack is creating the problem, the same solution might apply.

  2. enkiv2 says:

    Tangential question: is there any intention of archiving *demos* on the internet archive & integrating them with emulators? On the one hand, demos are likely to stress the emulators in new and interesting ways; on the other hand, the days of historic c64 demos are numbered and it’s probably worthwhile to preserve them in a way other than youtube videos.

    (Related observation: it’s possible that widespread access to browser-based emulation of old machines will lead to particularly perverse/masochistic people writing new programs for antique obscure machines, the same way that the vic-20 development community got a boost out of the ability to produce small-batch circuit boards and carts more cheaply, leading to vic-20 carts produced in the past few years with whole megabytes of memory and giant software libraries built in.)

  3. Tomcat says:

    I’m so looking forward to where this is going. 🙂