Avatar

Mac Gamers beware Catalina (Gaming)

by Cody Miller @, Music of the Spheres - Never Forgot, Wednesday, October 16, 2019, 08:10 (1651 days ago)

Don’t get burned folks!

Catalina, the new update to OS X is completely 64 bit and will refuse to run anything 32 bit at all. This is a huge problem because there are many many games that are 32 bit. Some will get updated, but most will not. Even some games on steam are not safe. Telltale sure as hell isn’t updating its library to 64 bit.

If you go to about this Mac, then click system information, go to software, and select applications, you can see what will work and what won’t. If you’ve got a bunch of games you want to play that aren’t 64 bit, then keep a drive with Mojave on it.

It’s a new era, and it feels as bad as when classic was dropped. Deus Ex is still OS 9 only!

Avatar

Progression of technology gives me the warm fuzzies

by MacAddictXIV @, Seattle WA, Wednesday, October 16, 2019, 08:38 (1651 days ago) @ Cody Miller

- No text -

Avatar

Progression of technology gives me the warm fuzzies

by Cody Miller @, Music of the Spheres - Never Forgot, Wednesday, October 16, 2019, 09:41 (1651 days ago) @ MacAddictXIV

Can someone who knows more about computers explain why 32 bit had to be dropped? These apps were written using the same stuff as 64 bit versions… and with classic I understand because it was PPC code, and the new processors were x86. But this is code running natively…

What advantage does refusing to run 32 bit apps give you?

Avatar

Progression of technology gives me the warm fuzzies

by Harmanimus @, Wednesday, October 16, 2019, 09:55 (1651 days ago) @ Cody Miller

In a very broad sense, not as a specific developer’s reasons, 32-bit is really not ideal for much of anything modern. There are substantial limitations (specifically what resources 32-bit can take advantage of) and the use dual 64/32-bit systems has probably always been more of a stop-gap.

I’d suggest it is similar to dual-stacking IPv4 and IPv6, which is almost entirely just a waste of resources when IPv6 can do so much more and do it much more efficiently, but you are burning resources running a legacy protocol.

Avatar

Progression of technology gives me the warm fuzzies

by slycrel ⌂, Saturday, October 19, 2019, 13:42 (1648 days ago) @ Cody Miller

There are a lot of reasons, but it comes down to CPU architecture and memory addressing, and the way the operating system has to manage your hardware. Programs fundamentally interact with the 32 bit vs 64 bit system in a different way. For example, dual support on a mac has literally 2 copies of the frameworks on your system -- a 32 bit copy and 64 bit copy. In order for the old software to run on 64 bit systems means an awful lot of system work to support multiple CPU/memory environments. And the guts of your system have to know the difference and be written twice to simulate the old hardware.

Programs can be updated and re-compiled from 32 bit to 64 bit, but obviously that's not going to happen for a lot of software. This isn't much different than any other thing that apple or others have done in the past -- PPC to x86 architecture change, MacOS classic vs OS X support, etc.

My suggested solution would be to run an older copy of OS X in a virtual machine. That's supported by apple I believe as of OS X 10.6 or 10.7.

Avatar

Progression of technology gives me the warm fuzzies

by Cody Miller @, Music of the Spheres - Never Forgot, Saturday, October 19, 2019, 17:31 (1648 days ago) @ slycrel

There are a lot of reasons, but it comes down to CPU architecture and memory addressing, and the way the operating system has to manage your hardware. Programs fundamentally interact with the 32 bit vs 64 bit system in a different way. For example, dual support on a mac has literally 2 copies of the frameworks on your system -- a 32 bit copy and 64 bit copy. In order for the old software to run on 64 bit systems means an awful lot of system work to support multiple CPU/memory environments. And the guts of your system have to know the difference and be written twice to simulate the old hardware.

Programs can be updated and re-compiled from 32 bit to 64 bit, but obviously that's not going to happen for a lot of software. This isn't much different than any other thing that apple or others have done in the past -- PPC to x86 architecture change, MacOS classic vs OS X support, etc.

My suggested solution would be to run an older copy of OS X in a virtual machine. That's supported by apple I believe as of OS X 10.6 or 10.7.

I’m good in the end I think. Catalina won’t install at all on my Mac Pro tower, so it will be a little time capsule for old stuff. I already have an even older Mac Pro that’s just for opening old Final Cut Pro 7 files.

Where it kind of hurts is on the laptop. I can run Catalina on it, but I like playing adventure games on it while relaxing. And many of those are 32 bit. So I guess I’ll eventually just have to sit in the chair and play them on the tower.

Is there a way to make a 64 bit wrapper for 32 bit apps, like the way wine can make an OS X app?

