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

alex_free

macrumors 65816
Original poster
Feb 24, 2020
1,106
2,366
sm64excreator-6.png

This software can create a native Super Mario 64 Port for Mac OS X 10.4 Intel Tiger on your Mac's desktop with an all in one easy to use GUI.


It compiles my fork of SM64EX. Currently this requires:


  • Xcode version 2.5.
  • A valid USA or Japanese Super Mario 64 .z64 ROM file (for extracting game assets).
  • An Intel Mac on Mac OS X 10.4.11 (More OS X/PowerPC specific versions are coming!)

There IS controller support available, see the usage section for more info.

This is based off my earlier SM64EX Leopard Compiler, but actually works correctly and is everything I envisioned for a proper SM64 native experience on early Mac OS X.
 
Last edited:
Thank you so much for this, especially for your more recent port of SDL2 to pre-Objective-C 2.0! I had patched all of the SM64 build scripts and tools to work on big-endian, but never got past the SDL2 dependency. I had started trying to fix this in 2020, but had never gotten around to finishing it!

I feel it's high time we take these patches applied to src/video/cocoa and friends and try to upstream this with new some macros or with a new src/video/oldcocoa frontend.

Feel free to drop me a line in PMs, Discord (tuxlovesyou#0001), or Twitter (@tuxlovesyou) if you ever want to chat. I'm very curious what your MacPorts tree looks like! It's been awhile since I've upgraded my MacPorts on my old Macs...
 
  • Love
Reactions: alex_free
Thank you so much for this, especially for your more recent port of SDL2 to pre-Objective-C 2.0! I had patched all of the SM64 build scripts and tools to work on big-endian, but never got past the SDL2 dependency. I had started trying to fix this in 2020, but had never gotten around to finishing it!

I feel it's high time we take these patches applied to src/video/cocoa and friends and try to upstream this with new some macros or with a new src/video/oldcocoa frontend.

Feel free to drop me a line in PMs, Discord (tuxlovesyou#0001), or Twitter (@tuxlovesyou) if you ever want to chat.

I'd definitely would like to do that. I want to go through the patches again and see how well we can get everything working for say Panther, Tiger, Leopard, and Snow Leopard all in one source tree first.

I'm very curious what your MacPorts tree looks like! It's been awhile since I've upgraded my MacPorts on my old Macs...
I put this on the web page as well, here is the list of installed ports:

Code:
apple-gcc42                    @5666.3         lang/apple-gcc42
apple-gcc42                    @5666.3         lang/apple-gcc42
autoconf                       @2.71           devel/autoconf
automake                       @1.16.5         devel/automake
bzip2                          @1.0.8          archivers/bzip2
cctools                        @949.0.1        devel/cctools
coreutils                      @8.32           sysutils/coreutils
curl                           @7.82.0         net/curl
curl-ca-bundle                 @7.82.0         net/curl
db48                           @4.8.30         databases/db48
expat                          @2.4.7          textproc/expat
gcc6                           @6.5.0          lang/gcc6
gcc_select                     @0.1            sysutils/gcc_select
gdbm                           @1.23           databases/gdbm
gettext                        @0.21           devel/gettext
gettext-runtime                @0.21           devel/gettext
gettext-tools-libs             @0.21           devel/gettext
git                            @2.35.1         devel/git
glew                           @2.2.0          graphics/glew
gmake                          @4.3            devel/gmake
gmp                            @6.2.1          devel/gmp
gperf                          @3.1            devel/gperf
help2man                       @1.49.1         textproc/help2man
i686-w64-mingw32-binutils      @2.37           cross/i686-w64-mingw32-binutils
isl                            @0.24           devel/isl
kerberos5                      @1.19.2         net/kerberos5
ld64                           @3              devel/ld64
ld64-97                        @97.17          devel/ld64
legacy-support                 @1.0.4          devel/legacy-support
libcomerr                      @1.45.6         sysutils/e2fsprogs
libedit                        @20210910-3.1   devel/libedit
libffi                         @3.4.2          devel/libffi
libgcc6                        @6.5.0          lang/gcc6
libgcc7                        @7.5.0          lang/gcc7
libiconv                       @1.16           textproc/libiconv
libidn                         @1.38           mail/libidn
libidn2                        @2.3.2          mail/libidn2
libmacho-headers               @949.0.1        devel/libmacho
libmpc                         @1.2.1          devel/libmpc
libpsl                         @0.21.1-20210726 net/libpsl
libtextstyle                   @0.21           devel/gettext
libtool                        @2.4.6          devel/libtool
libunistring                   @1.0            textproc/libunistring
libunwind-headers              @5.0.1          devel/libunwind
lmdb                           @0.9.29         databases/lmdb
lz4                            @1.9.3          archivers/lz4
lzip                           @1.23           archivers/lzip
m4                             @1.4.19         devel/m4
mpfr                           @4.1.0          devel/mpfr
mpstats                        @0.2.0          sysutils/mpstats
ncurses                        @6.3            devel/ncurses
openssl                        @3              devel/openssl
openssl3                       @3.0.1          devel/openssl3
p5.28-authen-sasl              @2.160.0        perl/p5-authen-sasl
p5.28-b-cow                    @0.4.0          perl/p5-b-cow
p5.28-capture-tiny             @0.480.0        perl/p5-capture-tiny
p5.28-cgi                      @4.540.0        perl/p5-cgi
p5.28-clone                    @0.450.0        perl/p5-clone
p5.28-cpan-meta                @2.150.10       perl/p5-cpan-meta
p5.28-cpan-meta-requirements   @2.140.0        perl/p5-cpan-meta-requirements
p5.28-cpan-meta-yaml           @0.18.0         perl/p5-cpan-meta-yaml
p5.28-devel-checkbin           @0.40.0         perl/p5-devel-checkbin
p5.28-digest-hmac              @1.40.0         perl/p5-digest-hmac
p5.28-digest-sha1              @2.130.0        perl/p5-digest-sha1
p5.28-encode                   @3.160.0        perl/p5-encode
p5.28-encode-locale            @1.50.0         perl/p5-encode-locale
p5.28-error                    @0.170.290      perl/p5-error
p5.28-extutils-makemaker       @7.640.0        perl/p5-extutils-makemaker
p5.28-extutils-manifest        @1.730.0        perl/p5-extutils-manifest
p5.28-gssapi                   @0.280.0        perl/p5-gssapi
p5.28-html-parser              @3.760.0        perl/p5-html-parser
p5.28-html-tagset              @3.200.0        perl/p5-html-tagset
p5.28-http-date                @6.50.0         perl/p5-http-date
p5.28-http-message             @6.360.0        perl/p5-http-message
p5.28-inc-latest               @0.500.0        perl/p5-inc-latest
p5.28-io-html                  @1.4.0          perl/p5-io-html
p5.28-io-socket-ip             @0.410.0        perl/p5-io-socket-ip
p5.28-io-socket-ssl            @2.74.0         perl/p5-io-socket-ssl
p5.28-lwp-mediatypes           @6.40.0         perl/p5-lwp-mediatypes
p5.28-module-build             @0.423.100      perl/p5-module-build
p5.28-module-metadata          @1.0.37         perl/p5-module-metadata
p5.28-mozilla-ca               @20211001       perl/p5-mozilla-ca
p5.28-net-libidn               @0.120.0        perl/p5-net-libidn
p5.28-net-smtp-ssl             @1.40.0         perl/p5-net-smtp-ssl
p5.28-net-ssleay               @1.920.0        perl/p5-net-ssleay
p5.28-perl-ostype              @1.10.0         perl/p5-perl-ostype
p5.28-pod-escapes              @1.70.0         perl/p5-pod-escapes
p5.28-pod-simple               @3.430.0        perl/p5-pod-simple
p5.28-podlators                @4.140.0        perl/p5-podlators
p5.28-scalar-list-utils        @1.610.0        perl/p5-scalar-list-utils
p5.28-socket                   @2.32.0         perl/p5-socket
p5.28-sub-name                 @0.260.0        perl/p5-sub-name
p5.28-sub-uplevel              @0.280.0        perl/p5-sub-uplevel
p5.28-term-readkey             @2.380.0        perl/p5-term-readkey
p5.28-test-deep                @1.130.0        perl/p5-test-deep
p5.28-test-exception           @0.430.0        perl/p5-test-exception
p5.28-test-fatal               @0.16.0         perl/p5-test-fatal
p5.28-test-needs               @0.2.9          perl/p5-test-needs
p5.28-test-nowarnings          @1.60.0         perl/p5-test-nowarnings
p5.28-test-warn                @0.360.0        perl/p5-test-warn
p5.28-time-local               @1.300.0        perl/p5-time-local
p5.28-timedate                 @2.330.0        perl/p5-timedate
p5.28-try-tiny                 @0.310.0        perl/p5-try-tiny
p5.28-uri                      @5.100.0        perl/p5-uri
p5.28-version                  @0.992.900      perl/p5-version
p5.34-locale-gettext           @1.70.0         perl/p5-locale-gettext
pcre2                          @10.39          devel/pcre
perl5                          @5.28.3         lang/perl5
perl5.28                       @5.28.3         lang/perl5
perl5.30                       @5.30.3         lang/perl5
perl5.34                       @5.34.0         lang/perl5
pkgconfig                      @0.29.2         devel/pkgconfig
popt                           @1.18           devel/popt
python3_select                 @0.0            sysutils/python3_select
python39                       @3.9.10         lang/python39
python310                      @3.10.2         lang/python310
python_select                  @0.3            sysutils/python_select
readline                       @8.1.2.000      devel/readline
rsync                          @3.2.3          net/rsync
sqlite3                        @3.38.0         databases/sqlite3
texinfo                        @6.8            textproc/texinfo
xattr                          @0.1            sysutils/xattr
xxhashlib                      @0.8.1          devel/xxhash
xz                             @5.2.5          archivers/xz
zlib                           @1.2.11         archivers/zlib
zstd                           @1.5.2          archivers/zstd
 
I'd definitely would like to do that. I want to go through the patches again and see how well we can get everything working for say Panther, Tiger, Leopard, and Snow Leopard all in one source tree first.
Fair enough ;)

I put this on the web page as well, here is the list of installed ports:

Code:
...
Did you have to patch any Makefiles to get these ports working or were they all compiling as-is from the ports tree? Curious to see if I can bring my tree up-to-date like this! I'm also excited to see you got Python 3.10 working! (I'm on 3.7.)
 
