4 `" J/ @* S; j; \; b7 G# t' l w
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。! A6 d k5 q$ u' D* S
我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。! f1 o8 v2 |7 [9 x7 E
查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。- A/ `7 K( Q% G( e
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。- i) y6 M( X2 i) a
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
. ^2 a* S: M& I s; I
$ t2 n+ @1 N7 a1 T3 d$ I看完图所有的地方都想通了。* @; F$ f: [. r6 r0 q3 u" ~4 r6 I% F) Q
写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。, }( E. E J; F, ^- F; D$ ?
核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。
5 Q. d6 n. P9 K% Z1 c9 k6 c; _& _5 c( l; j% p; C( B& j
改完实物如下。
$ q, z/ p( B: Y- O0 o( ?. `) N
! p. C# h5 w- ?6 Q0 d效果。
. ]- O$ F& B6 x6 C4 x/ ^( k |