本帖最后由 n805 于 2015-12-19 21:58 编辑 $ l0 A' V9 d3 G0 y* O7 B+ L
( g8 L0 s* N3 V, J- K; f/ e 2015.4.4 BY 孙大师- Y3 y5 \( A. f5 @3 d" V' x9 |
全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。1 F4 J% w0 w& ^( w( H
其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU
2 y9 |# V7 M3 m; v) v$ Z( N相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据3 ~) ~! W1 X; n' c- {1 ~; J& f
由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化1 T8 \5 a U1 r7 H( m% _5 f6 S+ R
从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机!
( m3 F3 {0 z+ q; [" W1 W; f那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的& m$ s* G1 `1 D5 j
负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低
6 @: X8 Q: T; x这样数据被改变的很小,或者没改变,这就是不同373有不同效果!
4 C+ z: _7 ?; ~- h; h- t j问: 现在的组装机为什么不花屏呢?
6 V) O& D2 {. u5 ~0 U- s答:现在的机器都是更改了读取方式,以获得完全兼容!5 M0 E& j7 S/ ?7 g0 V
所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。
1 a7 a/ c v. [5 { R改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM# z/ a- p7 d' U2 v$ Z7 U
输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:2 [, `, P. }' a
1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。8 I2 o: b4 r, F2 N* S5 F4 Z
" F1 ~- m* P: E) `) N2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR; N. Y9 ]' P0 d1 Y" }% H. U( c
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。
& D+ @ |6 A+ P! n8 G V & n( Z; U+ w; E: u* z/ d
新的片选信号 逻辑公式 CS=OE&WE+A13; a# ?1 G( Y$ Z& b, I Q# b. K, f
两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要
2 j+ r8 v7 y2 B1 @( p, \动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,
5 H) B6 W r3 m' o. _# K此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13, \' F& `3 C9 \3 L7 v6 Z8 d- t
还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。
- H9 B! f" v1 r. i$ U& ?0 Q以下是对比图片:
7 _8 L: _: n, a6 B6 `) K5 S5 C改造过程就不发图片,大家看测试视频:
, j+ j- F8 x+ M( G1 t7 l$ C& ]# X# A) H8 ?5 |
[url] C C C C |