.changelog/3431.md
Config::NETPLAY_INPUT_BUFFER_SIZE so that NetplaySettings.frameDelay is applied to Dolphin's emulation engine immediately after a session starts.queryDolphinTraversalCode() on the ObjC bridge so the hosting UI can surface the relay code for out-of-band sharing; the code is stored in NetplayRoom.traversalCode and also reflected in NetplayRoom.hostAddress for traversal-hosted sessions.dolphinTraversalCode stub — Replaced the empty stub (always returned nil) with a live query via NetPlayServer::GetInterfaceListToSend() guarded by the traversal-client availability check.@try/@catch (NSException *) blocks in startNetplayHostOnPort: and joinNetplayHost: replaced with C++ try { } catch (const std::exception &) blocks; @try/@catch only catches ObjC exceptions and would silently swallow C++ exceptions thrown by Dolphin's constructors.queryDolphinTraversalCode, dolphinNetplayStatus, and stopNetplay all use @synchronized(self) to prevent use-after-free races where a concurrent stop could reset the server pointer while another read was in progress.