EMU618社区

 找回密码
 立即注册
搜索
查看: 1134|回复: 7

[求助] FC按键得到某效果的修改问题

[复制链接]

签到天数: 1179 天

[LV.10]以坛为家III

发表于 2010-11-16 22:40:28 | 显示全部楼层 |阅读模式
今天我又看了shinwa大哥的《FC游戏按键得到某效果的修改教程》的教程,看完后也试着改一下,但很遗憾失败了,对我打击非常大,有点想不开的感觉。# e2 ]% s/ Y, ]9 i
  我该的是Name=彩虹岛
( }4 d3 l: h' B  }3 Q         [小宝石全齐]ON=54F,FF
, {/ V% B) ~5 X: K& ~- N   我想改成按选择键小宝石全齐的效果,已知按键内存为00F7

1 S5 X: U! R! s   然后就将改成1 [/ v/ T& B1 b+ n
   再然后改成
. e: n4 T/ q+ j/ z   最可耻的是最后竟然弹出这幅令我精神失常的图
, v0 |  s, k1 I' c   其实我早就知道不怎么能可能成功的了,因为我不明白shinwa博客里写的 48 C9 20 D0 05 A9 7F 8D 1E 04  68  4C 7E FD 其中我不明白48 C9 D0 8D 68 4C这些机器码,有哪位会的教教小弟我,最好指出我上述修改有错的地方。万分感谢!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

签到天数: 1835 天

[LV.Master]伴坛终老

发表于 2010-11-16 23:01:52 | 显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}& \0 Z  x5 r) G
" H+ \. Q, g  |& Z: K3 @/ [" D9 n
还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。
! N, O. H( m$ n2 _4 H& K0 L, j7 j  E# F0 ~* z( _' b: n7 c# R; B
48 C9 20 D0 05 A9 7F 8D 1E 04  68  4C 7E FD. Q# Z+ O+ D( f5 H

0 B- l" M0 b# f- [机械码      机械码指令解释
" [8 H' `0 N2 g* {/ E- C+ W4 S) X4 K- Z+ Y
% t0 N( Z2 O' a" E48              PHA            A入栈(可以理解成保存寄存器A里的数据)
% _) @: b7 ]6 i. m
: l; q' z0 S. j, sC9 20         CMP #$20  对比寄存器A与20(20是SELECT的按键值): R% O0 v0 [# x
# m* D  ^9 @- h9 u4 x
D0 05         BNE #$05   如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.
/ u6 w+ H% y8 U& l. X8 t: v1 x) I; w% w, {' Q! f2 m
A9 7F          LDA #$7F   把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)9 F) e# n" s# B8 _, o$ E( V, h0 {7 t
  s$ u- W- c& a
8D 1E 04     STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
' V5 k$ H9 l: A0 C/ ?  Y$ I  ^
/ v: M/ L2 a3 l. B8 W68               PLA             A出栈(还原寄存器A在保存的时候的数据)# Q( S% `9 r3 ?1 n' S+ g. w

$ n; c. f* R; \1 _8 p* P( m0 S, I4C 7E FD     JMP $fd7e  跳转到地址fd7e,返回到原来的程序: f0 g* p  |; [/ p
6 R# H% t# A, R
他博客里不是有上面机械码指令解释么?

评分

2

查看全部评分

该用户从未签到

发表于 2010-11-16 23:08:59 | 显示全部楼层
{:4_121:}图太小

该用户从未签到

发表于 2010-11-16 23:11:39 | 显示全部楼层
累加器进栈指令 PHA- M. Q& N8 A$ x2 B* v2 S: o
- M: C4 D) {# I8 G+ d
   PHA是隐含寻址方式的单字节指令,操作码是 48# f4 m5 M2 X  `- X$ L0 h8 F: L# B7 `

- R8 F8 e& b5 w4 j0 o% j8 o3 X   功能是把累加器A的内容按堆栈指针S所指示的位置送入堆栈,然后堆栈指针减16 h9 f1 a4 s. W. w

, ?  ~. v4 B: W  c5 l累加器出栈指令 PLA1 U$ A( a' S7 g" a

. `  H0 g  J; D" }: Z# x* B) J   PLA是隐含寻址方式的单字节指令,操作码是 68
! K4 l+ U( w! p1 x5 a
, v9 T) S. f: Z' U: E! }( `6 C   功能是先让堆栈指针S+1,然后取加过1的S所指向的单元的内容,把它送累加器A6 Q+ u; R# h& ~: i

  T$ H! `- `. O0 t- L- P比较指令2 v+ E6 U4 {9 X/ k6 w$ x" b4 [9 [
6 W* u8 U' G6 e! t
CMP--累加器和存储器比较
" x% A4 |1 L/ D% w3 e* R" \. A% z8 Q# |4 a3 H1 |
CMP #$data C9 立即寻址
' {' b# t& \( u/ Y- n; `
# S* o' [, C# r+ w$ {* J7 mJMP--无条件转移指令
* J. g2 Q" i6 H, X& X5 F
& c. o( p  P: C$ o符号码格式 指令操作码 寻址方式
% ?1 O, B, M9 H) KJMP  $data16 4C 绝对寻址
  B& o8 m; D& U+ o: _/ F& y# J5 j, q/ g3 ]1 R* E& [
2. 条件转移指令" c( A" u3 i/ g7 @  y- p" Z
  {! {% n6 q/ x- y
BEQ $data16 F0 相对寻址 如果标志位Z=1则转移,否则继续 3 s! A1 L: ^  S- K# p; B0 g
BNE $data16 D0 相对寻址 如果标志位Z=0则转移,否则继续 + R8 v* N( q9 D" }+ h, L: ~
BCS $data16 B0 相对寻址 如果标志位C=1则转移,否则继续 ! N7 b) j( U5 u: R
BCC $data16 90 相对寻址 如果标志位C=0则转移,否则继续 6 y* g5 E: a, C  x% N: d
BMI $data16 30 相对寻址 如果标志位N=1则转移,否则继续
1 F0 M# S8 x2 f1 c1 K, ]5 aBPL $data16 10 相对寻址 如果标志位N=0则转移,否则继续 , f* C/ N6 O0 C/ ^( q
BVS $data16 70 相对寻址 如果标志位V=1则转移,否则继续
+ s! f3 v) x/ C. Z8 fBVC $data16 50 相对寻址 如果标志位V=0则转移,否则继续 1 Q( T* p' u5 s1 |( M6 d( {# g

2 j$ f" X4 i" e( s& b. _& f  |1 aSTA--将累加器的内容送入存储器 A--M3 M- a5 y/ P1 b; C8 c/ e
STA $addr16 8D 绝对寻址

该用户从未签到

发表于 2010-11-16 23:15:38 | 显示全部楼层
4# 克罗诺亚 / }, e" w7 X2 {+ l

3 E2 P. V' A0 n$ N9 t7 k- C
1 c8 h+ |! Q0 h! |( ~, Y( J  ~& v$ J7 ?看不懂{:4_106:}

该用户从未签到

发表于 2010-11-16 23:19:53 | 显示全部楼层
5# 湘西小人物
0 l9 V" h& y% k  d$ g* u
: G8 n5 x- `- c# P$ T: X% ?+ g2 S$ C5 c, o# X' t' Z9 @; x
LS竟然隐身。{:4_114:} # l( V% {0 v8 m( A: V# c. Z+ c" R8 |
BCS $data16 B0 相对寻址 如果标志位C=1则转移,否则继续 " E$ b9 U' W8 O' t. F# m
BCC $data16 90 相对寻址 如果标志位C=0则转移,否则继续 . C, O1 B7 j# I% ~- N# Q0 B1 @
# B5 R# C5 J; l" J# i' Z
这两条也挺好用,比较大小的。

签到天数: 1179 天

[LV.10]以坛为家III

 楼主| 发表于 2010-11-17 17:55:33 | 显示全部楼层
感谢各位大哥 帮忙!!谢谢{:4_104:}

签到天数: 1179 天

[LV.10]以坛为家III

 楼主| 发表于 2010-11-17 20:52:50 | 显示全部楼层
2# 疾风之狼 + [& X, `+ m3 _8 d  C

7 Q' s1 D$ C0 c) p4 x" [2 {1 ^: D, j7 |) l/ z4 N+ @, _
修改成功!!谢谢狼大大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-1-20 22:47 , Processed in 1.101563 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表