Repository navigation
Conversation
(cherry picked from commit f2da788)
|
Windows run, since the description says Windows wasn't tested. Windows 11, RTX 4080, WinLibs GCC 15.2.0 r7, Release, this head (4bb5b77) merged onto
No title run: I don't have PPSA01288. AI-assisted: yes (Claude Code Opus 5.5) |
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for the Sackboy investigation and the loopback tests (the Windows run by @orishamir also confirms they fail without the change). Two points to fix before merging:
core/libs/prx/libSceNet/Export.cpp:92,1069:0x20000is not a broadcast option. In shadPS4's SDK-derivednet_types.hthe SOL_SOCKET options areSO_BROADCAST=0x20,SO_ONESBCAST=0x10000,SO_USECRYPTO=0x20000,SO_USESIGNATURE=0x40000. Mapping0x20000to the hostSO_BROADCASTturns on a behaviour the title did not ask for. Please cite where the "PS5 broadcast alias" comes from (a call site in the title with the instruction offset, or a reference); otherwise accept0x20000as a no-op only if that is what the game needs (listed under Silent stubs/Functional in the debt file) or let it throw as before.Export.cpp:683-689,docs/dev/debt/libSceNet.md:11: types 6/10 are the P2P socket types, whose addressing uses virtual ports (shadPS4 models them separately). Binding them to plain host UDP/TCP returns plausible but different results for any title that really uses vports. If the game only needs creation to succeed, please scope it to exactly what is modelled (e.g. reject a non-zero vport/SO_NAME-style P2P options and any sockaddr_in_p2p use with a clear exception) and state in the PR which game call sequence you observed aftersceNetSocketreturns.
Build and ctest pass on Linux here (guest_sce_net, guest_sce_net_peer_transports).
|
@MichalSy this PR now conflicts with In case it helps: I rebased your commit onto current Windows 10 19045, WinLibs GCC 15.2.0 r7, Release,
AI-assisted (Claude Code). |
|
I am reviewing #9506, which adds |
|
@MichalSy I checked your broadcast alias changes while refreshing #9523, #9525, #9542, #9543 and #9544. #9542 adds readback of the existing broadcast/reuse flags; #9544 rejects nonpositive send/receive buffer sizes in the same setter option group that your alias edit changes. Would landing these focused socket-option PRs before this PR work for you? The alias change would need to preserve the buffer guard and native option readback. If yours needs to land first, I can adapt my branches after it merges. I will record the order once we agree; #9523 before #9542 and #9525 before #9543 remain the existing prerequisites. |
|
Console data point for the two socket types, measured on a PS4 Pro (firmware 10.71,
So on PS4 both type 6 with protocol 0 and type 10 with protocol 0 or 6 are created, as this PR does. Type 6 with protocol 17 is refused with |
|
@MichalSy I refreshed the four remaining option PRs: #9523 → #9542 and #9525 → #9543. #9544, #9930 and #9931 are now in main. Would landing those four before this PR still work for you? Your main update needs to preserve the buffer guard and all option readbacks, and reconcile the guest type/protocol readbacks with the peer-to-host transport mapping. I am keeping the order as a proposal until you confirm it. |
What
Sackboy: A Big Adventure (PPSA01288) repeatedly recreates its loading screen because
sceNetSocket(..., family=2, type=6, protocol=0)returnsEPROTONOSUPPORT(0x8041012b). After the shader preparation queues had drained, a 12-second runtime probe still observed 12 newSlateLoadingThreadinstances interleaved with the same failing socket request.Translate PS5 peer socket types 6 and 10 to the existing host UDP and TCP transports, and accept the PS5 broadcast option
0x20000alongside0x20. The existing descriptor registry, socket lifetime and error handling stay in use. Technical debt records that this does not implement console peer negotiation or virtual-port routing.The branch contains only this network fix, its loopback regression tests and the debt entry. No matching open PR was found for these socket types or the broadcast alias.
Tested
Arch Linux, GCC 16.2.1, Release.
guest_sce_net_peer_transportstest aborts at peer socket creation. The game probe independently records repeated0x8041012breturns.guest_sce_netandguest_sce_net_peer_transportspass. The peer test sends and receives actual UDP datagrams and TCP stream data over loopback, checks both broadcast-option values, and closes all descriptors.buffer specialization has an unsupported format. This PR does not claim that Sackboy reaches a playable menu or that the remaining graphics errors are fixed.main, a fresh Release build ofguest_sce_net_testsandguest_datagram_receive_testspasses all six tests:guest_sce_net,guest_sce_net_peer_transports, and therecv,recvfrom,sceNetRecv,sceNetRecvfromdatagram cases.git diff --check, the conventions check including this title/body, and the open-PR overlap check pass. The branch merges cleanly into the current upstreammain.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository