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

VariantXYZ

macrumors newbie
Original poster
Jan 24, 2025
4
1
Hey guys, I'm about 20 years late but I've finally been able to get my hands on an old iBook that I was hoping to use for some distraction-free low-end development (I happen to like Gameboy development, so what better way to develop for a system from the late 90s than with a system from the early 00s??).

I've been working on shenanigans to get modern cross-compilers working so I can off-load the toolchain building to beefy machines and only have the minimum things I need on my Tiger installation to build and test Gameboy titles. I've gotten something working with GCC 13.3, but alas my iBook seems to have died and now I'm trying to figure that out... I couldn't really find anything else on modern cross-compilation targeting Tiger (other than http://maniacsvault.net/articles/powerpccross which relies on the existing tools on OS X, which doesn't work on Linux...), so I'm hoping I didn't just spend all that effort for something that's been done to death already 😅

Anyway, I created a Dockerfile here if anyone might benefit from it: https://github.com/VariantXYZ/gcc-powerpc-apple-darwin8/blob/main/.github/workflows/Dockerfile, I also documented all the steps I took and random references I found here: http://vxyz.me/00003.html

I think it's pretty neat to be able to focus development on a single hardware/software configuration, so my only real goal is the G4 PowerPC target on OS X 10.4.11... but I suspect it should be relatively straightforward to port this up to 10.5 or 10.6 if needed.
 
  • Like
Reactions: Yumiko Noua
Hey guys, I'm about 20 years late but I've finally been able to get my hands on an old iBook that I was hoping to use for some distraction-free low-end development (I happen to like Gameboy development, so what better way to develop for a system from the late 90s than with a system from the early 00s??).

I've been working on shenanigans to get modern cross-compilers working so I can off-load the toolchain building to beefy machines and only have the minimum things I need on my Tiger installation to build and test Gameboy titles. I've gotten something working with GCC 13.3, but alas my iBook seems to have died and now I'm trying to figure that out... I couldn't really find anything else on modern cross-compilation targeting Tiger (other than http://maniacsvault.net/articles/powerpccross which relies on the existing tools on OS X, which doesn't work on Linux...), so I'm hoping I didn't just spend all that effort for something that's been done to death already 😅

Anyway, I created a Dockerfile here if anyone might benefit from it: https://github.com/VariantXYZ/gcc-powerpc-apple-darwin8/blob/main/.github/workflows/Dockerfile, I also documented all the steps I took and random references I found here: http://vxyz.me/00003.html

I think it's pretty neat to be able to focus development on a single hardware/software configuration, so my only real goal is the G4 PowerPC target on OS X 10.4.11... but I suspect it should be relatively straightforward to port this up to 10.5 or 10.6 if needed.

I have quickly looked at the script there, do you use an upstream version of LLVM to provide cctools, like assembler targeting Darwin ppc? This won’t work correctly, AFAIK, since LLVM does not have a functional implementation for it. (Sorry if I misunderstood something, it is 4 AM here LOL.)
 
> do you use an upstream version of LLVM to provide cctools, like assembler targeting Darwin ppc?

Not quite, the docker file has the exact repositories and revisions, but it's this fork of cctools-port where someone forward-ported darwin8 ppc changes: https://github.com/Wohlstand/cctools-port (as far as I can tell, it's the 'most modern' available set of cctools supporting ppc darwin8).

You can also reference the conversation in this issue in the original repository: https://github.com/tpoechtrager/cctools-port/issues/119

I use LLVM 7 for dsymutil, since it's the last upstream version that kept ppc darwin8 support.


As an aside, my iBook died so now I'm trying to setup qemu for OS X 10.4.11 PPC to actually test things... I got cpython 3.12 building yesterday using some of the MacPorts changes with GCC 14.2 + Mac OS SDK 10.5 (targeting 10.4): https://github.com/VariantXYZ/gbdev...blob/main/.github/workflows/build_python3.yml but haven't been able to test the actual binary yet... If qemu isn't sufficient, I'll probably need to wait until my replacement stuff comes in (I think the optical drive is shot so I can't even force it to boot off my recovery DVDs).
 
Amazing work!

I maintain the OSX PPC port of ScummVM (see the sister topic here: https://forums.macrumors.com/threads/play-hundreds-of-new-old-games-on-osx-ppc-with-scummvm.2446791/ :D) and we do have a native build process (in part documented here: https://github.com/dwatteau/scummvm-build-macppc), but being able to cross-compile to OSX PPC 10.4 (with a C++11 compiler) could help a lot. We have a builbot toolchain built around Docker for most targets (https://github.com/scummvm/dockerized-bb), but OSX PPC is not a part of it, yet.

So I'm interested in seeing if your work could be used for improved OSX PPC integration.

Regarding OSX in Qemu, you may have a look here:
(as it happens, we've had some discussion about it on our ScummVM Discord server, this week -- look for eientei's recent posts there, who's found various improvements to be made to the two links above.)

What I currently lack right now is enough free time, though. Otherwise I'd happily dive into it right now. But there are maybe ways to have our work help each other's. We have some people with toolchain experience in our team, so maybe you could find something there, too.

And in any case I'm really impressed by the work and time you've put into this!
 
Last edited:
> And in any case I'm really impressed by the work and time you've put into this!

I haven't really done anything other than aggregate the work of others, but thanks for your kind words nonetheless.

> Regarding OSX in Qemu, you may have a look here:

Yup! I've been using those to test my builds of things. Python 3.12 seems to work, I'm slowly going through to get all my gbdev stuff building, but I'm stuck on getting 'git' working right now (I'm just playing around a bit when I find free time after work).

I do wish I could automate testing with the images, but I haven't really dug into it much (I guess maybe if I could have GitHub Actions start up a pre-generated 10.4.11 image and enable ssh and then use that to run things, it could work...).

> We have a builbot toolchain built around Docker (https://github.com/scummvm/dockerized-bb) and so I'm interested in seeing if your work could be used for improved OSX PPC integration.

I actually need to update the notes on my site a bit, but the Dockerfile reflects the latest state of things: https://github.com/VariantXYZ/gcc-powerpc-apple-darwin8/blob/build/gcc-14.2+MacOSXSDK10.4u/.github/workflows/Dockerfile

If it's helpful, my build scripts using the docker images are here: https://github.com/VariantXYZ/gbdev-powerpc-apple-darwin8/tree/main/.github/workflows

I'd recommend using the branches with the 10.4 SDK to target Tiger. I've been able to do things with GCC 13 and 14 against the 10.4 SDK, but I can't get the 10.5 SDK to properly build 10.4 things without some degree of trouble (it's always some dependency on a library that isn't there)...

> we've had some discussion about it on our ScummVM Discord server, this week

By the way, is there a Discord server for general PPC Tiger development discussions? I think there's value in having discussions in easily viewable places (like forums or GitHub issues), but while I was going through all of the setup work, it would've been great to be able to ask people directly about it in something like IRC or Discord.
 
Last edited:
By the way, is there a Discord server for general PPC Tiger development discussions?

Should it be exclusive to Tiger? Given how few people deal with these matters, it may not be useful to segment everyone even further, as long as we talk about 3rd-party software (and not development for the OS itself).
Sure enough, there are some problems specific to a given SDK, but more often than not issues we face are common to 10.4–10.6 and/or powerpc arch.
 
> Should it be exclusive to Tiger?

Hah, fair. No, I just meant a discussion for this type of old development in general.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.