this post was submitted on 23 Sep 2024
132 points (99.3% liked)

Games

39722 readers
1661 users here now

Welcome to the largest gaming community on Lemmy! Discussion for all kinds of games. Video games, tabletop games, card games etc.

Rules

1. Submissions have to be related to games

Video games, tabletop, or otherwise. Posts not related to games will be deleted.

This community is focused on games, of all kinds. Any news item or discussion should be related to gaming in some way.

2. No bigotry or harassment, be civil

No bigotry, hardline stance. Try not to get too heated when entering into a discussion or debate.

We are here to talk and discuss about one of our passions, not fight or be exposed to hate. Posts or responses that are hateful will be deleted to keep the atmosphere good. If repeatedly violated, not only will the comment be deleted but a ban will be handed out as well. We judge each case individually.

3. No excessive self-promotion

Try to keep it to 10% self-promotion / 90% other stuff in your post history.

This is to prevent people from posting for the sole purpose of promoting their own website or social media account.

4. Stay on-topic; no memes, funny videos, giveaways, reposts, or low-effort posts

This community is mostly for discussion and news. Remember to search for the thing you're submitting before posting to see if it's already been posted.

We want to keep the quality of posts high. Therefore, memes, funny videos, low-effort posts and reposts are not allowed. We prohibit giveaways because we cannot be sure that the person holding the giveaway will actually do what they promise.

5. Mark Spoilers and NSFW

Make sure to mark your stuff or it may be removed.

No one wants to be spoiled. Therefore, always mark spoilers. Similarly mark NSFW, in case anyone is browsing in a public space or at work.

6. No linking to piracy

Don't share it here, there are other places to find it. Discussion of piracy is fine.

We don't want us moderators or the admins of lemmy.world to get in trouble for linking to piracy. Therefore, any link to piracy will be removed. Discussion of it is of course allowed.

Authorized Regular Threads

Related communities

PM a mod to add your own

Video games

Generic

Help and suggestions

By platform

By type

By games

Language specific

founded 2 years ago
MODERATORS
top 11 comments
sorted by: hot top controversial new old
[–] [email protected] 24 points 8 months ago (3 children)

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.

[–] [email protected] 12 points 8 months ago (1 children)

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.

[–] [email protected] 3 points 8 months ago

But does it run Doom? Using CMOV instructions only?

[–] [email protected] 10 points 8 months ago (1 children)

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.

[–] [email protected] 1 points 8 months ago (1 children)

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?

[–] [email protected] 8 points 8 months ago* (last edited 8 months ago) (1 children)

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.

[–] [email protected] 1 points 8 months ago

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

[–] LainTrain 13 points 8 months ago (1 children)

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.

[–] [email protected] 7 points 8 months ago

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

[–] [email protected] 6 points 8 months ago* (last edited 8 months ago)

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.