Live data from Hacker News

Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

rkblog.dev

21–30 of 60 posts

Re: Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

#22

Does WoW still use Blizzard's in house anti-cheat engine (Warden)? Interesting how the emulated version did not trip this.

I didn't know it did for quite a while. I have regularly emulated WoW on Linux since 2013 and not had any significant issues.

Re: Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

#23

Does WoW still use Blizzard's in house anti-cheat engine (Warden)? Interesting how the emulated version did not trip this.

The anti-cheat streams executable code into the client, and that code is mostly for detecting tampering with the game, injected modules, etc.

Not sure they care about it running in an emulated environment.

They do effectively allocate an executable memory region, copy the machine code that was streamed into it, and jump to it.

I guess in this case the emulation is an actual vm, rather than "rewrite x86 instructions into arm" (don't know much about this subject, but assumed that was how rosetta worked)

Re: Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

#25

Does WoW still use Blizzard's in house anti-cheat engine (Warden)? Interesting how the emulated version did not trip this.

The anti-cheat streams executable code into the client, and that code is mostly for detecting tampering with the game, injected modules, etc. Not sure they care about it running in an emulated environment. They do effectively allocate an executable memory region, copy the machine code that was streamed into it, and jump to it. I guess in this case the emulation is an actual vm, rather than "rewrite x86 instructions i…

Rosetta 2 rewrites x86 instructions into ARM, but it does this on the fly for generated instructions too. When you put x86 machine code into a buffer and then jump to execute it, Rosetta 2 dynamically translates those generated instructions into arm before executing them.

At least that's what I gathered around the time it was released. It seems to hold up; JITed x86 applications work great under Rosetta 2.

Re: Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

#26
post #17
post #12

Earlier quoted context omitted.

I mean you can release it with loads of parts untested and just _hope_ there aren’t bugs there, it’s definitely an option. It’s risk vs reward there.

few days ago there was thread here about Valve and 20 years FPU bug... https://news.ycombinator.com/item?id=46009962 WoW was released 21 years ago AFAIK

now I feel old...

Re: Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

#27
post #6

How hard would it be for Blizzard to just recompile WoW to support arm64?

As others have said in this thread, they did. But to answer your question as if they had not yet: it's never "just" recompiling. It's: * recompile (and fix any warnings/errors indicated by the compiler) * re-test ... the entire game * fix the bugs that are encountered in test * release/publish the game for Windows ARM64 Whatever this effort is, it's much much more than "just" recompiling. You could imagine motivated…

A really fun thing is that arm and x86 have different char signedness: char is signed on x86, unsigned on arm. This has tripped me up more than a few times when I try to compile software that's only been tested on x86 for an arm machine.

Now WoW already supports Apple Silicon on macOS so most of that was already taken care of, but I'm betting there's a lot of Windows-specific code in there too.

Re: Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

#28
post #13
post #6

Earlier quoted context omitted.

As others have said in this thread, they did. But to answer your question as if they had not yet: it's never "just" recompiling. It's: * recompile (and fix any warnings/errors indicated by the compiler) * re-test ... the entire game * fix the bugs that are encountered in test * release/publish the game for Windows ARM64 Whatever this effort is, it's much much more than "just" recompiling. You could imagine motivated…

They've supported macOS through all of PowerPC, Intel, and now ARM. I'm sure Windows on ARM should be trivial for them.

They did the work your parent comment describes for macOS on PowerPC, macOS on Intel, and macOS on arm. They can do the work, but it's still work.

Re: Native vs. emulation: World of Warcraft game performance on Snapdragon X Elite

#30

I wish ARM wasn't so messy for Linux, with out of date device trees etc. All I want is something like a Macbook Air, but running Linux - long battery life, acceptable performance, an OS that respects me.

This is also why I don't get why people are so enthusiastic about ARM. While there is nothing technically preventing manufacturers from using extensible standards and technologies like ACPI, UEFI, etc. with ARM, pretty much no one does. Meaning these devices are closed and pretty unusable with Linux.
Post reply on HN