When talking about "binary" in the context of software programs this is what we are talking about. Note that it's often more than simply a sequence of binary machine-code instructions.
You are correct that the same CPU would offer the same operations and would operate identically when given the same machine-code instructions, but different operating systems have different Application Binary Interfaces a program has to conform to to function properly.
As example, on Windows, the binary executable needs to be in Portable Executable format, whereas in MacOS it needs to be in Mach-O.
I agree I have no idea what I’m talking about.
Here’s the argument I’m trying to make about Windows gaming first:
A float is a float. 1f == 1f
There are unsigned floats, 32 bit floats, 64 bit floats, etc.
But a float is a float. You can’t say an int is a float. It’s not. That’s the science part of computer science.
If I pop in the PS5 CPU/GPU for a custom Windows Machine, and my math works, then my math works.
It doesn’t matter if I compile the binary as .exe, or .o, or .dll.
The math using my computer language (C++) works with the CPU instructions. 2 + 2 = 4
I believe with ARM, since it intentionally uses different math instructions, there might be a bug in how it interprets float.
If no one programs for M1, or ARM Android, natively, then you’re just assuming it works.
If I can run my code using C++ on a PS5 Windows machine, then it works for PS5.