EMU618社区

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

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

[复制链接]

签到天数: 2211 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
) m& c" F5 Z- n- ^" u
3 d$ V* @% N5 ~! I修改内容:' |1 f9 @3 D8 Q( T
1.P ROM由128KB扩容到256KB
. o- R# H7 t  Z& v  f2.按START+B武器数量为99
& `3 L3 n7 H' O: w' x+ `5 T9 w& S  G3.按START+A补血; m% r; g1 C3 L4 Q! K4 g

9 G: ^; I" {% K% B! d) T这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来
2 m- {4 {- Q( L9 I0 a5 f; T6 a  F2 B2 }$ y
从原单位滚蛋后就有时间来弄一下& f! I1 H8 o5 M

7 Z. ~1 m1 T6 e, K$ k关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
2 E/ r  z" C! J* F& @: O
( i% Z7 O3 i+ _关于如何切BANK:请看相关mapper资料吧, O  h$ ?% B0 E0 l" W

5 |# D+ l0 o  x8 B7 T4 J# Y说说我双截龙3 MPPPER 04如何切BANK:
  1. ) P$ }! X; ]9 `7 S* N- C3 a; b2 w- W
  2. $xxxx- K& n! X! y! j4 }6 q: V4 h9 T& t
  3. LDA #$079 I; i' l( z% G$ p' T5 P
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    / ]  G! K. I7 ]0 F1 _
  5. LDA #$0E+ C" s9 F3 Y! {$ P
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF
    ' Z5 }8 d/ c+ E# [5 q9 i. z
  7. JMP $A000 ;跳转到$A000执行4 d) c/ s3 }3 W8 k1 n. y; r4 V% A/ y! ~$ h

  8. / s* B; l( c" J0 m
  9. $A000:
    0 I( W$ Y4 }) m2 D  T
  10. .
    : M6 B/ r  a) t. Z: d
  11. ./ G; `! ?$ R4 ^" ?) R% `
  12. .& F, P+ ^7 E4 j3 [  ^) }' m
  13. .
    , f3 x8 {7 T* A- H
  14. JMP $xxxx ;执行完自写的程式后跳回去3 B' G5 {7 `5 V3 U& h+ D
  15. + Q# y3 l1 t3 f8 u6 b$ J+ M2 H2 _
  16. $xxxx:+ b  r# p2 n* D
  17. LDA #$07
    ( e6 E* w% @5 l( [
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    % f* f5 E* u8 J: \
  19. LDA #$0D
    2 f& ^3 H" A+ [
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF$ i1 s" c- _' R! W  U
  21. 5 D" z9 k; v  Q- H* \$ [: _; S
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议+ c  s+ N9 g" _; K+ W
  23. 0 w8 h- J! z. c# v
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
4 J7 X% u* `4 P8 k' E4 L/ @& c
  r) ]8 H1 H; w$ F: i附:ROM 16KB BANK编号
( b. Y: o% P+ X% U+ h7 _. ?) y$ y( b7 H5 H
ROMf地址      BANK编号
( [9 D% q* O, Q6 F+ z/ Z00010-0200F  0
( Z1 O1 _! f* ]9 l02010-0400F  19 C5 ?4 A$ c3 g& |
04010-0600F  2
- z% A. f- \2 D, Y7 `8 O* e06010-0800F  3& n. x" t$ d; b" \* U
08010-0A00F  4
2 `7 K+ G& o+ c- j  T2 R* }0A010-0C00F  5
# f5 E) k2 p$ {. u: M- O2 ^0C010-0E00F  6+ t2 H2 [9 g% Y' e% u( W; g
0E010-1000F  7/ g5 b) i  G! q- r& Y' ?& C0 ]! p
10010-1200F  8; R1 l, f) [/ o" R0 I- p, Q1 m
12010-1400F  9% z0 X( E* b9 @# Q
14010-1600F  A2 m6 z' {/ o1 \' c, p
16010-1800F  B; R' Z5 w+ [% U4 g6 c$ G- v+ R. A3 P) J
18010-1A00F  C
8 [" o* e' y1 |1A010-1C00F  D& x) t6 s+ F/ z4 a
1C010-1E00F  E" a2 o5 c- T; Y
1E010-2000F  F8 Q9 ?, F! O3 a& e$ _' u: O
.
0 T7 l$ ?- Z  N  k.9 ^' R% u5 C9 M
.+ ?6 d2 J/ y# w
( p/ Y4 N9 \0 @, B# F/ J" ~0 G1 {
解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?  y" X- X2 J: I+ \4 {# P

& ^0 I+ C+ ^6 x& n1 p因为扩到144KB的话有的模拟器是不认,无法运行
; G8 o4 ~  F2 T) ^% j4 O
# X# u1 E8 ^+ J  L为了全FC模拟器能兼容,所以只好扩容到256KB
% Y) c. C+ k0 Q: [; Z
1 E% q) j- l: s6 w! C. K: c4 _补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
" _% W+ D  i& Q" _' T% R/ x' I* H% R1 p" o; E- x

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 3173 天

[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, 2026-2-3 06:34 , Processed in 1.080078 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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