EMU618社区

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

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

[复制链接]

签到天数: 1945 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
  z" m* [- P, T) u) ^4 d4 k! K" A7 c6 U6 m
修改内容:
  [, Z( _2 l& p1 Q4 s/ r1.P ROM由128KB扩容到256KB
. t! t6 J6 d7 T5 L4 n1 d2.按START+B武器数量为99. v: q; t0 O& C* ?2 _
3.按START+A补血7 A7 q3 [* i$ r+ Z/ @' c* O

3 K/ q" W" C0 i这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来+ C4 ~3 n; t( q( U7 J! U3 `

% T: B" w( i& T/ g* F9 E9 e0 g" u从原单位滚蛋后就有时间来弄一下$ x. n7 v" o2 |

( y) M1 R. Z) f1 \关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚( d# u  E* e  E) ]0 ^8 w" r

" \4 k) _+ K# @/ j( I关于如何切BANK:请看相关mapper资料吧1 M5 r* q8 s; _$ Q9 _% P; R
- T* ~' x; Z7 [9 W4 Q9 v
说说我双截龙3 MPPPER 04如何切BANK:

  1. 3 P* G; f0 \0 Y5 ^2 U8 |
  2. $xxxx
    / u2 t, Q2 p. ^7 i
  3. LDA #$07* x  C# r1 b: B; s- M" m3 m* `
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF/ [/ b3 M! u$ X5 y7 K
  5. LDA #$0E! e6 }' M+ e3 e& \5 v& I
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF
    - s! d. f) ?! l
  7. JMP $A000 ;跳转到$A000执行
    + C* k9 `1 \- v
  8. . y! Z2 A5 B5 m4 s+ D4 h$ k
  9. $A000:+ Q; B0 {" P0 g: I0 j
  10. .
    : J6 z2 G+ l7 j0 D3 `
  11. .% ?  f  K1 q, W  r/ t9 z; B
  12. .6 I7 A- P5 q! r9 K& G2 N
  13. .  ~% s( B- v% y8 V! l. r: x
  14. JMP $xxxx ;执行完自写的程式后跳回去
    1 j6 D+ ^1 i2 j
  15. 6 R) z) |8 G* G6 i
  16. $xxxx:
    , ?2 I: n8 w" q3 B. {
  17. LDA #$07
    : V3 y3 M. t. ^; S, C1 Y
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF5 f# u1 a$ |+ |& q" F6 c) w* G
  19. LDA #$0D( n) E4 U0 u" ~
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF
    8 _0 s# J9 W8 G
  21. 9 a1 g: a' k" G. `2 l& f
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议5 B) e2 H8 C* Z4 r

  23. ) m1 w; `5 F$ ~0 i
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
6 {. ]* I% u7 n+ |% e  m- @, f4 {; |& X: H4 o) U6 e% q4 o- N
附:ROM 16KB BANK编号
$ [/ {! Q, _3 I3 s7 e
" x! X( I* M/ j, ]6 pROMf地址      BANK编号# V8 U) w: [1 U% K; E
00010-0200F  0
% l# K" V5 ?% D6 T02010-0400F  1
" j( {0 U+ ?- V: A; D) g7 |3 {04010-0600F  2
2 [5 }- m1 P. m7 V06010-0800F  39 R" M3 g1 b( T% H2 q
08010-0A00F  4
. \0 n' {0 l! G% a& c- R0 X! `0A010-0C00F  5
* R: h7 O6 ], E- {3 L% t0C010-0E00F  6
4 _- D& E5 W2 i; d0E010-1000F  7
% J3 B% e$ F! u+ d) B10010-1200F  8
! G6 e/ k. f$ x+ y12010-1400F  9
# _6 T: a0 y, b$ ?% q14010-1600F  A
6 Q4 k$ I0 Q3 q1 j# o16010-1800F  B, B# E* `7 N/ W  A' Q8 e0 f
18010-1A00F  C
  D( u4 M. F: t. _8 ~  C7 z5 i( U1A010-1C00F  D- J9 p% u! v6 U1 \9 j; \
1C010-1E00F  E
* C# F2 ?. q% N- Q, j1E010-2000F  F
4 k  i, k1 `# ^; [.
* Q0 t; B1 ~  ~, [# w% d./ ]6 H9 ?3 u1 }# A3 F" Z
.3 |) S- S! R4 U3 b. [* C

& F5 V0 h4 T3 x6 a; G( [解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?& \" E0 }8 z- P, u5 ?. Y  m6 L

2 n2 r' i; G$ r# c. f) v& R& V( n因为扩到144KB的话有的模拟器是不认,无法运行
% U" c( X! \# u; I2 C) D- Y& H" p2 g' i: s7 \4 I2 F
为了全FC模拟器能兼容,所以只好扩容到256KB" r% ?  Y4 N' G; O1 w7 c
* n0 ]5 `( g2 E% E, Q  [0 ~
补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
& c! C' C7 I" t
( U( z1 y  @3 M4 s; W

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 2917 天

[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-5-10 12:41 , Processed in 1.089844 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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