Team Fortress 2 Forum

This is a community forum and not official technical support. — If you need official support: Contact Us

The following comments are owned by whoever posted them. We are not responsible for them in any way.

Back to Threads Reply to Thread

Steam Ingame overlay

Im copying and pasting in this forum to see if anyone knows how to make it work, I didnt get a reply in the steam gui forums.

In multiplayer valve [counter strike source, tf2, etc] games you can bring up an overlay with your friends and chant in game [Steam Community]. For some reason it does not work for me at all, any idea how to make it work, and I know you can do this stuff when its in windowed, but you get better framerates in fullscreen :(

This feature of Steam is not working CrossOver. I don't know why. I had suspected it's because Steam uses the Windows function RegisterHotKey, which is not implemented, but some brief investigation disproved that theory. 😕

Is there any work going towards this in 7.0?

I'd also like to know if this will be fixed soon.

We cannot fix this problem, Valve has to do that.

Steam injects a DLL into the new application's process which adds a few function hooks into Windows API code. It does that by modifying the bytecode of the functions in memory. Unfortunately Steam is only prepared for opcodes used by the Microsoft Visual C++ compiler. We compile our Mac/Linux product with GCC, the standard MacOS and Linux compiler. It produces different opcodes than MSVC. They confuse Steam and it aborts adding the hooks and disables the overlay.

We are in contact with Valve on this problem.

Stefan Dösinger wrote:

We cannot fix this problem, Valve has to do that.

Steam injects a DLL into the new application's process which adds a
few function hooks into Windows API code. It does that by modifying
the bytecode of the functions in memory. Unfortunately Steam is only
prepared for opcodes used by the Microsoft Visual C++ compiler. We
compile our Mac/Linux product with GCC, the standard MacOS and Linux
compiler. It produces different opcodes than MSVC. They confuse
Steam and it aborts adding the hooks and disables the overlay.

We are in contact with Valve on this problem.

It's been a month, does Valve plan on cooperating?

Isn't it possible to implement those function as naked and implement the exactly same sequence of opcode to help steam.

If you know which function are used, I can give it a try.

In theory yes, although there are 2 issues:

-> The code sequences copied might mess around with the parameters and internal data structures in a bad way
-> I don't know if deliberately copying opcode sequences from Windows is legal
-> Copying a few opcodes, then calling into another function frowns up some copy protection systems, e.g. SafeDisk 2.x. SafeDisk refuses to run the game if a certain amount of Win32 API functions have CALL instructions within the first X instructions. For that reason, SafeDisk doesn't work if Wine was compiled with certain gcc versions.

All in all its probably more trouble than its worth.
/me takes a mental note to bug Valve more about this issue

Stefan Dösinger wrote:

All in all its probably more trouble than its worth.

Not sure how this comment is to be read. If you think, it is easier to get Valve to fix this issue, sure that'd be better if they actually do fix it.

However, if you think that the ingame steam community overlay is not so important, then I have to disagree. I use the overlay under windows very frequently (eg, to organise scrims while playing) and it is very inconvenient that it doesn't work in MacOS.

Manuel Chakravarty wrote:

Not sure how this comment is to be read. If you think, it is easier
to get Valve to fix this issue, sure that'd be better if they
actually do fix it.

This is the way I meant it.

I believe that Steam is based on a windows version of flash which isn't accessible on a mac. I too can not access Steam in-game community overlay. Its very frustrating when you wish to join a group of friends in one game but you can seem to reach them. Thanks for you concern!

did they fix it allready. cant be such a big problem if they really want to fix it i gueass.

Well looks like its time to get it working because Valve seems to start using same tech for their in-game menus and HUDs (see L4D).

/me is still hoping Valve fixes this some day(they know about the problem)

There may be an opening for us to work around this issue. I hacked our compilation script to pad every function with 32 NO-OP instructions before doing anything else, this got the overlay working somewhat(other problems remain still). However, those 32 NOPs are 32 reasons not to do this, because they just burn CPU time. The other potential hope is to compile our DLLs with Microsoft Visual Studio instead of the Mac/Linux compiler. But then you'd need crossover to load crossover :-/

I lifted this off the TF2 blog. It's important.


We've got an update that should be out tomorrow with a bunch of bug & exploit fixes. Later this week we hope to have another update out that changes the way we store your unlockable items. You shouldn't notice much difference, other than if you play on multiple computers we'll now propagate your item choices. You can think of that update as the one that moves your inventory into the Steam Cloud. Once that's out of the way, we'll be able to ship the Scout pack.

http://www.tf2.com/

We desperately NEED a solution for this :/

1 to 16 of 16

CrossOver Forums: the place to discuss running Windows applications on Mac and Linux

CodeWeavers or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in our Privacy Policy. You accept the use of cookies or other identifiers by clicking the Acknowledge button.
Please Wait...
eyJjb3VudHJ5IjoiVVMiLCJsYW5nIjoiZW4iLCJjYXJ0IjowLCJ0enMiOi02LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNzM5NTcwNzYwLCJjc3JmX3Rva2VuIjoidGdwYVlxeVBaOU1wQmZDVyIsImdkcHIiOjB9