4 f" R9 @8 d6 C" K- p5 J
本身其实没啥难度,最主要的问题在于任天堂定制的Mask ROM不是标准的引脚顺序,如果你把它当成JEDEC的话会被坑到死。! J5 s: w' ^9 J+ e& ~
我就是拆完ROM在上万用表,把图抄下来之后,死活看不明白他片选控地址,页选gate输出是什么操作。感觉也许是用特殊的mem map实现什么效果。# M: F/ ]' M$ d- @
查阅资料又感觉页选的位序是不是反的,这样一来刚好1f-9f的地址空间都能把rom选中。找了半天的资料感觉莫名其妙。; v, g& e: w$ K1 C. X
最后给maskrom拆下来编程器读一遍,再写进uvrom直接替换。插上去只有声音没图像,感觉有分页没写上。拆下来校验又没问题。这个时候在看图,就觉得a18跟gate肯定是反了。
7 N2 K6 T9 f" e7 [这个时候才想起来搜一下Nintendo Mask ROM Pinouts,结果第一张图就是Nintendo与JEDEC的对比- q D* y0 b6 _) p! E# v; H4 ^
: c ]" z# ^+ ~, J$ w
看完图所有的地方都想通了。
4 v$ j/ u- [0 w8 }* k! _+ t写了个程序,把打乱的地址线序从逻辑上交换过来,这样硬件就只需要交换A18跟Gate。
, C# S e5 [6 X, w' q核心的代码已在图中,我就不另发附件了。注意ROM芯片只能用8Mb,哪怕文件只有1Mb,因为4Mb的JEDEC对应A19的地方是空针,等于游戏ROM文件大于256KB的部分就被截断了。+ ^) C; |3 a, {. X' l; N! _9 |
+ P0 U; j+ V/ }& _2 {% C4 |改完实物如下。1 w- ]% E F1 c# S
6 b7 W: L( w0 m- l9 _8 m9 V
效果。1 }) a# @" P, q- u; s, f/ P" d5 U
|