EMU618社区

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

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

[复制链接]

签到天数: 1976 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
6 a3 E4 b: |! _- `/ J2 I0 w, \; B; t
/ X. C3 T5 R/ ]/ N2 C修改内容:
  s' ~5 U" m6 E) Z: w/ I7 v1.P ROM由128KB扩容到256KB
) f  y% ^: W3 ?+ W  p0 ~$ g* f2.按START+B武器数量为99
: V. ]: K* U4 _- O3.按START+A补血
9 ~+ J. x# T0 y8 y# ^& ?- |0 Q; }# ]2 N: F
这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来3 l( u0 M' ^! E: c# }% c

0 L6 p4 ]6 R5 j1 S  C从原单位滚蛋后就有时间来弄一下+ ]7 V* l5 ]. p; f* m+ t3 j

% A  D5 T; T: e6 z7 T7 v% d关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚& g: D. o" o5 w5 V! y4 T5 s

% M: ~! ]5 i: ^9 B) a7 N关于如何切BANK:请看相关mapper资料吧1 n6 m3 P# ]/ b, a* T. _2 O

( j  O  r0 V& Z$ a$ {; T说说我双截龙3 MPPPER 04如何切BANK:
  1. $ {# ?; A( y. {; z* T( `
  2. $xxxx4 m; w6 P" G" O3 q; C% J8 d
  3. LDA #$07
    , W% M) |5 B6 d' j
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF$ H" {6 R+ ?  n' J6 g
  5. LDA #$0E- k5 e  _% r; X9 G
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF3 x- J' V. Z* S1 w. ^6 _
  7. JMP $A000 ;跳转到$A000执行
    7 v: D" J9 W: ?1 D4 X

  8. 8 B* c9 }2 d; ?% d2 T' _2 o+ h4 ?: t+ c
  9. $A000:  J: V! L5 H( s. ]0 M
  10. .
    5 }6 p( s5 l1 u! _3 |- o2 B1 c
  11. .( G3 \: }& Z* ~! x- ~
  12. .
    4 I9 h' D+ {! s
  13. .
    8 D2 Y% m& O! M. g' W3 `
  14. JMP $xxxx ;执行完自写的程式后跳回去$ P$ l7 e9 k+ q  Z  x/ c# ]' B
  15. & D" L3 w0 e( R5 d
  16. $xxxx:& z/ v6 L" z5 R2 J+ P4 u9 ^
  17. LDA #$07
    " i6 d- D9 n% o+ [! r
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    & L: ~2 q! X9 X* l( Y4 q
  19. LDA #$0D
    - `4 \/ f6 R8 U% B, ]1 F
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF
    " |" E  u% b% j6 i

  21. 9 h! A/ r8 {2 P, I- M7 H0 d
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议  A2 h/ F1 r# s: q7 e0 O
  23. ( ~( i6 p* `1 D  j/ v
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
' ^$ ]' L  `0 ]
' z! D0 j: |8 `/ t4 B* N& X4 H# V附:ROM 16KB BANK编号  p3 o! h" {; j3 `' c2 Z

: O# x$ R& A. ^ROMf地址      BANK编号
; p. L) Z/ a3 p  x00010-0200F  0
) d$ G0 _. P1 A/ B- N02010-0400F  1
( W" _, F% t2 t0 Z$ \% L04010-0600F  2
2 y/ c  \3 p8 A' K) p+ v+ D06010-0800F  30 x% c6 s: m/ H+ }. M! D
08010-0A00F  4
2 K2 z6 O! h/ F9 R0A010-0C00F  57 S! p1 S! a& n2 I+ ^
0C010-0E00F  6& S6 l( o3 K6 L# K) x0 O
0E010-1000F  71 v5 \1 ?8 h" x/ b& M
10010-1200F  8
) z5 F; B) e- |8 J12010-1400F  9
! m, i6 @; R) e, `) i14010-1600F  A
0 [$ d8 l  D7 d& j! D! a! O16010-1800F  B2 x; g1 g/ }& v0 [
18010-1A00F  C/ @9 U9 ~6 r5 b
1A010-1C00F  D6 |( v2 g* h. h% a' ?
1C010-1E00F  E* M  l2 C7 V7 s. b1 q5 y' u% y4 L
1E010-2000F  F
1 u: ~7 |. x; o) I.: `6 s; {' V+ X: ~, N  u4 c
.9 g; k% Y6 m- K9 |# h+ _+ h, {
.
0 _9 f: Z) |% @
% o" [$ f9 b- C1 I8 @6 E3 w解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?
$ f. Q" x7 t# |' E; {& a" \  h
- L  v: G: ?) J( X+ F因为扩到144KB的话有的模拟器是不认,无法运行
& N* O' ~; g6 H, j; |+ Q: j* ^' B7 @- \
为了全FC模拟器能兼容,所以只好扩容到256KB) v; t% `0 _1 D' F$ M9 V1 x
9 ]$ c7 I- D# q3 b
补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
! ~  z* D/ }$ j! {, d; v* b1 Z, J$ @6 B& g

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 2951 天

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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