发新话题
打印

求FC教程

曹老师您好!0 t( r+ v7 I; V. s8 u
我把0D改成E1了,但是CAO没有变成0AO
# w: u+ i  x8 q3 _0 t! p却是这样的:[attach]29832[/attach]& {9 [7 m+ u) F% |* j

9 X" Q. e: ?% |( c我用VirtuaNES-DEBUG查看过了,两个0的Tile ID都是01[attach]29833[/attach]- ^5 X' D3 t4 w$ K2 I% f4 h

+ N3 @9 S6 Z( ?5 _其实我是刻意在256个Tile后画的这个0,因为我不知道如何显示它
) }) z/ ?5 M# W! r
9 J& o' t6 _+ \! d[ 本帖最后由 yyhxyr 于 2008-6-25 20:23 编辑 ]

TOP

哦,你是把点阵放在0FFF以外了,而且是动画页,所以你的图象就不能这样改了,要用动画来表示。这样做是很复杂的。那可不是一两句话说的清楚的。你把你画的点阵给我,我帮你按上去,再讨论。1 O5 ^  g; o  Q& M) B1 o

- u0 X. E, |. ^# Y( q" N[ 本帖最后由 曹老师 于 2008-6-26 12:41 编辑 ]
性格决定命运,存在就是合理

TOP

你再多画一点东西在图上,可以乱画,只要说明是你画的,我来帮你按上去。
性格决定命运,存在就是合理

TOP