Avatar

Progression of technology gives me the warm fuzzies

by slycrel ⌂, Saturday, October 19, 2019, 22:29 (1647 days ago) @ Cody Miller

Where it kind of hurts is on the laptop. I can run Catalina on it, but I like playing adventure games on it while relaxing. And many of those are 32 bit. So I guess I’ll eventually just have to sit in the chair and play them on the tower.

Is there a way to make a 64 bit wrapper for 32 bit apps, like the way wine can make an OS X app?

Yeah, I hear you. There are a few things I'll probably never play again outside of a lot of effort to run an old virtual machine.

I'm not sure it's quite as simple as wine. Wine works by re-implementing (not emulating) the libraries that the windows system uses to run. Because linux/mac runs on the same x86 CPUs, wine allows the executable to work by integrating the pre-compiled executable with the re-implemented windows operating system libraries, along with some system environment hand-waving, with the host operating system.

What you're asking is roughly the same as saying "I'd like to run an x86 compiled program on an ARM chip". It's a hardware difference -- the executable is compiled against a specific chipset. As such you'd have to simulate the CPU/hardware layer in addition to the operating system layer like wine does. Which is why I'd recommend an operating system inside of a VM.

And to be clear... anything is possible with software, but it's a lot harder than what wine is doing.

There are other options, like remoting into another machine (aka steambox or VNC) or display-over-a-network tricks on linux on a fast network. But really, getting a re-compiled binary or using a VM is probably your best option for a while.

Since you mentioned it, for the super old adventure games, there are things like scummVM that are possible avenues here too.

Keep an eye on places like good old games who have already embraced wine wrappers for older games. They have financial incentive to figure this out. If something OSS happens here they'll pick it up if they can.

Good luck, and if you find a good solution let us know. =)

Avatar

I’m still using iOS 8 for this exact reason.

by CyberKN ⌂ @, Oh no, Destiny 2 is bad, Wednesday, October 16, 2019, 10:13 (1651 days ago) @ Cody Miller

The first game I ever worked on that had a commercial release, never had a 64-bit update. If something were to happen to my phone that forced an OS update, I’d lose the ability to ever even boot it again.

Thanks, apple.

Avatar

I’m still using iOS 8 for this exact reason.

by MacAddictXIV @, Seattle WA, Wednesday, October 16, 2019, 10:42 (1651 days ago) @ CyberKN

The first game I ever worked on that had a commercial release, never had a 64-bit update. If something were to happen to my phone that forced an OS update, I’d lose the ability to ever even boot it again.

Thanks, apple.

You can't blame Apple. Okay, you can basically blame anyone. But supporting old legacy code like that is like telling an apartment complex developer that they want wells in all the units because one of the tenants likes the taste of well water.

Is it doable? Totally! Is it at all practically and efficient? Heck no! Can the tenant who likes well water blame the apartment developer if they refuse to put in a well? Yeah! But it's kind of silly to do that.

Avatar

I’m still using iOS 8 for this exact reason.

by Cody Miller @, Music of the Spheres - Never Forgot, Wednesday, October 16, 2019, 12:04 (1651 days ago) @ MacAddictXIV

The first game I ever worked on that had a commercial release, never had a 64-bit update. If something were to happen to my phone that forced an OS update, I’d lose the ability to ever even boot it again.

Thanks, apple.


You can't blame Apple. Okay, you can basically blame anyone. But supporting old legacy code like that is like telling an apartment complex developer that they want wells in all the units because one of the tenants likes the taste of well water.

Is it doable? Totally! Is it at all practically and efficient? Heck no! Can the tenant who likes well water blame the apartment developer if they refuse to put in a well? Yeah! But it's kind of silly to do that.

I don't get what special software is needed to run a 32 bit app instead of a 64 bit one. It's all x86 code. Why is it 'complicated' to let a 32 bit app run?

Avatar

I’m still using iOS 8 for this exact reason.

by stabbim @, Des Moines, IA, USA, Wednesday, October 16, 2019, 12:28 (1651 days ago) @ Cody Miller
edited by stabbim, Wednesday, October 16, 2019, 12:33

So, I don't know how Mac OS handles it, but at least in 64-bit Windows, there is in fact a BUNCH of extra stuff explicitly dedicated to enabling 32-bit apps to run. Just as an example, there's apparently separate areas of the registry (if you've been on Mac your whole life and don't know what that is, count your blessings) for 64-bit and 32-bit applications. Just because the hardware supports it doesn't mean nothing else needs to happen.

Avatar

I’m still using iOS 8 for this exact reason.

by Cody Miller @, Music of the Spheres - Never Forgot, Friday, October 25, 2019, 07:36 (1642 days ago) @ CyberKN

