. B) Z/ y. V& x. m* K/ q3 Q- j. y
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。) p* C6 h8 H F5 G
我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。, Q( ]$ Q- a6 H2 T# q' f# D
查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。1 D+ e& l H4 F+ A L! v. s
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。
1 h r% N! ^% p- k' U这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
" y, [/ Z* }* q9 t. U" A5 q& g* h$ D+ L4 m+ ?
看完图所有的地方都想通了。
$ O6 W) S5 q# ?! t7 l" h9 e2 s# F写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
9 g: n. ]! _+ T, ?* f核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。
; `% Y3 {% V- U; y: w
& W9 G u0 d% y( W) k4 p) D6 Z# H改完实物如下。: u$ _, O6 d; S, c5 D5 S. ?! ^
) q9 K) P! d; ?# o7 Y" Y& z
效果。
: \! I/ ~5 t4 e8 V: I3 V0 i |