本帖最后由 n805 于 2015-12-19 21:58 编辑
6 K* K0 f' h% m: |6 I
+ J" h: h" K7 Y4 b' m 2015.4.4 BY 孙大师) w' a' ~, g: n1 n8 `2 L. { b
全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。
1 f* s: r0 d8 S+ _; h$ [0 ?1 T其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU1 f, R0 ^" a! A. N* T& n
相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据
# y2 k, ^6 {$ K" l% \2 H由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化; d. ?- T, `4 H" Z/ g- |2 W
从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机! 3 P" Z. M# t& x) @
那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的& e. p. |0 I4 S$ w; f, B: g
负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低6 J" I4 ~' u5 R! ~: \
这样数据被改变的很小,或者没改变,这就是不同373有不同效果!
) D5 _4 N3 E# y0 Y) Z问: 现在的组装机为什么不花屏呢?. _! a4 W* a+ v& {
答:现在的机器都是更改了读取方式,以获得完全兼容!
/ F0 h# P$ U; C4 b4 `9 E) c3 P所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。5 U R9 X9 U. s) Q u2 _0 Y( @
改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM
1 `% \$ Z; H1 ^. E, O3 l8 U6 e输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:- v1 M7 s( y1 m3 N4 ~$ U
1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。7 \& Q g9 g* H0 t# X$ V$ m
3 O3 |8 Y/ D+ a. ^5 K
2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR# n) f) f" c! n, b2 F' _- W9 d' S( r
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。( ?/ t/ z* b; g
! j0 ~3 @7 S# D+ T! J新的片选信号 逻辑公式 CS=OE&WE+A13
, v& r, |/ D6 r两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要) U* p# y+ p" e3 I3 a) M+ H' c2 K
动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,3 ]6 l7 a& R; @7 A( J$ D
此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13- |$ X! C* E: m: m2 ~" z
还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。
" `0 s) v {2 m- A8 u# U以下是对比图片:
" A* J( W' S& }( b& _3 D改造过程就不发图片,大家看测试视频:9 S" U+ L$ Q& o" V7 ^- D0 ]. c
0 s% G) V" U$ r& Q+ y7 q- A9 @
[url] C C C C |