Go to file
TheGag96 a1bcd19529 Arbitrary shirt, pants, glove colors + settings menu (#145)
* Support for more granular player colors

You can now configure RGB values for shirt, pants, gloves, and shoes.
Due to some limitations, configuring shoes does nothing at the moment.

* Remove paletteIndex and friends

Restructured and filled in some remaining code to account for that.

* Add Edit Palette panel to Player panel

* Change PlayerPalette contents to an enum-indexed array, remove shoes

This gets rid of all the hokey code doing switch cases on the
different parts.

* Fix goof with player model selection box

Should actually have affect now even if a custom palette is being used.

* Fix gap in player color display list commands

The extra space was leftover from when I was trying to get shoes
working. Forgot to clean it up.

* Standardize PlayerParts enum, including for lua constants autogen

* djui_panel_player.c: Properly hook sending palette changes on unpause

Editing the palette and then unpausing should send out the packet to
everyone with the new palette changes (and update the palette preset
selection box), but since we weren't hooking that situation before, it
would stay changed only for you. You would have had to press the Back
button for it to work right.

* Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex`

This lets mod code like this still work unchanged:

if s.team == 2 then
    np.overridePaletteIndex = 7
elseif s.team == 1 then
    np.overridePaletteIndex = 15
else
    np.overridePaletteIndex = np.paletteIndex
end

It's essentially faked, and would work strangely if the value of either
variable was inspected more closely directly. This should at least
handle the typical use case, though.

Every frame, `overridePaletteIndex` is checked to see if it was modified
from its previous value. If so, `overridePalette` is set to the preset
corresponding to the index. `paletteIndex` contains a special value that
when used to assign to `overridePaletteIndex`, it copies `palette` into
`overridePalette` to restore the real colors, which of course may not
follow the presets at all.

* characters.h: Pack `PlayerPalette` to eliminate size differences between computers

* mario_misc.c: Remove remaining "TODO GAG"
2022-08-07 15:13:19 -07:00
.github/ISSUE_TEMPLATE Update issue templates 2020-05-07 20:46:35 +02:00
actors Arbitrary shirt, pants, glove colors + settings menu (#145) 2022-08-07 15:13:19 -07:00
assets Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
autogen Arbitrary shirt, pants, glove colors + settings menu (#145) 2022-08-07 15:13:19 -07:00
bin 3-digits orange numbers; Fixed red coins and secrets bugs; Correct red coins display during pause (#82) 2022-05-07 19:09:37 -07:00
data Fix up includes for clang 2022-08-05 20:55:31 -07:00
developer Cleanup ; recursive descent fixes ; fixed behavior override comparisons 2022-06-02 19:07:43 -07:00
docs/lua Arbitrary shirt, pants, glove colors + settings menu (#145) 2022-08-07 15:13:19 -07:00
doxygen yeet 2020-06-02 23:43:32 +03:00
include Added a full new custom behavior system (#124) 2022-06-02 12:19:54 -07:00
levels Fix up co-op ripples 2022-08-07 01:10:10 -07:00
lib Raspberry Pi Support (#117) 2022-06-05 19:40:21 -07:00
misc DJUI: Added controls menu 2021-06-27 15:54:10 -07:00
mods Arbitrary shirt, pants, glove colors + settings menu (#145) 2022-08-07 15:13:19 -07:00
res Add Icon to windows build (#96) 2022-05-19 16:33:17 -07:00
sound Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
src Arbitrary shirt, pants, glove colors + settings menu (#145) 2022-08-07 15:13:19 -07:00
text Allow course names/acts to be changed from Lua 2022-04-09 23:28:36 -07:00
textures 3-digits orange numbers; Fixed red coins and secrets bugs; Correct red coins display during pause (#82) 2022-05-07 19:09:37 -07:00
tools Fix warnings/compile errors on Linux 2022-03-13 18:45:42 -07: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 Refresh 1 2019-09-01 15:50:50 -04:00
.gitignore Add gamepad number, background options (#122) 2022-06-05 19:16:24 -07:00
CHANGES Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
Dockerfile Fix compiling on Docker (#125) 2022-06-05 19:12:23 -07:00
Doxyfile refresh 4 2019-12-01 21:52:53 -05:00
Jenkinsfile Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
Makefile DynOS Bin Compression (#131) 2022-06-25 00:52:53 -07:00
Makefile.split Fix up Makefile for coop-compiler 2022-03-21 16:46:31 -07:00
README.md Fix collision bug in dark world and edit readme.md (#134) 2022-06-25 00:59:48 -07:00
README_es_ES.md Update README_es_ES.md 2020-05-19 00:04:07 +01:00
README_pt_BR.md Create README_pt_BR.md 2020-06-10 22:36:41 -03:00
README_zh_CN.md Typo in extract_assets.py 2020-05-16 15:44:55 -03:00
SAVE_FORMAT.MD Added appropriate flags for sound mode and cap level. Documentation has been updated. 2020-05-20 23:28:04 +09:00
asmdiff.jp.sh merge PC port onto the decompile 2020-05-07 20:21:22 +02:00
assets.json Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
c2obj.py correct line endings 2020-05-16 07:36:28 +03: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 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
dynos.mk Added DynOS v1.1 without the dynamic options 2022-03-09 18:01:03 -08:00
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 init2 2019-08-25 00:46:40 -04:00
obj2c.py correct line endings 2020-05-16 07:36:28 +03:00
pisetup.sh Update repo_url. Rename /sm64pi/sm64pc -> /sm64pc/sm64ex 2020-07-06 19:29:52 +02:00
rename_sym.sh Update to Refresh 13 (#19) 2022-03-13 00:17:10 -08:00
sm64.eu.sha1 init2 2019-08-25 00:46:40 -04:00
sm64.jp.sha1 init2 2019-08-25 00:46:40 -04:00
sm64.ld Added extended bounds 2022-04-06 08:40:22 -07:00
sm64.sh.sha1 Refresh 7 2020-03-01 22:42:52 -05:00
sm64.us.sha1 init2 2019-08-25 00:46:40 -04:00
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

README.md

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 players to be interacting with the same world at the same time.

Discord

https://discord.gg/TJVKHS4