3 l7 R' O) ^7 h8 `/ U( A
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。; s: J/ Z9 O3 s; t/ }* R" G
我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。
- O1 p- V5 s7 w% R; e" `- U查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。
) \' d$ M+ b! h' m X4 d: f5 y最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。, w5 H& X% s7 |$ Z1 |) v1 C
这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
4 M- t) g; ~3 U0 u: Z. L. c1 m9 i x1 [9 p1 x7 Y( s
看完图所有的地方都想通了。! U4 e7 X" j% m* d$ L! ~9 H
写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。 [8 C0 ]8 x! s/ o; d
核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。- q0 c% L# r7 z% `/ D2 {2 w/ @
2 Q T2 ]( D, T改完实物如下。
0 d. Q. P: T: J7 E5 a( D
7 l* {+ V- Q s* O, n效果。6 A: U* i, X# [' @
|