本帖最后由 n805 于 2015-12-19 21:58 编辑
/ t4 A3 @1 Q3 E w
& S2 L2 {9 ~* c3 Z8 p# V" ?$ j- E% S 2015.4.4 BY 孙大师5 `6 }! e3 u# J5 s! _9 D# A
全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。9 O9 H8 f/ G4 [
其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU5 q; _/ N; M |2 {/ q$ F
相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据% h1 P8 ?5 S; F& E
由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化
" c% V0 [2 K; E; R" g6 H从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机!
$ U5 V6 @9 b' T) E' S/ P! g那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的( O+ G0 \, E0 u9 K: `7 c) s h
负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低
/ l. k6 a: g7 {! L这样数据被改变的很小,或者没改变,这就是不同373有不同效果!
: N8 a# d. n: W0 `3 ]9 M8 I问: 现在的组装机为什么不花屏呢?
- L2 f8 w. e; @1 U/ m答:现在的机器都是更改了读取方式,以获得完全兼容!
: x/ j+ X3 ]9 T5 D+ A所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。
- b, ~3 |' B' _+ s) c改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM2 ?1 W8 r3 C, G' b
输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:
# Y$ ?; }: d5 y1 |0 N9 x1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。3 {3 k+ o# A( a8 ~9 w
h- [# ?4 i2 b( t
2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR9 ?" ]; N( E5 w, T
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。
6 i8 o3 m8 J Z4 i
. X& R2 p7 o6 F* o% O! N新的片选信号 逻辑公式 CS=OE&WE+A13
3 s5 `5 }; k* p% t) p两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要% k! }' h7 M" r
动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,
2 M0 Z! `+ g" I H$ h5 o此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A137 t: Z2 O( B2 Z" z; B9 j
还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。+ l% C# @9 q2 N$ @4 b& y$ j1 e# ]: L
以下是对比图片:
$ K# A2 [. s5 ^! |. A& H改造过程就不发图片,大家看测试视频:
, f$ R2 _& ?/ J i f, _" ?8 `* z' f9 v
[url] C C C C |