一键导入
rom-scanner-hashing
Use this skill when implementing ROM scanning and CRC hashing logic for matching local files against the GameBase64 database.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use this skill when implementing ROM scanning and CRC hashing logic for matching local files against the GameBase64 database.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use this skill when writing scripts to ingest, parse, and sanitize legacy GameBase64 exports into clean JSON or SQLite for 64Box.
Use this skill when implementing the 64Box desktop wrapper with Tauri and Rust, including secure IPC, local scanning, and external emulator launch flows.
Use this skill when implementing the WebAssembly C64 emulator bridge for web and iOS, including ROM loading, touch controls, and mobile-safe initialization.
| name | rom-scanner-hashing |
| description | Use this skill when implementing ROM scanning and CRC hashing logic for matching local files against the GameBase64 database. |
| version | 1.0.0 |
| author | 64Box |
| tags | ["rom-scanner","crc32","rust","tauri","zip"] |
Games database..zip, .d64, .t64, .tap, or .crt files to metadata.Never load entire files or large file sets into RAM at once.
std::fs::read(path) or std::fs::read_to_string(path) for scanner hashing.std::fs::File, std::io::BufReader, and crc32fast to hash uncompressed files in chunks.use crc32fast::Hasher;
use std::fs::File;
use std::io::{BufRead, BufReader};
let file = File::open(path)?;
let mut reader = BufReader::new(file);
let mut hasher = Hasher::new();
let mut buffer = [0; 8192];
while let Ok(count) = reader.read(&mut buffer) {
if count == 0 { break; }
hasher.update(&buffer[..count]);
}
let crc = hasher.finalize();
Most official GameBase64 collection files are zipped.
zip or async_zip.SELECT GA_Id, Name FROM Games WHERE CRC = ? COLLATE NOCASE
tokio::task::spawn_blocking or tauri::async_runtime.Example event payload:
tauri::Window::emit("scan-progress", { "scanned": 1500, "total": 30000, "current_file": "Commando.zip" })