60 个版本

0.10.7 2024 年 8 月 8 日
0.10.4 2024 年 7 月 22 日
0.9.18 2024 年 1 月 3 日
0.9.16 2023 年 10 月 30 日
0.3.0 2022 年 7 月 10 日

#13 in 仿真器

Download history • Rust 包仓库 1/week @ 2024-04-28 • Rust 包仓库 294/week @ 2024-06-02 • Rust 包仓库 45/week @ 2024-06-09 • Rust 包仓库 6/week @ 2024-06-16 • Rust 包仓库 23/week @ 2024-07-07 • Rust 包仓库 102/week @ 2024-07-14 • Rust 包仓库 145/week @ 2024-07-21 • Rust 包仓库 11/week @ 2024-07-28 • Rust 包仓库 210/week @ 2024-08-04 • Rust 包仓库 28/week @ 2024-08-11 • Rust 包仓库

402 次每月下载

Apache-2.0

665KB
17K SLoC

Rust 14K SLoC // 0.0% comments • Rust 包仓库 Bitbake 1K SLoC • Rust 包仓库 Assembly 1K SLoC // 0.1% comments • Rust 包仓库 Python 1K SLoC // 0.1% comments • Rust 包仓库 C 126 SLoC // 0.0% comments • Rust 包仓库 Shell 11 SLoC • Rust 包仓库 INI 3 SLoC • Rust 包仓库 Forge Config 2 SLoC • Rust 包仓库

Boytacean

使用 Rust 编写的 Game Boy 仿真器 🦀。

这个仿真器是为了教育目的编写的,不应该过于认真对待。 但是的,它玩大多数 Game Boy 游戏,这很酷... 🕹️

功能

  • Game Boy (DMG) 和 Game Boy Color (CGB) 仿真
  • 简单可导航的源代码
  • Web、SDLLibretro 前端
  • 音频,具有相当准确的 APU
  • 支持串行数据传输 (连接线)
  • Game Boy 打印机仿真
  • 支持多个 MBC:MBC1、MBC3 和 MBC5
  • 使用 BESS 规范 支持使用跨兼容其他仿真器的保存状态
  • 支持使用 Game GenieGameShark 代码进行作弊
  • 可变 CPU 时钟速度
  • 准确的 PPU - 通过 dmg-acid2cgb-acid2 测试

对于 Web 前端...

  • 以移动设备为先的体验
  • 使用 Web 存储API 实现透明的 RAM 保存
  • 支持使用 Web Gamepad API 的手柄
  • 无障碍且有效的屏幕手柄
  • 震动仿真和触觉反馈
  • TheWolfBunny64 构建的专用显示调色板。
  • 全屏浏览器模式
  • 调试模式 - VRAM 和寄存器

仍有哪些功能缺失...

  • 低级周期准确系统仿真
  • Game Boy Camera 仿真
  • 支持网络对战游戏

部署

供应商 稳定 URL
Cloudflare boytacean.joao.me
Cloudflare boytacean.pages.dev
Cloudflare prod.boytacean.pages.dev
Cloudflare stable.boytacean.pages.dev
Cloudflare master.boytacean.pages.dev

构建

cargo build

Python 库

pip install .

python setup.py install

Node.js 的 WASM

cargo install wasm-pack
wasm-pack build --release --target=nodejs -- --features wasm

Web 的 WASM

cargo install wasm-pack
wasm-pack build --release --target=web --out-dir=frontends/web/lib -- --features wasm
cd frontends/web
npm install && npm run build
cd dist && python3 -m http.server

Web 前端

Web前端使用了EmuKit,这是一个UI工具包,为在Web环境中创建模拟器界面提供所需的基础设施。

配置

您可以使用一些GET参数来控制模拟器的初始行为。

参数 类型 描述
rom_url 字符串 要从其中加载初始ROM的URL,应支持CORS。
url 字符串 rom_url相同。
fullscreen 布尔值 如果模拟器应以全屏模式启动。
fs 布尔值 fullscreen相同。
debug 布尔值 如果“调试器”应以可见和以verbose模式显示信息启动。
verbose 布尔值 如果应以详述模式显示信息。
keyboard 布尔值 如果屏幕键盘应以可见状态启动。
palette 字符串 在启动时要设置的调色板名称(例如:christmashogwardsmariobros等)。

调色板

在Web版本中提供的调色板由TheWolfBunny64提供。

灵感

要了解通过模拟器创建之旅启发我的资源,请查看灵感

贡献

喜欢Gameboy模拟器吗?想要为Boytacean做出贡献?太棒了!您的贡献是使开源社区成为学习、灵感和创造如此美妙的地方的原因。

要开始,请查看我们的贡献指南。无论您是在修复错误、添加新功能还是帮助编写文档,每一项贡献都很宝贵,并且非常受赞赏!

如果您有任何问题,请随时联系。加入我们,让Boytacean成为最好的Gameboy模拟器!

许可证

Boytacean目前许可使用Apache License,版本2.0

构建自动化

Build Status crates Status npm Status PyPi Status License

依赖关系

~0.4–7MB
~50K SLoC