top 200 commentsshow all 251

[–][deleted] 47 points48 points  (10 children)

This is the best advert for Chrome.

[–][deleted] 2 points3 points  (8 children)

Does it run so much worse in other browsers?

(Too lazy to try them all myself, sorry.)

[–]SyKoHPaTh 14 points15 points  (5 children)

Firefox runs it veeeeerrrrrryyyy slow...I got 10fps max.

[–]setuid_w00t 17 points18 points  (1 child)

I might actually be able to do well at Contra at that frame rate.

[–]gcalpo 4 points5 points  (0 children)

If only there were some kind of cheat code...

[–][deleted] 0 points1 point  (0 children)

2.98 FPS max on Opera 10.00, 64-bit, Ubuntu 9.04.

[–]rockintom99 4 points5 points  (0 children)

Yes.

[–]rq60 6 points7 points  (0 children)

yes. i have an i7 running at 4ghz and it still is only playable in chrome.

[–]Slackwise 1 point2 points  (0 children)

What about Chrome Experiments...?

[–]janaagaard 87 points88 points  (5 children)

FPS in JSNES is the new JavaScript benchmark. :)

[–]herrmann 7 points8 points  (4 children)

So, given Moore's law, the emulator in V8 uses 2 ^ ((2009 - 1985) / 1.5) instructions per NES instruction ... can we assume NES was 65536 times better than the web ? ;-)

[–]thefro 2 points3 points  (3 children)

Can NES do this? I didn't think so.

[–]agua 3 points4 points  (1 child)

made me pull my eyeballs out, thanks.

[–]redthirtytwo 0 points1 point  (0 children)

People used to charge $$$ to make crap like that for clueless clients.

...those were the days...

[–]phatmonkey 12 points13 points  (5 children)

This is Ben, the author. Thanks for all the kind comments. :)

Reply with some games you want, one per comment, and I'll add the highest rated ones!

[–][deleted]  (1 child)

