GalEMU 模拟器是如何工作的?

GalEMU 是一个解释型(interpreting)模拟器,它逐条解释运行 Galaxian 街机板所用 Z80 CPU 的操作码,代码和图形则来自玩家自行从原街机板 ROM 转储出的文件。它的唯一目标是充分且准确地“模拟”原版 Galaxian 街机板,让用户能把自己板子上的 ROM 拿到 DOS/Win95/Linux 家用电脑上运行任何使用 Galaxian 硬件的游戏。适用条件是:你手上得有对应游戏的 ROM 转储文件,网站本身不提供 ROM。

解释型模拟:它到底在做什么

理解 GalEMU 的关键在于“解释型”这个词。它不把 Z80 的机器码翻译成 x86 指令再执行,而是像浏览器里的 Java 虚拟机解释 Java 字节码那样,一条一条读取 Z80 CPU 的操作码(operand),当场解释并执行。

  • 被解释的对象:Z80 CPU 的操作码。Z80 是 Galaxian 以及同时代多款街机、计算机的核心处理器。
  • 类比:类似 Java 虚拟机解释字节码,只不过这里解释的是 Z80 的 CPU 操作码,而不是 Java 字节码。
  • 代码与图形来源:全部来自 ROM 转储——即原 Galaxian 街机板只读存储器(ROM)中信息的副本。

换句话说,GalEMU 本身只是“翻译官”,真正决定游戏内容的是你提供的 ROM 转储文件。

为什么它只针对 Galaxian 硬件

GalEMU 的设计目标非常窄:只求对 Galaxian 街机板做到充分且准确的模拟。这种“专机专用”的定位带来两个直接后果:

  1. 兼容范围有限:它只跑使用 Galaxian 硬件的游戏,不是通用街机模拟器。
  2. 准确度优先:因为不用兼顾大量不同硬件,它可以围绕这一套硬件把模拟做扎实。

如果你要找的是能跑多种基板的通用模拟器,GalEMU 不是这个方向;如果你只关心 Galaxian 硬件上的游戏,它的针对性反而是优点。

运行它需要什么

网站列出的“全速运行”要求如下:

项目 要求
处理器 Pentium 级 90MHz(在 386 上也能运行,但达不到全速)
内存 8 MB RAM
操作系统 DOS 或 Windows 95
程序本体 GalEMU 可执行文件(见下载区)
游戏数据 你想玩的游戏的 ROM 集

注意最后一项:ROM 必须自备。网站明确表示不提供 ROM 镜像,理由是这些镜像的版权归各自厂商所有,由它提供属违法。获取途径只有两条——从原街机板的 ROM 自行转储,或获取别人已经转储好的文件(网站举例提到了 www.classicgaming.com)。

网站还特别声明:任何关于 ROM 无法运行、文件缺失之类的邮件都会被转给“相关法律机构(也就是 /dev/null)”,意思是这类求助不会被受理。所以 ROM 的获取和正确性需要你自己解决。

可下载的版本

网站当时提供的文件如下:

名称 平台 大小
GalEMU v0.40.9 DOS 258K
GalEMU v0.40.9 Win32 307K
GalEMU v0.40 beta #4 Linux/X11 151K
QPlayer v1.4.3 Win32 183K
QPlayer v1.1.8 DOS 108K
QPlayer CPS-2 .DAT 文件(基于 NAZ 的 CPS-2 FAQ) — 5K

其中 QPlayer v1.4.3 的更新说明提到,该版本新增了 Kabuki 解密支持,使使用 QSound 的 CPS-1 游戏得以运行——这说明 QPlayer 是面向 CPS-1/CPS-2 相关内容的另一条产品线,与 GalEMU 本体不是同一件事。

常见卡点

  • 以为下载了模拟器就能玩:不行,ROM 必须另外准备,且网站不提供。
  • 拿它跑非 Galaxian 硬件的游戏:它的目标只有 Galaxian 硬件,其他基板不在设计范围内。
  • 在过低配置上追求全速:386 能运行,但网站给出的全速门槛是 Pentium 90MHz + 8MB 内存。
  • 向网站索要 ROM 或报错求助:按网站声明,这类邮件会被直接丢弃。

一句话总结:GalEMU 用解释 Z80 操作码的方式复现 Galaxian 街机板,ROM 自备、平台限 DOS/Win95/Linux,专为 Galaxian 硬件而生。

galemu.emuunlim.com