NaClBox: Play Monkey Island In A Browser

By John Walker on May 10th, 2011 at 11:32 pm.

This is a picture of Monkey Island in a browser.

That’s my slightly sensationalist tabloid headline, but it’s entirely true. So long as you own the game, etc. And via the burgeoning magic that is NaClBox. Which really does let you play Monkey Island, or indeed any other DOS game playable in DOSBox, in a web browser. If that web browser is Google’s Chrome. I know it’s true – I did it.

Look, I’m going to have to get a bit technical here. But there’s this new thing Google are doing called Native Client. (Which they amusingly abbreviate to NaCl, which those who were paying attention in GCSE chemistry will know is the chemical formula for table salt.) It’s an alternative for Active X, or Java. Active X and Java are types of national gym chains and coffee, which allow browsers to run applications within themselves without disrupting time. NaCl is Google’s version, which according to a thing I read on the internet is even better. And proof, if proof be need be, comes in the form of its ability to be subverted in such a fashion that it can embed DOS games without much fuss.

That’s what Reddit user ‘dragmorp’ has done (he rather modestly seems to have hidden his real name), in creating a hybrid of Native Client and DOSBox, with NaClBox. It’s a free software project that is allowing him to embed DOS games into his browser, that hopefully being on Reddit and this site won’t cost him eighty million billion pounds in bandwidth costs. Right now he’s (rather sensibly) only uploading game demos, rather than full games, so he doesn’t get sued into a black hole. But the source code is there for the taking, so anyone who knows what they’re doing (i.e. not me) can replicate the same for their own collection of DOS games.

Cheers, Mobygames.

In order for it to work, you’re going to have to take Chrome into the slightly unnerving world of unsafe, not properly tested software. Which means typing the following into your address bar:

about:flags

This brings up a page of all manner of exciting bits and bobs you didn’t know Chrome could do, or can’t quite do yet, which you can enable. But for the moment control yourself and just enable “Native Client”. Once you’ve done this you’ll need to restart Chrome for the magic to take effect.

After that, and after ignoring the troubling yellow message that appears warning you that your Chrome is no longer quite secure, you should be able to visit this page and see the games dragmorp has currently uploaded. Just click on the game, then click on the big play button, and if all has worked the game will just start working, right there in your browser, like it’s the future or something.

There does appear to be a very common issue, however, where despite following these steps exactly you’ll find that it won’t work and just tells you there’s a missing plugin. There’s so far been no word from the creator about this matter, but it seems to be affecting a lot of people, including me. On my desktop, at least. On my netbook it works just fine (despite being a synced Chrome, so basically identical). Go figure.

Clearly this is at day one, but it’s a really interesting demonstration of the possibilities for NaCl, and a super-fun way of playing through demos for Sam And Max, Sim City 2000, and Falcon 3.0. Hopefully he’ll soon start adding some genuinely freeware DOS games too, or at least someone else will take up the task.

Huge thanks to Dartt for yet another excellent tip. You can read the original Reddit thread about it here.

, , , , .

45 Comments »

