{"id":13425969,"url":"https://github.com/sm64js/sm64js","last_synced_at":"2025-03-15T20:31:44.223Z","repository":{"id":38375638,"uuid":"274828965","full_name":"sm64js/sm64js","owner":"sm64js","description":"A Super Mario 64 Native Javascript Port","archived":false,"fork":false,"pushed_at":"2025-02-03T23:27:36.000Z","size":34190,"stargazers_count":253,"open_issues_count":36,"forks_count":106,"subscribers_count":24,"default_branch":"vanilla","last_synced_at":"2025-03-10T20:41:28.426Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sm64js.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-25T04:30:29.000Z","updated_at":"2025-02-18T16:51:10.000Z","dependencies_parsed_at":"2023-01-30T17:45:51.768Z","dependency_job_id":"69155b91-2c6c-4edb-bde9-a830f1cf327b","html_url":"https://github.com/sm64js/sm64js","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sm64js%2Fsm64js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sm64js%2Fsm64js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sm64js%2Fsm64js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sm64js%2Fsm64js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sm64js","download_url":"https://codeload.github.com/sm64js/sm64js/tar.gz/refs/heads/vanilla","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243790939,"owners_count":20348378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T00:01:23.188Z","updated_at":"2025-03-15T20:31:39.206Z","avatar_url":"https://github.com/sm64js.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# sm64js\n\n### Links\n[Main Website: sm64js.com](https://sm64js.com)\n\n[Discord Server](https://discord.gg/7UaDnJt)\n\n## What is this?\nThis 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.\n\n## Build instructions - Windows, Mac, or Linux\n\n### Prerequisites\n* Node.js\n\n### Run these commands\n```bash\n# Clone the source code\ngit clone https://github.com/sm64js/sm64js.git \u0026\u0026 cd sm64js\n# Install node packages\nnpm install\n# Launch wepback dev server\nnpm run start\n```\n\n### To update your project\n```bash\n# update folder (be inside sm64js)\ngit pull\n# Launch server\nnpm run start\n```\n\nYou should now be able to access the website with the game from a web browser by typing \"localhost\" into the address bar.\n\n## Build instructions With Docker - Windows, Mac, or Linux\n\n### First install Docker\n* Windows - [Install Instructions](https://docs.docker.com/docker-for-windows/install-windows-home/)\n* Mac - [Install Instructions](https://docs.docker.com/docker-for-mac/install/)\n* Linux - [Install Instructions](https://docs.docker.com/engine/install/#server)\n\n### Run these commands\n```bash\n# Create and start lightweight docker container with NodeJs\ndocker run --name mySm64JsServer -dp 80:80 node:13 tail -f /dev/null\n# Connect to the docker container's shell\ndocker exec -it mySm64JsServer /bin/sh\n\n# Install additional prerequisites\napk update \u0026\u0026 apk add git\n# Clone the source code\ngit clone https://github.com/sm64js/sm64js.git \u0026\u0026 cd sm64js\n\n# Install node packages, build, and serve\nnpm run build \nnpm run serve\n\n```\nYou should now be able to access the website with the game from a web browser by typing \"localhost\" into the address bar.\n\n## Neat gLinker commands you can run in the console\nBecause 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.\n\nDrain the Castle Grounds moat:\n```js\nconst gEnvironmentRegions = gLinker.ObjectListProcessor.gEnvironmentRegions\ngEnvironmentRegions[6] = -800\ngEnvironmentRegions[12] = -800\n```\n\nAccess Mario's state:\n```js\ngLinker.LevelUpdate.gMarioState.key = value\n```\nWith this, you can make Mario fly, go fast, and a lot of other things.\n\n### Related Projects\n[Super Mario 64 Decomp](https://github.com/n64decomp/sm64)\n - Team that decompiled the original Super Mario 64 ROMs into C source code\n\n[Super Mario 64 PC Port](https://github.com/sm64-port/sm64-port)\n - Team that ported the decompiled project to PC\n\n[N64 Fast 3D Renderer](https://github.com/Emill/n64-fast3d-engine)\n - OpenGL Implementation of a 3D renderer for the Nintendo 64's graphics\n(For this project, it was re-implemented in Javascript and WebGL)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsm64js%2Fsm64js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsm64js%2Fsm64js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsm64js%2Fsm64js/lists"}