To provide access to compiled, signed and notarized versions of game source ports for the Mac.
A source port is the term used to describe someone’s effort to maintain a project derived from the source code to a game.
For example, id Software released Quake III: Arena in 1999. In 2005, after the game and engine’s commercial life was over, they released the source code freely under an open source license. Shortly thereafter the ioquake3 project was born and has been maintained ever since.
In this case, Quake III: Arena is the game, and ioquake3 is the source port. Although the original executables for Quake III: Arena have long since stopped working on modern Macs, source ports like ioquake3 have seen constant maintenance so they allow you to continue to play on modern Macs.
In some cases, when the content for a game has been released under a free license, we can offer a full download of the complete game. We label these as "full game" in their listing on the site.
In most cases though, a source port is just the executable code for the game, you still have to provide your own copy of the game's data.
So for example, using Quake III: Arena again, the game consists of both an executable and a set of data files (pk3 files, in this case). The download for ioquake3 is an executable that is up to date and has been maintained to work on modern Macs, but you still need to acquire the pk3 files from a legal source, such as an existing installation of the game from disc or Steam or GOG.
I'm constantly looking for better ways to get the data for the games but right now there's essentially three ways to do it:
a) If you have the Windows installer for the game from GOG, you can use our utility Extractor to extract the data from it. For games which can be acquired from GOG, this is probably the quickest and easiest method.
Extractor is essentially a GUI-based version of innoextract. If you'd prefer to use the command line you can use innoextract achieve the same goal. boggydigital has written a guide on how to do this, it can be found here, and Andrew Tsai has made a video demonstrating it here
b) Install the game on a Windows machine or virtual machine and copy over the game's data to your Mac, either via removable media or over a network.
c) If you own the game on Steam you can use SteamCMD to install the data for the Windows version to your Mac, and then copy the data into place. boggydigital has written a guide on how to do this, it can be found here.
Keep watching this space and follow us on our social media channels to keep up with the latest ways of getting the game data.
Briefly, unsigned code is when someone compiles an executable (the compiled program that actually runs) and doesn’t do anything else with it.
Signing code involves taking a certificate of some sort and using a utility to sign the resulting executable or libraries. In this case the certificate comes from the Apple Developer program.
macOS is increasingly encouraging the use of signed code. You can still run unsigned code but you have to authorize it in the Security Preferences settings, which is a pain.
Until recently, code signing was sufficient to not have to manually authorize code but Apple decided to go one step further and now requires notarization.
Notarization is basically the process of submitting the compiled code to Apple and having them check it for malware. This is not the same thing as submitting to the App Store where a human has to review it, this is an automated process.
On this site our goal is to provide signed and notarized builds of source ports and easy ways to get them.
These are source ports that have not been signed with an Apple Developer certificate but the developer has run a code signing utility on them. Apple Silicon Macs will refuse to run anything that has not at least been Ad Hoc signed.
When you first run these applications you may be stopped by macOS from proceeding. The quickest way to proceed is to right-click the app bundle (the .app file) and select "Open". This tells macOS that you are aware it is Ad Hoc signed and wish to proceed. Subsequent runs will not prompt you further until or unless the app bundle is updated in the future.
At Mac Source Ports, we want to present you with fully signed and notarized builds whenever possible. We only link to Ad Hoc signed builds when we feel the circumstances merit it.
No, some projects come up with their own signed and notarized builds. But when there's not one available we help come up with the builds ourselves. In some cases I'm coordinating with the original source port maintainers.
In some cases source port projects make their own builds and we link to those here as well, but oftentimes the projects don’t have the resources to do it themselves. Code signing is relatively new and sort of tedious, notarization requires a paid account which not everyone is interested in obtaining, and not everyone even has a Mac in the first place. Windows machines are everywhere and Linux can be installed on anything but you have to buy a Mac to have macOS. And every so often Apple changes things, like the recent shift to Apple Silicon, so even people who do have a Mac have to buy new stuff.
Me personally, I'm adept at figuring out how to get them building and running so that’s where I’m trying to help out. Anything I have to modify (like build scripts, make files or source code) I keep on the GitHub account as a fork of the main project.
The Mac App Store is great when you can use it but the nature of it is incongruent with the goals of source ports.
For example, I can’t put the full game of Quake on the Mac App Store because I don’t have the rights to do so. I could conceivably try to put a port of vkQuake on there without data files but anything you put on the App Store has to go through a vetting process and it’s not clear whether the staff has the ability to go through the process of acquiring the game data and running through the process themselves. And it’s unlikely I could call it vkQuake, so I’d have to name it something else and use a different icon which would confuse people.
The advantage of doing it this way is that I can make it simpler to find the game you want to play, give you a working source port, and show you how to provide your own data.
Apparently, Chrome displays this message for certain kinds of files or executables in certain situations until the file has been downloaded a certain number of times. I'm looking into ways to address this but in the meantime, if you are amongst the first people to download one of our releases you may see this message.
The short version is that it’s a type of app that has multiple different architectures and you can run it on multiple different types of Macs. Apple came up with this to help when the Mac transitions to a new kind of processor.
The main thing to know is: if your Mac was made after 2008, you want the Universal 2 build.
The longer version is: Mac has been through five processor types
I’m getting to it, provided it has source code and an actively maintained source port. If the source port is already doing the work of making the signed and notarized builds, I'll link to them here, otherwise I'll see if I can figure out how to do it myself. If a game doesn’t have an actively maintained source port it might require more work. If it doesn’t have source code available I can’t do anything with it (so, for example Quake 4 never released source code so I can't do anything with it)
Sure, but in some cases the way I choose to go about building and bundling/signing them might be incongruent with the goals of the original project. I’m going to maintain all my changes in forks from the original repositories on the MacSourcePorts GitHub account so anyone is free to do whatever they want with them.