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

Irishman

macrumors 68040
Original poster
Nov 2, 2006
3,448
858
This thread is very speculative (I am not a developer, nor do I code). It’s just my surface reading of Apple’s WWDC keynote, infused with more than a little wishful thinking.

We heard Apple reveal their development roadmap for bringing Mac OS to Apple SoCs. Part of the hand-holding will be in the form of new Universal 2 binaries, and another part will be in the shape of new Rosetta 2 tools, and also virtualizations made for other OS environments like Linux.

I’m taken aback (in a good way) by the performance of the unmodified Shadow of the Tomb Raider game that was demoed. I have questions that the presenter didn’t answer about the specifics of how they did it. All he said was that it was done on-the-fly and via emulation.

I have questions about how that kind of on-the-fly emulation could be done to older, 32-bit Mac apps and games to make it possible for them to run? We know that Apple dropped support for 32-bit apps in the current version of macOS. Maybe the reason why Apple didn’t seem to sweat it, is that they knew that they were workings on something better?

I hope so, and the details on upcoming support for Intel apps make certainly make it seem like it’s a possibility.
 

steve1960

macrumors 6502
Sep 23, 2014
293
300
Singapore
I do not wish to undermine your eloquent post in any way but if you want to play games don't buy a Mac. Not an Intel one or an ARM one. Buy a games console if you can afford it and use your Mac for...............well PC stuff.
 

Irishman

macrumors 68040
Original poster
Nov 2, 2006
3,448
858
I do not wish to undermine your eloquent post in any way but if you want to play games don't buy a Mac. Not an Intel one or an ARM one. Buy a games console if you can afford it and use your Mac for...............well PC stuff.


Thank you, Steve. Did you watch the keynote, and did you have any reactions to it?

As far as your advice to buy a console (both of my sons have Xboxes), and I have always preferred to game on a PC since Doom, back in the early 90s, because I vastly prefer the fluidity of a mouse and keyboard. I have also gamed on Windows 10 on my iMac via Bootcamp), for a little over a year, until a bad experience with a Windows update forced me to uninstall it and take a break from Windows.

I have also tried game streaming via GeForce Now, which worked great (we have Google Fiber gigabit internet), until Nvidia lost a number of games that I really love and have played for thousands of hours: the Borderlands series, the Tomb Raider series, Doom 2016, Quake Champions, and Deus Ex: Mankind Divided. They only last week got back DE:MD, so I haven’t yet given up on the otherwise great service.

I say all that to say this: I’ve learned not to put all of my gaming eggs in one Mac-shaped basket.

I only want to have to worry about whether the games that I have put good money on, and know them like the back of my hand, are going to remain playable until I want to stop playing them.
 
  • Like
Reactions: Nightfury326

Ritsuka

Cancelled
Sep 3, 2006
1,464
969
I don't think so. It could be doable, but that would mean shipping a lot of 32bit libraries that have been removed in 10.15 again, and Apple would never do so because they are already using new objective-c runtime features that were not available on 32bit.
 
  • Like
Reactions: Irishman

KALLT

macrumors 603
Sep 23, 2008
5,380
3,415
Apple has been referring to the x84_64 instruction set (read: 64-bit Intel) specifically in relation to Rosetta 2 (e.g. here). This strongly indicates that x84 (32-bit Intel) will not be supported. Ritsuka is also correct in pointing out that Apple would have to ship libraries with x84 support for this, which is not at all likely after the removal in Catalina. 32-bit support is not coming back.

I’d say that the timely removal of the 32-bit architecture was partly because of the impending ARM transition, as Apple will be supporting a new type of universal binary for x84_64 and arm64 instruction sets.
 

steve1960

macrumors 6502
Sep 23, 2014
293
300
Singapore
Thank you, Steve. Did you watch the keynote, and did you have any reactions to it?

As far as your advice to buy a console (both of my sons have Xboxes), and I have always preferred to game on a PC since Doom, back in the early 90s, because I vastly prefer the fluidity of a mouse and keyboard. I have also gamed on Windows 10 on my iMac via Bootcamp), for a little over a year, until a bad experience with a Windows update forced me to uninstall it and take a break from Windows.

