设为首页收藏本站

EMU618社区

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

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

[复制链接]

签到天数: 1895 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
, z0 X) k6 v) U: ]4 R* @0 D# O
修改内容:
* b! q7 k6 S0 Z/ S. q1.P ROM由128KB扩容到256KB- D* Q5 Y! j5 ]  ~3 B0 m- s
2.按START+B武器数量为99
& E" [0 @& G; }' V6 s$ p, C" K3.按START+A补血7 \1 ?* L  B* s! }

+ O. K1 ?$ E* X7 @7 E这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来
/ P; c# }5 p+ @4 S$ [7 @9 O: e8 h; Z) N, t* J5 D1 O
从原单位滚蛋后就有时间来弄一下# M/ T/ e9 g0 \' O) a7 I

+ a, @$ i1 s+ o  f8 l关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
1 Q! q, V8 G+ F( z0 n# M1 s% u6 V
关于如何切BANK:请看相关mapper资料吧
. a$ B6 }, y9 G
5 w! G& v* J/ \1 d( S说说我双截龙3 MPPPER 04如何切BANK:

  1. + @1 l* O( Y. b# |% I4 L
  2. $xxxx7 T" [7 t; ~, ?6 M  B
  3. LDA #$07
    7 y9 T" m3 [. k7 `$ K
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    ' ~/ A! p" T. r. @$ j; H3 |
  5. LDA #$0E; t& x& A3 Q* ^& ]9 ~
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF9 F/ ^0 R' }) j
  7. JMP $A000 ;跳转到$A000执行
    3 c' Z0 H7 A9 B5 v# D6 H

  8. * Z! h. Y4 l6 h+ M( W
  9. $A000:! q/ t; J3 D3 T. f8 E- B
  10. ." F( o: T0 C4 q% q; k
  11. .
    8 h! S! Y( L# h6 _8 C) b" V/ s
  12. .9 F0 n) k- Z; C- T  K5 Z. e9 i
  13. .
    ' j: \4 A: ^3 _7 z, W+ U# @# K
  14. JMP $xxxx ;执行完自写的程式后跳回去. p( H4 _/ S* J+ ]$ ]) c) D: d; _
  15. 9 ]. M1 D: B" j3 g' P8 R
  16. $xxxx:; R* U3 ^& K, `; b
  17. LDA #$07- g9 ?& C1 y; h! w) H4 W
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    ! m3 Y% z; k+ m/ ^- _8 r
  19. LDA #$0D
    9 i4 h: j/ s( A% D7 u9 k( q
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF  R) ^$ V3 J5 z* ^) F, E

  21. + t' h3 V/ q' N, L" y
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    ) N; v4 V; R! a+ P, z2 {

  23. 1 o. z. z* G! F2 _4 C6 H" F1 O
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式); G) W! V" x9 n7 l) N6 t& D1 `' x9 ?

3 k- `! {% T8 n7 g" B附:ROM 16KB BANK编号, w7 n" B. b2 U* C9 n
/ {; D3 q+ l8 @: H2 b. O5 S7 `
ROMf地址      BANK编号
  i: R- {4 `$ M2 O) k1 z00010-0200F  0: \/ C6 j, G  N( c8 r9 L: Z
02010-0400F  1( U3 M: M/ }$ G% v* B! O4 ?
04010-0600F  2
/ l4 ^& m# }, Z1 Y0 h. G06010-0800F  3
5 }: Y2 Q* l7 ~, e# ?2 h08010-0A00F  4% n) T) h! W1 J9 _- E
0A010-0C00F  5
/ t0 Z. z. m0 J% `3 l2 N0C010-0E00F  6
/ _, }" m2 D; F* ^* r0E010-1000F  7: C- ^4 }& k( u& k
10010-1200F  8
2 R4 L8 w+ P5 z$ B. G12010-1400F  9
: O8 W, V( s! ?! G5 D14010-1600F  A
! i. h6 ?& o0 k4 K16010-1800F  B  G4 J# w$ t8 v9 T& f* R& a
18010-1A00F  C
6 M- }6 {  q" B4 |8 s8 d8 b) d6 @$ u1A010-1C00F  D
# ~: D" t# J3 C# ~3 w, x1C010-1E00F  E
  |( _+ ^8 H$ r6 y; |# J: x# x1E010-2000F  F
: \8 n* @9 Y: u' a0 N7 k.
' V8 I" S% ^* ~5 E; A.# }0 {- o6 D2 V: K' }; T
.* f7 L; n4 V) R! y, Y& ^5 G

' N! E, a5 L$ L* i解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?
1 x1 L2 y! X# y. A8 r5 C, h' C+ F$ j6 }  a, N9 E* ^" R/ c
因为扩到144KB的话有的模拟器是不认,无法运行
) ?5 g0 t2 \3 \  F5 X* \9 ^: ^# w+ O' a
, ]4 }- U- G( x/ G为了全FC模拟器能兼容,所以只好扩容到256KB9 w5 F0 t, N$ i( g# p5 B/ S

9 m" j: \" {1 L8 `" s补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机1 z; m+ l1 F: {, f1 p/ v- |

+ }4 z. h0 U% k: W) H4 R& \9 k

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 2863 天

[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, 2026-2-25 19:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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