EMU618社区

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

[原创FC/FDS-HACK] [重发]双截龙3日版扩容+按键HACK

[复制链接]

签到天数: 2136 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。& d3 M) n, k5 e2 z3 `6 {, Z

1 B/ s8 H' Y  X/ M% ^修改内容:! _0 v; `7 D* Z) o/ q
1.P ROM由128KB扩容到256KB
3 B$ s- }2 }# i0 |2.按START+B武器数量为99, k+ Z# p; n  _( ?- A. _+ J" c
3.按START+A补血- |2 l+ y6 `* Q9 G( U( O0 `+ x
8 @& k, Z' |6 Y- \$ u  }
这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来* O. f0 J" t- U9 b) d
  f2 ]( b0 {' {% Q- Q% e/ z
从原单位滚蛋后就有时间来弄一下
/ P* p8 [! \5 l, O0 Q% e5 T/ d* A3 X* u  J+ u
关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚* M0 M" m2 L( l/ i8 H; f% X$ F2 X

, I1 n* h) d' y* E关于如何切BANK:请看相关mapper资料吧5 r- X) q- Q5 V

7 k1 R' C4 V: e  x, g5 ?9 B- e说说我双截龙3 MPPPER 04如何切BANK:

  1. # C' I. m4 a# ~+ h. i
  2. $xxxx
    3 h6 O" T, h4 ]. [  c
  3. LDA #$07; c6 a) G/ U- y  z$ e1 r
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF/ T/ Z1 F/ f3 B7 j
  5. LDA #$0E9 N! ?' }9 d8 I# Y
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF
    3 S5 I  T: n; Q: ^! X" F
  7. JMP $A000 ;跳转到$A000执行
    + I  o/ K2 P: i9 I2 Y2 i) G3 e- E

  8. , ?7 X" ?0 e0 v( c& u  j* i2 Y
  9. $A000:4 z+ C5 f. P; _9 O5 f0 ]) ~1 t* p
  10. .+ f' v* L5 H6 M1 Q7 U
  11. .: @) U6 I% M) C* {# ?$ M
  12. .( w% j4 o& `0 T
  13. .+ c. [8 j4 y4 M5 X$ L
  14. JMP $xxxx ;执行完自写的程式后跳回去0 s5 p; }' r$ V5 B
  15. 5 p/ r: g- {' F) M! L2 L; A
  16. $xxxx:5 G3 L1 x0 r, H
  17. LDA #$07
    # X: D" s7 \" u6 P! n* S
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF% q2 \, F* s6 l! ^
  19. LDA #$0D
    ; g$ {- m, v' s0 N2 S, q
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF
    & K1 m3 A& o( n- f
  21.   K1 I/ i7 [2 @' d5 P# I
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    % R& |  Y: ?/ n9 u, I

  23. 3 X7 I; e4 J# y+ F$ R8 e
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式): [3 N, A/ f5 o1 r' h; a2 ^2 j6 o
! L" i' j; ^# {+ h6 Q
附:ROM 16KB BANK编号; D# O6 X- k8 y4 N1 q+ J
1 {% y, I) X1 M" c3 F) k3 P' m
ROMf地址      BANK编号( G! X8 S3 d0 i
00010-0200F  0
8 a8 \, ~0 a' [( x02010-0400F  1
, [+ C1 U' O& q( Y- m04010-0600F  2
! @$ t& y+ _" ?' R$ |5 x5 K06010-0800F  3
! D6 |' S) Y+ f  T" I08010-0A00F  4
- A$ t6 T3 w- u# X0A010-0C00F  5
2 @2 d  n0 K  U: a6 T0C010-0E00F  6
# m2 }5 f! z, @; j2 N2 F0E010-1000F  7
0 T* Z  V2 ^& _. g- U2 ~10010-1200F  8: [6 N0 H. N' [8 b+ }# q( l2 x# x
12010-1400F  9/ G* e9 i& }6 W2 B6 ~. d9 W: n
14010-1600F  A. N0 r: d1 ]- v, b- I$ i
16010-1800F  B; x( u( K/ [$ X" \' o) i; f
18010-1A00F  C
7 ]; T; w7 ]$ [' c2 E1A010-1C00F  D6 Z- [) N; q& P3 g# i+ k
1C010-1E00F  E
$ w3 l3 H, |* v* o5 u; _1E010-2000F  F. A! X: T" L$ g( {: ^
.
  U- {* w/ L0 m.  a% a; b( Z" f- b* X' E
.
5 `* Q1 Q. O2 p" g" g0 w3 H! t  l2 T- Y
解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?
' A( _6 ]5 x' M/ `' s9 G( ~3 B. {4 p
因为扩到144KB的话有的模拟器是不认,无法运行! R9 c- P! |0 `/ e0 w; l# e
; b! B1 |6 |% \# K
为了全FC模拟器能兼容,所以只好扩容到256KB
$ v& A  m6 Z& B+ R- u0 W3 {
; H8 Z9 I+ R+ g5 Z- C4 N补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
& ?  x% _* R! w2 s7 R4 E/ U, t
( O# S+ K+ E  l  u

本帖子中包含更多资源

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

x
[发帖际遇]: 疾风之狼 在网吧通宵,花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 434 天

[LV.9]以坛为家II

发表于 2013-10-24 19:23:39 | 显示全部楼层
{:4_98:}沙发支持,顺便下载!
[发帖际遇]: 283167657 打扫环境卫生,被奖励 2 个 柠檬. 幸运榜 / 衰神榜

签到天数: 3102 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:29:43 | 显示全部楼层
这个。。。只能膜拜了。
[发帖际遇]: 天迹云间踩坏了花花草草,被罚款4 个 柠檬. 幸运榜 / 衰神榜

签到天数: 594 天

[LV.9]以坛为家II

发表于 2013-10-24 19:36:57 | 显示全部楼层
支持了 如果能把圣火徽章外传日版扩容就可以中文汉化了吧 这是大功一件哦 先谢谢了

签到天数: 881 天

[LV.10]以坛为家III

发表于 2013-10-24 23:17:03 | 显示全部楼层
圣火徽章外传……唉,外星汉化那个玩起来看得蛋好疼

签到天数: 1418 天

[LV.10]以坛为家III

发表于 2013-10-24 23:32:44 | 显示全部楼层
话说这个我一直都没搞懂{:4_106:}

签到天数: 216 天

[LV.7]常住居民III

发表于 2013-10-28 00:20:58 | 显示全部楼层
感谢up分享

签到天数: 1296 天

[LV.10]以坛为家III

发表于 2013-10-28 16:31:04 | 显示全部楼层
谢谢楼主的分享,支持一下!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-19 12:16 , Processed in 1.092773 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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