#模拟器 #辅助 #无标准 #rustzx

无标准 rustzx-utils

基于 rustzx-core 的模拟器的辅助工具

3 个版本 (重大更改)

0.16.0 2023年3月31日
0.15.0 2021年10月17日
0.14.0 2021年9月1日

#367模拟器

Download history 1/week @ 2024-03-17 35/week @ 2024-03-31 1/week @ 2024-04-07 5/week @ 2024-05-26 2/week @ 2024-06-02

每月535次 下载
用于 rustzx

MIT 许可证

125KB
3K SLoC

RustZX

RustZX CI Crates.io License Discord

logo

用 Rust 编写的 ZX Spectrum 模拟器

特性

  • 纯 Rust 编写
  • 跨平台
  • 完全的 ZX Spectrum 48K 和 128K 模拟
  • 完美模拟 Z80 内核
  • 高度精确的 AY 芯片模拟
  • 蜂鸣器声音模拟
  • 支持的格式
    • tap - 磁带
    • sna - 快照,支持 48K 和 128K 版本
    • scr - 截图
  • 使用标准加载器快速加载 tap 文件
  • 精确计时
  • 完整的边框模拟
  • 摇杆模拟:Kempston, Sinclair
  • Kempston 鼠标模拟
  • 扩展 128K 键盘模拟(箭头、退格、大小写锁定键)
  • 快速保存/加载
  • 支持压缩资源(目前仅支持 .gz 格式)
  • 独立的 no_std 内核库,可用于将模拟器移植到任何地方
    • 全局分配器仍然需要,但所有动态分配都已最小化
    • 所有资源密集型功能都可以通过 cargo features 配置
  • 神秘的 Z80 功能模拟
    • WZ/memptr 寄存器(在 BIT n, (HL) 中的 F3/F5 标志显示隐藏行为)
    • Q 寄存器(在 SCFCCF 中的 F3/F5 标志显示隐藏行为)
    • 块指令标志 奇异性 (LDxR/CPxR/INxR/OTxR)

安装

  1. 确保您有C编译器和CMake来构建捆绑的sdl2
  2. (Linux特定) 安装所需的开发包: libasound2-dev
  3. 使用cargo安装它
cargo install rustzx

如何使用

rustzx --help # Show help
rustzx test.tap # Autodetect file type and run in 48K mode
rustzx --ay test.tap # Run in 48K mode with AY sound chip
rustzx -m128 --tape test128.tap # Run in 128K mode with tape
rustzx --rom tester.rom -s3 # Run with custom rom and 3x screen scaling
rustzx --nofastload test.tap # Run without fast tape loading
rustzx --mouse test.tap # Run with Kempston mouse support

在48K模式下加载磁带,请按j然后按两次Ctrl+p,就像在真正的Spectrum上一样。您应该在模拟器屏幕上看到LOAD "",然后按Enter(在128K模式下只需按Enter)。在--nofastload模式下,按Insert来播放磁带,按Delete来停止

如果您有卡顿的音频,请尝试使用较大的值设置--sound-latency选项。

默认键绑定

  • F1 - 快速保存
  • F2 - 快速加载
  • F3 - 设置正常模拟速度
  • F4 - 设置2倍模拟速度
  • F5 - 最大可能的模拟速度
  • F6 - 启用帧跟踪信息
  • F9 - 启用kempston/sinclair joy键盘层
  • Insert - 开始磁带
  • Delete- 停止磁带
  • End - 中断命令
  • Caps Lock - 大写锁定命令
  • Backspace - 删除
  • <Arrows> - 128K箭头键
  • Esc - 解锁鼠标(如果使用--mouse

在joy键盘层模式(F9)下

  • <Arrows> - Kempston joy 箭头
  • Alt - Kempston 射击
  • WASD- Siclair Joy 1 箭头
  • Caps Lock - Sinclair Joy 1 射击
  • IJKL- Siclair Joy 2 箭头
  • Enter - Sinclair Joy 2 射击

屏幕截图

参考资料

使用了大量资源来了解如何构建这个模拟器。向以下资源表示衷心的感谢,它们帮助了解了关于ZX Spectrum的很多细节。

ROM

模拟器包含ROM,由Sinclair Research Ltd(现由Amstrad plc拥有)创建。Amstrad已授权在模拟器中分发它们的ROM。在RustZX中,这些ROM包含在核心模拟器库的源代码中mod rustzx_core::zx::roms。可以通过禁用功能embedded-roms从核心库中排除嵌入式ROM。

依赖项

~1–1.6MB
~34K SLoC