EMU618社区

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

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

[复制链接]

签到天数: 2164 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。5 N3 q2 A! ~7 d4 B7 g6 E
# d% w; ?0 B( w
修改内容:
. R6 U3 c* y& X8 i( G1.P ROM由128KB扩容到256KB
7 W5 O$ M/ @' U. Y8 B9 d/ V' g2.按START+B武器数量为99
, g% A9 ~. i  d/ P3.按START+A补血
( T* v* |* z0 r" E% V
4 l' L( B5 k; ?: i4 y这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来) _% F% v# K  _1 Y

  @/ V8 q9 O# C. X# r从原单位滚蛋后就有时间来弄一下! ]/ t1 o+ t1 K8 ^" E

7 y1 e  e; [" |关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
7 t& G7 }- t1 Q
. w: c& ]0 H8 r4 @% o5 n3 {6 Q关于如何切BANK:请看相关mapper资料吧7 K/ E8 X3 k- E! h) [$ [2 U# E. @7 S

; v0 C) F. Y. W' A2 s说说我双截龙3 MPPPER 04如何切BANK:
  1. , `- _+ y+ S3 t1 `4 F
  2. $xxxx# }' V' u) k8 W9 ]8 A1 n$ w( ^
  3. LDA #$072 D8 _6 N4 @+ m; I. j: T$ D
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF/ Z7 a4 J6 k9 k+ A! N6 B
  5. LDA #$0E( P$ }# U  E6 y$ T+ H
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF
    ! V$ X- |: ]: J' N* c5 T
  7. JMP $A000 ;跳转到$A000执行
    # m* h- Y( o1 s: s2 Z( T
  8. 0 ^- K! R/ ]7 J/ _) r- Y
  9. $A000:
      z. m2 G( \6 ?, B% e5 v
  10. .# f) @/ A( D$ v& S
  11. .
    : S* \: H7 _% @1 A. @+ Z7 s6 M1 \
  12. .
    ) ]" S* {4 v' ~$ i& \/ N
  13. .: q7 C/ l1 l5 o
  14. JMP $xxxx ;执行完自写的程式后跳回去0 J! j" u3 ~& `; ~( Z0 m' X

  15. 7 P) O* q, ?7 O  I; H5 Y) O
  16. $xxxx:
    + @1 Y/ g, M& R: V  G. m3 G
  17. LDA #$078 K, \. y- d: h3 \# x3 w9 x& @
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF; ~: o4 g0 y% N/ Q
  19. LDA #$0D
    " a7 x, V% x# u& i9 ^1 I2 @
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF8 j: k* _( I4 b$ z4 S7 ~
  21. ; D% d& q' O+ T5 ^3 {9 I
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    6 W. C) G7 f3 x

  23. 1 I. j+ f+ L# E$ p" L% P
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
$ @# ]0 \/ H) E  N+ w; t3 z# a; Q5 J2 \7 c3 o! ?
附:ROM 16KB BANK编号; g- h! A, r4 h( e, B
9 b" c2 m! ?' \6 y. N9 H, D8 J
ROMf地址      BANK编号
6 \0 l1 a) g/ k8 p00010-0200F  02 p6 ^6 o4 O4 h& f5 P
02010-0400F  11 ^) [- y7 a$ |% B6 i! C
04010-0600F  2$ H  {1 Y) |& c
06010-0800F  3  z  h& H8 s7 A/ d8 E2 G
08010-0A00F  47 f) W) b1 u- ]. s/ W; j& y
0A010-0C00F  5. J: f9 k) L3 Y* R) Y
0C010-0E00F  6* g# D7 a  s7 p4 o. }! v# b" k
0E010-1000F  7
" Y& S! O0 l3 q3 Y4 g10010-1200F  8- S) ~6 o( L/ w! q5 ?% n
12010-1400F  9
# s$ I2 K! U3 T% f+ Z* |14010-1600F  A
/ a  P7 t* U- @2 t' w16010-1800F  B
7 U2 s6 m! k. v3 F- l! C3 d7 ^18010-1A00F  C1 f# ]1 U* ~3 k
1A010-1C00F  D+ E( c/ \2 i# a. g7 [( A
1C010-1E00F  E
- _& h& r* X1 `* l% A1E010-2000F  F
' ?, y+ i- k- [* L.* K1 F; `: }, \! A' i7 W
.& o& k; _( b- O6 b* R) x
.
# y1 q! v" k4 ^. Z* }; e4 K7 i" ]: f+ L2 H  @. y  Z- x. U
解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?
" o# U3 l3 S* a: K/ }+ ?' G" |4 z& ~- ^. u  {
因为扩到144KB的话有的模拟器是不认,无法运行) ?: s" L( {8 E; F

2 z; q5 Y) F9 C, ]/ E0 |) l为了全FC模拟器能兼容,所以只好扩容到256KB
! t$ r1 G% g9 F" \3 C
  {6 N# Z  y$ N: n补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
1 x6 X8 i" ?! s
8 j8 l; t+ q" L  ?

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 3128 天

[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-12-18 17:33 , Processed in 1.096680 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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