Steam running in Haiku

Really want to use steam in haiku, that be great.
can i run WINE with steam in haiku? does it work?

1 Like

There is no Wine for Haiku yet, and no 3d acceleration to play AAA games. Please contact the Wine project and/or Valve to make their software available for Haiku.

2 Likes

Wine can’t be ported for now, because Haiku kernel is missing some features needed for Wine:

  • #7502 (Windows use FS register to store thread information block (TIB) and compiler generates code that directly use that register, Haiku also use FS register causing conflict)
  • #9205 (many Windows applications expect to be loaded to 0x400000 and have no relocations, some other memory ranges should be reserved)
  • #7867 Need to provide all CPU registers to signal handler
3 Likes

This is not the first time a newcomer asks here about wine/steam, i assume they want just a minimal OS for their games with the hope it can give some FPS boost in their games. I assume this is the case here too.

2 Likes

yes, hope wine is usable in haiku in the future

I think this is not an issue on x86_64, as we use the same ABI as Linux/BSD/etc., so whatever applies there should apply for us.

This is also not an issue as we use the same address space layout as Linux/BSD/etc. on x86_64.

I think this one is indeed still unsolved but I could be wrong.

1 Like

But issue on x86, there are a lot of 32 bit only Windows software.

1 Like

Yes, but at least Wine can be ported before we worry about that.

2 Likes

On 64 bits GS register is used so problem is the same. I tried to build 64 bit Wine and it crashed at start.

https://en.wikipedia.org/wiki/Win32_Thread_Information_Block:

Through the pointer to the PEB one can obtain access to the import tables (IAT), process startup arguments, image name, etc. It is accessed from the FS segment register on 32-bit Windows and GS on 64-bit Windows.

Doesn’t glibc also use GS, for basically the same purpose we do? So what do they do?

x86_64 Haiku use FS for TLS (https://xref.landonf.org/source/xref/haiku/src/system/libroot/os/arch/x86_64/tls.cpp#35) while Windows use GS so it is possible to avoid collision, but LDT implementation is still needed. x86_64 Linux don’t use GS.

2 Likes