Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

mac57mac57

macrumors 6502a
Original poster
Aug 2, 2024
840
521
Myrtle Beach, SC
I re-checked the Sorbet App Store yesterday, just browsing for anything that I might have missed up to now, and in the Games section I found a version of Super Mario 64! I had not noticed that before, or it has been added since I last checked the Sorbet App Store. Oddly (perhaps) the thing I found was not the game itself, but rather an app that builds the game for your environment... build from source essentially, but with a little bit of guided GUI help.

I downloaded it, located the obligatory ROM file out on the web, and then set it to work building Super Mario 64 PPC on my Power Mac G5 (Air) Quad under 10.5.9 Sorbet Leopard. It cranked away for 5 minutes or so and then died, complaining that it could not find a particular include file, in this case, Availability.h. This particular file was a local environment file, not a part of the game itself... including it is part of customizing the game to the environment the game is being built for.

Hunting around, I could not find any files on my Mac named "Availability.h", but I could find many versions of files called "available.h". Acting purely on hunch/guesswork, I made a fresh copy of available.h and renamed it to Availability.h. I then copied that file into /usr/include and restarted the build.

This time, it passed perfectly, resulting in an SM64EX.app file on my desktop! I tried it, and it seems to work perfectly. I haven't really played the game yet; I just checked to ensure that it runs, so your mileage may vary! However, it LOOKS fully functional, the graphics are sharp and clear and the sound is excellent as well - just like the real thing on a Nintendo 64. Here are two screen shots I took:

Super Mario Screen Shot 01.jpg

Super Mario 64 Opening Screen
(can't you just hear it? "Hi, it's me, Mario!") :cool:


Super Mario Screen Shot 02.jpg

Super Mario Opening Scene of Mario Battling Bowser

To make life easier for everyone else, since I have already done the build, I placed the completed SM64EX.app file, and the ROM file that I found on the web, out onto my retro-computing.com "Featured Software" archive. You can get to it by going to www.retro-computing.com, clicking on the "Featured Software" icon (near the bottom of the screen) and then clicking on the SM64EX.zip (the app, zipped) and then the SM64.ROM files, downloading both to your machine. I am not sure if you need the ROM file or not - the provided ROM file may have been built into the SM64EX app. No matter however, you have what you need. Move both into your Applications folder and you are ready to play!

Again, this is Super Mario 64, but only for PowerPC G5, 10.5.8 Leopard. Each build of SM64EX is specific to the environment it was built in, so this app may only run successfully on 10.5.8 Leopard and 10.5.9 Sorbet Leopard. ALL of my testing has been on a late 2005 G5 Quad running 10.5.9 Sorbet Leopard. SM64EX.app may run elsewhere, but I have not tested it anywhere else.

Enjoy!
 
Hunting around, I could not find any files on my Mac named "Availability.h", but I could find many versions of files called "available.h". Acting purely on hunch/guesswork, I made a fresh copy of available.h and renamed it to Availability.h. I then copied that file into /usr/include and restarted the build.
 
It should be in the Xcode SDKs or in the /usr/include of the system

These are on my Intel Mac but I don't think 10.5 should be different for PPC?
Code:
SDKs/MacOSX10.5.sdk/usr/include/Availability.h
SDKs/MacOSX10.6.sdk/usr/include/Availability.h
SDKs/MacOSX10.7.sdk/usr/include/Availability.h
SDKs/MacOSX10.8.sdk/usr/include/Availability.h
SDKs/MacOSX10.9.sdk/usr/include/Availability.h
SDKs/MacOSX10.10.sdk/usr/include/Availability.h
SDKs/MacOSX10.11.sdk/usr/include/Availability.h
SDKs/MacOSX10.12.sdk/usr/include/Availability.h
SDKs/MacOSX10.13.sdk/usr/include/Availability.h
SDKs/MacOSX10.14.sdk/usr/include/Availability.h
SDKs/MacOSX10.15.sdk/usr/include/Availability.h
SDKs/MacOSX11.0.sdk/usr/include/Availability.h
SDKs/MacOSX11.1.sdk/usr/include/Availability.h
SDKs/MacOSX11.3.sdk/usr/include/Availability.h
SDKs/MacOSX12.1.sdk/usr/include/Availability.h
SDKs/MacOSX12.3.sdk/usr/include/Availability.h
SDKs/MacOSX13.0.sdk/usr/include/Availability.h
SDKs/MacOSX13.1.sdk/usr/include/Availability.h

ls /Volumes/*/usr/include/Availability.h
/Volumes/ElCapitan/usr/include/Availability.h
/Volumes/Leopard/usr/include/Availability.h
/Volumes/Lion/usr/include/Availability.h
/Volumes/Mavericks/usr/include/Availability.h
/Volumes/MountainLion/usr/include/Availability.h
/Volumes/Sierra/usr/include/Availability.h
/Volumes/SnowLeopard/usr/include/Availability.h
/Volumes/Yosemite/usr/include/Availability.h

It doesn't appear to be available in a 10.4 SDK.
 
I would suggest making Availability.h a tiny header that just has

/* Handle missing Availability.h */
#include "available.h"

Tiger doesn’t have `Availability.h`. It should not be used anyway, it is supposed to be a private header. Use `AvailabilityMacros.h` instead (and rename macros in the source so that they do not have __ prefices: MAC_OS_X_VERSION_MAX_ALLOWED, not __MAC_OS_X_VERSION_MAX_ALLOWED, etc.).
Alternatively, legacy-support can be used: https://github.com/macports/macports-legacy-support/blob/master/include/Availability.h (it has no dependencies and can be compiled without MacPorts).

10.5 has both headers, regardless of the arch. (If it is missing in “Sorbet” mod, then the installation is broken.)

Please do not use some random headers, installing them into system prefix.
 
Folks, I sure hope that the whole point of this post hasn't gotten lost... the post wasn't asking for build help, although I am certainly grateful for the alternatives that have been provided. The point of the post was to make everyone aware of a "new" binary available for (Sorbet) Leopard users, namely Super Mario 64.

Personally, I have a warm attachment to Super Mario 64, my kids and I having played it for a long time, eventually defeating Bowser and "winning" the game. When I got it running again on my G5, I wanted to make it available to anyone else who might have a similar attachment to Super Mario 64.

So, to all of you who provided build alternatives, a sincere thank you... I am sure I will build it again at some point, and I have taken note of your advice. To the rest of you, if you too enjoy Super Mario 64, you can now run it on your (Sorbet) Leopard G5. Enjoy!
 
  • Like
Reactions: DisraeliGears
Thanks @Doq, I worried about the same thing, but that ROM file can be had in so many places on the web that it cannot be an aggressively protected bit of firmware anymore, if it is even protected at all. Nintendo 64 was big around the year 2000; I suspect that everything related to it is "abandonware" these days.

You CAN still play N64 games on the modern Nintendo Switch, but that is a whole other experience.
 
Well, apparently I am not the first to deal with Super Mario 64 on PPC Leopard here at MacRumors. I searched before I started this thread and didn't find anything, but I completely missed this thread:


...which is all about Super Mario 64 on PPC Leopard. The above thread went inactive in early 2022, but I am still not sure how I missed it when searching.

Anyway, the above thread provides a lot more background on how Super Mario 64 came to be on PPC Leopard to start with, and provides some minimal clues on how to play the game on a computer vs. on the dedicated N64 platform and controller (which controller buttons are linked to which keyboard keys and so on). Apparently there is no consolidated user guide anywhere for Super Mario 64 on PPC Leopard, so this may be the best you can get.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.