EMU618社区

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

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

[复制链接]

签到天数: 1264 天

[LV.10]以坛为家III

发表于 2010-11-16 22:40:28 | 显示全部楼层 |阅读模式
今天我又看了shinwa大哥的《FC游戏按键得到某效果的修改教程》的教程,看完后也试着改一下,但很遗憾失败了,对我打击非常大,有点想不开的感觉。1 j/ B  r, F/ H' {' x
  我该的是Name=彩虹岛. B1 C+ E+ i' W! c6 K2 K
         [小宝石全齐]ON=54F,FF
- }: R/ F' O& Y   我想改成按选择键小宝石全齐的效果,已知按键内存为00F7
) k" u7 S5 n9 y3 q" `/ D
   然后就将改成
* w/ a& J2 N& v   再然后改成
. Q2 G; A+ Y% w/ G: Q   最可耻的是最后竟然弹出这幅令我精神失常的图
$ z( b+ P1 m9 D6 B& `   其实我早就知道不怎么能可能成功的了,因为我不明白shinwa博客里写的 48 C9 20 D0 05 A9 7F 8D 1E 04  68  4C 7E FD 其中我不明白48 C9 D0 8D 68 4C这些机器码,有哪位会的教教小弟我,最好指出我上述修改有错的地方。万分感谢!!

本帖子中包含更多资源

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

x

签到天数: 1926 天

[LV.Master]伴坛终老

发表于 2010-11-16 23:01:52 | 显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}7 o: C. i' i- Q7 l7 C
/ U% M' E6 y, T8 q
还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。  |$ b% z0 H" l0 N) g
% C( ]* p1 \1 R% X
48 C9 20 D0 05 A9 7F 8D 1E 04  68  4C 7E FD, r9 ~9 ]- }! b& d. _

% z% e/ x6 Y% ^7 g( J0 P机械码      机械码指令解释
% s7 j  {" A4 @& D" o6 h
/ L8 `9 t+ K" ?# \7 o- R& r8 b48              PHA            A入栈(可以理解成保存寄存器A里的数据)
- l# L' b; ]! N$ c. v8 B% g: c
# c5 |6 _& Q1 [& y/ I( DC9 20         CMP #$20  对比寄存器A与20(20是SELECT的按键值)
8 F3 x; x# l$ n2 S0 u+ }; {/ o8 c; `# R* ]( ]8 W
D0 05         BNE #$05   如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.! w- A  x; o2 q
! H9 p/ j, s6 J4 I. F( w: L
A9 7F          LDA #$7F   把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
" N: p& v( e6 u
4 i4 t; X$ n: C4 [+ h8D 1E 04     STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)' X! }! Y" O2 Q" M5 z* A3 Z" N

) E5 e3 P- ]& P5 `" O& s68               PLA             A出栈(还原寄存器A在保存的时候的数据)6 |0 e' e5 w' E4 Z

9 M8 Q7 K) H1 P, i4 x4 J4C 7E FD     JMP $fd7e  跳转到地址fd7e,返回到原来的程序& T# n' T" Z4 t9 ~! Z* G% V

3 ^* ^! B+ J$ l! M8 ^他博客里不是有上面机械码指令解释么?

评分

2

查看全部评分

该用户从未签到

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

该用户从未签到

发表于 2010-11-16 23:11:39 | 显示全部楼层
累加器进栈指令 PHA2 B  d1 s% z) \' m
+ r+ w9 \7 g7 C
   PHA是隐含寻址方式的单字节指令,操作码是 483 ?, f- K" W( D5 h  r

+ g. ?( L! }3 w  I5 N" W   功能是把累加器A的内容按堆栈指针S所指示的位置送入堆栈,然后堆栈指针减1
, s7 c3 P+ L) v* [8 [
$ M+ k( v; I4 `% Q) T& C累加器出栈指令 PLA
1 P8 [2 w3 }5 f/ z& I
! s7 j, w8 l/ x; S- \4 }$ E" o: c   PLA是隐含寻址方式的单字节指令,操作码是 68. w' J, M( p  T2 E% ]) r% L

9 D# t& R0 J" T7 {   功能是先让堆栈指针S+1,然后取加过1的S所指向的单元的内容,把它送累加器A1 W% K# X$ v' v; b: J' T+ {
7 X6 \' G- r/ E7 [. I' i$ C
比较指令
/ w1 F3 J( @4 q( c/ s+ H+ x/ ?. G+ G9 k$ v; v6 c
CMP--累加器和存储器比较" C" P- m1 D- x5 f  L
8 Y% B# O& ^" E# W: h: l; |) t
CMP #$data C9 立即寻址 ! V6 B/ ]0 U; g

+ q" L: Z  ~! R3 O# CJMP--无条件转移指令4 E" \  n1 o6 P) ^5 J; h

: R- T2 ]. @2 E) p符号码格式 指令操作码 寻址方式
5 x4 P# N& q! iJMP  $data16 4C 绝对寻址 + T3 a. K) t: M$ d- t
' I% N* ]  O, q& V) l' A
2. 条件转移指令
7 n& w5 J3 d! g8 a2 d8 l! [' q6 w
8 o" I, z. ^; v/ S. j* I  bBEQ $data16 F0 相对寻址 如果标志位Z=1则转移,否则继续 . v/ j  b9 Q, C* K4 Z0 S
BNE $data16 D0 相对寻址 如果标志位Z=0则转移,否则继续
5 L) i- v, H# N; JBCS $data16 B0 相对寻址 如果标志位C=1则转移,否则继续 + c! c- @1 x  t) F7 g
BCC $data16 90 相对寻址 如果标志位C=0则转移,否则继续
6 g+ i* Q' F+ `! H0 bBMI $data16 30 相对寻址 如果标志位N=1则转移,否则继续 : f5 k5 h+ k2 O' d- Z+ i. E
BPL $data16 10 相对寻址 如果标志位N=0则转移,否则继续 , ~" f! R( }  o4 x" x) z3 c$ _
BVS $data16 70 相对寻址 如果标志位V=1则转移,否则继续 7 T, K( n5 J0 X0 e- {% C3 a; f9 r
BVC $data16 50 相对寻址 如果标志位V=0则转移,否则继续 ' Z3 C0 }; C5 `& n

) D. a7 ]$ s, }7 p6 dSTA--将累加器的内容送入存储器 A--M- s* x; y# \9 `. }' U. ?; [
STA $addr16 8D 绝对寻址

该用户从未签到

发表于 2010-11-16 23:15:38 | 显示全部楼层
4# 克罗诺亚
4 U- i' ]3 A9 I! m( }$ P* I& f0 a0 M8 E% F

. y2 i- V& O5 E! s  n; k% T3 c看不懂{:4_106:}

该用户从未签到

发表于 2010-11-16 23:19:53 | 显示全部楼层
5# 湘西小人物 # a1 S' H6 B& {& i

8 Y: A9 u5 B6 e- H
' n! d" O* P# K9 K  {LS竟然隐身。{:4_114:}
- f+ s) l7 |8 T7 N  p2 iBCS $data16 B0 相对寻址 如果标志位C=1则转移,否则继续 % s  U& G$ I' }1 p
BCC $data16 90 相对寻址 如果标志位C=0则转移,否则继续 / g8 _4 o  k7 T" H0 i$ P+ }  ~7 O
0 z% ^' K1 D+ |5 i
这两条也挺好用,比较大小的。

签到天数: 1264 天

[LV.10]以坛为家III

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

签到天数: 1264 天

[LV.10]以坛为家III

 楼主| 发表于 2010-11-17 20:52:50 | 显示全部楼层
2# 疾风之狼 & b) L. P9 t+ W. x) D7 Q5 w

6 H8 `2 U- e- V6 B0 m" Q' h7 B$ L* y3 k$ ~1 y
修改成功!!谢谢狼大大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-21 06:52 , Processed in 1.205078 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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