Skip to main content

config_digest

Function config_digest 

Source
pub fn config_digest(nes: &Nes) -> [u8; 32]
Expand description

SHA-256 over everything two machines must share to run one timeline from the same ROM: the region, the BoardDescription and the HardwareOptions, each in its canonical encoding.

Netplay sends it in the handshake beside the ROM hash, so peers on the same game with different settings (or differently corrected headers) refuse with a reason instead of connecting and desyncing at the first frame the difference reaches. SHA-256 rather than a 64-bit hash because the value is compared, never searched, and 32 bytes on a once-per-session message cost nothing.