dcquake.sourceforge.net 上的 Dreamcast 移植有哪些已知兼容性问题?

dcquake.sourceforge.net 是一个把 id Software 的 Quake、Quake II、Hexen II 移植到 Dreamcast 主机的非官方项目站。根据站内兼容性列表,三个移植版都有明确记录在案的已知问题:Quake/glquake 存在颜色与透明度渲染 bug,Quake II 软件渲染模式在未启用声音时会因内存耗尽无法启动,Hexen II 只支持 glhexen2 渲染且同样有透明度 bug。三个版本均不支持网络联机,CD-DA 音乐默认禁用。如果你打算在 Dreamcast 上实际运行这些移植,下面按游戏分别说明问题表现和可用的规避条件。

Quake / glquake

兼容性列表对 Quake 和 glquake 的状态标注为 working,但附带了具体缺陷:

  • quake(软件渲染):颜色有时出现异常。站点给出的推测原因是编译时使用了 -m4-single-only(double 为 32 位),导致光照代码中的数值溢出,或编译器/数学库本身存在 bug。
  • glquake(OpenGL 渲染):存在透明度(transparency)渲染 bug。

两个版本都可以使用 shareware 版数据文件或商业版 CD-ROM 数据运行,MOD/TC 也能工作。控制方面支持手柄全操作(控制台除外),同时支持鼠标和键盘。存档写入 visual memory,使用 zlib 压缩并带图标。CD-DA 音乐功能存在但默认关闭;站点提到如果通过 dcload-ip 从 PC 读取数据、同时从 CD 读取 CD-DA,可以正常工作。

Quake II

Quake II 移植只提供软件渲染(soft render),兼容性列表给出的限制比较关键:

  • 必须启用声音才能正常游玩。如果不启用声音,程序会在启动阶段就耗尽内存,无法进入游戏。
  • 仅支持软件渲染,没有 GL 版本可选。

其余控制方式(手柄、鼠标、键盘,控制台除外)、存档机制与 Quake 一致。

Hexen II

Hexen II 的限制最多:

  • 只能使用 glhexen2 渲染。原因是 Hexen II 的软件渲染路径使用了 x86 汇编代码,Dreamcast 的 SH-4 架构无法执行。
  • 存在透明度 bug,与 glquake 同类问题。
  • 控制、存档机制与其他两个移植一致。

三个移植共有的限制

项目 Quake / glquake Quake II Hexen II
渲染方式 软件 + GL 仅软件 仅 GL
已知图形问题 颜色异常 / 透明度 bug 无特别记录 透明度 bug
启动内存条件 无特别说明 必须启用声音 无特别说明
网络联机 不支持 不支持 不支持
CD-DA 音乐 默认禁用 默认禁用 默认禁用
控制方式 手柄 + 鼠标 + 键盘(无控制台) 同左 同左

三点需要特别注意:

  1. 没有网络功能。三个移植都不支持联机,只能单机游玩。
  2. CD-DA 音乐默认关闭。站点没有说明如何在普通光驱运行方式下开启,只提到 dcload-ip + CD 的组合可以正常播放。
  3. 控制台不可用。手柄操作覆盖了游戏内控制,但无法呼出控制台输入命令。

遇到问题时的排查方向

  • Quake 颜色异常属于渲染层问题,换用 glquake 可以绕开软件渲染的颜色 bug,但会碰到透明度 bug,两者不能同时规避。
  • Quake II 启动失败时,先确认声音是否已启用,这是内存耗尽的最常见原因。
  • Hexen II 如果尝试软件渲染会直接不可用,必须使用 glhexen2 二进制。
  • 透明度 bug 在 glquake 和 Hexen II 上都会出现,属于该移植 GL 实现的已知缺陷,站点未提供修复版本。

以上问题均来自 dcquake.sourceforge.net 兼容性列表的记录,具体表现可能因数据文件版本(shareware 或商业版)和运行方式(光盘或 dcload-ip)而有所不同。

dcquake.sourceforge.net