pub enum Cic {
Cic6101,
Cic6102,
Cic6103,
Cic6105,
Cic6106,
}Expand description
The CIC (boot-security copy-protection) lockout-chip variant.
The PIF and the CIC exchange a seeded challenge/response at boot; the variant fixes the seed + checksum the IPL3 expects. Skeleton — the handshake itself is a roadmap phase.
Variants§
Cic6101
6101 (early NTSC: Star Fox 64).
Cic6102
6102 / 7101 (the common NTSC/PAL variant).
Cic6103
6103 / 7103.
Cic6105
6105 / 7105 (uses the X105 IPL2 ramp).
Cic6106
6106 / 7106.
Implementations§
Source§impl Cic
impl Cic
Sourcepub fn from_ipl3(rom: &[u8]) -> Self
pub fn from_ipl3(rom: &[u8]) -> Self
Identify the CIC from the cartridge IPL3 (rom[0x40..0x1000]) by its
CRC-32 — the standard fingerprint (cen64 si/cic.c, N64brew CIC-NUS).
The core never consults a per-game database (ADR 0003/0004); this reads
only the ROM’s own boot code. An unknown IPL3 (homebrew, e.g.
n64-systemtest, which ships its own) falls back to 6102 — the seed only
feeds the boot handshake, and a custom IPL3 does not depend on the stock
checksum path (the same fallback cen64 documents).
Sourcepub const fn boot_secrets(self) -> CicBootSecrets
pub const fn boot_secrets(self) -> CicBootSecrets
The CicBootSecrets for this variant. All modeled variants are the
NTSC members; the 7xxx PAL twins share the same seeds and checksums, so
region is a separate axis (the PIF SM5 ROM, not the CIC, is region-locked).