Judicat0r: Software would have to be rewritten for the new archicture, this could take many years, not just the act itself but to steer the whole inidustry to a new standard is a massive task.
It's worth noting that this issue isn't as bad as it sounds, and it's mainly a problem for proprietary software that the developer doesn't want to compile for the new architecture, or for abandoned proprietary software (a category that includes a lot of games).
All that needs to be done is as follows:
* Compilers need to support the new architecture as a target; both gcc and clang support aarch64, so this isn't a problem here.
* Assembly programs need to be converted to the new architecture; fortunately, assembly is used very little these days (OS kernels and device drivers being the cases where you're most likely to see this as well as embedded systems). (ZSNES is one example of a program that won't transfer because of this, but then again, it doesn't even support amd64, which is currently the most common desktop/laptop ISA.)
* Any bugs related to subtle differences that affect higher level languages need to be taken care of. This shouldn't be too much of an issue, but there might be programs that try to do things like access 4 byte values at addresses that aren't multiples of 4.
Solve those, and the software is now running on the new CPU type.
Dark_art_: ARM is "backwards compatibility free" at the moment and that means, unlike x86/x64, all the resources get to be fully utilized. IMHO, if
someone design a x64 with only 1 aplication in mind, I have no doubt it will be more efficient than a ARM chip.
Not quite true; most aarch64 CPUs support 32-bit ARM programs.
(The ones in the Raspberry Pi 3 and 4, for example, do so, and in fact Raspberry Pi OS runs in 32-bit mode.)