Skip to main content

Crate rustyn64_core

Crate rustyn64_core 

Source
Expand description

rustyn64-core — the Bus + the fractional master-clock lockstep scheduler.

The single crate that knows about every chip; it owns the Bus (all mutable state) and the System run loop, implements each chip’s narrow bus trait, and re-exports the chip crates’ public types so downstream consumers (rustyn64-frontend, rustyn64-test-harness) depend on rustyn64-core, not the chip crates directly. See docs/architecture.md.

#![no_std] + alloc; the determinism contract (no system time / OS RNG / thread scheduling) is enforced here — the scheduler is one timeline.

Re-exports§

pub use bus::Bus;
pub use bus::MiInterrupt;
pub use bus::RDRAM_SIZE;
pub use bus::RcpRegs;
pub use scheduler::COUNT_DIVIDER;
pub use scheduler::CPU_DIVIDER;
pub use scheduler::CPU_HZ;
pub use scheduler::MASTER_HZ;
pub use scheduler::PHASE_PERIOD;
pub use scheduler::PIF_DIVIDER;
pub use scheduler::RCP_DIVIDER;
pub use scheduler::RCP_HZ;
pub use scheduler::SI_DIVIDER;
pub use scheduler::System;
pub use vi::Vi;
pub use rustyn64_audio as rustyn64_audio_crate;
pub use rustyn64_cart as rustyn64_cart_crate;
pub use rustyn64_cpu as rustyn64_cpu_crate;
pub use rustyn64_rdp as rustyn64_rdp_crate;
pub use rustyn64_rsp as rustyn64_rsp_crate;
pub use rustyn64_audio as audio;
pub use rustyn64_cart as cart;
pub use rustyn64_cpu as cpu;
pub use rustyn64_rdp as rdp;
pub use rustyn64_rsp as rsp;

Modules§

boot
Retail cartridge boot — the console boot a real N64 performs, moved here from the test harness so the frontend can boot a game too (both consume it).
bus
The Bus owns everything mutable.
scheduler
The canonical master-clock scheduler — the heart of the emulator.
vi
Video Interface (VI) register file.

Functions§

version
Returns the crate version string.