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 街机板做到充分且准确的模拟。这种“专机专用”的定位带来两个直接后果:
- 兼容范围有限:它只跑使用 Galaxian 硬件的游戏,不是通用街机模拟器。
- 准确度优先:因为不用兼顾大量不同硬件,它可以围绕这一套硬件把模拟做扎实。
如果你要找的是能跑多种基板的通用模拟器,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 硬件而生。