+ v, q) D+ v1 V% O; {; H
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。
! |3 E# N$ V4 ~& x/ ^- Q5 o/ L我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。
, l6 ^% l% n3 ]* _0 q查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。) c. F6 ?3 y3 }0 o# E/ C" F% A \
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。0 }% a/ a" b1 s
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比7 U( t7 S( b8 R# N$ X* j
) A, N% b% ?' `% B$ [看完图所有的地方都想通了。% S% E4 e( c3 A5 }/ ?
写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
+ a. S, w; R5 r- [! U5 f, R' w核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。
2 G( A* L% }: g6 @3 k
' v" A' H/ g! A, O5 W% ]- T改完实物如下。2 Y: {' S' A/ l! R/ w6 v$ C
2 M1 V8 R6 l6 E8 H# ^# Z
效果。
8 p* X: c0 [+ x0 ~' `7 h2 ^1 Z |