|
世嘉MD游戏机是90年代日本世嘉公司推出的16位游戏机,曾经和任天堂的SFC超任一分天下。这货在国内仿制品极多,本人修过起码几十台了,见过的版本估计不下10种
今天要修这台组装机,对应了日本MD最早期的版本。芯片功能和布局,和原装基本一样。但是品质差很远。。。这个符合当年特色!
这台机器的问题是能通电开机,有黑屏的视频信号。说明整机通电,工作,并且芯片输出符合视频的波形,只是没有具体的画面。这是典型的游戏卡程序没有起来的一类故障。
和电脑一样,主板的大部分芯片,只要任意ic或者线路有问题,都可以轻松的让电脑不运行。游戏机也一样。
今天要啰嗦的事情,并不是简单修好的问题。而是在修好和没修好之间,然后柳暗花明又一村,最后修好的过程。
先看下大致框图和主板实际图:
实际电路板:
这是标注后的主要芯片图:
框图中IC4对应主板的控制芯片。68000是主CPU,Z80是负责音频的辅助CPU。IC4是世嘉的专用芯片,控制着总线,开关机,两个CPU的控制控制信号等等。可以理解为相当于整个双CPU系统之间的粘合剂。
这台机器完全不跑程序。根据我的维修经验,以及各种工作条件和reset信号的基本测试。料定这个控制用的IC4有问题。换了之后。果然就能开机了。
然而,到这里没有结束。。。而是陷入了好几天的折腾分析中!
两张游戏卡,合卡(就是有很多游戏集合的卡)和单卡(只有一个游戏的卡),前者可以正常运行,屏幕看到菜单,但进任何一个游戏都会死机。而后者单卡,就直接白屏死机。
上面是单卡下面是合卡:
到这里,根据我以往的维修经验,两者的区别就是合卡因为只是先出菜单,没有声音。而单卡直接进游戏有声音。所以故障就和声音有关的部分。通常是音频CPU z80,控制芯片IC4或者Z80内存的问题。果断换掉这三个,依次测试。然而还是问题依旧。这下就复杂了,因为以往的维修经验到此已经用光。
接下来只能苦逼的测试所有的数据总线,控制总线,地址线的通断。全部测了一遍。换芯片和测试各种通断,可能搞了好几天时间,徒劳无功!
在山穷水尽疑无路的时侯,只能硬着头皮深入下去。这个时侯我可以肯定是音频方面的问题,具体那个芯片,哪个引脚,就需要深入的分析了。
在整理思路之后,既然知道是初始化音频方面出的问题,而且无法定位具体地点。所以只能借助于网上的游戏卡代码了。
那个时代的游戏机,主板是没有BIOS的。也就是说,程序都在游戏卡里。主机从游戏卡读取程序并运行,首先就是初始化硬件。
通过网上找到的流传出来的世嘉公司游戏例程,就可以找到具体的流程。
下图是世嘉公司的机密文档:
这是github上整理出来的:
虽然是汇编,但是程序已经做了详细标注。
初始化Z80 cpu的程序在InitZ80:
主CPU 68000,通过向IC4控制芯片映射的地址发送数据,来控制IC4的控制引脚向Z80CPU发出两个信号,reset和BusReq。意思就是让Z80复位,并且向Z80请求外设要占用总线。这个时侯Z80应该回复一个BusAck的应答信号。程序等待这个应答信号,如果OK就做另外工作,把一些指令数据,直接通过总线放到Z80的内存里。然后复位Z80。这个时侯两个CPU就是各自工作的状态了。
关于BusReq和BusAck的详细过程,可以在Z80 的datasheet上找到,如图:
手册中可以看到BusReq拉低后,BusAck确认信号跟着拉低:
正常机器的这个实际波形:
通过对比正常的机器,终于发现了问题。
正常机器的复位和紧接着的BusReq拉低有效,然后数据传输,然后再reset。这个程序表达的流程一致:
蓝色是reset,黄色是BusReq:
初始化结束后,再次reset(蓝色):
蓝色是BusReq,黄色是Z80 内存的数据,和汇编程序的表达一致:
但是这台机器,波形并不对,如图蓝色是BusReq,黄色的BusAck一直是低电平状态,并没有初始的高电平,然后随BusReq的拉低而拉低的过程:
所以这台机器的程序,就卡在了等待BusAck有效的地方,程序进入死循环:
找到了问题,接下来就简单了。经过测试,这片Z80 CPU的BusAck引脚,静态测试一切正常的(各种对地阻值等)。但并没有上电处于高电平状态,芯片不良无疑。换掉有问题的Z80 CPU :
换掉后,BusAck初始高电平,并随着BusReq的拉低而拉低,后续的波形正常了,程序也继续运行。画面出来,声音响起,维修结束!
谢谢观看,欢迎点赞转发和评论!
古董世嘉黑卡游戏机的汇编程序及其硬件复原代码解析:
https://www.mydigit.cn/thread-454606-1-1.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|