EMU618社区

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

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

[复制链接]

签到天数: 1710 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。7 t  p4 Y) N$ p9 @! y0 x

: l8 l# j; v; t7 A+ M修改内容:
) ^6 p1 v" w5 @1.P ROM由128KB扩容到256KB8 H) |+ S/ l3 M  C' N
2.按START+B武器数量为99
: T) i% R% H  u- s3.按START+A补血
5 f) [6 {/ e, b7 K3 w2 e" m( L$ Y: X
这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来( Y2 [" n" d* j' j9 F, A

* t) p. Q$ e, W8 {/ |- J- S' h/ f从原单位滚蛋后就有时间来弄一下! F7 p/ W1 ^1 p1 }+ D+ J  Q
3 r6 Y* ?6 A6 E% m  V, b0 A
关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
3 i2 E1 G  R* x4 w* Q" d/ [3 ?9 y2 J  Q
关于如何切BANK:请看相关mapper资料吧9 @& l! G" |2 v$ J4 n
4 o% a4 ?' D. c- h3 [1 u; [- r
说说我双截龙3 MPPPER 04如何切BANK:

  1. * I) m8 P& A3 i  \$ r% z5 Z! f
  2. $xxxx
    0 `8 ?- C4 l" |2 D1 j. F
  3. LDA #$07  Q" d; {6 @" t0 [3 t. ]
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF( A/ X8 d0 z# y
  5. LDA #$0E# p' a8 [6 A  Q6 m
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF
    " b/ m1 [' q) S" f, }) F8 m/ h
  7. JMP $A000 ;跳转到$A000执行$ a2 S5 ?% [( D) c

  8. $ s2 n6 w6 u. z. v$ r  A  o
  9. $A000:
    ' k: T. b! y" m. l' z4 c1 a# r- s
  10. .
    : u1 c- E: h! A2 g) U4 c
  11. .
    6 D. U+ O( Z9 o) j. g; |: w
  12. .
    2 h2 }6 I; z3 E7 C! Y
  13. .
    5 H/ U( `& l1 i: E5 S4 G4 t  V
  14. JMP $xxxx ;执行完自写的程式后跳回去
    ! {0 I, @8 b9 X* n8 m
  15. . y. F  f2 b2 D
  16. $xxxx:
    7 g. m* c: b0 G# y& x
  17. LDA #$07
    . u& ~! k9 v# N' ?
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    9 v, _& Z4 x: D0 n6 `8 s* K
  19. LDA #$0D( w! D+ E  H8 o0 E
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF" F2 x5 i2 X* {2 I5 g

  21. 3 N$ ]) {: E# f! l9 ?9 p
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议; W1 q, H* Q( ^( o1 d1 Y- r9 Z7 |
  23. ) e3 P3 t+ G& J0 N8 C" ~$ V
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)- F0 r* S: M' ^3 h. r( j

$ B4 ]! W6 h- A附:ROM 16KB BANK编号
4 O1 e' N' N5 l1 h  L' A; ]. Z+ G4 v( O6 M
ROMf地址      BANK编号! y7 t2 C: L' z+ u* ?
00010-0200F  0, e. ]2 {4 ^. ?$ n* s
02010-0400F  1
( d$ l" K, v& S$ B! ~; e04010-0600F  2: r8 H0 Q3 g" a
06010-0800F  3
- u: p6 N9 P# C  w4 y& ]! I08010-0A00F  4
. e$ Q7 p! K! f: E0A010-0C00F  5
' G2 W6 {7 R1 @& F- o0C010-0E00F  6
' l. I" M4 [/ A& p0E010-1000F  7% ^: S$ L. v: O& e4 I
10010-1200F  8
1 y8 n+ t: L* Y12010-1400F  9* a1 E# Q8 j9 [7 c' B
14010-1600F  A" U7 F" h8 e5 c$ m, k
16010-1800F  B
- X5 T+ W2 a, n# A; K2 Q18010-1A00F  C
) X8 A" u; q  B, T1A010-1C00F  D
' Q. Y% v9 Q7 X# U0 U" H5 [1C010-1E00F  E
3 ~6 N1 S' ?3 P* c; s/ v  R1E010-2000F  F
2 y' {& I( C" _/ M.
4 E/ [/ h( r, c9 i$ p' f0 A0 l.. Y  N" u/ r! S- U9 p
.
3 a  C$ u! @/ p1 Q' `+ p, P9 x0 a
" T4 l0 W" C+ }+ L( n7 `3 A解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?: g  |6 e/ j+ Z; d

7 a# ^. \+ @2 v4 h5 N& a因为扩到144KB的话有的模拟器是不认,无法运行
: }: N) }# J# @2 t( y2 a% L5 o9 [( Q3 v* s1 i# @8 M. t# s
为了全FC模拟器能兼容,所以只好扩容到256KB
' `( P$ m6 p9 m; `& Q( }; v
, e: N# O4 ?- e- H' o" |, f; o补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
7 o; K1 }0 V" Y
( ^  o* n: g) m& u( \1 z3 p& N

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 2682 天

[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:}

签到天数: 215 天

[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, 2024-9-17 03:37 , Processed in 1.109375 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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