19 个版本 (1 个稳定版)

1.0.0 2022 年 8 月 9 日
0.1.5 2022 年 7 月 25 日
0.1.3 2021 年 11 月 9 日
0.0.12 2021 年 11 月 4 日
0.0.10 2021 年 10 月 24 日

#519配置

Download history 6/week @ 2024-05-21 1/week @ 2024-06-04 3/week @ 2024-06-11 2/week @ 2024-06-18

每月 71 次下载
3 crates 中使用

MIT 许可证

67KB
1K SLoC

octopt

crates.io docs.rs dependency status

octopt 是一个处理 CHIP-8 配置设置的库。

它包含旨在表示所有可能的 CHIP-8 选项的 Rust 数据结构。它还可以将这些结构序列化和反序列化到 Octo 的标准 JSON 格式和 C-Octo 的类似 INI 格式。

请参阅 octopt 文档 以获取详细信息。该文档相当详尽。

理由

CHIP-8 是一个用于播放用解释字节码编写的简单计算机游戏的虚拟机。它自 1977 年以来一直存在,并且有许多略有差异的实现。

CHIP-8 游戏通常需要其模拟器(实际上是解释器)具有特定的行为才能正确运行,但由于仅通过查看游戏字节码无法知道它期望的行为,因此需要额外的元数据来指导模拟器如何运行游戏。这些元数据可以以 JSON 的形式出现——如 Octocarts(参见 decart)和 CHIP-8 社区存档——或者是一个 INI 文件,如 C-Octo

用例

目前有许多 CHIP-8 模拟器(其中许多是用 Rust 编写的),但大多数只支持 90 年代制作的几十款游戏,因为它们遵循了一个非全面的教程。(不恰当地自吹自擂:我编写了一个教程,涵盖了重要的 CHIP-8 变体:编写一个 CHIP-8 模拟器。)

如果您正在用 Rust 开发 CHIP-8 模拟器,则可以使用此库作为指南,了解您应该(或可以)包含哪些配置选项以支持过去 44 年中制作的几乎所有 CHIP-8 游戏。

您可以允许用户提供 CHIP-8 游戏以及与其关联的 .octo.rc 文件(C-Octo 使用),该文件包含游戏运行所需的设置,并可以使用 octopt 解析该文件。

或者您可以使用库 decart,它使用了 octopt,以便让用户加载带有游戏内预置设置的 Octocarts。

如果您找到了一个酷用的案例,请告诉我!

参阅

  • OctoC-Octo,CHIP-8 游戏的集成开发环境
  • CHIP-8 社区存档,公共领域 CHIP-8 游戏和元数据数据库
  • decart,一个用于从 Octocarts 编码和解码 CHIP-8 元数据的 Rust 库
  • deca,一个使用此库支持各种 CHIP-8 游戏的 CHIP-8 模拟器
  • termin-8deca 的终端前端

依赖

~5–7MB
~129K SLoC