Go to file
MysterD 8c650a5b7d Created system to reserve sections of SyncIDs per client
This allows clients to spawn a new sync object after the level loads and synchronize it.
Changed how un-initialized sync objects are detected
Koopa shells are the first thing to use this new system

Removed network_object_settings() command, instead explicitly setting the sync object parameters
2020-08-24 18:33:53 -07:00
.github/ISSUE_TEMPLATE Update issue templates 2020-05-07 20:46:35 +02:00
actors Made Luigi a bit bigger 2020-08-23 23:44:11 -07:00
asm merge refresh 10 2020-06-20 02:49:59 +03:00
assets Refresh 3 2019-11-03 14:36:27 -05:00
bin merge refresh 10 2020-06-20 02:49:59 +03:00
build-windows-visual-studio Fixed visual bug when both players are sliding 2020-08-12 19:14:35 -07:00
data Fixed tower platform spawning bug 2020-08-11 23:27:37 -07:00
doxygen yeet 2020-06-02 23:43:32 +03:00
enhancements update 60fps patch 2020-07-09 17:33:04 +03:00
include Synchronized treasure chests 2020-08-18 18:43:42 -07:00
levels Created system to reserve sections of SyncIDs per client 2020-08-24 18:33:53 -07:00
lib throw out unused libultra sources 2020-06-21 02:21:46 +03:00
sound merge refresh 10 2020-06-20 02:49:59 +03:00
src Created system to reserve sections of SyncIDs per client 2020-08-24 18:33:53 -07:00
text refresh 6 2020-02-03 00:51:26 -05:00
tools Refresh 11 2020-07-05 14:15:43 +03: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 Fixed receiving of health, made recovery heart 2-player aware 2020-08-07 22:27:15 -07:00
CHANGES Refresh 11 2020-07-05 14:15:43 +03:00
Dockerfile merge refresh 10 2020-06-20 02:49:59 +03:00
Doxyfile refresh 4 2019-12-01 21:52:53 -05:00
Jenkinsfile refresh 6 2020-02-03 00:51:26 -05:00
Makefile Made sockets platform-independent, supporting Linux 2020-08-09 13:23:27 -07:00
Makefile.split merge refresh 10 2020-06-20 02:49:59 +03:00
README.md Update README.md 2020-06-24 07:58:49 -04: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 merge refresh 10 2020-06-20 02:49:59 +03:00
c2obj.py correct line endings 2020-05-16 07:36:28 +03:00
cgdb.exe.stackdump Started adding networking 2020-08-01 20:22:24 -07: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
compile.sh Added Luigi to courtyard and BoB, fixed some crashing issues 2020-08-03 17:59:44 -07:00
debug.sh Added Luigi to courtyard and BoB, fixed some crashing issues 2020-08-03 17:59:44 -07:00
diff.py Refresh 10.1 2020-06-20 02:53:56 +03:00
diff_settings.py Refresh 8 2020-04-03 14:57:26 -04:00
extract_assets.py Refresh 10.1 2020-06-20 02:53:56 +03:00
first-diff.py merge refresh 10 2020-06-20 02:49:59 +03:00
format.sh init2 2019-08-25 00:46:40 -04:00
gdb.exe.stackdump Synchronized purple switch 2020-08-07 19:37:19 -07:00
network.sh Added CLI options to specify ip/port 2020-08-13 19:38:15 -07: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 Refresh 7 2020-03-01 22:42:52 -05: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 merge refresh 10 2020-06-20 02:49:59 +03: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 Refresh 8 2020-04-03 14:57:26 -04:00

README.md

sm64ex

Fork of sm64-port/sm64-port with additional features.

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.

Please contribute first to the nightly branch. New functionality will be merged to master once they're considered to be well-tested.

Read this in other languages: Español, Português or 简体中文.

New features

  • Options menu with various settings, including button remapping.
  • Optional external data loading (so far only textures and assembled soundbanks), providing support for custom texture packs.
  • Optional analog camera and mouse look (using Puppycam).
  • Optional OpenGL1.3-based renderer for older machines, as well as the original GL2.1, D3D11 and D3D12 renderers from Emill's n64-fast3d-engine.
  • Option to disable drawing distances.
  • Optional model and texture fixes (e.g. the smoke texture).
  • Skip introductory Peach & Lakitu cutscenes with the --skip-intro CLI option
  • Cheats menu in Options (activate with --cheats or by pressing L thrice in the pause menu).
  • Support for both little-endian and big-endian save files (meaning you can use save files from both sm64-port and most emulators), as well as an optional text-based save format.

Recent changes in Nightly have moved the save and configuration file path to %HOMEPATH%\AppData\Roaming\sm64ex on Windows and $HOME/.local/share/sm64ex on Linux. This behaviour can be changed with the --savepath CLI option. For example --savepath . will read saves from the current directory (which not always matches the exe directory, but most of the time it does); --savepath '!' will read saves from the executable directory.

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.