本帖最后由 n805 于 2015-12-19 21:58 编辑
2 y2 }4 }6 D v/ F7 g
3 |! [) e. t/ x. D 2015.4.4 BY 孙大师
" ]* a9 k) N* J+ O" R0 J$ `全集成快FC游戏机,无论原装还是组装机,在玩部分豆卡时会花屏,这个问题其实来自游戏卡本身。! A2 \0 V W/ G: z- {/ ^) i
其根本原因是 卡带的OE 使能端口被直接接地(永久允许输出数据),原本是要通过金手指17脚与PPU
# ^1 F3 ]" V7 ~相连,受控与PPU。 PPU在发送地址码的时候,首先是要发低8位数据到373上锁存,然后读出卡带MAP数据! h7 a' Q0 b/ Z* a" j; I, I0 _
由于卡带的数据线一直都有数据输出,在PPU发送低8位数据时,与卡带输出的数据碰在一起,导致数据变化1 T) y& t2 J. O1 f) a2 S
从而导致地址码变化,读出的数据就不对号,所以花屏,甚至还会死机!
, N3 t. b$ P3 {: P8 {( z$ Y那么在之前大家讨论的更换373可以降低花屏效果,这是为什么呢? 这个原因是因为不同373的输人的
. C( o1 ~; x: @1 k' B6 U负载不同,而卡带输出的数据没办法在短时间内把373的8个输入端的高电平完全拉低,或者部分拉低0 S" x8 d" Q+ L
这样数据被改变的很小,或者没改变,这就是不同373有不同效果!" s4 [, W" H$ H, k! ]* K! P2 Y
问: 现在的组装机为什么不花屏呢?
! T% I: m; I9 E$ a: C; k, |答:现在的机器都是更改了读取方式,以获得完全兼容!
# k. f0 q3 ~% K" J2 Y% c所以,我们只需要找到这个方法就能自己改造游戏机,获得同样的效果。( f7 s+ ?) L$ ^: L9 R9 Z L" ?2 t7 ^$ A! p
改造方法原理:PPU在读取卡带MAP数据时,将使用 17OE使能 56CS片选,当这两个脚都是低电平时,卡带的RAM
" [0 }' y6 s3 b3 a5 X输出对应地址的数据,由于OE端已经接地,那么只要CS片选为低电平就输出数据,我们的方法:
1 b- u: k/ Y& Z% @% n" X8 p6 _1、把PPU输出的OE信号WE信号CS(A13)片选信号合在一起,组成一个新的CS片选信号,控制卡带56脚。
. B1 S1 ?7 f R7 F7 n) r- E' N
9 _- J% ~ q; \; M! M2、把PPU输出的OE信号WE信号CS片选信号合在一起,组成一个新的CS片选信号,控制一片74LS245,245的DIR5 [9 n# i* h/ v$ S2 I
方向选择线接PPU的WE信号,把卡带输出的8个数据通过245送到PPU总线上。% d8 y, D4 M7 X5 R* }
( I( J- f# N4 m
新的片选信号 逻辑公式 CS=OE&WE+A13; G: a2 B, f/ a, q' K& c/ E: a
两种方法中,第1个比较简单用两个IC即可实现 一个与门IC,一个或门 IC,方法2比较复杂,在1的基础上还要
9 ~ T/ b4 ~3 p, T% N) |8 D5 ^动数据线。考虑到改机的难度,我设计了一个最简单的改机方法,如下图,
# a4 X5 O! ?. g& ` D% C" R* h. N此方法需要两只二极管D4148和一个或门IC 74LS32 ,你还可以准备一个切换开关,控制卡带56脚选择原A13
; q5 P/ `& K/ X3 p5 v还是新的片选CS信号,图纸中的电阻R为可选,如果使用74HC32就必须要,10K-20K。9 C% T; H3 F( G3 j( x
以下是对比图片:7 X9 p7 e0 u$ C0 m \/ C: G( J9 F
改造过程就不发图片,大家看测试视频:
; c% R- F! P' h) Z2 c: W {1 j1 D9 P/ u' a
[url] C C C C |