nzeemin/bk0011m-tower-rev

GitHub: nzeemin/bk0011m-tower-rev

对 BK-0011M 平台上的苏联版 Tower Toppler 游戏进行完整逆向工程,产出带注释的 PDP-11 汇编源代码。

Stars: 0 | Forks: 0

# 塔游戏 (BK-0011M) 逆向工程 对一款运行在 **BK-0011M** 家用电脑上的苏联克隆版 **[Tower Toppler](https://en.wikipedia.org/wiki/Tower_Toppler)**(也被称为 **Nebulus**)的完整逆向工程。最终成果是一份带有注释的汇编源代码,编译后可生成与原版(大体上)完全一致的二进制文件。 ## 关于游戏 Tower Toppler(1987年,Epyx 出品)是一款平台游戏,玩家需要控制 Pogo 攀爬旋转的圆柱形塔,躲避敌人并进入门中以推进游戏进度。 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7e2d2658f2161949.png) 这是一款适用于 BK-0011M 的未授权克隆版,由一位苏联业余程序员(自称为“Magic Bytes Software”)于 1994 年编写。 该游戏忠实再现了原版:五座塔、相同的敌人类型、电梯平台、塔与塔之间的水下过渡画面,以及标志性的圆柱旋转效果。 ## 关于平台 — BK-0011M **BK-0011M**(俄语为 **БК-0011М**)是 20 世纪 80 年代由泽列诺格勒设计的一款苏联家用电脑。它是一台秉承 LSI-11 精神的 PDP-11 兼容机器。 **主要规格:** - **CPU:** К1801ВМ1 — 一款兼容 PDP-11 的 16 位处理器 - **RAM:** 128 KB,划分为八个 16 KB 页面 - **显示:** 256×256 像素,2bpp(4 色),双缓冲 - **声音:** 1-bit 蜂鸣器 - **存储:** 5.25 英寸软盘 - **输入:** 键盘和操纵杆 其不寻常的 bank switching 设计:在一个固定的 16 KB 代码页之上,使用两个可独立切换的 16 KB 窗口——这是该游戏能够同时管理其 sprite 数据、屏幕缓冲区和关卡地图的核心所在。 ## 仓库内容 | 文件 | 描述 | |------|-------------| | `TOWER.asm` | 带有注释的逆向汇编源代码 | | `TBLOCK.TOW` | Sprite 数据,来自原版 BK-0011M 游戏的文件 | | `TBLOCK2.TOW` | Sprite 数据,来自原版 BK-0011M 游戏的文件 | | `MAZE.TOW` | 塔数据,来自原版 BK-0011M 游戏的文件 | | `PANEL.TOW` | 数据,来自原版 BK-0011M 游戏的文件 | | `sprite-completion.spr` | 游戏通关信息的 Sprite 数据 | 该源代码使用 BKTurbo8 进行汇编,并生成可在 [GID 的 BK 模拟器](https://gid.pdp-11.ru/) 中与原版文件 `TBLOCK.BLK`、`TBLOCK2.BLK`、`MAZE.TOW`、`PANEL.TOW` 配合运行的二进制文件。 ## 逆向工程方法 1. 在 BKBTL 模拟器中收集**执行跟踪** 2. 在已知位置进行**内存转储**,以确认静态数据和初始变量值 3. 在编译输出和原版之间进行**二进制比对**,以验证每个区域 4. **迭代注释** — 跟踪特定的游戏行为以填补未知的代码路径 这种跟踪方法意味着理解是逐步加深的:从主循环和 game_frame 开始,然后沿着每个分支深入到移动、渲染、声音以及特殊序列中。 ## 许可证 原版游戏二进制文件和磁盘镜像未包含在内,其著作权仍归各自作者所有。 本仓库中带有注释的源代码和文档代表了原创的逆向工程工作,并在 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 许可下发布。
标签:PDP-11, 云资产清单, 复古计算机, 安全报告生成, 快速连接, 汇编语言, 游戏, 逆向工程