Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README #1

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 40 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,72 @@
# 1964js
This is the first Nintendo 64 emulator for JavaScript. Visit the [blog](http://1964js.com/blog/index.html "1964js blog") on [1964js.com](http://1964js.com "1964js website") to see videos and to download the original Windows version of 1964.

# Building the source
![1964.js logo](./docs/img/logo.png)

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

Required to build:
This is the first Nintendo 64 emulator written in JavaScript.
## Features

* Slim
* Sass
* CoffeeScript
* Java
- Runs some commercial games, as well as some homebrew and test ROMs
- Works in any modern browser

## To setup your Linux environment:
```
## Screenshots

![1964.js screenshot](./docs/img/screenshot.jpg)
## Tech used

JavaScript Libraries:

- BigInt.js, bitjs, GL Matrix, Google Closure, WebGL Utilities

Other:

- Ruby, Slim, Sass, CoffeeScript, CoffeeLint, NodeJS, NPM, JavaScript, Java, HTML
## Installation

Build 1964.js on Linux/Mac:

```bash
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 coffeescript
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
Build 1964.js on Windows:

```bash
Install MinGW/MSYS/Cygwin/WSL terminal
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
Install Java
Run compile.sh in terminal
```
## License

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](http://1964emu.emulation64.com "Emulation64 1964 page").

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.
- [GNU GPLv2](https://choosealicense.com/licenses/gpl-2.0/)

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.
## Authors

For updates, please check [1964js.com](http://1964js.com "1964js website")!
- [Schibo](https://github.com/schibo)

# Compatibility
## Contributors

Many demos, homebrew, test ROMs, and similar ROMs work fine in 1964js in Chrome.
- [Derek "Turtle" Roe](https://github.com/derekturtleroe)
## Related

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!

Be sure to check out [n64js](http://hulkholden.github.com/n64js "N64js") as well!
[n64js](http://hulkholden.github.com/n64js)

Greets to StrmnNrmn, author of n64js and Daedalus. By pure coincidence, we started JavaScript N64 emulators around the same time!
Greets to StrmnNrmn, author of n64js and Daedalus! Coincidentally, we started JavaScript N64 emulators around the same time!
Binary file added docs/img/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/screenshot.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 7 additions & 12 deletions lib/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,11 @@ This is the directory for various libraries used in conjunction with 1964js.

Hopefully, soon we will update and synchronize some of these to newer versions, since some of these are quite out of date or use files from different versions of the same software.

-
| Name | Description | Version | License |
| ---------------------- | --------------------------------------------------------------------------------------------------------------- | -------------------------- | ---------------- |
| BigInt.js | An arbitrary size integer math package for JavaScript | 1.0.1 | GNU GPLv2+ |
| bitjs | A set of tools to handle binary data in JavaScript (using Typed Arrays) | June 11, 2014? | MIT |
| GL Matrix | JavaScript matrix and vector library for high performance WebGL apps | 0.9.5? | MIT |
| Google Closure Library | Closure is a powerful, low-level JavaScript library designed for building complex and scalable web applications | 2006? | Apache 2.0 |
| WebGL Utilities | Contains functions every WebGL program will need a version of one way or another | September 15, 2011 commit? | Copyright Google |

|Name |Description |Version |License |
|---|---|---|---|
|BigInt.js |An arbitrary size integer math package for JavaScript |1.0.1 |GNU GPLv2+ |
|bitjs |A set of tools to handle binary data in JavaScript (using Typed Arrays) |June 11, 2014? |MIT
|GL Matrix |JavaScript matrix and vector library for high performance WebGL apps |0.9.5? |MIT |
|Google Closure Library |Closure is a powerful, low-level JavaScript library designed for building complex and scalable web applications |2006? |Apache 2.0
|WebGL Utilities |Contains functions every WebGL program will need a version of one way or another |September 15, 2011 commit? |Public Domain* |

-

* *This has no license, so it defaults to public domain. If a license is added, I will gladly add it here.