-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Monster Hunter Freedom - multiplayer broke for some people #17969
Comments
Thank you for testing! What do you mean with "Also, we've also tried the earliest build and we still got the same disconnect error"? Earliest build with retroachievment support, or which earliest? |
Sorry. The latest PPSSPP nightly build. |
It's really hard to understand how that change broke anything - it just adds support for HTTPS requests via native Windows APIs through a wrapper called naett. It doesn't touch the multiplayer code. So maybe it's something global - like, now we link to winhttp.lib, how does that affect things? naett doesn't seem to do any kind of special initialization though. I suppose I could add a .ini option or something to disable HTTPS requests, and then we can see if that somehow has an effect. I'll do that |
Simply set: ```ini [General] DisableHTTPS = True ``` Added to help debug issue #17969
Does communication through naett could affect the timing? like blocking syscalls from returning or triggering another PSP thread to run while the network thread was waiting for packet until timeout may be. As some games might be sensitive to timings, not sure about MH games tho, but there was a game that have issue because another PSP thread kicks in while the game's network thread was waiting for something, and at the time it switched back to the network thread (which took about 500ms), the timeout already reached. It happened because we don't have an accurate timings on networking, thus causing those threads to overlap at critical time (that other thread seems to have an interval of 1 second, thus kicks in every second), meanwhile on JPCSP LLE those threads never overlap. |
But there shouldn't be any naett calls during gameplay when retroachievements are off at least, that's what confuses me the most... |
Confirmed now that turning off the HTTPS/naett stuff actually does fix the problem! So it's not some change that snuck into that PR, it's actually directly affected by the HTTPS requests somehow. I don't understand that at all though... Think I'm going to add some additional logging to see if any unexpected HTTP requests happen.. |
@matheussanjour Can you try the following, in a fresh build (after #17978, so -1217 or newer ):
Then open the debug console from the window menu, where you can see logging, and try to reproduce the problem again. Copy any interesting-looking HTTP lines from the log that happens just before or near the hang, and paste them in an comment here on this thead. Thanks! |
That is strange indeed. |
11:10:652 user_main I[SCENET]: HLE\proAdhocServer.cpp:1101 AdhocServer: Seraph (MAC: b4:8f:14:78:e1:99 - IP: 26.201.xx.252) requested information on 1 ULUS10391 groups |
Here's the log from the moment my friend Seraph entered lobby till he left the game after we got the disconnect error. I tried looking for any HTTP line as requested by I didn't find any notable one. Only those marked by this SCENET thing. It does mention a socket error though, maybe that's relevant somehow |
Maybe we can find something by comparing a log from when it's working (HTTPDisabled = true) ? Though 10022 is just "invalid argument" which really doesn't say much... Here's where the error is reported from, just a connect... https://github.com/hrydgard/ppsspp/blob/master/Core/HLE/sceNetAdhoc.cpp#L3812 |
Do you see anything with [HTTP] at all, from the start of the process? |
22:28:614 Core\Config.cpp:1193 I[LOADER]: Loading controller config: C:/Users/mathe/OneDrive/Área de Trabalho/ppsspp/memstick/PSP/SYSTEM/controls.ini |
Hm, all the HTTP requests seem retroachievements related. no idea how those could disturb the other stuff... This one is kind of weird though, but it's from the working log:
|
Here's the log from playing with HTTPDisabled = true on version 1217, we actually got to play and initiate the quest but after some time I got a strange connecting to Retroachievements message at the top (it shouldn't be there during gameplay tho, which I found strange) and then we got the same error as before. Yesterday I was playing just fine with HTTPDisabled = true, but today I updated to 1217 and this happened |
Huh, that's bizarre. If you go back to the old version again, does it still consistently work? I'm thinking problem with your VPN stuff? If you're seeing "Contacting RetorAchievements" during gameplay, that means that a request to RA (which do happen from time to time while connected) took more than 3s which is very long (though could also be server issues). I'm really struggling to come up with an explanation for all this :( |
With In a case where socket error 10022 occurred during Edit: There is also a note related to EALREADY error during non-blocking
But PPSSPP is using WS2_32.dll (Winsock 2) so this note is probably irrelevant. |
@hrydgard I'll make a test when my friend is available. It'll probably work normally as we've played for almost 4h yesterday nonstop with no problems (tested and played on 1199). Now in a matter os minutes on 1217 we got this disconnect error. I'll try to see if I can replicate it to see if this was only a one time thing. @anr2me I tried searching the log for a socket error 10022 but there was none, to make sure I did ctrl F and searched for it but no results. It only appears without HTTPDisabled = true. There is a invalid socket id error but I think it's not related (user_main E[SCENET]: HLE\sceNetAdhoc.cpp:1767 80410701=sceNetAdhocPdpSend(-1, ������, 00002710, 09a1dc64[21170000], 186, 0, 0): invalid socket id) A different side of players? strange, both of them came from my debug console but it does mention my friend Seraph entering lobby and connecting (but maybe it would be interesting to see my friend's side?) |
Yes, you should try to check both side logs to find Meanwhile, the error Btw, does any other MH games have similar issue? |
53:00:105 idle0 I[SCENET]: HLE\proAdhocServer.cpp:1003 AdhocServer: Seraph (MAC: b4:8f:14:78:e1:99 - IP: 25.63.xx.140) left ULUS10391 group MHP2Q000 |
Here's a new generated log without HTTPDisabled = true. This time we switched Radmin to Hamachi in order to see any difference. This log didn't generate so many red lines as log 1. Strange. |
That logs is showing
Huh, the one that gets error Btw, is this issue also occurred on other MH games? (if you have tested them too) |
Yes, it was without DisableHTTPS = True. Is there any problem by using a pastebin link? Those logs are very big for a comment section. We did a new test now without HTTPDisabled = true, we add the line manually as requested by @hrydgard in the ppsspp.ini so by default it should be HTTPDisabled = false I think. Regarding other Monster Hunter games, we didn't test them yet but we can try. My log: https://pastebin.com/6wSXEZrs |
Also, I talked with another person I know in a MH discord server and he told me that he's also having the same problem with his friend and they were also stuck on a very old build because of that. So it's not something that's only happening to me and my friend |
Noproblem using pastebin. But you're testing an already known logs (which is the default) that have HTTPS Enabled suspected to cause the issue, the new logs should have HTTPS Disabled (by using
This would result the same error with your first logs, because it have HTTPS enabled if you remove that line (since you said "without" i assumed you removed it) Instead of removing the line, you should change the value between True or False, where the default (without that line will be the same as False) |
Alright. Here's some new generated logs with DisableHTTPS = True. With this line we can enter the quest together without any problems. Now we have logs for both situations My log: https://pastebin.com/bLDYPXFT |
Thanks for testing! It's strange that using HTTPS could trigger socket error 10022, unless WinHTTP was using Winsock 1.1 during However, using Winsock version 1.1 during |
I tried to treat WSAEINVAL similar to WSAEALREADY @matheussanjour please try the artifact from this PR later #17982 with If it still have issue, please show the logs from both sides. |
Sorry, I don't have any experience with this Github stuff. What do you mean by this PR? Is there a download button there? Can't seem to understand it |
Go to this page https://github.com/hrydgard/ppsspp/actions/runs/5981601233?pr=17982 (Summary), at the bottom of the page (when it's done building) you will see "Artifacts" where you can download the "Windows x64 build" to test with. |
Ouch it's auto-closed without being confirmed yet |
You guys can also just test the latest buildbot build now. Set DisableHTTP to false when testing. |
Just made a test with DisableHTTPS = False on version 1240 and it works like a charm now! Thank you so much. I will warn some friends that were stuck on old builds about the update! |
Thanks for testing guys! |
@matheussanjour thanks so much for your testing! |
I got a report on the RetroAchievements discord that multiplayer broke for them in this game recently - after the introduction of RetroAchievements.
"Me and (other user) use Radmin to play multi, when we tried to upgrade the build it simply stopped working, no clue why"
Asking the user to try some builds now.Apparently it broke between -581 and -598, pointing to #17744. That's weird though because that's the HTTPS upgrade, and it shouldn't be very relevant to multiplayer...
They are playing on Windows.
The text was updated successfully, but these errors were encountered: