Hacker News new | past | comments | ask | show | jobs | submit login
Run old games in DOSBox in the browser (naclbox.com)
105 points by buster on Aug 12, 2011 | hide | past | favorite | 42 comments



If this isn't clear to someone:

This needs Chrome and the Native Client.

From the page:

  Please Note:

  You must have Native Client enabled in Chrome 12 or 13 for   this game to work in your browser.

  To enable Native Client, do the following:


  Go to "about:flags" in your address bar (without quotes)
  Click "Enable" next to Native Client
  Go to "about:plugins" in your address bar (again, without quotes)
  Occasionally you will find that you have to click "Enable  NaCl" here too
  Restart Chrome
  Have fun!


...thus it would be nice to change the headline from "..in the browser" to "..in Chrome".


In the long term, it would be preferable to fix the browser.


Preferable for some, but many see NaCl as another ActiveX.


While NaCl poses security concerns, they have invested a lot of effort to make the sandbox secure. Their first two papers deal with this quite a bit [1,2] and the new paper seems to expand on this more, but I haven't read it yet [3]. ActiveX doesn't even compare -- it's just running native code.

[1]http://src.chromium.org/viewvc/native_client/data/docs_tarba... [2]http://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pd... [3]http://naclports.googlecode.com/svn/trunk/src/experimental/v...

More about NaCl (http://code.google.com/p/nativeclient/)

Portable NaCl (PNaCl) looked very promising (targeting LLVM (bytecode) and then re-targeting your native architecture) but I haven't heard anything about it lately.


I was less referring to the security issues, as I'm familiar with Google's efforts on those fronts, and more referring the lack of cross browser support. ActiveX sucked for a number of reasons, but one reason in particular was because it forced people to use IE even after IE 6 became the most inferior browser on the market by a long shot in terms of both security and performance. If NaCl becomes popular enough, either other browsers will be forced to add it or there will be similar lock-in issues. If other browsers are forced to add it, will every single one of them have the same security, performance and compliance with the standard as Google Chrome does?


I don't see lock-in issues as a concern. It's an open spec, if it becomes popular enough then even if other browsers don't want to support it developers can make plugins for those browsers (some of the papers even mention this, I believe). In any case, if websites require you to use NaCl it is only stupid unless they are doing something that otherwise wouldn't be feasible e.g. running a performance hungry emulator. It's clear to me that Google has no intentions to leverage this for lock-in.

If other browsers are forced to add NaCl support: of course I doubt they will have the same security, performance and compliance that Chrome does -- but who are we kidding, it's highly unlikely that all browsers will ever be equal in those ways.


What about architecture lock-in? Good luck running x86 NaCl apps on your iphone.


> I don't see lock-in issues as a concern. It's an open spec

There isn't any open spec here. NaCl is a research project, not a spec or a proposal.


Ah, well that isn't quite as impressive. I expected something like DOSBox compiled with Emscripten, with <canvas> to render to.


I was thinking flying cars and stuff. I didn't know the future was going to be this awesome.


Native client is a horribly bad idea on so many levels. Wiz-bang demos aren't enough to distract from the danger.

Now trojans have one huge, lovely target. Just change browser settings and boom, easy attack. This in combination with hiding everything from users (status bar, url bar, etc.) is super dangerous. It's activex all over again.

Do it in webgl or otherwise, leave native code execution outside the browser.


why not hold your pessimism till we actually see something. Security has been a major focal point for NaCl. Until then play some old school games.


In what way is NaCl worse than webgl?


Actually it is better for security.


Proof please?

Whenever I visit a WebGL demo inside Linux w/ NVidia drivers, if there are any complicated shaders, my system hard-freezes, forcing me to reboot.

Until the X developers fix Xorg's security model (like that will happen), and until NVidia fixes their Linux drivers (like that will happen), WebGL will always be one massive gaping security and stability problem for me as a Linux user.


So, you are saying the same thing that I am :D


Because it runs userspace code on x86, instead of running kernel-level code on the GPU?


Because we know, those days, to sandbox raw x86 code, and not let them access the system and the drivers... However, running shaders directly on the GPU exposes directly graphic drivers, that are not conceived to block unfriendly code.


Why so?

You don't have access to outside APIs with NaCL.


native client has the same sandbox and API access as javascript and chrome extensions


I have a poor understanding of the toolchain, as my next question may make clear.

What obstacles would there be to running Borland C++ in this, and developing from here?


Totally awesome.

Though I kinda wonder, why Simon the Sorcerer, that used to run on a 386, now takes 100% of a processor core of a Core 2 Duo.


You have to realize that not only are performances of nacl probably going to improve with time, but more importantly this is not a port of the game in nacl, this is a port of the game, running in the dosbox emulator running in nacl (Dosbox emulate a whole old computer, which then load the game). Redoing such a game from scartcg in Nacl and getting rid of the emulator layer would have much better performances.


Another reason is explained on the website:

"Currently NaClBox is using far more CPU than it should. This is because the current version of SDL for Native Client has a bug that will crash the browser when you navigate away from it. To avoid that, I had to revert back to an older version of the SDL port that has high CPU utilization."


Those insisting that there's no way this will be another ActiveX would be wise to notice this. We're not even one day into the release and already there's a browser-crashing bug.


In addition to the other points, it should be pointed out many games had busy loops in them. Such games will always take 100% of your processor, except in some cases where the busy loop crashes because it manages to count too high and overflow something or other such crash bugs.


so my morning went like

1) skim tech crunch article 2) figure it will take a while for anything interesting to come out 3) come back to HN, this is next story