The first game I ever worked on that had a commercial release, never had a 64-bit update. If something were to happen to my phone that forced an OS update, I’d lose the ability to ever even boot it again.

Thanks, apple.

Is your game on https://gameclub.io/

They update old iOS games for modern hardware.

Avatar

The installer warns you

by Blackt1g3r @, Login is from an untrusted domain in MN, Thursday, October 17, 2019, 06:54 (1650 days ago) @ Cody Miller

Before you kick off the installation it will warn you of any remaining 32 bit apps. I bet it won't detect CLI tools, but at least Apple warns you if one of your apps will stop working.

Avatar

I can’t believe this!

by Xenos @, Shores of Time, Thursday, October 17, 2019, 08:30 (1650 days ago) @ Cody Miller

It’s almost like progress requires dropping support for old outdated and insecure architecture! What bullshit! They should leave in all support forever! Let me run Windows 3 applications in Windows 10, and keep supporting Java in browsers forever! No Program Left Behind!

In all seriousness, go lookup why they are dropping support. Supporting 32 bit architecture adds bloat to the OS that only a small percentage of applications (whose developers were warned about this years ago) still don’t support 64 bit architecture, they have to drop it eventually. If you don’t know why don’t just say “it can’t be hard!”

And if you want to keep support for those old games, then don’t update. The old OS will work until the computer it’s on dies.

Avatar

As a Software Engineer I support this message.

by MacAddictXIV @, Seattle WA, Thursday, October 17, 2019, 09:04 (1650 days ago) @ Xenos

- No text -

Avatar

I can’t believe this!

by Cody Miller @, Music of the Spheres - Never Forgot, Thursday, October 17, 2019, 10:13 (1650 days ago) @ Xenos

Supporting 32 bit architecture adds bloat to the OS that only a small percentage of applications (whose developers were warned about this years ago) still don’t support 64 bit architecture, they have to drop it eventually. If you don’t know why don’t just say “it can’t be hard!”

That's why I asked why it was so hard… so I could learn.

Avatar

I can’t believe this!

by Xenos @, Shores of Time, Thursday, October 17, 2019, 10:24 (1650 days ago) @ Cody Miller

The real reason is very simple: a 32 bit instruction will take up a full 64 bit instruction on a 64 bit OS. So every instruction used is taking up twice the space everywhere. In addition to support 32 bit applications you have to have in many instances a 32 bit version of the library needed as well as a 64 bit version. So two apps that use the same libraries but one is 32 bit and one is 64 bit, the 32 bit application can’t use the same library, even if the libraries are the same in functionality. If you extrapolate this, 32 bit apps potentially take up not just twice the disk space, but twice the memory to run. This doesn’t mean they necessarily run slower, but if you’re running against the limits of the memory you’re using 32 bit applications will make the problem even worse. There are even more issues, but this is a very basic representation of the problem.

Avatar

I can’t believe this!

by Cody Miller @, Music of the Spheres - Never Forgot, Thursday, October 17, 2019, 10:54 (1650 days ago) @ Xenos

The real reason is very simple: a 32 bit instruction will take up a full 64 bit instruction on a 64 bit OS. So every instruction used is taking up twice the space everywhere. In addition to support 32 bit applications you have to have in many instances a 32 bit version of the library needed as well as a 64 bit version. So two apps that use the same libraries but one is 32 bit and one is 64 bit, the 32 bit application can’t use the same library, even if the libraries are the same in functionality. If you extrapolate this, 32 bit apps potentially take up not just twice the disk space, but twice the memory to run. This doesn’t mean they necessarily run slower, but if you’re running against the limits of the memory you’re using 32 bit applications will make the problem even worse. There are even more issues, but this is a very basic representation of the problem.

See that doesn't seem so bad to me, since 32 bit apps are all old and small anyway.

Is there a reason it was designed this way? Is designing a 'universal' library impossible? Can the OS not be programmed to allow instructions of varying sizes?

If you are running a 64 bit app, can you not program 32 bit variables so save memory? That seems wasteful to have a 64 bit integer if you only need to count to ten.

Avatar

I can’t believe this!

by Xenos @, Shores of Time, Thursday, October 17, 2019, 11:03 (1650 days ago) @ Cody Miller

The real reason is very simple: a 32 bit instruction will take up a full 64 bit instruction on a 64 bit OS. So every instruction used is taking up twice the space everywhere. In addition to support 32 bit applications you have to have in many instances a 32 bit version of the library needed as well as a 64 bit version. So two apps that use the same libraries but one is 32 bit and one is 64 bit, the 32 bit application can’t use the same library, even if the libraries are the same in functionality. If you extrapolate this, 32 bit apps potentially take up not just twice the disk space, but twice the memory to run. This doesn’t mean they necessarily run slower, but if you’re running against the limits of the memory you’re using 32 bit applications will make the problem even worse. There are even more issues, but this is a very basic representation of the problem.


