Mac Source Ports Progress Report: September 14, 2022

I actually started a new post and progress report back in July, but I got sidetracked and didn’t finish it and a lot of things have happened since then so I’m going to just recap them all in this post. The one thing I will pull over from that unfinished post is that this is my development process in a nutshell:

Anyway since then, I’ve added several ports

Tyrian/Tyrian 2000 (via OpenTyrian/OpenTyrian2000)

This is a now-freeware (formerly shareware) SHUMP that has great retro gaming cachet because it’s legit an old game. The original game was Tyrian and the re-release with a fifth episode was Tyrian 2000 and they have enough differences that two source ports are necessary to play them both. I incorporated some new code in Objective-C that allows the executable to find the data in an app bundle but I’ve since learned about a method in SDL that does this already so in the future for things like this I’ll use that if the port already uses SDL.

Old School RuneScape (via RuneLite – third party build)

I’ll be honest I don’t get RuneScape. Not because it’s an MMO that looks like it could run on a potato but because the developer both maintains a new and old version of the game but also allows for third party open source clients. The business model is a head scratcher. Still, I’ve known people over the years who spend top dollar building up massive PC rigs and then the first game they play could run on a Pi Zero you could fit in your wallet. So whatever, they have signed and notarized (but not Universal 2) builds, so I’m linking to them. Also this helped me work out a system of being able to add multiple architecture versions to the site, code I had in place before but didn’t work well because nothing used it.

Cro-Mag Rally (third party build)

Another Pangea port from Ilias Jorio.

Theme Hospital (via CorsixTH)

Like GemRBCorsixTH has hurdles to being a Universal 2 build but unlike GemRBCorsixTH‘s use of something called Luarocks is difficult enough to work with that I decided it wasn’t worth it so I’m just releasing it as two builds. I figure future releases of GemRB I’ll do the same.

Unreal Tournament (via OldUnreal – third party build)

I’m irrationally excited about this one. The OldUnreal project has been maintaining the 1999 game for years now and they now have it native on Apple Silicon. It’s not open source, and I did chat with them about a couple of quirks of packaging for Universal 2, but they did all the work on this themselves and I’m just linking to it.

Fallout 2 (via Fallout 2 Community Edition – third party build)

This one is amazing – some dude just out of the blue reverse engineered the Fallout 2 engine and it plays the game perfectly. Despite the naming it’s not an official product, he did the DevilutionX thing where there’s two versions, one aims to be a recreation of the Windows 95 engine code, warts and all, and the other is designed to be compiled and run on modern machines. He just posted about it in /r/macgaming. I made a Universal 2 build and mentioned it to him, so he decided to do his own and I just link to that now. For years another project called Falltergeist tried to do something similar but stalled out, which makes this one even more impressive.

Arx Fatalis (via ArxLibertatis)

This one was kinda straightforward, though there’s still an issue with some menus and localization, but now you can play this old RPG on Apple Silicon natively.

Ultima VII: The Black Gate and Ultima VII Part Two: Serpent Isle (via Exult – third party build)

I had looked at Exult months ago and it looked tricky to get going and was seemingly a long dormant project. Well apparently back in April they added Apple Silicon support of all things and they sign and notarize so I added the games to the site.

Super 3D Noah’s Ark (via ECWolf)

The one game ECWolf runs that I initially skipped, I went ahead and added it when I learned that not only did it support the game but the ECWolf guys working a deal with whoever owns the carcass of Wisdom Tree is the reason we have it on places like Steam and GOG now. So whatever, let’s add it

Bug Squish, Circus Linux!, Vectroids, Mad Bomber, Gem Drop X, Entombed, and Defendguin

These are odd, so bear with me – Bill Kendrick, author of Tux Paint, asked on Twitter if anyone wanted to port some old SDL games he had to the newest versions of macOS and I got tagged so I took a swing at it. These are seven small games, mostly remakes of older games on things like the Atari 2600 and they’ve been ported to damn near everything. Once I figured out the trick to building/packaging one I went ahead and did them all. I was going to just make one post with all of them but the formatting was wonky looking so I made seven entries. The author was elated, especially since at least one of these had never been on the Mac before.

These are unusual in that they’re games most people have never heard of, not modern ports of old commercial games, but it’s almost “MacSourcePorts as a service” so I went ahead and did them.

Heroes of Might and Magic II (via fheroes2)

This is a project that seems to have done the work necessary to bundle themselves so it was straightforward to get a build going

Blake Stone: Aliens of Gold and Blake Stone: Planet Strike (via bstone)

A couple of quick entries from this Wolfenstein 3-D engine game. Someone on my Discord mentioned that they were building fine so I added them

Commander Keen in Invasion of the Vorticons, Commander Keen in Goodbye, Galaxy! and Commander Keen in Aliens Ate my Babysitter (via CommanderGenius)

Turns out CommanderGenius was doing the work already to make app bundles and look in the right places for data so adding these three games was easy enough. The third one is weird though since it’s not on any commercial services any more, so I debated whether or not to make it. But this is definitely a deal where making the website entries and the icons was more work than the build itself.

Hexen II (via uHexen2)

This one is sort of a perfect example of the conflicts I have on this stuff. Once I got their old build running and playing the game I wanted to get it going on modern hardware since it’s a fun game. But the OpenGL version doesn’t run on Apple Silicon natively for some reason and the Intel build occasionally doesn’t run. So do I hold off until it builds right? Get in there and fix it myself? Or do I put it up with caveats since at least in the meantime people can play it? I ultimately decided to put it up with caveats.

Because here’s the thing: the site has an anniversary coming up. And I’ve got this idea that I don’t know if I’ll be able to pull off but it would be cool if I did.

a) Have 100 games going by the time the first anniversary rolls around, and

b) I have something special in mind for game #100

Today is the one year anniversary, apparently, of me buying the M1 Mac mini (or maybe it was yesterday) and starting the process to make this site. It’s not the one-year anniversary of the site since it took a while to come up with it and launch it but a year ago I got the bug to start making these ports. Near as I can tell I launched the site on or around October 25, 2021. That gives me a month and change to see if I can get to 100 games. Since I list by games and not by ports, I can do things like the bstone source port powering two games. And those seven SDL games bumped up the number a lot too. Maybe that’s cheating, but whatever.

As of this writing I’m up to 82 games. So I’m not clear on if I’ll make the number by then. But we’ll see.

It is more or less the case that my focus has been on getting the number of ports/games up, not necessarily in making sure the ports are completely up to date all the time. I kinda figure after I’ve done 100 games and most of the ones on my to-do list that are feasible are done, I’ll spread the focus out, like making alternative ports for existing games (i.e., adding QuakeSpasm in addition to vkQuake, etc.) or in beefing up the site (a reworking, possibly using a CMS, is probably going to be due once we have a hundred entries).

In any event, that’s the latest.