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

glebm

macrumors newbie
Original poster
Dec 7, 2024
4
9
Thanks to the fantastic work of the DevilutionX team, you can now play Diablo 1 on OS X Tiger PPC! 🎉

devilutionx-tiger-screenshot.png


You will need to copy the MPQ file(s) from the original Diablo CD/installation/GOG folder (and Hellfire if you want the expansion) to:
~/Library/Application Support/diasurgical/devilution

Download: devilutionx-macOS-10.4-tiger-ppc.dmg (v1.5.4)
Source code: https://github.com/diasurgical/devilutionX (see docs/building.md for Tiger PPC building instructions)

LAN play is also available, including cross-play!

It runs at ~45 FPS on my iBook G4 in full screen 640x480. The original game targets 20 FPS, so this is more than enough for full speed even in intense fights.

This became possible thanks to the recent effort to make GCC 14 available in MacPorts for Tiger PPC:

Unfortunately, just 2 months after the titanic effort of migrating Tiger to GCC 14, MacPorts dropped Tiger support 😞, so unless they reverse that decision this is possibly the last official release (and the end of porting modern software to Tiger PPC)
 
Last edited:
I think what we want to do is to do an 'overlay' of the last port tree containing tiger support and fork off that into it's own thing ala kencu tigerports (which no longer exists, but I have a backup I can find). It's never over!

Edit: Actually it might be best to take the last commit with Tiger support, fork that, start replacing things with either older versions that do compile (like SDL2) or removing them if no version works, and then make an installer that has a config file which pulls from the forked ports tree and doesn't use main-line macports for anything. I'm not sure if anyone has done anything like this already but I do know how to make this happen and will be getting around to it soon.. Binary packages would be nice too and with more static package versions perhaps it could be done more viable now ironically.
 
Last edited:
I've posted to the dev mailing list asking them to reconsider https://lists.macports.org/pipermail/macports-dev/2025-February/046090.html

At the moment, it still works (but probably not for much longer): the macports-base repo has a commit that breaks it but a new macports-base version has not been released yet.
The breakage being in macports-base means the installer itself would have to be forked, not just the ports repo.

Binary packages needed to build DevilutionX (and more) are available here, built by me on an iBook G4 (took a long time!)
 
I've posted to the dev mailing list asking them to reconsider https://lists.macports.org/pipermail/macports-dev/2025-February/046090.html

At the moment, it still works (but probably not for much longer): the macports-base repo has a commit that breaks it but a new macports-base version has not been released yet.
The breakage being in macports-base means the installer itself would have to be forked, not just the ports repo.

Binary packages needed to build DevilutionX (and more) are available here, built by me on an iBook G4 (took a long time!)
So as of this moment, it works to i.e. build GCC 14? The current commit is 0154cf71bb0aca67a72319f86bc5d856e6730930 . A list of all commits is here. Basically what I'm going to do is fork off the ports tree at a specific commit and then start replacing stuff with tiger compatible versions or removing what can't build on Tiger. Then users will get an installer that installs 'macports-legacy' or whatever I call it. That will use my forked ports tree instead of the main macports one. Then the community can keep improving it after that.
 
You're looking at the commits in macports-ports, support has only been removed in macports-base so far (the macports-ports repo had no support removed as of yet, and yes, gcc14 and cmake build just fine).

A new version of macports-base has not been released yet, so it works for the moment, but when you fork macports-base it has to be done before this commit: https://github.com/macports/macports-base/commit/fe87793b8e5bb4a05bc432a3c3b17b3fb870b0c7

In other news, this port has made the news:


"The best way to play Diablo 1 on pretty much anything just got an update for a 20-year-old Apple OS that runs on a dead chipset, one lunatic somewhere presumably rejoices"
 
  • Like
Reactions: alex_free
I'm not sure if anyone has done anything like this already but I do know how to make this happen and will be getting around to it soon.. Binary packages would be nice too and with more static package versions perhaps it could be done more viable now ironically.

I have done that (and much more) for 10.6.8 PowerPC.
macos-powerpc.org
 
  • Love
Reactions: alex_free
Would be nice to have a Mac OS 9.2.2 build! While the OG Diablo 1, D2 and D2LoD were all officially released and work beautifully on it, the Diablo 1 expansion "Hellfire" wasn't, so plain non-X Devilution would be nice to have, to bridge that gap. And also having DevilutionX for all its cool mods and general improvements would definitely complete the package!

IIRC it is all written in C++, right? What version of C++? Might be something Retro68 might be able to take care of, if the used language features are "too new". Else even a plain old CW project to compile directly from Mac OS 9 would do.
 
Would be nice to have a Mac OS 9.2.2 build! While the OG Diablo 1, D2 and D2LoD were all officially released and work beautifully on it, the Diablo 1 expansion "Hellfire" wasn't, so plain non-X Devilution would be nice to have, to bridge that gap. And also having DevilutionX for all its cool mods and general improvements would definitely complete the package!

IIRC it is all written in C++, right? What version of C++? Might be something Retro68 might be able to take care of, if the used language features are "too new". Else even a plain old CW project to compile directly from Mac OS 9 would do.
IIRC SDL1 works on Mac OS 9 and this allows it. If they need GCC14 it's definitely a very recent C++ ver requirement. If it doesn't require an extremely new version of SDL2, I wonder if we can use panther_sdl2 (which is ver 2.0.3) here and get even better performance on Tiger.
 
Last edited:
IIRC SDL1 works on Mac OS 9 and this allows it. If they need GCC14 it's definitely a very recent C++ ver requirement. If it doesn't require an extremely new version of SDL2, I wonder if we can use panther_sdl2 (which is ver 2.0.3) here and get even better performance on Tiger.

If someone is interested in either a) fixing (likely reverting in parts) Cocoa code in the current SDL, or b) fixing only missing modules which are relevant here, like joystick, perhaps (provided X11 backend is satisfactory otherwise), we could have the latest SDL2 or SDL3 working.
I.e. both build, but with X11 backend and without joystick support.
 
Would be nice to have a Mac OS 9.2.2 build! While the OG Diablo 1, D2 and D2LoD were all officially released and work beautifully on it, the Diablo 1 expansion "Hellfire" wasn't, so plain non-X Devilution would be nice to have, to bridge that gap. And also having DevilutionX for all its cool mods and general improvements would definitely complete the package!

IIRC it is all written in C++, right? What version of C++? Might be something Retro68 might be able to take care of, if the used language features are "too new". Else even a plain old CW project to compile directly from Mac OS 9 would do.

non-X Devilution is Windows only, and it compiles to a bit-identical binary as the original.
DevilutionX is the cross-platform version with bugfixes and strictly optional QoL features.
So porting Devilution doesn't make sense, that's what DevilutionX is for.

It is written in C++. The 1.5-branch only needs C++14 but the master (and the upcoming 1.6 release) needs C++20.

> I wonder if we can use panther_sdl2 (which is ver 2.0.3)

2.0.3 might work (looking at the backports, we do have some for 2.0.3 https://github.com/diasurgical/DevilutionX/blob/master/Source/utils/sdl2_backports.h).
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.