本帖最后由 n805 于 2015-12-19 21:58 编辑 ) H m) m* D {: I
( V$ Y6 F2 u7 I6 B! @ 2015.4.4 BY 孙大师
& E0 u" r8 `0 }% Q) W4 U全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。5 L. ^6 O. D+ v7 w, C# O6 t# X
其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU
7 e% Z! f" }/ X+ @: Y相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据
( o1 F8 {) V. }5 j8 b由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化
9 J. w9 \# n* p# w' X3 ]从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机!
; L0 [, Q$ z1 d/ A% ]" i# e# F那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的+ ]: T" r. h4 Y; E+ |1 Q. l
负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低4 u8 Q8 A( J3 R. n
这样数据被改变的很小,或者没改变,这就是不同373有不同效果!1 w4 E0 ^! L% M& _9 a
问: 现在的组装机为什么不花屏呢?
& l% O. h) e) Q/ z+ Z* x答:现在的机器都是更改了读取方式,以获得完全兼容!
( f+ G; F y( f$ f) E所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。
+ q# i1 o7 `- z. v3 k, k1 `改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM& K' A6 S" @2 o3 y2 I. ~+ v" O
输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:* q) y$ j, Z" K* u
1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。% l0 H f, _* y' E0 W7 m; ]
, @$ W& r% |: M) f, @% {9 `9 O2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR U4 \3 {) |5 R4 a' i" _
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。
$ ]3 t6 q2 w1 W 4 r5 t& n* P; z5 P7 W9 j
新的片选信号 逻辑公式 CS=OE&WE+A135 x& v0 l z5 \9 S* S
两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要
; F: X- e/ F0 B: a3 u8 d动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,
. r+ i+ S; b! l! u此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13
- j) A, n# ^" V7 N: p/ G# O6 l还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。* ]' |5 z- O6 O# O/ S: h* y1 I
以下是对比图片:
7 ] V4 @7 q/ D4 l改造过程就不发图片,大家看测试视频:% ]; [' M; _8 |
, I% }5 j# m3 {6 X E2 d[url] C C C C |