ASCII by Jason Scott

Jason Scott's Weblog

Taxes —

So, this:



…is the culmination of a back-burnered fear tornado I’ve been dealing with in the last couple of years – mostly making that final adult transition into tracking my finances in a meaningful way.

To that end, it’s a $25,000 IRS tax bill for my 2012 finances, which were rather off-the-rails odd as far as the IRS goes. (I’ve already paid for every other year, except this last one, which I will pay before April 15th).

People generally treat their finances private, but I’m not generally people, so I thought I’d quickly touch into what this all is.


When I got offered the job of shooting the DEFCON Documentary, I came up with a number for being paid (outside of the budget of the movie). That amount was how much credit card debt I owed, plus extra for other debts. And man, did I owe a lot of credit card companies a lot of money – $19,000, to be exact. And that number was not really going down very well.

By that point, of course, a payment plan had been organized with the credit card firms, but the terms were pretty onerous and they were still charging some amount of interest. One wrong move, and they had the power to do some ridiculous stuff. I wanted out of the credit card world, and so this DEFCON money was money that would really help me.

I got the payment, and immediately wrote out three massive checks towards the companies (two of them were Bank of America at that point – the third was Discover). And I knew I was walking away from the dragon when I intentionally overpaid Discover by $500 and they very nearly had gotten interest in the intervening time from the last bill to overtake that $500. As a bonus, I told them to close the accounts, all of them, and both put me on the oven for trying not to leave, and then Discover didn’t actually close the account – 3 months later I got a bill from them. Oh, the noise I made. Again, this was at the end of writing three checks, three fat checks, for the full amount owed, and then some.

So, credit cards. Out of my life. Gone. Owe them nothing. yay.


But after I filed all my taxes in my own, stupid way, I had made a huge, huge mistake, which is that I didn’t properly list the DEFCON money. Frankly, it was out of my mind – they’d given me some 1099 stuff (they’re a legit organization), and I hadn’t listed it.

This, it turns out, really angers the IRS.

So when they sent me a tax bill set that was something in the $40,000 range, that effectively got my attention. In the intervening time, I hired an accountant, went through ALL my finances on every side, and found write-offs as well as repairs, and generally re-arranged how I do this whole income thing. I should also note that I actually had a refund in 2013, and I suspect 2014 will be the “normal” amount a fellow pays for his salary and other income in the world. I’m not letting this happen again.


So, there’s pros and cons to sharing this – I’m sure I’ll get some level of jibes, or references. But be clear – I did this to myself. Nobody snowed me, I wasn’t told one thing and given another, and I certainly didn’t find myself at the mercy of some clever manipulation of The Rules to get me here. This was a legit mess-up and 2015 will have a non-trivial percentage of my time being spent paying this off.

I make a decent salary, and I knew this was coming, hence my request that any speaking engagements cover lodging/travel – I just can’t afford it for now. And I definitely won’t be covering too many dinners. Also, ketchup in water makes soup.

Life won’t be exactly a hardship, but it does cut me down in terms of leeway. No problem – I’ve weaned myself off of most expensive habits and I really enjoy working on stuff in my house and visiting people who are near me. The saturation may be a little down, but the year won’t be grey.

But that’s not really the reason I’m sharing this.

The reason I’m even going into this is because there’s a situation that affects some of the communities I run in, be they hacker or tinkerer or otherwise “smarty-smart” groups. And that’s the two big fallacies about financies: If you’re smart in how you do programming or tech or math, then surely you should be a taxes/finances genius…. and that if you don’t execute brilliantly along your monetary aspects, this is a shameful situation you must never bring up and hide.

I call bullshit on both.

I call this out and I step forward because in mentioning, conversationally with friends and associates, of the stress of this situation, people would reveal that they too had experienced run-ins with the IRS and general finances – either due to taking on too much debt, or misreporting income, or not understanding how penalties and liabilities affected their income.. you name it. Some had been garnished wages. Others had transferred funds in various places. Someone who I know who would rather I not tell you anything else about them was signing checks over to his wife so that it wouldn’t be immediately garnished in lieu of mess-ups from 1998.

Hiring an accountant, a good one that walked through things with me and gave me the homework assignments (with guidance) that allowed me to re-factor all my finances into something sensible and boil it down to a single bill… that was the best decision I made in all of this. He helped me go through years of materials, and we took a $37,000 bill down to $20,000, which cost about $1500. I may be financially dumb in some ways, but paying $1,500 to get back $17,000 is a heck of a deal. I wish I had more deals like that.

You are not stupid. And you are not alone.


Stepping out from a miasma of concern and fear regarding my finances into one of understanding and clear, present goals has been a breath of fresh air. It was, truly, one of my remaining huge emotional fears and concerns. And while one might not call having a $25,000 bill being out of the woods, it’s a single number. I can work with a single number. I understand a single number. So that, among all my other goals this year, is to get that number gone. Here’s hoping.

Again! You are not stupid! And you are not alone!

(Some percentage of people might kick into some “help Jason’s tax bill” mode, and I’ll just say – buy documentaries if you’d like, get me speaking engagements with honorariums, or just relax – I’m sound of mind and body, I will earn my way out of it.)



The BITSAVERS Renewal —

The Bitsavers-Internet Archive bridge continues to be a wild success.


(I mentioned this whole thing with an announcement from a couple years ago.)

If you’ve not been aware, there’s this amazing, amazing project undertaken by a small handful of individuals to go through stacks of computer documentation and just flat-up digitize it all. No muss, no fuss, no flamboyance, no showtunes. In go endless booklets, manuals, blueprints and spec sheets, and out come PDFs. By the truckload, it can feel like.

The only problem, and it’s a minor polish considering the gargantuan amount of effort put into it, is that the bitsavers site is decidedly spartan. It’s just directory after directory, without any real way to browse the things. You kind of have to know what you want, and you have to download PDFs to see if they’re what you’re seeking. Again, it’s a minor complaint considering the hard, heavy lifting of grabbing this material and digitizing it is being done, dependably, for years on end.

Some time ago, I leveraged being a bitsavers mirror to write some code that would absorb newly digitized items into the Internet Archive’s collections. By doing this, the PDFs get previews, some amount of word analysis, and an online reader. Win-win.

That was some time ago. The collection was well past 28,000 individual items. Items that, if you find them, have gems aplenty:

And, literally, many, many more.

This has been running pretty smoothly for years, but even the best of automated scripts break over time, and I sat down and did some much-needed maintenance.

I finally wrote the script that needed to be written some time ago – it goes through what actually got uploaded and what missed out for a billion reasons over the past few years. It turns out, between broken connections, system downtimes, and the many pieces that could go wrong, over 4,000 files had been skipped over. Those are populating as we speak.

