什么叫做Dump游戏ROM?

Demon


  序言
  大约是八年前吧, 我在西南工学院读书时已接触大型游戏机(俗称的街机),当时主要是负责装配及维修。因偶然的机会,需要更改游戏机的程序(当时主要是更改一些赌博的机器),这些机器的 CPU是Z80的,我的专业是自动化控制,对单板机和单片机的原理等当时是非常熟悉的。Z80的原理及指令等都是熟记如流(不信吗?这里有一段小插曲,我们可以轻松一下。我在大学二年级的微机原理期末考试答题时间用了40分钟,成绩是98分,只是有一道判断题被我在交卷前半分钟由正确的改成错误的,老师扣了我两分。 :-( 屈居第二名,两个第一名都是全抄我的,他们100分。 发成绩那天,老师在班上宣布: 我们班有三位同学的考卷一模一样,除了名字不一样,其余全都一样,连文字论述题都一字不差。这时我心里直骂这两人是傻蛋……成绩宣布时,气得我直吐血,现在的同学聚会,还经常把这事当成笑料)。 好了, 言归正传: 这些游戏机的主板的 ROM 是 8-10 片的 2764,我在 Apple II 的 CP/M 操作系统下, 仿真了 Z80的运行环境,很快改完了程序,写入 EPROM 中,一切 OK !
  后来接触到游戏机,如: 1943, 1943改, 铁板阵,冲破火网,到后来的街霸。当时见到游戏主板上的 CPU 是 68000 了, EPROM 是 27C100, 不禁为国外的技术暗地里叫好。于是好奇想复制这些 EPROM, 当时的技术条件是不可能的。因为没有能够读写这麽大容量 EPROM 的开发器,即使有,那价格也不是我们学生阶层能接受的;只有因陋就简,在单片机开发器上加上自己的一些土设备成功的读出了这些芯片。这就是开始。。。。。。日后毕业分配到长虹,又搞了半年多的游戏机开发,这时已有了许多高档的设备,成功的 Dump 了许多游戏 ROM, 当时没有整理,只是在去年在网上偶然的机会, 看到 Demon 的模拟器乐园时, 才意识到以前保留的 ROM 有用, 于是整理了一些 Callus 的游戏放在我的主页。多年的实践,积累了一些经验,现写出来,姑且当抛砖引玉吧。
  Dump 游戏,难吗?
  许多网友 E-Mail 我, 问我这个问题." Dump ROM, 难吗? " 其实一点也不复杂, 只要你手上有能够 EPROM 烧录器,当然是能支持的 EPROM 容量越大的越好.还要有游戏机板的来源(最好是你是开游戏店的 :-) ).如果是借别人的,请小心插拔 EPROM, 不要搞坏了.如果具备上述条件,你可以开工了.
  需要的设备
  世面上的EPROM烧录器很多,价格从300元到高达3000元的都有,大家量体裁衣吧.毕竟 Dump ROM 是无报酬的事,只是大家的业余爱好罢了.我现在的设备是 ALL03, 加上各种 CPU, EPROM 及 EEPROM 适配器花了 6000 多,当然这里有许多是在 Dump ROM 时用不上的.大概你只要 ALL03 就够了.我业推荐大家使用它,价格在 1000 元左右,它可以读写 PROM, EPROM, EEPROM, PAL, GAL, CPU 等多种器件.通常现在的游戏机开发商为了保护他们的利益,游戏主板上都有一些 PAL, GAL 等加密器件,ALL03 基本上能读出这些器件.如果你想要便宜的,在后面我提供了一个自己制作的小的 EPROM 读出装置及相应的程序。
  工作步骤:
  连接好主机和 EPROM 烧录器,确认其能正常工作。按顺序取下游戏主板上的 EPROM 或 PROM 芯片,作上标记( 养成这样的好习惯,对你下一步的整理及恢复游戏板有很大的帮助 )。根据你了解的硬件知识,仔细浏览游戏机主板,了解板上所使用的 CPU, MPU 等, 作下记录。 仔细观察主板上在 EPROM 等附近是否有 PAL, GAL 芯片, 这些芯片往往起了加密的作用。 你也需要尽量的读出它们。 据我所知, MOTOROLA 等厂家的 CPU 里还有片内的 ROM, 一般容量不是很大, 但游戏厂家也有可能用到它, ALL03 利用 CPU 转换座也可以读出这些片内东西。 确定 EPROM 的型号及容量, 读出所有的数据,生成各个镜像文件, 作好原始记录。如果你能成功的 Dump 出这些,已表明你已成功的 Dump 出了一个游戏。 可以进入下一步工作了。 :-)
  下一步: 整理
  整理好原始记录,如果你有很高的微机水平,你能区分出哪些 ROM 镜像文件是主程序, 哪些是字符和图象ROM, 哪些是声音等, 那就太好了。你可以在附带的 ROM 说明中写出。 如果你不懂这些,也不要紧,让模拟器作者去探索吧。。。。。。 所有的文件打包放在网上即可。 不放再网上, 除非你自己写模拟器程序。 :-)
   
  附录:
  一个花费很小的简易 EPROM 读出器 你是否希望你能备份你的机器的 EPROM ? (是的! EPROMs 中的数据是有一定寿命的)。 是否你在修复主板时常常为复制 ROM 而烦恼呢 ? 是否你能承受那种商业的 EPROM 烧录器的价格吗 ? 如果你会使用微机, 并且你会使用烙铁 ? 那麽你可以自己制作一个这样的设备了! 它能使你通过微机的并口读出 27128 (16Kx8), 27256 (32Kx8) 和 27512 (64Kx8) EPROM 芯片内容 - 如果作一点小的改进, 它能烧录新的 EPROM 芯片, 通过一个小的适配器它能适用于其它存储芯片, 甚至高达 128Mbit (是的, 没错, 是 Mbit!), 和某些类型的微处理器芯片。
  工作原理 参看下面的电路图, 你可能会不相信: 这个 ROM 读出器是如此的简单。 ROM 芯片被强制进入 "enable" 状态是通过激活它的输出 ( output enable ) 和片选输入设置为低电平 ( chip select inputs low ) 来实现。 地址的产生是用两片 4040 12-bit 二进制记数 IC, 数据通过微机的并行打印口的数据线读入。 微机能同时复位计数器, 且给提供给每个计数器独立的时钟信号。
  开始读一个 EPROM, 第一步是复位计数器到 000000000000, 通过主机并口的 _STROBE 信号使两个计数器开始工作。 当数据的第一个字节 ( byte ) 通过数据线读出后。 主机并口发送 INIT 信号给低位的 4040 (IC1)。 下一个字节 ( byte ) 才能通过并口数据总线读出。 这个过程重复进行, 直到计数器向上记数到 2^12。 直到读完芯片的所有数据。
  元器件清单
  2 x 4040 (MC74HC4040) 12-位二进制计数器芯片
  1 x 25-芯孔式连接头
  1 x 28-芯 IC ZIF 插座
  一小块印制板
  14-线的扁平电缆
  导线
  逻辑测试仪,如: 逻辑笔等。 不是必须的。
  估计制作时间需要 ( 技术比较熟练的话 ) 30-45分钟,许多的导线需要切短, 剥头, 焊接, 这都要花费你许多时间的。
  技术上的问题
  随机性出错: 当你 dumping ROM 时, 请不要用手接触芯片, 否则将导致读出的内容不正确。
  所有读出的字节相同: 如果读出的字节是相同, 通常是 "FF", 你的微机的并口可能被设置成 SPP (unidirectional) 模式。 请检查 CMOS 的设置。 确认你的微机的并口是设置为 "EPP" 模式 ( EPP1。7 和 EPP1。9 是相同的。 不要设置为 SPP 或 ECP 模式 )。 如果你的微机不是用 CMOS 设置的, 可能你要参看主板或 I/O 卡的并口跳线设置。
  错误的时钟将引起字节数据的丢失: 如果你遇到因时钟错误引起问题时, 首先请确认你的机器的并口是否设置成 ECP 模式(你可以在当前的机器的 CMOS 设置里找到关于并口的设置参数屏,老式机器是使用跳线或跨针的,请参阅主板说明书来进行设置)。 如果还不能解决, 你可以放一棵 22pF 金属电容在计数器 IC 电源脚 ( power supply ) 和 EPROM 之间 ( 电源滤波 ), 和一棵 33k pullup 电阻在时钟 ( clock ) 和计数器 IC 的复位 ( reset ) 脚 ( 使得 TTL/LS 同 CMOS 电平的匹配 )。 这些在我们日常使用的微机中是不常遇到的。
  程序及原理图:
  这里你可以得到这个自制的小东西的程序: epread。zip。原理图在这里: eprom.zip
   
  后记
  文章到此告一段落, 在以后的 Dump ROM FAQ中,我将汇集一些有用的东西, 继续下去。作者的水平有限,难免有不足之处, 请大家指正。 本来写本文不是我的意思, 但经不住再三请求, 才动手涂鸦了几笔。 如果你有好的想法及方法, 请与我联系。 大家共同探讨, 共同进步。 如果你成功的 Dump ROM, 请别忘了通知我一声。"独乐乐,不如与众乐乐!"
  祝大家好!!!

高晶 □ 葵花宝典 □ 游戏杂谈