diff --git a/pcsx2/DEV9/net.cpp b/pcsx2/DEV9/net.cpp index 5ca4eb725d..d295a8cc76 100644 --- a/pcsx2/DEV9/net.cpp +++ b/pcsx2/DEV9/net.cpp @@ -86,16 +86,18 @@ void TermNet() NetAdapter::NetAdapter() { //Ensure eeprom matches our default - SetMACAddress(ps2MAC); + SetMACAddress(nullptr); } void NetAdapter::SetMACAddress(u8* mac) { - if (ps2MAC != mac) + if (mac == nullptr) + memcpy(ps2MAC, defaultMAC, 6); + else memcpy(ps2MAC, mac, 6); for (int i = 0; i < 3; i++) - dev9.eeprom[i] = ((u16*)mac)[i]; + dev9.eeprom[i] = ((u16*)ps2MAC)[i]; //The checksum seems to be all the values of the mac added up in 16bit chunks dev9.eeprom[3] = (dev9.eeprom[0] + dev9.eeprom[1] + dev9.eeprom[2]) & 0xffff; diff --git a/pcsx2/DEV9/net.h b/pcsx2/DEV9/net.h index 62507d18d5..f5cd3f69d9 100644 --- a/pcsx2/DEV9/net.h +++ b/pcsx2/DEV9/net.h @@ -17,6 +17,9 @@ #include #include //uh isnt memcpy @ stdlib ? +// first three recognized by Xlink as Sony PS2 +const u8 defaultMAC[6] = {0x00, 0x04, 0x1F, 0x82, 0x30, 0x31}; + struct NetPacket { NetPacket() { size = 0; } @@ -37,8 +40,7 @@ extern mtfifo tx_fifo; class NetAdapter { protected: - // first three recognized by Xlink as Sony PS2 - u8 ps2MAC[6] = {0x00, 0x04, 0x1F, 0x82, 0x30, 0x31}; + u8 ps2MAC[6]; public: NetAdapter();