In total, it looks like in about a week’s time, the amount of items on the bitsavers collection on will go from 28,000 to at least 32,000. That’s books, magazines, brochures, articles… and due to the highly focused work of the bitsavers folks (primarily Al Kossow, who does most of the scanning), the material is very agnostic – it’s not someone who loves Apple scanning nothing but Apple, or a person who likes videogames, or even someone who thinks it should only be brochures or manuals that get scanned. It’s everything, literally everything that sat near or around computers.

Closing the air gap from stacks of paper in a warehouse to digital files is a long, boring, intense road. I’m so glad someone is doing this, and I hope the collection as it stands on and the other mirrors is of a lot of use to a lot of people for a very long time.

The Emularity —

Last week, on the heels of the DOS emulation announcement, one of the JSMESS developers, James Baicoianu, got Windows 3.11 running in a window with Javascript.


That’s impressive enough on its own right – it’s running inside the EM-DOSBOX system, since Windows 3.x was essentially a very complicated program running inside DOS. (When Windows 95 came out, a big deal was made by Gates and Co. that it was the “end” of the DOS prompt, although they were seriously off by a number of years.)

It runs at a good clip, and it has the stuff you’d expect to be in there.

windeskBai, tinkerer that he is, was not quite content with that. He wanted this operating system, sitting inside of a browser and running in Javascript, to connect with the outside world.

That took him about 3 days.

winThat’s Netscape 1.0n, released in December of 1994, running inside Windows 3.11, released in August of 1993, running inside of Google Chrome 39.0.2171.99 m, released about a week ago, on a Windows 7 PC, released in 2009.

And it’s connected to TEXTFILES.COM.

Windows 3.11 definitely works, and all the icons in there click through to the actual programs actually working. You can open solitaire and minesweeper, you can fire up MS-DOS, you can play with the calculator or play audio, and you can definitely boot up Netscape and NSCA Mosaic, or mIRC 2.5a or ping/traceroute to your heart’s content.

The world these Mosaic and Netscape browsers wake up in is very, very different. Websites, on the whole, and due to the way this is being done, don’t work.

hackernewsdefconIt turns out a number of fundamental aspects of The Web have changed since this time. There are modifications to the stream that can be done to get around some of this, and we’ll have screenshots when that happens. But for now, the connections are generally pretty sad looking.

digitalTo connect to the outside world, the Windows 3.11 instance is running Trumpet Winsock, one of the original TCP/IP conversions for Windows, and which uses a long-forgotten (but probably still in use here and there) protocol called PPP to “dial a modem” (actually, connect to a server), and transfer data to a PPP node (really just a standard web connection).

This means that somewhere, this instance needs to be connected to a proxy server, which assigns a 10.x.x.x address to the “Windows” machine, and then forwards the connections through. Basically, world’s weirdest, most hipster ISP on the face of the earth.

In other words, this is janky and imperfect and totally a hack.

But it works.

It took about three weeks after I decided we needed to go with EM-DOSBOX in addition to JSMESS to work with DOS programs, that we had it up on the site and going out to millions. It has taken two weeks after that for this situation to arrive.

Contrast with how it took poor Justin De Vesine, working hard with Justin Kerk and a host of other contributors, eight months to get JSMESS’s first machine (a colecovision) to run at 14% normal speed inside a browser, for one cartridge.

IMG_1813717583062Welcome to the Emularity, where the tools, processes and techniques developed over the past few years means we’re going to be iteratively improving the whole process quicker, and quicker, and we’ll be absorbing more and more aspects of historical computer information.

Now the stage is set – the amount of programs that can be run inside the browser is going to increase heavily over time. The actions that can be done against these programs, like where they can be pulled from or pushed out to, will also increase.

What becomes the priority (as it has been for some time) is tracking down as much of the old software as possible, especially the stuff that doesn’t sell itself like games or graphics do. I’m talking about educational, business, and utility software that risks dropping down between the cracks. I’m talking about obscure operating systems and OS variants that fell out of maintenance and favor. And I’m most certainly talking about in-process versions of later released works, which could stand to be seen in their glory, halfway done, and full of possibilities.

Documentation for the software just skyrocketed in value – we had bai reading 1995 books on PPP troubleshooting to get things going. MS-DOS programs on the Internet Archive will need links to manuals to become more useful (this is coming). And just grabbing context will continue to be a full-time job, hopefully split among a group of people who are as passionate as the folks I’ve been lucky enough to come into contact with so far.

I can entertain debates about the worthiness of this whole endeavor as an abstract anytime anyone wants. But the flywheel’s in motion. It’s not going to slow down.

We’re there.


I should have known this was click-juice. Welcome everyone. To speak specifically to folks who “just want to try it”, I ask for patience in terms of this being available to try – it’s still so new and fragile, and frankly, it doesn’t help to have thousands of people hit on the thing, go crazy when it acts weird, and complain bitterly.

If you’re new to the Javascript Emulator party we’ve been throwing for the last year, may I humbly suggest visiting the Internet Archive’s Console Living Room, Software Library and Arcade? With over 25,000 items to try, there’s plenty to keep your attention before the next generation of stuff becomes playable.


The Haze of Possibility —

The game Grand Theft Auto V will send you on a large variety of missions and quests, many of which will require travel between the southern, more urban locations and the northern, nature-filled expanses. A number of roads and paths connect these areas, including mountainous trails, single-lane routes and a number of highways. One of these is the Great Ocean Highway, a multi-lane affair that swings along the west side of the island and into the city.


The day in GTA V is shorter than “real time”, so it’s a good chance you will catch yourself on this highway in the sunset or sunrise, the twilight hours, the golden time. This popular highway is filled with cars making their way north and south, driving at various speeds into the city or away from it. Among them will be you, often caked with blood or carrying passengers to the next quest, or both.

In the mile or so before you get into the city, the view ahead of you stretches far into the distance, and besides the lights of buildings and skyscrapers intermingling with the stars, comes the boardwalk, bright and beautiful, a hazy line stretching into the ocean. At the end of this horizon line of glowing activity is the blur of the ferris wheel and roller coaster at the pier’s end, turning ever so slightly, twinkling into the darkness.


That view, that hazy view into the boardwalk, has a lot of special, internal meaning to me. It’s a view that promises, just over the horizon, the fun and excitement I might be wishing it was part and parcel of. I didn’t always have the free agency to find my own fun – sometimes I’d be somewhere because the family or the group I was with was on its way to another function, one not as fun, and seeing the glow and promise of things in the distance might be all I got, and I’d craft a dream and hope from it.