曹老师您好!
( E5 X6 [' a) g+ m% B/ c, A( K# d# @我这个图的点阵不得不放在0FFF以外,它太大了嘛,没办法
6 R! w4 [9 @% m$ s# R2 C能不能用动画的方法把这个肖像显示在屏幕中央?* F/ Z+ \2 |8 O+ `9 E+ B

; G  F) q5 U* B% y- q# K. B点小图看大图:
' m( {1 g) y+ A9 z# x' @  M- W[attach]29843[/attach]) a7 G, A0 x" @
& q: H( p3 {) q$ b/ q0 B# ]. ^
下边是我画好图的ROM:/ E7 N4 n) ^8 X* \) u: u
[attach]29844[/attach]
5 ]% r0 R2 j  b, A; \+ K  N+ I( L* s5 Y" ?  l: o
[ 本帖最后由 yyhxyr 于 2008-6-26 16:58 编辑 ]

TOP

我已经收到,写好了马上发给你。稍微等一等(太忙了)。
性格决定命运,存在就是合理

TOP

非常感谢曹老师!!

TOP

来这这么久了,第一次发现有人谈到真正的技术
Yesterday is history.
Tomorrow is a mystery.
But today is a gift.
That is why it’s called the present.

TOP

引用:
原帖由 yyhxyr 于 2008-6-27 21:18 发表
6 H1 ?. U9 b( e  R非常感谢曹老师!!
, f4 y& |2 h9 m9 b. m4 h+ F今天我们这里变压器又爆了,夏天用电太厉害了,超负荷了,我只好躲到家里上网了。但是我的工作环境在公司,所以只有到公司才能工作。我一定帮你写出来,最重要的是我会告诉你是怎么实现的。
性格决定命运,存在就是合理

TOP

引用:
原帖由 santi1984 于 2008-6-27 23:19 发表 9 Z2 W1 g9 q9 Z* ?6 {  w; }
来这这么久了,第一次发现有人谈到真正的技术
+ U5 I( ~( o; A( I( P: Y, c' o9 }因为我可以看出来,他是真的在研究FC程序,所以讨论起来就有意义了。
性格决定命运,存在就是合理

TOP

我想学习6502汇编语言  来自己制作FC游戏   希望曹老师指点

TOP

曹老师您好,我那个肖像的动画显示做好了吗?% M3 E+ j6 c4 ^
我很想知道显示方法啊3 [' E: M  N3 F

TOP

对不起,我有事回家一周时间,今天才回到公司。你的事,我一直记在心里,找一个时间马上帮你做。现在我先处理一下我不在公司时需要处理的事情。一定尽快帮你做出来。
性格决定命运,存在就是合理

TOP

看不懂~!!!!!!!!!

TOP

我完全晕了!看来我是学不好了你们说得我全听不懂!曹老师有办法帮帮我这个一点都不懂的菜鸟吗?

TOP

我先赶快把答应他的事做好,再慢慢跟大家讨论。
性格决定命运,存在就是合理

TOP

做出来了

做出来了,你先看看是否是你要的。然后我再告诉你怎么做的。图画可以画的更好看,懒得画了。/ R/ z& n( T+ Z1 t
7 y7 X1 \2 d" R/ M; t
[ 本帖最后由 曹老师 于 2008-7-17 15:23 编辑 ]
附件: 您所在的用户组无法下载或查看附件
性格决定命运,存在就是合理

TOP

嗯嗯,这正是我想要的,曹老师你怎么做到的啊?

TOP

先了解一下,你知道解码器MMC3的工作原理吗?我了解了,就知道从那里说起。
性格决定命运,存在就是合理

TOP

原来如此,把点阵和图库改了就能显示出别的东西0 O% L' y0 l# Q, x& t- T

8 ]7 P$ I' m9 a) t0 \8 g/ b' ^请问曹老师能告诉我怎么做出动画的效果和音乐吗,音乐是不是每个代码代表一个声音
. {5 P: X8 R1 Z6 ]# o
: V6 A' A3 R9 W, T& o[ 本帖最后由 19920928 于 2008-7-18 14:09 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

引用:
原帖由 曹老师 于 2008-7-18 12:57 发表
' u  I* B- U4 ]# Z4 ^) y先了解一下,你知道解码器MMC3的工作原理吗?我了解了,就知道从那里说起。
+ o& G, A  z+ I2 R! P+ m- [
( y4 h8 h& N& W* j3 n' f解码器MMC3??
* v( D: N3 ?3 X+ P不了解这个东东,原理更不知道啦- -||

TOP

回复 69# 的帖子

做的很好,这是一种最简单的修改方式。
性格决定命运,存在就是合理

TOP

好,现在要从原理说起。FC的CPU最大的寻址能力就是32K+8K。表示程序是32K 图象是8K。图象的8k中有分上4K和下4K(放在图库的上面和下面),这样就叫一幅图。. {5 @9 Z4 R8 q: U( l9 W
可是,你要画超过一幅图的点阵,如你的点阵有16K(两幅图),这样CPU就不能直接寻址了。因此我们有一个办法,用一个“调度”,根据我们程序的要求,现在是第一幅图,等下是第二幅图。这样就需要一颗逻辑IC,我们俗称解码器。其实是逻辑切换(切bank)。例如我们在$8000地址中预先放上0,8001中放1:- Q; I" ?7 c! u: m" g/ I5 T
                                         LDA #$00
8 o. a; R7 {7 ~- @5 h' o/ w5 p                                   STA    $8000                 ;切换第一幅图
  E( {; z0 y" `+ }2 Y: H......................
) s# J5 {: b5 V' N# y! m                                   LDA  #$017 O' c2 F5 G% a: K: R; {- t+ X! Y" r
                                   STA    $8001                 ;切第二幅图) A6 r8 S+ ^6 c
在程序中只要这样写,图库就能被切换。这时NES的mapper是$31(H) ,$30(V).
# S% b1 h$ ]8 d到现在为止:程序是32K,图象是16K(2幅图),可是这个图象是当第一幅图显示出来的时候,第二幅图就看不见了。反之亦然。
. u: }$ n4 k- P5 y/ D卡型的名字   9 J  a; ^6 `1 p. k8 N) g/ |
                       16K+8K     叫LA卡     如打鸭子,90坦克,金刚1,2,3等等  mapper $01
' H+ L( R* c1 w                    32K+8K      LB卡     玛丽,中国象棋                               $01
- Q* H5 m4 B# a, L4 U                    32K+16K     LC卡     七宝奇谋,星际大战,影子传说 (2幅图)        $31
2 H! k8 }& m$ }3 _                    32K+32K     LD卡     冒险岛,沙罗曼蛇I    (4幅图)              $31
: H3 l! M0 d# j! A先看看,我这样说看的懂吗?! p3 b; O  Z, d9 J9 S8 s9 f) _) r

# k9 U! p; `7 s$ u# Y" B, _, `6 L[ 本帖最后由 曹老师 于 2008-7-21 13:33 编辑 ]
性格决定命运,存在就是合理

TOP

基本上懂了,请曹老师继续讲

TOP

好的。随着IC技术的发展,ROM的容量越来越大,价格也可以接受了。现在程序的部分已经不满足32K了,要用128K的ROM,这样解码器就要更复杂一点了。这时任天堂就出了一种卡型,就是LF卡,典型的游戏是魂斗罗一代,它的bank是这样切的:
, q" [* y3 r/ R+ z/ }1.$1C000-$1FFFF   永远挂(映射)到CPU的$C000-$FFFF 我们叫它驻留体。
8 b* E: n' ]) A+ o) K5 Q# h. c9 U2.$00000-$1FFFF 共有8个16K,开关是0-7 ,写到某一个大于$8000的地址中,在这些地址里,已经预先放着0-7的数据) B) L" [$ \- l: [( r9 ?+ v
3.选定的16KROM映射到$8000-$BFFF。这样组成完整的32K($8000-$FFFF)% D) o6 X6 G# u8 d1 F, p1 w
4.可是为了节约rom,当时还只是用一颗ROM,图象的部分就用一颗SRAM(6264)来装点阵。但是SRAM在没有电的情况下,所有的数据都会丢失。所以,开机后,必须由程序把点阵从程序块这边抄到SRAM中去。(我们的俗语叫抄PPU)。抄的办法是2006:0;2006;0然后从2007写入0,1FFF的数据。' u0 I/ ~) R2 o8 }# E
经典的老八强就是这种卡型。
性格决定命运,存在就是合理

TOP

哦,为了压缩成本只能如此啊
Yesterday is history.
Tomorrow is a mystery.
But today is a gift.
That is why it’s called the present.

TOP

发新话题