ASCII by Jason Scott

Jason Scott's Weblog

The JSMESS Triumph —

What an amazing few weeks it has been!



We made improvements to improvements. We refined refinements, and refined them even more. We found shortcuts and qualities and features. And eventually, it came down to a day when an automatically running script slammed through a list of every functioning platform MESS supports and created a working or near-working JSMESS version.

More than that, we found a single line in the code, one which was meant to make the emulator work better within the browsers, but had now been producing the effect of slowing the program down. We changed a single line to say “0” instead of “60”, and to our shock, JSMESS now runs many platforms at 100% speed.

It was a fun experience to play with a Colecovision at 70% speed in the browser. Running it at 100% speed is another experience entirely – it is, as I’d hoped, a little window where you see an entire other computer running, doing its thing, accurately showing you images and visions from decades ago but breathing as alive as if they were crafted this morning.

To celebrate, I updated the JSMESS official site, purchasing a basic theme of dynamic images and transparency (since you need to be running javascript anyway), and then jazzing it up to stress how completely fun and fast JSMESS is to work with. I also now have links to all 300 supported platforms that will be in JSMESS 1.0. Three hundred!

addWe’ve got a bunch of tasks ahead of us, but they’re rapidly becoming the kind of tasks that winners have to do, that consist of the effort of the victory lap after a draining marathon, or that weigh heavy the crown of awesome.

They include:

  • Adding a virtual keyboard so that you can hit controls and keys that aren’t on whatever keyboard you’re using. It won’t be good for arcade games, but it’ll make using the machines a lot easier.
  • Going through and matching collections of software and support materials to the 300 platforms. Luckily many use similar software or are easy to track down. It’s just a lot of them, you know?
  • Finding what slows down the remaining platforms that run under 100%, and getting rid of that. Currently, our slowest platform is the Sega Genesis, which runs at 50% speed – Sonic is taking Valium and that needs to end.
  • Sound is not activated, because the sound API we’re currently using is going to be replaced with a new one, and we’re waiting on that. It should work nicely when it’s ready, though.
  • Moving closer to a distributable package that anybody can set up on their own webservers in minutes. The great thing about Javascript in this case is we can just provide you a .js.gz file and it’ll workwherever you are. There’s no dealing with binaries or libraries or anything – that’s the browser’s job.

I’ve been cranking away on a new demonstration page, where a dream comes true: you have screenshots of many famous programs, like Visicalc or K.C. Munchkin, and one click brings you face to face with these programs, running as they always have, full speed, and waiting for you.

I feel really bad when people ask me about this in person because I can’t shut up about it. It’s like the first time you realize what version control can do, or taking a new bike out for a spin, or discovering a great new way to walk somewhere – it’s exciting and new and the results feel infinite, far beyond what we’re laying into them. It’s a brilliant new day.




Categorised as: computer history | jason his own self

Comments are disabled on this post


  1. Bruce says:

    The virtual keyboard will be particularly useful for tablets unless web magic can pop up the built in one. Awesome progress.

    • phuzz says:

      Bruce, most android tablets running a recent version of Android will work quite happily with USB keyboards if you use a ‘USB host mode cable’.
      (they’ll even work with USB-Serial adaptors, so I can use my tablet to connect to the serial port on switches/routers etc.)

      • Bruce says:

        iOs tables equally well work with USB keyboards. The thing is that a typical tablet user (in their content consumption mode) doesn’t have and doesn’t want an external keyboard.

  2. None of the Radio Shack Color Computer emulations seem to be working at the moment. Maybe missing ROMs (don’t have time to debug atm)? I’ve got some…

  3. carglue says:

    I’d suggest that is a little too early to go “public” with your site or promote it in any substantial way, when many of the emulations either simply don’t work, or have no support for a modern keyboard. Very disappointing to hit the backspace and delete keys and see that they shoot out some screwy character. Without a simple and accurate keyboard emulation, its almost useless to type in anything or play games (yeah, those Enter, Esc, and arrow keys don’t work either) without this. With a little emulation window (and no means to zoom it) you have lots of space to add a virtual keyboard and/or controls that match the chosen system emulation. Just basic stuff that MAME always had.