-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FEAT/REFAC(positional-audio): Rewrite GTAV plugin, define "procid_t" to "uint64_t" #5704
FEAT/REFAC(positional-audio): Rewrite GTAV plugin, define "procid_t" to "uint64_t" #5704
Conversation
@vimpostor Could you test the plugin, please? |
This awesome, thank you for doing this! I will definitely test this, but don't have time to do that before Monday unfortunately. |
No problem, thanks! |
Confirmed working on Linux + Wine + GTA V Steam edition. I only noticed two minor problems:
|
The player character is almost always perpendicular to the floor. Enter a vehicle and you will see it changes, unless you're on a level terrain.
Confirmed, I'm pretty sure it happens because at that point the executable is not "unpacked" yet. As a workaround we could return |
The player character is almost always perpendicular to the floor.
Enter a vehicle and you will see it changes, unless you're on a level terrain.
You are right.
> When I first start Mumble, then start GTA, Mumble receives a
> `MUMBLE_PDEC_ERROR_PERM` once Rockstar launcher is about to close and
> start the real game (If I start Mumble after GTA is running already,
> then everything is fine)
Confirmed, I'm pretty sure it happens because at that point the executable is not "unpacked" yet.
In fact, in order to be able to reverse engineer it you have to take a dump of the process memory as the game is running.
As a workaround we could return `MUMBLE_PDEC_ERROR_TEMP` if a signature
is not found, until we find a proper solution.
I think that would be an acceptable workaround. How often does Mumble
retry plugins that returned temporary error though?
|
A few seconds if I recall correctly. |
Every second - provided that there is currently no plugin that has established a link mumble/src/mumble/PluginManager.h Line 105 in dd5df45
|
What do you think? Should we return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just marking all my previous review comments as "resolved" without actually addressing them does not seem like a productive strategy.
Should this become the norm, I will no longer provide code reviews in the first place. But for now I'll assume that it was merely some sort of oversight...
Maybe add a counter. The first x times you fail to resolve the structs, you return a temp error but if you aren't able to resolve them after a bunch of attempts (that should cover the usual loading times of the game), then assume something is wrong and return a permanent error. |
I resolved them locally, I wanted to know whether I should return
Not a good idea, the time it takes the launcher to load the game is not constant. A proper solution would probably consist in getting a snapshot of the process memory at the time the plugin returns But, for the time being returning |
93028d3
to
8c83d7f
Compare
I think it is a great workaround even. If the process called "GTA5.exe" is not running at all, we take the early exit with One unrelated optimization would be possible where each plugin tells Mumble what process name it is looking for, so that only Mumble itself iterates over all program names instead of |
That's an excellent idea! Could you open an issue for it, please? |
55a6c11
to
54825a2
Compare
54825a2
to
6d1518e
Compare
…e structs It should now work flawlessly with all variants (Rockstar, Steam, Epic Games).
…uint32_t" This allows us to take advantage of the full range provided by the plugin API.
6d1518e
to
5b7f95b
Compare
Looks good to me now, thanks! :) |
Thank you very much for testing! |
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation |
It should now work flawlessly with all variants (Rockstar, Steam, Epic Games).