16 个版本
0.2.5 | 2021 年 2 月 20 日 |
---|---|
0.2.4 | 2019 年 4 月 18 日 |
0.2.3 | 2018 年 7 月 9 日 |
0.2.1 | 2018 年 2 月 5 日 |
0.1.1 | 2017 年 11 月 19 日 |
#57 在 模拟器
145KB
4K SLoC
RuNES
https://img.shields.io/crates/v/runes.svg https://img.shields.io/crates/l/runes.svg正如我们所知,已经有很多种语言的 NES 模拟器实现(主要是 C 语言)。所有这些模拟器都有不同的准确性和可移植性。RuNES 是尝试使用 Rust 构建一个合理准确的(周期级准确)的、轻量级且高效的模拟核心库。与 sprocketnes 或 pinky 不同,RuNES 力求提供一个干净且最小的核心库,没有标准库(即没有 Box、Rc、Vectors 等),可以编译并轻松移植到嵌入式环境中。当然,还提供了一个最小但可用的基于 SDL 的 GUI,以展示其用法。
特性
- 核心库,对 Rust 核心crate的使用最小化,完全不使用 std。
- 轻量级且干净的代码库。
- 支持标准 6502 指令集(将来将考虑非官方指令)。
- 加载/保存机器状态。
- 周期级准确度(进行中)。
指南
- 核心库中永远不使用 std。
- 同时,尽可能避免不安全使用,但在需要提高性能时酌情使用:在一个非常局部的上下文中删除不必要的检查。
- 保持核心库代码库最小。
构建示例模拟器
GNU/Linux
# for Ubuntu # install Rust toolchain (https://www.rustup.rs/): # $ sudo apt install curl gcc # $ curl https://sh.rustup.rs -sSf | sh # and add $HOME/.cargo/bin to your $PATH # install SDL2 by: # $ sudo apt install libsdl2-dev # install SDL2 library git clone https://github.com/Determinant/runes.git cd runes cargo build --examples --release # build the binary target/release/examples/runes --help # see the help message
Mac OS X
# install homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # install Xcode command line tools xcode-select --install # install SDL2 brew install sdl2 # rust up curl https://sh.rustup.rs -sSf | sh # build RuNES and enjoy git clone https://github.com/Determinant/runes.git cargo build --examples --release