Grand Theft Auto V is a marvelous thing, technically. The world is full and real. When I run into the edges of it, the places the engine and the construction fall short, I am so far deep into a situation that my complaint seems ridiculous: Emergency services fail to arrive when I explode cars at busy intersection. Strip club appears to have no roof access to service air conditioning, requiring scaling from other nearby buildings. Specific style of taco truck seems unnecessarily prominent around city.

But far and away, the most brilliant, beautiful thing is the lighting, which ranges the gamut from sun showers to cold nights, and from summertime-quality days to buzzing, foggy evenings. To remember the process of generating a functional, single-color sprite on my Atari 800 by calculating the binary behind each set of 8-16 pixels, it has been a privilege to witness how far the technology has come in my lifetime.

That a moment in the game, a simple one of driving into the city on the Great Ocean Highway, music blasting on the radio, could call me back to a feeling and emotion that has been a part of my life since the beginning… well, that’s maybe the highest compliment I can pay.




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.


Love and Noir in the Time of Ebooks —

I first met Chris Orcutt at the age of 11, and we both remember it exactly the same way – the wall at the condominium village we both lived in, who was hanging around, even who was standing where. 2015 is 34 years later. 34! That is a very long friendship.

We’re now in our forties. I’m a filmmaker, archivist, annoyance. Chris is a writer.

Here’s a good one of Chris these days, at his writing desk:


It’s a still from from a film I did about his insistence on writing his first drafts in pencil. (The film is here.)

Chris photographs well.


However, we usually look like this when we’re together:

Image4 Image6

We’ve both moved around a lot, but for the last few years, we’ve lived within a few dozen miles of each other, and getting together on a semi-regular basis is the easiest it’s been in over a decade, so we’re making the most of it. Good lunches, good walks, good conversation.

In his early 30s, Chris became a full-time writer. He’d been a writer for years before that, including for a newspaper, as a speechwriter, and as a copywriter, but after a certain point, he and his wife made the decision that he would dedicate himself, full-time, to writing. Writing novels and short stories and plays. Nothing else.

They’ve kept at that choice, with various amounts of hardship attendant, since then. Chris writes. He gets up in the morning and he writes the entire morning, then either does some reading or other research. Pretty much every day. For years.

Back in his twenties, when we were both going to colleges near each other in Boston, my friend started taking a poor turn. Drinking got amusing, then prodigious, then alarming. It got to a point I simply assumed my very good friend, my best friend, was going to die, so I tried to enjoy what time I had with him.

As he has discussed in the open more recently, Chris had an un-diagnosed bipolar disorder. With medication and medical supervision, it’s under control, the drinking is rare, and my friend is alive to this day. With this control came the ability to focus on tasks and quality of work that shows in his efforts since then.

And that effort, I will say one more time, is writing. Pretty much every day. For years.

The result of this writing has been a collection of novels. They include a three-novel detective series, the Dakota Stevens Mysteries, and two short-story collections.

They’re good. They’re unquestionably good.

He has not wasted his time, his years, poured into these projects. I’ve not had to look away and make excuses for them, or call a glue-ready horse a racing champion. He’s done fantastic work here, and will continue to do so.

Here’s why I’m talking about this.

The third novel in the detective series just came out. Of his going-full-time novels, this is the fifth overall. He and I both do these long-term projects (he the books, I the movies) and we don’t look at each other’s stuff, in-process – we wait until the end and enjoy it with everyone else. So on the day it came out, I bought and downloaded the third novel, A Truth Stranger Than Fiction, and damn if I didn’t devour that thing in a day. I read very fast and vociferously, but I take the book in along the way. And the book’s good. Damn good.

While I didn’t read the in-process novel, I went to a lot of lunches with Chris during the year he’d worked on this book (and he’d written drafts before the intense year) and I know how many times he read the thing, how many drafts he pounded out to get it where it was, and how much editing and polish he put on it, across months, to get the book where it is. This thing’s a craftwork wordsmithing of the highest order for Chris. You may diverge from opinions stated by characters or you may be surprised at which way things go, but none of his books, none, have the sour feeling of a good idea burdened by crap writing. He wrote these for the ages.

This turns out to be a problem.


If you haven’t observed this already, I’m a whirlwind of input and output. I splash through a hundred hangouts, online and off, a week. Tracking down the most minute of factoids just to prove a point in a web-based conversation I wasn’t even in two hours ago is my idea of a good time. Shit howdy do I like splashing through life’s intellectual wading pools and swinging a bazooka of manic lyrical fireworks. Pump me full of the hottest images from imgur, the latest insanity out of hackernews, the twitter tornado of the moment. My tolerance for the always-on glut of intellectually stimulating-and-stultifying river of human experience is legion. Bring it.

Not so much, with Chris.

The rough years of his twenties and the writing years of his thirties and forties have diversified the two of us. In our teens, we were both pretty hyper and bring-it kids. I’ve turned that up to dangerous, slap-a-warning-label-on-it levels. Chris has instead focused on his craft, his skills, in the art of writing. It’s made him different. Not less of a person, mind you… far from that. It’s his years of focus that’s made him really great at the writing he’s aimed his life around. He is the monk, waking to the cold water of the stream and practicing, and I am the insane brother living deep in the city, buried under twelve crazy deals and all kinds of trouble. Different choices.

All said, we still get along.

But it does mean that each time Chris emerges from this thing that means so much to him, this novel that he’s poured hundreds, thousands of hours into… he just hates the way things are. It’s like he’s brought the best pie he could bake to a fair where folks are gleefully handing out Hostess Fruit Pies and crowing at how the flaky crust and the cherry-flavored-filling is a meal fit for a king.

hostess pie


He gets really sad about it, sometimes. Books were, and continue to be, special. But the modern world is working very hard to make the kind of effort Chris puts into his part of the writing landscape a waste of time.

What he wants is for the books to be available in 1975, making a splash with the effort he’s put into them, meeting up with others doing equivalently hard work, and taking his residuals while taking his wife to exotic locations to do research for further writing.

What he gets books are available on Amazon. Amazon takes away the problems of a warehouse of rotting copies that your publisher isn’t promoting, and enables to-the-moment direct control by the author of the sales and pricing of their book. For that advantage, Amazon has progressively, and I do mean progressively, destroyed writing books as a career for any writers who are not in some way self-promotion machines or blowing three quarters of their time that should be spent on their books, on blog entries meant to drag in readers.

Amazon’s structure favors people shooting out a bunch of crap, in serial form, to constantly stay in the promotional frame. Amazon’s routines disfavor older books, with “older” being a month or two ago. And ever-present “sales”, “prime” and “deluxe” situations are existing where Amazon is heading towards making books into an “all you can read” Netflix-like situation, where people pay Amazon $10 a month and they get all the books they can slam down their gullet.

