Giter Site home page Giter Site logo

sm64js

Links

Main Website: sm64js.com

Discord Server

What is this?

This is an ongoing work-in-progress port of the decompilation of original Nintendo game, Super Mario 64, to native Javascript (no emulation or web assembly). The project involved creating a Javascript WebGL port of N64 Fast 3D Renderer, originally implemented with OpenGL in C. This project also includes the development of online mass multiplayer versions of sm64js and other custom multiplayer game modes.

Build instructions - Windows, Mac, or Linux

Prerequisites

  • Node.js

Run these commands

# Clone the source code
git clone https://github.com/sm64js/sm64js.git && cd sm64js
# Install node packages
npm install
# Launch wepback dev server
npm run start

To update your project

# update folder (be inside sm64js)
git pull
# Launch server
npm run start

You should now be able to access the website with the game from a web browser by typing "localhost" into the address bar.

Build instructions With Docker - Windows, Mac, or Linux

First install Docker

Run these commands

# Create and start lightweight docker container with NodeJs
docker run --name mySm64JsServer -dp 80:80 node:13 tail -f /dev/null
# Connect to the docker container's shell
docker exec -it mySm64JsServer /bin/sh

# Install additional prerequisites
apk update && apk add git
# Clone the source code
git clone https://github.com/sm64js/sm64js.git && cd sm64js

# Install node packages, build, and serve
npm run build 
npm run serve

You should now be able to access the website with the game from a web browser by typing "localhost" into the address bar.

Neat gLinker commands you can run in the console

Because of a good portion of the game existing under the gLinker object within the window object, you can manipulate these portions of code to make certain things happen.

Drain the Castle Grounds moat:

const gEnvironmentRegions = gLinker.ObjectListProcessor.gEnvironmentRegions
gEnvironmentRegions[6] = -800
gEnvironmentRegions[12] = -800

Access Mario's state:

gLinker.LevelUpdate.gMarioState.key = value

With this, you can make Mario fly, go fast, and a lot of other things.

Related Projects

Super Mario 64 Decomp

  • Team that decompiled the original Super Mario 64 ROMs into C source code

Super Mario 64 PC Port

  • Team that ported the decompiled project to PC

N64 Fast 3D Renderer

  • OpenGL Implementation of a 3D renderer for the Nintendo 64's graphics (For this project, it was re-implemented in Javascript and WebGL)

sm64js's Projects

sm64js icon sm64js

A Super Mario 64 Native Javascript Port

sm64js-mmo icon sm64js-mmo

Super Repository for sm64js mmo server and client files

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.