3 t% n. x& e" e' b. b A, O
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。
5 B7 w2 ^6 f1 C5 x( P& h我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。
; u0 ~9 m/ k% Z. G+ N! G查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。; z0 j+ t/ J9 I9 f" e; k0 K
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。
2 F& K/ M& }& P6 k这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比
- [1 E4 ]: Q; x2 S- H6 t2 x7 @
4 d( N5 v" ~4 v7 T' W看完图所有的地方都想通了。! Z4 R' I/ S) k/ ~ s0 g5 D/ B w
写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
, V) l, B! o: o P" [核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。7 [6 M, p: A8 v# ]
! k% } L! r9 i& p改完实物如下。
" S, d3 u j) e+ W
2 T' i/ D! t! d5 y效果。' {0 H( g* S' a( v7 W
|