Internet Archive News

updates about

Still Life, With Emulator: The JSMESS FAQ

The announcements of the Console Living Room and the Historical Software Collection have brought a large amount of attention to the JSMESS emulator that uses. Naturally, being a relatively new method of playing software in a browser, there are number of technical questions and explanations that people are seeking answers for. This entry is meant to cover the most frequently asked questions and will be updated as new information  becomes available.

What exactly is the JSMESS emulator?

The JSMESS emulator is an ongoing project to port the well-established general machine emulator MESS to JavaScript. The bulk amount of work (emulation, research, coding, testing) has been done by the MESS team over the last 15 years to produce a open sourced, accurate, flexible ability to emulate hundreds of individual computer platforms. It is highly portable and is available for a variety of platforms including Windows, OS X, Linux, and many others.

Isn’t JavaScript slow? Isn’t this incredibly wasteful? Why not use…

The purpose behind utilizing JavaScript as a platform is that JavaScript is a dependable, standardized runtime environment available in essentially all modern browsers. Other solutions tend to work only in one browser, are under litigation/rights issues, or require external plug-ins before use. Should a cross-platform default runtime solution appear and surpass JavaScript, the JSMESS team will revisit the question, but for now, JavaScript is the preferred approach. In short, right now JavaScript Just Works.

The circumstances by which JavaScript became the defacto cross-platform, default runtime environment are fascinating but out of the scope of this FAQ. It is suggested that you read some of the essays about the situation including Worse is Better and The Principle of Least Power.  However we got to this point, it is currently possible to get excellent performance on modern browsers inside of JavaScript for tasks like this emulator.

How exactly do you convert MESS to JavaScript? Do you rewrite from scratch?

JSMESS is created by running the MESS source code through a compiler called Emscripten. Emscripten is a project by the Mozilla foundation for easy conversion of native applications into JavaScript. While notable effort is being done by the JSMESS team to prepare MESS source code for Emscripten, Emscripten does the lion’s share of conversion and allows the code in JSMESS to be as close to MESS as possible without major revision. This conversion utility’s power and flexibility is now expanding into many other projects, some of them unthinkable even a year ago in terms of speed and turnaround time of the project.

Where possible, the JSMESS team are adding code changes to the original MESS source code or even to Emscripten itself, so that advances in support and function are available to other projects, benefitting all.

I’m having trouble with…

It is helpful to keep in mind that a full speed running JSMESS only went online at the end of August 2013. Because this is all brand-new in terms of interacting with the families of browsers out there, there are going to be incompatibilities, hiccups, speed issues and other situations.

Here are some common solutions:

Generally, we find that Firefox runs the quickest JavaScript and is the most compatible with Emscripten’s Javascript output. It is worth connecting to the site using that browser, which is freely available, to make sure that the problem isn’t located somewhere else along the way for you. (The JSMESS team has a priority to make sure it runs on as many platforms and browsers as possible, of course – but we are a small team, so some variations can be missed.)

Some people are running JavaScript blockers or filters, and naturally this program will not work at all in those situations. All current browsers have sliding updates, meaning that a new version comes out very frequently. Check to make sure that you were running the most up-to-date edition of your browser. Usually this information is located in the about menu selection of your browser.

I can’t hear anything!

Sound has turned out to be one of the more difficult issues with JavaScript programs. Different browsers handle sound differently, and the human ear notices tiny differences in sound quality much more than they noticed microscopic slowdowns in video rendering. This is definitely on the list to be improved as soon as possible, as soon as we have the best solution in place.

I’m not sure which keys to use!

We are continually updating instructions with accurate information about which keys activate which selections on a given platform and for a specific program. In general, the arrow keys, and control keys tend to work best, and the number keys sometimes trigger off other options. A team of volunteers has been working on documentation and linking and will continue to.

How can I help?

If you are a developer and care about the state of ambulation, consider getting involved with a contributing fixes and improvements to the MESS emulator. Whatever changes are reflected in that project with regards to platform support and accuracy will come down the line automatically to JSMESS.

If programming is not your thing, we can always use help with improved metadata, better linking to history, and better context as to the various items are collection. Please contact the software curator at Internet Archive, Jason Scott. He’s at

I wish that you….

We do too. Our commitment is to make JSMESS as good as it can be, and able to run more platforms, with accurate and smooth sound and performance in the browser. We invite people who want to contribute code or other efforts to reach Jason Scott, or to contibute to the linked code repositories in this FAQ.


Originally posted on The Internet Archive Blog by Jason Scott.

Written by internetarchive

December 31, 2013 at 12:44 am

Posted in News

%d bloggers like this: