#chip8 #interpreter #chip #emulator

schip8

Chip-8 和 Super-Chip 的解释器后端

1 个不稳定版本

0.1.0 2023年7月29日

#172 in 模拟器

MIT 许可证

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