e0903003f4
Since the second-player code was the first code I wrote, it was implemented poorly. At that point, I didn't know the code base at all and the way it was written would prevent anyone from ever adding to those parts. The rewrite allows me to use the default geo.inc.c file for Mario, and removes all of the geo2.inc.c files. I no longer do a bunch of bit shifting to figure out which player is being drawn in the rendering code. I'm also now able to remove tons of duplicate code that exists just for the remote player. The main player code is generic enough to support both indices. A side-effect of the rewrite is I was able to remove many assumptions in the code where two-players is assumed, but many other parts of the code still assume two players. This is a fairly major change that, if all goes well, will be completely unnoticed by the player. However, I do expect new bugs to pop up in strange places. Time will tell. |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
actors | ||
asm | ||
assets | ||
bin | ||
build-windows-visual-studio | ||
data | ||
doxygen | ||
enhancements | ||
include | ||
levels | ||
lib | ||
sound | ||
src | ||
text | ||
textures/segment2 | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.gitattributes | ||
.gitignore | ||
CHANGES | ||
Dockerfile | ||
Doxyfile | ||
Jenkinsfile | ||
Makefile | ||
Makefile.split | ||
README.md | ||
README_es_ES.md | ||
README_pt_BR.md | ||
README_zh_CN.md | ||
SAVE_FORMAT.MD | ||
asmdiff.jp.sh | ||
assets.json | ||
c2obj.py | ||
cgdb.exe.stackdump | ||
charmap.txt | ||
charmap_menu.txt | ||
compile.sh | ||
debug.sh | ||
diff.py | ||
diff_settings.py | ||
dx11.sh | ||
extract_assets.py | ||
first-diff.py | ||
format.sh | ||
gdb.exe.stackdump | ||
network.sh | ||
obj2c.py | ||
pisetup.sh | ||
rename_sym.sh | ||
sm64.eu.sha1 | ||
sm64.jp.sha1 | ||
sm64.ld | ||
sm64.sh.sha1 | ||
sm64.us.sha1 | ||
undefined_syms.txt |
README.md
sm64ex-coop
Online cooperative multiplayer mod for SM64, aiming to synchronize all entities and every level for two 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.
Goal
Create a mod for the PC port where two people can play online together peer-to-peer. Unlike previous online attempts, this one will synchronize enemies and events such that you will be interacting with the same world at the same time.
Building
For building instructions, please refer to the wiki.
Make sure you have MXE first before attempting to compile for Windows on Linux and WSL. Follow the guide on the wiki.