This is not what he signed up for.



I’ve done this rodeo before.

Here, I’ve told you my friend’s craft and pain, and the more passionate reactions will tend to be along two lines of thought, with a bonus track.

The two lines are

  • Fuck your buddy. Sorry to hear he came down with the born-too-lates. It’s a world of self-promotion and staying-with-the-times and he better learn those skills as well as he’s apparently learned to write. Or get a second job.
  • Writing has never been a self-paying job – congratulations on learning what we all knew.

(The bonus track is, “oh, a book series to read, I’ll check it out.”)


So, both of these are wrong for what I’m talking about here.

First, I think the world is seriously suffering when everyone is writing garbage teenage supernatural romance with a chapter’s worth a month. I realize there has always been crap and Sturgeon’s Law reigns supreme, but that doesn’t mean Sturgeon’s is an end goal. I make the argument that there’s got to be some middle ground – that as we’ve been working so hard to make it easy to transport electronic books in seconds and share them among ourselves in seconds more, that we lost some of that imprint feeling, of knowing a house of publishing was going to give us winners and it was worth the effort to seek out the newest titles. I think it’s a problem, and a problem that needs solutions.

Second, there have been writers who have made it a career, after they put in their dues. Chris has, trust me, put in his dues. After saving for years, and with a boost from sales from a book, husband and wife took a trip to Paris (which was then used for research for a later novel), and this was the first time they’d done any vacation in a decade of marriage. Dues? Paid.

I can’t wrap this entry in a bow. I can’t even bring you the place the plot is going to go. I don’t know what’s going to happen. My friend has skills that outstrip mine in many ways, and I get lots of goofy press for my efforts, while he works in relative shadow.

I thought, maybe, I’d shine a little light on a friend’s lifetime effort, since it deserves a beam many times brighter than it has gotten.

And maybe, just maybe, send them to Paris again, one day.




That Whole Thing With Sound in In-Browser Emulation —

We’re past 4 million verified MS-DOS players on the Archive this week.

So that’s something.

It’s time to really lay out the floating elephanty-thing related to this whole in-browser emulation kick – sound.

Sound on the in-browser emulators (be they JSMESS, EM-DOSBOX, or others) suffer from sound strangeness. In JSMESS, it works fine except when it doesn’t. In EM-DOSBOX, it works, but it does this kind of strange fluttery-ness that, if you’ve got experience with the originals, you notice right away.

Both are the results of a specific situation with browser audio, and the work that the Archive has been doing to bring this all to a mass audience is bringing the situation to the forefront. I just needed somewhere to send people who go ‘sound seems weird’, and so here we are.


One of the side effects of this project is that I had to spend years following the week-by-week advances and activities of the current lead Web Browsers in how they handled things like Javascript engine improvements and other features.

As might be expected, I’m not a fan.

The rest of this is insider baseball, but if you want to know why audio has an issue, here it is.

Currently, there’s four active large-scale browsers with any traction and attention. They are Chrome, Firefox, Internet Explorer, and Safari. There’s others, just like there are other land-line telephone companies and there’s other network hardware companies and there’s other search engines, but come on. As part of the testing procedures for JSMESS I took a sample of the other browsers that were hitting the Internet Archive and installed all those things. Many of them are Chrome and Firefox, recompiled with features added in or features ripped out as the tastes/anger of the maintainers dictate. This just adds more lint to the Big Four.

(Also, as regards Safari, I’m being really nice including them.)

With four browsers to consider, it then comes into play about how they will handle certain standards so that something that appears on one browser will appear some level of the same on the others. Examples include rendering of fonts, tables, adding buttons, allowing control of keyboard, and so on. On the whole, generally, the world has gotten by.

Here, at the beginning of 2015, the big drag is Internet Explorer. Forget the future and the present; the past has been rolling updates for browsers, so that Mozilla/Firefox and Google/Chrome are basically making major, wholesale changes to the operations of their browsers a few times a month, as it suits them. Safari sort of follows suit with much less frequent work, but the system is in place to allow them to do it when it pleases them. Meanwhile, Internet Explorer drags along, basically doing a major scary X.0 release every year… except 2014, when they didn’t do a single release.

Here’s where we start to run into the issues with stretched supply lines, a la warfare, except here the war is to bring runtime-quality items on webpages.

Firefox and Chrome both have in-house speed-up flav-o-paks for making their stuff run quicker. Firefox has ASM.JS, and Chrome has NaCL. ASM.JS will work in all the major browsers, and NaCL is kind of a sleight of hand trick. They both want the same thing – to cheat out certain programming actions and runtimes so that they run very, very fast in the browser. ASM.JS, since it’s basically Javascript, will run in the other browsers, but Firefox has gone ahead and written in-program routines for noticing ASM.JS is in place and then optimizes it further. Therefore, programs like JSMESS, that use Mozilla’s Emscripten compiler to make their run-times, run significantly faster in Firefox then Chrome. In an ideal world, the end-user doesn’t notice because once you get to a certain speed with, say, emulating DOS or a video game, you just have it. It’s done. But it’s not an ideal world.

So, essentially, JSMESS and EM-DOSBOX run pretty fast in Firefox, run a little slower but fast enough in Chrome, run notably slower in IE, and run OK in Safari. Tiny-share browsers using Firefox’s engine therefore get the speed boost, and the Chrome-based browsers get that amount of speed.

IE could release another version soon, and blow everyone away, and then another year will happen. For better or worse, they really should be on the same ridiculous twice-a-month schedule the other browsers are rocking.

Let’s step back.

00_coverscreenshot (11)

All of this back-room crapola is part and parcel of the entire software industry as a whole -there’s nothing special about it related to browsers. The only reason it even gets attention is because the nature of the web has, for the moment (a moment lasting 20 years) forced natural adversaries into cooperation, because initial attempts to be “THE” browser for the web by both Netscape and Microsoft fell on their face. In other words, because nobody could really “own” the way webpages were being made, all the browsers had to do work to make themselves at least superficially coherent when it came to standards.

Along the last 15 years, there’s been weird little deals and tricks employed to make one browser seem “better” than others. For example, IIS webservers (made by Microsoft), if they detected they were dealing with Internet Explorer, went into this kind-of-not-a-standard mode that basically wrecks TCP/IP but ensures really fast data transport. (In high-level terms, it stops waiting for acknowledgement and just blasts the data.) Google added some really persistent programs running in some operating systems (Google Crash Handler, among others) that were “helpers” that gave their browser some resilience and options. And now we have ASM.JS and Firefox’s both providing the new idea and the others not really wanting to endorse it in any meaningful way.

Most of this is very boring.

But let’s proceed, in this fogged landscape of standards and trickery, to sound.


