2 h+ C$ C1 z7 ]9 F9 W
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。
3 r+ F4 C) `5 ~& s/ H我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。0 v/ q* j1 H; `- x+ {7 D; E) R+ C
查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。& j4 Q+ F8 e" s! R$ T9 T
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。; O. `# @7 M& @3 s: M, P
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
) X5 S8 ^; ]& Z- \6 |& G$ y- n9 i5 _8 D9 A9 k8 X( O& t
看完图所有的地方都想通了。
. g+ j, P% B7 E8 z写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
7 [; ?# \# [6 |( q0 h核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。6 d" ^# G6 M, o8 V1 A6 ]/ G+ F2 z
- F* y \) d% S# B/ m9 p) u3 \% n
改完实物如下。
0 ]! r# V& `' p
& f; W: ^3 ~/ t0 W! k效果。' Z6 a7 S% I, |/ l B
|