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 | |
| 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.
| -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+ |
