本帖最后由 n805 于 2015-12-19 21:58 编辑 ( y' ]& s& H& Z6 Q
6 k6 L K; L0 Z" `8 N L
2015.4.4 BY 孙大师9 C8 J% K3 J/ P3 t
全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。- K& j0 x# H7 J. A) |! e
其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU9 Z1 x0 W! {5 d9 m; b4 N# x
相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据
! C/ a {# Y4 h) |* i由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化
: S! U# L) \1 p8 S/ X. C从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机!
; ], C% S2 Q2 |9 H那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的
L! T1 N8 x' m7 D ~/ R2 f* v负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低
8 U% @, C$ |; |5 _这样数据被改变的很小,或者没改变,这就是不同373有不同效果!# i: K5 l! v! I: U
问: 现在的组装机为什么不花屏呢?4 M' W u% G, j1 `
答:现在的机器都是更改了读取方式,以获得完全兼容!3 q+ q# Y- E2 g9 [- {
所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。' ^& S7 Z g* k2 s
改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM
; [5 B8 R, _, A$ t输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:
: G1 N% z# o! o& r1 l/ }1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。
8 Q0 Z3 E8 y. l; C- J( W
; G6 _; L1 T* j6 v* @1 Y5 j& g$ P& R1 E2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR4 I/ a6 H( J5 Z
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。
2 b9 n( ^9 ^( [1 c8 U. d0 V5 b/ s: z1 S & j" ?, k: ?9 @9 M4 p8 i
新的片选信号 逻辑公式 CS=OE&WE+A13- D% \1 `& v7 J( O9 x+ L& N0 v
两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要3 g2 G R8 ~# e$ N$ c7 P
动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,: V8 j8 X6 b& \; l
此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13
. G+ c( N9 @/ u; N( ^# D还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。: U5 H; d# q5 r: R/ u$ ]
以下是对比图片: A+ o w/ M+ o# g. V" Y+ N, q
改造过程就不发图片,大家看测试视频:/ k8 [; l+ f0 i' c, R2 b$ S( v6 z
" y& Q1 K. F- g5 @
[url] C C C C |