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 音乐 | 默认禁用 | 默认禁用 | 默认禁用 |
| 控制方式 | 手柄 + 鼠标 + 键盘(无控制台) | 同左 | 同左 |
三点需要特别注意:
- 没有网络功能。三个移植都不支持联机,只能单机游玩。
- CD-DA 音乐默认关闭。站点没有说明如何在普通光驱运行方式下开启,只提到 dcload-ip + CD 的组合可以正常播放。
- 控制台不可用。手柄操作覆盖了游戏内控制,但无法呼出控制台输入命令。
遇到问题时的排查方向
- Quake 颜色异常属于渲染层问题,换用 glquake 可以绕开软件渲染的颜色 bug,但会碰到透明度 bug,两者不能同时规避。
- Quake II 启动失败时,先确认声音是否已启用,这是内存耗尽的最常见原因。
- Hexen II 如果尝试软件渲染会直接不可用,必须使用 glhexen2 二进制。
- 透明度 bug 在 glquake 和 Hexen II 上都会出现,属于该移植 GL 实现的已知缺陷,站点未提供修复版本。
以上问题均来自 dcquake.sourceforge.net 兼容性列表的记录,具体表现可能因数据文件版本(shareware 或商业版)和运行方式(光盘或 dcload-ip)而有所不同。