3 个稳定版本
2.1.0 | 2023年7月3日 |
---|---|
2.0.0 | 2023年7月2日 |
1.0.0 | 2023年7月1日 |
173 在 模拟器 中
145KB
592 行
CHIP-8 数据库 RS
轻松访问 CHIP-8 数据库,从您自己用 Rust 编写的 CHIP-8 实现。
使用这些数据自动应用特定 ROM 需要的怪癖,或向用户提供有关单个游戏的更多信息。您可以在标题栏中显示游戏名称,或在大窗口下方显示 ROM 的描述。
您还可以提供有关各种 CHIP-8 平台的描述,或描述启用各种怪癖的效果。
这不是“作弊”吗?如果我正在尝试学习如何构建模拟器,为什么我要引入这个包?
不用担心。您在模拟器核心中应该使用的这个包中的唯一东西是 ROM 查找函数,以确定要应用哪些怪癖。构建您的模拟器并实现这些怪癖仍然取决于您。
这个包其余部分的目标是帮助您在模拟器的前端进行润色。如果您不会回避使用像 winit
或 eframe
这样的包来创建窗口,那么您也不必担心使用这个包。
用法
// 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.json
和 quirks.json
的附加数据,您可以选择使用 extra-data
功能包含。
chip_8_database_rs = { version = "2.0.0", features = ["extra-data"] }
依赖项
~1–2MB
~45K SLoC