So, you start up a game of Smurfs: Rescue in Gargamel’s Castle, and it either works for you, or it doesn’t. Generally, it will run at full speed in all browsers. Sound, however, is another situation entirely. When the game starts and the music begins, it either sounds clear, or it does not.

The reason for how it sounds is multi-fold.

First, when you listen to an audio track (or a video track with audio) or you play a javascript-native videogame, or anything that’s using audio in a webpage, in general these items have a set of pre-made, rendered, finished audio files in them. An audio track is obviously that – a multi-megabyte .wav or .mp3 file, and a video has an audio track that is same. A videogame will have a little pile of samples. All the audio routines in browsers assume this is how the world is, and what the world will be. And generally, that has been the case and all has been good.

JSMESS breaks that, as does EM-DOSBOX.

Instead, these items are generating chunks of data, live, and mixing them as they go. They’re not preformed samples being pushed out – every millisecond is brand new, and won’t repeat.

The current standards don’t like this situation at all.

Mozilla had cooked up an audio standard that sort of dealt with mixed audio, but that standard has been removed in favor of a shared standard called the Web Audio API. Here’s the current version of that standard. As you can see, Google and Mozilla have people working on it. Microsoft isn’t evident, but who knows. Apple is MIA as well.

I’ve been told that if this standard gets formalized and gets implemented, it will just “fix” the audio problems. It accounts for programs like JSMESS/EM-DOSBOX doing dynamically created audio. Emscripten will then observe this standard, and then compiling JSMESS will push it through and we’re in happy audio land.

I want nothing more than this. I have nothing I can contribute directly to the standards bodies other than to say it’s obvious millions will benefit.

So that, in a nutshell, is why audio currently has problems in the in-browser emulators.

But let’s go one step deeper.


At the Chaos Communications Congress this past December, there was a talk by Olia Lialina called The Only Thing We Know About Cyberspace is that it’s 640×480. it’s a wonderful walk back through the Geocities pages of yore, which Archive Team was one of the contributing groups to get the data.

It’s a great talk. You should watch it.

Fundamentally, there’s a theme in Olia’s speech (and the speech of others in that space, like Dragan Espenschied, Ben Fino-Radin, and so on) bemoaning the move away from a space on a website being the province of the users, and being turned into a homogenized, commodified breeder farm of similar-looking websites with only surface implementations, like WordPress, Facebook Pages, and so on.

Well, if you’re wondering how the good goddamn that happened, look no further than what I’ve just been talking about with the Web Audio standards and the endlessly shifting goalposts of the browsers.

There was a time when a person who was not particularly technical, or whose technical acumen was sufficient to get applications running on a machine and not much more, could code a webpage. The tags were pretty straightforward, the uses of them clear, and the behavior pretty dependable. Much how one could, in a weekend, learn sufficiently how to pilot a sailboat… such was that a few weekends of study could allow a person to craft a fun little webpage, with their voice, their stamp, and the idiosyncrasies of their personality shining through.

Those days are gone. Long gone.

Instead, we have this (as my buddy Ted Nelson calls it) nightmare honky-tonk of interloping, shifting standards soirees that ensure, step by step, bylaw by beta, that anybody who isn’t willing to go full native will be shut out forever.  The Web’s underpinnings, at least on the basic HTML level, have been given over to the wonks and the engineers, making it an impenetrable layer of abstraction, not worth your time to learn unless you were looking to buff up your resume, or if some programmer pride resided in this whole mess being in your job description.

As I’ve said before, the idea behind JSMESS is meant to be greater than Browsers, Javascript and the MESS emulator. I use all three of these components because they reach the widest and have the greatest chance of survival on all sides. If one fails the project, it’s out.

In the world of Browsers, right now, there’s a group (Emscripten) which is making the porting of C++ programs (like MESS) pretty simple to compile. They’ve gotten so good at it in the last few years, but we should never lose track of the original fact, which is that the entire project is botard insane and the result of an insane and terrible situation. I appreciate everyone’s efforts, but that fact remains.

IMG_0218What we’re left with, and this is the god-awful truth, is a world where people have either gone full immersion into this bizarro world and can talk, with a straight face, about coding Ruby or Python for The Web, and people who have long ago given up understanding it and who just slam the side of their computers like a TV that isn’t getting the local news station properly. And both sides have contempt for each other, and it didn’t have to be this way, but here we are.

My hope is that the Web Audio API will get the overhaul from the new standards that it needs, Emscripten will reflect these sooner rather than later, we will tell the shut-out masses to “upgrade your browsers to the newest version”, and we’ll all just have nice little games and programs in our web pages and we can forget how much of the landscape of Brazil is lurking underneath our browsers’ clean, crisp buttons.

The MS-DOS Flood (And the High Flight of V2) —

A couple days later from my entry above.

This has already significantly dwarfed the Internet Arcade. Thousands of people are hitting the site a minute, playing MS-DOS programs, writing reviews or keymappings or just freaking out about seeing this whole collection available and playable.

The choice to send everyone to the Version 2 beta interface has also been nice – lots of useful, interesting feedback, good comments, and people really working out the rough spots. The system got a fix-up during this and runs notably faster. The whole Internet Archive infrastructure is getting the workout it deserves.

A long time ago, I wrote about Opinion Spectrum Collapse Disorder, where if enough online attention is aimed at a thing, whatever that thing may be, the resulting flood of commentary will quickly expand out, like a gas, into every conceivable tangent, subject or opinion, until the whole thing is kind of meaningless for “this is what is being talked about”. Celebrity gossip stories seem to attract this particularly: talk about a celebrity buying coffee at a supermarket when they are anti-coffee, and the comments will quickly blow out into the celebrity, the notion of celebrity, something the celebrity said or did 10 years ago, coffee, supermarkets, Ayn Rand, and cat ownership. It’s just the way things are, now. I don’t know if there’s a vaccine for that. OH NO I SAID VACCINE

14223550930_ff50c301dd_oSo yes, people are coming to the Archive in droves to get their MS-DOS on. I think the number is either over a million already or will be soon, and it may be more. The Archive (very admirably) does not log users in any meaningful way, so it’s not like I’m going to be able to run Webalizer on the stats directory. I suspect that, like the arcade, we’ll be into multiple millions before the week is over. Enjoy.

And I think the feedback from the Beta/Version 2 interface has been a spectacular boon – it’s a direction the archive is going in, and the massive stacks of information it maintains will be that easier to go through. The journey to the upgrade isn’t over – but it’s bringing a lot of people into contact with the Archive’s information that might have missed out on it before. The bounty was always there, and folks inside and out are happy to enjoy it.

The rest of this entry is me just answering a bunch of questions for people and reporters, because both camps just kind of make stuff up when they’re not confronted with actual facts. The answering will be in the form of an essay, not a FAQ.

