10 November 2024

Super Mario 64 Hacks on Apple Silicon (Native)

Update 18.11.2024: Amendments to CoopDX, which really rules. First preview of the SM_OSX launcher that already now shines.

Please allow me this major digression from Arcade gaming: I still adore Super Mario 64, and from time to time and fire up my Nintendo64 only for this game. I also like the game as ported to the Nintendo Switch, but the experience is basic.

Now, there have been exiting Super Mario 64 Mods and Hacks out for a while that deliver the goods. If you are capable of the Command Line and Homebrew, they are also available for under MacOS, in particular Silicon Macs. And with a MacOS-native launcher currently in revamp, things could get easier as well.

Here are the instructions for three solutions that worked for me. It's quite easily to loose focus with all the different repositories, so let's look into three solutions that work reliably.

1. smex: The oldest repo and manual install, but perfect for textures and rumble.

2. Render96ex: Not as impressive as under Windows with raytracing, but still powerful.

3. SM64CoopDX: Bleeding edge, a lot of mods and romhacks out there, though designed for cooperatives, you can also play it solo. Endless gaming.

This runs natively in MacOS Sequoia 15.1 at 60 fps

Teaser: With all three solutions discussed here, you get incredible Super Mario 64 gaming experience that hugely outperforms the original game. Out of the box comes 60fps and widescreen. It is not an emulation, but a re-compiled MacOS app. With this alone, you should be interested.

MacOS-specific hint: MacOS display scaling is your enemy for all these apps! In my own case, I have to set my 4K-monitor to native resolution without scaling, while normally I use MacOS with the largest scaling. But especially with custom textures, this scaling causes a lot of jittery effects in all three solutions. So prior to using any of the following solutions, be sure to switch MacOS-scaling off. It‘s only one click, leave the window open to revert after gaming - no big hassle.

By the way: That can also be very true under Windows11 in my own experience, only that I could not find such an easy solution there as with MacOS.

Turning off scaling is a must for hi-res textures.

Requirement for all solutions: Super Mario 64 (USA).z64 rom 


Solution 1: sm64ex

p3st texture pack ... so beautiful

Solution 2: Render96ex_MacOS

See the beautifully redrawn Mario and trees

Solution 3: SM64 Coop Deluxe

Here everything gets really crazy ... 

A lot to tweak here, georgeous gfx, but only if you install the dynos into the app bundle


The night mode is incredible fun as well

  • Pre-compiled app: https://github.com/coop-deluxe/sm64coopdx/releases/tag/v1.0.3 (yes, nothing to compile here!) - drag and drop the rom into the window, and ready to go
  • Features: same as Render96ex, but again substantially expanded with a focus on coop; for the real experience, you must install the Dynos (see above sceenshot) into the MacOS app bundle
  • Render96 Dynos Packs: https://www.youtube.com/watch?v=ZKj2YS_Q3HQ - sorry, I only found this Google Drive link with 1.1 GB download, but this is what you get if you install the Render96 packs into the app bundle, works (will try to follow up on that in more detail) - this is a must for the real beauty of this app.
  • Tons of Romhacks being available here: https://mods.sm64coopdx.com/mods/ - and just to name a few that work nicely: sm64land, sm74 and star-road; don't forget to use different save channels for each romhack!
  • Review: Still so much to evaluate, but a huge thing for sure. Graphics are top notch, and in hosting mode, you can also play alone for your own. The night mode is just incredible, and so are the tweaking possibilities on your character. 

Within your app bundle, you need the Render96 packs installed.

sm64ex Compilation Instructions for Apple Silicon

Written instructions for this one seem to be missing (it is very similar to Render96ex, so if you manage this, you will have no issues with Render96ex):

Instructions taken from this video: https://www.youtube.com/watch?v=Z9ATIdJ0N5U (and completed with missing Homebrew packages)

1. Homebrew: Assuming that you have a working Homebrew environment - these are the officially required packages:

gcc make sdl2 audiofile pkg-config glew glfwgcc sdl2 audiofile pkg-config glew glfw mingw-w64

Note: audiofile no longer installs with me in Homebrew these days, but compilation still worked for me.

2. In the Terminal, clone the repo: git clone https://github.com/sm64pc/sm64ex

3. Put the original rom into the cloned repo and rename it to baserom.us.z64

4. Apply the 60 fps patch manually: I forgot this crucial step in my initial version of these instructions, very sorry. For this, please change directory into the cloned repo:

from within the repo directory: ./extract_assets.py us

from the same place then: ./tools/apply_patch.sh ./enhancements/60fps_ex.patch

Important: You must execute the patching from the root directory of sm64ex, otherwise it does not reckognize the files to be patched - that took me a long time to understand. You should see in the terminal that the patch has been applied to include/types.h and several files in the src folder.

5. In the Terminal, then build the game:

gmake OSX_BUILD=1 BETTERCAMERA=1 NODRAWINGINSTANCE=1 TEXTURE_FIX=1 EXT_OPTIONS_MENU=1 EXTERNAL_DATA=1 -j10


6. You get the compile in the build/us_pc directory - sm64.us.f3dex2e - move the entire build/us_pc directory to a place of your liking.


7. Start the app from the Terminal from within this directory: ./sm64.us.f3dex2e - sorry, no double-click for the time being (you could help yourself with an .sh script for sure)


8. Install one texture pack: /res/gfx/


only one at a time is possible

8. Enjoy!



Comparison to Windows 11


Collector for a comparison to Windows and identified limitations


1. Overall performance: Once you get it compiled, the SM64 apps work beautifully on my M2 Pro. No performance difference so far to a quite beefy Windows 11 gaming PC. Textures also work perfectly, and so does my PS4 joypad. Nothing to complain so far.


2. Render64 has no raytracing: On Windows, it's rather breathtaking to experience Render64 with raytracing gfx. While the MacOS solutions shines enough for me, this disclaimer is needed.


3. Rumble does not always work, but that also seems true for me in Windows 11.


4. Smaller graphical glitches that can be seen in some levels: But they also exist in Windows, so that's no disadvantage of MacOS.


5. Launcher to be revamped for MacOS: This launcher here would make a huge difference for maintaining the SM64 repos under MacOS. Be prepared for a relaunch!


https://github.com/EmeraldLoc/sm_osx


Already compiles sm64coopdx, otherwise you need to add your own repos. With this limitation it is already now a very nice MacOS launcher of SM64 mods!




No comments:

Post a Comment

Any comments are welcome!