News for hackers. Stuff that matters.
Re:Win32 Is the Only Stable ABI on Linux? by iforgotpassword on Monday August 15, 2022 @01:42PM (#32472821)
Agree. Had a few games on Steam crap out with the native version, forced it to use proton with the Windows version, everything worked flawlessly. Developers natively porting to linux seem to be wasting their time.

Funnily enough with wine we kinda recreated the model of modern windows, where Win32 is a personality on top of the NTAPI which then interfaces with the kernel. Wine sits between the application and the zoo of libraries including libc that change all the time.

Re:Win32 Is the Only Stable ABI on Linux? by Aachen on Monday August 15, 2022 @02:04PM (#32473135)
> Developers natively porting to linux seem to be wasting their time.

Factorio runs so much better than any of this emulationware, it's one of the reasons I love the game so much and gifted licenses for friends using Windows.

Some software claims to support Linux but uses some tricks to avoid recompiling and it's always noticeable, either as lag, as UI quirks, or some features plainly don't work because all the testers were windows users.

Emulating as a quick workaround is all fair game but don't ship that as a Linux release. I appreciate native software (so long as it's not java), and I'm also interested in buying your game if you advertise it as compatible with WINE (then I'm confident that it'll work okay and you're interested in fixing bugs under emulation), just don't mislead and pretend and then use a compatibility layer.

