本帖最后由 n805 于 2015-12-19 21:58 编辑
% Q5 k2 L. B+ y. O. l. V3 R. a
" d: @/ H; t2 X, u7 O! C; G& l6 E 2015.4.4 BY 孙大师) ~' A" ~& w, a- q3 B, s( @0 C3 u
全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。- F4 J$ Q( h+ e( \9 R3 x3 Q4 o7 V; H
其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU% Y+ Q, q* o/ G
相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据" N7 O% x" [" }* N$ C6 e
由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化
4 t4 v& A! u ~4 X2 @$ J从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机! 1 T6 y# t# ~, i6 w: ]
那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的
% C& n3 I6 ]5 A1 k+ u7 b+ A负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低# }6 Y9 U6 |7 y. I4 [4 v! b
这样数据被改变的很小,或者没改变,这就是不同373有不同效果!
- k: Y4 ]- j7 c问: 现在的组装机为什么不花屏呢?8 d8 f% M# X4 G6 F& \) }/ P
答:现在的机器都是更改了读取方式,以获得完全兼容!; o7 H5 g9 F9 m/ x1 x! B
所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。
: M" }8 _% C- n, L9 g: F改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM
`$ u0 w' u3 }9 Q" R输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:
4 _! H& o" I3 P: B4 h4 [1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。
" d$ P6 R4 m4 c: d$ }- h: s- s ( a/ p6 b# x3 _. O1 N& t/ r3 w1 }! l
2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR7 n, N' w4 X6 C2 Z0 ^7 u
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。$ k+ j1 q5 }6 n8 K
s" x" ?( }, z# h7 v( k2 e. g新的片选信号 逻辑公式 CS=OE&WE+A13 _' i0 q! V, {/ |7 H% f
两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要
7 Z: V0 j0 g# t' e4 p+ I. n* m动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,6 `+ F) h) g2 X+ i0 J
此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13
3 t5 _( ~+ s9 G" W还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。8 Y z+ l1 B. O8 K3 n5 ^: W$ P
以下是对比图片:- y% w& S F0 g5 W/ ]1 P4 _
改造过程就不发图片,大家看测试视频:2 z) M, y4 X$ {, t
8 o8 ^1 H2 B2 p" U4 s" h2 v[url] C C C C |