# f$ C: k/ {- C( N8 }. m: j( l9 a
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。, f& S+ |# y5 d- }0 e/ D
我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。
2 k& { F: \* X* y查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。, H& V3 }. Q4 a6 I6 Z* o
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。8 o+ l: B' ^% r# A% u% E
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
" V+ L$ o# q6 t7 b0 H; Y9 R0 T* i* ]
看完图所有的地方都想通了。% ]8 c/ W, u, P1 ]* i
写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。( h7 q- A& Q& `4 [' g
核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。
6 D3 w& R7 m/ a2 D9 Y# I. J' r2 q( q/ V% ?4 C* i
改完实物如下。
1 o3 B$ \& B& ?. Q# Z# r, O/ {& b8 ?" |0 T% B( O1 m8 P
效果。
/ L; `' l) ]5 B7 o- M |