1 个不稳定版本
0.1.0 | 2023年7月29日 |
---|
#172 in 模拟器
38KB
940 行
Schip8
一个库,旨在提供简单的 CHIP-8 解释器后端,可以集成到您选择的任何图形库或渲染器中。
示例
快速入门
这是实现前端的基本框架。建议同时使用 [anyhow] 包。
use schip8::Chip8;
use anyhow::{Context, Result};
fn main() -> Result<()> {
let mut chip = Chip8::default();
// The load_file function needs to be implemented
let file = load_file("roms/TETRIS")?;
chip.load_rom(&file).context("Loading ROM file")?;
// Use the frontend to make this loop run at 60 Hz
loop {
// Process input
// ...
chip.tick().context("Interpreter tick")?;
// Render screen - check the examples for scaling demo
for y in 0..chip.screen.height {
for x in 0..chip.screen.width {
if chip.screen.get_pixel(x, y) {
// Draw
}
}
}
// Reset with chip.reset() if reset key is pressed
if chip.should_play_sound() {
// Play a tone
}
}
}
依赖
~0.5–1MB
~22K SLoC