2 个不稳定版本
0.2.0 | 2020 年 10 月 25 日 |
---|---|
0.1.0 | 2020 年 9 月 13 日 |
#92 in 模拟器
285KB
7.5K SLoC
NES Core
NES 模拟器和工具
构建
cargo build
运行多个 ROM 测试,如 nestest
、nes_instr_test
和 sprite_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