See that doesn't seem so bad to me, since 32 bit apps are all old and small anyway.

Is there a reason it was designed this way? Is designing a 'universal' library impossible? Can the OS not be programmed to allow instructions of varying sizes?

If you are running a 64 bit app, can you not program 32 bit variables so save memory? That seems wasteful to have a 64 bit integer if you only need to count to ten.

No. Explaining this is beyond the scope of a forum reply, if you are going to judge it based on this and actually want to learn you need to go do the research. Variables do not apply on an instruction level, variables are for a programming level. Designing a universal library is totally possible, and it will be roughly double the size of the 64 bit library. So rather than force you to install an extra large library to support a tiny fraction of programs the libraries are typically divided to help the user. The problem is you’re thinking of this from a software perspective when the real problem is the hardware. 64 bit processors can only use 64 bit instructions. It doesn’t matter if the OS converts it for the processor the hardware still only takes 64 bit.

Avatar

I can’t believe this!

by Cody Miller @, Music of the Spheres - Never Forgot, Thursday, October 17, 2019, 11:17 (1650 days ago) @ Xenos

No. Explaining this is beyond the scope of a forum reply, if you are going to judge it based on this and actually want to learn you need to go do the research. Variables do not apply on an instruction level, variables are for a programming level. Designing a universal library is totally possible, and it will be roughly double the size of the 64 bit library. So rather than force you to install an extra large library to support a tiny fraction of programs the libraries are typically divided to help the user. The problem is you’re thinking of this from a software perspective when the real problem is the hardware. 64 bit processors can only use 64 bit instructions. It doesn’t matter if the OS converts it for the processor the hardware still only takes 64 bit.

I see. I'll definitely read up because this is quite fascinating. At least 64 bit is so big we'll never have to move beyond it and transition again… right? :-p

Avatar

It's about reducing complexity

by Beorn @, <End of Failed Timeline>, Thursday, October 17, 2019, 12:02 (1650 days ago) @ Cody Miller

I see. I'll definitely read up because this is quite fascinating. At least 64 bit is so big we'll never have to move beyond it and transition again… right? :-p

It's easy to get pretty far into the weeds while looking this stuff up – there are a lot of interconnected parts and delicate nuance in how they interact with one another. As others have pointed out, though, running 32-bit code on a 64-bit architecture essentially requires a translation layer for proper operation. That translation layer requires a lot of care and maintenance.

What it all boils down to is that, ages ago, Apple decided that they want to simplify their platforms. Dropping 32-bit support allows Apple to reduce complexity in their systems, which in turn means that their OSes and software can be more secure and more performant. For exactly these reasons, iOS has required 64-bit applications since 2015 and has been unable to run 32-bit code since iOS 11. The Mac is a much bigger ship and requires more time to steer, but the writing has been on the wall about this change for the last decade.

Anyone who is part of the Apple ecosystem shouldn't be surprised by this change. Apple tends to push forward with the new and cull the old, unwanted cruft with (sometimes frustrating) regularity. Microsoft, on the other hand, has a dilemma on their hands in this regard. The success of Windows is in large part due to the fact that Microsoft almost never drops backwards compatibility, so ancient applications continue to run on new hardware. This is attractive to many of the large Enterprise customers who spend lots of money on the Microsoft ecosystem. But this comes at a cost. I don't know if you have used Windows recently, but large parts of it are not aging well. I run my 2018 MacBook Pro in Boot Camp for work and the performance difference between macOS Mojave and Windows 10 is astonishing. The most recent version of Windows feels clunky, slow, and old, even on a workstation-class computer. Mojave, on the other hand, is a much more cohesive and smooth user experience. This is because Apple pushes forward and leaves the old behind. Sometimes that hurts. But, as with any ecosystem, that's the cost of progress.

If Microsoft tried to drop 32-bit support like Apple just did, there would be riots.

Avatar

It's about reducing complexity

by Harmanimus @, Thursday, October 17, 2019, 16:36 (1650 days ago) @ Beorn

I would add the caveat that appropriate configuration of a Windows device is exceptionally important and a very substantial volume of complaints with it is not configuring it appropriately. Apply goes with enforced streamlining and Microsoft offers a wide variety of options. If you don’t beed the options then it’s just chaff and you have to put in the time to correct that.

It would be better in the long run for MS to follow suit, but you are correct they likely won’t force a change.

Back to the forum index
RSS Feed of thread