% i- [" n. v; D' O9 T+ U+ ?本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。
- u- |* h: w8 Z' q0 x- K: k* a我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。: A; L) @; J) E4 E; N0 ?7 t4 z, D
查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。
7 Q" T- y) z2 P% N最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。
: u; T" C" C0 D% m4 M这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
( m4 A$ W$ L% o% k: h
7 m2 W) Q& _& }3 O5 ]看完图所有的地方都想通了。9 d' M# E5 N7 U$ J# n2 J- X8 d/ o
写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。! g: G& x3 [1 Z0 i' {4 v* V5 f
核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。5 s- F4 `4 e% l2 M3 ?
# z# z& u( U3 S: h( e改完实物如下。
2 U5 m; q. V6 I- l B, V7 t# J+ ?3 F# [0 H
效果。
* S0 x) c! q8 |2 ]4 w2 I |