A fork of sm64-port that focuses on QoL improvements and customizability.
Find a file
2021-03-23 13:45:53 +03:00
actors Refresh 10.1 2020-06-17 22:14:59 -04:00
asm Refresh 12 2020-09-20 11:15:47 -04:00
assets Refresh 3 2019-11-03 14:36:27 -05:00
bin Refresh 10 2020-06-02 12:44:34 -04:00
data Refresh 10 2020-06-02 12:44:34 -04:00
doxygen init2 2019-08-25 00:46:40 -04:00
enhancements Small fixes, adding the blue coin setting 2021-03-19 22:12:53 +03:00
include A ton of new features and some fixes 2021-03-23 00:20:13 +03:00
levels A ton of new features and some fixes 2021-03-23 00:20:13 +03:00
lib Refresh 12 2020-09-20 11:15:47 -04:00
rsp Refresh 10 2020-06-02 12:44:34 -04:00
sound Refresh 10 2020-06-02 12:44:34 -04:00
src A ton of new features and some fixes 2021-03-23 00:20:13 +03:00
text Attempting to update to the latest version of the port 2021-03-18 19:37:19 +03:00
tools Merge branch 'master' of https://github.com/MorsGames/sm64-port 2021-03-18 19:41:27 +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 Port initial commit 2020-06-18 11:58:18 +02:00
assets.json Refresh 10.1 2020-06-17 22:14:59 -04:00
CHANGES Refresh 12 2020-09-20 11:15:47 -04: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
diff.py Refresh 12 2020-09-20 11:15:47 -04:00
diff_settings.py Refresh 8 2020-04-03 14:57:26 -04:00
Dockerfile Update Dockerfile for default build (#12) 2021-02-03 01:50:41 -08:00
Doxyfile refresh 4 2019-12-01 21:52:53 -05:00
extract_assets.py Add support for BSD 2020-07-17 20:05:33 +02:00
first-diff.py Refresh 10 2020-06-02 12:44:34 -04:00
format.sh init2 2019-08-25 00:46:40 -04:00
Jenkinsfile refresh 6 2020-02-03 00:51:26 -05:00
Makefile Increasing certain limits on PC 2021-03-19 14:03:47 +03:00
Makefile.split Refresh 10 2020-06-02 12:44:34 -04:00
README.md Update README.md 2021-03-23 13:45:53 +03: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 Refresh 12 2020-09-20 11:15:47 -04: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

Super Mario 64 Port Thingy

Super Mario 64 Port Thingy is a fork of sm64-port that aims to add features that will fix the issues in the base game and enhance the gameplay, while keeping the vanilla feel of the game.

These features include (but not limited to):

  • 60FPS support via interpolation.
  • More responsive controls.
  • Improved camera.
  • Additional moves for Mario.
  • Graphical improvements.
  • Game design tweaks.
  • Optional extra modes.
  • Bug fixes.

To learn about all the options, visit the Wiki.

This repo does not include all the assets necessary for compiling the game. A prior copy of the game is required to extract the assets. Binaries of the game will not be distributed for this very reason.

That being said, there is an official launcher that will help you build the game and configure its settings easily. You can download it from the releases section. It is for Windows only.

You can also build the game manually if you prefer to, or if you're not on a Windows platform. To do that, follow the instructions in the Wiki.

Building native executables

Windows

  1. Install and update MSYS2, following the directions listed on https://www.msys2.org/.
  2. Launch MSYS2 MinGW and install required packages depending on your machine (do NOT launch "MSYS2 MSYS"):
  • 64-bit: Launch "MSYS2 MinGW 64-bit" and install: pacman -S git make python3 mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2 mingw-w64-x86_64-glew
  • 32-bit (will also work on 64-bit machines): Launch "MSYS2 MinGW 32-bit" and install: pacman -S git make python3 mingw-w64-i686-gcc mingw-w64-i686-SDL2 mingw-w64-i686-glew
  • Do NOT install gcc.
  1. Clone the repo with git clone https://github.com/MorsGames/sm64-port.git, then enter it with cd sm64-port.
  2. Place a Super Mario 64 ROM called baserom.us.z64 into the project folder for asset extraction.
  3. Run make to build. You can add -j4 to improve build speed (hardware dependent based on the amount of CPU cores available).
  4. The executable binary will be located at build/us_pc/sm64.us.f3dex2e.exe.

Linux

  1. Install prerequisites (Ubuntu) with sudo apt install -y git build-essential pkg-config libusb-1.0-0-dev libsdl2-dev.
  2. Clone the repo with git clone https://github.com/MorsGames/sm64-port.git.
  3. Place a Super Mario 64 ROM called baserom.us.z64 into the project folder for asset extraction.
  4. Run make to build. You can add -j4 to improve build speed (hardware dependent based on the amount of CPU cores available).
  5. The executable binary will be located at build/us_pc/sm64.<VERSION>.f3dex2e.

Additional options

  • You can apply the 60FPS patch by using tools/apply_patch.sh "enhancements/60fps.patch". If you get an error, try using pacman -S patch first.
  • You can target OpenGL by using make ENABLE_OPENGL=1. CURRENTLY NONFUNCTIONAL! Help is needed to fix this!

Credits.

  • Mors: Most things.
  • sm64-port Team: The port that was used as a base for this project.
  • SM64 Decompilation Team: The original decompilation used for this project.
  • Emil: The original 60FPS patch.
  • Kaze Emanuar: Providing certain bug fixes.

Parts of sm64ex were also used as reference for this project.

Please let me know if I'm forgetting to credit you.