takahirox / Nes Js
Licence: mit
JavaScript NES(Famicom) emulator
Stars: ✭ 131
Programming Languages
javascript
184084 projects - #8 most used programming language
Projects that are alternatives of or similar to Nes Js
Nes Rust
NES emulator written in Rust + WASM
Stars: ✭ 141 (+7.63%)
Mutual labels: nes, webaudio, emulator
Jsnes Web
A browser UI for JSNES, a JavaScript NES emulator
Stars: ✭ 398 (+203.82%)
Mutual labels: nes, webaudio, emulator
Rustynes
👾 An NES emulator by Rust and WebAssembly
Stars: ✭ 399 (+204.58%)
Mutual labels: nes, emulator
Provenance
iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
Stars: ✭ 4,732 (+3512.21%)
Mutual labels: nes, emulator
Mesen
Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#
Stars: ✭ 814 (+521.37%)
Mutual labels: nes, emulator
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (+146.56%)
Mutual labels: nes, emulator
Nes ebook
A mini book on writing NES emulator using rust lang
Stars: ✭ 38 (-70.99%)
Mutual labels: nes, emulator
Ktnes
A multiplatform NES emulator written in Kotlin
Stars: ✭ 257 (+96.18%)
Mutual labels: nes, emulator
NostalgiaLite
Three game emulators: FC(Nes), GG, GBC for Android
Stars: ✭ 85 (-35.11%)
Mutual labels: emulator, nes
first nes
Create your own games for the Nintendo Entertainment System! This "starter" game is easily extensible for your own projects. Includes references.
Stars: ✭ 94 (-28.24%)
Mutual labels: emulator, nes
Nestur
The NES (emulator) you left outside in the rain but let dry and still kind of works
Stars: ✭ 505 (+285.5%)
Mutual labels: nes, emulator
awesome-emu-resources
A curated list of emulator development resources
Stars: ✭ 26 (-80.15%)
Mutual labels: emulator, nes
helios
A Java-based Sega Mega Drive/Genesis emulator. And other systems too.
Stars: ✭ 14 (-89.31%)
Mutual labels: emulator, nes
Embeddednes
A portable NES simulator for embedded processors
Stars: ✭ 26 (-80.15%)
Mutual labels: nes, emulator
nes-js
This is JavaScript NES(Famicom) emulator which runs on browser.
Demo
Demo with Three.js (It has a performance issue!)
WebVR Demo with Three.js (It has a serious performance issue!)
AR Demo with Three.js and jsartoolkit5 (It has a performance issue!)
Screenshot
Features
- iNES format rom image support
- Renders with Canvas
- Audio support with WebAudio
- Runs on browser
Browser
How to use
<head>
<script type="text/javascript" src="https://cdn.rawgit.com/takahirox/nes-js/v0.0.1/build/nes.min.js"></script>
<script type="text/javascript" >
function init() {
var url = 'url to rom image';
var request = new XMLHttpRequest();
request.responseType = 'arraybuffer';
request.onload = function() {
var buffer = request.response;
var nes = new NesJs.Nes();
nes.setRom(new NesJs.Rom(buffer));
nes.setDisplay(new NesJs.Display(document.getElementById('gameCanvas')));
nes.setAudio(new NesJs.Audio());
window.onkeydown = function(e) { nes.handleKeyDown(e); };
window.onkeyup = function(e) { nes.handleKeyUp(e); };
nes.bootup();
nes.run();
};
request.open('GET', url, true);
request.send(null);
}
</script>
</head>
<body onload="init()">
<p>
<canvas id="gameCanvas" width="256" height="240"></canvas>
</p>
</body>
NPM
How to install
$ npm install nes-js
How to build
$ npm install
$ npm run all
Default key configuration
This table shows the key - joypad configuration set by
window.onkeydown = function(e) { nes.handleKeyDown(e); };
window.onkeyup = function(e) { nes.handleKeyUp(e); };
key | joypad |
---|---|
enter | start |
space | select |
cursor-left | left |
cursor-up | up |
cursor-right | right |
cursor-down | down |
x | A |
z | B |
APIs
T.B.D.
- NesJs
- Nes
- setRom()
- setDisplay()
- setAudio()
- bootup()
- run()
- handleKeyDown()
- handleKeyUp()
- Rom
- Display
- Audio
- Nes
TODO
- Performance optimization
- Support more many mappers
- Support unofficial CPU instructions
- Gamepad API support
Links
- Nes Dev
- VR/AR
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].