本帖最后由 n805 于 2015-12-19 21:58 编辑
' ^! Y1 ~* L7 \$ h! }1 H ]9 b. j6 E. k! P
2015.4.4 BY 孙大师2 I# T; C0 L# m% f/ x
全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。
& q* t7 ?+ N, x! N2 F8 p/ r其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU
4 u: } {2 C) ?5 D$ j# p. \+ e9 z相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据0 |- S+ t8 p5 l$ v
由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化
7 f1 h/ A, w" w5 ^% j从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机! . i+ _+ U: K. |( x% e3 a( G! i" v
那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的
2 g8 H) X. n ?5 t负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低- g5 ~- v( f/ v1 W" y& Z
这样数据被改变的很小,或者没改变,这就是不同373有不同效果!
% n7 ~! l1 M; k" p- T; m问: 现在的组装机为什么不花屏呢?
3 ? _3 J; s6 g" E/ |答:现在的机器都是更改了读取方式,以获得完全兼容!
1 B, M2 \5 i2 N) [0 w, J所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。
$ l# i( f7 \) b- M; F9 L! ?+ U改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM
( H* H; F# }& D输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:& ~3 o, Y. K9 S: \- W ?1 f
1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。( R, \. X f: z" V' l2 m& U
- O* \2 L% \2 R( |6 E) Q
2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR
% b9 O( F9 P" D* P, r' s9 I+ |) z 方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。9 s& X; ?. T+ r+ c
& {6 [$ j% Q" Z1 L5 q新的片选信号 逻辑公式 CS=OE&WE+A13! s) H- Z* U1 P$ P/ y& }' _4 \
两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要
' W$ R8 K) [1 ]- p动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,
5 w9 F- Q9 o& f) Y此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13
% d8 N" F, n2 ~: _; x还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。/ d2 ]9 f+ Y; f( H H2 E: O
以下是对比图片:5 s, G j2 [: Z" R* ^7 m
改造过程就不发图片,大家看测试视频:
7 v8 t+ s: T& j/ ^# B, r6 u/ J7 d" i
% l+ Q8 s( @7 E& j[url] C C C C |