#nes #control-flow #emulator #toy #generator #rom #compatibility

nightly bin+lib lochnes

Rust编写的玩具级NES模拟器

2个版本

0.1.1 2022年7月2日
0.1.0 2019年10月20日

#119 in 模拟器

MIT 许可证

6MB
5K SLoC

包含 (ZIP文件, 6KB) tvpassfail.zip

Lochnes

𝕃𝕆ℂℍℕ𝔼𝕊

这是一个Rust编写的玩具级NES模拟器,它使用生成器进行控制流。我在这篇博客文章中介绍了一些实现细节:[https://kyle.space/posts/i-made-a-nes-emulator/](https://kyle.space/posts/i-made-a-nes-emulator/)

注意:Lochnes使用nightly特性!项目被固定在Rust的一个特定nightly版本上,在rust-toolchain.toml中。Rustup应确保在从仓库根目录构建或运行项目时安装适当的Rust版本。

兼容性

兼容性非常差!它不支持音频输出、滚动或大多数NES ROM映射器。使用NROM或UXROM映射器的游戏应该可以加载,而且不使用滚动的游戏应该可以大部分正常运行。

用法

在使用Lochnes之前,您需要安装SDL2(请参阅README以获取针对您的平台的rust-sdl2的不同安装选项)

可以使用以下方式启动Lochnes:

$ cargo run --release -- rom.nes

或者,如果您想使用捆绑的SDL2版本:

$ cargo run --features sdl2/bundled --release -- rom.nes

如果256×240对您来说太小,请使用--scale来放大窗口

$ cargo run --release -- rom.nes --scale=3

如果您想查看调试输出,请多次传递-v(警告:5个v会使一切变得非常慢,甚至不要尝试6个)

$ cargo run --release -- rom.nes -vvvvv

控制

输入绑定目前不可自定义,因此以下是当前的输入绑定:

  • 退出:[Esc]
  • A:[Z],(Xbox:A)
  • B:[X],(Xbox:B或X)
  • 开始:[Return],(Xbox:开始)
  • 选择:[\\](反斜杠键),(Xbox:Back)
  • ///:[Shift]/[Ctrl]/[Alt]/[Del](箭头键),(Xbox:D-pad)

许可证

MIT许可证

依赖项

~20MB
~416K SLoC