I have also tried game streaming via GeForce Now, which worked great (we have Google Fiber gigabit internet), until Nvidia lost a number of games that I really love and have played for thousands of hours: the Borderlands series, the Tomb Raider series, Doom 2016, Quake Champions, and Deus Ex: Mankind Divided. They only last week got back DE:MD, so I haven’t yet given up on the otherwise great service.

I say all that to say this: I’ve learned not to put all of my gaming eggs in one Mac-shaped basket.

I only want to have to worry about whether the games that I have put good money on, and know them like the back of my hand, are going to remain playable until I want to stop playing them.

Oh Doom in the 1990's you just took me back to a time I loved. However, playing my daughters Nintendo Switch has confirmed, at least for me, computers are for computing and games consoles are for gaming. There could well be a crossover point but it's too big of a compromise for me.
 
  • Like
Reactions: Irishman

casperes1996

macrumors 604
Jan 26, 2014
7,593
5,764
Horsens, Denmark
So. The short answer is no. I have spent the past few days looking through a lot of the more in depth WWDC tech talks and I am a software developer, so I say this rather confidently. No. I will elaborate a bit on that though :)

But first I'll say this. Mac Gaming is a thing. And we all know that there are better options for the pure purpose of games, but that's not really the point. There are many, many valid reasons to want to play games on your Mac and I understand why there's always a comment about using another platform for games on every Mac gaming thread, it really isn't the point. - Do tell it to people who don't seem to know; If someone's never tried a Mac, is a hardcore "gamer" and considering buying a Mac for their gamer setup; Do steer them away. - But for the most of us that's not why we're here. We're here because we have a powerful Mac for other reasons but also want to play games on it without needing an extra device, or because we're hobbyists enjoying the technology of games on the Mac, or because we want to play games, are not super sensitive to whether it's 60FPS or 120FPS and prefer not having to boot another system, or whatever. So many reasons and they're all valid.

With that out of the way;

First of all, Rosetta 2 translates the machine code both statically and dynamically. This means that as much as it is possible it will translate the CPU instructions before opening the app. Apps installed with a .pkg, installer or App Store will be translated at install time. Others will be translated on first launch, and the whole program will be translated. Programs that load code during runtime like browsers and JITs like Java will be dynamically translated while running.

There's no 32-bit support in macOS still. The Linux virtualisation is no different to if you virtualise a Linux installation on your Intel Mac right now, except you have to use an ARM version of Linux. Virtualisation does not go through Rosetta. AVX is also not supported by Rosetta, so SIMD instructions will have to either be avoided or used natively with ARM or through an Apple framework like Accelerate.

In fact, I recon removing 32-bit support in Catalina was in preparation for not having to support 32-bit Intel on these ARM chips as well; Unlike Windows for ARM which ONLY supports 32-bit x86 and not 64-bit.

Then there's GPU instructions. These will be more or less native as they are just calls to Metal and handled by the GPU driver, so to OS call to Metal will be translated from x86 to ARM and then from that point on it can basically be native to the Apple GPU. Though for apps not build against the Big Sur SDK it will run with immediate mod render consistency forced on, to protect against coding mistakes that were invisible on prior GPUs, costing a bit of performance to avoid visual artefacts.

It would be easier to hack in 32-bit support again for Intel Macs on Catalina or Big Sur than on the ARM Macs, but there's absolutely no way of getting 32-bit code running in a non-hacky way at all.

Also, Bootcamp is dead, unless you're installing an ARM OS, and that wouldn't really run your games anyway. Windows doesn't currently have anything as good as Rosetta; As mentioned it can only translate 32-bit code currently, and seems to be having licensing issues with the x86-64 architecture

Speaking of which, when people talk about the cost going down for Apple not having to buy the chips from Intel; AFAIK they still have to license the instruction set from AMD and Intel to make x86-64 translation possible. At least that was reported as the reason Windows with Spandragon only had 32-bit support
 

chrfr

macrumors G5
Jul 11, 2009
13,702
7,264
I have questions about how that kind of on-the-fly emulation could be done to older, 32-bit Mac apps and games to make it possible for them to run? We know that Apple dropped support for 32-bit apps in the current version of macOS. Maybe the reason why Apple didn’t seem to sweat it, is that they knew that they were workings on something better?

