本帖最后由 n805 于 2015-12-19 21:58 编辑
: t" G7 ~4 \- V* I: d" Z% H6 M7 R
/ a5 a! A& r7 u* R- E' k6 `+ G 2015.4.4 BY 孙大师* H8 G/ O( k3 n8 {" R. h+ Q
全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。- K. J; N9 Q6 t3 I2 I, A
其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU/ Q2 k7 [1 h" u( ~/ l0 s9 O
相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据' K: _9 P. J4 V" w- q
由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化/ {$ `3 m! ]; z, A
从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机! * a* u* s. Y. E7 Z3 Z
那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的
k1 E) c: N5 o负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低
" u6 E2 j% h4 W! [7 _这样数据被改变的很小,或者没改变,这就是不同373有不同效果!, h7 v+ v7 u2 }% a
问: 现在的组装机为什么不花屏呢?
5 @( x2 j# u1 f6 G/ A答:现在的机器都是更改了读取方式,以获得完全兼容!: _( ?+ k1 n1 s1 a
所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。1 H# i: h u: s6 g9 t- w
改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM
' O8 _0 d- C9 [! E( O输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:
% i8 y% W9 l# y. t1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。
% c. g% Z$ f/ X0 s8 U
6 _ j" v% w G2 ~: a2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR& }' T0 n8 K+ l4 n/ V- V4 o6 G' b% y
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。, L5 V l* Y- Z9 l* u$ ]
1 D' a& r4 J7 b7 V0 P
新的片选信号 逻辑公式 CS=OE&WE+A13
, E d6 E6 o- e0 r: B两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要8 ~5 O) Y( `; A+ B, u$ z* A- Z
动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,
* q' o) J j9 J1 P y+ I# t, t& Q此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13
7 m: Y& H4 b/ Z- Z9 @2 x还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。
2 r U7 g3 i# ^) j) p& ^以下是对比图片:
v8 c+ `; P6 ~( r" b改造过程就不发图片,大家看测试视频:) e& G( A8 l2 J; u& y" Q5 m
& j" G3 q u3 R2 p) q
[url] C C C C |