si78c 是用 C 语言编写的太空入侵者 (Space Invaders) 街机游戏,旨在精准还原 1978 年的原作。si78c 不使用原始游戏代码,而是完全重写。需要原始街机 ROM 文件来加载各种精灵和其他数据。si78c 精确再现了原作的运行方式,便于人们更直观地理解原始系统的内部运作机制。相比于传统模拟器,si78c 的代码更加直观易懂。
编译运行
依赖库:
si78c 需要用到 SDL2 库。以 Ubuntu 系统为例,安装 SDL2 开发库的命令如下:
sudo apt-get install libsdl2-dev
获取代码并编译:
- 使用 Git 克隆代码仓库:
git clone https://github.com/loadzero/si78c.git && cd si78c
- 编译生成可执行程序:
make
原始街机 ROM:
si78c 需要原始的街机 ROM 文件才能运行。已知 MAME_078 合集中的 invaders.zip 文件可用。
ROM 文件放置:
将 ROM 文件放置在一个名为 inv1 的文件夹中,并确保其校验码符合以下要求:
md5sum inv1/*
7d3b201f3e84af3b4fcb8ce8619ec9c6 inv1/invaders.e
7709a2576adb6fedcdfe175759e5c17a inv1/invaders.f
9ec2dc89315a0d50c5e166f664f64a48 inv1/invaders.g
e87815985f5208bfa25d567c3fb52418 inv1/invaders.h
运行程序:
./bin/si78c
键盘控制:
- a - 左移
- d - 右移
- 1 - 1P 开始游戏 (玩家 1)
- 2 - 2P 开始游戏 (玩家 2)
- j - 射击
- 5 - 投币
- t - 翻转屏幕 (模拟街机操作)