this will not be a productive morning


So, Native Client allows you to run out-of-process, sandboxed, _native_ code in Chrome.

Does that mean that the server needs to serve precompiled executables to visitors with different operating systems?


The code is OS independent, but processor dependent (Currently i386 and arm).


No, Chrome is your "OS" in this case. You do have to account for processors though. Right now there is x86-32, x86-64, and ARM.

Go to any of the games and after you've started, right click and save-as to get the nmf file. It's a manifest which has separate nexes for each processor (these are just x86-32 and x86-64).


Looks interesting, but after activating Native Client, I just see a black box in Chrome 15.0.849.1 dev on OS X 10.6.8 – anybody else has that issue? Or do the games only work on Windows?


Similar issue here on Ubuntu 10.10 64bit:

  Chrome - 14.0.835.15 dev
  Chromium - 14.0.803.0 (Developer Build 90483 Linux) Ubuntu 10.10
I am getting a 403 when trying to load the dosbox client (http://nacl.naclbox.com/dosbox_14.nmf).

I wonder the server is refusing this request if the user-agent is not in their white list?

Or perhaps they are limiting it based on Country due to Copyright Issues?


I also get a 403 trying to load what you've linked, but dosbox_13.nmf loads fine and so do the games.

It determines the filename based on the major version number in the useragent - it would probably work fine if your browser reported chrome 13.something.


I was on 14.0.835.2 (Win7) and had a similar issue (black box, and very laggy scrolling). Once the GPU compositing and GPU accelerated drawing options marked out here [1] are disabled, the issues went away.

[1] http://i.imgur.com/COxPY.jpg


Looks like the dosbox is loaded depending on which version of chrome you're running, and there's only 12 and 13 up, so 14/15 tries to get a file that doesn't exist.

Bit of silly coding, given the ABI is fixed from 13 onwards.


Works on 64bit OSX, Chrome 13.0.782.112


They run at least on Linux 64 Bit.


Same here. Chrome 13, OS X 10.7.


Has anybody gotten NaCL apps to work on 64bit Linux?


yep playing star wars : tie fighter right now

chrome 13.0.782.112 Natty 11.04 64bit


I do. Running 13.0.782.112 beta Chrome on Natty 64bit.

Edit: Chromium 13.0.782.107 works for me, too.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: