#chip8 #rom #metadata #hash

chip8_db

将 CHIP-8 数据库嵌入您的自有 CHIP-8 实现

3 个稳定版本

2.1.0 2023年7月3日
2.0.0 2023年7月2日
1.0.0 2023年7月1日

173模拟器

MIT 许可证

145KB
592

CHIP-8 数据库 RS

Github Badge Docs.rs Badge Build Badge License Badge Crates.io Badge

轻松访问 CHIP-8 数据库,从您自己用 Rust 编写的 CHIP-8 实现。

使用这些数据自动应用特定 ROM 需要的怪癖,或向用户提供有关单个游戏的更多信息。您可以在标题栏中显示游戏名称,或在大窗口下方显示 ROM 的描述。

您还可以提供有关各种 CHIP-8 平台的描述,或描述启用各种怪癖的效果。

这不是“作弊”吗?如果我正在尝试学习如何构建模拟器,为什么我要引入这个包?

不用担心。您在模拟器核心中应该使用的这个包中的唯一东西是 ROM 查找函数,以确定要应用哪些怪癖。构建您的模拟器并实现这些怪癖仍然取决于您。

这个包其余部分的目标是帮助您在模拟器的前端进行润色。如果您不会回避使用像 winiteframe 这样的包来创建窗口,那么您也不必担心使用这个包。

用法

// The CHIP-8 Database is included in this library, no need to open or download files
let db = Database::new();

// Get metadata from a rom directly
let metadata = db.get_metadata(&rom);

// Get metadata from a hash string
let metadata = db.get_metadata_from_hash("0df2789f661358d8f7370e6cf93490c5bcd44b01");
let program = metadata.program.unwrap();

println!("Title: {} ({})", program.title, metadata.hash);

// Most fields are optional in the base schema
if let Some(description) = program.description {
    println!("Description: {description}");
}

功能

虽然始终启用 ROM 数据库,但还有来自 platforms.jsonquirks.json 的附加数据,您可以选择使用 extra-data 功能包含。

chip_8_database_rs = { version = "2.0.0", features = ["extra-data"] }

依赖项

~1–2MB
~45K SLoC