Actually, speaking of a FAQ, here is the Internet Archive FAQ for the MS-DOS emulator. That answers a lot of the technical questions, or what seems to slow people up. So if you’re just here because SPACE BLORTS isn’t working for you, I think that’ll help. Otherwise, let’s just throw out some thoughts I have and some information people seem to want.

Internet Archive Employees, Weekly Engineering Meeting


It is adorable that press and some bloggers have turned the narrative into “Jason Scott did this”. I am a top-hatted loudmouth for a very, very large amount of people who have poured decades of human years into what you see when you start the emulator and it goes “boop”. This includes the dozens of employees of the Internet Archive who keep things running, the developers at the Archive who have made the emulator work in the infrastructure, the developers and volunteers working on the JSMESS and EM-DOSBOX emulators and their porting to Javascript, the Emscripten developers (many) who have made the system work incredibly in the last couple of years, and the emulator authors (now we’re up into the hundreds) who have slaved, tirelessly and with scant recognition, for coming up on two decades to save the software by saving the running of it in simulated/emulated hardware.

I have a strong presence and personality, and a very strong will, so keeping my eyes on the focused goal over the past three years has been something of a contribution, but I’ve written a minuscule amount of code, mostly in the form of scripts. I’ve watched people max their brains out trying to make a system do something it was never designed to do, and watched others figure out how to wend deep into code to make completely indifferent and goliath codebases interact.

I am fearful to write out a list of names right now and miss people, but maybe sometime soon I’ll do an entry where I just talk about all the people and the worlds that have collided to do all this. It’ll be quite long.



Some quick technical things. This weblog is absolutely packed with entries describing the JSMESS system that the vast majority of systems on the Internet Archive use to emulate consoles, computers and arcade games. Just use the search box and look for “JSMESS”; you’ll be rewarded with the years of entries on the subject, including pleas, triumphs and tribulations. I don’t feel the need to repeat that here – if you want it, it’s there.

What I do want to say is a few words about the differences between JSMESS and EM-DOSBOX, which is what the MS-DOS systems work on.

I was not happy about adding an exception-based emulation system into the mix, but JSMESS isn’t quite ready for MS-DOS yet, and I think it’s a ways away from it. When it works, it’ll work really nice, and maybe we’ll even switch over to it, but for now, it started to become a real problem in the timeline of the Archive’s software collection that we were emulating the ZX Spectrum and the Atari 800 and Apple II, but not the massive juggernaut that has been decades of MS-DOS compatible programs. So I made that decision and a bunch of us put our faces to the grindstone and that’s what got announced – EM-DOSBOX.

A random slashdot anonymous poster claims they did critical work before the implementation of EM-DOSBOX, but the EM-DOSBOX Repository appears to be a straight fork from DOSBOX, so jury’s out, but I didn’t have any direct involvement in DOSBOX or EM-DOSBOX, but I’m fairly sure the lineage is direct (although there have been other javascript ports of DOSBOX in the past). If so, step forward and take your glory, soldier.

EM-DOSBOX is a very fast, very slick porting of DOSBOX, using the Emscripten compiler to bring the code into the browser. It implements some tricks which even JSMESS can’t do quite yet, and which might lead to speedups in the future along that line. I can run some EM-DOSBOX emulations at full-speed on my phone, which is sufficient for me to throw up my hands and say the future’s here.

The biggest difference between EM-DOSBOX and JSMESS is that JSMESS wants disk images, gathered magnetic copies of the original booting medium. (An example on the Apple II would be SPACESHIPS.DSK, where this is a “Spaceships” Apple II floppy portrayed as sectors that JSMESS reads like a disk). EM-DOSBOX is quite happy with a .ZIP file of all the files needed to run. It’s rather convenient because the vast majority of MS-DOS materials are sitting in .ZIP files (or .ISO files if they’re CD-ROMs, but we’re not doing those at the moment). The only downside to this is that you have to tell EM-DOSBOX what the “starter file” is in a collection. That’s something that can’t easily be automated, so I have to go into each .zip and do a best guess of what probably makes it go. AUTOEXEC.BAT’s a good guess, as well as PROGRAM.EXE where PROGRAM is the name of the program being run. But I get caught out all the time, and with thousands of programs, how the hell did I deal with that?



The answer was the Screen Shotgun, the automatic player-and-screenshotter script pile I’ve spent a while putting together over the last year. I’ve written lots of entries about THAT process as well, stalwart inquisitors – just search for “shotgun” in the weblog search box.

These days, I have a version of the script that can start up on an Amazon EC2 instance and I can run any amount of systems at 14 cents an hour to generate screenshots as fast as possible. These emulator-playing robots serve multiple functions, but the big ones are that they can take a bunch of screenshots of the programs and remove the doubles, and they can serve as a basic Quality Assurance team, because if the game doesn’t work, the screenshots are going to show it.

Hey, look, 2000 MS-DOS Screenshots taken by robots. That’ll hold you for a while.

The most annoying difference this time was that the MS-DOS programs switch up their resolution, with VGA vs CGA and so on, and there’s not a locked specific “size” of the canvas. A few kind folks on twitter took me under their wing, with various solutions, and I chose one that was very, very flexible, removing the need to hand-type-in resolutions going forward for future machines. The power of the crowd, they say.

1389149289357A number of people to pop in among both this and the other major software release events have said something along the line of “what’s the point”, or “this is a terrible thing”, and like anyone working on a project, it’s kind of a waste to engage people who are stopping by with that position. Obviously, if I spent years on it, I thought it was something worth doing. I’ve tried to articulate why on multiple occasions. It either sticks or it doesn’t.

But the fundamentals are pretty straightforward:

  • Software is history. It is culture, it is process, it is a signpost.
  • Software also has a ridiculous half-life. A year or two, with few exceptions.
  • Software, unlike many other media, has a massive barrier to using it.
  • This barrier does nothing but grow over time. Over enough time, insurmountable.
  • Coming up with solutions like in-browser emulators promises to lower barriers.
  • If people can’t see or interact with software, it disappears. Utterly.
  • This project is an attempt to lower that barrier, ideally to nothing.

After these statements comes a lot of endless debate and discussion, and I’d rather be sitting in some room with a microphone arguing with someone than dealing with e-mails and weblog entries, but I think, much like my work with Archive Team, that once the core subject being debated is deleted or gone (or effectively gone), the conversation essentially ends.

What this army of volunteers and collaborators have done with javascript emulators is we’ve stopped the conversation from ending. We’ve essentially jammed the door open. It’s here now – we’re in a world where computer and software history runs in browsers, and that’s that. It’s refinement and iteration here on out. If my time or priority takes me away, the work will continue. That’s done, that’s a fact. Nothing will take that away, now.

