dafzor/bnetlauncher

Destiny 2 Support

ShizCalev opened this issue · 30 comments

If you open the game through steam while the battle.net app is opened, you will lose the In-game status when bnetlauncher exits. However, the status is retained properly if you launch the game through steam with the battle.net app initially closed.

Logs;

Showing ingame status properly;
https://pastebin.com/jCrD6yFf

Ingame status lost;
https://pastebin.com/1Dvmw8eX

In both cases, the ingame overlay is working properly ingame. Just the status message on steam is cleared out.

Can also reproduce it on my system, but don't know what Destiny 2 is doing different that breaks Steam in-game status. I'll see what I can do to find a solution.

Released a new version that works around the issue but doesn't really fixes it. Hope a proper solution will show up by Destiny 2 release.

Leaving this to keep the details in record.

Steam uses environment variables to keep track of the overlay and play time. By default applications inherit the environment variables of parent process, which in this case would be bnetlauncher.

When launching blizzard games everything works as expected and closing bnetlauncher has no adverse effect. Destiny 2 however seems to clear it's environment variables at launch, so when bnetlauncher closes steam loses track of it.

So for now the current workaround simply keeps bnetlauncher open waiting for destiny 2 to close.

This was concluded with the assistance of a very helpful steam developer and will be revisited once the official game is out to see if the workaround is still needed or if a better solution can be found, be it on bungie, valve's or my end.

Destiny 2 has officially launched and it seems they've taking additional steps to make sure Steam Overlay wont work with it.

Destiny 2 has officially launched and it seems they've taking additional steps to make sure Steam Overlay wont work with it.

Hello! Yes, i try all guide versions and no one's work. Steam ingame status work fine, but overlay dont. So sad :( Maybe you can try figure out what problem is? It will be great! Thanks in advance!

Maybe you can try figure out what problem is? It will be great! Thanks in advance!

The problem is that bungie don't want overlays being used at all which is stated https://www.bungie.net/en/Help/Article/46101

It won't be possible to enable overlays unless they change their policy on the matter, even if ways around it are discovered it's unknown if they'll treat it as a banable offense.

Best course of action would probably be to remove destiny support all together or at least inform users why the overlay won't work when the destiny key is used.

I have contacted a developer at valve to see if there's anything that an be done on their end and that's about as much as I can do atm. I lack the knowledge and skill to try and do anything to resolve the issue.

