Hacker News new | past | comments | ask | show | jobs | submit login

It's unplayable in Rosetta because of the x87 everywhere. Like sub-20 fps unplayable.



Are you sure? Portal 2 had no issues on my M1.

Half Life 2 also runs well https://www.youtube.com/watch?v=Y4NESG_fXgo


Yes, Portal 2 and Half-Life 2 are both more playable because they don't use x87 to the same extent. It's only HL that uses it heavily enough that it becomes unplayable.

Side note, I think HL2 does for physics, or something; fast moving objects and explosions cause drastic frame drops via Rosetta. I haven't been able to look into it in detail to confirm the cause.

Edit: The best "official" way to play Half-Life on an Apple Silicon machine is through Parallels, which uses WoW64's x87 translation instead of Rosetta. I've also heard you can compile Half-Life yourself using the leaked Source Engine code, but I haven't tried it myself.


Why use the leaked code, when there is an open source reimplementation: https://github.com/FWGS/xash3d-fwgs


The 25th anniversary release is a major update to the engine and may be compiled for newer CPUs. Worth a try.


x87 everywhere? as in...floating point instructions?

These games aren't designed for an 8086, having an FPU is generally expected


x87 is different from modern floating-point, including the modern floating-point operations on x86 CPUs (SSE and later instructions) and ARM64.

x87 calculates with 80-bit floats ("long double" in C), but the host CPU's FPU typically supports only 64-bit floats ("double").

So accurate x87 emulation can't translate all operations directly to host FPU operations. It must use software floating-point on the host instead, which is much slower.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: