[NetResolver] Implement sceNetResolver library#18090
[NetResolver] Implement sceNetResolver library#18090anr2me wants to merge 3 commits intohrydgard:masterfrom
Conversation
|
As there are no information regarding the *Async syscalls i can find on the internet, will need to find out which games uses them first to be investigated. |
hrydgard
left a comment
There was a problem hiding this comment.
Looks alright to me, I'm happy to merge after the 1.16.x release process is completed.
|
Actually, might want to save the list of created resolvers in DoState, and restore them on load. |
|
I intentionally not to save it in case it need additional data to be stored in the NetResolver struct for the async version (may be used for the PollAsync syscall), but hopefully there is no additional data. So for now just simply reset it and let whatever the game were doing to fail after loading from save state (as most of the time the connection won't be resumeable anyway), until i can get more info related to async syscalls. |
|
Oops i forgot that loading a savestate won't trigger the init/shutdown functions. |
Added more stub functions. Report Once on some unimplemented syscalls to find out which games uses them.
…sync syscalls first.
|
Hm, dunno why we didn't get this in, maybe I just forgot about it. Ready to merge? Because it looks like it. |
|
I also forgot about this :) it should works, but since i'm no longer working on my old PR and someone else is working on it (ie. #18578 ), merging this could cause a conflict with @JustAWhiteBloodCell PR later. |
|
Oh right, I forgot that was incorporated there. Well, I'm going to close this then. |
Yet another rough and experimental implementation taken from my stashed codes.
It works on most of the games i tested, also used for the test builds at #14256
However, since it use dummy id (1), it can only support one resolver created at a time.
It also enforce synchronous resolving (i think), including for the Async syscalls, this will lower the chance for the game to create more than one resolver, as the game will delete it once the result are out.
Leaving this as a draft until i can work on it later, at least to get the id properly generated to support multiple resolvers (ie. for games/app with multi-threading).
PS: Should also move it to a separate file (ie. sceNetResolver.cpp) as the general sceNet.cpp will grow bigger with infrastructure being implemented later.