' ]) c. i0 c; M3 G本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。
1 `7 X) G0 P2 d+ D) Z$ t% v: \ |我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。
' N, a" h; y# A4 @$ n& w查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。7 n- J5 \- K$ A, @! @# W9 b0 w
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。# T0 U) L7 c5 l. Q9 _4 J+ K2 k
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
5 z! G. ~$ D$ ?5 F" E, W
% m* ~& D2 d) J' C5 V8 Y4 E看完图所有的地方都想通了。
# \' x' \" n& L* I4 J: B% T% w写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
1 m4 G& x! i* F c8 ^3 N/ B1 W& ]核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。
8 l! U& x6 U# r0 P" A7 M5 k5 c! a# U( G" c" l# \
改完实物如下。9 u$ q: M" m1 L6 E" u8 K* k5 G$ o
7 s0 ]3 k" n: V6 M; J& g1 p
效果。
) H" ?' \. ]: ]8 K. I% S |