An official continuation of https://github.com/djoslin0/sm64ex-coop on sm64coopdx for the enhancements and progress it already has.
Find a file
PeachyPeach 6726a6280a
Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua (#69)
Improved level_info.c and added functions to LUA:
        const char *get_level_name_ascii(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
            Return a level name as an ascii string. If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const u8 *get_level_name_sm64(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
            Return a level name as an sm64 u8 string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const char *get_level_name(s16 courseNum, s16 levelNum, s16 areaIndex):
            Shortcut for get_level_name_ascii(courseNum, levelNum, areaIndex, -1).
        const char *get_star_name_ascii(s16 courseNum, s16 starNum, s16 charCase):
            Return a star name as an ascii string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const u8 *get_star_name_sm64(s16 courseNum, s16 starNum, s16 charCase):
            Return a star name as an sm64 u8 string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const char *get_star_name(s16 courseNum, s16 starNum):
            Shortcut for get_star_name_ascii(courseNum, starNum, -1).

    Added play_transition function to LUA.
        I chose to copy the function declaration to smlua_misc_utils.h instead of adding area.h
        to the autogen tool, as most structures, variables and functions in area.h aren't meant
        to be used by LUA scripts.

    Added a dev-only warp chat command.
        This command signature is /warp [LEVEL] [AREA] [ACT]. Level can be either a number
            or a shorthand name (bob, wf, ccm...). Area and Act are numbers.
        This command is available only when building the game with DEBUG and DEVELOPMENT.
        This command cannot be used if hosting through Discord.

    Fixed a bug with moving sounds when they are played via a lua script.
        Bug: Moving sounds (including terrain sounds, flying sound, quicksand sound)
            are not played correctly when a lua script play them via a call of
            play_sound or play_sound_with_freq_scale. This is due to how the moving
            sounds are handled internally. They use the f32 pointer provided to the
            play_sound functions to decide if the sound must be kept playing,
            stopped or restarted. Most of the time, the pointer provided is the
            cameraToObject field of Mario's object graph node. Since smlua uses a
            circular buffer for Vec3f conversion, this pointer is lost, and the
            sound engine can't decide what to do with the sound, resulting in a
            weird and incorrect sound effect.
        Fix: play_sound and play_sound_with_freq_scale now calls
            smlua_get_vec3f_for_play_sound before filling the sound request queue,
            to retrieve the correct pointer from the Vec3f provided by smlua.
2022-04-26 13:48:50 -07:00
.github/ISSUE_TEMPLATE
actors Fix Luigi metal color 2022-04-16 23:53:10 -07:00
assets Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
autogen Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua (#69) 2022-04-26 13:48:50 -07:00
bin Added actor textures to dynos builtin list; added shadow_spike_ext 2022-04-13 19:13:25 -07:00
data Possible mac compile fix 2022-04-23 15:54:39 -07:00
developer Fixed finding of renamed custom actors 2022-04-22 18:54:11 -07:00
docs/lua Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua (#69) 2022-04-26 13:48:50 -07:00
doxygen
include Automatically disable billboards when a DynOS model uses more than 6 vertices 2022-04-23 03:05:16 -07:00
levels Fix error in LOAD_MODEL_FROM_GEO_EXT (level gen) 2022-04-10 16:20:02 -07:00
lib Merge in small changes. (#63) 2022-04-16 19:12:12 -07:00
misc
mods Fix crash when toggling dynos packs 2022-04-23 02:22:12 -07:00
sound Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
src Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua (#69) 2022-04-26 13:48:50 -07:00
text Allow course names/acts to be changed from Lua 2022-04-09 23:28:36 -07:00
textures Added actor textures to dynos builtin list; added shadow_spike_ext 2022-04-13 19:13:25 -07:00
tools Fix warnings/compile errors on Linux 2022-03-13 18:45:42 -07:00
.clang-format
.clang-tidy
.gitattributes
.gitignore A load of fixes and cleanup.. (#39) 2022-03-22 19:50:13 -07:00
asmdiff.jp.sh
assets.json Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
c2obj.py
CHANGES Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
charmap.txt
charmap_menu.txt refresh 5 2020-01-03 10:38:57 -05:00
credits.txt Update credits 2022-04-06 01:31:58 -07:00
diff.py Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
diff_settings.py Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
Dockerfile Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
Doxyfile
dynos.mk
extract_assets.py Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
first-diff.py Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
format.sh
grind.log Fix crash in find_surface_on_ray_list() 2022-04-23 15:50:14 -07:00
Jenkinsfile Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
Makefile Make coop-compiler use O2 2022-04-23 20:01:52 -07:00
Makefile.split Fix up Makefile for coop-compiler 2022-03-21 16:46:31 -07:00
obj2c.py
pisetup.sh
README.md Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
README_es_ES.md
README_pt_BR.md
README_zh_CN.md
rename_sym.sh Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
SAVE_FORMAT.MD
sm64.eu.sha1
sm64.jp.sha1
sm64.ld Added extended bounds 2022-04-06 08:40:22 -07:00
sm64.sh.sha1
sm64.us.sha1
undefined_syms.txt Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
util.mk Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00

sm64ex-coop

Online multiplayer mod for SM64 that synchronizes all entities and every level for multiple players. Fork of sm64pc/sm64ex.

Feel free to report bugs and contribute, but remember, there must be no upload of any copyrighted asset. Run ./extract_assets.py --clean && make clean or make distclean to remove ROM-originated content.

How to Play

Instructions on how to play are available on the wiki.

Goal (accomplished)

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

Unlike previous online attempts, this one synchronized enemies and events. This allows player to be interacting with the same world at the same time.

Discord

https://discord.gg/TJVKHS4