diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-31 03:02:17 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-11-01 12:35:45 -0500 |
| commit | 72a8b41fd5fb3a25868eed1b05ef26f91dea92df (patch) | |
| tree | 7f6d626367c324af049c1c5413035816a809d996 /src | |
| parent | efe9283de57cd28a2b35652047869513c5660fc7 (diff) | |
bsd: handle the Switch 2 client registration command 36
Switch 2 titles register with bsd 36 (16 bytes and the pid, a bsd errno back)
instead of RegisterClient. It was nullptr, so the errno was left to the
message buffer's leftovers and Minecraft's socket layer failed later. Answer
it like RegisterClient.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 0137a3be66..9ec5e38c41 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp @@ -1121,7 +1121,10 @@ BSD_USA::BSD_USA(Core::System& system_, const char* name, bool is_user_) {33, nullptr, "RegisterClientShared"}, //10.0.0+ {34, nullptr, "GetSocketStatistics"}, //15.0.0+ {35, nullptr, "NifIoctl"}, //17.0.0+ - {36, nullptr, "Unknown36"}, //18.0.0+ + // Switch 2 titles register with 36 (16 bytes and the pid; a bsd errno back) instead of + // RegisterClient. The auto stub left the errno to the message buffer's leftovers, and + // Minecraft's socket layer failed later in EventFd. + {36, &BSD_USA::RegisterClient, "RegisterClientSwitch2"}, //18.0.0+ {37, nullptr, "Unknown37"}, //18.0.0+ {38, nullptr, "Unknown38"}, //18.0.0+ {39, nullptr, "Unknown39"}, //20.0.0+ |
