EMU618社区

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

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

[复制链接]

签到天数: 1064 天

[LV.10]以坛为家III

发表于 2010-11-16 22:40:28 | 显示全部楼层 |阅读模式
今天我又看了shinwa大哥的《FC游戏按键得到某效果的修改教程》的教程,看完后也试着改一下,但很遗憾失败了,对我打击非常大,有点想不开的感觉。6 z0 R* z  e% e: x8 I
  我该的是Name=彩虹岛
% J$ U! o; ?$ ]+ o: R/ ?# D         [小宝石全齐]ON=54F,FF) l' F" c; I; q) j4 x
   我想改成按选择键小宝石全齐的效果,已知按键内存为00F7

3 z# }' n5 I. T) X6 H  v: N1 K   然后就将改成
, f0 q0 E/ ^) n9 b3 ^   再然后改成
+ ~' U! k1 `2 R9 V5 X6 C  {   最可耻的是最后竟然弹出这幅令我精神失常的图/ ]+ e7 f  G! `5 P
   其实我早就知道不怎么能可能成功的了,因为我不明白shinwa博客里写的 48 C9 20 D0 05 A9 7F 8D 1E 04  68  4C 7E FD 其中我不明白48 C9 D0 8D 68 4C这些机器码,有哪位会的教教小弟我,最好指出我上述修改有错的地方。万分感谢!!

本帖子中包含更多资源

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

x

签到天数: 1718 天

[LV.Master]伴坛终老

发表于 2010-11-16 23:01:52 | 显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}
4 M4 I  m+ \# y  A+ L, I" @& t6 r! R' k' y+ [
还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。
+ }  i; q- B; [. b* L1 g
8 i! T" o  U& ^1 E4 U' A48 C9 20 D0 05 A9 7F 8D 1E 04  68  4C 7E FD, O! A2 A" `0 V# p# q+ w+ Y

1 ^, T1 _) v/ d机械码      机械码指令解释2 A3 ?7 J, c. W3 b

9 w9 Z8 `; K. \) o& S48              PHA            A入栈(可以理解成保存寄存器A里的数据)
* ?1 r4 X% x7 B8 I0 o& Q. }+ g5 x
; H& X( O9 _/ P( HC9 20         CMP #$20  对比寄存器A与20(20是SELECT的按键值)
* n4 D0 n% E" Y
' C# S9 @( g! I, K# uD0 05         BNE #$05   如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.( Q8 ^* [  p2 }3 ?- C* @

8 b9 z; \# O" {A9 7F          LDA #$7F   把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)+ g1 C. y5 m1 R3 d
+ Q1 U6 V) ^" h0 X
8D 1E 04     STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)2 q8 J2 k( u4 U4 @3 m# l+ F
2 F3 q5 s( U5 y7 V5 H+ Q: j
68               PLA             A出栈(还原寄存器A在保存的时候的数据)
& c1 R4 z; D5 {4 o# @+ F
$ j# Z8 D  e4 I( M! t8 V1 _4C 7E FD     JMP $fd7e  跳转到地址fd7e,返回到原来的程序
* F  `! K; G5 W
# k$ W& z, z' H- l, A0 ~他博客里不是有上面机械码指令解释么?

评分

2

查看全部评分

该用户从未签到

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

该用户从未签到

发表于 2010-11-16 23:11:39 | 显示全部楼层
累加器进栈指令 PHA6 o5 L5 K; ^/ J7 a0 |: b

6 q, b+ |4 F0 {   PHA是隐含寻址方式的单字节指令,操作码是 48" n- r; E2 W1 t( X. L3 R0 b! |* \

( O5 e( o4 i5 f' M1 |/ t   功能是把累加器A的内容按堆栈指针S所指示的位置送入堆栈,然后堆栈指针减13 W# F1 o2 Y  x
- Y- \- I' `3 U, J, T1 e
累加器出栈指令 PLA  y7 O# ?( e" |) d' I6 l, ?$ G5 q5 O# H
9 _8 ?* J; q- }% a. X. k
   PLA是隐含寻址方式的单字节指令,操作码是 68
( \- z5 V9 R- K+ {# ~* o+ H
( b! G( L4 B1 p0 z1 e5 S/ G6 ~   功能是先让堆栈指针S+1,然后取加过1的S所指向的单元的内容,把它送累加器A
* H7 L3 f  `' A- X! d/ I( d0 I9 v: x0 y7 @
比较指令8 n; p6 Z4 q6 _  A6 X, }" ?

$ I3 i' a$ G, }6 `1 jCMP--累加器和存储器比较
( \$ T- I; C3 l5 F% H' i+ S+ s% v, H0 _0 f$ N7 C
CMP #$data C9 立即寻址 0 q9 f6 f3 _& {% Y8 {$ J

0 \2 u0 h0 }1 ]6 h/ Z; `- EJMP--无条件转移指令
% r0 O9 z, ?: t5 M( h: A4 y
' s( c4 L4 R$ K5 ^符号码格式 指令操作码 寻址方式 ) M: B/ y! Y+ T* g! q$ G
JMP  $data16 4C 绝对寻址
0 q5 L4 q; G7 ~5 p. @
% T$ k1 c$ y8 z: r& @2. 条件转移指令' C1 C4 h3 l! t5 r, f
/ s! T' ~% O8 O, S
BEQ $data16 F0 相对寻址 如果标志位Z=1则转移,否则继续 , `( Q! r2 x' q' y8 T
BNE $data16 D0 相对寻址 如果标志位Z=0则转移,否则继续 . b* n7 b/ v. i0 u* S$ o" m
BCS $data16 B0 相对寻址 如果标志位C=1则转移,否则继续
6 s- ?; u' ^- c+ C& V, j; QBCC $data16 90 相对寻址 如果标志位C=0则转移,否则继续 , M/ g6 r# @  p% M' R( t4 w+ k
BMI $data16 30 相对寻址 如果标志位N=1则转移,否则继续 ) z; w$ X, F2 L* \; b0 R
BPL $data16 10 相对寻址 如果标志位N=0则转移,否则继续 ; H! u! a  T! `5 Y' F  Y) F. d. j
BVS $data16 70 相对寻址 如果标志位V=1则转移,否则继续 # W2 D; _3 ^6 s- G
BVC $data16 50 相对寻址 如果标志位V=0则转移,否则继续 , K1 ~8 {2 d2 \& H* W3 Y$ [/ d
+ n; n3 z3 u9 M0 V9 B  p, L
STA--将累加器的内容送入存储器 A--M
& a% j3 b5 u# iSTA $addr16 8D 绝对寻址

该用户从未签到

发表于 2010-11-16 23:15:38 | 显示全部楼层
4# 克罗诺亚 + l+ D; H5 L& W' Y6 t/ T2 O! }
/ c$ U. i; X4 ~) K; R' X6 }

6 n/ _% |1 K# x: P8 X2 S看不懂{:4_106:}

该用户从未签到

发表于 2010-11-16 23:19:53 | 显示全部楼层
5# 湘西小人物 : E2 X7 @% ]1 H1 G$ c( u% v
' `8 N% P& a% N+ [  {; [

( T9 k6 D* L7 d! P1 W  S( uLS竟然隐身。{:4_114:} 3 o6 |2 \/ B# [! ^% s) [' T9 z+ H
BCS $data16 B0 相对寻址 如果标志位C=1则转移,否则继续
1 }; v$ ^& V8 b, q/ YBCC $data16 90 相对寻址 如果标志位C=0则转移,否则继续
' n& o  `8 U0 B- n9 c( X. O0 P
0 [( h2 r9 h3 H' p+ d* X7 W+ w这两条也挺好用,比较大小的。

签到天数: 1064 天

[LV.10]以坛为家III

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

签到天数: 1064 天

[LV.10]以坛为家III

 楼主| 发表于 2010-11-17 20:52:50 | 显示全部楼层
2# 疾风之狼
; x3 G' f0 t/ O+ p+ a- _! e: a7 Y+ ?5 Q9 A

4 a" F* |; X3 s: s* b1 G* X- O修改成功!!谢谢狼大大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-25 06:20 , Processed in 1.086914 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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