Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
If you can give me some build instructions I can try to compile the source for 32bit Intel machines - I have macports and all neccessary dependecies - (including gcc4.8 - 6.0) already installed.

Does the game require SDL2 version 2.0.6 or does it also work with 2.0.3?
I'm glad to walk you through it.

2.0.4 is the minimum requirement for SDL2 due to some audio APIs introduced in 2.0.4. SDL 2 is required to compile the master branch. The nightly branch can use SDL 1.2 alternatively, although vsync seems to not work in nightly. SDL 2.0.0-2.0.3 still can't be used in nightly by the way.

I have a modified fork of SDL 2.0.6 for Tiger that is tested to work with SM64ex. However if you can compile the normal SDL2 2.0.4 or even newer for whatever OS your targeting I'd do that.

To compile the Tiger SDL 2.0.6:

./configure --disable-joystick --disable-haptic --without-x
sudo make install

This should cover all the dependencies if you want to double check:

mingw-w64 gmake python39 glew gcc49

Make sure you build SDL2 with an Apple compiler. SM64ex must be built with MacPorts GCC 4.9 as it requires C11/C++11. Set the macports compiler with the command 'sudo port select --set gcc mp-gcc49'. The apple compiler could be set with 'sudo port select --set gcc gcc40' or 'sudo port select --set gcc gcc42' if either compiler is available to you.

Then, download my sm64ex fork (I recommend the master branch). Copy your sm64 rom into the fork's directory (I've tested the Japan and the USA ROM). Name it either 'baserom.us.z64' for USA or 'baserom.jp.z64' for Japan. Cd into the fork's directory, and then execute 'gmake PPC_OSX_BUILD=1'.

Let me know if it works so I can change 'PPC_OSX_BUILD' to 'LEGACY_OSX_BUILD' or something...

This uses the OpenGL 1.3 renderer, if you have an OpenGL2.1 capable card let me know because I don't and I could enable the use of the OpenGL2 renderer so you can test it.
 
Last edited:
Thanks for the guide - do I have to use gcc49 and python39 or does gcc48 and python37 work as well cause those are the ones I have installed atm.
 
  • Like
Reactions: alex_free
Thanks for the guide - do I have to use gcc49 and python39 or does gcc48 and python37 work as well cause those are the ones I have installed atm.
Any Python that is at least 3.5 works. As for GCC48, it *should* be okay but I’ve only done this with GCC49.

As always, let me know if you have additional questions.
 
Any way you guys could compile it for jaguar
707549BD-25A9-468B-921B-CC7E568043BC.jpeg

I am however currently setting everything up to compile this on Tiger for Tiger. Not sure if it will all work yet.
 
Any guides to compile it??? On jaguar???
I’ve only compiled it on Leopard. There’s a good chance Tiger will work out, I have to use some glew patches from Tiger ports and I’m not sure if all other dependencies will actually compile on Tiger however.
Jaguar probably will not work, almost everything required can’t build as is. But you can use the above guide I wrote as a reference if you really wanna try.
 
Is there a way to get the inluced SDL2 Xcode project working to build a Framework version of SDL2.0.6.
 
Last edited:
Is there a way to get the inluced SDL2 Xcode project working to build a Framework version of SDL2.0.6.
No, the Xcode project is unmodified and does not work as is for Tiger. Also sm64ex just picks up the libraries not a framework.
 
I'm encountering a weird issue on my setup where C++11 ports keep failing to link after compilation.
this applies to mingw-w64 as well.

"ld: illegal text-relocation to ___stderrp in /usr/lib/libSystem.dylib"

If I pass the LDFLAGS -read_only_relocs suppress it links but the resulting binaries are unusable and always crash with a bus error. Any idea what could cause this - I don't recall this being an issue when I was compiling stuff a few months ago...
 
I'm encountering a weird issue on my setup where C++11 ports keep failing to link after compilation.
this applies to mingw-w64 as well.

"ld: illegal text-relocation to ___stderrp in /usr/lib/libSystem.dylib"

If I pass the LDFLAGS -read_only_relocs suppress it links but the resulting binaries are unusable and always crash with a bus error. Any idea what could cause this - I don't recall this being an issue when I was compiling stuff a few months ago...
I've never seen that, if that happened to me I'd uninstall MacPorts as something went bad somewhere.
 
I just wanted to say thanks again to alex_free! The port works great on my PowerBook G4 DLSD. Initially I wanted to try it on my TiBook but I somehow overlooked that SM64PPC requires Leopard (which I don't have on my TiBook). I've only played 15 minutes so far. Everything works great and performance is great 👍 BTW: Are there other old-school Nintendo games out there that can be compiled for Mac? Also I'm wondering is this based on a reverse-engineered code or a leak?
 

Attachments

  • IMG_0210_1.JPG
    IMG_0210_1.JPG
    442.5 KB · Views: 248
I just wanted to say thanks again to alex_free! The port works great on my PowerBook G4 DLSD. Initially I wanted to try it on my TiBook but I somehow overlooked that SM64PPC requires Leopard (which I don't have on my TiBook). I've only played 15 minutes so far. Everything works great and performance is great 👍 BTW: Are there other old-school Nintendo games out there that can be compiled for Mac? Also I'm wondering is this based on a reverse-engineered code or a leak?
Your welcome, Tiger is possible and I’ve even beaten the game on Tiger, but a release isn’t out yet due to some small issues I’d like to correct or look at more.

This is a first of its kind port, very exciting times. The ROM itself was decompiled into MIPS assembly and then matching C code was written.

After that, it was taken a step further by adding modern OS support on top. So reverse engineering + custom programming to make it work on computers. You can compile the original decomp for the N64, and generate an exact byte by byte ROM.

Their are actually quite a few decomp projects that have gotten to the “write matching c code” phase, but nothing yet besides SM64 has a port out. There’s a 007 Goldeneye N64 decomp, Perfect Dark N64 decomp, and many others I’m watching the development of.
 
Last edited:
BTW: Are there other old-school Nintendo games out there that can be compiled for Mac? Also I'm wondering is this based on a reverse-engineered code or a leak?

One could try to compile a PPC Leopard version of Mupen64Plus 2.0 and use it as a wrapper to play N64 games.
I've already done this for an Intel version - you can just drop the ROM into the app and use it like a regular Mac app.

Here's an N64 Wrapper for SuperMario 64 for Intel Macs running Leopard or later (No ROM included ofc): http://www.mediafire.com/file/1o50g24cewgefd4/Super_Mario_64_Wrapper.7z/file

Just rename the SuperMario 64 ROM to Super_Mario_64.z64 and place it into the /Contents/MacOS folder of the Wrapper and you're good to go.

I've created wrappers for around 150 N64 games using this method and most of them work great - the included Glide64mk2 plugin that comes with Mupen64Plus 2.0 has excellent compatibility and performance even on mid-range hardware.
 
A Tiger/G3/G4/G5 compatible release of the SM64EX nightly branch is now only a search away on archive.org! Controllers should also work since this uses SDL1.2.15. If you have a G3 and an OpenGL1.3 GPU especially, let me know what performance is like.
 
@alex_free : Have any interest in this prince of persia port? Already works on 10.9. Maybe you can work your magic on it. https://github.com/NagyD/SDLPop
So the official project is broken on Mac OS X 10.4, but I managed to find THIS which is basically everything that needed to be fixed fixed! The author of the previously mentioned forked has done it for Tiger, but now that 10.3.9 is a possibility with Panther_SDL2 I'm gonna attempt that so I still have something to do regarding this.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.