Expanded Steam gaming compatibility likely coming to Arm chips with hundreds of Windows games — Valve testing ARM64 Proton compatibility layer (www.tomshardware.com)
from Alphane_Moon@lemmy.world to games@lemmy.world on 23 Sep 07:31
https://lemmy.world/post/20083904

#games

threaded - newest

LainTrain@lemmy.dbzer0.com on 23 Sep 08:13 next collapse

A natural next step is to make a Steam Deck Mini of some sort once the compat is good enough for at least a hundred games or so.

poke@sh.itjust.works on 23 Sep 13:16 collapse

The goal could also be PC gaming on a standalone VR headset.

steventhedev@lemmy.world on 23 Sep 08:28 next collapse

From what I’ve understood of this - it’s transpiling the x86 code to ARM on the fly. I honestly would have thought it wasn’t possible but hearing that they’re doing it - it will be a monumental effort, but very feasible. The best part is that once they’ve gotten CRT and cdecl instructions working - actual application support won’t be far behind. The biggest challenge will likely be inserting memory barriers correctly - a spinlock implemented in x86 assembly is highly unlikely to work correctly without a lot of effort to recognize and transpile that specific structure as a whole.

BorgDrone@lemmy.one on 23 Sep 11:27 next collapse

it’s transpiling the x86 code to ARM on the fly. I honestly would have thought it wasn’t possible

Apple’s been doing it for years. They try to do ahead of time transpiling wherever they can but they also do it on-the-fly for things like JITed code.

steventhedev@lemmy.world on 23 Sep 13:32 collapse

I thought FAT binaries don’t work like that - they included multiple instruction sets with a header pointing to the sections (68k, PPC, and x86)

Rosetta to the best of my understanding did something similar - but relied on some custom microcode support that isn’t rooted in ARM instructions. Do you have a link that explains a bit more in depth on how they did that?

BorgDrone@lemmy.one on 23 Sep 13:39 collapse

Fat binaries contain both ARM and x86 code, but I was referring to Rosetta, which is used for x86-only binaries.

Rosetta does translation of x86 to ARM, both AOT and JIT. It does translate to normal ARM code, the only dependency on a Apple-specific custom ARM extension is that the M-series processors have a special mode that implements x86-like strong memory ordering. This means Rosetta does not have to figure out where to place memory barriers, this allows for much better performance.

So when running translated code Apple Silicon is basically an ARM CPU with an x86 memory model.

steventhedev@lemmy.world on 23 Sep 13:46 collapse

That makes a lot of sense - I wonder if they also do the SIGSEGV trick like HotSpot to know when they need to JIT the next chunk of instructions

M500@lemmy.ml on 23 Sep 12:54 next collapse

There is an open source project that already does this a bit called box86 and box64.

I think you can find videos of people running Skyrim on arm chips like phones or maybe raspberry pi 5.

They don’t run well, but with more powerful chips and valves experience and money, I’m sure they can do it.

steventhedev@lemmy.world on 23 Sep 13:33 collapse

But does it run Doom? Using CMOV instructions only?

Blum0108@lemmy.world on 23 Sep 13:11 collapse

<img alt="" src="https://lemmy.world/pictrs/image/70f8649e-f7d2-4400-a7b5-00f59d010b37.gif">

DannyBoy@sh.itjust.works on 23 Sep 16:30 collapse

I mentioned this on a related article already but it’d be interesting to see an ARM Steamdeck after seeing the performance and battery life of the Apple desktop chips. I think gaming will eventually go the way of ARM.