Battle.net games under Steam

Ever since steam allowed to add non steam games to it that it become my gaming hub having all my games there ready to be launched.

However every big developer/publisher has it’s own launcher these days which means trying to use steam as a launcher doesn’t always work as intended.

I originally discovered a solution in a reddit post, it worked but felt very clunky so I fired up Visual Studio to see if I could do any better.

The result was bnetlauncher. While not the most elegant solution it does work. and makes adding current and future blizzard games to steam a lot easier.

Additionally I have also the full source code under GPL for those who take their security very seriously or are simply curious about what’s actually happening under the hood.

To use just add it as a non-steam game and put in the appropriate case sensitive code in front as a parameter like in the screenshot bellow.

Example bnetlauncher use

Downloads

Warning: The downloads below are outdated and buggy, please grab the current version from http://madalien.com/stuff/bnetlauncher/


bnetlauncher_v14.zip
bnetlauncher_v14_src.zip

bnetlauncher_v15b.zip (Beta version that should fix crashing issue)

27 thoughts on “Battle.net games under Steam”

  1. program auto closes while the logs say this?
    [2016-07-28 01:48:09.5924]: Battle.net Launcher for Steam version 1.6.6032.35355 started
    [2016-07-28 01:48:09.5924]: Checking for other bnetlauncher processes
    [2016-07-28 01:48:09.5924]: No other bnetlauncher detected
    [2016-07-28 01:48:09.5964]: Using parameter: battlenet://Pro

  2. Pingback: bnetlauncher blunders – madalien.com

  3. Updated the post with a link to a permanent page for the latest version, will post the details of what was going on and what was fixed later but until then I didn’t want people using the old buggy version.

  4. So I resolved a lot of the problems, Diablo III and StarCraft II had bad shorcut properties, for the heroes problem I put always launch in admin mode on bnetlauncher.exe and it work. Now the only problems that I have are : On hearthstone the blackscreen and on Diablo III, I have this error : “diablo III was unable to find either your .build.info file or your data folder”.

    1. That is a known issue, I’m putting the finishing touches on a new version that should fix it. Just need to wait a few minutes more.

  5. Hey good job for this program but unfortunately it only work with Overwatch on my computer. With Diablo III and StarCraft II, I have the overlay on my battle.net, and steam say I’m playing but no game is launching. With Hearthstone I have a black screen . With Heroes I have two windows, one with the game and one with an error, when I close the error steam think I close the game. Do you know why I have these errors? Thanks.

  6. Hey, good job for this program but unfortunately it only work with Overwatch on my computer, Heroes launch two windows, one with an error and one with the game, but when I close the error, steam think I close the game. Hearthstone is just a black screen. With Diablo 3 I just have the overlay on my bnet and steam say i’m playing Diablo 3. And Starcraft II does the same thing, overlay on bnet and steam say I’m playing. I didn’t try with WoW.

    1. First of all thanks for your logs, I see at least 3 issues in them that need fixing so the next version will take a wile as I need to seriously rethink how I’m doing things.

  7. Hi again. It’s possible that the crash was some mistake on my end, maybe I linked to the wrong file, since I didn’t experience any other crashes after that, but here’s the log contents anyway:

    ===
    [05/07/2016 20:55:24]: Battle.net Launcher for Steam version 1.5.6030.35589 started
    [05/07/2016 20:55:24]: Using parameter: battlenet://Pro
    [05/07/2016 20:55:25]: battle.net client not found, starting it
    [05/07/2016 20:55:25]: Waiting for bnet client to start
    [05/07/2016 20:55:34]: battle.net client fully running
    [05/07/2016 20:55:34]: Searching for new battle.net child process after date = 05/07/2016 20:55:34
    [05/07/2016 20:55:34]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:35]: Last battle.net child process pid = 0
    [05/07/2016 20:55:35]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:36]: Found battle.net child process with pid = 4444
    [05/07/2016 20:55:36]: Last battle.net child process pid = 4444
    [05/07/2016 20:55:36]: battle.net child process found with pid = 4444
    [05/07/2016 20:55:36]: Attempt 1 to find start parameters
    [05/07/2016 20:55:36]: Filename = D:\Battle.net\Overwatch\Overwatch.exe
    [05/07/2016 20:55:36]: Arguments = -uid prometheus Pro://
    [05/07/2016 20:55:36]: Closing battle.net child process and starting it under bnetlauncher
    [05/07/2016 20:55:36]: Killing battle.net client
    [05/07/2016 20:55:36]: Found running battle.net client with pid = 5988
    [05/07/2016 20:55:36]: Exiting
    ===

    From what I see in the time stamps, it looks like it didn’t log the time it crashed, since I launched it again several times to check if it’d happen again. Everything is fine so far.

    By the way, I’d like to ask you if you’d be interested if I translate this post to Brazilian Portuguese (my native language), so other people could get to know about this fix directly from the author’s site. Maybe you could update this post or make a new one.
    Please let-me know if you’d like that.

    Thanks one more time. 🙂

    1. Yeah, I totally forgot that I changed the log file to overwrite itself every run so it wouldn’t grow indefinitely.
      If it’s not too much trouble would it be possible for you to run this altered version that never overwrites the log until you crash and then report those back to me? I’d really appreciate the help.

  8. Never mind that, it seems to be working just fine with the Steam overlay now. Had a few crashes, but then I closed and launched it 10 times in a row and it looks like its perfect now. Thanks again!

    1. It shouldn’t really be crashing at all, I’d still like the content of the previously mentioned file to try and fix it.

  9. Hey, that was fast! Thanks!
    It seems like it’s not crashing anymore.
    Just one more thing: I can launch the game through Steam with this launcher, but I still can’t use the Steam Overlay. I don’t really know if the launcher was intended to do that, was it? The only way I can get the overlay to work is pointing the Steam shortcut to overwatch.exe, but that way I have to put my username and password every time I launch the game, and that’s pretty annoying. Anyway, thank you again, this launcher is awesome. 🙂
    Oh, I found this blog through this reddit post – https://www.reddit.com/r/Overwatch/comments/3tfrv5/guide_how_to_use_steam_overlay_with_the_blizzard/ -, but I don’t think I saw any mention to it besides a direct link to the launcher. Are you aware of that?

    1. Yes, the purpose of bnetlauncher is to easily start a battle.net game with the steam overlay enabled. If the overlay is not attaching itself then something is going wrong.

      Could you reply with the content of the debug.log file? It’s located in **%localappdata%\madalien.com\Battle.net Launcher for Steam\** you can just input that into the address bar of Windows explorer or the run dialog (WinKey+R) to open the location.

  10. Maverick, I’ve done some testing and did find an “edge” case that would cause it to crash if the media was too slow (first computer boot and/or not having the game on an SSD).

    Could you please try the new 1.5b version and see if it fixes it?

  11. Man, that’s a nice little solution you got there. Thanks!
    Unfortunately it keeps crashing here. I’m using Windows 7. :/

    1. Is it the bnetlauncher crashing or something else? Could you also provide furder details such as any error message that might show so I could try and fix it?

  12. James Wilson

    Stupid question that’s absolutely driving me nuts. Google fu seems to be failing me in this aspect, and I honestly suspect that the minute I understand how, i will be astounded that I didn’t see it before.

    I cannot for the life of me, figure out which properties to edit in order to input the case sensitive code.

    Any help is much appreciated.

    1. I’ve added a screenshot example that hopefully will make it clearer, it’s in the target box in front of the path to the executable.

  13. I can understand that for sure, but the part of “flashing terminal windows popping up” it’s a thing easily avoidable, but I’m sure you know it. 😀

  14. Wait you make a program on purpose just you can launch Battle.net (Blizzard) games from Steam? A simple batch file could do that no? 😀

    1. You can certainly make a powershell or VBA script to do it, dunno if batch has the required functionality though.

      Still, having an exe makes it more convenient and as an added bonus there’s no flashing terminal windows popping up.

Leave a Reply to Vardex Cancel Reply

Your email address will not be published. Required fields are marked *