0e4ef622 / wine-discord-ipc-bridge

Enable games running under wine to use Discord Rich Presence
MIT License
395 stars 28 forks source link

Option to keep running and listen to more than one Discord connection at a time. #34

Closed Roadhog360 closed 1 year ago

Roadhog360 commented 1 year ago

I think it's a little irritating how this will only listen to one RPC connection and the program will close when that ends. This would also fix games like Toontown: Corporate Clash not being compatible because the game seems to create an RPC connection, immediately end it and subsequently create another on launch, making it impossible to use this with it because the first brief connection causes the .exe to close itself.

If this change is implemented it should be optional because the current way it works is the best way to handle Steam games, but for stuff I run under standalone Wine it's a chore to keep track of. For my two wine prefixes I'd rather have the .exes just sit in the background and listen for connections at all times.

ahmubashshir commented 1 year ago

33 implements it, but it needs more testing, I'm currently testing it with lutris (with warframe).

Instruction:

git clone https://github.com/ahm-forks/wine-discord-ipc-bridge -b service wdipc-bridge-service
make -C wdipc-bridge-service OUTPUT=bridge.exe
WINEPREFIX=<wine-prefix> wine ./wdipc-bridge-service/bridge.exe install

then run send-presence.exe from @discord/discord-rpc to test it.

Roadhog360 commented 1 year ago

How do I run the .exe "from" that spot? Is this only compatible with the .dll RPC and not the GameSDK version?

ahmubashshir commented 1 year ago

On March 5, 2023 4:01:51 PM UTC, Roadhog360 @.***> wrote:

Is this only compatible with the .dll RPC and not the GameSDK version?

Should work as long as discord-roc pipe is used

Roadhog360 commented 1 year ago

I am just realizing I totally built this thing wrong, somehow missing the fact this was actually compile instructions. Sorry I probably should not have split this discussion between the PR comments and here.

Suggestion: Perhaps update the compile instructions on your PR to the one provided (make -C wdipc-bridge-service OUTPUT=bridge.exe)

Roadhog360 commented 1 year ago

Well it works now. Sorry for doing it wrong lol, I re-read your comment and realized I was making a huge mistake. Yes, now installing it passively listens to Discord RPC without re-running the exe, thank you.

How do I run the .exe "from" that spot?

I have no idea how I misunderstood you pointing me to test RPC downloads. I am legitimately struggling to understand my thought process writing that ಠ_ಠ

send-presence does not seem to do anything, neither does Toontown: Corporate Clash but I tested a tool I use called "BrawlCrate" which has Discord Rich presence in the similar style to the add-ons that Eclipse IDE and IntelliJ IDEA have, and BrawlCrate worked. I am not sure if what works and what doesn't is related to what uses the old .dll vs what uses the new API library.

I'll try restarting my computer.

Edit: (Almost) same results, I noticed once I type in the terminal after running send-presence.exe's dynamic version it actually sets my status. Since Toontown requires an account I'll try to find better ways to reproduce this so you don't have to go out of your way to make an account for that game.

Roadhog360 commented 1 year ago

So it turns out what does work appears to use the .dll version of the Discord RPC.

ahmubashshir commented 1 year ago

Edit: (Almost) same results, I noticed once I type in the terminal after running send-presence.exe's dynamic version it actually sets my status.

send-presence.exe (static one) worked on my box though...

Roadhog360 commented 1 year ago

Huh, for some reason the static one didn't have an option to type something in the terminal last time I ran it, but this time it did. I don't really know what the actual difference is but at least both exes work on my end.

I don't think I have anything else on my machine that uses the GameSDK version of Discord RPC, as far as I can see, they all use the .dll, but I don't see the DLL in Corporate Clash's files, I think Corporate Clash may use the GameSDK version of RPC. Anyways I should probably close this because the feature request I made is fulfilled for the most part.