neser 0.1.0

NESER - NES Emulator in Rust - is a NES emulator written in Rust. It aims to be a high-quality, hardware-accurate emulator that is also easy to use and extend. It supports a wide range of NES games and features, including various mappers, audio processing, and input handling. NESER is designed to be modular and extensible, allowing developers to easily add new features or support for additional hardware. It can be run using one of two frontends: a native desktop application using SDL2, or a web application using WebAssembly. The desktop application provides a high-performance, feature-rich experience with support for various input devices and display options, while the web application allows users to play NES games directly in their browsers without needing to install any software in a BYOR manner (Bring Your Own Roms).
Documentation
mod axrom;
mod bandai_fcg;
mod base_mapper;
mod bnrom_nina;
mod camerica;
#[allow(clippy::module_inception)]
mod cartridge;
mod cnrom;
mod colordreams;
mod common;
mod cprom;
mod cpu_cycle_irq;
mod gxrom;
mod hardware_type;
mod ines;
mod irem_g101;
mod mapper;
mod mapper100;
mod mapper101;
mod mapper103;
mod mapper104;
mod mapper105;
mod mapper106;
mod mapper107;
mod mapper110;
mod mapper111;
mod mapper112;
mod mapper113;
mod mapper114;
mod mapper115;
mod mapper116;
mod mapper117;
mod mapper118;
mod mapper119;
mod mapper12;
mod mapper120;
mod mapper121;
mod mapper122;
mod mapper123;
mod mapper132;
mod mapper133;
mod mapper14;
mod mapper140;
mod mapper18;
mod mapper185;
mod mapper20;
mod mapper205;
mod mapper218;
mod mapper222;
mod mapper227;
mod mapper228;
mod mapper229;
mod mapper230;
mod mapper231;
mod mapper232;
mod mapper233;
mod mapper234;
mod mapper236;
mod mapper241;
mod mapper242;
mod mapper243;
mod mapper244;
mod mapper245;
mod mapper246;
mod mapper249;
mod mapper250;
mod mapper251;
mod mapper253;
mod mapper254;
mod mapper255;
mod mapper257;
mod mapper260;
mod mapper262;
mod mapper263;
mod mapper264;
mod mapper268;
mod mapper271;
mod mapper28;
mod mapper281;
mod mapper285;
mod mapper286;
mod mapper287;
mod mapper288;
mod mapper29;
mod mapper291;
mod mapper292;
mod mapper294;
mod mapper30;
mod mapper300;
mod mapper302;
mod mapper304;
mod mapper305;
mod mapper307;
mod mapper308;
mod mapper31;
mod mapper313;
mod mapper314;
mod mapper315;
mod mapper319;
mod mapper320;
mod mapper323;
mod mapper324;
mod mapper325;
mod mapper326;
mod mapper327;
mod mapper328;
mod mapper329;
mod mapper330;
mod mapper331;
mod mapper332;
mod mapper335;
mod mapper337;
mod mapper338;
mod mapper339;
mod mapper340;
mod mapper341;
mod mapper342;
mod mapper344;
mod mapper345;
mod mapper346;
mod mapper347;
mod mapper348;
mod mapper349;
mod mapper35;
mod mapper350;
mod mapper36;
mod mapper37;
mod mapper38;
mod mapper39;
mod mapper41;
mod mapper42;
mod mapper43;
mod mapper44;
mod mapper45;
mod mapper46;
mod mapper47;
mod mapper48;
mod mapper49;
mod mapper50;
mod mapper51;
mod mapper52;
mod mapper53;
mod mapper54;
mod mapper55;
mod mapper56;
mod mapper57;
mod mapper58;
mod mapper59;
mod mapper60;
mod mapper61;
mod mapper62;
mod mapper63;
mod mapper64;
mod mapper65;
mod mapper67;
mod mapper70;
mod mapper72;
mod mapper73;
mod mapper74;
mod mapper75;
mod mapper76;
mod mapper77;
mod mapper79;
mod mapper80;
mod mapper81;
mod mapper82;
mod mapper83;
mod mapper84;
mod mapper86;
mod mapper87;
mod mapper88;
mod mapper89;
mod mapper90;
mod mapper91;
mod mapper92;
mod mapper93;
mod mapper94;
mod mapper95;
mod mapper96;
mod mapper97;
mod mapper_templates;
mod mmc1;
mod mmc2;
mod mmc2_mmc4_latch;
mod mmc3;
mod mmc4;
mod mmc5;
mod multicart_15;
mod namco118;
mod namco163;
mod nina_tengen;
mod nrom;
mod ntdec_2722;
mod rom_db;
mod sunsoft_4;
mod sunsoft_fme7;
mod super_magic_card;
mod taito_tc0190;
#[cfg(test)]
pub mod test_helpers;
mod uxrom;
mod vrc2_vrc4;
mod vrc6;
mod vrc7;
mod vrc_irq;

#[allow(unused_imports)]
pub use base_mapper::BaseMapper;
pub use cartridge::Cartridge;
#[cfg(test)]
#[allow(unused_imports)]
pub use common::{BankSwitch, BankedRom};
#[allow(unused_imports)]
pub use common::{ChrMemory, DEFAULT_CHR_RAM_SIZE, DEFAULT_PRG_RAM_SIZE, PrgRam, StateSnapshot};
#[allow(unused_imports)]
pub use hardware_type::HardwareType;
#[allow(unused_imports)]
pub use ines::{ConsoleType, InesHeader, NametableLayout, ParsedRom, RomParseError, TimingMode};
#[allow(unused_imports)]
pub use mapper::{Mapper, MapperCapabilities, MapperContext};
#[allow(unused_imports)]
pub use mapper_templates::{DualBank32Mapper, SimpleBankedPrgMapper, SimpleFixedPrgMapper};
#[allow(unused_imports)]
pub use rom_db::calculate_rom_crc32;
pub(crate) use rom_db::default_arkanoid_on_port;
#[allow(unused_imports)]
pub use rom_db::{RomDb, RomDbEntry};