So, i am trying to create an cross platform overlay for Guild wars 2 game. The game exposes some live data like character position/name/race etc.. via a mumble link api as shown in https://wiki.guildwars2.com/wiki/API:MumbleLink .
The game uses mmap on windows with a tagname "MumbleLink". I would like to access that mumble link from linux so that i can use it for my overlay. and as far as i can find, tagname does not exist in linux mmap.
I am kinda desperate as i have been stuck on this issue since 2 days, and could not find any way. Any help is appreciated
this is a working example implementation of the mumble api client in python. really short and clear. https://wiki.guildwars2.com/wiki/API:Mu ... n_(Python)
another working example that i was successfully able to use on windows in cpp. https://pastebin.com/nCjkNckX . if i compile it and try to run on wine, i get a lot of missing dll errors like uacrt.dll or user32.dll etc..
if i could have gotten the windows version working in wine, i could just expose a socket or something, and make the linux overlay connect to it and read stuff. clunkier than directly accessing via mmap though
progress made. after some guidance in winehq irc and other old forum posts about ipc between linux/wine processes, i started experimenting.
by compiling the https://pastebin.com/nCjkNckX on windows in x86 release mode, i was able to run the generated exe and game in the same wine prefix with the same wine runner and successfully use the shared memory MumbleLink. wine/linux ipc with shared memory seems to be really really complicated, and from old forum threads it was recommended to use sockets instead.
So, for now, i plan to just use the previous code and extend it to write MumbleLink into a socket, and as both local sockets have literally GB/s range of speed, i think it is more than enough to be used by the linux native overlay. in the next comment, I will post the full code of that pastebin link both for the purposes of archiving for future visitors and for anyone who would like to point out any improvements like using a winelib (idk what winelib actually is properly)