From 93565eb8faf1d6b99e74785dfb3b0a0298809a1f Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 8 Feb 2026 11:29:40 -0600 Subject: [PATCH] AMMediaboard: Save the IP from AMMBCommandModifyMyIPaddr for later use. --- Source/Core/Core/HW/DVD/AMMediaboard.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Source/Core/Core/HW/DVD/AMMediaboard.cpp b/Source/Core/Core/HW/DVD/AMMediaboard.cpp index 1aa450a39f..1add79d05c 100644 --- a/Source/Core/Core/HW/DVD/AMMediaboard.cpp +++ b/Source/Core/Core/HW/DVD/AMMediaboard.cpp @@ -153,6 +153,8 @@ static u8 s_network_buffer[512 * 1024]; static u8 s_allnet_buffer[4096]; static u8 s_allnet_settings[0x8500]; +static Common::IPAddress s_game_modified_ip_address; + // Fake loading the game to have a chance to enter test mode static u32 s_board_status = LoadingGameProgram; static u32 s_load_progress = 80; @@ -446,6 +448,8 @@ void Init() std::ranges::fill(s_allnet_buffer, 0); std::ranges::fill(s_allnet_settings, 0); + s_game_modified_ip_address = {}; + s_board_status = LoadingGameProgram; s_load_progress = 80; @@ -1069,6 +1073,9 @@ static void AMMBCommandModifyMyIPaddr(u32 parameter_offset, u32 network_buffer_b ip_address_offset, MAX_IPV4_STRING_LENGTH); NOTICE_LOG_FMT(AMMEDIABOARD_NET, "GC-AM: modifyMyIPaddr({})", ip_address_str); + + if (const auto parse_result = Common::StringToIPv4PortRange(ip_address_str)) + s_game_modified_ip_address = parse_result->first.ip_address; } static void FileWriteData(Memory::MemoryManager& memory, File::IOFile* file, u32 seek_pos, @@ -2011,6 +2018,8 @@ void DoState(PointerWrap& p) p.Do(s_allnet_buffer); p.Do(s_allnet_settings); + p.Do(s_game_modified_ip_address); + p.Do(s_board_status); p.Do(s_load_progress);