nescore/
lib.rs

1///
2/// nescore/lib.rs
3///
4/// @author Natesh Narain <nnaraindev@gmail.com>
5///
6
7// Modules
8#[macro_use] mod bit;
9#[macro_use] mod common;
10
11mod nes;
12mod cpu;
13mod ppu;
14mod apu;
15mod mapper;
16mod joy;
17
18#[cfg(feature = "events")]
19pub mod log;
20pub mod cart;
21pub mod asm;
22pub mod utils;
23
24// Public re-exports
25pub use nes::Nes;
26pub use cart::{Cartridge, CartridgeLoader};
27pub use joy::{Controller, Button};
28
29/// NES system specifications and associated types
30pub mod specs {
31    pub use super::ppu::{DISPLAY_WIDTH, DISPLAY_HEIGHT};
32
33    pub use super::apu::{Sample, APU_OUTPUT_RATE};
34    pub type SampleBuffer = Vec<super::apu::Sample>;
35}
36
37#[cfg(feature="events")]
38pub mod events {
39    pub use super::cpu::events::*;
40    pub use super::apu::events::*;
41}