2 个不稳定版本

0.2.0 2020 年 10 月 25 日
0.1.0 2020 年 9 月 13 日

#92 in 模拟器

自定义许可证

285KB
7.5K SLoC

NES Core

Build Status codecov nescore crate

NES 模拟器和工具

Image not found

构建

cargo build

运行多个 ROM 测试,如 nestestnes_instr_testsprite_zero_hit 作为集成测试。它们可以使用以下命令运行

# Pull in test ROMs first
git submodule update --init --recursive
# Run all tests
cargo test

nescore

用于模拟 NES 的核心库。

到目前为止的基本内容

use nescore::{Nes, Cartridge, Button};

fn main() {
    let mut nes: Nes = Cartridge::from_path("/path/to/rom").unwrap().into();

    // Run the NES for a single frame and return video/audio buffers.
    let (framebuffer, samplebuffer) = nes.emulate_frame();

    // Update display and audio on platform of your choice.
    // ...

    // Standard controller input: Press the 'A' button
    nes.input(Button::A, true);
}

查看 nescli 以获取完整的 SDL 示例。

nescli

用于与 ROM 文件交互的一些工具。

nescli run    <ROM> # Run the ROM file
nescli run -d <ROM> # Run the ROM file with CPU debug output

nescli info <ROM>   # Display cartridge header information
nescli img  <ROM>   # Dump CHR ROM to a PNG file

nescli audio <ROM>  # Just play ROM audio

无运行时依赖