#909 Overlay does not work with Guild Wars 2

1.2.5
closed
Kissaki
5
2013-12-25
2012-09-05
Anonymous
No

The overlay doesn't work with Guild Wars 2.

Discussion

<< < 1 2 (Page 2 of 2)
  • Kissaki

    Kissaki - 2013-04-21

    Landed as 84307bb6606411b20c393e0424f23e9ba96afaac
    with some follow-up commits cleaning overlay code and then another one adjusting it a bit
    c1bef92cb234b70734fb674857a1dfe3d2cf87dd

    https://github.com/mumble-voip/mumble/commit/84307bb6606411b20c393e0424f23e9ba96afaac

    The changes also fixed the overlay for some other games; I just verified that the overlay works with TF2, CS:S, LOL which the wiki page Overlay lists as not working.
    So, thank you again. :)

     
  • Kissaki

    Kissaki - 2013-04-21
    • status: open --> closed
    • assigned_to: Kissaki
    • Release: 1.2.3 --> 1.2.5
     
  • Kissaki

    Kissaki - 2013-04-21
    • labels: Mumble --> Mumble, overlay, windows
     
  • Wesley W. Terpstra

    Perhaps Kissaki could provide an installer built from his build environment? If it is the installer I built, it could either be broken by the newest mumble changes (all of which I included) or my build environment. Using another new installer could distinguish between the two causes.

     
  • Wesley W. Terpstra

    I can't help but notice two things in your follow-up patch:
    1- You hooked FreeLibrary to detect unload. When I tried this, it didn't work. Are you certain FreeLibrary is called on d3d9.dll? It seemed to be unloaded by the loading thread exiting, without a FreeLibrary call.
    2- You restore the hooks AFTER the library was potentially freed. That memory would now be unmapped, so you are essentially writing to undefined memory. On linux, I would expect a segfault. Perhaps windows isn't so rigorous.

     
    • Kissaki

      Kissaki - 2013-04-22

      @1: MSDN doc says:

      When a DLL is unloaded from a process as a result of process termination or as a result of a call to FreeLibrary, the system does not call the entry-point function of the DLL with the DLL_THREAD_DETACH value for the individual threads of the process. The DLL is only given DLL_PROCESS_DETACH notification.

      What I take from that is
      a) exiting threads don’t cause module unloading as modules are process-scoped; only process exits do
      b) there is only FreeLibrary as an alternative

      The library is freed if the reference count (adjusted by LoadLibrary and FreeLibrary) hits 0, or the process exits.

      When I tested it with the FreeLibrary code the overlay worked in GW2.

      @2: Oh shit you’re right. I added the restore later on, which is obviously wrong.
      Thanks for the review. :)

       
      Last edit: Kissaki 2013-04-22
      • Kissaki

        Kissaki - 2013-04-22

        I pushed the @2 fix as a303b57.

         
  • Wesley W. Terpstra

    Re 1: If it works, it works. Perhaps I messed up the hook in my attempt.

    Re 2: I still think it's wrong. FreeLibrary only decreases the reference count. So you may now unhook when the library is only decreased reference count. Like I said in my original post, I think trying to track the reference count is fragile code. Simplest and safest is just to detect when the library was gone at some point in the past and then reload the hooks. There are no bonus points for cleaning up/restoring the DLL that is about to be unloaded anyway.

     
  • Wesley W. Terpstra

    Actually, I see that you test for "!hD3D" in restoreD3D9Hook. Since that happens before the real FreeLibrary, the code will never be run. Since I am essentially advocating the removal of restoreD3D9Hook and the code is dead already, I'm happy. ;-)

     
    • Kissaki

      Kissaki - 2013-04-22

      Oh god, that was a codechange without thinking.
      Yes, once you pointed to it again with your last post it became obvious to me as well that it’s useless.
      I just removed it.
      Pushed as 9c811103.

       
  • Tarun

    Tarun - 2013-04-22

    Any chance to get this pushed into the 1.2.4 release instead of post 1.2.4?

    It'd be really nice to have this working in GW2. Many of my guild members and friends would also like to see it make it in the 1.2.4 release.

    Would also solve many questions I see posted to reddit and several forums about how to get the overlay to work.

    Currently, the method people are being told is a very insecure way (exposes account name and password as plaintext) of getting the overlay to work. By pushing it to release it kills two birds with one stone, so to speak. People will no longer try and use the insecure method of getting the overlay to work and it also solves people asking on forums about getting it working.

    I do hope you reconsider pushing this to 1.2.4 release. Especially since 1.2.4 betas to RC has been well over one year in development and the GW2 game has been out for almost 8 months now. Though I'm also taking into consideration the age of this ticket (September 9th, shortly after the game was released) which means Mumble was still in beta for 1.2.4 as well.

     
    • James Orr

      James Orr - 2013-04-22

      Tarun, there is no need to use the insecure method. Download either bandicam or enjin (both free), start that first, then mumble, then Guild Wars 2.

      It's not ideal as you need to run another program, but it works for most people. If you have trouble with one of the two programs mentioned, try the other.

       
      • Tarun

        Tarun - 2013-04-22

        Using bandicam or enjin (or any other software to try and get Mumble's overlay working with GW2) != (does not equal) a solution.

        Also, I never said I use the insecure method. If you noticed earlier in this thread, I clearly advocate '''against''' using it because it exposes your username and password in plain text.

         
  • Kissaki

    Kissaki - 2013-04-22

    I’m against pushing it into 1.2.4. There is a feature freeze and RC for a reason. So we can be sure the release we publish is well tested and doesn’t have any big issues.
    By pushing new features or code changes at all we throw this away.

    Of course, that the release from a ready RC to the actual release is taking so long is stupid.
    It’s our (previous) bottle-neck the release system and one who was in power of it. We changed all that but still are not ready to publish the release yet sadly.
    Let’s hope next week …

     
    • Kissaki

      Kissaki - 2013-04-22

      Once 1.2.4 is released snapshots with the fix should be a matter of hours.

       
  • Wesley W. Terpstra

    FYI, I have confirmed it does work on Windows 8. Whatever problems Robert had, they are not Windows 8 related. Without more information, I can't help him. The only thing I can think of is that I didn't build with the installer this "embedded MSVC library" thing as I didn't have enough disk space to install the software that bundles it.

     
    Last edit: Wesley W. Terpstra 2013-05-01
  • Kissaki

    Kissaki - 2013-06-12

    FYI: Snapshots with the fixed overlay are now available!
    Check mumble.info for the Snapshot download.

     
<< < 1 2 (Page 2 of 2)

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks