EMU618社区

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

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

[复制链接]

签到天数: 1773 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。# X9 M+ S: s$ R: O( L" D& D
5 ~6 q) e9 R, [8 d
修改内容:5 `! J6 O5 O8 a
1.P ROM由128KB扩容到256KB
" @! N9 {7 F* w/ z2.按START+B武器数量为99
, j& C& v8 t3 L% l, n3.按START+A补血
/ z  c3 L* I0 x# q
: D0 O5 E. T3 A8 y! _  z7 S这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来2 U1 F7 G4 A( B! D/ p6 i

4 [. p: b3 D( B' B& h1 k从原单位滚蛋后就有时间来弄一下
/ y5 M0 }2 U; j! u# o( O
- U0 H' ^- X+ ^% t# U* ~& u/ [关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
7 F) J+ l, |7 T. q: d
5 X8 U( G- l2 \7 q" z) X( Z4 C$ U关于如何切BANK:请看相关mapper资料吧
7 A3 I3 Y/ ^7 d7 z  U4 w4 ~$ h$ F4 P: G8 O7 K8 W0 G9 c: E0 r8 ~  n
说说我双截龙3 MPPPER 04如何切BANK:
  1. ) _! U5 e, k) u) w" }
  2. $xxxx- Q# d% Q+ ~9 E% A  P) `7 F0 ^
  3. LDA #$077 m& \' l1 Q0 n
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    3 m9 ?/ S; A; y! i) w# J
  5. LDA #$0E, ]) q& o' _# r- O( S, o
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF
    ; N' G  O' h. _9 b6 z
  7. JMP $A000 ;跳转到$A000执行
    ' s2 T+ H8 m; c, @% R
  8. 4 {- j! t* J" F2 N, u! X. b- a
  9. $A000:
    8 x/ I1 M8 N. G0 a& i, g7 q4 k/ s  B, z6 q
  10. .8 A3 k6 d. v+ f
  11. .* ~- S1 g" \5 x, E7 u& I" L
  12. .& x( `$ T, Q2 _' Q+ O* R- b* Q6 S
  13. .  E$ q! ]6 f' M) p& A
  14. JMP $xxxx ;执行完自写的程式后跳回去* `: V; }3 C/ b+ ^
  15. 6 \/ [2 \8 B  I8 J) {, N0 r
  16. $xxxx:
    0 n6 O) @4 K1 C+ ]4 `5 y) G4 }
  17. LDA #$07
    " v9 F! [6 |( ]2 [
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF# |* j& c+ U9 z1 q
  19. LDA #$0D
    - [( q. F; h* B7 O' K& _
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF
    + \, V; ?: f( \" E) ]
  21. 3 Z" A8 ]8 P3 N
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    / ?2 m" W% O) Y$ x# s* C
  23. . u  _& ^4 T  A; l. f' e+ w7 Z5 \
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)4 ], N2 `" ^) N5 h% q. {
, ~" R4 I6 _) \, x! J
附:ROM 16KB BANK编号' X: B) W9 Q. c$ P& \3 }9 }
. {) V5 c0 x* z  h& h; Z9 W
ROMf地址      BANK编号
# p6 S$ S* p8 g6 i00010-0200F  0/ p! ]2 s' K3 J& Y+ q
02010-0400F  11 H+ a( m( K! U4 Q) i6 ]# s
04010-0600F  2
4 j4 w5 n& x* S0 V06010-0800F  3
/ h0 S  k9 I* r) _" j9 X" l$ m08010-0A00F  4
( ], }; j% F+ J0A010-0C00F  5( o+ ?( R( M+ ^. h3 S. o
0C010-0E00F  6
$ |" W4 m" v, Y0E010-1000F  7
" ~8 m% J1 f1 e) K: L, n/ P10010-1200F  8* M4 O" K, T# j/ H
12010-1400F  9
0 O6 x# d) V# }14010-1600F  A6 s( Q, J3 L. }" Q- ]
16010-1800F  B8 r) Z1 e4 J% a) W$ |
18010-1A00F  C! j( l5 N$ s7 r- [
1A010-1C00F  D0 D  V, L3 m* _8 t5 d
1C010-1E00F  E
6 m* s4 |/ f) i1E010-2000F  F
4 A  J  J& b* f6 G7 Y. f.9 K! o! F8 I: t; S
.  e7 b5 A7 j8 t, P
.- P" N; q4 L: j5 d1 t2 o7 b3 r
) ?6 k/ d% `8 o* Y
解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?: [+ z, v- D0 u5 S

+ x* U5 m1 O5 g5 B& r) X# q* f因为扩到144KB的话有的模拟器是不认,无法运行9 l) ?: V7 s/ M8 F$ d/ ^
; q1 ?, T* ]" N4 y: _7 M7 H
为了全FC模拟器能兼容,所以只好扩容到256KB4 C/ \9 _) |3 k! G; `+ p' K
7 f$ r! v) ?) N0 n
补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
$ H, c, o& U; n- C5 I4 H
% T. w$ c" f. |, E0 U

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 2746 天

[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-11-19 14:37 , Processed in 1.081054 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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