Nintendo64 emulator in JavaScript
Find a file
2017-12-20 17:06:47 -05:00
blog rename unofficial_roms/ directory to roms/unofficial/; Bump to v0.1.22 for production; deployed to production 2015-06-02 02:43:54 -04:00
coffee rsp decompiler code (WIP) 2017-12-20 17:06:47 -05:00
dart Clean up a few characters 2015-06-05 18:07:34 -05:00
img links to code/uproar/w3schools with images 2017-12-03 00:10:49 -05:00
lib using mainLoop.js 2017-11-30 22:45:30 -05:00
roms rename unofficial_roms/ directory to roms/unofficial/; Bump to v0.1.22 for production; deployed to production 2015-06-02 02:43:54 -04:00
sass links to code/uproar/w3schools with images 2017-12-03 00:10:49 -05:00
.gitattributes See long description 2016-01-02 00:42:39 -06:00
.gitignore Fix line endings 2017-10-25 23:00:59 -04:00
1964js.py revert 2014-06-30 06:25:22 +00:00
app.yaml Adding img subdirectory to app.yaml 2017-12-03 01:16:03 -05:00
coffeelint.json mem fixes; Disable slim and relax coffelint 2013-02-17 04:21:54 +00:00
compile.sh Avoid some hidden class creation by adding variables in constructor 2017-12-16 17:52:22 -05:00
compiler.jar Updated closure compiler; memory cleanup 2016-09-06 23:13:02 -04:00
debug.html Avoid some hidden class creation by adding variables in constructor 2017-12-16 17:52:22 -05:00
favicon.ico App Engine files 2014-06-15 03:31:50 +00:00
index.html rewrite videoHLE to use coffee classes properly 2017-12-16 11:24:34 -05:00
index.slim Avoid some hidden class creation by adding variables in constructor 2017-12-16 17:52:22 -05:00
LICENSE.md Fix some issues with the repo and re-commit the license 2015-06-03 02:42:43 -05:00
README.md minor copy changes 2016-01-05 01:47:25 -05:00

1964js

This is the first Nintendo 64 emulator for JavaScript. Visit the blog on 1964js.com to see videos and to download the original Windows version of 1964.

Building the source

To build 1964js, run ./compile.sh from the root folder on Linux.

Required to build:

  • Slim
  • Sass
  • CoffeeScript
  • Java

To setup your Linux environment:

sudo apt-get install ruby
sudo gem install slim
sudo gem install sass
sudo gem install coffeelint
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy
sudo apt-get install npm
sudo npm install -g coffee-script
sudo npm install -g coffeelint
sudo npm install -g java
sudo apt-get install default-jre
Run compile.sh

To setup your Windows environment (TODO):

Install MinGW/MSYS/Cygwin
Install Ruby
Install Slim
Install Sass
Install CoffeeLint
Install CoffeeScript
Install NodeJS
Install NPM
Install Java (Security is an issue on Windows, be cautious [12-30-2015])
Run compile.sh in MinGW/MSYS/Cygwin

The script is known to work on Mac OS X 10.10 and Ubuntu 14.04.3 LTS/15.10 64-bit. It should work on any platforms that have a Bash shell.

We are working on Windows build instructions.

About the emulator

1964js is (kind of) a port of our Nintendo 64 emulator for Windows called 1964. 1964 was written in C and C++ for Windows. You can still grab that here.

This project is still in the early stages. The initial goal of this project is to see how well Google Chrome's V8 JavaScript compiler performs.

Instead of building a traditional dynamic recompiler (Just-In-Time/JIT compiler) as we did for 1964 on Windows, which translated MIPS instructions directly to x86 instructions, 1964js dynamically writes JavaScript to the web page by reversing MIPS code to JavaScript. This JavaScript represents blocks of ROM code. Then, if using Chrome for instance, Google's V8 compiler compiles the JavaScript to native code for us automatically.

For updates, please check 1964js.com!

Compatibility

Many demos, homebrew, test ROMs, and similar ROMs work fine in 1964js in Chrome.

Super Mario 64 is the only known commercial game to boot. You need to hit enter a couple times after the title screen.

Be sure to check out n64js as well!

Greets to StrmnNrmn, author of n64js and Daedalus. By pure coincidence, we started JavaScript N64 emulators around the same time!