ryu_ldn::ipc::ConfigService
ryu_ldn::ipc::ConfigService
Section titled “ryu_ldn::ipc::ConfigService”Configuration IPC service implementation.
Methods
Section titled “Methods”ConfigService
Section titled “ConfigService”void ConfigService()GetVersion
Section titled “GetVersion”ams::Result GetVersion(ams::sf::Out< std::array< char, 32 > > out)Get the sysmodule version string.
@gdb{tag=“CONFIG:IPC”, msg=“GetVersion”}Returns the current version of the ryu_ldn_nx sysmodule. Format: “MAJOR.MINOR.PATCH” (e.g., “1.0.0”)outOutput buffer for version string (32 bytes, null-terminated)paramAlways succeedsreturn
Parameters:
out(ams::sf::Out< std::array< char, 32 > >)
Returns: ams::Result
GetConnectionStatus
Section titled “GetConnectionStatus”ams::Result GetConnectionStatus(ams::sf::Out< u32 > out)Get connection status (0 = service running)
Get the current connection status.@gdb{tag=“CONFIG:IPC”, msg=“GetConnectionStatus”}Returns status code indicating the sysmodule’s operational state.Status codes:outOutput status codeparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
GetPassphrase
Section titled “GetPassphrase”ams::Result GetPassphrase(ams::sf::Out< std::array< char, 64 > > out)Get the current LDN room passphrase.
Get the current room passphrase.@gdb{tag=“CONFIG:IPC”, msg=“GetPassphrase”}Returns the passphrase used to filter LDN rooms. Empty string means public/no filtering.outOutput buffer for passphrase (64 bytes, null-terminated)paramAlways succeedsreturn
Parameters:
out(ams::sf::Out< std::array< char, 64 > >)
Returns: ams::Result
SetPassphrase
Section titled “SetPassphrase”ams::Result SetPassphrase(std::array< char, 64 > passphrase)Set the LDN room passphrase.
Set the room passphrase.Changes the passphrase in memory. Call SaveConfig to persist.passphraseNew passphrase (64 bytes, null-terminated)paramAlways succeedsreturn
Parameters:
passphrase(std::array< char, 64 >)
Returns: ams::Result
GetServerAddress
Section titled “GetServerAddress”ams::Result GetServerAddress(ams::sf::Out<> out)Get the configured server address (host + port)
Get the server address (host and port)@gdb{tag=“CONFIG:IPC”, msg=“GetServerAddress”}Returns the Ryujinx LDN server address currently configured.outOutput structure with host (64 bytes) and port (u16)paramAlways succeedsreturn
Parameters:
out(ams::sf::Out<>)
Returns: ams::Result
SetServerAddress
Section titled “SetServerAddress”ams::Result SetServerAddress(const& address)Set the server address (host + port)
Set the server address (host and port)Changes the server address in memory. Call SaveConfig to persist. Requires restart/reconnect to take effect.addressNew server address structureparamAlways succeedsreturn
Parameters:
address(const&)
Returns: ams::Result
GetLdnEnabled
Section titled “GetLdnEnabled”ams::Result GetLdnEnabled(ams::sf::Out< u32 > out)Get whether LDN emulation is enabled.
Check if LDN emulation is enabled.@gdb{tag=“CONFIG:IPC”, msg=“GetLdnEnabled”}When disabled, the sysmodule does not intercept LDN calls.outOutput: 1 = enabled, 0 = disabledparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetLdnEnabled
Section titled “SetLdnEnabled”ams::Result SetLdnEnabled(u32 enabled)Enable or disable LDN emulation.
Changes the setting in memory. Call SaveConfig to persist.enabled1 = enable, 0 = disableparamAlways succeedsreturn
Parameters:
enabled(u32)
Returns: ams::Result
GetUseTls
Section titled “GetUseTls”ams::Result GetUseTls(ams::sf::Out< u32 > out)Get TLS setting (NOT IMPLEMENTED — always plain TCP)
Check if TLS is enabled for server connection.@gdb{tag=“CONFIG:IPC”, msg=“GetUseTls”}outOutput: 1 = TLS enabled, 0 = plaintextparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetUseTls
Section titled “SetUseTls”ams::Result SetUseTls(u32 enabled)Set TLS setting (NOT IMPLEMENTED — has no effect)
Enable or disable TLS for server connection.Changes the setting in memory. Call SaveConfig to persist. Requires restart/reconnect to take effect.enabled1 = enable TLS, 0 = disableparamAlways succeedsreturn
Parameters:
enabled(u32)
Returns: ams::Result
GetDebugEnabled
Section titled “GetDebugEnabled”ams::Result GetDebugEnabled(ams::sf::Out< u32 > out)Get whether debug logging is enabled.
Check if debug logging is enabled.@gdb{tag=“CONFIG:IPC”, msg=“GetDebugEnabled”}outOutput: 1 = enabled, 0 = disabledparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetDebugEnabled
Section titled “SetDebugEnabled”ams::Result SetDebugEnabled(u32 enabled)Enable or disable debug logging.
enabled1 to enable, 0 to disable @gdb{tag=“CONFIG:IPC”, msg=“SetDebugEnabled”}enabled1 = enable, 0 = disableparamAlways succeedsreturn
Parameters:
enabled(u32)
Returns: ams::Result
GetDebugLevel
Section titled “GetDebugLevel”ams::Result GetDebugLevel(ams::sf::Out< u32 > out)Get the debug log level (0=errors, 1=warnings, 2=info, 3=verbose)
Get the current debug log level.@gdb{tag=“CONFIG:IPC”, msg=“GetDebugLevel”}Log levels:outOutput log level (0-3)paramAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetDebugLevel
Section titled “SetDebugLevel”ams::Result SetDebugLevel(u32 level)Set the debug log level.
level0=errors, 1=warnings, 2=info, 3=verbose @gdb{tag=“CONFIG:IPC”, msg=“SetDebugLevel”}levelNew log level (0-3)paramAlways succeedsreturn
Parameters:
level(u32)
Returns: ams::Result
GetLogToFile
Section titled “GetLogToFile”ams::Result GetLogToFile(ams::sf::Out< u32 > out)Get whether file logging is enabled.
Check if file logging is enabled.@gdb{tag=“CONFIG:IPC”, msg=“GetLogToFile”}When enabled, logs are written to SD card at /config/ryu_ldn_nx/ryu_ldn_nx.logoutOutput: 1 = enabled, 0 = disabledparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetLogToFile
Section titled “SetLogToFile”ams::Result SetLogToFile(u32 enabled)Enable or disable file logging.
enabled1 to enable, 0 to disable @gdb{tag=“CONFIG:IPC”, msg=“SetLogToFile”}enabled1 = enable, 0 = disableparamAlways succeedsreturn
Parameters:
enabled(u32)
Returns: ams::Result
GetConnectTimeout
Section titled “GetConnectTimeout”ams::Result GetConnectTimeout(ams::sf::Out< u32 > out)Get the TCP connection timeout in milliseconds.
Get the connection timeout in milliseconds.@gdb{tag=“CONFIG:IPC”, msg=“GetConnectTimeout”}Maximum time to wait when establishing connection to server.outOutput timeout in millisecondsparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetConnectTimeout
Section titled “SetConnectTimeout”ams::Result SetConnectTimeout(u32 timeout_ms)Set the TCP connection timeout.
Set the connection timeout in milliseconds.timeout_msTimeout in milliseconds @gdb{tag=“CONFIG:IPC”, msg=“SetConnectTimeout”}timeout_msNew timeout valueparamAlways succeedsreturn
Parameters:
timeout_ms(u32)
Returns: ams::Result
GetPingInterval
Section titled “GetPingInterval”ams::Result GetPingInterval(ams::sf::Out< u32 > out)Get the keepalive ping interval in milliseconds (parsed but unused — server drives pings)
Get the ping interval in milliseconds.@gdb{tag=“CONFIG:IPC”, msg=“GetPingInterval”}How often to send keepalive pings to the server.outOutput interval in millisecondsparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetPingInterval
Section titled “SetPingInterval”ams::Result SetPingInterval(u32 interval_ms)Set the keepalive ping interval (parsed but unused)
Set the ping interval in milliseconds.interval_msInterval in milliseconds @gdb{tag=“CONFIG:IPC”, msg=“SetPingInterval”}interval_msNew interval valueparamAlways succeedsreturn
Parameters:
interval_ms(u32)
Returns: ams::Result
SaveConfig
Section titled “SaveConfig”ams::Result SaveConfig(ams::sf::Out<> out)Save current configuration to disk.
Save current configuration to SD card.Writes the current in-memory configuration to /config/ryu_ldn_nx/config.ini. This persists any changes made via Set* commands.outOutput result code:paramAlways succeeds (check out for actual result)return
Parameters:
out(ams::sf::Out<>)
Returns: ams::Result
ReloadConfig
Section titled “ReloadConfig”ams::Result ReloadConfig(ams::sf::Out<> out)Reload configuration from disk.
Reload configuration from SD card.Discards any unsaved in-memory changes and reloads from config.ini. Useful to revert changes or pick up external modifications.outOutput result code:paramAlways succeeds (check out for actual result)return
Parameters:
out(ams::sf::Out<>)
Returns: ams::Result
IsServiceActive
Section titled “IsServiceActive”ams::Result IsServiceActive(ams::sf::Out< u32 > out)Check if the LDN service is actively running.
Check if the IPC service is active.@gdb{tag=“CONFIG:IPC”, msg=“IsServiceActive”}Simple ping to verify the service is responding. If this call succeeds, the sysmodule is loaded and the IPC service is operational.outOutput: 1 = active, 0 = inactive (never returned)paramAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
IsGameActive
Section titled “IsGameActive”ams::Result IsGameActive(ams::sf::Out< u32 > out)Check if a game is actively using LDN.
Returns 1 if a game has initialized the LDN service (ldn:u), 0 otherwise. Used by overlay to determine what UI to show.outOutput: 1 = game active, 0 = no gameparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
GetLdnState
Section titled “GetLdnState”ams::Result GetLdnState(ams::sf::Out< u32 > out)Get current LDN CommState.
Get the current LDN communication state.Returns the CommState enum value representing current LDN state:outOutput state value (0-6)paramAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
GetSessionInfo
Section titled “GetSessionInfo”ams::Result GetSessionInfo(ams::sf::Out<> out)Get session information.
Returns current session info: node count, max nodes, local node ID, and whether this node is the host.outOutputstructureparamAlways succeedsreturn
Parameters:
out(ams::sf::Out<>)
Returns: ams::Result
GetLastRtt
Section titled “GetLastRtt”ams::Result GetLastRtt(ams::sf::Out< u32 > out)Get last measured RTT.
Returns the last round-trip time measurement in milliseconds. 0 means no RTT has been measured yet.outOutput RTT in millisecondsparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
ForceReconnect
Section titled “ForceReconnect”ams::Result ForceReconnect()Request the MITM service to reconnect to the LDN server.
Request reconnection.@gdb{tag=“CONFIG:IPC”, msg=“ForceReconnect”}Sets a flag that the MITM service will check to trigger a reconnect. Useful when network conditions change or connection is lost.Always succeedsreturn
Returns: ams::Result
GetActiveProcessId
Section titled “GetActiveProcessId”ams::Result GetActiveProcessId(ams::sf::Out< u64 > out)Get the process ID of the active game.
Returns the process ID of the game currently using LDN. Useful for debugging and logging.outOutput process ID (0 if no game active)paramAlways succeedsreturn
Parameters:
out(ams::sf::Out< u64 >)
Returns: ams::Result
GetDisableP2p
Section titled “GetDisableP2p”ams::Result GetDisableP2p(ams::sf::Out< u32 > out)Get whether P2P proxy is disabled.
Get P2P proxy disabled state.Returns whether P2P proxy is disabled (like Ryujinx MultiplayerDisableP2p).outOutput: 1 if disabled, 0 if enabledparamAlways succeedsreturn
Parameters:
out(ams::sf::Out< u32 >)
Returns: ams::Result
SetDisableP2p
Section titled “SetDisableP2p”ams::Result SetDisableP2p(u32 disabled)Set P2P proxy disabled state.
Sets whether P2P proxy should be disabled (like Ryujinx MultiplayerDisableP2p). When disabled, the server will not attempt P2P connections.disabled1 to disable P2P, 0 to enableparamAlways succeedsreturn
Parameters:
disabled(u32)
Returns: ams::Result