2 E r7 [% @$ W" ^9 S" u本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。
1 m- p5 B7 f! I3 v我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。( J, I! ]+ z, R) V5 e. H
查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。# q/ H1 u' [2 |* j8 M u7 p
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。% R5 ]% |4 i3 E4 l
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比5 S+ s2 U, i( R
4 T8 I! g. ?2 ?" r( V- f看完图所有的地方都想通了。
7 K# O1 s# m1 u* W! A写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
0 Z% m$ E. @' s/ Y核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。* F6 w* H J) \0 C9 L' |$ a
6 q4 ^1 K) @ T" ^* t
改完实物如下。
c% G( |0 g$ F3 z8 y, ?8 z5 c3 f3 G. c- R5 Q
效果。0 p3 _" m/ z. j4 Y
|