Gameboy Terminal Server (gbts) 是什么

gbts 是一个把 Nintendo Gameboy 当作其他系统(例如 PC 或智能卡带)廉价智能显示终端的项目。它由 Michael Hope 在 Invention City 的委托下开发,现托管在 SourceForge,已不再活跃开发,主要作为对 gbdev 社区的一项服务保留。如果你需要一套现成、持续维护的 Gameboy 图形终端方案,gbts 不适合;如果你在研究早期 Gameboy 与 PC 的通信方案、或想基于已有代码做二次开发,它仍有参考价值。

它提供什么能力

gbts 在 Gameboy 一侧提供了一套绘图原语和事件机制:

  • 绘图原语:Draw image(绘制图像)、Draw line(画线)、Set Font(设置字体)、Draw proportional text(绘制比例文字)等。
  • 命令缓存:对频繁使用的命令进行缓存以提升速度。
  • 事件系统:向上层传递诸如“用户在 (x,y) 处按下 A 键”“定时器到期”这类事件。
  • 事件绑定:事件可以挂接到已缓存的绘图原语上。例如定时器到期触发绘制图像从而形成动画,或点击某个区域时对该区域做 XOR 操作,让用户在客户端决定下一步之前就得到即时反馈。

与 PC 的通信方式

通信通过一块定制卡带实现。该卡带包含:

组件 说明
64k flash 存储用
RS232 串口 与 PC 通信
bank 切换器 切换整个低 32k 页

卡带的原理图和 PCB 设计以 Protel 格式一并提供。

当前状态与已知限制

  • 不再活跃开发,仅托管在 SourceForge。
  • 最初使用 2.1.0 之前的 gbdk 构建版本和 maccer 编译,未在最新版 gbdk 上测试过。作者认为把它移植到新版 gbdk 会是个有意思的项目。
  • 文档以 DocBook 风格的 SGML 编写;Debian Linux 中有预构建包,可以把这些文档转成更实用的格式。

下载与相关资源

  • 0.50(初始)版本:页面提供下载入口。
  • Protel 原理图、PCB 布局与库:页面提供下载入口。
  • CVS 访问:页面有说明;如需修改或改进 gbts,可联系 Michael Hope 获取 CVS 权限。
  • gbdk:页面提供获取入口。
  • 硬件资料:参见 Reiner Ziegler 的 ReadPlus 页面。

截图展示了什么

页面附带的几个演示都只是外壳程序,用于展示库的能力:

  • 展示多边形、图像、线条、旋转并 XOR 的圆,以及比例文字绘制。
  • 展示直接从 X Windows 的 .bdf 字体绘制的比例、客户端侧字体。
  • 最终演示中所有图标均可点击,“Applications”菜单可点击,时间中的“:”由定时器控制闪烁。

参与者和来源

  • Pascal Felber:项目起点。
  • Reiner Ziegler:原始硬件设计。
  • Michael Hope:软件、硬件实现,并“generally overdid things”。
  • Invention City:提出构想。

如果你打算继续这个项目,最现实的切入点是把它迁移到较新的 gbdk 上,并确认定制卡带的硬件是否还能复现。

gbts.sourceforge.net