Re:Win32 Is the Only Stable ABI on Linux? by WarChortle on Monday August 15, 2022 @02:16PM (#32473299)
In case you weren't aware Wine is not an emulator, it is a compatibility layer.

The whole point of wine is to take a native Windows app, only compiled for Windows and translate its Windows calls to Linux calls.

Re:Win32 Is the Only Stable ABI on Linux? by Wowfunhappy on Monday August 15, 2022 @02:29PM (#32473456)
> In case you weren't aware Wine is not an emulator, it is a compatibility layer.

Ehhh. I know it’s in the name, but I feel like the significance is debatable. It’s not a CPU emulator, true. It is emulating calls, which is emulation of a sort.

Re:Win32 Is the Only Stable ABI on Linux? by kmeisthax on Monday August 15, 2022 @03:28PM (#32474161)
Usually when you say "emulator" people think there's an inherent performance hit because of a fetch-decode-execute interpreter loop somewhere. Reimplementations of things don't have that performance hit even though they are lumped under the same umbrella as actual interpreters and recompilers.

Related note: if WINE is an emulator why isn't Linux or GNU? They both reimplement parts of UNIX, which was even more proprietary than Windows is today.

Re:Win32 Is the Only Stable ABI on Linux? by shadowgovt on Monday August 15, 2022 @04:49PM (#32475169)
Nowadays it's emulators all the way down.

On most of these architectures the software eventually executes as x86 machine code, and the distance between x86 machine code and the actual processes inside a modern CPU implementing the x86 code set is so vast you can call a modern CPU an "x86 emulator built in hardware."

Re:Win32 Is the Only Stable ABI on Linux? by broodbucket on Monday August 15, 2022 @09:47PM (#32478317)
Entirely accurate. Also makes it easier to have a firmware/microcode update that gives you a new instruction.
Re:Win32 Is the Only Stable ABI on Linux? by Wowfunhappy on Monday August 15, 2022 @04:14PM (#32474803)
> If WINE is an emulator why isn't Linux or GNU?

I mean, it depends on the context. I don't think it would be wrong to say that Linux "emulates a UNIX environment" or some such, which is closer to what OP actually wrote about Wine.

You've probably used a "terminal emulator" at some point today. ;)

Re:Win32 Is the Only Stable ABI on Linux? by nmz on Wednesday August 17, 2022 @01:12AM (#32492595)
It does have a terminal emulator, but you can also drop to a tty.
Re:Win32 Is the Only Stable ABI on Linux? by bandrami on Monday August 15, 2022 @09:27PM (#32478176)
> if WINE is an emulator why isn't Linux or GNU?

They... are? I mean for that matter Intel/AMD instruction sets are CISC emulators on top of RISC silicon.

Re:Win32 Is the Only Stable ABI on Linux? by btdmaster on Monday August 15, 2022 @03:58PM (#32474613)
UNIX source code, at least for the original versions, was released in 2002: https://slashdot.org/story/02/01/24/0146248/caldera-releases...
Re:Win32 Is the Only Stable ABI on Linux? by philistine on Monday August 15, 2022 @10:33PM (#32478606)
In regular joe-schmo parlance, an emulator would be something that translates a hardware machine into software that is run on a different machine. Hardware being the important word here. Performance has nothing to do with how people use the term emulator in regular parlance.
Re:Win32 Is the Only Stable ABI on Linux? by udp on Monday August 15, 2022 @03:02PM (#32473817)
It’s a reimplementation of the APIs rather than an emulation. Same as how Linux reimplemented UNIX APIs, but it’s not a UNIX emulator.
Re:Win32 Is the Only Stable ABI on Linux? by messe on Monday August 15, 2022 @03:10PM (#32473911)
That's still emulating the underlying API, and accepted usage of the word. Much like the FreeBSD linux emulator translates linux syscalls into FreeBSD ones.
Re:Win32 Is the Only Stable ABI on Linux? by extropy on Monday August 15, 2022 @04:55PM (#32475242)
By that logic any modern windows is an emulator of win32, since that is not a kernel API but a user space library "emulating" it.

Exactly the same way as wine. Wine does not translate the calls, it for most part actually implements the underlying logic.

Win32 is just a bunch of shared libraries: https://en.wikipedia.org/wiki/Microsoft_Windows_library_file...

Re:Win32 Is the Only Stable ABI on Linux? by messe on Tuesday August 16, 2022 @01:36PM (#32486100)
You're exactly right, and the Wine project agrees.

> That said, Wine can be thought of as a Windows emulator in much the same way that Windows Vista can be thought of as a Windows XP emulator: both allow you to run the same applications by translating system calls in much the same way. Setting Wine to mimic Windows XP is not much different from setting Vista to launch an application in XP compatibility mode.

> [...]

> "Wine is not just an emulator" is more accurate. Thinking of Wine as just an emulator is really forgetting about the other things it is. Wine's "emulator" is really just a binary loader that allows Windows applications to interface with the Wine API replacement.

Re:Win32 Is the Only Stable ABI on Linux? by Spivak on Monday August 15, 2022 @03:58PM (#32474612)
Is any compatibility shim an emulator?
Re:Win32 Is the Only Stable ABI on Linux? by entropicdrifter on Monday August 15, 2022 @05:09PM (#32475409)
This is all really just a philosophical question as to how you choose to use the word. It's the same as people who get in a twist over every game with procedural generation and permadeath being called a "Roguelike" even though that particular subgenre used to be more specific to turn-based RPGs with procedural generation, permadeath and total loss of all progress between runs.

People who came into using the term earlier tend to think of it more narrowly, but colloquial use of the term has drifted to mean something more generic, e.g. "emulation" used to mean "making one piece of hardware pretend to be another", but now can sometimes just mean, "when one thing acts like another at all".

Re:Win32 Is the Only Stable ABI on Linux? by Wowfunhappy on Monday August 15, 2022 @06:18PM (#32476204)
In this case, however, the term "to emulate" predates microprocessors, so it clearly can't have ever referred exclusively to ISA translation!

"Emulator" might be a more recent term—it would be interesting to see the etymology, actually—but it's reasonable to conclude that anything which "emulates" must be an "emulator". (Also, OP didn't actually use the word "emulator".)

Edit: Nope, the word "emulator" dates back to at least the 1800s (although it has certainly grown in usage more recently): https://books.google.com/ngrams/graph?content=emulator&year_...

Re:Win32 Is the Only Stable ABI on Linux? by entropicdrifter on Tuesday August 16, 2022 @01:45PM (#32486241)
Huh, what happened in 1984/85 that made "emulator" so much more popular a term than before?

Aha! It was Apple's Macintosh release, which included an Apple II emulator built-in: https://books.google.com/books?id=Ti8EAAAAMBAJ&pg=PA13&lpg=P...

Re:Win32 Is the Only Stable ABI on Linux? by Wowfunhappy on Tuesday August 16, 2022 @02:30PM (#32486801)
I don't think it could have been just that? Usage peaked in 1984, but it rose quite steadily starting in the early 70s.

I do assume most of the increase in usage was related to computers/software, however. The timing is right.

Re:Win32 Is the Only Stable ABI on Linux? by littlestymaar on Monday August 15, 2022 @05:10PM (#32475427)
Saying wine is an emulator is as wrong as saying docker (on linux) is a virual machine, even though you could say it allows you to run a “virtual environment” in the same hand-wavy way you're using the word “emulating” in your sentence.
Re:Win32 Is the Only Stable ABI on Linux? by messe on Monday August 15, 2022 @07:07PM (#32476720)
How is it hand-wavy?

> emulate (transitive verb)

> To imitate the function of (another system), as by modifications to hardware or software that allow the imitating system to accept the same data, execute the same programs, and achieve the same results as the imitated system.

It's the exact same way its used by FreeBSD for its linux compatibility layer. It's the same way that Wine even uses in their FAQ.

> That said, Wine can be thought of as a Windows emulator in much the same way that Windows Vista can be thought of as a Windows XP emulator: both allow you to run the same applications by translating system calls in much the same way. Setting Wine to mimic Windows XP is not much different from setting Vista to launch an application in XP compatibility mode.

> [...]

> "Wine is not just an emulator" is more accurate. Thinking of Wine as just an emulator is really forgetting about the other things it is. Wine's "emulator" is really just a binary loader that allows Windows applications to interface with the Wine API replacement.

Re:Win32 Is the Only Stable ABI on Linux? by littlestymaar on Tuesday August 16, 2022 @03:09AM (#32480018)
The problem with this definition is that it's so broad it encompasses many many things that are never talked about as “emulators”. By this definition, Docker is an emulator, a VM is an emulator, an x86_64 CPU is an emulator (because it “emulates“, in the broadest sense, x86), a C compiler is an emulator (“emulating” the PDP-11 on modern hardware), etc.

Even your own quote reveals the issue:

> > That said, Wine can be thought of as a Windows emulator in much the same way that Windows Vista can be thought of as a Windows XP emulator

Yet nobody talks about the latest Windows as being an emulator for older windows …

In short, this definition is akin to defining humans as “bipeds without feather”, we definitely fit this definition but it's way too broad to be useful.

Re:Win32 Is the Only Stable ABI on Linux? by xeromal on Monday August 15, 2022 @03:09PM (#32473899)
I think most people interpret emulation as CPU emulation, not a compatibility layer otherwise .NET core is probably just one fat emulator.
Re:Win32 Is the Only Stable ABI on Linux? by deelowe on Monday August 15, 2022 @11:48PM (#32478995)
I hate to break to to those people, but that approach to emulation is only used for very old systems. Once you get into 32 bit, it’s mostly HLE.
Re:Win32 Is the Only Stable ABI on Linux? by lenkite on Monday August 15, 2022 @03:16PM (#32473992)
By that definition, wouldn't the whole of POSIX simply be an "emulation layer" ;-)
Re:Win32 Is the Only Stable ABI on Linux? by randyrand on Monday August 15, 2022 @03:24PM (#32474096)
It is not a "Windows Emulator", but it is certainly a "Windows Userspace Emulator"

Dolphin can run Wii binaries on top of Linux, by emulating a Wii.

Wine can run Windows binaries on top of Linux, by emulating Windows Userspace.

Why would one be an emulator, and the other is not?

Is there some distinction in what an emulator is that goes against common sense?

This reminds of the Transpiler/Compiler "debate." They're both still compilers. They're both emulators (VMs & Compatability Layers).

What the creators meant to say, IMO, is WINVM, "Wine is not a Virtual Machine".

Re:Win32 Is the Only Stable ABI on Linux? by extropy on Monday August 15, 2022 @05:01PM (#32475326)
Wine is more like a re-implementation of windows Userland using a different kernel (and graphics libraries).

Since the hardware is all the same, there is nothing to emulate or compile.

Or from the other direction - windows NT contains a re-implementation of the win16 API. Is that an emulator?

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:10PM (#32475420)
The creators also would not call virtual machines emulators because they don't translate CPU instructions, which is their narrow criteria for "emulator" that nobody else seems to use.
Re:Win32 Is the Only Stable ABI on Linux? by littlestymaar on Monday August 15, 2022 @05:20PM (#32475537)
> is their narrow criteria for "emulator" that nobody else seems to use.

Except the people actually writing or talking about real “emulators”. You know, for things like NES or Gameboy on x86, x86 on WASM, etc.

Sure, you can argue that VMs or Wine are emulators in the broadest sense, but then I could argue that your CPU is an emulator too since it doesn't really runs ASM, and with that very loose meaning almost anything computers related is an emulator. And in practice that's never what people mean when we're talking about an emulator. (Even this thread started with the wrong postulate that WINE must have incurred a performance penalty because the commented believed it was an emulator).

Re:Win32 Is the Only Stable ABI on Linux? by tzs on Tuesday August 16, 2022 @12:41AM (#32479266)
Wine-like things have long been called emulators.

When I was at Interactive Systems Corporation in the mid to late'80s and we were porting System V Release 3 to the 386 for AT&T, we wrote a Wine-like program called i286emul to run 286 System V Release 2 binaries. We and AT&T called it an emulator [1].

Later AT&T and Microsoft and Sun were involved in various projects to merge features from System V R3, BSD, SunOS, and XENIX into System V R4. As part of that they wanted a way to run 286 XENIX binaries, and Microsoft contracted with Interactive for that. We wrote another Wine-like program for that called x286emul. We and Microsoft called it an emulator too [2]

The XENIX emulator led to the stupidest meeting I have ever had to attend. Microsoft said there was an issue with the kernel that could not be resolved over the phone or email. So me and the other guy working on x286emul had to go to Microsoft for a meeting.

A flag needed to be added to the process data structure that would tell the kernel to make some slight changes to a system call or two, due to some differences between System V and XENIX. It was something like XENIX having separate error codes for some things System V rolled into one, or something like that.

The meeting was about how to set/clear that flag. Microsoft wanted to know if we preferred that it be done as a new flag to an existing system call or if a new system call should be added. I looked at the other guy from Interactive and said something like "A flag's fine for me", he said he agreed. We said "flag" to Microsoft, and the meeting ended.

That couldn't have been handled by phone or email?

[1] http://osr507doc.xinuos.com/man/html.C/i286emul.C.html

[2] http://osr507doc.xinuos.com/man/html.C/x286emul.C.html

Re:Win32 Is the Only Stable ABI on Linux? by littlestymaar on Tuesday August 16, 2022 @06:40AM (#32481196)
Things like Wine used to be called emulator, but this usage fell out of fashion a while ago. Now the word “emulator” has been generally refined to mean a (inherently slow) hardware emulator, and most of the compatibility layers explicitly market themselves as not being emulators: “Wine is not an emulator” “Rosetta isn't an emulator”, “x86 compatibility mode is not an emulator”, “virtualization isn't emulation”, and so on.

And even the starting comment on that thread seems to abide by this definition, as it complains about some (imaginary) emulation overhead when using Wine.

Languages changes overtime as usages evolve: when 80286 was released, the French word «baiser» still meant “to kiss” for most people, now it means “to fuck”.

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Tuesday August 16, 2022 @01:58PM (#32486399)
Every new user seems to think Wine is an emulator, and plenty still after, so I don't believe it's out of fashion. If they don't, it's only because someone tried to make them feel dumb about it with the WINE acronym, which seems to exist because so many people call it an emulator. Maybe if that many people are mistaken, they're actually right.

I especially don't know who's calling Rosetta 2 "not an emulator," given that it's software-emulating x86 arch and actually comes with a noticeable slowdown, not that emulators need to have big overhead.

Re:Win32 Is the Only Stable ABI on Linux? by littlestymaar on Wednesday August 17, 2022 @09:28AM (#32496079)
> Every new user seems to think Wine is an emulator

Most new linux users think that Linux=Ubuntu, does that make it correct? Beginners comes with misconceptions and are then being corrected during their learning process, that's how it works.

> Maybe if that many people are mistaken, they're actually right.

This argument is fabulous, it's like fractally broken, let's have a little bit of fun with it:

I'm pretty sure Wine is niche enough that there's more flat-earthers on this planet than people believing wine to be an emulator, does that number makes them right?

And how about the other people, the majority who know Wine isn't an emulator, would you say “maybe if that many people are correct they're actually wrong”?

> I especially don't know who's calling Rosetta 2 "not an emulator,"

Well, Apple.

You're correct though that Rosetta is arguably an emulator (except, a really sophisticated one, with hardware support, to makes it fast enough) unlike all the other (that interestingly enough you don't address) but if you read my comment again you'll see no contradiction (hint: the key word in that sentence is “market”).

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:42PM (#32475797)
Yes, those people are writing hardware emulators. Doesn't mean they're the only "real" kind.

As for my Intel CPU, it isn't pretending to be another kind of CPU. Intel makes a leading implementation of x86. Wine follows Microsoft's Windows implementation and translates to Linux calls, and the entire point is so you can run programs intended for Windows on Linux instead. You can get relative about it, but it's not really, they're clearly different. Either way, doesn't support WINE's acronym.

Re:Win32 Is the Only Stable ABI on Linux? by littlestymaar on Tuesday August 16, 2022 @02:48AM (#32479891)
> Yes, those people are writing hardware emulators. Doesn't mean they're the only "real" kind.

They're the only kind that doesn't involve a super broad definition of what the word “emulation” means (so broad that most computing actually fits in this definition).

> As for my Intel CPU, it isn't pretending to be another kind of CPU.

Until one day you realize that you can run an x86 program on a 64 bit CPU (but fortunately, this isn't done through “emulation” proper either).

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Tuesday August 16, 2022 @09:41PM (#32491296)
> Until one day you realize that you can run an x86 program on a 64 bit CPU (but fortunately, this isn't done through “emulation” proper either).

It's reasonable to call that emulation if there's a separate layer for it translating to/from x86-64, rather than the hardware specifically supporting -32. My CPU isn't doing that cause I'm not running 32-bit software on macOS.

Re:Win32 Is the Only Stable ABI on Linux? by sharpneli on Tuesday August 16, 2022 @01:38AM (#32479530)
So AMD CPU’s are emulators then?
Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Tuesday August 16, 2022 @01:51PM (#32486314)
No they're not.
Re:Win32 Is the Only Stable ABI on Linux? by yjftsjthsd-h on Monday August 15, 2022 @06:07PM (#32476095)
The Wii emulator is emulating the whole system including the CPU; WINE describes itself as not an emulator specifically because it's not doing anything about the CPU (hence not working on ARM Linux without extra work).

(I'm not 100% sold on this; I think "CPU emulator" and "ABI emulator" are both reasonable descriptions, albeit of different things, but that's the distinction that the WINE folks are making.)

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @04:55PM (#32475249)
By any well-known definition of an emulator, like https://en.wikipedia.org/wiki/Emulator, Wine is an emulator. It's emulating a Windows system to Windows programs. It's not emulating hardware is all. That WINE acronym, other than being a slightly annoying way to correct people, is wrong. Reminds me of Jimmy Neutron smartly calling table salt "sodium chloride" when really he's less correct than the layman he's talking to, since there are additives.

WINE should simply stand for WINdows Emulator.

Re:Win32 Is the Only Stable ABI on Linux? by dwaite on Monday August 15, 2022 @11:38PM (#32478943)
According to the Wikipedia link given, emulation is for host and target computer systems. In a computing context, 'emulate' is not a synonym for 'impersonate' - it describes an approach for a goal.

Wine does not aim to emulate a "Windows computer system" (aka a machine which booted into Windows). For instance, it doesn't allow one to run windows device drivers. WINE is taking an approach that ultimately means it is doing a subset of what is possible with full emulation (hopefully in return going much faster).

To put it another way, a mobile phone app with a HP49 interface that understands RPN is not necessarily a calculator emulator. It could just be an app that draws a calculator interface and understands RPN and some drawing commands. It doesn't necessarily have the capability to run firmwares or user binaries written for the Saturn processor.

Re:Win32 Is the Only Stable ABI on Linux? by tzs on Monday August 15, 2022 @11:31PM (#32478898)
The people who wrote Wine thought it was an emulator. Their first idea for a name was "winemu" but they didn't like that, then thought to shorten it to "wine".

The "Wine is not an emulator" suggestion was first made in 1993, not because Wine is not an emulator but because there was concern that "Windows Emulator" might run into trademark problems.

Eventually that was accepted as an alternative meaning to the name. The Wine FAQ up until late 1997 said "The word Wine stands for one of two things: WINdows Emulator, or Wine Is Not an Emulator. Both are right. Use whichever one you like best".

The release notes called it an emulator up through release 981108: "The is release 981108 of Wine, the MS Windows emulator".

The next release changed that to "This is release 981211 of Wine, free implementation of Windows on Unix".

As far as I've been able to tell, there were two reasons they stopped saying it was an emulator.

First, there were two ways you could use it. You could use it the original way, as a Windows emulator on Unix to run Windows binaries. But if you had the source to a Windows program you could you could compile that source on Unix and link with libraries from Wine. That would give you a real native Unix binary. In essence this was using Wine as Unix app framework.

Second most people who would be likely to use Wine had probably only ever encountered emulators before that were emulating hardware. For example there was Virtual PC from Connectix for Mac, which came out in 1997, and there were emulators on Linux for various old 8-bit systems such as NES and Apple II.

Those emulators were doing CPU emulation and that was not fast in those days. It really only worked acceptably well if you were emulating hardware that had been a couple of orders of magnitude slower than your current computer.

Continuing to say that Wine is an emulator would likely cause many people to think it must be slow too and so skip it.

Re:Win32 Is the Only Stable ABI on Linux? by messe on Monday August 15, 2022 @02:53PM (#32473721)
One might say it emulates windows library and system calls.
Re:Win32 Is the Only Stable ABI on Linux? by rascul on Monday August 15, 2022 @05:03PM (#32475340)
Or they might say that it translates windows library and system calls.
Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:08PM (#32475402)
Same way a CPU emulator translates instructions.
Re:Win32 Is the Only Stable ABI on Linux? by tmccrary55 on Monday August 15, 2022 @03:01PM (#32473803)
Much like one could say it internets Windows userland and system calls with Linux and its userland.
Re:Win32 Is the Only Stable ABI on Linux? by messe on Monday August 15, 2022 @03:09PM (#32473900)
No, not at all like that. One slight difference is that what you said is complete nonsense.

I'm using an accepted definition of emulation:

> emulate (transitive verb)

> To imitate the function of (another system), as by modifications to hardware or software that allow the imitating system to accept the same data, execute the same programs, and achieve the same results as the imitated system.

This usage is pretty common, for example FreeBSD has a linux emulation layer that takes Linux syscalls and translates them into FreeBSD syscalls. WINE saying it stands for "Wine Is Not an Emulator" is irrelevant to the fact that it is blatantly is one.

Re:Win32 Is the Only Stable ABI on Linux? by tmccrary55 on Wednesday August 17, 2022 @09:53AM (#32496401)
Yes, nonsense was the point. Congrats.
Re:Win32 Is the Only Stable ABI on Linux? by deelowe on Monday August 15, 2022 @02:59PM (#32473778)
A lot of high level emulation works this way as well. And, similarly, FPGA cores often aren't "simulating game hardware" either.
Re:Win32 Is the Only Stable ABI on Linux? by DiggyJohnson on Monday August 15, 2022 @03:08PM (#32473885)
Surely you see that this is a slight semantic distinction, unless you consider Wine apps to be Linux native?
Re:Win32 Is the Only Stable ABI on Linux? by mort96 on Monday August 15, 2022 @03:05PM (#32473849)
Have you actually tried to run the Windows version of Factorio through Proton and experienced slowdowns? In my experience, WINE doesn't result in a noticeable slowdown compared to running on Windows natively (without "emulationware" as you call it), unless there are issues related to graphics API translation which is a separate topic.
Re:Win32 Is the Only Stable ABI on Linux? by sirn on Monday August 15, 2022 @03:36PM (#32474274)
I believe OP is referring to the fact Factorio has some optimization on Linux such as using fork() to autosave (which is copy-on-write unlike its Windows counterpart), which result in zero-stuttering during auto-save for large-SPM bases.
Re:Win32 Is the Only Stable ABI on Linux? by Kaze404 on Monday August 15, 2022 @03:10PM (#32473907)
I’m a huge fan of Wine, but there’s no reason to run Factorio under it. The native Linux version works flawlessly from my experience, and I’m even using a distro where problems with native binaries are common.
Re:Win32 Is the Only Stable ABI on Linux? by yellowapple on Monday August 15, 2022 @08:39PM (#32477745)
> WINE doesn't result in a noticeable slowdown compared to running on Windows natively (without "emulationware" as you call it)

That says very little about whether there'd be a noticeable slowdown compared to running a Linux-native version on Linux natively, though.

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:12PM (#32475443)
> unless there are issues related to graphics API translation

But there almost always are problems in that area. I've never had a game run with the same FPS and stability in Wine vs natively in Windows.

Re:Win32 Is the Only Stable ABI on Linux? by mort96 on Monday August 15, 2022 @05:16PM (#32475483)
My point was it's not inherent to WINE. There's a lot of Windows games which support Vulkan or OpenGL, those work excellently.
Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @06:06PM (#32476084)
Csgo is OpenGL and doesn't work excellently in my experience, but yeah, in theory they should.
Re:Win32 Is the Only Stable ABI on Linux? by account42 on Tuesday August 16, 2022 @10:52AM (#32483542)
CS:GO is Direct3Dish with an OpenGL shim (or alternatively with a better Vulkan shim now).
Re:Win32 Is the Only Stable ABI on Linux? by littlestymaar on Monday August 15, 2022 @05:26PM (#32475602)
Exactly the same fps, unlikely.

But phoronix has tons of benchmarks showing that WINE/proton are in the same ballpark as the native windows version, sometimes a bit slower but as many times a bit faster as well.

Re:Win32 Is the Only Stable ABI on Linux? by jbverschoor on Monday August 15, 2022 @02:14PM (#32473269)
Wine Is Not an Emulator
Re:Win32 Is the Only Stable ABI on Linux? by delusional on Monday August 15, 2022 @02:53PM (#32473714)
Sure, but it's also WINdows Emulator
Re:Win32 Is the Only Stable ABI on Linux? by ink_13 on Monday August 15, 2022 @03:01PM (#32473798)
No, it's not, because it's not a emulator
Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:03PM (#32475345)
"In computing, an emulator is hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest)."

Sounds like Wine.

Re:Win32 Is the Only Stable ABI on Linux? by wvenable on Monday August 15, 2022 @05:35PM (#32475709)
Wine isn't emulating a computer. It's another implementation of the Win32 API.

Just like Linux isn't a Unix emulator.

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:51PM (#32475904)
There is a Linux emulator for Unix (namely FreeBSD), and it's one of the first examples in the Wikipedia article on emulation. https://www.openbsd.org/60.html shows OpenBSD removing "Linux emulation."

Linux was never designed to be the same as Unix, just similar. But it's more popular now, so Unix users found utility in pretending to run Linux.

Re:Win32 Is the Only Stable ABI on Linux? by jbverschoor on Tuesday August 16, 2022 @04:54AM (#32480640)
Well you know.. I guess I'm OG when it comes to naming.
Re:Win32 Is the Only Stable ABI on Linux? by bombcar on Monday August 15, 2022 @02:26PM (#32473411)
I believe it now actually is again, or was, or something. It's a question when dealing with Win16 and now Win32 (Windows-on-Windows).
Re:Win32 Is the Only Stable ABI on Linux? by caffed on Monday August 15, 2022 @02:21PM (#32473355)
Ha Perfect!

Yes, wine is an Windows binary executor with library translation.

https://wiki.winehq.org/FAQ#Is_Wine_an_emulator.3F_There_see...

Re:Win32 Is the Only Stable ABI on Linux? by gorkish on Monday August 15, 2022 @04:57PM (#32475282)
Except sometimes on aarch64
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @02:22PM (#32473372)
I've been using wine and glibc for almost 20 years now and wine is waaaay more unstable than glibc.

Wine is nice until you try to play with sims3 after updating wine. Every new release of wine breaks it.

Please use wine for more than a few months before commenting on how good it is.

It's normal that every new release some game stops working. Which is why steam offers the option to choose which proton version to use. If they all worked great one could just stick to the last.

Re:Win32 Is the Only Stable ABI on Linux? by noirbot on Monday August 15, 2022 @02:31PM (#32473476)
As someone who's been gaming on Proton or Lutris + Raw Wine, I'm not sure I agree. I regularly update Proton or Wine without seeing major issues or regressions. It certainly happens sometimes, but I'm not sure it's any worse of a "version binding" problem than a lot of stuff in Linux is. Sure, sometimes you have to specifically use an older version, but getting "native" linux games to work on different GPU architectures or distros is a mess as well, and often involves pinning drivers or dependencies. I've had games not run on my Fedora laptop that run fine on my Ubuntu desktop, but for the most part, Wine or Proton installed things work the same across Linux installs, and often with better performance somehow.
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @04:35PM (#32475024)
I specifically mentioned the sims3. That one is constantly broken by updates.

Also age of empires2 hd, after working fine with wine/proton for a decade, doesn't work with the latest proton for me.

Re:Win32 Is the Only Stable ABI on Linux? by noirbot on Monday August 15, 2022 @05:19PM (#32475518)
Sure, I'm not contesting that Wine breaks things with updates. So does a lot of stuff on Linux. The amount of times I run an apt update and some config file is now obsolete or just gone is a lot more often than I'd like.

The advantage is that the Wine Ecosystem seems to realize this more than the Linux ecosystem at large, and specifically makes it easy to pin versions and never update. If it worked, why update? Or why not roll back? I'm already used to having to do that with every other part of linux gaming including my graphics drivers...

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:55PM (#32475959)
> If it worked, why update?

For multiplayer games, which nowadays get updated every day or something, and old versions are incompatible.

Re:Win32 Is the Only Stable ABI on Linux? by noirbot on Monday August 15, 2022 @08:24PM (#32477608)
I'm not asking why you'd update the game, I'm asking why you'd update Wine if your game "is constantly broken by updates".

It's one thing if the game keeps updating and then you have to hope it works on the same version of Wine or re-find which version of Wine the new version of the game works with, but presumably that's a problem that the OP isn't happening with The Sims 3.

If the game works on a specific version of Wine, why would you mess with it? Or if you are, then treat it like any major OS update and back up/be ready to roll back if it breaks something. Wine is especially good at letting you make multiple sub-environments, so it's not like your whole system has to be on the same version of Wine.

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @09:28PM (#32478182)
You update Wine to fix game A, and it breaks game B. Or something small is broken in a game, so you try to update to fix it.
Re:Win32 Is the Only Stable ABI on Linux? by noirbot on Monday August 15, 2022 @10:00PM (#32478394)
That's not how Wine or Proton works in my experience. As OP said, Steam and Lutris both have tooling to easily set up Wine prefixes per-game, including specifying specific versions, including custom compilations like GloriousEggroll's builds. In general, you can flip between versions comfortably and easily, often without having to do anything more than changing a value in a GUI.

I could see it being an issue if you were managing your Wine prefixes by hand, but that's like deciding to install your OS dependencies without apt or dnf and then complaining that Linux has bad packages because you chose not to use a package manager.

I literally play multiple online games in Wine/Proton on a daily basis, including Path of Exile, FF14, WoW, and Payday 2. The only one I've had major issues outside of general performance with is FF14 and that's because it integrates closely with Steam and their launcher uses a super outdated version of .NET that Wine hasn't worked out how to emulate. It's been broken for years, and is a known and documented issue with Wine.

Re:Win32 Is the Only Stable ABI on Linux? by hot_gril on Monday August 15, 2022 @05:53PM (#32475929)
And Aoe2 HD broke with every game update in Wine. I had to keep patching in different DLLs. Gave up one day. It's worse than the original game anyway.
Re:Win32 Is the Only Stable ABI on Linux? by andai on Monday August 15, 2022 @02:52PM (#32473703)
I used to say that Wine makes Linux tolerable, but after using it for several years I've concluded that Wine makes Windows tolerable.
Re:Win32 Is the Only Stable ABI on Linux? by pongo1231 on Monday August 15, 2022 @02:35PM (#32473517)
Absolute opposite experience for me. The native versions of Half-Life, Cities: Skylines and a bunch of other games refuse to start up at all for me for a few years now. Meanwhile I've been on the bleeding edge of Proton and I can count the number of breakages with my sizeable collection of working Windows games within the last couple of years on one hand. It's been a fantastic experience for me with Proton.
Re:Win32 Is the Only Stable ABI on Linux? by edflsafoiewq on Monday August 15, 2022 @03:29PM (#32474172)
Mind saying what the error is? Linker problem?
Re:Win32 Is the Only Stable ABI on Linux? by pongo1231 on Monday August 15, 2022 @03:44PM (#32474383)
Not sure if I'm honest. Starting up steam through the terminal and launching the game doesn't give me anything indicating the reason in the logs, which is weird. I'm using Arch and tried both steam and steam-runtime already.
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @04:45PM (#32475125)
It works fine for me. If it was something with glibc it wouldn't work for me.
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @04:44PM (#32475113)
Half life works fine for me on latest kernel, latest glibc.

Probably you have different unrelated issues.

Re:Win32 Is the Only Stable ABI on Linux? by Kaze404 on Monday August 15, 2022 @03:12PM (#32473937)
> Please use wine for more than a few months before commenting on how good it is.

I’ve used it for several years, and even to play Sims 2 from time to time, and while I’ve had issues the experience only gets better over time. It’s gotten to the point where I can confidently install any game on my Steam library and expect it to run. And be right most of the time.

Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @04:36PM (#32475032)
But not sims 3

Age of empires DE will not work with proton. And it's not really a top notch graphics game.

Re:Win32 Is the Only Stable ABI on Linux? by Kaze404 on Monday August 15, 2022 @06:30PM (#32476330)
I'm not entirely sure what the point of updating Wine is in the first place. If you have a version that works with the game you're trying to play, why not pin it? Things definitely tend to break with Wine upgrades by nature of what Wine does, that's why it's common for people to have multiple versions of Wine installed.
Re:Win32 Is the Only Stable ABI on Linux? by yellowapple on Monday August 15, 2022 @08:46PM (#32477795)
Y'all sure you don't have Sims 2 and Sims 3 mixed up? Sims 3 is rated Platinum on AppDB / Gold on ProtonDB (and I've ran it on Proton on multiple machines and distros without issue), whereas Sims 2 had a Garbage rating on AppDB for the longest time (apparently the Origin version is Silver now, but still).
Re:Win32 Is the Only Stable ABI on Linux? by Kaze404 on Tuesday August 16, 2022 @08:27PM (#32490852)
I am most definitely talking about Sims 2. I play the Origin version through Lutris, from when they gave it away for free.
Re:Win32 Is the Only Stable ABI on Linux? by a9h74j on Monday August 15, 2022 @05:20PM (#32475539)
> Every new release of wine breaks it.

Is there any way to easily choose which Wine version you use for compatiblity? Multiple Wine versions without VMs etc?

Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @05:25PM (#32475599)
Steam lets you do that, but I think it's a global setting and not per game.

Debian normally keeps 2 versions of wine in the repositories, but if none of those 2 work, you're out of luck.

Re:Win32 Is the Only Stable ABI on Linux? by Kaze404 on Monday August 15, 2022 @06:31PM (#32476342)
> if none of those 2 work, you're out of luck

That's not true. There are multiple tools for managing multiple versions of Wine and Wine-related tools for gaming, the oldest one being PlayOnLinux. Lutris is the most widely used one, and works great in my experience.

Re:Win32 Is the Only Stable ABI on Linux? by kupiakos on Monday August 15, 2022 @08:03PM (#32477426)
This is wrong. Steam lets you choose a Proton (Wine) version per-game.
Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Monday August 15, 2022 @02:37PM (#32473542)
> Developers natively porting to linux seem to be wasting their time.

Initial port of Valve's source engine ran 20% faster without any special optimizations back in the day. So I don't see why the effort is wasted.

Re:Win32 Is the Only Stable ABI on Linux? by DiggyJohnson on Monday August 15, 2022 @03:10PM (#32473912)
Isn’t part of the original point not just that Wine is a perfect (dubious, imo) compatibility layer, but that distributing a native port is cumbersome on the Linux ecosystem?
Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Monday August 15, 2022 @04:09PM (#32474743)
I don't buy the cumbersomeness argument for Linux games. A lot of games in the past and today has been distributed as Linux binaries. Most famously Quake and Unreal Tournament series had native Linux binaries on disks and they worked well until I migrated to 64 bit distributions. I'm sure they'll work equally fine if I multi-arch my installations.

Many of the games bundled by HumbleBundle as downloadable setups have Linux binaries. Some are re-built as 64 bit binaries and updated long after the bundle has closed.

I still play Darwinia on my 64 bit Linux system occasionally.

Most of these games are distributed as .tar.gz archives, too.

I can accept and respect not creating Linux builds as engineering (using Windows only APIs, libraries, etc.) and business (not enough market) decisions, but cumbersomeness is not an excuse, it's a result of the other related choices.

In my book, if a company doesn't want to support Linux, they can tell it bluntly, but telling "we want to, but it's hard, and this is Linux's problem" doesn't sound sincere even remotely.

Re:Win32 Is the Only Stable ABI on Linux? by nomel on Monday August 15, 2022 @05:07PM (#32475381)
> have Linux binaries

In January, HumlbeBundle removed Linux support from their Trove [1].

HumbleBundle support points out that it's not simple [2]:

> While it is entirely possible to install and run games and programs from the Linux GUI, implementation across distros can be wildly different. For this reason, this guide will explain how to install and launch games using the Terminal.

And, usually, only a small list of distributions are supported, like Ubuntu or Mint. For example, Bundle 9 [3].

All of the above seems to supports the "cumbersomeness argument for Linux games".

1. https://kotaku.com/latest-humble-bundle-change-leaves-mac-li...

2. https://support.humblebundle.com/hc/en-us/articles/219377857...

3. https://support.humblebundle.com/hc/en-us/articles/115011722...

Re:Win32 Is the Only Stable ABI on Linux? by account42 on Tuesday August 16, 2022 @11:04AM (#32483742)
Humbe Bundle has been focusing on profit only and ignoring their original values ever since it has been sold to IGN. It's not surprising that they would cut support for something only a small percentage of their users use (remember, they are primarily a Steam key reseller now). That has nothing to do with Linux support being cumbersome just with any OS support benefiting from economies of scale that makes minority platforms less lucrative.
Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Tuesday August 16, 2022 @12:53PM (#32485514)
The irony is, Linux users Were the highest paying customers before the transfer to IGN.

Their contribution easily made up to half of all sales money wise.

Re:Win32 Is the Only Stable ABI on Linux? by nomel on Tuesday August 16, 2022 @02:12PM (#32486572)
Reference? For Steam, Linux gaming just broke 1% this year [1]. I don't see how that math could work.

1. https://www.phoronix.com/news/Steam-Survey-January-2022

Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Tuesday August 16, 2022 @02:39PM (#32486925)
When they were publishing pie charts and made you fill a little questionnaire every time you buy a bundle, the stats showed that Linux users always paid a little more than the average, and this exponentially added up causing Linux users to pay a much greater sum at the end of the bundle, in terms of total money spent.

I'm not sure I can find the charts now (they were live and per bundle), but I track Humble since day 1. I remember it well.

Re:Win32 Is the Only Stable ABI on Linux? by ds- on Tuesday August 16, 2022 @03:25PM (#32487568)
Some of the earlier Humble Bundles had Linux users contributing about ¼ of the funds but I don't think it was ever higher than that. [0] These early bundles were also before Steam for Linux was a thing so were a major source of new Linux ports (relative to the number of available native games).

[0] https://cheesetalks.net/humble/

Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Monday August 15, 2022 @05:24PM (#32475575)
> In January, HumlbeBundle removed Linux support from their Trove [1].

Yet, I have downloaded all new builds for a couple of games for amd64 from one of their oldest bundles.

It's not as clear cut as it seems.

Re:Win32 Is the Only Stable ABI on Linux? by ece on Tuesday August 16, 2022 @06:13AM (#32481047)
> I can accept and respect not creating Linux builds as engineering (using Windows only APIs, libraries, etc.) and business (not enough market) decisions..

Yep, and if somebody made your game work under Wine/Proton or Bottles/Heroic, just pay them to support it or create an AppImage/Flatpak and that's the easiest way to get compatibility.

Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @04:40PM (#32475068)
Basically game developers never once booted linux.

They'd need to do some learning and don't want to. They might have superficially read something about distributions and think that a software cannot run on two different distributions.

I've read this excuse time and time again. And saying it tells me that the person never actually tried to compile anything on linux.

Re:Win32 Is the Only Stable ABI on Linux? by pjmlp on Monday August 15, 2022 @05:15PM (#32475482)
On the contrary, they are more that used to POSIX stacks on macOS, iOS, PlayStation, Nintendo, Android, ChromeOS....

Yet porting to GNU/Linux is not worthwhile.

Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Tuesday August 16, 2022 @02:44AM (#32479871)
I kindly disagree with you. Most of the platform provided by a console is nicely abstracted with SDKs. The code they touch is the SDK which provides direct, and tailored access to utilities and capabilities provided by the platform itself.

Even the Linux binaries of then AAA titles are ported by some talented developers, sometimes out of the studio.

I remember porting of Unreal Tournament to Linux was an official effort, but a work of a single guy.

So, I don't expect studio-wide POSIX knowledge on game studios.

Re:Win32 Is the Only Stable ABI on Linux? by pjmlp on Tuesday August 16, 2022 @05:50AM (#32480905)
The point was that even with lower barriers there is no economic interest in doing the work.
Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Tuesday August 16, 2022 @06:32AM (#32481154)
So, it's as I said. The hurdle is not technical. The studios just don't prefer, and I'm OK with that.
Re:Win32 Is the Only Stable ABI on Linux? by pjmlp on Tuesday August 16, 2022 @06:40AM (#32481199)
It is hard to prefer something that usually don't provide profits.
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Tuesday August 16, 2022 @06:22PM (#32489744)
Are you really surprised the consumer market isn't buying a product that doesn't exist?
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Monday August 15, 2022 @05:24PM (#32475572)
macos? The same OS which decided no more 32bit binaries because of reasons? The same OS which decided no more opengl because of reasons? That OS?

No gamer uses that OS. If you think it's hard on linux, it's much harder on osx.

android is not posix, that is completely hidden from the developer.

chromeos is just linux + google tracking.

consoles are a complete separate world.

Please let's try to have a serious conversation. Game developers that use frameworks such as unreal are often unaware of how the underlying system works.

Re:Win32 Is the Only Stable ABI on Linux? by nemothekid on Tuesday August 16, 2022 @12:52AM (#32479318)
>No gamer uses that OS. If you think it's hard on linux, it's much harder on osx.

You are conflating "gamer" with "game developer". Don't forget that millions of game devs successfully build and launch games for iOS.

>consoles are a complete separate world.

The PS4 is literally FreeBSD.

Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Tuesday August 16, 2022 @02:46AM (#32479880)
> Don't forget that millions of game devs successfully build and launch games for iOS.

With XCode, and tons of visual tools which abstract the OS and device to a great extent, making it almost invisible.

> The PS4 is literally FreeBSD.

Which is also shipped with nice SDKs for everything and anyhting related to PS4.

Re:Win32 Is the Only Stable ABI on Linux? by pjmlp on Tuesday August 16, 2022 @05:50AM (#32480912)
Same can be applied to GNU/Linux and most studios just don't care.
Re:Win32 Is the Only Stable ABI on Linux? by bayindirh on Tuesday August 16, 2022 @06:34AM (#32481173)
Yeah, instead of SDL + OpenGL/Vulkan, game studios use DirectX + NVIDIA Game Works, which provides a nice, cozy walled garden and vendor lock-in.

Win-Win for Microsoft and NVIDIA.

Again, it's just market powers and path of least resistance. It's not technical.

Re:Win32 Is the Only Stable ABI on Linux? by pjmlp on Tuesday August 16, 2022 @06:39AM (#32481195)
Of course it is not technical, there is no money to be made for most game studios.
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Tuesday August 16, 2022 @02:35AM (#32479823)
You want me to believe on ios it never happens that apple breaks support for older software Like they do all the time on computers?
Re:Win32 Is the Only Stable ABI on Linux? by pjmlp on Tuesday August 16, 2022 @05:51AM (#32480921)
It happens, but there is an economic advantage in putting up with such breakages, while on GNU/Linux systems that money bag isn't there to keep game studios interested other than testing waters and running away afterwards.
Re:Win32 Is the Only Stable ABI on Linux? by LtWorf on Tuesday August 16, 2022 @06:23PM (#32489758)
Yes of course there is: reselling the same game over and over.
Re:Win32 Is the Only Stable ABI on Linux? by pjmlp on Tuesday August 16, 2022 @01:42AM (#32479551)
Game developers...
Re:Win32 Is the Only Stable ABI on Linux? by dleslie on Monday August 15, 2022 @02:02PM (#32473104)
FWIW, targeting proton is likely the best platform target for future Windows compatibility too.
Re:Win32 Is the Only Stable ABI on Linux? by yellowapple on Monday August 15, 2022 @08:36PM (#32477710)
There are plenty of examples of things being the other way around. For example, heavily modding Kerbal Space Program basically necessitated running Linux because that's the only platform that had a native 64-bit build that was even remotely stable (this has since been fixed, but for the longest time the 64-bit Windows version was horrendously broken) and therefore the only platform wherein a long mod list wouldn't rapidly blow through the 32-bit application RAM ceiling.
Re:Win32 Is the Only Stable ABI on Linux? by matheusmoreira on Monday August 15, 2022 @10:02PM (#32478404)
This wasn't a problem with the game itself. It's their anti-cheat malware that stopped working. On Windows these things are implemented as kernel modules designed to own our computers and take away our control so we can't cheat at video games.

It's always great when stuff like that breaks on Linux. I'm of the opinion it should be impossible for them to even implement this stuff on Linux but broken and ineffective is good too.