I hope so, and the details on upcoming support for Intel apps make certainly make it seem like it’s a possibility.
Apple is done with 32-bit support. They warned it was going away for a few years and then removed it; there's just no reason for 32-bit support to come back, and it would entail a tremendous amount of complexity, in addition to generating a lot of ill will from developers who have already worked to update their apps to 64-bit based on the years of Apple's guidance on the removal of 32-bit support.
 

Irishman

macrumors 68040
Original poster
Nov 2, 2006
3,448
858
So. The short answer is no. I have spent the past few days looking through a lot of the more in depth WWDC tech talks and I am a software developer, so I say this rather confidently. No. I will elaborate a bit on that though :)

But first I'll say this. Mac Gaming is a thing. And we all know that there are better options for the pure purpose of games, but that's not really the point. There are many, many valid reasons to want to play games on your Mac and I understand why there's always a comment about using another platform for games on every Mac gaming thread, it really isn't the point. - Do tell it to people who don't seem to know; If someone's never tried a Mac, is a hardcore "gamer" and considering buying a Mac for their gamer setup; Do steer them away. - But for the most of us that's not why we're here. We're here because we have a powerful Mac for other reasons but also want to play games on it without needing an extra device, or because we're hobbyists enjoying the technology of games on the Mac, or because we want to play games, are not super sensitive to whether it's 60FPS or 120FPS and prefer not having to boot another system, or whatever. So many reasons and they're all valid.

With that out of the way;

First of all, Rosetta 2 translates the machine code both statically and dynamically. This means that as much as it is possible it will translate the CPU instructions before opening the app. Apps installed with a .pkg, installer or App Store will be translated at install time. Others will be translated on first launch, and the whole program will be translated. Programs that load code during runtime like browsers and JITs like Java will be dynamically translated while running.

There's no 32-bit support in macOS still. The Linux virtualisation is no different to if you virtualise a Linux installation on your Intel Mac right now, except you have to use an ARM version of Linux. Virtualisation does not go through Rosetta. AVX is also not supported by Rosetta, so SIMD instructions will have to either be avoided or used natively with ARM or through an Apple framework like Accelerate.

In fact, I recon removing 32-bit support in Catalina was in preparation for not having to support 32-bit Intel on these ARM chips as well; Unlike Windows for ARM which ONLY supports 32-bit x86 and not 64-bit.

Then there's GPU instructions. These will be more or less native as they are just calls to Metal and handled by the GPU driver, so to OS call to Metal will be translated from x86 to ARM and then from that point on it can basically be native to the Apple GPU. Though for apps not build against the Big Sur SDK it will run with immediate mod render consistency forced on, to protect against coding mistakes that were invisible on prior GPUs, costing a bit of performance to avoid visual artefacts.

It would be easier to hack in 32-bit support again for Intel Macs on Catalina or Big Sur than on the ARM Macs, but there's absolutely no way of getting 32-bit code running in a non-hacky way at all.

Also, Bootcamp is dead, unless you're installing an ARM OS, and that wouldn't really run your games anyway. Windows doesn't currently have anything as good as Rosetta; As mentioned it can only translate 32-bit code currently, and seems to be having licensing issues with the x86-64 architecture

Speaking of which, when people talk about the cost going down for Apple not having to buy the chips from Intel; AFAIK they still have to license the instruction set from AMD and Intel to make x86-64 translation possible. At least that was reported as the reason Windows with Spandragon only had 32-bit support

But, Windows 10 for ARM certainly exists, and Microsoft supports it to some degree.
 

leman

macrumors Core
Oct 14, 2008
19,494
19,631
It would be possible to write a translator similar to Rosetta that will transpile 32bit x86 to 64bit x86. Open source tools for starting this exist. I doubt that anyone would actually do it, it’s a lot of work.
 
  • Like
Reactions: Irishman

casperes1996

macrumors 604
Jan 26, 2014
7,593
5,764
Horsens, Denmark
It would be possible to write a translator similar to Rosetta that will transpile 32bit x86 to 64bit x86. Open source tools for starting this exist. I doubt that anyone would actually do it, it’s a lot of work.

I mean just translating the individual op codes is just a big look-up table basically. But linking it with the correct 64-bit frameworks and libraries it depends on would perhaps be tricky. - Also some code might rely on 32-bit pointer math and that couldn't just be transformed like that. And even if a developer's code doesn't do that, the compiler optimised machine could could
 
  • Like
Reactions: Irishman

leman

macrumors Core
Oct 14, 2008
19,494
19,631
But linking it with the correct 64-bit frameworks and libraries it depends on would perhaps be tricky.

This is the main challenge IMO. Because behavior can differ between the 32bit and the 64bit framework. You’d basically need to reimplement much of the old OS, patching the behavior depending on the linked SDK version... it makes me uncomfortable just thinking about it.
 

alatomking

macrumors newbie
Aug 14, 2020
1
1
Oh Doom in the 1990's you just took me back to a time I loved. However, playing my daughters Nintendo Switch has confirmed, at least for me, computers are for computing and games consoles are for gaming. There could well be a crossover point but it's too big of a compromise for me.
Computers are also for gaming.
[automerge]1597430817[/automerge]
So. The short answer is no. I have spent the past few days looking through a lot of the more in depth WWDC tech talks and I am a software developer, so I say this rather confidently. No. I will elaborate a bit on that though :)

But first I'll say this. Mac Gaming is a thing. And we all know that there are better options for the pure purpose of games, but that's not really the point. There are many, many valid reasons to want to play games on your Mac and I understand why there's always a comment about using another platform for games on every Mac gaming thread, it really isn't the point. - Do tell it to people who don't seem to know; If someone's never tried a Mac, is a hardcore "gamer" and considering buying a Mac for their gamer setup; Do steer them away. - But for the most of us that's not why we're here. We're here because we have a powerful Mac for other reasons but also want to play games on it without needing an extra device, or because we're hobbyists enjoying the technology of games on the Mac, or because we want to play games, are not super sensitive to whether it's 60FPS or 120FPS and prefer not having to boot another system, or whatever. So many reasons and they're all valid.

With that out of the way;

First of all, Rosetta 2 translates the machine code both statically and dynamically. This means that as much as it is possible it will translate the CPU instructions before opening the app. Apps installed with a .pkg, installer or App Store will be translated at install time. Others will be translated on first launch, and the whole program will be translated. Programs that load code during runtime like browsers and JITs like Java will be dynamically translated while running.

There's no 32-bit support in macOS still. The Linux virtualisation is no different to if you virtualise a Linux installation on your Intel Mac right now, except you have to use an ARM version of Linux. Virtualisation does not go through Rosetta. AVX is also not supported by Rosetta, so SIMD instructions will have to either be avoided or used natively with ARM or through an Apple framework like Accelerate.

In fact, I recon removing 32-bit support in Catalina was in preparation for not having to support 32-bit Intel on these ARM chips as well; Unlike Windows for ARM which ONLY supports 32-bit x86 and not 64-bit.

Then there's GPU instructions. These will be more or less native as they are just calls to Metal and handled by the GPU driver, so to OS call to Metal will be translated from x86 to ARM and then from that point on it can basically be native to the Apple GPU. Though for apps not build against the Big Sur SDK it will run with immediate mod render consistency forced on, to protect against coding mistakes that were invisible on prior GPUs, costing a bit of performance to avoid visual artefacts.

It would be easier to hack in 32-bit support again for Intel Macs on Catalina or Big Sur than on the ARM Macs, but there's absolutely no way of getting 32-bit code running in a non-hacky way at all.

Also, Bootcamp is dead, unless you're installing an ARM OS, and that wouldn't really run your games anyway. Windows doesn't currently have anything as good as Rosetta; As mentioned it can only translate 32-bit code currently, and seems to be having licensing issues with the x86-64 architecture

Speaking of which, when people talk about the cost going down for Apple not having to buy the chips from Intel; AFAIK they still have to license the instruction set from AMD and Intel to make x86-64 translation possible. At least that was reported as the reason Windows with Spandragon only had 32-bit support
very long
 
  • Like
Reactions: Heat_Fan89

Heat_Fan89

macrumors 68030
Feb 23, 2016
2,885
3,743
I do not wish to undermine your eloquent post in any way but if you want to play games don't buy a Mac. Not an Intel one or an ARM one. Buy a games console if you can afford it and use your Mac for...............well PC stuff.
I'll add to the above. If the OP wishes to play games he could buy a Windows gaming rig or build one. It is even vastly superior to gaming consoles but in most cases you will have to shell out more money. I play games on my consoles but they are NO match for my Windows gaming rig. They just look 10x better than what you get on a console with higher framerates.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.