; e! o& H6 K/ |8 I7 ~/ \5 Z1 ?本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。
2 [% N$ e+ \8 h7 r0 X我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。
) L* w! `0 R# Y6 A查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。
3 |, h4 _- M7 a0 H0 I最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。* T5 X/ x8 d% O. I, M; t
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比( R0 b7 g7 K o& {# `5 b& k* w; f
4 W/ @5 n, E* |7 r4 |! b看完图所有的地方都想通了。+ `- v, [% g- ~1 f+ f5 y- g
写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
3 a' L S2 c5 u# V, F核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。
. z1 h/ ?: ~9 C x8 N9 F) B8 F$ T0 J) a
改完实物如下。
1 L, _% p* Q! V$ _/ x9 F& E
2 }% r8 F8 b8 ?8 V8 [3 E9 w效果。
1 L- C$ z9 j: Q" b |