Going forward, I expect debate in places where this effort collides with commercial interests, but I can tell you one thing I’ve learned, maybe something intuitive to people who work in the space of preservation or curation, but still worth mentioning:

In the realm of historical objects that have started their cultural/contextual journey as products, there are a specific subset that have gotten the attention, effort, quality preservation and presentation befitting a worthy project to do so. But that’s it. The vast, vast, vast majority of commercial products, including hardware and software, sink without a trace, or end up in attics or collections with only glancing references made. Maybe a completist providing a text listing of “what there was”, or a wrap-in of a few more-obscure B-list examples, but then it’s this giant, yawning abyss.

I figured, in the example of Arcade Games, that The Nerds would have long ago gutted, garrotted and filleted the history of all arcade machines enough to tell us who worked on it, what it consists of in terms of gameplay, or the usual love one sees showered on a Pac-Man or a Mario. No. No, not at all – there were (and are) games for which we have the ability to emulate a ROM dump someone did as long as 20 years ago, and a photo of a machine sitting neglected in a warehouse. Nothing else. And this is arcade games, where one could argue there was a perfect storm of subject interest, intensity of fanbase, and overlap with the most curatorial personalities in terms of maintaining information. Nope. Sometimes the games exist as a single found circuit board and everything else was imparted from that for the purpose of an emulator.

Now extend that to software, and it’s much, much worse. Now extend it to non-gaming software, especially custom software, and it’s even worse than that.

While people wring their hands over the preservation of Doom, a hundred thousand programs are at risk of being locked away only to people willing to burn hours to spellcast them into function in private geek caves.

This is a real and functional problem, and it has real consequences. This set of projects is, at some level, a strike back against that. It’s worth the doubt and the derision.


Finally, the little prayer I always say.

I’m very lucky – I’m working for a wonderful non-profit library, a dream of a lifetime. It allows me to work on projects like this, to maintain the effort to keep the project focused, and to have a platform to make the project available. That’s due to the forward thinking of Brewster Kahle and my various managers at the Archive, that they let this maniac onboard to work on things. I never forget to be grateful.




The MS-DOS Showcase (And The Ascension of Version 2) —

2,400 MS-DOS games and programs have gone live on the Internet Archive. The full collection is here and the games-specific section (basically all of them, for now) is hereBut wait before you click on those two links.

That’s the headline, and based on the thousands of plays that this collection has already gotten, a pretty well-known thing if you were looking for it. Considering the Internet Arcade has dragged in over 5 million people, this new collection will probably bring in a flood of its own. Welcome.


Let’s talk about what makes this different than the other playable software libraries I’ve been putting up.

First, I really worked hard to have only fully-functioning programs up, or at least, programs that gave viable, useful feedback. Some of them will still fall over and die, and many of them might be weird to play in a browser window, and of course you can’t really save things off for later, and that will limit things too. But on the whole, you will experience some analogue of the MS-DOS program, in your browser, instantly.


Next, this is the first time I’ve successfully bridged metadata with Mobygames, the game information database which has been running for many years and recently returned to private management. My scripts yank in metadata from the entries, and place them in a relatively sane way into the descriptions. It’s not perfect, but it’s pretty good. Best of all, if someone overhauls the entry on the Mobygames site, I can see about pulling in the improved data into the Internet Archive item over again. So it’s still a one-way pipe, but it’s a fast one-way pipe, and the games make much more contextual and informational sense now.

Anyway, here’s the next big deal – I want you to start really getting into the Version 2 interface of the Internet Archive. So, go here:


This is a way to go directly to the Version 2 of the Internet Archive’s interface. In the upper right, there’s an exit beta button, so you can always pull the rip cord.

The Archive introduced v2, or “the Beta Interface” late last year. It was slow, stocky, and freaked people out. But folks got the idea, mostly – it was taking a site that had only incremental changes for 13 years, shaking the whole story up, and re-imagining the whole thing as a visual and browsing collection, as well as a way to dig deep into the materials.

Since last year, it’s gotten faster, slimmer, has added a bunch of features, and continues to become better to use. But it needs feedback, which is why I’m pushing you at it.

Enjoy the games, and check out all those beautiful screenshots! Play a few programs, note how you get around to things, and talk about what works and what doesn’t work for you. There’s a feedback button – use it. The goal is that you will be able to do everything you can do with the old interface with the new, but that you’ll have so much more happening on the new one. And remember, v2 works across all of the Archive… all the collections are out there, be they movies, books or audio, and the new interface has cool ways to interact with them as well.


As for the software library itself… many titles will stick around – some will go, or change, or be replaced. This is still brand new territory, and with the addition of the MS-DOS programs so far, this no-plugin in-browser experience is one of a kind in the world. I’m working just as hard as the V2 devs are to make everything work, and it wouldn’t be worth my time if I didn’t have people trying it out, commenting on it, and making use of it.

So please, let’s start 2015 right – in CGA and with a brand new way to use the Internet Archive.


Each New Boot a Miracle —

This week, we got the emulation of MS-DOS programs (mostly) working on the Internet Archive.

Up to now, every single emulated system has been via the JSMESS project, which supports well over 600 systems and which does a hell of a bang-up job on it. The fact that one system (MESS) emulates everything from an Atari 2600 to an Apple II to a PDP-1 and so on… that’s pretty amazing stuff. And when we had well over a dozen people intensely involved in porting MESS to Javascript, it made sense to use this one emulator for everything, since once we got the work done, it just worked, for many many systems. It was good, economical effort.

There are, of course, many other emulators out there, some of them little hacks meant for one machine and some which handled multiple systems. Some of them, over the years, simply got absorbed into MAME/MESS, and others died out.

The MESS developers have biases and preferences, like anyone else, so there are systems that have gotten a ton of attention, and systems which have gotten some rough scaffolding, some proof of concept, and then little else. This isn’t to say they’re slacking off, of course – it’s just that there’s a lot of work to do in a lot of directions and they move along at the speed they’re comfortable with. Also, they’re more focused on getting it accurate and hardware compliant than fast and easy. This is, absolutely, the best long-term solution – just hacking things to “sort of work” is the province of forgotten half-functional messes that don’t function with an OS upgrade or an app change.

Also, there are cases where a system gets a burst of love from a developer and it just sings. Recently, the Apple II driver within MESS (and therefore JSMESS) got a massive boost in cleanup, rewrite, and expansion – and the result was a fast-moving (nearly 10 times increase in speed) wonderbomb that can handle graphic modes and settings that previously dropped everything. MESS continues to be the best choice in emulation, long term.

