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