#声音 #模拟器 #AY #vtx

应用 vtx-bin

VTX 音频格式工具箱

5 个不稳定版本

0.16.0 2023年3月31日
0.15.0 2021年10月17日
0.1.2 2021年9月1日
0.1.1 2021年5月24日
0.1.0 2021年5月16日

#131模拟器

24 每月下载次数

MITLGPL-3.0

27KB
553 代码行

RustZX

RustZX CI Crates.io License Discord

logo

用 Rust 编写的 ZX Spectrum 模拟器。

  • 观看这个演示视频 (v0.9.x)
  • 阅读 CHANGELOG.md 了解最新版本更改信息

特性

  • 纯 Rust 编写
  • 跨平台
  • 完全模拟 ZX Spectrum 48K 和 128K
  • 高度精确的 Z80 内核模拟
  • 高度精确的 AY 芯片模拟
  • 蜂鸣声模拟
  • 支持的格式
    • tap - 磁带
    • sna - 快照,支持 48K 和 128K 版本
    • szx - 快照,支持 48k 和 128k 版本,以及 zlib 压缩
    • scr - 截图
  • 使用标准加载器快速加载 tap 文件
  • 非常精确的时间控制
  • 完全的边缘模拟
  • 游戏手柄模拟:Kempston,Sinclair
  • Kempston 鼠标模拟
  • 扩展 128K 键盘模拟(箭头,退格,大写锁定键)
  • 快速保存/加载
  • 支持压缩资源(目前仅支持 .gz
  • 独立的 no_std 核心库,可用于将模拟器移植到几乎任何地方。
    • 仍需要全局分配器,但所有动态分配都已最小化
    • 所有资源密集型功能均可通过 cargo features 进行配置
  • 模拟 Z80 的未知特性
    • WZ/memptr 寄存器(F3/F5 标志在 BIT n, (HL) 中的未知行为)
    • Q 寄存器(F3/F5 标志在 SCFCCF 中的未知行为)
    • 块指令标志 奇异性 (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 游戏键盘层
Insert 开始磁带
Delete 停止磁带
End 中断命令
Caps Lock 大写锁定命令
退格键 Delete
<箭头键> 128K箭头键
Esc 解锁鼠标(如果使用 --mouse

在游戏键盘层模式(F9)

快捷键 功能
<箭头键> Kempston 游戏箭头
Alt Kempston 火箭
WASD Sinclair 游戏机1 箭头
Caps Lock Sinclair 游戏机1 火箭
IJKL Sinclair 游戏机2 箭头
Enter Sinclair 游戏机2 火箭

截图

参考

许多资源被用于找到如何构建此模拟器。非常感谢以下资源,它们帮助了解了很多关于ZX Spectrum的细节。

ROMs

模拟器包含由 Sinclair Research Ltd(现由 Amstrad plc 拥有)创建的ROM。

Amstrad 允许将它们的ROM与模拟器一起分发。

在RustZX中,这些ROM包含在核心模拟库的源代码中 mod rustzx_core::zx::roms。可以通过禁用功能 embedded-roms 来从核心库中排除嵌入式ROM。

依赖项

~6MB
~90K SLoC