Line 80:
Line 80:
Right now, this doesn't explain how valid numbers like C2 can be generated.
Right now, this doesn't explain how valid numbers like C2 can be generated.
+
+
:The checksum is calculated as follows (pseudocode, confirmed via reverse engineering):
+
:<source>
+
checksum = (mac_address[0] + mac_address[1] + mac_address[2]) & 0xFF
+
if mac_address[0] != 0x00 and mac_address[1] != 0x17 and mac_address[2] != 0xAB:
+
checksum &= 0x7F
+
</source>
+
:The first three bytes of a MAC address is the "Organizational Unique Identifier" (OUI), and the specific one checked (00:17:AB) is called "scFirstMakerCode" within the RFL code. If the OUI is not set to that value, then the most significant bit will be cleared from the checksum.
+
:An OUI of 00:16:AC, which has a sum of 0xC2, would result in a checksum of 0x42, while an OUI of 00:17:AB, which also has a sum of 0xC2, would result in a checksum of 0xC2. [[User:Slp32|Slp32]] ([[User talk:Slp32|talk]]) 17:26, 5 February 2024 (CET)