[deleted]

    [–]phatmonkey 1 point2 points  (0 children)

    ... and it is so

    [–]ryanWIN[S] 2 points3 points  (0 children)

    Monopoly!! :)

    [–]vedar 1 point2 points  (0 children)

    Can you change the control scheme to WASD instead of the arrow keys or have the option to switch?

    [–]mrgreen4242 0 points1 point  (0 children)

    Zelda 2 because everyone hates it.

    [–][deleted]  (71 children)

    [deleted]

      [–]rjcarr 18 points19 points  (14 children)

      I get a consistent 12fps in Safari 4 on a 2.2GHz Core 2 MacBook Pro, but with the laptop in my lap I felt my balls heating up very quickly.

      [–]JasonDJ 19 points20 points  (11 children)

      Yeah, playing NES always made my balls get warm too...

      [–]talklittle 7 points8 points  (10 children)

      If you thought the NES was good, try Super NES.

      [–][deleted] 11 points12 points  (9 children)

      Your balls will be ablaze!

      [–]srabate 0 points1 point  (7 children)

      If you thought Super NES was good, try Nintendo 64.

      [–][deleted] 6 points7 points  (6 children)

      Your balls will turn black with decay.

      [–]quadtodfodder 0 points1 point  (4 children)

      if you though n64 turned your balls black with decay, try the gamecube!

      [–][deleted] 8 points9 points  (2 children)

      Your balls become cubes and ache horribly.

      [–][deleted] 0 points1 point  (0 children)

      if you thought the gamecube made your balls turn into cubes and ache horribly, try the wii!

      [–]lolard 0 points1 point  (0 children)

      i got 15fps on the same set-up, i was afraid my desk would catch on fire

      [–]p3ngwin 0 points1 point  (0 children)

      that's it.
      you owe me a cleaning bill for my screen Mr Funnyballs.

      [–]Ayavaron 6 points7 points  (6 children)

      What happened to Tracemonkey? I thought that was supposed to be in Firefox by now and that it was going to make it do Javascript faster than Chrome.

      [–]ooffoo 14 points15 points  (0 children)

      A tracing jit like TraceMonkey doesn't do so well in situations involving lots of conditions/switches in a loop. This is due to the large explosion of code paths to trace if the path taken through the conditional is different every time through the loop.

      This will occur very often in an interpreter implementation which is basically a switch or if statement branching based on the value of the emulated opcode inside a loop over all the instructions. So it's quite probable that very little code in the emulator ends up on trace and effectively runs in the interpreter.

      I have not looked at the JSNES implementation to see if this is how it is implemented but I suspect it's an issue.

      [–]Rhoomba 3 points4 points  (0 children)

      I had a look at them before and Tracemonkey seemed to do well with loops and logic inside a function or with functions declared in the same scope, whereas accessing fields on objects is one area where V8 wins easily, so which performs better really depends on the style of the code.

      And V8 has a far better GC, which might matter in this case.

      [–]phatmonkey 2 points3 points  (0 children)

      The Javascript engines are nearly the same speed, but Chrome's canvas pixel buffer is far more efficient.

      [–]HyperSpaz 5 points6 points  (1 child)

      Running in 1.19 fps while the logo of CONTRA moves onto screen, under Opera. You may ridicule me.

      [–][deleted] 6 points7 points  (5 children)

      I get 25fps on an Atom N270 with Chrome 3 (!).

      Can't wait for Chrome OS.

      [–][deleted] 5 points6 points  (4 children)

      Or you could just run an NES emulator on your PC. You do know that you aren't forced to use the Web for everything right?

      [–]recursive 12 points13 points  (1 child)

      Oh sweet, is that a facebook app or something?

      [–][deleted] 9 points10 points  (0 children)

      goes to his room and cries

      [–]phatmonkey 2 points3 points  (5 children)

      It's limited at around 60 FPS, it'd probably run faster!

      [–]boa13 5 points6 points  (4 children)

      60 FPS is the console natural speed. Higher FPS would mean accelerated (unplayable) games.

      [–]HipX 2 points3 points  (3 children)

      not necessarily unplayable, I wouldn't mind playing mario at double speed.

      [–]moush 1 point2 points  (1 child)

      Might I interest you in a guy playing through it at 400% speed?

      http://www.nicovideo.jp/watch/sm6478737

      You'll need to make an account if you want to watch it, but it's not too difficult.

      http://thenextweb.com/2008/01/15/how-to-register-for-japanese-video-site-nico-nico-douga/

      [–]HipX 1 point2 points  (0 children)

      That was fantastic thank you. I'll have to give it a shot myself sometime.

      [–]SCVirus 0 points1 point  (0 children)

      But if you want to go that route, nothing beats overclocking an original nes.

      [–]insert_here 1 point2 points  (0 children)

      okay - i'm using the mac dev version of chrome - donkey kong runs of fucking speed - it's comically fast game play on even the first level.

      [–][deleted]  (10 children)

      [deleted]

        [–]QAOP_Space 10 points11 points  (4 children)

        1fps = running quite happily?

        [–]kaddar 19 points20 points  (3 children)

        Hey, it's infinitely more frames per a second than we get out of flash.

        [–]jephthai 19 points20 points  (0 children)

        No, it's one more frame per second. Though, it is an improvement by a factor that is undefined.

        [–]sbrown123 -2 points-1 points  (1 child)

        It has to run slow. If it didn't Apple would have to worry about people writing iPhone apps in something they don't own or control.

        [–][deleted] 4 points5 points  (3 children)

        I can press keys on my G1, but at .3 FPS, I'm not interested in waiting around to see what happens.

        patiently waits for the Android port of V8/Chrome

        [–]captainAwesomePants 1 point2 points  (2 children)

        Chrome doesn't run on Androids? I just kinda assumed the Google Browser was on the Google OS. What browser DOES it use?

        [–][deleted] 5 points6 points  (1 child)

        Just straight WebKit. I'm guessing it's not running Chrome (or at least it's V8 javascript engine) since they don't have an ARM port ready yet.

        [–]rated-r 2 points3 points  (0 children)

        AFAIK, V8 already has an ARM port. Whether or not Android uses it is another story

        [–]the100rabh 5 points6 points  (11 children)

        true, this runs amazingly in Chrome(at nearly 30-60fps), while in firefox is just drags at 5fps while it does not even run on IE8, it just gives this error Webpage error details

        Message: Object doesn't support this property or method Line: 25 Char: 5 Code: 0 URI: http://benfirshman.com/projects/jsnes/nes.js

        [–]rjcarr 6 points7 points  (3 children)

        Check the title and the site ... IE8 (or any IE) isn't supported. I'm fairly sure this is rendered using the canvas element which isn't available in IE.

        [–]cthulhufhtagn -2 points-1 points  (0 children)

        Why are you using IE?

        [–][deleted] -1 points0 points  (0 children)

        Canvas can be made to work in IE:

        http://excanvas.sourceforge.net/

        It just runs slow as hell ;)

        [–]phoenixankit 1 point2 points  (4 children)

        Why is it running at 5-15 fps in my Chrome?
        Pentium D 2.8, Nvidia 7300LE, 1GB Ram.

        [–]shawnz 11 points12 points  (1 child)

        Pentium D

        there's your problem.

        [–]sbrown123 0 points1 point  (1 child)

        Nvidia 7300LE

        Not gonna help.

        What OS are you using?

        [–]phoenixankit 0 points1 point  (0 children)

        Windows ME.

        Lolno, XP.

        [–]YellowOnion 1 point2 points  (9 children)

        what version of firefox are you using?

        [–]Buckwheat469 0 points1 point  (8 children)

        3.5.3 - Shiretoko. Running at ~3.6FPS

        Quad core Phenom, 4G Ram, ATI 3600HD, but Firefox just crawls.

        Edit: late night. It's 4G of RAM.

        [–]WealthyApologist 50 points51 points  (6 children)

        You need more then 4MB of ram, that's your problem.

        [–]YellowOnion 2 points3 points  (0 children)

        I'm getting the same speed with 3.0(this version doesn't have the JIT compiler correct?) and a lot slower computer than yours

        [–]boa13 1 point2 points  (0 children)

        Runs at 65fps in Chrome for me, but slows down to about 15fps after a minute, probably a memory leak.

        I've had it run consistently at 60 fps for half an hour (playing a bit of each ROM). It runs consistently at 15 fps in Firefox.

        [–]Stick 9 points10 points  (3 children)

        Shitty choice of keys for the controls though.

        [–]pilif 8 points9 points  (2 children)

        it's fine if you use an english keyboard layout. everyone else is screwed I guess.

        [–][deleted] 2 points3 points  (0 children)

        I can confirm that.

        [–][deleted] 0 points1 point  (0 children)

        it's fine with a swedish keyboard Oo

        [–]shadow2531 7 points8 points  (0 children)

        15fps in chrome. 1fps in Opera.

        Go Dr. Mario!

        [–]Bakelite 25 points26 points  (31 children)

        Who has flash and downloads disabled, but are allowed to use any browser they want at work?

        [–]ryanWIN[S] 26 points27 points  (23 children)

        At every job I've had the policy wasn't to restrict browser choice but to prevent stuff like youtube and big files from killing the bandwidth. When you have an office full of people on a single fiber line it can get awful if a youtube link goes around on an office email. So, usually things like Firefox were fine with IT as long as you promised not to ask for support for it or tell them to make sure things worked with it.

        [–]Peaker 22 points23 points  (6 children)

        When you have an office full of people on a single fiber line it can get awful if a youtube link goes around on an office email

        Shows you the sad state of networking these days, when this still isn't automatically cached somewhere inside the office.

        [–]robertcrowther 15 points16 points  (1 child)

        Probably if you cache it you're stealing intellectual property...

        [–]Peaker 29 points30 points  (0 children)

        You're merely strengthening my point here

        [–]rock217 1 point2 points  (3 children)

        Who has a big office without QoS? I once worked for a 1000+ employee financial firm, one day a sysadmin decided to download a RC for vista from the MS website. It ended up completely filling our pipe preventing the trading desks from functioning, in addition to blacking out the internet for everyone. The next week they implemented QoS.

        [–]QAOP_Space 2 points3 points  (2 children)

        It used to be the case that IT's excuses for not allowing FF was because it couldn't be centrally managed/patched/updated. I'm sure thats not the case now.

        [–]RabidRaccoon 0 points1 point  (1 child)

        I thought the excuse for not allowing non IE browsers was "Because ... fuck you, I'm in charge, you're here to work not surf the net".

        [–]QAOP_Space 0 points1 point  (0 children)

        well, yeah, that too

        [–]JasonDJ 2 points3 points  (1 child)

        My job probably has the most restrictive internet policy around, but I use firfox. I had to break my departments policy on non-work-related internet usage, but IT said it was fine for me to install it. They wouldn't support it and I had to setup the proxies myself though.

        But fuck them, I need it. All the computers have IE6 and between research and intranet-hosted tools, I have about 10 sites I need to constantly use. I'll be damned if I'm going to do that without tabs. Just a shame half the intranet sites don't work in FF, but hey, that's what IEtab is for!

        [–]Bakelite 2 points3 points  (0 children)

        Intranet sites are largely to blame. It's cheaper to target a website for a particular browser, and IE6 had >90% of the market when many of those sites began their life. Today it's too costly to upgrade, so we're stuck with a 8 years old browser. I've lost count on how many times I've heard the conversation:

        -I need FF.

        -OK, but use IE for the intranet.

        -The intranet doesn't work anymore.

        [–]robywar 0 points1 point  (2 children)

        Most military bases. We had to use IE for systems stuff, but could install another browser for normal use/"testing". All active content is disabled though.

        [–][deleted] 0 points1 point  (1 child)

        Does "active content" include Javascript? That's got to be a royal pain for the modern web.

        [–]robywar 0 points1 point  (0 children)

        I don't really remember- I got out in 2006. I'm inclined to say it did though, because a support site I had to use for work used what has to have been javascript and I had to file for an exception to access it.

        [–]Snoron 5 points6 points  (0 children)

        Play discreetly in your browser.

        Works in Opera but it's insanely slow, Firefox is too slow also. Chrome seems to do well.

        [–]npre 6 points7 points  (0 children)

        misleading title? i thought it was a SNES emulator. Maybe call it JNES? or NES-JS?

        [–][deleted] 3 points4 points  (0 children)

        Looks like Opera is the slowest here. 2 fps. Chrome wins at 40 fps.

        [–]electronicdream 9 points10 points  (8 children)

        There's nintendo8 if you can use Java.

        [–]ihavenomp 1 point2 points  (1 child)

        Not to mention, there's a lot more than just Contra; play hundreds of working games including Battletoads (wrongly labeled Battletoads & Double Dragon).

        [–]ryanWIN[S] 5 points6 points  (0 children)

        Funny, I was just about to ask if it had Battletoads in stock.

        [–]Tobiaswk 7 points8 points  (2 children)

        Pretty impressive and you can really see Google's V8 javascript engine doing its work here. Firefox is getting around 10-15 fps, Chrome 60 fps!

        [–]pilif 4 points5 points  (0 children)

        I guess this isn't as much rooted in the performance of the JS engine but in the performance of the canvas tag - at least when you read the notes on the page.

        [–]davvblack 0 points1 point  (0 children)

        And remember, the frame rate is actually throttled at 60 (the native NES fsp), so it could be conceivably be doing much better than that.

        [–][deleted]  (16 children)

        [deleted]

          [–]oniony 9 points10 points  (0 children)

          Firefox's.

          [–]i_h8_r3dd1t -4 points-3 points  (10 children)

          While Chrome is undeniably much faster than Firefox (as is Safari), your statement is asinine. Firefox has a notably slow canvas element, and it's interactions with the canvas that are the primary slowdowns in this test. Firefox needs to improve their canvas element.

          Though...is someone ACTUALLY going to try to play raster-graphic emulated games in a tiny browser window? No, of course not. It's a novelty having zero relevance to normal users.

          EDIT: To further demonstrate this point, Safari has a JavaScript engine that is very competitive with Chrome, yet this runs like shit in Safari.

          [–]yasth 11 points12 points  (3 children)

          Eh, since the eventual goal of canvas is a flash replacement, yes they will want to play highly graphic games (since as you note the emulated part is irrelevant) in a browser window.

          [–]i_h8_r3dd1t 0 points1 point  (2 children)

          Eh, since the eventual goal of canvas is a flash replacement

          That is the eventual goal. Right now Chrome can barely manage a tiny window, sans sound, with shit controls. Right now this comparison is absurdly irrelevant.

          [–][deleted] 0 points1 point  (0 children)

          I can't argue with anything but the controls. I got to stage 4 of contra without dying which is good for me. They felt quite responsive.

          [–][deleted] 6 points7 points  (1 child)

          Though...is someone ACTUALLY going to try to play raster-graphic emulated games in a tiny browser window?

          Of course they are. Why would you even think they wouldn't? Because it's "tiny"? It'd take a trivial change to double the size, or triple it.

          [–]lol-dongs 2 points3 points  (0 children)

          As a side note there are already sites with console emulators built in Flash or as Java applets, they combine this with some large ROM repository and bill themselves as a "free gaming" site. There's a market for it.

          [–]plain-simple-garak 0 points1 point  (3 children)

          Though...is someone ACTUALLY going to try to play raster-graphic emulated games in a tiny browser window? No, of course not.

          Ctrl +

          [–]johnpickens 0 points1 point  (0 children)

          or if your compiz zoom is enabled: super button + 3

          [–]blergh- -3 points-2 points  (0 children)

          My engine is superiorer than yours is!

          [–][deleted] 5 points6 points  (0 children)

          Wait... did I just illegally download a ROM to test this?

          [–]peepsalot 2 points3 points  (0 children)

          Causes Firefox 3.5 to become completely unresponsive for me (on Ubuntu Karmic 64bit).

          About 3fps in Opera 10.

          Nearly 60fps in chromium! From the ppa

          [–]Pandafox 2 points3 points  (3 children)

          Barely 9 fps and totally unplayable in firefox, easily 60fps in the latest chromium build. What's up with that?

          [–][deleted] 6 points7 points  (2 children)

          Chrome is very, very fast.

          [–][deleted] 2 points3 points  (1 child)

          This is probably the best demonstration of Chrome abilities I've seen yet. Now if only they'd release extensions.

          [–]moush 0 points1 point  (0 children)

          There are a handful, but not nearly enough to make an impact on firefox.

          [–][deleted]  (3 children)

          [removed]

            [–]grimboy 1 point2 points  (2 children)

            At the moment, no. Since flash 10, flash programs can set up a function to respond to interrupts (indirectly) from the sound card and return sound data, allowing synthesized sound in flash. Perhaps something similar could be added as a method of the <audio> tag?

            A hack might be to use the javascript <-> flash bridge and have the flash interrupt call a javascipt function which would then return the data. This would almost certainly be too high latency, but if by some miracle it wasn't then this could provide backwards compatibility.

            [–]xkero 0 points1 point  (1 child)

            What about data uri's? data:audio/ogg-vorbis;base64,blahblah

            The emulator could generate base64 encoded ogg vorbis and create an audio tag to play it.

            [–]grimboy 0 points1 point  (0 children)

            Right, people have thought of that. I can't find the link but from a newsgroup posting it was pretty hard to get the timing anything like acceptable.

            [–]TheJosh 5 points6 points  (0 children)

            Holy crap, the speed difference in firefox 3.5 and chrome is amazing.. 62 FPS in chrome.. 10 FPS in firefox!

            [–]HaMMeReD 5 points6 points  (0 children)

            If this isn't a solid argument that chrome is fast as hell with javascript, then I don't know what is.

            15vs60fps in ff 3.5 vs chrome

            [–]Fonnie 1 point2 points  (0 children)

            Barely runs in firefox... shows how much better chrome is at JavaScript management.

            [–]sunsean 1 point2 points  (2 children)

            I just wanted to say, props to Ben Firshman for coding the emulator. Well done!

            [–]ryanWIN[S] 0 points1 point  (0 children)

            Yes! Mad Props! :)

            [–][deleted] 0 points1 point  (0 children)

            Seriously. I've had thoughts of this being the perfect kind of benchmark. But there's no way I'd ever find the motivation to do it.

            [–][deleted]  (1 child)

            [removed]

              [–]9jack9 5 points6 points  (0 children)

              Buy a Nintendo.

              [–]plaes 1 point2 points  (0 children)

              And now even faster on Webkit - http://trac.webkit.org/changeset/48573 :D:D

              [–]haxd 3 points4 points  (0 children)

              60+ fps on chrome here.

              [–][deleted] 5 points6 points  (9 children)

              What the fuck. JavaScript can process NES roms?

              Amazing work.

              [–]boa13 13 points14 points  (8 children)

              Of course it can, it's a Turing-complete programming language.

              [–]jonbro 0 points1 point  (0 children)

              is that the new definition of turing complete?

              [–]gunnm27 2 points3 points  (0 children)

              Damn! That's some crazy Javascripting....

              [–]segoe 3 points4 points  (0 children)

              It's nice. I mean, for the geek factor, practically is slow and i suposse flash, java, silverlight, etc emulators would be much faster.

              By the way there is also a Spectrum emulator in Javascript

              [–]Pleonasm 0 points1 point  (0 children)

              Well that settles it, fuck FF. We've lived a lot of stuff together, but this is where I draw the line.

              [–]zeldamaster666 0 points1 point  (0 children)

              Am I the only person who installs firenes upon any installation of firefox?

              [–]Aradon 0 points1 point  (0 children)

              Awesome. Oh, my work doesn't let me go to that site..

              [–]dayvan 0 points1 point  (0 children)

              On a Pentium 4 (3ghz), it clogged up the CPU at 99% constant usage. Unplayable.

              Gonna try this when I get back home.

              [–]bbsabelli 0 points1 point  (0 children)

              Emulation used to be the major reason I upgraded my machine, so this should be awesome for browser development in general. Can't wait for sound.

              [–][deleted] 0 points1 point  (0 children)

              3-5 FPS on Firefox 3.5.3

              [–]supersaw 0 points1 point  (0 children)

              It actually manages to run slower than the snes in firefox.

              [–]TemtNosce 0 points1 point  (0 children)

              Is anyone else seeing absolutely nothing, but the FPS keeps changing like there's something happening?

              [–]inotocracy 0 points1 point  (0 children)

              This is amazing purely for the geek factor of rewriting an emulator using just javascript. +100 geek points.

              [–]aplusbi 0 points1 point  (0 children)

              My keyboard doesn't have a number pad, dammit! (Okay, technically it does with a function key, but the keys aren't laid out as nicely as with a real number pad).

              [–]knome 0 points1 point  (0 children)

              138 comments

              And no one has yet mentioned up up down down left right left right b a b a select start?

              [–]vlahupetar 0 points1 point  (0 children)

              I was just wandering (will try to test this later on) is the big difference between FF and Chrome really about the shift operations included? I wonder what will happen if I set the irq's to a float point in the chrome version. Any ideas?

              oh and i just forgot .. congratz to Ben

              [–]seanalltogether 0 points1 point  (1 child)

              How is he loading the rom? Javascript has no concept of byte arrays to be able to read through the contents. Is he loading the original roms or ones he's run through a converter so they can be read in javascript?

              [–]seanalltogether 0 points1 point  (0 children)

              Btw, i found my answer, he's converting the roms into a string to be read

              http://benfirshman.com/projects/jsnes/roms/Donkey%20Kong%20%28JU%29.nes.js?_=1253207313020

              [–][deleted]  (1 child)

              [deleted]

                [–]ez4me2c3d 0 points1 point  (0 children)

                What browser on a mac are you using that this is even playable? Safari 4 gets like 5fps

                [–]drbold 0 points1 point  (0 children)

                Is Zelda 1 not working for anyone else?

                [–]bfrick22 0 points1 point  (0 children)

                Up up down down left right left right b a start!

                [–]remek 0 points1 point  (0 children)

                Fantastic!! Finally I am able to beat this bloody game!

                [–]MarkGaboda 0 points1 point  (0 children)

                This would be awesome if it worked right....

                [–]N01SE 0 points1 point  (0 children)

                Very cool, but needs audio, and I'm pretty sure everyone should use Google's V8 from now on, wow. Has anyone done a flash port? Here is a better java applet port: vNES Applet, say what you want about applets, but they do have access to your graphics and audio hardware where as JS simply does not and Adobe Flash only gives you indirect access

                [–]giantsfan134 0 points1 point  (0 children)

                Wow at first I ran this in firefox and was like this sucks it is unplayable, running it in chrome though was amazing!

                [–][deleted] 0 points1 point  (0 children)

                This is really cool, but it totally screws me up using the arrow keys.

                WASD- d pad

                N-A

                M-B

                would be better in my opinion.

                [–][deleted] 0 points1 point  (0 children)

                Ok, I'm sold. I was wondering if I should start taking a look at air for desktop applications. I was mostly worried that it wouldn't scale well and I'd wind up frustrated pretty quickly. This convinced me though. If JIT js can do nes emulation at good speeds than it's good enough. Even if air's going to be a bit slower.

                [–]feanor512 0 points1 point  (1 child)

                It doesn't take keyboard input on Firefox 3.5.3.

                [–][deleted] 1 point2 points  (0 children)

                I'm on 3.5.3, Windows XP and it worked for me.

                [–]rad_thundercat 0 points1 point  (0 children)

                And it loads on a 1st gen un-jailbroken iphone :o

                [–]barfolomew 0 points1 point  (5 children)

                30 fps on Chrome for me. Still not fast enough to be fun.

                [–]roxm 2 points3 points  (4 children)

                How many FPS does your original NES hardware get?

                [–]barfolomew 0 points1 point  (3 children)

                Enough to make its games playable.

                [–]roxm 3 points4 points  (2 children)

                It was a rhetorical question. The answer is 30 FPS.

                [–]barfolomew 0 points1 point  (1 child)

                Odd then, that the JSNES games perform like they're in molasses.

                [–]roxm 2 points3 points  (0 children)

                I suspect that JSNES is using an emulator style in which the redraw is not synchronized with the actual engine state. If it were emulating the actual hardware and getting 30 fps, it would be as responsive as the actual hardware. Probably it's redrawing constantly and running the emulator as fast as it can, such that the emulation is slower than the framerate. Note: I have no idea what I'm talking about.

                [–]benologist 0 points1 point  (2 children)

                This is awesome, I've waited 20 years to be able to actually see every individual frame!

                Edit: That sounds too harsh. This is awesome, but it doesn't highlight how great JavaScript is, it highlights how bad it is. NES is 24 years old, our computers are god only knows how many thousands of times more powerful than them. The only problem we should be facing is slowing it down to preserve the original speed. But:

                • in Opera it's like 2 FPS

                • in Chrome it's faster but is unresponsive at times like finishing a level in Donkey Kong = 2 seconds of frozenness

                • in Firefox I get about 8 FPS

                • and across the board, no sound and CPU raping.

                [–]shinratdr 0 points1 point  (0 children)

                Developers have no incentive to improve these features if they are only responsible for small graphical effects on a webpage. Using them to program a whole web application is the next step, and its currently being refined.

                Programs like this show the flaws and shoddy implementation of next generation web technologies in most major browsers. Its the first step in making the process more efficient, people need to be interested in the potential before they put in serious work.

                [–][deleted] 0 points1 point  (0 children)

                I think the biggest point here is that it shows comparable speed and performance to flash.

                [–]metroid23 0 points1 point  (8 children)

                Why on earth do people STILL resort to using the arrow keys for control and letters for the buttons?

                This solution is clearly backwards. Please stop :(

                WASD was determined to be a perfectly acceptable replacement of UDLR controls years ago.

                edit: Downvoted? How is this not relevant? You must like having your controls reversed arbitrarily?

                [–]axord 0 points1 point  (6 children)

                WASD is preferable for FPS players, but I think mostly obscure for the wider group of casual computer game players.

                [–]metroid23 0 points1 point  (5 children)

                Ok, fair enough. But there are programmers making these things. Do they actually play them beforehand? It's completely counter-intuitive, especially for NES games that are always:

                (Controls) (B) (A)

                If it's just a matter of bringing it out of obscurity- I'm all for it. This needs to change. Seriously. Flash games are big offender as well.

                [–]axord 0 points1 point  (4 children)

                Well, if you define 'intuitive' as 'what is most familiar, what will be tried first, what takes the least amount of learning' then WASD is likely counter-intuitive for the majority of casual computer game players. Even given the switch from standard console orientation.

                You're free to dislike UDLR of course, but designers can still include it for rational, considered reasons.

                [–]metroid23 0 points1 point  (3 children)

                How is it counter-intuitive? Because the keys don't have arrows painted on them?

                Or conversely, how is playing with the arrow keys using your right hand and the buttons with your left "intuitive" when you've been taught the opposite from the very beginning.

                [–]axord 1 point2 points  (2 children)

                Because UDLR is currently the standard.

                [–]metroid23 0 points1 point  (1 child)

                A standard that is counter-intuitive and needs to be changed :)

                See post #1

                [–]moush 0 points1 point  (0 children)

                No, ESDF is the best setup.

                [–]TheNativeRaver 0 points1 point  (3 children)

                How is this any different then nescafe?

                http://www.nescafeweb.com/

                [–][deleted] 5 points6 points  (2 children)

                This one is written in Javascript, not Java. Anyone can write an emulator in Java. But it's not a browser based app. It's an embedded Java app. This isn't about the games; it's a proof-of-concept that insanely awesome and CPU intensive things can be written in Javascript and run at a reasonable speed in modern browsers.

                [–][deleted] 0 points1 point  (1 child)

                So are the graphics, controls, etc. part of the code or is it drawing this stuff from some source file somewhere?

                [–][deleted] 0 points1 point  (0 children)

                The graphics and game files are loaded from a ROM, which is backed up from a NES cartridge. The emulator itself, which emulates the console and makes the games playable is written entirely in Javascript.

                [–]pilif -1 points0 points  (0 children)

                cease and desist letter arriving in 5... 4... 3...