Skip to content
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

An attempt to fix Driver 76 multiplayer #19843

Merged
merged 2 commits into from
Jan 10, 2025

Conversation

anr2me
Copy link
Collaborator

@anr2me anr2me commented Jan 10, 2025

Potentially fixes games that use Quazal Net-Z #14555 (need someone to test the other games tho)

This game is kinda strange, it initialize Adhocctl instead of Apctl (to connect to an AP), but uses infrastructure syscalls instead of adhoc syscalls, it also tried to get IP from ApctlGetInfo, i wondered what kind of IP should be returned (we currently returning 0.0.0.0) when not connected to any Access Point (unless Adhoc actually have an IP too internally).

Anyway, currently only works on Windows with multiple-instances.

I couldn't get it to works with multiple-instances on Ubuntu (WSL2), and couldn't see much from the logs, because apparently Debug channel is being disabled on non-Windows (at least from the artifacts i tested)

On Android it's even more strange, that the game stuck with 0/0 (100%) FPS, the percentage is still moving so the emulation thread isn't blocked, the game just didn't render anything when entering multiplayer, may be it endlessly retrying something (most likely the sceNetInet* or sceNetApctl* syscall), i guess something inconsistent is happening on Android while other platforms didn't get locked up (not sure about Mac/iOS tho).

PS: This game also uses sceNetInetPoll instead of sceNetInetSelect, and i'm not sure whether our sceNetInetPoll implementation (which under the hood is using select as it's more widely available than poll/epoll) is consistent or not across platforms (ie. the POLL flags stuff)

@hrydgard
Copy link
Owner

hrydgard commented Jan 10, 2025

Interesting. This one looks reasonably safe to merge speculatively in case we can't get all three games tested...

I'm going to change it so DEBUG logs are only disabled in release builds on Android, should be fine on desktop. Maybe it's also time to finally enable it on all platforms.

If you make a debug build, you'll get DEBUG logs on all platforms.

@hrydgard hrydgard added this to the v1.19.0 milestone Jan 10, 2025
@anr2me
Copy link
Collaborator Author

anr2me commented Jan 10, 2025

Well i'm updating the files directly at github.com and testing the artifacts, since my spare 5400rpm hdd is slower than my old 7200rpm hdd that have bad sectors, so building it through github can be much faster than building it locally.

@hrydgard hrydgard merged commit a986286 into hrydgard:master Jan 10, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants