From 13e76500c250a3731403867bb8888e1f533625db Mon Sep 17 00:00:00 2001 From: Sepalani Date: Mon, 13 Nov 2023 01:24:34 +0400 Subject: [PATCH] BBA/HLE: Fix GC homebrew if_config not working --- Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp index 4782a0a8b0..84c47c3f3c 100644 --- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp @@ -143,6 +143,12 @@ void CEXIETHERNET::BuiltInBBAInterface::WriteToQueue(const std::vector& data void CEXIETHERNET::BuiltInBBAInterface::HandleARP(const Common::ARPPacket& packet) { const auto& [hwdata, arpdata] = packet; + if (arpdata.sender_address == m_current_mac && arpdata.sender_ip == 0 && + arpdata.target_ip == m_current_ip) + { + // Ignore ARP probe to itself (RFC 5227) sometimes used to prevent IP collision + return; + } Common::ARPPacket response(m_current_mac, m_router_mac); response.arp_header = Common::ARPHeader(arpdata.target_ip, ResolveAddress(arpdata.target_ip), m_current_ip, m_current_mac);