Giter Club home page Giter Club logo

webnes's Introduction

WebNES

NES emulator in Javascript using HTML5 canvas. Optimised for Chrome's V8 engine. Due to various performance issues and the lack of real typed arrays in IE, it is entirely not supported.

Just play

A release build can be played here http://peteward44.github.io/WebNES

Screenshots

Super Mario Brothers 3

Super Mario Brothers 3

Mike Tyson's Punchout

Mike Tyson's Punchout

RC Pro Am 2

RC Pro Am 2

Slalom

Slalom

Features

  • Supports all common NES mapper formats, approximately 98% of games should work
  • Audio support using the HTML5 WebAudio API
  • WebGL support with canvas fallback on platforms which do not support it
  • Supports a selection of WebGL shaders used in the higan SNES emulator, such as CRT monitor emulation
  • Remappable keyboard keys
  • Save state support through quick save / quick load
  • Game genie database - If a game is loaded which has known game genie codes, the player can click the star on the toolbar to be able to activate / deactivate GG codes
  • Screenshots
  • Game pad support
  • NTSC / PAL support
  • Zip file support to load ROMs
  • Game speed can be slowed down / sped up
  • Debugging for ROM authors or other emulator authors - Trace logs can be generated for CPU instructions and PPU events

Building

WebNES can run without building, however various optimisations are performed by the closure compiler and the grunt build script. You will need npm and bower installed.

Windows

Run setup.cmd
Run build_release.cmd

Linux

npm install
bower install
grunt

webnes's People

Contributors

peteward44 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webnes's Issues

Tetris 1

Could you simply add the original Tetris ROM as an option?

Mapping Controller 2

Loving this project but I have one issue I need help resolving. Webnes is not recognizing keybindings for controller 2. I've reassigned the map inputs, but controller 2 just ends up controlling player 1.

Task "closureCompiler:nesJs" failed

Running "closureCompiler:nesJs" (closureCompiler) task
Executing: java -server -XX:+TieredCompilation -jar "closureCompiler/build/compiler.jar" --js E:/code/frontend/WebNES/out/js/nes.min.js --js_output_file=E:\code\frontend\WebNES\out\js\tmp.nes.min.js --compilation_level SIMPLE_OPTIMIZATIONS --debug false --externs closureCompiler/externs/dngamepads.js --externs closureCompiler/externs/glmatrix.js --externs closureCompiler/externs/jquery-1.9.js --externs closureCompiler/externs/jquery-ui.js --externs closureCompiler/externs/jszip.js --externs closureCompiler/externs/qtip2.js --externs closureCompiler/externs/window.js --warning_level verbose --jscomp_error checkRegExp --jscomp_error checkDebuggerStatement --jscomp_error checkVars --jscomp_error const --jscomp_error constantProperty --jscomp_error duplicate --jscomp_error suspiciousCode --jscomp_off globalThis --jscomp_off checkTypes --summary_detail_level 3

Error: Command failed: java -server -XX:+TieredCompilation -jar "closureCompiler/build/compiler.jar" --js E:/code/frontend/WebNES/out/js/nes.min.js --js_output_file=E:\code\frontend\WebNES\out\js\tmp.nes.min.js --compilation_level SIMPLE_OPTIMIZATIONS --debug false --externs closureCompiler/externs/dngamepads.js --externs closureCompiler/externs/glmatrix.js --externs closureCompiler/externs/jquery-1.9.js --externs closureCompiler/externs/jquery-ui.js --externs closureCompiler/externs/jszip.js --externs closureCompiler/externs/qtip2.js --externs closureCompiler/externs/window.js --warning_level verbose --jscomp_error checkRegExp --jscomp_error checkDebuggerStatement --jscomp_error checkVars --jscomp_error const --jscomp_error constantProperty --jscomp_error duplicate --jscomp_error suspiciousCode --jscomp_off globalThis --jscomp_off checkTypes --summary_detail_level 3

'java' �����ڲ����ⲿ���Ҳ���ǿ����еij���

���������ļ���

FAILED to run command for target: nesJs

Warning: Task "closureCompiler:nesJs" failed. Use --force to continue.

I know this emulator is like old, but...

Hiya! i LOVE this emulator! it allows me to play nes games on a chromebook offline! anyway, i have a couple things that should get fixed.

  1. i get an "incorrect nes header" error when using the folder icon to load roms. dragging works, but lags my chromebook. please fix if possible for ease of use.

  2. i get sometimes a "mapper insert number here is not supported." I don't know what it means, but could you please fix it to support mapper insert number here. I would like to not have to find another lost levels rom.

Thanks if you can fix!

P.S. could you make a snes emulator EXACTLY like this nes emulator. (and call it webSNES?)

Sound issues

Hello

I love your emulator (love the post-processing effects ! )

But i keep getting jitters in the sound.
At first i thought it was because i was running a PAL rom, but even with an NTSC rom i get strange jitters.
I tryed with another machine and same issue. Is this due to newer JS engine in Chrome ?

edit:
The only warning i get in the console is :
"The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu" webAudioRenderer.js:70

edit2:
Okay, updated some code to only start webnes after a button press, warning is gone. but the jittered audio remains

edit3:
I notice the FPS indicator sometimes dips a bit sometimes. could be the reason for jittered audio ?

edit4:
I remember a while back, Chrome updating things because of "Spectre" vulnerability, and adding random jitter to callbacks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.