summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2026-02-08 11:29:40 -0600
committerJordan Woyak <jordan.woyak@gmail.com>2026-02-15 20:14:15 -0600
commit93565eb8faf1d6b99e74785dfb3b0a0298809a1f (patch)
tree4baf85a739ae8a85d04b0c3891af8d9382852dc6
parentdc4645d2556f6edc76021277fed7edcb5b6adfdc (diff)
AMMediaboard: Save the IP from AMMBCommandModifyMyIPaddr for later use.
-rw-r--r--Source/Core/Core/HW/DVD/AMMediaboard.cpp9
1 files changed, 9 insertions, 0 deletions
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);