back

by Philpax·2y ago·view on hn ↗
Pretty neat, but will Apple attempt to shut this down for redistributing GPTK?
2 comments
Hi there, Isaac here. Early days of GPTK this was definitely a concern, so we required you to download the dmg from Apple's website yourself, but around beta 4, with feedback from the community, they changed the license to allow for redistribution in cases like this.
I doubt it. But they will shut it down eventually, purely by dropping support for Rosetta.
I'm unsure that they'd actually do this. As I recall, the original Rosetta required Apple to pay royalties to IBM and it was basically only useful for Mac OS X binary compatibility. Being able to translate x86 binaries is somewhat more general in application and I don't think Apple is paying royalties on Rosetta 2.
There is a cost to maintaining and keeping it functional as macOS gets updated. Apple doesn't care about legacy support or backward compatibility, so they will eventually drop it as they had dropped 32-bit support. I am sure Apple wants developers to view Rosetta 2 as already deprecated and to update their new releases to Universal 2 binaries.
Rosetta 2 expects certain capabilities from ARM CPU, which exists solely for the purpose of running x86 simulation. Apple will drop that in future versions of their SoCs and Rosetta will go as well.
You're speaking very authoritatively about the future plans of a company that is notoriously secretive about its future plans.

Do you have some kind of insider knowledge?

Or are you just claiming things to be definitively true that are, in fact, merely speculation?

Based on decades of historical precedent. Apple has migrated from 68k to PowerPC to Intel to ARM. You can no longer run PowerPC applications on current MacOS, as Rosetta v1 was dropped five years after migrating to Intel. Likewise 68k emulation was dropped some time after transitioning to PowerPC. Rosetta v2 is another temporary solution until x86 support is completely gone a few years from now, unless they intend to continue offering the Game Porting Toolkit.
Except that those situations were materially different from the current situation in two huge ways:

1. The architecture they're migrating away from is the dominant architecture in the market (both now and for the past few decades), meaning that rather than simply losing support for older MacOS software, they'd be losing access to easy virtualization of everything Windows and Linux can do.

2. The architecture they're migrating to is their own, 100% in their control, meaning that they can maintain hardware-level support for this translation layer without needing to convince any other company to put that effort in on each subsequent chip generation.

Now, does this mean they're guaranteed to maintain Rosetta 2 forever? No, of course not. I don't know what Apple's going to do any more than you or viktorcode do.

But it does mean that seeing this transition as being exactly a mirror of the past 2 architecture transitions they did is dangerous, at best.

Agreed that this is a different situation. If they drop Rosetta then Crossover is gone and Game Porting Toolkit is finished. Also Docker will be limited without x86. I'm using that to run SQL Server on Linux on MacOS for work.
This is an unprecedented situation given their new push into Mac gaming, seemingly trying to convince AAA studios that there is a market. If successful they can increase their user base and steal some thunder from Steam, and it probably bodes well for their Vision plans.

I'd say they have an incentive to not drop Rosetta until they reach a critical nexus of support from the studios... enough that it will cause the laggards to quickly add support once it's taken away. Maybe that will be there in a couple years, but likely it will take a bit longer.

The historical precedent of dropping ARMv6 support from Apple SoCs, for instance. No matter what the secrecy level of a corporation is, no one will waste their CPU area for backwards compatibility when it's no longer demanded by the majority of the user base. It runs agains the economics of hardware production.
Another argument for dropping Rosetta (2) is that it forces developers to make the transition instead of lingering in dependence of the translation. And if they don’t make the transition, get dropped by the wayside.
What does this have to do with Rosetta?
Most games don’t have an ARM version yet, so Rosetta lets you play x86 games.
Doesn't GPTK depend on Rosetta?
All x86 software being run on macOS relies on Rosetta 2. It effectively does a translation of x86 binaries to ARM binaries. Then, WINE handles the PE to mach-o translation along with providing a system call translation from Windows to *nix. Game porting toolkit then adds in macOS specific stuff as well as Vulkan and DirectX translation to Metal.
Vulkan? Are you sure? Last time I checked it was just only Direct 3D. For Vulkan there is only MoltenVK.