Fair enough ;)


Did you have to patch any Makefiles to get these ports working or were they all compiling as-is from the ports tree? Curious to see if I can bring my tree up-to-date like this! I'm also excited to see you got Python 3.10 working! (I'm on 3.7.)
No, I just slightly modified my sm64ex fork. Everything still works great on Tiger due to the continued support of MacPorts contributors towards Tiger.
 
  • Love
Reactions: tuxlovesyou
No, I just slightly modified my sm64ex fork. Everything still works great on Tiger due to the continued support of MacPorts contributors towards Tiger.
I was mostly talking about your MacPorts installation. ;) Good to see that people are still fixing the packages in the tree!
 
Last edited:
  • Like
Reactions: alex_free
edited: I thought I had 8,1, turns out its a 5,1 PPC. Just got the number wrong.
Carry on...

Hello, thank you for all your work and knowledge.
I started with an apple 1 I mounted on plywood.
Ive used almost every available model of apple since.
I currently own a Apple Imac 5,1 G5 PowerPC with Leopard.
I want to install Snow Leopard.
I've mucked around trying to install anything I can since I
bought it for $20.
I've got Linux running dual boot with Leopard.
Still cut from the net for lack of a browser.
I've got all the roms I need and just grabbed your files and looking for old
retroarch files for powerpc.
My wife wants to turf it or give it away, she's tired of it "taking up space".
Please help me get emu going on it and save it from her wrath.. ;-)
Just had a thought, I wonder if theres Linux based Powerpc emus out there?
Well anyway, thank you for the all the info, and I hope I can contribute to the site.
Sorry for the non-intel based question now that Ive seen what forum Im in.
 
Last edited:
I currently own a Apple Imac 5,1 G5 PowerPC with Leopard. I want to install Snow Leopard.
The final Snow Leopard doesn’t run on PPC. You can check out this thread on getting early Snow Leopard betas (not the final version!) running on PPC.

But...

I thought I had 8,1, turns out its a 5,1 PPC.
An iMac5,1 is a Late 2006 Core 2 Duo model, not a PPC one. That iMac will run Lion out of the box. Mountain Lion or Mavericks needs patches. You can use About This Mac or System Profiler to see what iMac model you have.

In any case, you may want to post a new thread with your question in either the "Early Intel Macs" or "PowerPC Macs" subforum depending on what iMac you have, given that this thread is about something else. :)
 
Last edited:
  • Like
Reactions: MysticCow
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.