I hope Valve and Bungie can arrive at some agreement so that Steam Input users can still use their controllers though :(

It's really highly doubtful, considering the capabilities of steams customization with the controller, it can do the things that Bungie does not want. Things like macros and turbo is exactly what they're trying to prevent with this.

That being said, if both Bungie AND Valve can make an agreement on limiting its usage we might see some bleed into Blizzard games as well, and maybe get some more congruent handshakes between the controller and Blizzard games.

However, if you look at two out of those three names I just talked about, and consider their history in the PC gaming world, it's highly doubtful that Blizzard will let Bungie do anything about it in the first place. But I really truly want to hope that maybe they can agree on a piece of hardware that might kind of symbolize a standardization practice in PC gaming.

Actually, Steam controller mapping works just fine in Destiny 2. Just the overlay is blocked. I added the "battle.net launcher.exe" to Steam with the dst2 to the launcher options (just like the Beta) and my controller mappings work perfectly, just like the Beta. I just can't edit them with the game open (of course). I'm using a DS4. So even if they were able to prevent steam mapping to work, I would still be able to do the same thing with InputMapper.

Good job too because I only play shooters with Gyro aiming enabled. Not being able to use it would break the game for me, I refuse to play shooters without Gyro aiming now.

EDIT: Did not try and use this (http://madalien.com/stuff/bnetlauncher/) bnet launcher though, as I read it did not work. Adding this for those saying Bungie are outright blocking steam due to no wanting controller mapping to work.

Oh ok I see, so I just run through the client itself? Do I use the launcher as the shortcut or the game itself?

Every time I've run it, it would wall me out if I had set my steam controller to an xinput device (like if you set it as a game pad template) and it still ran my desktop config, but I had used the launcher as a shortcut so maybe that was the issue.

Also you said you were on a PS4 controller? Not a Steam one? I like my mouse pad well over a joystick and mouse-like input, would this work with a WASD binding?

Yes, I just added "C:\Program Files (x86)\Blizzard App\Battle.net Launcher.exe" as a non-steam shortcut then went to properties and added "dst2" to the launcher target. So it says -

"C:\Program Files (x86)\Blizzard App\Battle.net Launcher.exe" dst2

Once you click PLAY (make sure the Blizzard/Battle.net is closed first), Battle.net will launch and goto the Destiny 2 page, just click START and the game will run with your controller mapping active.

Like I say the overlay doesn't work. It pops up on the Blizzard app but even there it is buggy and unusable. So all edits have to be done in Steam first. Luckily I got my profile almost perfect during the beta. I'll send you the profile if you want. Although it depends on what you are trying to achieve of course. Mine mimics the controller setup using k/m commands and adds gyro aiming.

That's all I want, a KBM configure (rightpad as mouse).

Sorry, I am on mobile right now so it responded before I could say thank you!

I'm not much of a power user but I play everything exclusively through the steam controller, so figuring this stuff out is a nightmare.

Adding "C:\Program Files (x86)\Blizzard App\Battle.net Launcher.exe" battlenet://DST2 should launch straight ingame. I haven't tested but if indeed steam controller works like this it's weird that doing the same with bnetlauncher doesn't work. I tried for a bit and always got dumped into desktop config.

Perhaps there's a hook or something in bnet that is causing it to negate (a la Bungie's in house anti-cheat).

That being said I will give it a shot when I return home on my main system. If there's any logs or data I can send to you

@parabolee did some more testing of my own with the Steam Controller and I can say it only ever works with Mouse+Keyboard controls trying to pretend to be a gamepad to the game simply doesn't work.

Launching "Destiny 2 Launcher.exe" through steam does indeed make it swap to the selected profile while trough bnetlauncher it sticks to desktop configuration which is weird. Only diference I can see is battle.net client having a 3D surface that the overlay attaches to.

So tried using a basic Direct3D sample to launch bnetlauncher which then launched Destiny 2 (crazy I know), overlay attached to the 3D sample but ingame the profile still didn't trigger properly, so probably something else that I'm missing.

Also for those just interested in Steam Input there's supposedly a tool https://alia5.github.io/GloSC/ that is working.

Oh odd. Maybe they are blocking controller mapping out of fear of macros. But they can't block k/m. The beta did not allow simultaneous m/k and controller (auto switched with a slight delay) so I did my mappings as m/k only. So I did not notice it blocked controller.

@flegrant Here is my mappings, it is for DS4 but easily edited for Steam. Also I made some changes to get L1+R1 = Super working, but have not tested yet (which is why I have not published to the community). - steam://controllerconfig/destiny%202/1124001913

@dafzor - That app looks like a great solution for anyone willing to use borderless window mode. Might give it a try out of interest. Would be good for making tweaks to a profile in D2 too.

@parabolee I got a response from Bungie about that. That is exactly what they're trying to prevent. The only way we would see legitimate support is if the three conpanies can actually agree to let people use the hardware they own. I had asked because I have limited mobility and wanted to know if they would allow an exception for steam and controllers to work for accessibility. Alas, they're afraid of people abusing it. I'm all for a fair game but that is ridiculous.

But I'm going to try a dry run of the layout you posted, thank you so much.

@dafzor so that 3D sample is essentially another environment in which both steam, bnet, AND, Destiny run in? Could it be that the actual raw input data isn't reaching the environment you created to run the whole kit?

Or it could be that the controller is trying to run desktop configs because you are almost running a second instance of Steam?

PS I'm a sound engineer not a coder of any kind so this is just guess work

Made a LOT of improvements to my controller profile. This may be ready to share to the community with a little more testing. Here it is for those that want to test it early - steam://controllerconfig/destiny%202/1137947809

@flegrant the 3d sample I mention is literally just this https://msdn.microsoft.com/en-us/library/windows/apps/ff729718.aspx a very basic app that creates a Direct3D surface that the Steam overlay can attach itself to it.

It was really just a quick test to see if actually made it work (which it didn't) and see if it would be worth trying to add it to bnetlauncher itself as a steam controller workaround. Although now that I know GloSC exists I'm less concerned about it since that's a better solution for steam controller users.

Wow, GLOSC is fantastic! And it works great for use with fullscreen games too. I set Destiny 2 up with it to test and tried full screen, controls work perfectly and when I press the "CHORD" (PS) button it minimised Destiny 2 and opened the overlay, allowing me to edit my mappings and then close the overlay and Alt-Tab back into Destiny 2. Also because I made the shortcut via GLOSC with the name "Destiny 2" it auto pulled my existing mappings in!

Wish I did this yesterday, would have saved me ages that I wasted exiting the game, tweaking the mappings and loading the game again!

@parabolee I'll give that a shot! I opened up the GUI and it looked like there was a lot to break easily so I didn't try it. Looks like it's worth trying :)

Yeah it is actually super easy, but just looks intimidating if you don't know how to use. Should have better instructions on the site.

Anyway here is how to use it -

  1. Download, install, and launch GloSC (with Steam running)
  2. Click CREATE NEW
  3. Click the 3 dots next to the PATH and point to the game exe you want, or in this case the "Destiny 2 Launcher.exe" (The Destiny 2.exe will not work).
  4. Fix the name if it is not the name of the game (in this case change it to "Destiny 2").
  5. Make sure you have "Close shortcut when launched app closes" UNCHECKED
  6. SAVE
  7. Click ADD ALL TO STEAM and close GloSC
  8. Close and then relaunch Steam and your new shortcut will be there with working overlay, just add a custom image (http://steam.cryotank.net/) add you are all set! :D

Also make sure Battle.net is closed before you launch it from Steam.

My man! Thank you so much.

Update: I think checking the "Close shortcut when launched app closes" does not work with Battle.net, so keep that off and manually close GloSC when you are finished playing.

Oh my GloSC is a godsend for this game. My hands are much happier

@parabolee I'm using the exact settings you are and it is not launching the game. I get the cmd box from GloSC, and then I get a white box that comes up and goes away. Immediately after it just pulls up bnet and the Destiny 2 page and sits. Steam says im in Destiny 2 and I can see teh GloSC Steam Target that was created.

Same exact issue as @SilverSix311

Destiny 2 is no longer a battle.net game.