Super Mario 64 - Javascript Port
This project is currently still being developed. This page may be live from time to time for testing, but there may be glitches and performance issues. The server will go down and restart at random times without warning. If you would like to help with the project or have feedback please contact me.
This project uses the textures and other game assets from the original game. Due to copyright issues, I cannot host those assets on this site. Please select a sm64 ROM to extract those assets before you can play.
Frame time:
Game Logic (Avg):
Rendering/WebGL (Avg):
Adjust Game Speed:
30 fps
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) (No Web Assembly). This project required 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.
What is the purpose of this port?
- Extensibility: More access to more developers to add custom content
- Rapid Prototyping
- More friendly to importing other software modules/packages
- More friendly to prototyping multiplayer custom games/mods
- Portablity: Sm64 projects can run on any device with a web browser anywhere without needing to download or install anything
- Opportunity to refactor / rewrite with modern coding style and cleanup
What's wrong with Web Assembly / Emscripten
Nothing. However, I believe access to this game's source code in a higher level programming language opens it up to a wider pool of potentially capable developers / modders. And seems to me like a natural next step following in the amazing work done by the decomp team and pc port.
Credits
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
(I had to reimplement this in JavaScript and WebGL)Super Mario 64 Coop
Online cooperative multiplayer mod for SM64, aiming to synchronize all entities and every level for two players.
(Special thanks to djoslin0, the developer of this project, for consultation and advice on the implementation of multiplayer for sm64js. I also ported some code from this project directly)Other Libraries
Special Thanks to
Contact
Questions? Suggestions? Want to help with this project? =)
I have a discord server dedicated to sm64js: Join Here
Discord: snuffysasa#2779