An official continuation of https://github.com/djoslin0/sm64ex-coop on sm64coopdx for the enhancements and progress it already has.
Find a file
Agent X 19a429dbe5
Add built-in preset screen shader effects configurable through Lua (#1217)
* C++ lighting engine

Runs better using my new system for storing and iterating through lights.

I removed the lighting ctx profiler because after I've realized its very inaccurate and was probably programmed incorrectly from the start. Although I remember it working fine before and not constantly showing 20 ms or higher when I'm in an extremely simple level with extremely simple lights and the FPS is way too high for it to be taking 20 ms.

* Whoops

* Make some optimizations

* Fix small bug with LE inside graphics vertex function

I also brought back the lighting profiler because it's better than nothing.

* Some optimizations

* Cache active lights and 4 lights per vertex limit

Less branching and less iterating with the limit

* Screen shader effects for Lua [OpenGL]

Hue, saturation, brightness, contrast, exposure, dithering, posterization

Global = usually an object in the world
Non global = usually a screen element

Also:
* Changed skyboxes to use environment color instead of vertex color, visually identical
* Changed hud head texture to be non global
* changed power meter to be non global
* changed sparkles to be global
* changed some BBH vertex types to global

OpenGL renderer supported only for now.

* Add default values and better function names

Also fixed sizes in reset function

* Add scanlines effect

* Add global enabled function

* Fix some default values

* Hopefully fix white sparkles

* Whoops

* Address review

* Update function names

* Fix shader crash

* Address reviews
2026-05-11 15:59:48 -04:00
.github Unify renderers into one build, add renderer selectionbox (#1218) 2026-05-09 19:46:29 -04:00
actors Add built-in preset screen shader effects configurable through Lua (#1217) 2026-05-11 15:59:48 -04:00
assets extract demo data from rom at runtime 2025-01-13 22:27:47 +10:00
autogen Add built-in preset screen shader effects configurable through Lua (#1217) 2026-05-11 15:59:48 -04:00
bin Add built-in preset screen shader effects configurable through Lua (#1217) 2026-05-11 15:59:48 -04:00
data Unify renderers into one build, add renderer selectionbox (#1218) 2026-05-09 19:46:29 -04:00
developer Unify renderers into one build, add renderer selectionbox (#1218) 2026-05-09 19:46:29 -04:00
docs Add built-in preset screen shader effects configurable through Lua (#1217) 2026-05-11 15:59:48 -04:00
dynos/packs Introduce this new pack in a more proper reviewable manner (#1192) 2026-04-21 23:41:44 -04:00
include Fix rendering issues with held objects (#1221) 2026-05-06 07:10:59 +10:00
lang Auto updater improvements 2026-05-10 23:48:10 -04:00
levels Add built-in preset screen shader effects configurable through Lua (#1217) 2026-05-11 15:59:48 -04:00
lib Add backwards compatibility for older versions of macOS and add new macOS Icon (#957) 2026-02-23 08:35:53 +10:00
mods Day Night Cycle DX v2.5.2 2026-05-06 16:02:24 -04:00
palettes Fix Waluigi 2024-06-30 15:09:07 -04:00
res Add version info (Windows) + Smart update checker (#1069) 2026-05-01 22:05:42 -04:00
sound fix missing non mario character sounds 2025-03-13 21:49:20 +10:00
src Add built-in preset screen shader effects configurable through Lua (#1217) 2026-05-11 15:59:48 -04:00
text Add `smlua_text_utils_allocate_dialog` (#896) 2025-08-03 17:49:45 +02:00
textures more font adjustments (#1211) 2026-04-29 21:21:27 -04:00
tools Unify renderers into one build, add renderer selectionbox (#1218) 2026-05-09 19:46:29 -04:00
updater Update libs (#1234) 2026-05-11 07:34:35 -04:00
.clang-format Refresh 1 2019-09-01 15:50:50 -04:00
.clang-tidy Refresh 1 2019-09-01 15:50:50 -04:00
.gitattributes Merge pull request #42 from krmeet/luac 2024-01-01 12:53:32 -05:00
.gitignore Add an auto updater (#1231) 2026-05-10 22:46:35 -04:00
assets.json DynOS Skyboxes 2023-11-06 18:37:02 -05:00
CHANGES Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
charmap.txt refresh 5 2020-01-03 10:38:57 -05:00
charmap_menu.txt refresh 5 2020-01-03 10:38:57 -05:00
credits.txt Update credits 2024-06-30 11:16:46 -04:00
Dockerfile Add curl to Dockerfile 2024-06-08 08:07:47 -04:00
dynos.mk Added DynOS v1.1 without the dynamic options 2022-03-09 18:01:03 -08:00
extract_assets.py extract demo data from rom at runtime 2025-01-13 22:27:47 +10:00
format.sh sm64coopdx 2023-10-30 01:03:36 -04:00
Makefile Auto updater improvements 2026-05-10 23:48:10 -04:00
Makefile.split extract assets from rom at runtime (#4) 2024-03-23 16:11:30 -04:00
README.md Add Community section with Discord link 2026-05-05 09:35:01 +10:00
sm64.eu.sha1 these should remain 2025-05-29 12:50:35 +10:00
sm64.jp.sha1 these should remain 2025-05-29 12:50:35 +10:00
sm64.sh.sha1 these should remain 2025-05-29 12:50:35 +10:00
sm64.us.sha1 these should remain 2025-05-29 12:50:35 +10:00
util.mk Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
windows.ld [Experimental] Reduce the size of Windows builds by cleaning the MinGW debug info (#585) 2024-12-29 14:29:26 -05:00

sm64coopdx Logo

sm64coopdx is an online multiplayer project for the Super Mario 64 PC port that synchronizes all entities and every level for multiple players. The project was started by the Coop Deluxe Team. The purpose is to actively maintain and improve, but also continue sm64ex-coop, created by djoslin0. More features, customization, and power to the Lua API allow modders and players to enjoy Super Mario 64 more than ever!

Feel free to report bugs or contribute to the project.

Initial Goal (Accomplished)

Create a mod for the PC port where multiple people can play together online.

Unlike previous multiplayer projects, this one synchronizes enemies and events. This allows players to interact with the same world at the same time.

Interestingly enough though, the goal of the project has slowly evolved over time from simply just making a Super Mario 64 multiplayer mod to constantly maintaining and improving the project (notably the Lua API.)

Documentation

sm64coopdx is moddable via Lua, similar to Roblox and Garry's Mod's Lua APIs. To get started, click here to see the Lua documentation. If you want to contribute to the repo, you can view the C documentation here.

Wiki

The wiki is made using GitHub's wiki feature, you can go to the wiki tab or click here.

Community

We have an official Discord server open to the public here.