Sponsored links by Taboola
  1. Premium User Badge

    Andy_Panthro says:

    I suppose the same might also be possible for ScummVM?

    I wonder how it handles saving or alternate settings? Not got chrome so can’t check.

  2. Mike says:

    John, I thought you flunked chemistry. What is this table salt nonsense.

  3. Premium User Badge

    The Sombrero Kid says:

    This is as completely and utterly pointless as the NaCl architecture itself, sorry to put such an obvious downer on it, but this is just an extra layer of obfuscation added to running dosbox, which is the last thing dosbox needs.

    • John Walker says:

      Pressing “play” on a web browser seems an awful lot easier than wrestling with DOSBox to me.

    • Dana says:

      Aww, why Chrome ? I despise that little abomination.

    • CMaster says:

      @John
      More use are the various Dosbox Frontends on top of dosbox then, than running it through Chrome.
      I seem to recall getting on quite well with DosShell myself.

    • LimEJET says:

      Sad but true. It’s a neat idea but it runs like a cockroach stuck in a turd.

    • Premium User Badge

      The Sombrero Kid says:

      the pressing play and it running is happening because someone else set dosbox up for you, not because of the NaCl platform, if he’d served it to you with a samba or ftp server, it’d’ve been just as seamless & less likely to break.

    • LionsPhil says:

      It is basically the worst idea ever and this is Google’s power-play to make their browser “the API” for platform control, rather than the underlying OS.

      However, horrible, stupid ideas have a way of spreading on the web, so get used to it. (If RPS starts doing that “#!” nonsense where every page is really just a fragref to on the single frontpage, though, I am going to VEHEMENTLY EXPRESS MY DISPLEASURE ON THE INTERNET.)

    • Premium User Badge

      dartt says:

      @LimEJET dragmorp mentions that he is using some code that has very poor performance as the optimised version can cause some issues but he hopes to have a faster version working soon.

    • TillEulenspiegel says:

      The browser is already the API for zillions of web apps. NaCl (and especially PNaCl) is an alternative to Javascript/Flash/Silverlight, nothing more. Except it’s faster, and you can use C/C++.

      Since Silverlight hasn’t taken off (despite some technical advantages), it’s not particularly surprising that Google would make its own Flash alternative. Have you tried some WebGL demos lately? Even after years of effort, Google can’t really make Javascript suck any less. We need something else that’s portable and fast.

    • Sohum says:

      Plus, if you served dosbox with samba or some nonsense you’d have to do a lot more work to make it cross platform, and even more work to sandbox it. No thanks?

    • jamesgecko says:

      Disclaimer: I art a Native Client Fanboy. I think it fills a unique slot in the interwebs. NaCl is:

      ## Crossplatform ##
      Silverlight/Moonlight is somewhat pants on Linux (no Netflix!) and Flash is kinda awful on platforms that are not Windows. This also opens things up for interesting things on mobile devices.

      ## Open source ##
      Again, advantage over Flash and Silverlight. Admittedly, this would be slightly less of an issue if they were better at being crossplatform.

      ## Browser agnostic ##
      Chrome is just the reference implementation; there are plants for NaCl will be pluginized for use in Firefox and Opera and Safari and what have you. Presumably after things are out of highly experimental and unstable territory.

      ## Fast ##
      In theory, anyway. It’d be difficult for it to be much slower than Flash at runtime. And Java has a way of making things laggy while the plugin loads. Javascript is OK, but the dynamic nature of things means that in theory, it’ll never be as efficient as something tight written in C. OTOH, this is probably pretty dependent on the VM they’ve got behind this thing. It’s all well and good to zip past Flash and Javascript performance, but Java (once it’s actually loaded and running) has like a decade of optimization behind it. We’ll see.

      ## Integrateable with Javascript ##
      Javascript is effectively the only general purpose client-side language we have on the internet. It’s horrifically slow for things like image processing. But! You can call functions from a NaCl app from Javascript. Offload the slow tasks to the faster runtime. No other plugin lets you do that, afaik. This means you can make webapps faster without having to use more bandwidth or server-side processing AND you don’t have the build your webapp completely using the plugin, unlike Flash/Silverlight/Java. You can even fallback on something like server-side processing so that people who don’t have NaCl don’t even notice. This is how the internet is supposed to work.

      ## Nice for lazy and non-tech-savvy people ##
      Seriously. Flash and Unity3D are spoiling me. I used to just download indie games all the time without thinking about it. But it’s like twenty times more effort to download and extract games and put them in my games folder than it is to click a “play” button on a website. Some of my siblings don’t even know *how* to play a game that comes in a zip file.

      ## Like the only way we’ll ever get Unity3D games on Linux ##
      Thus are my true motivations revealed. Waaaant gaaaaaames on Ubuntuuuuu!

      Opinion, away!

    • sexyresults says:

      OP comment makes me sad. Have the comments lately gone down fucking hill or is it just me?

    • Mario Figueiredo says:

      It’s just you. OP had an opinion and your comment wanted to make it look like he isn’t entitled to share it.

    • Premium User Badge

      P7uen says:

      It was a fair comment, but ‘an extra layer of obfuscation’ and ‘someone setting up DOSbox for you’ are exactly what DOSbox needs.

      Command line DOS and setting up a samba connection for everyone currently on the internet might be fun for you, but the easier DOSbox is to use, the more people can enjoy great old PC games. How is that a bad thing?

    • apa says:

      @op:

      Would it feel more useful if you could play say, UFO: Enemy Unknown anywhere without need to install and configure DOSBox and the game? I know I could do some quick bughunts for downed aliens during the tea break!

    • Premium User Badge

      The Sombrero Kid says:

      To the people saying it’s platform agnostic (it’s only apparent benifit over writing a native c application) it’s not, that’s pNaCl & the difference between NaCl & pNaCl is that NaCl is native & pNaCl is byte code, that’s whats called a bait & switch.

      EDIT: I’m not against the idea of making dosbox easy to use. I’m against the idea of running in a browser (even if it no longer really is) being synonymous with easy to use. I also believe that browsers should be limited to a non-realtime, instance based, scripted, application architecture and that anything this complex doesn’t have anything to gain from being tied to a specific network protocol.

      What i was originally trying to say was that everything good about this can be done without the browser and without NaCl.

    • misterk says:

      This is this thread for me

      person on the internet:This sucks because of flipppody floppby flooby
      John:Well it seemed to work fine for me with no troubles
      person on the internet:Well you’re stupid, they’ve just done fliipofyt doffy loopy
      other person on the internet:Ah, flappy whayppppt fllrrg!

    • SanguineAngel says:

      @ misterk: you made me giggle!

  4. Premium User Badge

    James G says:

    Well that puts my experimentation into making browser extensions to shame. Mine lets you add sticky notes to web pages.

  5. cheeley says:

    I registered just to applaud the use of The Day Today in this article.
    Consider it applauded.

    • McCool says:

      Bother, you got in there first. I have to agree, its little Morrisian riffs like this that keep me coming back to RPS. Nothing to do with the games. Honest.

  6. mod the world says:

    I can play better games on my smartphone.

    Anyway, why is the RPS headline: “Walker is an emotional and primitive man” ?

  7. groghog says:

    anyone else reading that as ‘NaZIBox’?

  8. porschecm2 says:

    I dunno, I’d take this sort of news with a grain of salt.

  9. faelnor says:

    Yay, one step closer to IP owners forcing people to play their old games online, potentially killing the dangerous GOG.com in the bud while making some cash.

    Yay, one step closer to the destruction of the meaning of words like “ownership” and “offline”.

    Yay, one step closer to the disparition of the dedicated PC platform, to be replaced by a Chrome OS terminal running a streamed World of Warcraft in a native client process all within the browser infrastructure.

    Yay o/

  10. Torgen says:

    omgx-cominabrowser?

    no?

    What a shame. :(

  11. dragmorp says:

    Hi! Nice write up. It makes me want to play my own site! Anyway, I added in some additional details to help people with the “missing plugin” issue.

    Regarding the speed… I have a version that runs much faster (uses about 2% of the cpu) but is less stable. I am thinking about allowing people to somehow choose to use the faster version with the knowledge that chrome will show the sad face when you leave the page.

    That’s life on the bleeding edge.

  12. MythArcana says:

    It really amazes me how people come up with this stuff, yet Microsoft with its $28 trillion R&D budget can’t come up with squat that works. Their idea of compatibility for Windows 7 is to load up XP in a virtual machine and waste yet more drive space and time trying to do what this fellow has in a simple browser plugin.

    Amazing.

    I can already see me back in Magic Carpet Plus playing 75 levels of intense awesomeness like I enjoyed back on my 486DX2-66 bawks.

    • Mario Figueiredo says:

      So, someone comes with something interesting and it’s suddenly Microsoft fault?

      What the heck!

    • Premium User Badge

      c-Row says:

      Welcome to the internet. Circa 1999.

    • Shadowcat says:

      MythArcana: I suspect that you do not know what you are talking about.

      Firstly, do you realise that DOSBox has been in development for more than a decade, and publicly available for almost that long? I’m not saying that this new NaClBox plug-in is not noteworthy (even if personally I consider it utterly pointless — why would you not simply run DOSBox directly?), but unless “this fellow” also contributed to DOSBox itself, he has not implemented any of the backwards-compatibility code here. That would be akin to claiming that a guy who gets Doom running in a web browser must have written Doom.

      Secondly, your comparison with Microsoft’s approach is amusing, because both approaches are in fact identical. DOSBox is also a virtual machine. Microsoft’s VM in Windows 7 emulates a machine that runs Windows XP, DOSBox’s VM emulates a machine that runs DOS.

    • Premium User Badge

      The Sombrero Kid says:

      a VM is actually a hell of a lot more sophisticated and impressive than a dos emulator, I kind of get MythArcanas point though in that that R&D money doesn’t seem to induce much innovation.

    • pandora says:

      @MythArcana: fst, virtualizing xp and browser plugin is comparing apples to oranges, snd, this R&D budget (and customers bitching whenever they need to change tech) is why you need compatibility solution in the first place, not to spend trying to implement it.

  13. Red_Avatar says:

    To everyone saying it’s pointless: it’s not.

    a) it’s cross-platform

    b) it lets sites integrate DOS games into their site – I’m admin for a big abandonware site (Abandonia) and I can see how this could make a big difference

    c) for people who enjoy playing a game at work, this is much better than the obvious DOSBox client + front end. Easy to hide, easy to shut down, small window.

    d) Android OS will support Native Client soon meaning we’ll be able to play these games on our phones without having to wait for an app

    e) it’s easier than setting up DOSBox AND quicker

    Sure, there’s some limitations, but it’s better to have this than nothing.

  14. haowan says:

    because fact into doubt won’t go

  15. Baggypants says:

    Brilliant, I can ship my DOS games off my laptop and into my media server. I like it.

  16. DeanLearner says:

    Sup everyone with the missing plugins problem.

    Goto about:flags and enable native client

    then

    Goto about:plugins and enable Chrome NaCL

    it’s totally working for me now!

  17. paco says:

    Just in case this naclbox don´t work for you:
    Check if Native Client is not enabled. Look at the “about:plugins” page to make sure Google NaCl is enabled.

  18. Megadyptes says:

    Or just use ScummVM!