However, projects that focus, intensely, on one platform for emulation will do amazing work in support and accuracy. They’re not 100% flexible and they certainly take shortcuts here and there, but they work really well for what they are.


One such project is DOSBOX, the DOS emulation system that has been around for over 10 years, and which does one thing, the x86 architecture and specifically running of DOS-compatible programs, pretty well. It has different goals and approaches than MAME/MESS, but it a very respectable and well-run project, and we’ve all benefited from their work. Except for the fact it only does one platform instead of 600, it would behoove the JSMESS team to attempt a port of it.

Luckily, someone already did that.

Dreamlayers ported DOSBOX via Emscripten into a browser-functional emulator. He did it all by himself, and he did it very well, all things considered. His name for it is em-dosbox.

I’m just going to lay it out and say that Dreamlayers is a software engineering genius, one of those people with a gift for coding and making things work not just better, but understanding what things have to be left tied down and waiting for later improvements. Most of his em-dosbox notes are where Emscripten falls down as a compiling and conversion platform, with indications of how they can be improved. And buried in the code of his is an alien artifact that makes the generated javascript from the process run extremely fast. It’s called and let’s not go too deep into it, other than to say that if we ever figure out how to plug it into JSMESS, fireworks will result.

Now, em-dosbox is not perfect – far from it. It can freeze a browser, and it runs into problems of all sorts when running some of the oddball machinery that the DOS world produced between 1980 and (roughly) 2003.

But when it works, man, it just works. Clear as a bell, right as rain, a DOS window boots into a browser. If you go fullscreen, the mouse even works. (It works in not-fullscreen, but then you see both the desktop and the emulator cursors and your brain is sad.)

It’ll be a little while before the collection is really public, as there’s now the process of throwing thousands of DOS programs into the system, verifying they boot, making screenshots, and all the rest of that delightful curation the world hopes is waiting for them.

But it’s happening. It’s really happening.


And now more fundamentally, the personal take, and why this three year journey has been so worth it.

MS-DOS was always my main thing; I coveted the Apple II world, really got into the Amiga when it came out, danced among Ataris as I could, but for the vast majority of my “work” or whatever a teenager’s activities count as, I did it on MS-DOS.

MS-DOS was what my primary computing machine was from 1983 to 1988 – I hacked on the exact same machine, with minor improvements, all that time. I grew used to the clack of the keyboard, the arrangement of the fonts, and I never really used a windowing system on it for any time in high school. I called BBSes and online services with the internal 2400 baud modem – all the files I’d downloaded for my textfile collection, and which ended up on TEXTFILES.COM, passed through that machine.

Work under any system for long enough and you buy into its processes, whether you want to or not. And I bought in big. The grey on black text, the directory structure, the FILENAME.EXT system, the all-around aesthetic. I feel DOS systems glorify text in a way that other computers didn’t, due to IBM’s long, long history at providing the cleanest, crispest fonts for typewriters and correspondence. I was an IBM kid, after all, and my father’s acquisitions of company-made computers had me fully involved in it for years and years.

So, MS-DOS is my thing, and getting this working was my thing.

A lot of people poured themselves into the original DOSBOX and EM-DOSBOX. But two people, Daniel Brooks (freelance) and Hank Bromley (Internet Archive Dev) worked very hard for a significant amount of time to jam the EM-DOSBOX system into the Internet Archive environment, which is much more difficult than one might expect. Imagine playing a chess game by keeping the board in your head and dropping coins with move descriptions written on them down a grate and you start to get it. A lot can jam up in the pipes, and the whole thing wasn’t designed for what I’ve been making it do. They worked for days on end, bouncing iterative changes, seeing the results, and at the end, it worked.

The functionality of the MS-DOS/EM-DOSBOX emulator within the Internet Archive environment has more caveats than a gym membership, to be sure – dropping to the prompt currently freezes it. You have to tell it what exact file is the “boot” file, the one that will be executed on startup. Too big a file, and it blows out your stack. It doesn’t write out to the emscripten filesystem, causing some to blow up because they can’t write to “disk”. And the sound… well, sound continues to be an issue until the nerds-that-be fix them in the browser world.



When it works, it’s glorious. The speed is really clippy, the prompts blink like I remember, and as it plays CGA, EGA and VGA graphics out and hits the notes, I can sit back and enjoy that clean, crisp little world I spent so much of my childhood in.

And more than that…

The Arcade, while fun, is not a technologically advanced project, and the systems are beyond simple – they work or they don’t. They boot up, they play music, they take your quarters, they play a game. I knew people would love them, and they certainly provide entertainment, and they’re historically important and culturally relevant. (And the effort to accurately reflect them in the emulator is a Herculean effort, I rush to say.)

But they’re also very simple affairs, and designed to impart 3 to 10 minute experiences. You get Pac-Man in a few minutes – you understand nearly all to know about Defender in a day or two. Granted, the skills to keep past that 3-10 minute period are legion and deep, but that’s not what most people would experience anyway.

But with a computer program – especially one designed to be sold for a good amount of money, or which represents a lot of work by someone, there’s a depth in there, and an intensity of the product, that can’t be ignored. A strategy game that doesn’t care how long you take to enter the next move, or a simulator that carefully gives you dozens of knobs to twiddle or points to tweak… that’s the harbinger of the computer experience. Not to mention the applications, those tools of productivity that have permeated computers since the beginning. It’s rich and lovely, and it’s my favorite thing.

Getting the Apple II and ZX Spectrum and Atari 800 collections running at the Archive have been a pleasure, and the resulting screenshots are beauty to behold. But MS-DOS… that’s my neighborhood.

The neighborhood looks good.


The system uses a .ZIP file that contains all the files that will be used inside the emulator as the “drive”. So if you have 5 files, including some batch file and an executable, accompanied by some data files, those will all be loaded in at the emulator’s boot. It will then require a designated “start” file, one of the collection, that it will attempt to run and execute against.

Sometimes this doesn’t work. There’s a lot going on there and my sources are variant.

But sometimes, it just works.


And when it works, I see smooth as glass graphics, beautiful pixel art, and those beautiful words, and the whole thing is alive again, in the emulator’s box, infinitely reproducible, instantly referenced, ultimately preserved in a pretty useful fashion.




Folks who are the sort of folks who professionally quibble will professionally quibble, but the now-years of work I’ve been involved in this (and others have been there right with me, by the way) are utterly justified every time I run the ingestor and push a .zip file of a gathered-away program online. Within seconds, it’s a single click away from beeping, booping and playing music, or standing stoically waiting for my input, unaware of the science-fiction universe it now lives in, destined to never really die, and to stand and be counted by history.

It’s like watching a miracle with every boot.

It’s a great feeling. It’s the best I get.